Przeglądaj źródła

unity2017升级,直接支持C# 6.0就不需要CSharp vNext Support库了

tanghai 8 lat temu
rodzic
commit
cf534ce75e
53 zmienionych plików z 402 dodań i 22213 usunięć
  1. 0 9
      Unity/Assets/CSharp vNext Support.meta
  2. 0 9
      Unity/Assets/CSharp vNext Support/AsyncTools.meta
  3. 0 9
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins.meta
  4. BIN
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.dll
  5. 0 24
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.dll.meta
  6. 0 1520
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.xml
  7. 0 8
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.xml.meta
  8. BIN
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.dll
  9. 0 24
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.dll.meta
  10. 0 19811
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.xml
  11. 0 8
      Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.xml.meta
  12. 0 68
      Unity/Assets/CSharp vNext Support/AsyncTools/UnityScheduler.cs
  13. 0 12
      Unity/Assets/CSharp vNext Support/AsyncTools/UnityScheduler.cs.meta
  14. 0 38
      Unity/Assets/CSharp vNext Support/AsyncTools/UnitySynchronizationContext.cs
  15. 0 12
      Unity/Assets/CSharp vNext Support/AsyncTools/UnitySynchronizationContext.cs.meta
  16. 0 87
      Unity/Assets/CSharp vNext Support/AsyncTools/UnityTaskScheduler.cs
  17. 0 12
      Unity/Assets/CSharp vNext Support/AsyncTools/UnityTaskScheduler.cs.meta
  18. 0 9
      Unity/Assets/CSharp vNext Support/Editor.meta
  19. BIN
      Unity/Assets/CSharp vNext Support/Editor/CSharpVNextSupport.dll
  20. 0 24
      Unity/Assets/CSharp vNext Support/Editor/CSharpVNextSupport.dll.meta
  21. 0 11
      Unity/Assets/CSharp vNext Support/Editor/UnitySchedulerEditor.cs
  22. 0 12
      Unity/Assets/CSharp vNext Support/Editor/UnitySchedulerEditor.cs.meta
  23. 0 9
      Unity/Assets/CSharp vNext Support/FormattableString.meta
  24. 0 82
      Unity/Assets/CSharp vNext Support/FormattableString/FormattableString.cs
  25. 0 12
      Unity/Assets/CSharp vNext Support/FormattableString/FormattableString.cs.meta
  26. 0 59
      Unity/Assets/CSharp vNext Support/FormattableString/FormattableStringFactory.cs
  27. 0 12
      Unity/Assets/CSharp vNext Support/FormattableString/FormattableStringFactory.cs.meta
  28. 0 9
      Unity/Assets/Plugins/Android/libs/armeabi.meta
  29. BIN
      Unity/Assets/Res/Code/Hotfix.dll.bytes
  30. BIN
      Unity/Assets/Res/Code/Hotfix.pdb.bytes
  31. 0 0
      Unity/Assets/mcs.rsp
  32. 0 0
      Unity/Assets/mcs.rsp.meta
  33. BIN
      Unity/CSharp60Support/CSharp60Support.unitypackage
  34. BIN
      Unity/CSharp60Support/CSharpCompilerWrapper.exe
  35. BIN
      Unity/CSharp60Support/Roslyn/Microsoft.CodeAnalysis.CSharp.dll
  36. BIN
      Unity/CSharp60Support/Roslyn/Microsoft.CodeAnalysis.dll
  37. BIN
      Unity/CSharp60Support/Roslyn/Mono.Cecil.dll
  38. BIN
      Unity/CSharp60Support/Roslyn/Mono.CompilerServices.SymbolWriter.dll
  39. BIN
      Unity/CSharp60Support/Roslyn/System.Collections.Immutable.dll
  40. BIN
      Unity/CSharp60Support/Roslyn/System.Reflection.Metadata.dll
  41. BIN
      Unity/CSharp60Support/Roslyn/csc.exe
  42. 0 9
      Unity/CSharp60Support/Roslyn/csc.exe.config
  43. BIN
      Unity/CSharp60Support/Roslyn/pdb2mdb.exe
  44. BIN
      Unity/CSharp60Support/mcs.exe
  45. 0 8
      Unity/CSharp60Support/ngen install.cmd
  46. 0 8
      Unity/CSharp60Support/ngen uninstall.cmd
  47. 7 10
      Unity/Hotfix/Unity.Hotfix.csproj
  48. 289 149
      Unity/ProjectSettings/ProjectSettings.asset
  49. 1 1
      Unity/ProjectSettings/ProjectVersion.txt
  50. 32 44
      Unity/Unity.Editor.csproj
  51. 41 49
      Unity/Unity.Plugins.csproj
  52. 31 44
      Unity/Unity.csproj
  53. 1 1
      Unity/Unity.sln

+ 0 - 9
Unity/Assets/CSharp vNext Support.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: bd6f26ee6280c2d42a6d003d346592fa
-folderAsset: yes
-timeCreated: 1451846465
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/CSharp vNext Support/AsyncTools.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 6572fb060b35dd640a4d9b7dcb4d05ca
-folderAsset: yes
-timeCreated: 1433608940
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: c6ed32ab61f5b734595610cb1f0771db
-folderAsset: yes
-timeCreated: 1431300257
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.dll


+ 0 - 24
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.dll.meta

@@ -1,24 +0,0 @@
-fileFormatVersion: 2
-guid: d9cf142eb8682f045ada13ed3f45efc6
-timeCreated: 1431210029
-licenseType: Pro
-PluginImporter:
-  serializedVersion: 1
-  iconMap: {}
-  executionOrder: {}
-  isPreloaded: 0
-  platformData:
-    Any:
-      enabled: 1
-      settings: {}
-    Editor:
-      enabled: 0
-      settings:
-        DefaultValueInitialized: true
-    WindowsStoreApps:
-      enabled: 0
-      settings:
-        CPU: AnyCPU
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 1520
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.xml

@@ -1,1520 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>AsyncBridge.Net35</name>
-    </assembly>
-    <members>
-        <member name="T:AsyncCompatLibExtensions">
-            <summary>
-            Provides extension methods for threading-related types.
-            </summary>
-            
-            <summary>
-            Asynchronous wrappers for .NET Framework operations.
-            </summary>
-            
-            <summary>
-            Provides extension methods for threading-related types.
-            </summary>
-            
-            <remarks>
-            AsyncCtpThreadingExtensions is a placeholder.
-            </remarks>
-        </member>
-        <member name="M:AsyncCompatLibExtensions.GetAwaiter(System.Threading.Tasks.Task)">
-            <summary>
-            Gets an awaiter used to await this <see cref="T:System.Threading.Tasks.Task"/>.
-            </summary>
-            <param name="task">The task to await.</param>
-            <returns>
-            An awaiter instance.
-            </returns>
-        </member>
-        <member name="M:AsyncCompatLibExtensions.GetAwaiter``1(System.Threading.Tasks.Task{``0})">
-            <summary>
-            Gets an awaiter used to await this <see cref="T:System.Threading.Tasks.Task"/>.
-            </summary>
-            <typeparam name="TResult">Specifies the type of data returned by the task.</typeparam>
-            <param name="task">The task to await.</param>
-            <returns>
-            An awaiter instance.
-            </returns>
-        </member>
-        <member name="M:AsyncCompatLibExtensions.ConfigureAwait``1(System.Threading.Tasks.Task{``0},System.Boolean)">
-            <summary>
-            Creates and configures an awaitable object for awaiting the specified task.
-            </summary>
-            <param name="task">The task to be awaited.</param>
-            <param name="continueOnCapturedContext">true to automatic marshal back to the original call site's current SynchronizationContext
-                        or TaskScheduler; otherwise, false.</param>
-            <returns>
-            The instance to be awaited.
-            </returns>
-        </member>
-        <member name="M:AsyncCompatLibExtensions.ConfigureAwait(System.Threading.Tasks.Task,System.Boolean)">
-            <summary>
-            Creates and configures an awaitable object for awaiting the specified task.
-            </summary>
-            <param name="task">The task to be awaited.</param>
-            <param name="continueOnCapturedContext">true to automatic marshal back to the original call site's current SynchronizationContext
-                        or TaskScheduler; otherwise, false.</param>
-            <returns>
-            The instance to be awaited.
-            </returns>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderCore">
-            <summary>
-            Holds state related to the builder's IAsyncStateMachine.
-            </summary>
-            
-            <remarks>
-            This is a mutable struct.  Be very delicate with it.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodBuilderCore.m_stateMachine">
-            <summary>
-            A reference to the heap-allocated state machine object associated with this builder.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start``1(``0@)">
-            <summary>
-            Initiates the builder's execution with the associated state machine.
-            </summary>
-            <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="stateMachine">The state machine instance, passed by reference.</param><exception cref="T:System.ArgumentNullException">The <paramref name="stateMachine"/> argument is null (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderCore.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
-            <summary>
-            Associates the builder with the state machine it represents.
-            </summary>
-            <param name="stateMachine">The heap-allocated state machine object.</param><exception cref="T:System.ArgumentNullException">The <paramref name="stateMachine"/> argument was null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The builder is incorrectly initialized.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderCore.GetCompletionAction``2(``0@,``1@)">
-            <summary>
-            Gets the Action to use with an awaiter's OnCompleted or UnsafeOnCompleted method.
-                        On first invocation, the supplied state machine will be boxed.
-            
-            </summary>
-            <typeparam name="TMethodBuilder">Specifies the type of the method builder used.</typeparam><typeparam name="TStateMachine">Specifies the type of the state machine used.</typeparam><param name="builder">The builder.</param><param name="stateMachine">The state machine.</param>
-            <returns>
-            An Action to provide to the awaiter.
-            </returns>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderCore.ThrowAsync(System.Exception,System.Threading.SynchronizationContext)">
-            <summary>
-            Throws the exception on the ThreadPool.
-            </summary>
-            <param name="exception">The exception to propagate.</param><param name="targetContext">The target context on which to propagate the exception.  Null to use the ThreadPool.</param>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner">
-            <summary>
-            Provides the ability to invoke a state machine's MoveNext method under a supplied ExecutionContext.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.m_context">
-            <summary>
-            The context with which to run MoveNext.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.m_stateMachine">
-            <summary>
-            The state machine whose MoveNext method should be invoked.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.s_invokeMoveNext">
-            <summary>
-            Cached delegate used with ExecutionContext.Run.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.#ctor(System.Threading.ExecutionContext)">
-            <summary>
-            Initializes the runner.
-            </summary>
-            <param name="context">The context with which to run MoveNext.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run">
-            <summary>
-            Invokes MoveNext under the provided context.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.InvokeMoveNext(System.Object)">
-            <summary>
-            Invokes the MoveNext method on the supplied IAsyncStateMachine.
-            </summary>
-            <param name="stateMachine">The IAsyncStateMachine machine instance.</param>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncMethodTaskCache`1">
-            <summary>
-            Provides a base class used to cache tasks of a specific return type.
-            </summary>
-            <typeparam name="TResult">Specifies the type of results the cached tasks return.</typeparam>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.Singleton">
-            <summary>
-            A singleton cache for this result type.
-                        This may be null if there are no cached tasks for this TResult.
-            
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.CreateCompleted(`0)">
-            <summary>
-            Creates a non-disposable task.
-            </summary>
-            <param name="result">The result for the task.</param>
-            <returns>
-            The cacheable task.
-            </returns>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.CreateCache">
-            <summary>
-            Creates a cache.
-            </summary>
-            
-            <returns>
-            A task cache for this result type.
-            </returns>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.FromResult(`0)">
-            <summary>
-            Gets a cached task if one exists.
-            </summary>
-            <param name="result">The result for which we want a cached task.</param>
-            <returns>
-            A cached task if one exists; otherwise, null.
-            </returns>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodBooleanTaskCache">
-            <summary>
-            Provides a cache for Boolean tasks.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodBooleanTaskCache.m_true">
-            <summary>
-            A true task.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodBooleanTaskCache.m_false">
-            <summary>
-            A false task.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodBooleanTaskCache.FromResult(System.Boolean)">
-            <summary>
-            Gets a cached task for the Boolean result.
-            </summary>
-            <param name="result">true or false</param>
-            <returns>
-            A cached task for the Boolean result.
-            </returns>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodInt32TaskCache">
-            <summary>
-            Provides a cache for zero Int32 tasks.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodInt32TaskCache.INCLUSIVE_INT32_MIN">
-            <summary>
-            The minimum value, inclusive, for which we want a cached task.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodInt32TaskCache.EXCLUSIVE_INT32_MAX">
-            <summary>
-            The maximum value, exclusive, for which we want a cached task.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodInt32TaskCache.Int32Tasks">
-            <summary>
-            The cache of Task{Int32}.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodInt32TaskCache.CreateInt32Tasks">
-            <summary>
-            Creates an array of cached tasks for the values in the range [INCLUSIVE_MIN,EXCLUSIVE_MAX).
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncMethodTaskCache`1.AsyncMethodInt32TaskCache.FromResult(System.Int32)">
-            <summary>
-            Gets a cached task for the zero Int32 result.
-            </summary>
-            <param name="result">The integer value</param>
-            <returns>
-            A cached task for the Int32 result or null if not cached.
-            </returns>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncStateMachineAttribute">
-            <summary>
-            Identities the async state machine type for this method.
-            </summary>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.StateMachineAttribute">
-            <summary>
-            Identities the state machine type for this method.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.StateMachineAttribute.#ctor(System.Type)">
-            <summary>
-            Initializes the attribute.
-            </summary>
-            <param name="stateMachineType">The type that implements the state machine.</param>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.StateMachineAttribute.StateMachineType">
-            <summary>
-            Gets the type that implements the state machine.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncStateMachineAttribute.#ctor(System.Type)">
-            <summary>
-            Initializes the attribute.
-            </summary>
-            <param name="stateMachineType">The type that implements the state machine.</param>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncTaskMethodBuilder">
-            <summary>
-            Provides a builder for asynchronous methods that return <see cref="T:System.Threading.Tasks.Task"/>.
-                        This type is intended for compiler use only.
-            
-            </summary>
-            
-            <remarks>
-            AsyncTaskMethodBuilder is a value type, and thus it is copied by value.
-                        Prior to being copied, one of its Task, SetResult, or SetException members must be accessed,
-                        or else the copies may end up building distinct Task instances.
-            
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.IAsyncMethodBuilder">
-            <summary>
-            Represents an asynchronous method builder.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.s_cachedCompleted">
-            <summary>
-            A cached VoidTaskResult task used for builders that complete synchronously.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.m_builder">
-            <summary>
-            The generic builder object to which this non-generic instance delegates.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Create">
-            <summary>
-            Initializes a new <see cref="T:System.Runtime.CompilerServices.AsyncTaskMethodBuilder"/>.
-            </summary>
-            
-            <returns>
-            The initialized <see cref="T:System.Runtime.CompilerServices.AsyncTaskMethodBuilder"/>.
-            </returns>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start``1(``0@)">
-            <summary>
-            Initiates the builder's execution with the associated state machine.
-            </summary>
-            <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="stateMachine">The state machine instance, passed by reference.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
-            <summary>
-            Associates the builder with the state machine it represents.
-            </summary>
-            <param name="stateMachine">The heap-allocated state machine object.</param><exception cref="T:System.ArgumentNullException">The <paramref name="stateMachine"/> argument was null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The builder is incorrectly initialized.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
-            <summary>
-            Schedules the specified state machine to be pushed forward when the specified awaiter completes.
-            
-            </summary>
-            <typeparam name="TAwaiter">Specifies the type of the awaiter.</typeparam><typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="awaiter">The awaiter.</param><param name="stateMachine">The state machine.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
-            <summary>
-            Schedules the specified state machine to be pushed forward when the specified awaiter completes.
-            
-            </summary>
-            <typeparam name="TAwaiter">Specifies the type of the awaiter.</typeparam><typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="awaiter">The awaiter.</param><param name="stateMachine">The state machine.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult">
-            <summary>
-            Completes the <see cref="T:System.Threading.Tasks.Task"/> in the
-                        <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state.
-            
-            </summary>
-            <exception cref="T:System.InvalidOperationException">The builder is not initialized.</exception><exception cref="T:System.InvalidOperationException">The task has already completed.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetException(System.Exception)">
-            <summary>
-            Completes the <see cref="T:System.Threading.Tasks.Task"/> in the
-                        <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state with the specified exception.
-            
-            </summary>
-            <param name="exception">The <see cref="T:System.Exception"/> to use to fault the task.</param><exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> argument is null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The builder is not initialized.</exception><exception cref="T:System.InvalidOperationException">The task has already completed.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetNotificationForWaitCompletion(System.Boolean)">
-            <summary>
-            Called by the debugger to request notification when the first wait operation
-                        (await, Wait, Result, etc.) on this builder's task completes.
-            
-            </summary>
-            <param name="enabled">true to enable notification; false to disable a previously set notification.
-                        </param>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Task">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.Task"/> for this builder.
-            </summary>
-            
-            <returns>
-            The <see cref="T:System.Threading.Tasks.Task"/> representing the builder's asynchronous operation.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">The builder is not initialized.</exception>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.AsyncTaskMethodBuilder.ObjectIdForDebugger">
-            <summary>
-            Gets an object that may be used to uniquely identify this builder to the debugger.
-            
-            </summary>
-            
-            <remarks>
-            This property lazily instantiates the ID in a non-thread-safe manner.
-                        It must only be used by the debugger, and only in a single-threaded manner
-                        when no other threads are in the middle of accessing this property or this.Task.
-            
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1">
-            <summary>
-            Provides a builder for asynchronous methods that return <see cref="T:System.Threading.Tasks.Task`1"/>.
-                        This type is intended for compiler use only.
-            
-            </summary>
-            
-            <remarks>
-            AsyncTaskMethodBuilder{TResult} is a value type, and thus it is copied by value.
-                        Prior to being copied, one of its Task, SetResult, or SetException members must be accessed,
-                        or else the copies may end up building distinct Task instances.
-            
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.s_defaultResultTask">
-            <summary>
-            A cached task for default(TResult).
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.m_coreState">
-            <summary>
-            State related to the IAsyncStateMachine.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.m_task">
-            <summary>
-            The lazily-initialized task completion source.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.#cctor">
-            <summary>
-            Temporary support for disabling crashing if tasks go unobserved.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Create">
-            <summary>
-            Initializes a new <see cref="T:System.Runtime.CompilerServices.AsyncTaskMethodBuilder"/>.
-            </summary>
-            
-            <returns>
-            The initialized <see cref="T:System.Runtime.CompilerServices.AsyncTaskMethodBuilder"/>.
-            </returns>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start``1(``0@)">
-            <summary>
-            Initiates the builder's execution with the associated state machine.
-            </summary>
-            <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="stateMachine">The state machine instance, passed by reference.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
-            <summary>
-            Associates the builder with the state machine it represents.
-            </summary>
-            <param name="stateMachine">The heap-allocated state machine object.</param><exception cref="T:System.ArgumentNullException">The <paramref name="stateMachine"/> argument was null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The builder is incorrectly initialized.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AwaitOnCompleted``2(``0@,``1@)">
-            <summary>
-            Schedules the specified state machine to be pushed forward when the specified awaiter completes.
-            
-            </summary>
-            <typeparam name="TAwaiter">Specifies the type of the awaiter.</typeparam><typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="awaiter">The awaiter.</param><param name="stateMachine">The state machine.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted``2(``0@,``1@)">
-            <summary>
-            Schedules the specified state machine to be pushed forward when the specified awaiter completes.
-            
-            </summary>
-            <typeparam name="TAwaiter">Specifies the type of the awaiter.</typeparam><typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="awaiter">The awaiter.</param><param name="stateMachine">The state machine.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetResult(`0)">
-            <summary>
-            Completes the <see cref="T:System.Threading.Tasks.Task`1"/> in the
-                        <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state with the specified result.
-            
-            </summary>
-            <param name="result">The result to use to complete the task.</param><exception cref="T:System.InvalidOperationException">The task has already completed.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetResult(System.Threading.Tasks.TaskCompletionSource{`0})">
-            <summary>
-            Completes the builder by using either the supplied completed task, or by completing
-                        the builder's previously accessed task using default(TResult).
-            
-            </summary>
-            <param name="completedTask">A task already completed with the value default(TResult).</param><exception cref="T:System.InvalidOperationException">The task has already completed.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetException(System.Exception)">
-            <summary>
-            Completes the <see cref="T:System.Threading.Tasks.Task`1"/> in the
-                        <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state with the specified exception.
-            
-            </summary>
-            <param name="exception">The <see cref="T:System.Exception"/> to use to fault the task.</param><exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> argument is null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The task has already completed.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetNotificationForWaitCompletion(System.Boolean)">
-            <summary>
-            Called by the debugger to request notification when the first wait operation
-                        (await, Wait, Result, etc.) on this builder's task completes.
-            
-            </summary>
-            <param name="enabled">true to enable notification; false to disable a previously set notification.
-                        </param>
-            <remarks>
-            This should only be invoked from within an asynchronous method,
-                        and only by the debugger.
-            
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.GetTaskForResult(`0)">
-            <summary>
-            Gets a task for the specified result.  This will either
-                        be a cached or new task, never null.
-            
-            </summary>
-            <param name="result">The result for which we need a task.</param>
-            <returns>
-            The completed task containing the result.
-            </returns>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.CompletionSource">
-            <summary>
-            Gets the lazily-initialized TaskCompletionSource.
-            </summary>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Task">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.Task`1"/> for this builder.
-            </summary>
-            
-            <returns>
-            The <see cref="T:System.Threading.Tasks.Task`1"/> representing the builder's asynchronous operation.
-            </returns>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.ObjectIdForDebugger">
-            <summary>
-            Gets an object that may be used to uniquely identify this builder to the debugger.
-            
-            </summary>
-            
-            <remarks>
-            This property lazily instantiates the ID in a non-thread-safe manner.
-                        It must only be used by the debugger, and only in a single-threaded manner
-                        when no other threads are in the middle of accessing this property or this.Task.
-            
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.AsyncVoidMethodBuilder">
-            <summary>
-            Provides a builder for asynchronous methods that return void.
-                        This type is intended for compiler use only.
-            
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.m_synchronizationContext">
-            <summary>
-            The synchronization context associated with this operation.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.m_coreState">
-            <summary>
-            State related to the IAsyncStateMachine.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.m_objectIdForDebugger">
-            <summary>
-            An object used by the debugger to uniquely identify this builder.  Lazily initialized.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.s_preventUnobservedTaskExceptionsInvoked">
-            <summary>
-            Non-zero if PreventUnobservedTaskExceptions has already been invoked.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.#cctor">
-            <summary>
-            Temporary support for disabling crashing if tasks go unobserved.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.#ctor(System.Threading.SynchronizationContext)">
-            <summary>
-            Initializes the <see cref="T:System.Runtime.CompilerServices.AsyncVoidMethodBuilder"/>.
-            </summary>
-            <param name="synchronizationContext">The synchronizationContext associated with this operation. This may be null.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.PreventUnobservedTaskExceptions">
-            <summary>
-            Registers with UnobservedTaskException to suppress exception crashing.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Create">
-            <summary>
-            Initializes a new <see cref="T:System.Runtime.CompilerServices.AsyncVoidMethodBuilder"/>.
-            </summary>
-            
-            <returns>
-            The initialized <see cref="T:System.Runtime.CompilerServices.AsyncVoidMethodBuilder"/>.
-            </returns>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start``1(``0@)">
-            <summary>
-            Initiates the builder's execution with the associated state machine.
-            </summary>
-            <typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="stateMachine">The state machine instance, passed by reference.</param><exception cref="T:System.ArgumentNullException">The <paramref name="stateMachine"/> argument was null (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
-            <summary>
-            Associates the builder with the state machine it represents.
-            </summary>
-            <param name="stateMachine">The heap-allocated state machine object.</param><exception cref="T:System.ArgumentNullException">The <paramref name="stateMachine"/> argument was null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The builder is incorrectly initialized.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitOnCompleted``2(``0@,``1@)">
-            <summary>
-            Schedules the specified state machine to be pushed forward when the specified awaiter completes.
-            
-            </summary>
-            <typeparam name="TAwaiter">Specifies the type of the awaiter.</typeparam><typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="awaiter">The awaiter.</param><param name="stateMachine">The state machine.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.AwaitUnsafeOnCompleted``2(``0@,``1@)">
-            <summary>
-            Schedules the specified state machine to be pushed forward when the specified awaiter completes.
-            
-            </summary>
-            <typeparam name="TAwaiter">Specifies the type of the awaiter.</typeparam><typeparam name="TStateMachine">Specifies the type of the state machine.</typeparam><param name="awaiter">The awaiter.</param><param name="stateMachine">The state machine.</param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetResult">
-            <summary>
-            Completes the method builder successfully.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.SetException(System.Exception)">
-            <summary>
-            Faults the method builder with an exception.
-            </summary>
-            <param name="exception">The exception that is the cause of this fault.</param><exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> argument is null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The builder is not initialized.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.NotifySynchronizationContextOfCompletion">
-            <summary>
-            Notifies the current synchronization context that the operation completed.
-            </summary>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.AsyncVoidMethodBuilder.ObjectIdForDebugger">
-            <summary>
-            Gets an object that may be used to uniquely identify this builder to the debugger.
-            
-            </summary>
-            
-            <remarks>
-            This property lazily instantiates the ID in a non-thread-safe manner.
-                        It must only be used by the debugger and only in a single-threaded manner.
-            
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.CallerFilePathAttribute">
-            <summary>
-            Allows you to obtain the full path of the source file that contains the caller. This is the file path at the time of compile.
-            </summary>
-            <remarks>
-            You apply the <b>CallerFilePath</b> attribute to an optional parameter that has a default value. 
-            You must specify an explicit default value for the optional parameter.
-            You can't apply this attribute to parameters that aren't specified as optional.
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.CallerLineNumberAttribute">
-            <summary>
-            Allows you to obtain the line number in the source file at which the method is called.
-            </summary>
-            <remarks>
-            You apply the <b>CallerFilePath</b> attribute to an optional parameter that has a default value. 
-            You must specify an explicit default value for the optional parameter.
-            You can't apply this attribute to parameters that aren't specified as optional.
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.CallerMemberNameAttribute">
-            <summary>
-              Allows you to obtain the method or property name of the caller to the method.
-            </summary>
-            <remarks>
-              You apply the <b>CallerMemberName</b> attribute to an optional parameter that has a default value. 
-              You must specify an explicit default value for the optional parameter. 
-              You can't apply this attribute to parameters that aren't specified as optional.
-            <para/>
-              You can use the <b>CallerMemberName</b> attribute to avoid specifying the member name as a <b>String</b> argument to the called method. 
-              By using this technique, you avoid the problem that <b>Rename Refactoring</b> doesn't change the <b>String</b> values. 
-              This is especially useful for the following tasks:
-              <list type="bullet">
-                <item>
-                  Using tracing and diagnostic routines.
-                </item>
-                <item>
-                  Implementing the <see cref="T:System.ComponentModel.INotifyPropertyChanged"/> interface when binding data. 
-                  This interface allows the property of an object to notify a bound control that the property has changed, 
-                  so that the control can display the updated information. 
-                  Without the CallerMemberName attribute, you must specify the property name as a literal.
-                </item>
-              </list>
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1">
-            <summary>
-            Provides an awaitable object that allows for configured awaits on <see cref="T:System.Threading.Tasks.Task`1"/>.
-            </summary>
-            
-            <remarks>
-            This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.m_configuredTaskAwaiter">
-            <summary>
-            The underlying awaitable on whose logic this awaitable relies.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.#ctor(System.Threading.Tasks.Task{`0},System.Boolean)">
-            <summary>
-            Initializes the <see cref="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1"/>.
-            </summary>
-            <param name="task">The awaitable <see cref="T:System.Threading.Tasks.Task`1"/>.</param><param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the original context captured; otherwise, false.
-                        </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.GetAwaiter">
-            <summary>
-            Gets an awaiter for this awaitable.
-            </summary>
-            
-            <returns>
-            The awaiter.
-            </returns>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter">
-            <summary>
-            Provides an awaiter for a <see cref="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1"/>.
-            </summary>
-            
-            <remarks>
-            This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.ICriticalNotifyCompletion">
-            <summary>
-            Represents an awaiter used to schedule continuations when an await operation completes.
-            
-            </summary>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.INotifyCompletion">
-            <summary>
-            Represents an operation that will schedule continuations when the operation completes.
-            
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.INotifyCompletion.OnCompleted(System.Action)">
-            <summary>
-            Schedules the continuation action to be invoked when the instance completes.
-            </summary>
-            <param name="continuation">The action to invoke when the operation completes.</param><exception cref="T:System.ArgumentNullException">The <paramref name="continuation"/> argument is null (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ICriticalNotifyCompletion.UnsafeOnCompleted(System.Action)">
-            <summary>
-            Schedules the continuation action to be invoked when the instance completes.
-            </summary>
-            <param name="continuation">The action to invoke when the operation completes.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="continuation"/> argument is null (Nothing in Visual Basic).</exception>
-            <remarks>
-            Unlike OnCompleted, UnsafeOnCompleted need not propagate ExecutionContext information.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.m_task">
-            <summary>
-            The task being awaited.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.m_continueOnCapturedContext">
-            <summary>
-            Whether to attempt marshaling back to the original context.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.#ctor(System.Threading.Tasks.Task{`0},System.Boolean)">
-            <summary>
-            Initializes the <see cref="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter"/>.
-            </summary>
-            <param name="task">The awaitable <see cref="T:System.Threading.Tasks.Task`1"/>.</param><param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the original context captured; otherwise, false.
-                        </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.OnCompleted(System.Action)">
-            <summary>
-            Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/>.
-            </summary>
-            <param name="continuation">The action to invoke when the await operation completes.</param><exception cref="T:System.ArgumentNullException">The <paramref name="continuation"/> argument is null (Nothing in Visual Basic).</exception><exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-            <remarks>
-            This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.UnsafeOnCompleted(System.Action)">
-            <summary>
-            Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/>.
-            </summary>
-            <param name="continuation">The action to invoke when the await operation completes.</param><exception cref="T:System.ArgumentNullException">The <paramref name="continuation"/> argument is null (Nothing in Visual Basic).</exception><exception cref="T:System.InvalidOperationException">The awaiter was not properly initialized.</exception>
-            <remarks>
-            This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult">
-            <summary>
-            Ends the await on the completed <see cref="T:System.Threading.Tasks.Task`1"/>.
-            </summary>
-            
-            <returns>
-            The result of the completed <see cref="T:System.Threading.Tasks.Task`1"/>.
-            </returns>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception><exception cref="T:System.InvalidOperationException">The task was not yet completed.</exception><exception cref="T:System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception><exception cref="T:System.Exception">The task completed in a Faulted state.</exception>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.IsCompleted">
-            <summary>
-            Gets whether the task being awaited is completed.
-            </summary>
-            
-            <remarks>
-            This property is intended for compiler user rather than use directly in code.
-            </remarks>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable">
-            <summary>
-            Provides an awaitable object that allows for configured awaits on <see cref="T:System.Threading.Tasks.Task"/>.
-            </summary>
-            
-            <remarks>
-            This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.m_configuredTaskAwaiter">
-            <summary>
-            The task being awaited.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.#ctor(System.Threading.Tasks.Task,System.Boolean)">
-            <summary>
-            Initializes the <see cref="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable"/>.
-            </summary>
-            <param name="task">The awaitable <see cref="T:System.Threading.Tasks.Task"/>.</param><param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the original context captured; otherwise, false.
-                        </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.GetAwaiter">
-            <summary>
-            Gets an awaiter for this awaitable.
-            </summary>
-            
-            <returns>
-            The awaiter.
-            </returns>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter">
-            <summary>
-            Provides an awaiter for a <see cref="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable"/>.
-            </summary>
-            
-            <remarks>
-            This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.m_task">
-            <summary>
-            The task being awaited.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.m_continueOnCapturedContext">
-            <summary>
-            Whether to attempt marshaling back to the original context.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.#ctor(System.Threading.Tasks.Task,System.Boolean)">
-            <summary>
-            Initializes the <see cref="T:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter"/>.
-            </summary>
-            <param name="task">The <see cref="T:System.Threading.Tasks.Task"/> to await.</param><param name="continueOnCapturedContext">true to attempt to marshal the continuation back to the original context captured
-                        when BeginAwait is called; otherwise, false.
-                        </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.OnCompleted(System.Action)">
-            <summary>
-            Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/>.
-            </summary>
-            <param name="continuation">The action to invoke when the await operation completes.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="continuation"/> argument is null (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-            <remarks>
-            This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.UnsafeOnCompleted(System.Action)">
-            <summary>
-            Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/>.
-            </summary>
-            <param name="continuation">The action to invoke when the await operation completes.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="continuation"/> argument is null (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.InvalidOperationException">The awaiter was not properly initialized.</exception>
-            <remarks>
-            This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult">
-            <summary>
-            Ends the await on the completed <see cref="T:System.Threading.Tasks.Task"/>.
-            </summary>
-            
-            <returns>
-            The result of the completed <see cref="T:System.Threading.Tasks.Task`1"/>.
-            </returns>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception><exception cref="T:System.InvalidOperationException">The task was not yet completed.</exception><exception cref="T:System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception><exception cref="T:System.Exception">The task completed in a Faulted state.</exception>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.IsCompleted">
-            <summary>
-            Gets whether the task being awaited is completed.
-            </summary>
-            
-            <remarks>
-            This property is intended for compiler user rather than use directly in code.
-            </remarks>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.IAsyncStateMachine">
-            <summary>
-              Represents state machines generated for asynchronous methods. This type is intended for compiler use only.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.IAsyncStateMachine.MoveNext">
-            <summary>
-              Moves the state machine to its next state.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.IAsyncStateMachine.SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine)">
-            <summary>
-              Configures the state machine with a heap-allocated replica.
-            </summary>
-            <param name="stateMachine"> The heap-allocated replica. </param>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.IteratorStateMachineAttribute">
-            <summary>
-            Identities the iterator state machine type for this method.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.IteratorStateMachineAttribute.#ctor(System.Type)">
-            <summary>
-            Initializes the attribute.
-            </summary>
-            <param name="stateMachineType">The type that implements the state machine.</param>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.TaskAwaiter">
-            <summary>
-              Provides an awaiter for awaiting a <see cref="T:System.Threading.Tasks.Task"/> .
-            </summary>
-            <remarks>
-              This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.TaskAwaiter.CONTINUE_ON_CAPTURED_CONTEXT_DEFAULT">
-            <summary>
-              The default value to use for continueOnCapturedContext.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.TaskAwaiter.InvalidOperationException_TaskNotCompleted">
-            <summary>
-              Error message for GetAwaiter.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.TaskAwaiter.s_prepForRemoting">
-            <summary>
-              A MethodInfo for the Exception.PrepForRemoting method.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.TaskAwaiter.s_emptyParams">
-            <summary>
-              An empty array to use with MethodInfo.Invoke.
-            </summary>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.TaskAwaiter.m_task">
-            <summary>
-              The task being awaited.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.#ctor(System.Threading.Tasks.Task)">
-            <summary>
-              Initializes the <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/> .
-            </summary>
-            <param name="task"> The <see cref="T:System.Threading.Tasks.Task"/> to be awaited. </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.OnCompleted(System.Action)">
-            <summary>
-              Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/> .
-            </summary>
-            <param name="continuation"> The action to invoke when the await operation completes. </param>
-            <exception cref="T:System.ArgumentNullException">The
-              <paramref name="continuation"/>
-              argument is null (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.InvalidOperationException">The awaiter was not properly initialized.</exception>
-            <remarks>
-              This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.UnsafeOnCompleted(System.Action)">
-            <summary>
-              Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/> .
-            </summary>
-            <param name="continuation"> The action to invoke when the await operation completes. </param>
-            <exception cref="T:System.ArgumentNullException">The
-              <paramref name="continuation"/>
-              argument is null (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.InvalidOperationException">The awaiter was not properly initialized.</exception>
-            <remarks>
-              This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.GetResult">
-            <summary>
-              Ends the await on the completed <see cref="T:System.Threading.Tasks.Task"/> .
-            </summary>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-            <exception cref="T:System.InvalidOperationException">The task was not yet completed.</exception>
-            <exception cref="T:System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception>
-            <exception cref="T:System.Exception">The task completed in a Faulted state.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task)">
-            <summary>
-              Fast checks for the end of an await operation to determine whether more needs to be done prior to completing the await.
-            </summary>
-            <param name="task"> The awaited task. </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(System.Threading.Tasks.Task)">
-            <summary>
-              Handles validations on tasks that aren't successfully completed.
-            </summary>
-            <param name="task"> The awaited task. </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)">
-            <summary>
-              Throws an exception to handle a task that completed in a state other than RanToCompletion.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.OnCompletedInternal(System.Threading.Tasks.Task,System.Action,System.Boolean)">
-            <summary>
-              Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/> .
-            </summary>
-            <param name="task"> The awaited task. </param>
-            <param name="continuation"> The action to invoke when the await operation completes. </param>
-            <param name="continueOnCapturedContext"> Whether to capture and marshal back to the current context. </param>
-            <exception cref="T:System.ArgumentNullException">The
-              <paramref name="continuation"/>
-              argument is null (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-            <remarks>
-              This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.RunNoException(System.Action)">
-            <summary>
-              Invokes the delegate in a try/catch that will propagate the exception asynchronously on the ThreadPool.
-            </summary>
-            <param name="continuation" />
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.PrepareExceptionForRethrow(System.Exception)">
-            <summary>
-              Copies the exception's stack trace so its stack trace isn't overwritten.
-            </summary>
-            <param name="exc"> The exception to prepare. </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter.GetPrepForRemotingMethodInfo">
-            <summary>
-              Gets the MethodInfo for the internal PrepForRemoting method on Exception.
-            </summary>
-            <returns> The MethodInfo if it could be retrieved, or else null. </returns>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.TaskAwaiter.IsCompleted">
-            <summary>
-              Gets whether the task being awaited is completed.
-            </summary>
-            <remarks>
-              This property is intended for compiler user rather than use directly in code.
-            </remarks>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.TaskAwaiter.IsValidLocationForInlining">
-            <summary>
-              Whether the current thread is appropriate for inlining the await continuation.
-            </summary>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.TaskAwaiter`1">
-            <summary>
-              Provides an awaiter for awaiting a <see cref="T:System.Threading.Tasks.Task`1"/> .
-            </summary>
-            <remarks>
-              This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.TaskAwaiter`1.m_task">
-            <summary>
-              The task being awaited.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter`1.#ctor(System.Threading.Tasks.Task{`0})">
-            <summary>
-              Initializes the <see cref="T:System.Runtime.CompilerServices.TaskAwaiter`1"/> .
-            </summary>
-            <param name="task"> The <see cref="T:System.Threading.Tasks.Task`1"/> to be awaited. </param>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter`1.OnCompleted(System.Action)">
-            <summary>
-              Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/> .
-            </summary>
-            <param name="continuation"> The action to invoke when the await operation completes. </param>
-            <exception cref="T:System.ArgumentNullException">The
-              <paramref name="continuation"/>
-              argument is null (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-            <remarks>
-              This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter`1.UnsafeOnCompleted(System.Action)">
-            <summary>
-              Schedules the continuation onto the <see cref="T:System.Threading.Tasks.Task"/> associated with this <see cref="T:System.Runtime.CompilerServices.TaskAwaiter"/> .
-            </summary>
-            <param name="continuation"> The action to invoke when the await operation completes. </param>
-            <exception cref="T:System.ArgumentNullException">The
-              <paramref name="continuation"/>
-              argument is null (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.InvalidOperationException">The awaiter was not properly initialized.</exception>
-            <remarks>
-              This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.TaskAwaiter`1.GetResult">
-            <summary>
-              Ends the await on the completed <see cref="T:System.Threading.Tasks.Task`1"/> .
-            </summary>
-            <returns> The result of the completed <see cref="T:System.Threading.Tasks.Task`1"/> . </returns>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-            <exception cref="T:System.InvalidOperationException">The task was not yet completed.</exception>
-            <exception cref="T:System.Threading.Tasks.TaskCanceledException">The task was canceled.</exception>
-            <exception cref="T:System.Exception">The task completed in a Faulted state.</exception>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.TaskAwaiter`1.IsCompleted">
-            <summary>
-              Gets whether the task being awaited is completed.
-            </summary>
-            <remarks>
-              This property is intended for compiler user rather than use directly in code.
-            </remarks>
-            <exception cref="T:System.NullReferenceException">The awaiter was not properly initialized.</exception>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.VoidTaskResult">
-            <summary>
-            Used with Task(of void)
-            </summary>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.YieldAwaitable">
-            <summary>
-              Provides an awaitable context for switching into a target environment.
-            </summary>
-            <remarks>
-              This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.YieldAwaitable.GetAwaiter">
-            <summary>
-              Gets an awaiter for this <see cref="T:System.Runtime.CompilerServices.YieldAwaitable"/> .
-            </summary>
-            <returns> An awaiter for this awaitable. </returns>
-            <remarks>
-              This method is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="T:System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter">
-            <summary>
-              Provides an awaiter that switches into a target environment.
-            </summary>
-            <remarks>
-              This type is intended for compiler use only.
-            </remarks>
-        </member>
-        <member name="F:System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.s_completed">
-            <summary>
-              A completed task.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.OnCompleted(System.Action)">
-            <summary>
-              Posts the <paramref name="continuation"/> back to the current context.
-            </summary>
-            <param name="continuation"> The action to invoke asynchronously. </param>
-            <exception cref="T:System.InvalidOperationException">The awaiter was not properly initialized.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.UnsafeOnCompleted(System.Action)">
-            <summary>
-              Posts the <paramref name="continuation"/> back to the current context.
-            </summary>
-            <param name="continuation"> The action to invoke asynchronously. </param>
-            <exception cref="T:System.InvalidOperationException">The awaiter was not properly initialized.</exception>
-        </member>
-        <member name="M:System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.GetResult">
-            <summary>
-              Ends the await operation.
-            </summary>
-        </member>
-        <member name="P:System.Runtime.CompilerServices.YieldAwaitable.YieldAwaiter.IsCompleted">
-            <summary>
-              Gets whether a yield is not required.
-            </summary>
-            <remarks>
-              This property is intended for compiler user rather than use directly in code.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskEx">
-            <summary>
-            Provides methods for creating and manipulating tasks.
-            </summary>
-            
-            <remarks>
-            TaskEx is a placeholder.
-            </remarks>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskEx.s_preCompletedTask">
-            <summary>
-            An already completed task.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskEx.s_preCanceledTask">
-            <summary>
-            An already canceled task.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run(System.Action)">
-            <summary>
-            Creates a task that runs the specified action.
-            </summary>
-            <param name="action">The action to execute asynchronously.</param>
-            <returns>
-            A task that represents the completion of the action.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run(System.Action,System.Threading.CancellationToken)">
-            <summary>
-            Creates a task that runs the specified action.
-            </summary>
-            <param name="action">The action to execute.</param><param name="cancellationToken">The CancellationToken to use to request cancellation of this task.</param>
-            <returns>
-            A task that represents the completion of the action.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run``1(System.Func{``0})">
-            <summary>
-            Creates a task that runs the specified function.
-            </summary>
-            <param name="function">The function to execute asynchronously.</param>
-            <returns>
-            A task that represents the completion of the action.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="function"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run``1(System.Func{``0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a task that runs the specified function.
-            </summary>
-            <param name="function">The action to execute.</param><param name="cancellationToken">The CancellationToken to use to cancel the task.</param>
-            <returns>
-            A task that represents the completion of the action.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="function"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run(System.Func{System.Threading.Tasks.Task})">
-            <summary>
-            Creates a task that runs the specified function.
-            </summary>
-            <param name="function">The action to execute asynchronously.</param>
-            <returns>
-            A task that represents the completion of the action.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="function"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run(System.Func{System.Threading.Tasks.Task},System.Threading.CancellationToken)">
-            <summary>
-            Creates a task that runs the specified function.
-            </summary>
-            <param name="function">The function to execute.</param><param name="cancellationToken">The CancellationToken to use to request cancellation of this task.</param>
-            <returns>
-            A task that represents the completion of the function.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="function"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run``1(System.Func{System.Threading.Tasks.Task{``0}})">
-            <summary>
-            Creates a task that runs the specified function.
-            </summary>
-            <param name="function">The function to execute asynchronously.</param>
-            <returns>
-            A task that represents the completion of the action.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="function"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Run``1(System.Func{System.Threading.Tasks.Task{``0}},System.Threading.CancellationToken)">
-            <summary>
-            Creates a task that runs the specified function.
-            </summary>
-            <param name="function">The action to execute.</param><param name="cancellationToken">The CancellationToken to use to cancel the task.</param>
-            <returns>
-            A task that represents the completion of the action.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="function"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Delay(System.Int32)">
-            <summary>
-            Starts a Task that will complete after the specified due time.
-            </summary>
-            <param name="dueTime">The delay in milliseconds before the returned task completes.</param>
-            <returns>
-            The timed Task.
-            </returns>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="dueTime"/> argument must be non-negative or -1 and less than or equal to Int32.MaxValue.
-                        </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Delay(System.TimeSpan)">
-            <summary>
-            Starts a Task that will complete after the specified due time.
-            </summary>
-            <param name="dueTime">The delay before the returned task completes.</param>
-            <returns>
-            The timed Task.
-            </returns>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="dueTime"/> argument must be non-negative or -1 and less than or equal to Int32.MaxValue.
-                        </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Delay(System.TimeSpan,System.Threading.CancellationToken)">
-            <summary>
-            Starts a Task that will complete after the specified due time.
-            </summary>
-            <param name="dueTime">The delay before the returned task completes.</param><param name="cancellationToken">A CancellationToken that may be used to cancel the task before the due time occurs.</param>
-            <returns>
-            The timed Task.
-            </returns>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="dueTime"/> argument must be non-negative or -1 and less than or equal to Int32.MaxValue.
-                        </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Delay(System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Starts a Task that will complete after the specified due time.
-            </summary>
-            <param name="dueTime">The delay in milliseconds before the returned task completes.</param><param name="cancellationToken">A CancellationToken that may be used to cancel the task before the due time occurs.</param>
-            <returns>
-            The timed Task.
-            </returns>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="dueTime"/> argument must be non-negative or -1 and less than or equal to Int32.MaxValue.
-                        </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAll(System.Threading.Tasks.Task[])">
-            <summary>
-            Creates a Task that will complete only when all of the provided collection of Tasks has completed.
-            </summary>
-            <param name="tasks">The Tasks to monitor for completion.</param>
-            <returns>
-            A Task that represents the completion of all of the provided tasks.
-            </returns>
-            
-            <remarks>
-            If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information
-                        about all of the faulted tasks.  If no Tasks fault but one or more Tasks is canceled, the returned
-                        Task will also be canceled.
-            
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAll``1(System.Threading.Tasks.Task{``0}[])">
-            <summary>
-            Creates a Task that will complete only when all of the provided collection of Tasks has completed.
-            </summary>
-            <param name="tasks">The Tasks to monitor for completion.</param>
-            <returns>
-            A Task that represents the completion of all of the provided tasks.
-            </returns>
-            
-            <remarks>
-            If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information
-                        about all of the faulted tasks.  If no Tasks fault but one or more Tasks is canceled, the returned
-                        Task will also be canceled.
-            
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAll(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task})">
-            <summary>
-            Creates a Task that will complete only when all of the provided collection of Tasks has completed.
-            </summary>
-            <param name="tasks">The Tasks to monitor for completion.</param>
-            <returns>
-            A Task that represents the completion of all of the provided tasks.
-            </returns>
-            
-            <remarks>
-            If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information
-                        about all of the faulted tasks.  If no Tasks fault but one or more Tasks is canceled, the returned
-                        Task will also be canceled.
-            
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAll``1(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task{``0}})">
-            <summary>
-            Creates a Task that will complete only when all of the provided collection of Tasks has completed.
-            </summary>
-            <param name="tasks">The Tasks to monitor for completion.</param>
-            <returns>
-            A Task that represents the completion of all of the provided tasks.
-            </returns>
-            
-            <remarks>
-            If any of the provided Tasks faults, the returned Task will also fault, and its Exception will contain information
-                        about all of the faulted tasks.  If no Tasks fault but one or more Tasks is canceled, the returned
-                        Task will also be canceled.
-            
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAllCore``1(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task},System.Action{System.Threading.Tasks.Task[],System.Threading.Tasks.TaskCompletionSource{``0}})">
-            <summary>
-            Creates a Task that will complete only when all of the provided collection of Tasks has completed.
-            </summary>
-            <param name="tasks">The Tasks to monitor for completion.</param><param name="setResultAction">A callback invoked when all of the tasks complete successfully in the RanToCompletion state.
-                        This callback is responsible for storing the results into the TaskCompletionSource.
-                        </param>
-            <returns>
-            A Task that represents the completion of all of the provided tasks.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAny(System.Threading.Tasks.Task[])">
-            <summary>
-            Creates a Task that will complete when any of the tasks in the provided collection completes.
-            </summary>
-            <param name="tasks">The Tasks to be monitored.</param>
-            <returns>
-            A Task that represents the completion of any of the provided Tasks.  The completed Task is this Task's result.
-            
-            </returns>
-            
-            <remarks>
-            Any Tasks that fault will need to have their exceptions observed elsewhere.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAny(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task})">
-            <summary>
-            Creates a Task that will complete when any of the tasks in the provided collection completes.
-            </summary>
-            <param name="tasks">The Tasks to be monitored.</param>
-            <returns>
-            A Task that represents the completion of any of the provided Tasks.  The completed Task is this Task's result.
-            
-            </returns>
-            
-            <remarks>
-            Any Tasks that fault will need to have their exceptions observed elsewhere.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAny``1(System.Threading.Tasks.Task{``0}[])">
-            <summary>
-            Creates a Task that will complete when any of the tasks in the provided collection completes.
-            </summary>
-            <param name="tasks">The Tasks to be monitored.</param>
-            <returns>
-            A Task that represents the completion of any of the provided Tasks.  The completed Task is this Task's result.
-            
-            </returns>
-            
-            <remarks>
-            Any Tasks that fault will need to have their exceptions observed elsewhere.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.WhenAny``1(System.Collections.Generic.IEnumerable{System.Threading.Tasks.Task{``0}})">
-            <summary>
-            Creates a Task that will complete when any of the tasks in the provided collection completes.
-            </summary>
-            <param name="tasks">The Tasks to be monitored.</param>
-            <returns>
-            A Task that represents the completion of any of the provided Tasks.  The completed Task is this Task's result.
-            
-            </returns>
-            
-            <remarks>
-            Any Tasks that fault will need to have their exceptions observed elsewhere.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="tasks"/> argument is null.</exception><exception cref="T:System.ArgumentException">The <paramref name="tasks"/> argument contains a null reference.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.FromResult``1(``0)">
-            <summary>
-            Creates an already completed <see cref="T:System.Threading.Tasks.Task`1"/> from the specified result.
-            </summary>
-            <param name="result">The result from which to create the completed task.</param>
-            <returns>
-            The completed task.
-            </returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.Yield">
-            <summary>
-            Creates an awaitable that asynchronously yields back to the current context when awaited.
-            </summary>
-            
-            <returns>
-            A context that, when awaited, will asynchronously transition back into the current context.
-                        If SynchronizationContext.Current is non-null, that is treated as the current context.
-                        Otherwise, TaskScheduler.Current is treated as the current context.
-            
-            </returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskEx.AddPotentiallyUnwrappedExceptions(System.Collections.Generic.List{System.Exception}@,System.Exception)">
-            <summary>
-            Adds the target exception to the list, initializing the list if it's null.
-            </summary>
-            <param name="targetList">The list to which to add the exception and initialize if the list is null.</param><param name="exception">The exception to add, and unwrap if it's an aggregate.</param>
-        </member>
-        <member name="T:System.Runtime.TargetedPatchingOptOutAttribute">
-            <summary>
-            Indicates that the .NET Framework class library method to which this attribute is applied is unlikely to be affected by servicing releases, 
-            and therefore is eligible to be inlined across Native Image Generator (NGen) images.
-            </summary>
-        </member>
-        <member name="M:System.Runtime.TargetedPatchingOptOutAttribute.#ctor(System.String)">
-            <summary>
-            Infrastructure. Initializes a new instance of the <b>TargetedPatchingOptOutAttribute</b> class.
-            </summary>
-            <param name="reason">The reason why the method to which the <see cref="T:System.Runtime.TargetedPatchingOptOutAttribute"/> attribute is applied is 
-            considered to be eligible for inlining across Native Image Generator (NGen) images.</param>
-        </member>
-        <member name="P:System.Runtime.TargetedPatchingOptOutAttribute.Reason">
-            <summary>
-            Infrastructure. Gets the reason why the method to which this attribute is applied is considered to be eligible for inlining across 
-            Native Image Generator (NGen) images.
-            </summary>
-        </member>
-    </members>
-</doc>

+ 0 - 8
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/AsyncBridge.Net35.xml.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 7df038e9fb8ffa940ba490cc3094b284
-timeCreated: 1431533927
-licenseType: Pro
-TextScriptImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.dll


+ 0 - 24
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.dll.meta

@@ -1,24 +0,0 @@
-fileFormatVersion: 2
-guid: df22b0b85c54d7648af866dc9beb2712
-timeCreated: 1431210029
-licenseType: Pro
-PluginImporter:
-  serializedVersion: 1
-  iconMap: {}
-  executionOrder: {}
-  isPreloaded: 0
-  platformData:
-    Any:
-      enabled: 1
-      settings: {}
-    Editor:
-      enabled: 0
-      settings:
-        DefaultValueInitialized: true
-    WindowsStoreApps:
-      enabled: 0
-      settings:
-        CPU: AnyCPU
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 19811
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.xml

@@ -1,19811 +0,0 @@
-<?xml version="1.0"?>
-<doc>
-    <assembly>
-        <name>System.Threading</name>
-    </assembly>
-    <members>
-        <member name="T:System.Diagnostics.Contracts.Contract">
-            <summary>
-            A stub version of .NET 4.0 contracts.
-            </summary>
-        </member>
-        <member name="T:System.Environment2">
-            <summary>
-            A dummy class that implements GetResourceString. Environment.GetResourceString(string) is an internal
-            method in mscorlib.dll.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.IThreadPoolWorkItem">
-            <summary>
-            An interface similar to the one added in .NET 4.0.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Monitor2">
-            <summary>
-            .NET 4.0 Monitor class supports new overloads that return a boolean value
-            representing whether the lock was successfully taken or not. The return value
-            is meant to be accurate even in the presence of thread aborts.
-            
-            Monitor2 implements these methods as simple wrappers over the .NET 3.5 methods,
-            but without making the guarantees related to thread aborts.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Generic.Mscorlib_DictionaryDebugView`2">
-            <summary>
-            This internal class from mscorlib.dll is used by ConcurrentDictionary.
-            </summary>
-        </member>
-        <member name="T:System.OperationCanceledException2">
-            <summary>
-            OperationCanceledException is changing from .NET 3.5 to .NET 4.0. To make Parallel Extensions work,
-            we include the new version as OperationCanceledException2.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Platform">
-            <summary>
-            A convenience class for common platform-related logic.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Platform.ProcessorCount">
-            <summary>
-            Gets the number of available processors available to this process on the current machine.
-            </summary>
-        </member>
-        <member name="T:System.SecuritySafeCriticalAttribute">
-            <summary>
-            A dummy replacement for the .NET 4.0 SecuritySafeCriticalAttribute. The dummy attribute makes the
-            code compile, but we are likely losing the ability to be called from a partial trust environment.
-            </summary>
-        </member>
-        <member name="T:System.Threading.StackCrawlMark2">
-            <summary>
-            A dummy replacement for the .NET internal class StackCrawlMark.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentDictionary`2">
-            <summary>
-            Represents a thread-safe collection of keys and values.
-            </summary>
-            <typeparam name="TKey">The type of the keys in the dictionary.</typeparam>
-            <typeparam name="TValue">The type of the values in the dictionary.</typeparam>
-            <remarks>
-            All public and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> are thread-safe and may be used
-            concurrently from multiple threads.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            class that is empty, has the default concurrency level, has the default initial capacity, and
-            uses the default comparer for the key type.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Int32,System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            class that is empty, has the specified concurrency level and capacity, and uses the default
-            comparer for the key type.
-            </summary>
-            <param name="concurrencyLevel">The estimated number of threads that will update the
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> concurrently.</param>
-            <param name="capacity">The initial number of elements that the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            can contain.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="concurrencyLevel"/> is
-            less than 1.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="capacity"/> is less than
-            0.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/>, has the default concurrency
-            level, has the default initial capacity, and uses the default comparer for the key type.
-            </summary>
-            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to
-            the new
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more
-            duplicate keys.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            class that is empty, has the specified concurrency level and capacity, and uses the specified
-            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
-            </summary>
-            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
-            implementation to use when comparing keys.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="comparer"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable"/>, has the default concurrency level, has the default
-            initial capacity, and uses the specified
-            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
-            </summary>
-            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to
-            the new
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
-            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
-            implementation to use when comparing keys.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference
-            (Nothing in Visual Basic). -or-
-            <paramref name="comparer"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Int32,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}},System.Collections.Generic.IEqualityComparer{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> 
-            class that contains elements copied from the specified <see cref="T:System.Collections.IEnumerable"/>, 
-            has the specified concurrency level, has the specified initial capacity, and uses the specified 
-            <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
-            </summary>
-            <param name="concurrencyLevel">The estimated number of threads that will update the 
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> concurrently.</param>
-            <param name="collection">The <see cref="T:System.Collections.IEnumerable{KeyValuePair{TKey,TValue}}"/> whose elements are copied to the new 
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
-            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/> implementation to use 
-            when comparing keys.</param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="collection"/> is a null reference (Nothing in Visual Basic).
-            -or-
-            <paramref name="comparer"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="concurrencyLevel"/> is less than 1.
-            </exception>
-            <exception cref="T:System.ArgumentException"><paramref name="collection"/> contains one or more duplicate keys.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.#ctor(System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            class that is empty, has the specified concurrency level, has the specified initial capacity, and
-            uses the specified <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>.
-            </summary>
-            <param name="concurrencyLevel">The estimated number of threads that will update the
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> concurrently.</param>
-            <param name="capacity">The initial number of elements that the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            can contain.</param>
-            <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer{TKey}"/>
-            implementation to use when comparing keys.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="concurrencyLevel"/> is less than 1. -or-
-            <paramref name="capacity"/> is less than 0.
-            </exception>
-            <exception cref="T:System.ArgumentNullException"><paramref name="comparer"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryAdd(`0,`1)">
-            <summary>
-            Attempts to add the specified key and value to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
-            </summary>
-            <param name="key">The key of the element to add.</param>
-            <param name="value">The value of the element to add. The value can be a null reference (Nothing
-            in Visual Basic) for reference types.</param>
-            <returns>true if the key/value pair was added to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            successfully; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.OverflowException">The <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            contains too many elements.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.ContainsKey(`0)">
-            <summary>
-            Determines whether the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> contains the specified
-            key.
-            </summary>
-            <param name="key">The key to locate in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</param>
-            <returns>true if the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> contains an element with
-            the specified key; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryRemove(`0,`1@)">
-            <summary>
-            Attempts to remove and return the the value with the specified key from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
-            </summary>
-            <param name="key">The key of the element to remove and return.</param>
-            <param name="value">When this method returns, <paramref name="value"/> contains the object removed from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> or the default value of <typeparamref name="TValue"/>
-            if the operation failed.</param>
-            <returns>true if an object was removed successfully; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryRemoveInternal(`0,`1@,System.Boolean,`1)">
-            <summary>
-            Removes the specified key from the dictionary if it exists and returns its associated value.
-            If matchValue flag is set, the key will be removed only if is associated with a particular
-            value.
-            </summary>
-            <param name="key">The key to search for and remove if it exists.</param>
-            <param name="value">The variable into which the removed value, if found, is stored.</param>
-            <param name="matchValue">Whether removal of the key is conditional on its value.</param>
-            <param name="oldValue">The conditional value to compare against if <paramref name="matchValue"/> is true</param>
-            <returns></returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryGetValue(`0,`1@)">
-            <summary>
-            Attempts to get the value associated with the specified key from the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
-            </summary>
-            <param name="key">The key of the value to get.</param>
-            <param name="value">When this method returns, <paramref name="value"/> contains the object from
-            the
-            <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> with the spedified key or the default value of
-            <typeparamref name="TValue"/>, if the operation failed.</param>
-            <returns>true if the key was found in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>;
-            otherwise, false.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryUpdate(`0,`1,`1)">
-            <summary>
-            Compares the existing value for the specified key with a specified value, and if they’re equal,
-            updates the key with a third value.
-            </summary>
-            <param name="key">The key whose value is compared with <paramref name="comparisonValue"/> and
-            possibly replaced.</param>
-            <param name="newValue">The value that replaces the value of the element with <paramref
-            name="key"/> if the comparison results in equality.</param>
-            <param name="comparisonValue">The value that is compared to the value of the element with
-            <paramref name="key"/>.</param>
-            <returns>true if the value with <paramref name="key"/> was equal to <paramref
-            name="comparisonValue"/> and replaced with <paramref name="newValue"/>; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null
-            reference.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.Clear">
-            <summary>
-            Removes all keys and values from the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#CopyTo(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection"/> to an array of
-            type <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>, starting at the
-            specified array index.
-            </summary>
-            <param name="array">The one-dimensional array of type <see
-            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
-            that is the destination of the <see
-            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/> elements copied from the <see
-            cref="T:System.Collections.ICollection"/>. The array must have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            0.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than
-            the length of the <paramref name="array"/>. -or- The number of elements in the source <see
-            cref="T:System.Collections.ICollection"/>
-            is greater than the available space from <paramref name="index"/> to the end of the destination
-            <paramref name="array"/>.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.ToArray">
-            <summary>
-            Copies the key and value pairs stored in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> to a
-            new array.
-            </summary>
-            <returns>A new array containing a snapshot of key and value pairs copied from the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.CopyToPairs(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32)">
-            <summary>
-            Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
-            
-            Important: the caller must hold all locks in m_locks before calling CopyToPairs.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.CopyToEntries(System.Collections.DictionaryEntry[],System.Int32)">
-            <summary>
-            Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
-            
-            Important: the caller must hold all locks in m_locks before calling CopyToEntries.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.CopyToObjects(System.Object[],System.Int32)">
-            <summary>
-            Copy dictionary contents to an array - shared implementation between ToArray and CopyTo.
-            
-            Important: the caller must hold all locks in m_locks before calling CopyToObjects.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetEnumerator">
-            <summary>Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</summary>
-            <returns>An enumerator for the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</returns>
-            <remarks>
-            The enumerator returned from the dictionary is safe to use concurrently with
-            reads and writes to the dictionary, however it does not represent a moment-in-time snapshot
-            of the dictionary.  The contents exposed through the enumerator may contain modifications
-            made to the dictionary after <see cref="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetEnumerator"/> was called.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.TryAddInternal(`0,`1,System.Boolean,System.Boolean,`1@)">
-            <summary>
-            Shared internal implementation for inserts and updates.
-            If key exists, we always return false; and if updateIfExists == true we force update with value;
-            If key doesn't exist, we always add value and return true;
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(`0,System.Func{`0,`1})">
-            <summary>
-            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> 
-            if the key does not already exist.
-            </summary>
-            <param name="key">The key of the element to add.</param>
-            <param name="valueFactory">The function used to generate a value for the key</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.OverflowException">The dictionary contains too many
-            elements.</exception>
-            <returns>The value for the key.  This will be either the existing value for the key if the
-            key is already in the dictionary, or the new value for the key as returned by valueFactory
-            if the key was not in the dictionary.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(`0,`1)">
-            <summary>
-            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> 
-            if the key does not already exist.
-            </summary>
-            <param name="key">The key of the element to add.</param>
-            <param name="value">the value to be added, if the key does not already exist</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.OverflowException">The dictionary contains too many
-            elements.</exception>
-            <returns>The value for the key.  This will be either the existing value for the key if the 
-            key is already in the dictionary, or the new value if the key was not in the dictionary.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(`0,System.Func{`0,`1},System.Func{`0,`1,`1})">
-            <summary>
-            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key does not already 
-            exist, or updates a key/value pair in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key 
-            already exists.
-            </summary>
-            <param name="key">The key to be added or whose value should be updated</param>
-            <param name="addValueFactory">The function used to generate a value for an absent key</param>
-            <param name="updateValueFactory">The function used to generate a new value for an existing key
-            based on the key's existing value</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentNullException"><paramref name="addValueFactory"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentNullException"><paramref name="updateValueFactory"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.OverflowException">The dictionary contains too many
-            elements.</exception>
-            <returns>The new value for the key.  This will be either be the result of addValueFactory (if the key was 
-            absent) or the result of updateValueFactory (if the key was present).</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(`0,`1,System.Func{`0,`1,`1})">
-            <summary>
-            Adds a key/value pair to the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key does not already 
-            exist, or updates a key/value pair in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> if the key 
-            already exists.
-            </summary>
-            <param name="key">The key to be added or whose value should be updated</param>
-            <param name="addValue">The value to be added for an absent key</param>
-            <param name="updateValueFactory">The function used to generate a new value for an existing key based on 
-            the key's existing value</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentNullException"><paramref name="updateValueFactory"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.OverflowException">The dictionary contains too many
-            elements.</exception>
-            <returns>The new value for the key.  This will be either be the result of addValueFactory (if the key was 
-            absent) or the result of updateValueFactory (if the key was present).</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#IDictionary{TKey@TValue}#Add(`0,`1)">
-            <summary>
-            Adds the specified key and value to the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
-            </summary>
-            <param name="key">The object to use as the key of the element to add.</param>
-            <param name="value">The object to use as the value of the element to add.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.OverflowException">The dictionary contains too many
-            elements.</exception>
-            <exception cref="T:System.ArgumentException">
-            An element with the same key already exists in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#IDictionary{TKey@TValue}#Remove(`0)">
-            <summary>
-            Removes the element with the specified key from the <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
-            </summary>
-            <param name="key">The key of the element to remove.</param>
-            <returns>true if the element is successfully remove; otherwise false. This method also returns
-            false if
-            <paramref name="key"/> was not found in the original <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Add(System.Collections.Generic.KeyValuePair{`0,`1})">
-            <summary>
-            Adds the specified value to the <see cref="T:System.Collections.Generic.ICollection{TValue}"/>
-            with the specified key.
-            </summary>
-            <param name="keyValuePair">The <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
-            structure representing the key and value to add to the <see
-            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="keyValuePair"/> of <paramref
-            name="keyValuePair"/> is null.</exception>
-            <exception cref="T:System.OverflowException">The <see
-            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>
-            contains too many elements.</exception>
-            <exception cref="T:System.ArgumentException">An element with the same key already exists in the
-            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/></exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Contains(System.Collections.Generic.KeyValuePair{`0,`1})">
-            <summary>
-            Determines whether the <see cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/>
-            contains a specific key and value.
-            </summary>
-            <param name="keyValuePair">The <see cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
-            structure to locate in the <see
-            cref="T:System.Collections.Generic.ICollection{TValue}"/>.</param>
-            <returns>true if the <paramref name="keyValuePair"/> is found in the <see
-            cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/>; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#Remove(System.Collections.Generic.KeyValuePair{`0,`1})">
-            <summary>
-            Removes a key and value from the dictionary.
-            </summary>
-            <param name="keyValuePair">The <see
-            cref="T:System.Collections.Generic.KeyValuePair{TKey,TValue}"/>
-            structure representing the key and value to remove from the <see
-            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</param>
-            <returns>true if the key and value represented by <paramref name="keyValuePair"/> is successfully
-            found and removed; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentNullException">The Key property of <paramref
-            name="keyValuePair"/> is a null reference (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IEnumerable#GetEnumerator">
-            <summary>Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</summary>
-            <returns>An enumerator for the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</returns>
-            <remarks>
-            The enumerator returned from the dictionary is safe to use concurrently with
-            reads and writes to the dictionary, however it does not represent a moment-in-time snapshot
-            of the dictionary.  The contents exposed through the enumerator may contain modifications
-            made to the dictionary after <see cref="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetEnumerator"/> was called.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Add(System.Object,System.Object)">
-            <summary>
-            Adds the specified key and value to the dictionary.
-            </summary>
-            <param name="key">The object to use as the key.</param>
-            <param name="value">The object to use as the value.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.OverflowException">The dictionary contains too many
-            elements.</exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="key"/> is of a type that is not assignable to the key type <typeparamref
-            name="TKey"/> of the <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>. -or-
-            <paramref name="value"/> is of a type that is not assignable to <typeparamref name="TValue"/>,
-            the type of values in the <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
-            -or- A value with the same key already exists in the <see
-            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Contains(System.Object)">
-            <summary>
-            Gets whether the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> contains an
-            element with the specified key.
-            </summary>
-            <param name="key">The key to locate in the <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</param>
-            <returns>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> contains
-            an element with the specified key; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentNullException"> <paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#GetEnumerator">
-            <summary>Provides an <see cref="T:System.Collections.Generics.IDictionaryEnumerator"/> for the
-            <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</summary>
-            <returns>An <see cref="T:System.Collections.Generics.IDictionaryEnumerator"/> for the <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Remove(System.Object)">
-            <summary>
-            Removes the element with the specified key from the <see
-            cref="T:System.Collections.IDictionary"/>.
-            </summary>
-            <param name="key">The key of the element to remove.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an array, starting
-            at the specified array index.
-            </summary>
-            <param name="array">The one-dimensional array that is the destination of the elements copied from
-            the <see cref="T:System.Collections.ICollection"/>. The array must have zero-based
-            indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            0.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than
-            the length of the <paramref name="array"/>. -or- The number of elements in the source <see
-            cref="T:System.Collections.ICollection"/>
-            is greater than the available space from <paramref name="index"/> to the end of the destination
-            <paramref name="array"/>.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GrowTable(System.Collections.Concurrent.ConcurrentDictionary{`0,`1}.Node[])">
-            <summary>
-            Replaces the internal table with a larger one. To prevent multiple threads from resizing the
-            table as a result of races, the table of buckets that was deemed too small is passed in as
-            an argument to GrowTable(). GrowTable() obtains a lock, and then checks whether the bucket
-            table has been replaced in the meantime or not.
-            </summary>
-            <param name="buckets">Reference to the bucket table that was deemed too small.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetBucketAndLockNo(System.Int32,System.Int32@,System.Int32@,System.Int32)">
-            <summary>
-            Computes the bucket and lock number for a particular key. 
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AcquireAllLocks(System.Int32@)">
-            <summary>
-            Acquires all locks for this hash table, and increments locksAcquired by the number
-            of locks that were successfully acquired. The locks are acquired in an increasing
-            order.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.AcquireLocks(System.Int32,System.Int32,System.Int32@)">
-            <summary>
-            Acquires a contiguous range of locks for this hash table, and increments locksAcquired
-            by the number of locks that were successfully acquired. The locks are acquired in an
-            increasing order.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.ReleaseLocks(System.Int32,System.Int32)">
-            <summary>
-            Releases a contiguous range of locks.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetKeys">
-            <summary>
-            Gets a collection containing the keys in the dictionary.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetValues">
-            <summary>
-            Gets a collection containing the values in the dictionary.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.Assert(System.Boolean)">
-            <summary>
-            A helper method for asserts.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.GetResource(System.String)">
-            <summary>
-            A helper function to obtain the string for a particular resource key.
-            </summary>
-            <param name="key"></param>
-            <returns></returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.OnSerializing(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Get the data array to be serialized
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentDictionary`2.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Construct the dictionary from a previously seiralized one
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Item(`0)">
-            <summary>
-            Gets or sets the value associated with the specified key.
-            </summary>
-            <param name="key">The key of the value to get or set.</param>
-            <value>The value associated with the specified key. If the specified key is not found, a get
-            operation throws a
-            <see cref="T:Sytem.Collections.Generic.KeyNotFoundException"/>, and a set operation creates a new
-            element with the specified key.</value>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The property is retrieved and
-            <paramref name="key"/>
-            does not exist in the collection.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Count">
-            <summary>
-            Gets the number of key/value pairs contained in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.
-            </summary>
-            <exception cref="T:System.OverflowException">The dictionary contains too many
-            elements.</exception>
-            <value>The number of key/value paris contained in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>.</value>
-            <remarks>Count has snapshot semantics and represents the number of items in the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/>
-            at the moment when Count was accessed.</remarks>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.IsEmpty">
-            <summary>
-            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> is empty.
-            </summary>
-            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentDictionary`2"/> is empty; otherwise,
-            false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Keys">
-            <summary>
-            Gets a collection containing the keys in the <see
-            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
-            </summary>
-            <value>An <see cref="T:System.Collections.Generic.ICollection{TKey}"/> containing the keys in the
-            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.Values">
-            <summary>
-            Gets a collection containing the values in the <see
-            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.
-            </summary>
-            <value>An <see cref="T:System.Collections.Generic.ICollection{TValue}"/> containing the values in
-            the
-            <see cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{TKey@TValue}}#IsReadOnly">
-            <summary>
-            Gets a value indicating whether the dictionary is read-only.
-            </summary>
-            <value>true if the <see cref="T:System.Collections.Generic.ICollection{TKey,TValue}"/> is
-            read-only; otherwise, false. For <see
-            cref="T:System.Collections.Generic.Dictionary{TKey,TValue}"/>, this property always returns
-            false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#IsFixedSize">
-            <summary>
-            Gets a value indicating whether the <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> has a fixed size.
-            </summary>
-            <value>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> has a
-            fixed size; otherwise, false. For <see
-            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>, this property always
-            returns false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#IsReadOnly">
-            <summary>
-            Gets a value indicating whether the <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> is read-only.
-            </summary>
-            <value>true if the <see cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/> is
-            read-only; otherwise, false. For <see
-            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>, this property always
-            returns false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Keys">
-            <summary>
-            Gets an <see cref="T:System.Collections.ICollection"/> containing the keys of the <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.
-            </summary>
-            <value>An <see cref="T:System.Collections.ICollection"/> containing the keys of the <see
-            cref="T:System.Collections.Generic.IDictionary{TKey,TValue}"/>.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Values">
-            <summary>
-            Gets an <see cref="T:System.Collections.ICollection"/> containing the values in the <see
-            cref="T:System.Collections.IDictionary"/>.
-            </summary>
-            <value>An <see cref="T:System.Collections.ICollection"/> containing the values in the <see
-            cref="T:System.Collections.IDictionary"/>.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#IDictionary#Item(System.Object)">
-            <summary>
-            Gets or sets the value associated with the specified key.
-            </summary>
-            <param name="key">The key of the value to get or set.</param>
-            <value>The value associated with the specified key, or a null reference (Nothing in Visual Basic)
-            if <paramref name="key"/> is not in the dictionary or <paramref name="key"/> is of a type that is
-            not assignable to the key type <typeparamref name="TKey"/> of the <see
-            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>.</value>
-            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentException">
-            A value is being assigned, and <paramref name="key"/> is of a type that is not assignable to the
-            key type <typeparamref name="TKey"/> of the <see
-            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>. -or- A value is being
-            assigned, and <paramref name="key"/> is of a type that is not assignable to the value type
-            <typeparamref name="TValue"/> of the <see
-            cref="T:System.Collections.Generic.ConcurrentDictionary{TKey,TValue}"/>
-            </exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#ICollection#IsSynchronized">
-            <summary>
-            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
-            synchronized with the SyncRoot.
-            </summary>
-            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
-            (thread safe); otherwise, false. For <see
-            cref="T:System.Collections.Concurrent.ConcurrentDictionary{TKey,TValue}"/>, this property always
-            returns false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.System#Collections#ICollection#SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the <see
-            cref="T:System.Collections.ICollection"/>. This property is not supported.
-            </summary>
-            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentDictionary`2.DefaultConcurrencyLevel">
-            <summary>
-            The number of concurrent writes for which to optimize by default.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentDictionary`2.Node">
-            <summary>
-            A node in a singly-linked list representing a particular hash table bucket.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentDictionary`2.DictionaryEnumerator">
-            <summary>
-            A private class to represent enumeration over the dictionary that implements the 
-            IDictionaryEnumerator interface.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentQueue`1">
-            <summary>
-            Represents a thread-safe first-in, first-out collection of objects.
-            </summary>
-            <typeparam name="T">Specifies the type of elements in the queue.</typeparam>
-            <remarks>
-            All public  and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> are thread-safe and may be used
-            concurrently from multiple threads.
-            </remarks>
-        </member>
-        <member name="T:System.Collections.Concurrent.IProducerConsumerCollection`1">
-            <summary>
-            Defines methods to manipulate thread-safe collections intended for producer/consumer usage.
-            </summary>
-            <typeparam name="T">Specifies the type of elements in the collection.</typeparam>
-            <remarks>
-            All implementations of this interface must enable all members of this interface
-            to be used concurrently from multiple threads.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.CopyTo(`0[],System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/> to
-            an
-            <see cref="T:System.Array"/>, starting at a specified index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of
-            the elements copied from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.
-            The array must have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
-            Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            zero.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
-            length of the <paramref name="array"/>
-            -or- The number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is greater than the
-            available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.TryAdd(`0)">
-            <summary>
-            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.
-            </summary>
-            <param name="item">The object to add to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.</param>
-            <returns>true if the object was added successfully; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentException">The <paramref name="item"/> was invalid for this collection.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.TryTake(`0@)">
-            <summary>
-            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.
-            </summary>
-            <param name="item">
-            When this method returns, if the object was removed and returned successfully, <paramref name="item"/> contains the removed object. If no object was available to be removed, the value is
-            unspecified.
-            </param>
-            <returns>true if an object was removed and returned successfully; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.IProducerConsumerCollection`1.ToArray">
-            <summary>
-            Copies the elements contained in the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/> to a new array.
-            </summary>
-            <returns>A new array containing the elements copied from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection`1"/>.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> class.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.InitializeFromCollection(System.Collections.Generic.IEnumerable{`0})">
-            <summary>
-            Initializes the contents of the queue from an existing collection.
-            </summary>
-            <param name="collection">A collection from which to copy elements.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
-            class that contains elements copied from the specified collection
-            </summary>
-            <param name="collection">The collection whose elements are copied to the new <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
-            null.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Get the data array to be serialized
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Construct the queue from a previously seiralized one
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an <see cref="T:System.Array"/>, starting at a particular
-            <see cref="T:System.Array"/> index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
-            destination of the elements copied from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentBag"/>. The <see cref="T:System.Array">Array</see> must have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
-            Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            zero.</exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="array"/> is multidimensional. -or-
-            <paramref name="array"/> does not have zero-based indexing. -or-
-            <paramref name="index"/> is equal to or greater than the length of the <paramref name="array"/>
-            -or- The number of elements in the source <see cref="T:System.Collections.ICollection"/> is
-            greater than the available space from <paramref name="index"/> to the end of the destination
-            <paramref name="array"/>. -or- The type of the source <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the
-            destination <paramref name="array"/>.
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through a collection.
-            </summary>
-            <returns>An <see cref="T:System.Collections.IEnumerator"/> that can be used to iterate through the collection.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryAdd(`0)">
-            <summary>
-            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
-            </summary>
-            <param name="item">The object to add to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. The value can be a null
-            reference (Nothing in Visual Basic) for reference types.
-            </param>
-            <returns>true if the object was added successfully; otherwise, false.</returns>
-            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>, this operation will always add the object to the
-            end of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
-            and return true.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryTake(`0@)">
-            <summary>
-            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
-            </summary>
-            <param name="item">
-            When this method returns, if the operation was successful, <paramref name="item"/> contains the
-            object removed. If no object was available to be removed, the value is unspecified.
-            </param>
-            <returns>true if an element was removed and returned succesfully; otherwise, false.</returns>
-            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>, this operation will attempt to remove the object
-            from the beginning of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.ToArray">
-            <summary>
-            Copies the elements stored in the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> to a new array.
-            </summary>
-            <returns>A new array containing a snapshot of elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.ToList">
-            <summary>
-            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> elements to a new <see cref="T:System.Collections.Generic.List{T}"/>.
-            </summary>
-            <returns>A new <see cref="T:System.Collections.Generic.List{T}"/> containing a snapshot of
-            elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.GetHeadTailPositions(System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@,System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@,System.Int32@,System.Int32@)">
-            <summary>
-            Store the position of the current head and tail positions.
-            </summary>
-            <param name="head">return the head segment</param>
-            <param name="tail">return the tail segment</param>
-            <param name="headLow">return the head offset</param>
-            <param name="tailHigh">return the tail offset</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.CopyTo(`0[],System.Int32)">
-            <summary>
-            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> elements to an existing one-dimensional <see cref="T:System.Array">Array</see>, starting at the specified array index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
-            destination of the elements copied from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>. The <see cref="T:System.Array">Array</see> must have zero-based
-            indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
-            Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            zero.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
-            length of the <paramref name="array"/>
-            -or- The number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is greater than the
-            available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
-            </summary>
-            <returns>An enumerator for the contents of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</returns>
-            <remarks>
-            The enumeration represents a moment-in-time snapshot of the contents
-            of the queue.  It does not reflect any updates to the collection after 
-            <see cref="M:System.Collections.Concurrent.ConcurrentQueue`1.GetEnumerator"/> was called.  The enumerator is safe to use
-            concurrently with reads from and writes to the queue.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Enqueue(`0)">
-            <summary>
-            Adds an object to the end of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
-            </summary>
-            <param name="item">The object to add to the end of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>. The value can be a null reference
-            (Nothing in Visual Basic) for reference types.
-            </param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.TryDequeue(`0@)">
-            <summary>
-            Attempts to remove and return the object at the beginning of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
-            </summary>
-            <param name="result">
-            When this method returns, if the operation was successful, <paramref name="result"/> contains the
-            object removed. If no object was available to be removed, the value is unspecified.
-            </param>
-            <returns>true if an element was removed and returned from the beggining of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
-            succesfully; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.TryPeek(`0@)">
-            <summary>
-            Attempts to return an object from the beginning of the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>
-            without removing it.
-            </summary>
-            <param name="result">When this method returns, <paramref name="result"/> contains an object from
-            the beginning of the <see cref="T:System.Collections.Concurrent.ConccurrentQueue{T}"/> or an
-            unspecified value if the operation failed.</param>
-            <returns>true if and object was returned successfully; otherwise, false.</returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#ICollection#IsSynchronized">
-            <summary>
-            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
-            synchronized with the SyncRoot.
-            </summary>
-            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
-            with the SyncRoot; otherwise, false. For <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>, this property always
-            returns false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.System#Collections#ICollection#SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the <see
-            cref="T:System.Collections.ICollection"/>. This property is not supported.
-            </summary>
-            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.IsEmpty">
-            <summary>
-            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is empty.
-            </summary>
-            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/> is empty; otherwise, false.</value>
-            <remarks>
-            For determining whether the collection contains any items, use of this property is recommended
-            rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.Count"/> property and comparing it
-            to 0.  However, as this collection is intended to be accessed concurrently, it may be the case
-            that another thread will modify the collection after <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.IsEmpty"/> returns, thus invalidating
-            the result.
-            </remarks>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Count">
-            <summary>
-            Gets the number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.
-            </summary>
-            <value>The number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1"/>.</value>
-            <remarks>
-            For determining whether the collection contains any items, use of the <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.IsEmpty"/>
-            property is recommended rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentQueue`1.Count"/>
-            property and comparing it to 0.
-            </remarks>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentQueue`1.Segment">
-            <summary>
-            private class for ConcurrentQueue. 
-            a queue is a linked list of small arrays, each node is called a segment.
-            A segment contains an array, a pointer to the next segment, and m_low, m_high indices recording
-            the first and last valid elements of the array.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.#ctor(System.Int64)">
-            <summary>
-            Create and initialize a segment with the specified index.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.UnsafeAdd(`0)">
-            <summary>
-            Add an element to the tail of the current segment
-            exclusively called by ConcurrentQueue.InitializedFromCollection
-            InitializeFromCollection is responsible to guaratee that there is no index overflow,
-            and there is no contention
-            </summary>
-            <param name="value"></param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.UnsafeGrow">
-            <summary>
-            Create a new segment and append to the current one
-            Does not update the m_tail pointer
-            exclusively called by ConcurrentQueue.InitializedFromCollection
-            InitializeFromCollection is responsible to guaratee that there is no index overflow,
-            and there is no contention
-            </summary>
-            <returns>the reference to the new Segment</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.Grow(System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@)">
-            <summary>
-            Create a new segment and append to the current one
-            Update the m_tail pointer
-            This method is called when there is no contention
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.TryAppend(`0,System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@)">
-            <summary>
-            Try to append an element at the end of this segment.
-            </summary>
-            <param name="value">the element to append</param>
-            <param name="tail">The tail.</param>
-            <returns>true if the element is appended, false if the current segment is full</returns>
-            <remarks>if appending the specified element succeeds, and after which the segment is full, 
-            then grow the segment</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.TryRemove(`0@,System.Collections.Concurrent.ConcurrentQueue{`0}.Segment@)">
-            <summary>
-            try to remove an element from the head of current segment
-            </summary>
-            <param name="result">The result.</param>
-            <param name="head">The head.</param>
-            <returns>return false only if the current segment is empty</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.TryPeek(`0@)">
-            <summary>
-            try to peek the current segment
-            </summary>
-            <param name="result">holds the return value of the element at the head position, 
-            value set to default(T) if there is no such an element</param>
-            <returns>true if there are elements in the current segment, false otherwise</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentQueue`1.Segment.ToList(System.Int32,System.Int32)">
-            <summary>
-            Convert part or all of the current segment into a List
-            </summary>
-            <param name="start">the start position</param>
-            <param name="end">the end position</param>
-            <returns>the result list </returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.Next">
-            <summary>
-            return the next segment
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.IsEmpty">
-            <summary>
-            return true if the current segment is empty (doesn't have any element available to dequeue, 
-            false otherwise
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.Low">
-            <summary>
-            return the position of the head of the current segment
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentQueue`1.Segment.High">
-            <summary>
-            return the logical position of the tail of the current segment      
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentStack`1">
-            <summary>
-            Represents a thread-safe last-in, first-out collection of objects.
-            </summary>
-            <typeparam name="T">Specifies the type of elements in the stack.</typeparam>
-            <remarks>
-            All public and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> are thread-safe and may be used
-            concurrently from multiple threads.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
-            class.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
-            class that contains elements copied from the specified collection
-            </summary>
-            <param name="collection">The collection whose elements are copied to the new <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
-            null.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.InitializeFromCollection(System.Collections.Generic.IEnumerable{`0})">
-            <summary>
-            Initializes the contents of the stack from an existing collection.
-            </summary>
-            <param name="collection">A collection from which to copy elements.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Get the data array to be serialized
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Construct the stack from a previously seiralized one
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.Clear">
-            <summary>
-            Removes all objects from the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an <see cref="T:System.Array"/>, starting at a particular
-            <see cref="T:System.Array"/> index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of
-            the elements copied from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>. The <see cref="T:System.Array"/> must
-            have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
-            Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            zero.</exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="array"/> is multidimensional. -or-
-            <paramref name="array"/> does not have zero-based indexing. -or-
-            <paramref name="index"/> is equal to or greater than the length of the <paramref name="array"/>
-            -or- The number of elements in the source <see cref="T:System.Collections.ICollection"/> is
-            greater than the available space from <paramref name="index"/> to the end of the destination
-            <paramref name="array"/>. -or- The type of the source <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the
-            destination <paramref name="array"/>.
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.CopyTo(`0[],System.Int32)">
-            <summary>
-            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> elements to an existing one-dimensional <see cref="T:System.Array"/>, starting at the specified array index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the destination of
-            the elements copied from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>. The <see cref="T:System.Array"/> must have zero-based
-            indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
-            Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            zero.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
-            length of the <paramref name="array"/>
-            -or- The number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> is greater than the
-            available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>.
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.Push(`0)">
-            <summary>
-            Inserts an object at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
-            </summary>
-            <param name="item">The object to push onto the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>. The value can be
-            a null reference (Nothing in Visual Basic) for reference types.
-            </param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.PushRange(`0[])">
-            <summary>
-            Inserts multiple objects at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> atomically.
-            </summary>
-            <param name="items">The objects to push onto the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <remarks>
-            When adding multiple items to the stack, using PushRange is a more efficient
-            mechanism than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.Push(`0)"/> one item at a time.  Additionally, PushRange
-            guarantees that all of the elements will be added atomically, meaning that no other threads will
-            be able to inject elements between the elements being pushed.  Items at lower indices in
-            the <paramref name="items"/> array will be pushed before items at higher indices.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.PushRange(`0[],System.Int32,System.Int32)">
-            <summary>
-            Inserts multiple objects at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> atomically.
-            </summary>
-            <param name="items">The objects to push onto the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
-            <param name="startIndex">The zero-based offset in <paramref name="items"/> at which to begin
-            inserting elements onto the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
-            <param name="count">The number of elements to be inserted onto the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> or <paramref name="count"/> is negative. Or <paramref name="startIndex"/> is greater than or equal to the length 
-            of <paramref name="items"/>.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="startIndex"/> + <paramref name="count"/> is
-            greater than the length of <paramref name="items"/>.</exception>
-            <remarks>
-            When adding multiple items to the stack, using PushRange is a more efficient
-            mechanism than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.Push(`0)"/> one item at a time. Additionally, PushRange
-            guarantees that all of the elements will be added atomically, meaning that no other threads will
-            be able to inject elements between the elements being pushed. Items at lower indices in the
-            <paramref name="items"/> array will be pushed before items at higher indices.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.PushCore(System.Collections.Concurrent.ConcurrentStack{`0}.Node,System.Collections.Concurrent.ConcurrentStack{`0}.Node)">
-            <summary>
-            Push one or many nodes into the stack, if head and tails are equal then push one node to the stack other wise push the list between head
-            and tail to the stack
-            </summary>
-            <param name="head">The head pointer to the new list</param>
-            <param name="tail">The tail pointer to the new list</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.ValidatePushPopRangeInput(`0[],System.Int32,System.Int32)">
-            <summary>
-            Local helper function to validate the Pop Push range methods input
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryAdd(`0)">
-            <summary>
-            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
-            </summary>
-            <param name="item">The object to add to the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. The value can be a null
-            reference (Nothing in Visual Basic) for reference types.
-            </param>
-            <returns>true if the object was added successfully; otherwise, false.</returns>
-            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>, this operation
-            will always insert the object onto the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
-            and return true.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPeek(`0@)">
-            <summary>
-            Attempts to return an object from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
-            without removing it.
-            </summary>
-            <param name="result">When this method returns, <paramref name="result"/> contains an object from
-            the top of the <see cref="T:System.Collections.Concurrent.ConccurrentStack{T}"/> or an
-            unspecified value if the operation failed.</param>
-            <returns>true if and object was returned successfully; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPop(`0@)">
-            <summary>
-            Attempts to pop and return the object at the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
-            </summary>
-            <param name="result">
-            When this method returns, if the operation was successful, <paramref name="result"/> contains the
-            object removed. If no object was available to be removed, the value is unspecified.
-            </param>
-            <returns>true if an element was removed and returned from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
-            succesfully; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopRange(`0[])">
-            <summary>
-            Attempts to pop and return multiple objects from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
-            atomically.
-            </summary>
-            <param name="items">
-            The <see cref="T:System.Array"/> to which objects popped from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> will be added.
-            </param>
-            <returns>The number of objects successfully popped from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> and inserted in
-            <paramref name="items"/>.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null argument (Nothing
-            in Visual Basic).</exception>
-            <remarks>
-            When popping multiple items, if there is little contention on the stack, using
-            TryPopRange can be more efficient than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.TryPop(`0@)"/>
-            once per item to be removed.  Nodes fill the <paramref name="items"/>
-            with the first node to be popped at the startIndex, the second node to be popped
-            at startIndex + 1, and so on.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopRange(`0[],System.Int32,System.Int32)">
-            <summary>
-            Attempts to pop and return multiple objects from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>
-            atomically.
-            </summary>
-            <param name="items">
-            The <see cref="T:System.Array"/> to which objects popped from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> will be added.
-            </param>
-            <param name="startIndex">The zero-based offset in <paramref name="items"/> at which to begin
-            inserting elements from the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</param>
-            <param name="count">The number of elements to be popped from top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> and inserted into <paramref name="items"/>.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="items"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="startIndex"/> or <paramref name="count"/> is negative. Or <paramref name="startIndex"/> is greater than or equal to the length 
-            of <paramref name="items"/>.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="startIndex"/> + <paramref name="count"/> is
-            greater than the length of <paramref name="items"/>.</exception>
-            <remarks>
-            When popping multiple items, if there is little contention on the stack, using
-            TryPopRange can be more efficient than using <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.TryPop(`0@)"/>
-            once per item to be removed.  Nodes fill the <paramref name="items"/>
-            with the first node to be popped at the startIndex, the second node to be popped
-            at startIndex + 1, and so on.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopCore(`0@)">
-            <summary>
-            Local helper function to Pop an item from the stack, slow path
-            </summary>
-            <param name="result">The popped item</param>
-            <returns>True if succeeded, false otherwise</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.TryPopCore(System.Int32,System.Collections.Concurrent.ConcurrentStack{`0}.Node@)">
-            <summary>
-            Slow path helper for TryPop. This method assumes an initial attempt to pop an element
-            has already occurred and failed, so it begins spinning right away.
-            </summary>
-            <param name="count">The number of items to pop.</param>
-            <param name="poppedHead">
-            When this method returns, if the pop succeeded, contains the removed object. If no object was
-            available to be removed, the value is unspecified. This parameter is passed uninitialized.
-            </param>
-            <returns>True if an element was removed and returned; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.CopyRemovedItems(System.Collections.Concurrent.ConcurrentStack{`0}.Node,`0[],System.Int32,System.Int32)">
-            <summary>
-            Local helper function to copy the poped elements into a given collection
-            </summary>
-            <param name="head">The head of the list to be copied</param>
-            <param name="collection">The collection to place the popped items in</param>
-            <param name="startIndex">the beginning of index of where to place the popped items</param>
-            <param name="nodesCount">The number of nodes.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryTake(`0@)">
-            <summary>
-            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>.
-            </summary>
-            <param name="item">
-            When this method returns, if the operation was successful, <paramref name="item"/> contains the
-            object removed. If no object was available to be removed, the value is unspecified.
-            </param>
-            <returns>true if an element was removed and returned succesfully; otherwise, false.</returns>
-            <remarks>For <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>, this operation will attempt to pope the object at
-            the top of the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.ToArray">
-            <summary>
-            Copies the items stored in the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> to a new array.
-            </summary>
-            <returns>A new array containing a snapshot of elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.ToList">
-            <summary>
-            Returns an array containing a snapshot of the list's contents, using
-            the target list node as the head of a region in the list.
-            </summary>
-            <returns>An array of the list's contents.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
-            </summary>
-            <returns>An enumerator for the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</returns>
-            <remarks>
-            The enumeration represents a moment-in-time snapshot of the contents
-            of the stack.  It does not reflect any updates to the collection after 
-            <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.GetEnumerator"/> was called.  The enumerator is safe to use
-            concurrently with reads from and writes to the stack.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through a collection.
-            </summary>
-            <returns>An <see cref="T:System.Collections.IEnumerator"/> that can be used to iterate through
-            the collection.</returns>
-            <remarks>
-            The enumeration represents a moment-in-time snapshot of the contents of the stack. It does not
-            reflect any updates to the collection after
-            <see cref="M:System.Collections.Concurrent.ConcurrentStack`1.GetEnumerator"/> was called. The enumerator is safe to use concurrently with reads
-            from and writes to the stack.
-            </remarks>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.IsEmpty">
-            <summary>
-            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> is empty.
-            </summary>
-            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/> is empty; otherwise, false.</value>
-            <remarks>
-            For determining whether the collection contains any items, use of this property is recommended
-            rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.Count"/> property and comparing it
-            to 0.  However, as this collection is intended to be accessed concurrently, it may be the case
-            that another thread will modify the collection after <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.IsEmpty"/> returns, thus invalidating
-            the result.
-            </remarks>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.Count">
-            <summary>
-            Gets the number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.
-            </summary>
-            <value>The number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>.</value>
-            <remarks>
-            For determining whether the collection contains any items, use of the <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.IsEmpty"/>
-            property is recommended rather than retrieving the number of items from the <see cref="P:System.Collections.Concurrent.ConcurrentStack`1.Count"/>
-            property and comparing it to 0.
-            </remarks>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#ICollection#IsSynchronized">
-            <summary>
-            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
-            synchronized with the SyncRoot.
-            </summary>
-            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
-            with the SyncRoot; otherwise, false. For <see cref="T:System.Collections.Concurrent.ConcurrentStack`1"/>, this property always
-            returns false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentStack`1.System#Collections#ICollection#SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the <see
-            cref="T:System.Collections.ICollection"/>. This property is not supported.
-            </summary>
-            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported</exception>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentStack`1.Node">
-            <summary>
-            A simple (internal) node type used to store elements of concurrent stacks and queues.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentStack`1.Node.#ctor(`0)">
-            <summary>
-            Constructs a new node with the specified value and no next node.
-            </summary>
-            <param name="value">The value of the node.</param>
-        </member>
-        <member name="T:System.Collections.Concurrent.SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView`1">
-            <summary>
-            A debugger view of the IProducerConsumerCollection that makes it simple to browse the
-            collection's contents at a point in time.
-            </summary>
-            <typeparam name="T">The type of elements stored within.</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView`1.#ctor(System.Collections.Concurrent.IProducerConsumerCollection{`0})">
-            <summary>
-            Constructs a new debugger view object for the provided collection object.
-            </summary>
-            <param name="collection">A collection to browse in the debugger.</param>
-        </member>
-        <member name="P:System.Collections.Concurrent.SystemCollectionsConcurrent_ProducerConsumerCollectionDebugView`1.Items">
-            <summary>
-            Returns a snapshot of the underlying collection's elements.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.OrderablePartitioner`1">
-            <summary>
-            Represents a particular manner of splitting an orderable data source into multiple partitions.
-            </summary>
-            <typeparam name="TSource">Type of the elements in the collection.</typeparam>
-            <remarks>
-            <para>
-            Each element in each partition has an integer index associated with it, which determines the relative
-            order of that element against elements in other partitions.
-            </para>
-            <para>
-            Inheritors of <see cref="T:System.Collections.Concurrent.OrderablePartitioner`1"/> must adhere to the following rules:
-            <ol>
-            <li>All indices must be unique, such that there may not be duplicate indices. If all indices are not
-            unique, the output ordering may be scrambled.</li>
-            <li>All indices must be non-negative. If any indices are negative, consumers of the implementation
-            may throw exceptions.</li>
-            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/> should throw a
-            <see cref="T:System.ArgumentOutOfRangeException"/> if the requested partition count is less than or
-            equal to zero.</li>
-            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/> should always return a number
-            of enumerables equal to the requested partition count. If the partitioner runs out of data and cannot
-            create as many partitions as requested, an empty enumerator should be returned for each of the
-            remaining partitions. If this rule is not followed, consumers of the implementation may throw a <see cref="T:System.InvalidOperationException"/>.</li>
-            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/>, <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/>,
-            <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions"/>, and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/>
-            should never return null. If null is returned, a consumer of the implementation may throw a
-            <see cref="T:System.InvalidOperationException"/>.</li>
-            <li><see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)"/>, <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/>,
-            <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions"/>, and <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/>
-            should always return partitions that can fully and uniquely enumerate the input data source. All of
-            the data and only the data contained in the input source should be enumerated, with no duplication
-            that was not already in the input, unless specifically required by the particular partitioner's
-            design. If this is not followed, the output ordering may be scrambled.</li>
-            <li>If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedInEachPartition"/> returns true, each partition must return elements
-            with increasing key indices.</li>
-            <li>If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedAcrossPartitions"/> returns true, all the keys in partition numbered N
-            must be larger than all the keys in partition numbered N-1.</li>
-            <li>If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysNormalized"/> returns true, all indices must be monotonically increasing from
-            0, though not necessarily within a single partition.</li>
-            </ol>
-            </para>
-            </remarks>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner`1">
-            <summary>
-            Represents a particular manner of splitting a data source into multiple partitions.
-            </summary>
-            <typeparam name="TSource">Type of the elements in the collection.</typeparam>
-            <remarks>
-            <para>
-            Inheritors of <see cref="T:System.Collections.Concurrent.Partitioner`1"/> must adhere to the following rules:
-            <ol>
-            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> should throw a
-            <see cref="T:System.ArgumentOutOfRangeException"/> if the requested partition count is less than or
-            equal to zero.</li>
-            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> should always return a number of enumerables equal to the requested
-            partition count. If the partitioner runs out of data and cannot create as many partitions as 
-            requested, an empty enumerator should be returned for each of the remaining partitions. If this rule
-            is not followed, consumers of the implementation may throw a <see cref="T:System.InvalidOperationException"/>.</li>
-            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/>
-            should never return null. If null is returned, a consumer of the implementation may throw a
-            <see cref="T:System.InvalidOperationException"/>.</li>
-            <li><see cref="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)"/> and <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/> should always return
-            partitions that can fully and uniquely enumerate the input data source. All of the data and only the
-            data contained in the input source should be enumerated, with no duplication that was not already in
-            the input, unless specifically required by the particular partitioner's design. If this is not
-            followed, the output ordering may be scrambled.</li>
-            </ol>
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner`1.GetPartitions(System.Int32)">
-            <summary>
-            Partitions the underlying collection into the given number of partitions.
-            </summary>
-            <param name="partitionCount">The number of partitions to create.</param>
-            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions">
-            <summary>
-            Creates an object that can partition the underlying collection into a variable number of
-            partitions.
-            </summary>
-            <remarks>
-            <para>
-            The returned object implements the <see cref="T:System.Collections.Generic.IEnumerable{TSource}"/> interface. Calling <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator">GetEnumerator</see> on the
-            object creates another partition over the sequence.
-            </para>
-            <para>
-            The <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/> method is only supported if the <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/>
-            property returns true.
-            </para>
-            </remarks>
-            <returns>An object that can create partitions over the underlying data source.</returns>
-            <exception cref="T:System.NotSupportedException">Dynamic partitioning is not supported by this
-            partitioner.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions">
-            <summary>
-            Gets whether additional partitions can be created dynamically.
-            </summary>
-            <returns>
-            true if the <see cref="T:System.Collections.Concurrent.Partitioner`1"/> can create partitions dynamically as they are
-            requested; false if the <see cref="T:System.Collections.Concurrent.Partitioner`1"/> can only allocate
-            partitions statically.
-            </returns>
-            <remarks>
-            <para>
-            If a derived class does not override and implement <see cref="M:System.Collections.Concurrent.Partitioner`1.GetDynamicPartitions"/>,
-            <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/> should return false. The value of <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/> should not vary over the lifetime of this instance.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.#ctor(System.Boolean,System.Boolean,System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.OrderablePartitioner`1"/> class with the
-            specified constraints on the index keys.
-            </summary>
-            <param name="keysOrderedInEachPartition">
-            Indicates whether the elements in each partition are yielded in the order of
-            increasing keys.
-            </param>
-            <param name="keysOrderedAcrossPartitions">
-            Indicates whether elements in an earlier partition always come before
-            elements in a later partition. If true, each element in partition 0 has a smaller order key than
-            any element in partition 1, each element in partition 1 has a smaller order key than any element
-            in partition 2, and so on.
-            </param>
-            <param name="keysNormalized">
-            Indicates whether keys are normalized. If true, all order keys are distinct
-            integers in the range [0 .. numberOfElements-1]. If false, order keys must still be dictinct, but
-            only their relative order is considered, not their absolute values.
-            </param>
-        </member>
-        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)">
-            <summary>
-            Partitions the underlying collection into the specified number of orderable partitions.
-            </summary>
-            <remarks>
-            Each partition is represented as an enumerator over key-value pairs.
-            The value of the pair is the element itself, and the key is an integer which determines
-            the relative ordering of this element against other elements in the data source.
-            </remarks>
-            <param name="partitionCount">The number of partitions to create.</param>
-            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions">
-            <summary>
-            Creates an object that can partition the underlying collection into a variable number of
-            partitions.
-            </summary>
-            <remarks>
-            <para>
-            The returned object implements the <see cref="T:System.Collections.Generic.IEnumerable{TSource}"/> interface. Calling <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator">GetEnumerator</see> on the
-            object creates another partition over the sequence.
-            </para>
-            <para>
-            Each partition is represented as an enumerator over key-value pairs. The value in the pair is the element
-            itself, and the key is an integer which determines the relative ordering of this element against
-            other elements.
-            </para>
-            <para>
-            The <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/> method is only supported if the <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions">SupportsDynamicPartitions</see>
-            property returns true.
-            </para>
-            </remarks>
-            <returns>An object that can create partitions over the underlying data source.</returns>
-            <exception cref="T:System.NotSupportedException">Dynamic partitioning is not supported by this
-            partitioner.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetPartitions(System.Int32)">
-            <summary>
-            Partitions the underlying collection into the given number of ordered partitions.
-            </summary>
-            <remarks>
-            The default implementation provides the same behavior as <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderablePartitions(System.Int32)"/> except
-            that the returned set of partitions does not provide the keys for the elements.
-            </remarks>
-            <param name="partitionCount">The number of partitions to create.</param>
-            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions">
-            <summary>
-            Creates an object that can partition the underlying collection into a variable number of
-            partitions.
-            </summary>
-            <remarks>
-            <para>
-            The returned object implements the <see cref="T:System.Collections.Generic.IEnumerable{TSource}"/> interface. Calling <see cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator">GetEnumerator</see> on the
-            object creates another partition over the sequence.
-            </para>
-            <para>
-            The default implementation provides the same behavior as <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetOrderableDynamicPartitions"/> except
-            that the returned set of partitions does not provide the keys for the elements.
-            </para>
-            <para>
-            The <see cref="M:System.Collections.Concurrent.OrderablePartitioner`1.GetDynamicPartitions"/> method is only supported if the <see cref="P:System.Collections.Concurrent.Partitioner`1.SupportsDynamicPartitions"/>
-            property returns true.
-            </para>
-            </remarks>
-            <returns>An object that can create partitions over the underlying data source.</returns>
-            <exception cref="T:System.NotSupportedException">Dynamic partitioning is not supported by this
-            partitioner.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedInEachPartition">
-            <summary>
-            Gets whether elements in each partition are yielded in the order of increasing keys.
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedAcrossPartitions">
-            <summary>
-            Gets whether elements in an earlier partition always come before elements in a later partition.
-            </summary>
-            <remarks>
-            If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysOrderedAcrossPartitions"/> returns true, each element in partition 0 has a
-            smaller order key than any element in partition 1, each element in partition 1 has a smaller
-            order key than any element in partition 2, and so on.
-            </remarks>
-        </member>
-        <member name="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysNormalized">
-            <summary>
-            Gets whether order keys are normalized.
-            </summary>
-            <remarks>
-            If <see cref="P:System.Collections.Concurrent.OrderablePartitioner`1.KeysNormalized"/> returns true, all order keys are distinct integers in the range
-            [0 .. numberOfElements-1]. If the property returns false, order keys must still be dictinct, but
-            only their relative order is considered, not their absolute values.
-            </remarks>
-        </member>
-        <member name="T:System.Collections.Concurrent.OrderablePartitioner`1.EnumerableDropIndices">
-            <summary>
-            Converts an enumerable over key-value pairs to an enumerable over values.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner">
-            <summary>
-            Provides common partitioning strategies for arrays, lists, and enumerables.
-            </summary>
-            <remarks>
-            <para>
-            The static methods on <see cref="T:System.Collections.Concurrent.Partitioner"/> are all thread-safe and may be used concurrently
-            from multiple threads. However, while a created partitioner is in use, the underlying data source
-            should not be modified, whether from the same thread that's using a partitioner or from a separate
-            thread.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.Create``1(System.Collections.Generic.IList{``0},System.Boolean)">
-            <summary>
-            Creates an orderable partitioner from an <see cref="T:System.Collections.Generic.IList`1"/>
-            instance.
-            </summary>
-            <typeparam name="TSource">Type of the elements in source list.</typeparam>
-            <param name="list">The list to be partitioned.</param>
-            <param name="loadBalance">
-            A Boolean value that indicates whether the created partitioner should dynamically
-            load balance between partitions rather than statically partition.
-            </param>
-            <returns>
-            An orderable partitioner based on the input list.
-            </returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.Create``1(``0[],System.Boolean)">
-            <summary>
-            Creates an orderable partitioner from a <see cref="T:System.Array"/> instance.
-            </summary>
-            <typeparam name="TSource">Type of the elements in source array.</typeparam>
-            <param name="array">The array to be partitioned.</param>
-            <param name="loadBalance">
-            A Boolean value that indicates whether the created partitioner should dynamically load balance
-            between partitions rather than statically partition.
-            </param>
-            <returns>
-            An orderable partitioner based on the input array.
-            </returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.Create``1(System.Collections.Generic.IEnumerable{``0})">
-            <summary>
-            Creates an orderable partitioner from a <see cref="T:System.Collections.Generic.IEnumerable`1"/> instance.
-            </summary>
-            <typeparam name="TSource">Type of the elements in source enumerable.</typeparam>
-            <param name="source">The enumerable to be partitioned.</param>
-            <returns>
-            An orderable partitioner based on the input array.
-            </returns>
-            <remarks>
-            The ordering used in the created partitioner is determined by the natural order of the elements 
-            as retrieved from the source enumerable.
-            </remarks>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2">
-            <summary>
-            DynamicPartitionEnumerator_Abstract defines the enumerator for each partition for the dynamic load-balance
-            partitioning algorithm. 
-            - Partition is an enumerator of KeyValuePairs, each corresponding to an item in the data source: 
-              the key is the index in the source collection; the value is the item itself.
-            - a set of such partitions share a reader over data source. The type of the reader is specified by
-              TSourceReader. 
-            - each partition requests a contiguous chunk of elements at a time from the source data. The chunk 
-              size is initially 1, and doubles every time until it reaches the maximum chunk size. 
-              The implementation for GrabNextChunk() method has two versions: one for data source of IndexRange 
-              types (IList and the array), one for data source of IEnumerable.
-            - The method "Reset" is not supported for any partitioning algorithm.
-            - The implementation for MoveNext() method is same for all dynanmic partitioners, so we provide it
-              in this abstract class.
-            </summary>
-            <typeparam name="TSource">Type of the elements in the data source</typeparam>
-            <typeparam name="TSourceReader">Type of the reader on the data source</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.GrabNextChunk(System.Int32)">
-            <summary>
-            Abstract method to request a contiguous chunk of elements from the source collection
-            </summary>
-            <param name="requestedChunkSize">specified number of elements requested</param>
-            <returns>
-            true if we successfully reserved at least one element (up to #=requestedChunkSize) 
-            false if all elements in the source collection have been reserved.
-            </returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.Dispose">
-            <summary>
-            Dispose is abstract, and depends on the type of the source data:
-            - For source data type IList and Array, the type of the shared reader is just the dataitself.
-              We don't do anything in Dispose method for IList and Array. 
-            - For source data type IEnumerable, the type of the shared reader is an enumerator we created.
-              Thus we need to dispose this shared reader enumerator, when there is no more active partitions
-              left.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.Reset">
-            <summary>
-            Reset on partitions is not supported
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.MoveNext">
-            <summary>
-            Moves to the next element if any.
-            Try current chunk first, if the current chunk do not have any elements left, then we 
-            attempt to grab a chunk from the source collection.
-            </summary>
-            <returns>
-            true if successfully moving to the next position;
-            false otherwise, if and only if there is no more elements left in the current chunk 
-            AND the source collection is exhausted. 
-            </returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.HasNoElementsLeft">
-            <summary>
-            Abstract property, returns whether or not the shared reader has already read the last 
-            element of the source data 
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.Current">
-            <summary>
-            Get the current element in the current partition. Property required by IEnumerator interface
-            This property is abstract because the implementation is different depending on the type
-            of the source data: IList, Array or IEnumerable
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumerator_Abstract`2.System#Collections#IEnumerator#Current">
-            <summary>
-            Get the current element in the current partition. Property required by IEnumerator interface
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1">
-            <summary>
-            Inherits from DynamicPartitioners
-            Provides customized implementation of GetOrderableDynamicPartitions_Factory method, to return an instance
-            of EnumerableOfPartitionsForIEnumerator defined internally
-            </summary>
-            <typeparam name="TSource">Type of elements in the source data</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.GetOrderablePartitions(System.Int32)">
-            <summary>
-            Overrides OrderablePartitioner.GetOrderablePartitions.
-            Partitions the underlying collection into the given number of orderable partitions.
-            </summary>
-            <param name="partitionCount">number of partitions requested</param>
-            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.GetOrderableDynamicPartitions">
-            <summary>
-            Overrides OrderablePartitioner.GetOrderableDyanmicPartitions
-            </summary>
-            <returns>a enumerable collection of orderable partitions</returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.SupportsDynamicPartitions">
-            <summary>
-            Whether additional partitions can be created dynamically.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerable">
-            <summary>
-            Provides customized implementation for source data of IEnumerable
-            Different from the counterpart for IList/Array, this enumerable maintains several additional fields
-            shared by the partitions it owns, including a boolean "m_hasNoElementsLef", a shared lock, and a 
-            shared count "m_activePartitionCount"
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator">
-            <summary>
-            Inherits from DynamicPartitionEnumerator_Abstract directly
-            Provides customized implementation for: GrabNextChunk, HasNoElementsLeft, Current, Dispose
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator.GrabNextChunk(System.Int32)">
-            <summary>
-            Reserves a contiguous range of elements from source data
-            </summary>
-            <param name="requestedChunkSize">specified number of elements requested</param>
-            <returns>
-            true if we successfully reserved at least one element (up to #=requestedChunkSize) 
-            false if all elements in the source collection have been reserved.
-            </returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator.Dispose">
-            <summary>
-            If the current partition is to be disposed, we decrement the number of active partitions
-            for the shared reader. 
-            If the number of active partitions becomes 0, we need to dispose the shared reader we created
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIEnumerable`1.InternalPartitionEnumerator.HasNoElementsLeft">
-            <summary>
-            Returns whether or not the shared reader has already read the last 
-            element of the source data 
-            </summary>
-            <remarks>
-            We cannot call m_sharedReader.MoveNext(), to see if it hits the last element
-            or not, because we can't undo MoveNext(). Thus we need to maintain a shared 
-            boolean value m_hasNoElementsLeft across all partitions
-            </remarks>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2">
-            <summary>
-            Dynamic load-balance partitioner. This class is abstract and to be derived from by 
-            the customized partitioner classes for IList, Array, and IEnumerable
-            </summary>
-            <typeparam name="TSource">Type of the elements in the source data</typeparam>
-            <typeparam name="TCollection"> Type of the source data collection</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.#ctor(`1)">
-            <summary>
-            Constructs a new orderable partitioner 
-            </summary>
-            <param name="data">source data collection</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.GetOrderableDynamicPartitions_Factory(`1)">
-            <summary>
-            Partition the source data and create an enumerable over the resulting partitions. 
-            </summary>
-            <param name="data">the source data collection</param>
-            <returns>an enumerable of partitions of </returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.GetOrderablePartitions(System.Int32)">
-            <summary>
-            Overrides OrderablePartitioner.GetOrderablePartitions.
-            Partitions the underlying collection into the given number of orderable partitions.
-            </summary>
-            <param name="partitionCount">number of partitions requested</param>
-            <returns>A list containing <paramref name="partitionCount"/> enumerators.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.GetOrderableDynamicPartitions">
-            <summary>
-            Overrides OrderablePartitioner.GetOrderableDyanmicPartitions
-            </summary>
-            <returns>a enumerable collection of orderable partitions</returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIndexRange_Abstract`2.SupportsDynamicPartitions">
-            <summary>
-            Whether additional partitions can be created dynamically.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2">
-            <summary>
-            Defines dynamic partition for source data of IList and Array. 
-            This class inherits DynamicPartitionEnumerator_Abstract
-              - implements GrabNextChunk, HasNoElementsLeft, and Dispose methods for IList and Array
-              - Current property still remains abstract, implementation is different for IList and Array
-              - introduces another abstract method SourceCount, which returns the number of elements in
-                the source data. Implementation differs for IList and Array
-            </summary>
-            <typeparam name="TSource">Type of the elements in the data source</typeparam>
-            <typeparam name="TSourceReader">Type of the reader on the source data</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.GrabNextChunk(System.Int32)">
-            <summary>
-            Reserves a contiguous range of elements from source data
-            </summary>
-            <param name="requestedChunkSize">specified number of elements requested</param>
-            <returns>
-            true if we successfully reserved at least one element (up to #=requestedChunkSize) 
-            false if all elements in the source collection have been reserved.
-            </returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.Dispose">
-            <summary>
-            For source data type IList and Array, the type of the shared reader is just the data itself.
-            We don't do anything in Dispose method for IList and Array. 
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.SourceCount">
-            <summary>
-            Get the number of elements from the source reader.
-            It calls IList.Count or Array.Length
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionEnumeratorForIndexRange_Abstract`2.HasNoElementsLeft">
-            <summary>
-            Returns whether or not the shared reader has already read the last 
-            element of the source data 
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1">
-            <summary>
-            Inherits from DynamicPartitioners
-            Provides customized implementation of GetOrderableDynamicPartitions_Factory method, to return an instance
-            of EnumerableOfPartitionsForIList defined internally
-            </summary>
-            <typeparam name="TSource">Type of elements in the source data</typeparam>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1.InternalPartitionEnumerable">
-            <summary>
-            Inherits from PartitionList_Abstract 
-            Provides customized implementation for source data of IList
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1.InternalPartitionEnumerator">
-            <summary>
-            Inherits from DynamicPartitionEnumeratorForIndexRange_Abstract
-            Provides customized implementation of SourceCount property and Current property for IList
-            </summary>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.DynamicPartitionerForIList`1.InternalPartitionEnumerator.Current">
-            <summary>
-            return a KeyValuePair of the current element and its key 
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForArray`1">
-            <summary>
-            Inherits from DynamicPartitioners
-            Provides customized implementation of GetOrderableDynamicPartitions_Factory method, to return an instance
-            of EnumerableOfPartitionsForArray defined internally
-            </summary>
-            <typeparam name="TSource">Type of elements in the source data</typeparam>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForArray`1.InternalPartitionEnumerable">
-            <summary>
-            Inherits from PartitionList_Abstract 
-            Provides customized implementation for source data of Array
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.DynamicPartitionerForArray`1.InternalPartitionEnumerator">
-            <summary>
-            Inherits from DynamicPartitionEnumeratorForIndexRange_Abstract
-            Provides customized implementation of SourceCount property and Current property for Array
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2">
-            <summary>
-            Static partitioning over IList. 
-            - dynamic and load-balance
-            - Keys are ordered within each partition
-            - Keys are ordered across partitions
-            - Keys are normalized
-            - Number of partitions is fixed once specified, and the elements of the source data are 
-            distributed to each partition as evenly as possible. 
-            </summary>
-            <typeparam name="TSource">type of the elements</typeparam>        
-            <typeparam name="TCollection">Type of the source data collection</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2.CreatePartition(System.Int32,System.Int32)">
-            <summary>
-            Abstract method to create a partition that covers a range over source data, 
-            starting from "startIndex", ending at "endIndex"
-            </summary>
-            <param name="startIndex">start index of the current partition on the source data</param>
-            <param name="endIndex">end index of the current partition on the source data</param>
-            <returns>a partition enumerator over the specified range</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2.GetOrderablePartitions(System.Int32)">
-            <summary>
-            Overrides OrderablePartitioner.GetOrderablePartitions
-            Return a list of partitions, each of which enumerate a fixed part of the source data
-            The elements of the source data are distributed to each partition as evenly as possible. 
-            Specifically, if the total number of elements is N, and number of partitions is x, and N = a*x +b, 
-            where a is the quotient, and b is the remainder. Then the first b partitions each has a + 1 elements,
-            and the last x-b partitions each has a elements.
-            For example, if N=10, x =3, then 
-               partition 0 ranges [0,3],
-               partition 1 ranges [4,6],
-               partition 2 ranges [7,9].
-            This also takes care of the situation of (x&gt;N), the last x-N partitions are empty enumerators. 
-            An empty enumerator is indicated by 
-                 (m_startIndex == list.Count &amp;&amp; m_endIndex == list.Count -1)
-            </summary>
-            <param name="partitionCount">specified number of partitions</param>
-            <returns>a list of partitions</returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitioner`2.SourceCount">
-            <summary>
-            Abstract method to return the number of elements in the source data
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1">
-            <summary>
-            Static Partition for IList/Array.
-            This class implements all methods required by IEnumerator interface, except for the Current property.
-            Current Property is different for IList and Array. Arrays calls 'ldelem' instructions for faster element 
-            retrieval.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.#ctor(System.Int32,System.Int32)">
-            <summary>
-            Constructs an instance of StaticIndexRangePartition
-            </summary>
-            <param name="startIndex">the start index in the source collection for the current partition </param>
-            <param name="endIndex">the end index in the source collection for the current partition</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.Dispose">
-            <summary>
-            We don't dispose the source for IList and array
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.MoveNext">
-            <summary>
-            Moves to the next item
-            Before the first MoveNext is called: m_offset == m_startIndex-1;
-            </summary>
-            <returns>true if successful, false if there is no item left</returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.Partitioner.StaticIndexRangePartition`1.Current">
-            <summary>
-            Current Property is different for IList and Array. Arrays calls 'ldelem' instructions for faster 
-            element retrieval.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionerForIList`1">
-            <summary>
-            Inherits from StaticIndexRangePartitioner
-            Provides customized implementation of SourceCount and CreatePartition
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionForIList`1">
-            <summary>
-            Inherits from StaticIndexRangePartition
-            Provides customized implementation of Current property
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionerForArray`1">
-            <summary>
-            Inherits from StaticIndexRangePartitioner
-            Provides customized implementation of SourceCount and CreatePartition for Array
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.StaticIndexRangePartitionForArray`1">
-            <summary>
-            Inherits from StaticIndexRangePartitioner
-            Provides customized implementation of SourceCount and CreatePartition
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.Partitioner.Shared`1">
-            <summary>
-            A very simple primitive that allows us to share a value across multiple threads.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.AggregateException">
-            <summary>Represents one or more errors that occur during application execution.</summary>
-            <remarks>
-            <see cref="T:System.AggregateException"/> is used to consolidate multiple failures into a single, throwable
-            exception object.
-            </remarks>
-        </member>
-        <member name="M:System.AggregateException.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class.
-            </summary>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with
-            a specified error message.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.String,System.Exception)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with a specified error
-            message and a reference to the inner exception that is the cause of this exception.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-            <param name="innerException">The exception that is the cause of the current exception.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="innerException"/> argument
-            is null.</exception>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.Collections.Generic.IEnumerable{System.Exception})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with
-            references to the inner exceptions that are the cause of this exception.
-            </summary>
-            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
-            is null.</exception>
-            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
-            null.</exception>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.Exception[])">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with
-            references to the inner exceptions that are the cause of this exception.
-            </summary>
-            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
-            is null.</exception>
-            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
-            null.</exception>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.String,System.Collections.Generic.IEnumerable{System.Exception})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with a specified error
-            message and references to the inner exceptions that are the cause of this exception.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
-            is null.</exception>
-            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
-            null.</exception>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.String,System.Exception[])">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with a specified error
-            message and references to the inner exceptions that are the cause of this exception.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
-            is null.</exception>
-            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
-            null.</exception>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.String,System.Collections.Generic.IList{System.Exception})">
-            <summary>
-            Allocates a new aggregate exception with the specified message and list of inner exceptions.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-            <param name="innerExceptions">The exceptions that are the cause of the current exception.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="innerExceptions"/> argument
-            is null.</exception>
-            <exception cref="T:System.ArgumentException">An element of <paramref name="innerExceptions"/> is
-            null.</exception>
-        </member>
-        <member name="M:System.AggregateException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.AggregateException"/> class with serialized data.
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds
-            the serialized object data about the exception being thrown.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that
-            contains contextual information about the source or destination. </param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> argument is null.</exception>
-            <exception cref="T:System.Runtime.Serialization.SerializationException">The exception could not be deserialized correctly.</exception>
-        </member>
-        <member name="M:System.AggregateException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Sets the <see cref="T:System.Runtime.Serialization.SerializationInfo"/> with information about
-            the exception.
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds
-            the serialized object data about the exception being thrown.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that
-            contains contextual information about the source or destination. </param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="info"/> argument is null.</exception>
-        </member>
-        <member name="M:System.AggregateException.GetBaseException">
-            <summary>
-            Returns the <see cref="T:System.AggregateException"/> that is the root cause of this exception.
-            </summary>
-        </member>
-        <member name="M:System.AggregateException.Handle(System.Func{System.Exception,System.Boolean})">
-            <summary>
-            Invokes a handler on each <see cref="T:System.Exception"/> contained by this <see cref="T:System.AggregateException"/>.
-            </summary>
-            <param name="predicate">The predicate to execute for each exception. The predicate accepts as an
-            argument the <see cref="T:System.Exception"/> to be processed and returns a Boolean to indicate
-            whether the exception was handled.</param>
-            <remarks>
-            Each invocation of the <paramref name="predicate"/> returns true or false to indicate whether the
-            <see cref="T:System.Exception"/> was handled. After all invocations, if any exceptions went
-            unhandled, all unhandled exceptions will be put into a new <see cref="T:System.AggregateException"/>
-            which will be thrown. Otherwise, the <see cref="M:System.AggregateException.Handle(System.Func{System.Exception,System.Boolean})"/> method simply returns. If any
-            invocations of the <paramref name="predicate"/> throws an exception, it will halt the processing
-            of any more exceptions and immediately propagate the thrown exception as-is.
-            </remarks>
-            <exception cref="T:System.AggregateException">An exception contained by this <see cref="T:System.AggregateException"/> was not handled.</exception>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="predicate"/> argument is
-            null.</exception>
-        </member>
-        <member name="M:System.AggregateException.Flatten">
-            <summary>
-            Flattens an <see cref="T:System.AggregateException"/> instances into a single, new instance.
-            </summary>
-            <returns>A new, flattened <see cref="T:System.AggregateException"/>.</returns>
-            <remarks>
-            If any inner exceptions are themselves instances of
-            <see cref="T:System.AggregateException"/>, this method will recursively flatten all of them. The
-            inner exceptions returned in the new <see cref="T:System.AggregateException"/>
-            will be the union of all of the the inner exceptions from exception tree rooted at the provided
-            <see cref="T:System.AggregateException"/> instance.
-            </remarks>
-        </member>
-        <member name="M:System.AggregateException.ToString">
-            <summary>
-            Creates and returns a string representation of the current <see cref="T:System.AggregateException"/>.
-            </summary>
-            <returns>A string representation of the current exception.</returns>
-        </member>
-        <member name="P:System.AggregateException.InnerExceptions">
-            <summary>
-            Gets a read-only collection of the <see cref="T:System.Exception"/> instances that caused the
-            current exception.
-            </summary>
-        </member>
-        <member name="T:System.Func_`6">
-            <summary>
-            Encapsulates a method that has five parameters and returns a value of the type specified by the TResult parameter.
-            </summary>
-        </member>
-        <member name="T:System.Threading.CancellationToken">
-            <summary>
-            Propogates notification that operations should be canceled.
-            </summary>
-            <remarks>
-            <para>
-            A <see cref="T:System.Threading.CancellationToken"/> may be created directly in an unchangeable canceled or non-canceled state
-            using the CancellationToken's constructors. However, to have a CancellationToken that can change 
-            from a non-canceled to a canceled state, 
-            <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> must be used.
-            CancellationTokenSource exposes the associated CancellationToken that may be canceled by the source through its 
-            <see cref="P:System.Threading.CancellationTokenSource.Token">Token</see> property. 
-            </para>
-            <para>
-            Once canceled, a token may not transition to a non-canceled state, and a token whose 
-            <see cref="P:System.Threading.CancellationToken.CanBeCanceled"/> is false will never change to one that can be canceled.
-            </para>
-            <para>
-            All members of this struct are thread-safe and may be used concurrently from multiple threads.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CancellationToken.#ctor(System.Threading.CancellationTokenSource)">
-            <summary>
-            Internal constructor only a CancellationTokenSource should create a CancellationToken
-            </summary>
-        </member>
-        <member name="M:System.Threading.CancellationToken.#ctor(System.Boolean)">
-            <summary>
-            Initializes the <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
-            </summary>
-            <param name="canceled">
-            The canceled state for the token.
-            </param>
-            <remarks>
-            Tokens created with this constructor will remain in the canceled state specified
-            by the <paramref name="canceled"/> parameter.  If <paramref name="canceled"/> is false,
-            both <see cref="P:System.Threading.CancellationToken.CanBeCanceled"/> and <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> will be false.
-            If <paramref name="canceled"/> is true,
-            both <see cref="P:System.Threading.CancellationToken.CanBeCanceled"/> and <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> will be true. 
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CancellationToken.Register(System.Action)">
-            <summary>
-            Registers a delegate that will be called when this <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
-            </summary>
-            <remarks>
-            <para>
-            If this token is already in the canceled state, the
-            delegate will be run immediately and synchronously. Any exception the delegate generates will be
-            propogated out of this method call.
-            </para>
-            <para>
-            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, will be captured
-            along with the delegate and will be used when executing it.
-            </para>
-            </remarks>
-            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
-            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
-            be used to deregister the callback.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationToken.Register(System.Action,System.Boolean)">
-            <summary>
-            Registers a delegate that will be called when this 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
-            </summary>
-            <remarks>
-            <para>
-            If this token is already in the canceled state, the
-            delegate will be run immediately and synchronously. Any exception the delegate generates will be
-            propogated out of this method call.
-            </para>
-            <para>
-            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, will be captured
-            along with the delegate and will be used when executing it.
-            </para>
-            </remarks>
-            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
-            <param name="useSynchronizationContext">A Boolean value that indicates whether to capture
-            the current <see cref="T:System.Threading.SynchronizationContext">SynchronizationContext</see> and use it
-            when invoking the <paramref name="callback"/>.</param>
-            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
-            be used to deregister the callback.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationToken.Register(System.Action{System.Object},System.Object)">
-            <summary>
-            Registers a delegate that will be called when this 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
-            </summary>
-            <remarks>
-            <para>
-            If this token is already in the canceled state, the
-            delegate will be run immediately and synchronously. Any exception the delegate generates will be
-            propogated out of this method call.
-            </para>
-            <para>
-            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, will be captured
-            along with the delegate and will be used when executing it.
-            </para>
-            </remarks>
-            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
-            <param name="state">The state to pass to the <paramref name="callback"/> when the delegate is invoked.  This may be null.</param>
-            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
-            be used to deregister the callback.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationToken.Register(System.Action{System.Object},System.Object,System.Boolean)">
-            <summary>
-            Registers a delegate that will be called when this 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.
-            </summary>
-            <remarks>
-            <para>
-            If this token is already in the canceled state, the
-            delegate will be run immediately and synchronously. Any exception the delegate generates will be
-            propogated out of this method call.
-            </para>
-            <para>
-            The current <see cref="T:System.Threading.ExecutionContext">ExecutionContext</see>, if one exists, 
-            will be captured along with the delegate and will be used when executing it.
-            </para>
-            </remarks>
-            <param name="callback">The delegate to be executed when the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> is canceled.</param>
-            <param name="state">The state to pass to the <paramref name="callback"/> when the delegate is invoked.  This may be null.</param>
-            <param name="useSynchronizationContext">A Boolean value that indicates whether to capture
-            the current <see cref="T:System.Threading.SynchronizationContext">SynchronizationContext</see> and use it
-            when invoking the <paramref name="callback"/>.</param>
-            <returns>The <see cref="T:System.Threading.CancellationTokenRegistration"/> instance that can 
-            be used to deregister the callback.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="callback"/> is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationToken.Equals(System.Threading.CancellationToken)">
-            <summary>
-            Determines whether the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance is equal to the 
-            specified token.
-            </summary>
-            <param name="other">The other <see cref="T:System.Threading.CancellationToken">CancellationToken</see> to which to compare this
-            instance.</param>
-            <returns>True if the instances are equal; otherwise, false. Two tokens are equal if they are associated
-            with the same <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> or if they were both constructed 
-            from public CancellationToken constructors and their <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> values are equal.</returns>
-        </member>
-        <member name="M:System.Threading.CancellationToken.Equals(System.Object)">
-            <summary>
-            Determines whether the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance is equal to the 
-            specified <see cref="T:System.Object"/>.
-            </summary>
-            <param name="other">The other object to which to compare this instance.</param>
-            <returns>True if <paramref name="other"/> is a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            and if the two instances are equal; otherwise, false. Two tokens are equal if they are associated
-            with the same <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> or if they were both constructed 
-            from public CancellationToken constructors and their <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> values are equal.</returns>
-            <exception cref="T:System.ObjectDisposedException">An associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationToken.GetHashCode">
-            <summary>
-            Serves as a hash function for a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
-            </summary>
-            <returns>A hash code for the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance.</returns>
-        </member>
-        <member name="M:System.Threading.CancellationToken.op_Equality(System.Threading.CancellationToken,System.Threading.CancellationToken)">
-            <summary>
-            Determines whether two <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instances are equal.
-            </summary>
-            <param name="left">The first instance.</param>
-            <param name="right">The second instance.</param>
-            <returns>True if the instances are equal; otherwise, false.</returns>
-            <exception cref="T:System.ObjectDisposedException">An associated <see
-            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationToken.op_Inequality(System.Threading.CancellationToken,System.Threading.CancellationToken)">
-            <summary>
-            Determines whether two <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instances are not equal.
-            </summary>
-            <param name="left">The first instance.</param>
-            <param name="right">The second instance.</param>
-            <returns>True if the instances are not equal; otherwise, false.</returns>
-            <exception cref="T:System.ObjectDisposedException">An associated <see
-            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationToken.ThrowIfCancellationRequested">
-            <summary>
-            Throws a <see cref="T:System.OperationCanceledException">OperationCanceledException</see> if
-            this token has had cancellation requested.
-            </summary>
-            <remarks>
-            This method provides functionality equivalent to:
-            <code>
-            if (token.IsCancellationRequested) 
-               throw new OperationCanceledException(token);
-            </code>
-            </remarks>
-            <exception cref="T:System.OperationCanceledException">The token has had cancellation requested.</exception>
-            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="P:System.Threading.CancellationToken.None">
-            <summary>
-            Returns an empty CancellationToken value.
-            </summary>
-            <remarks>
-            The <see cref="T:System.Threading.CancellationToken"/> value returned by this property will be non-cancelable by default.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.CancellationToken.IsCancellationRequested">
-            <summary>
-            Gets whether cancellation has been requested for this token.
-            </summary>
-            <value>Whether cancellation has been requested for this token.</value>
-            <remarks>
-            <para>
-            This property indicates whether cancellation has been requested for this token, 
-            either through the token initially being construted in a canceled state, or through
-            calling <see cref="M:System.Threading.CancellationTokenSource.Cancel">Cancel</see> 
-            on the token's associated <see cref="T:System.Threading.CancellationTokenSource"/>.
-            </para>
-            <para>
-            If this property is true, it only guarantees that cancellation has been requested.  
-            It does not guarantee that every registered handler
-            has finished executing, nor that cancellation requests have finished propagating
-            to all registered handlers.  Additional synchronization may be required,
-            particularly in situations where related objects are being canceled concurrently.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:System.Threading.CancellationToken.CanBeCanceled">
-            <summary>
-            Gets whether this token is capable of being in the canceled state.
-            </summary>
-            <remarks>
-            If CanBeCanceled returns false, it is guaranteed that the token will never transition
-            into a canceled state, meaning that <see cref="P:System.Threading.CancellationToken.IsCancellationRequested"/> will never
-            return true.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.CancellationToken.WaitHandle">
-            <summary>
-            Gets a <see cref="T:System.Threading.WaitHandle"/> that is signaled when the token is canceled.</summary>
-            <remarks>
-            Accessing this property causes a <see cref="T:System.Threading.WaitHandle">WaitHandle</see>
-            to be instantiated.  It is preferable to only use this property when necessary, and to then
-            dispose the associated <see cref="T:System.Threading.CancellationTokenSource"/> instance at the earliest opportunity (disposing
-            the source will dispose of this allocated handle).  The handle should not be closed or disposed directly.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">The associated <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> has been disposed.</exception>
-        </member>
-        <member name="T:System.Threading.CancellationTokenRegistration">
-            <summary>
-            Represents a callback delegate that has been registered with a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
-            </summary>
-            <remarks>
-            To unregister a callback, dispose the corresponding Registration instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CancellationTokenRegistration.TryDeregister">
-            <summary>
-            Attempts to deregister the item. If it's already being run, this may fail.
-            Entails a full memory fence.
-            </summary>
-            <returns>True if the callback was found and deregistered, false otherwise.</returns>
-        </member>
-        <member name="M:System.Threading.CancellationTokenRegistration.Dispose">
-            <summary>
-            Disposes of the registration and unregisters the target callback from the associated 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
-            If the target callback is currently executing this method will wait until it completes, except
-            in the degenerate cases where a callback method deregisters itself.
-            </summary>
-        </member>
-        <member name="M:System.Threading.CancellationTokenRegistration.op_Equality(System.Threading.CancellationTokenRegistration,System.Threading.CancellationTokenRegistration)">
-            <summary>
-            Determines whether two <see
-            cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see>
-            instances are equal.
-            </summary>
-            <param name="left">The first instance.</param>
-            <param name="right">The second instance.</param>
-            <returns>True if the instances are equal; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Threading.CancellationTokenRegistration.op_Inequality(System.Threading.CancellationTokenRegistration,System.Threading.CancellationTokenRegistration)">
-            <summary>
-            Determines whether two <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instances are not equal.
-            </summary>
-            <param name="left">The first instance.</param>
-            <param name="right">The second instance.</param>
-            <returns>True if the instances are not equal; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Threading.CancellationTokenRegistration.Equals(System.Object)">
-            <summary>
-            Determines whether the current <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instance is equal to the 
-            specified <see cref="T:System.Object"/>.
-            </summary> 
-            <param name="obj">The other object to which to compare this instance.</param>
-            <returns>True, if both this and <paramref name="obj"/> are equal. False, otherwise.
-            Two <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instances are equal if
-            they both refer to the output of a single call to the same Register method of a 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>. 
-            </returns>
-        </member>
-        <member name="M:System.Threading.CancellationTokenRegistration.Equals(System.Threading.CancellationTokenRegistration)">
-            <summary>
-            Determines whether the current <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instance is equal to the 
-            specified <see cref="T:System.Object"/>.
-            </summary> 
-            <param name="other">The other <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> to which to compare this instance.</param>
-            <returns>True, if both this and <paramref name="other"/> are equal. False, otherwise.
-            Two <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instances are equal if
-            they both refer to the output of a single call to the same Register method of a 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>. 
-            </returns>
-        </member>
-        <member name="M:System.Threading.CancellationTokenRegistration.GetHashCode">
-            <summary>
-            Serves as a hash function for a <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration.</see>.
-            </summary>
-            <returns>A hash code for the current <see cref="T:System.Threading.CancellationTokenRegistration">CancellationTokenRegistration</see> instance.</returns>
-        </member>
-        <member name="T:System.Threading.CancellationTokenSource">
-            <summary>
-            Signals to a <see cref="T:System.Threading.CancellationToken"/> that it should be canceled.
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:System.Threading.CancellationTokenSource"/> is used to instantiate a <see cref="T:System.Threading.CancellationToken"/>
-            (via the source's <see cref="P:System.Threading.CancellationTokenSource.Token">Token</see> property)
-            that can be handed to operations that wish to be notified of cancellation or that can be used to
-            register asynchronous operations for cancellation. That token may have cancellation requested by
-            calling to the source's <see cref="M:System.Threading.CancellationTokenSource.Cancel">Cancel</see>
-            method.
-            </para>
-            <para>
-            All members of this class, except <see cref="M:System.Threading.CancellationTokenSource.Dispose">Dispose</see>, are thread-safe and may be used
-            concurrently from multiple threads.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:System.Threading.CancellationTokenSource.m_threadIDExecutingCallbacks">
-            The ID of the thread currently executing the main body of CTS.Cancel()
-            this helps us to know if a call to ctr.Dispose() is running 'within' a cancellation callback.
-            This is updated as we move between the main thread calling cts.Cancel() and any syncContexts that are used to 
-            actually run the callbacks.
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.#ctor">
-            <summary>
-            Initializes the <see cref="T:System.Threading.CancellationTokenSource"/>.
-            </summary>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.Cancel">
-            <summary>
-            Communicates a request for cancellation.
-            </summary>
-            <remarks>
-            <para>
-            The associated <see cref="T:System.Threading.CancellationToken"/> will be
-            notified of the cancellation and will transition to a state where 
-            <see cref="P:System.Threading.CancellationToken.IsCancellationRequested">IsCancellationRequested</see> returns true. 
-            Any callbacks or cancelable operations
-            registered with the <see cref="T:System.Threading.CancellationToken"/>  will be executed.
-            </para>
-            <para>
-            Cancelable operations and callbacks registered with the token should not throw exceptions.
-            However, this overload of Cancel will aggregate any exceptions thrown into a <see cref="T:System.AggregateException"/>,
-            such that one callback throwing an exception will not prevent other registered callbacks from being executed.
-            </para>
-            <para>
-            The <see cref="T:System.Threading.ExecutionContext"/> that was captured when each callback was registered
-            will be reestablished when the callback is invoked.
-            </para>
-            </remarks>
-            <exception cref="T:System.AggregateException">An aggregate exception containing all the exceptions thrown
-            by the registered callbacks on the associated <see cref="T:System.Threading.CancellationToken"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">This <see cref="T:System.Threading.CancellationTokenSource"/> has been disposed.</exception> 
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.Cancel(System.Boolean)">
-            <summary>
-            Communicates a request for cancellation.
-            </summary>
-            <remarks>
-            <para>
-            The associated <see cref="T:System.Threading.CancellationToken"/> will be
-            notified of the cancellation and will transition to a state where 
-            <see cref="P:System.Threading.CancellationToken.IsCancellationRequested">IsCancellationRequested</see> returns true. 
-            Any callbacks or cancelable operations
-            registered with the <see cref="T:System.Threading.CancellationToken"/>  will be executed.
-            </para>
-            <para>
-            Cancelable operations and callbacks registered with the token should not throw exceptions. 
-            If <paramref name="throwOnFirstException"/> is true, an exception will immediately propagate out of the
-            call to Cancel, preventing the remaining callbacks and cancelable operations from being processed.
-            If <paramref name="throwOnFirstException"/> is false, this overload will aggregate any 
-            exceptions thrown into a <see cref="T:System.AggregateException"/>,
-            such that one callback throwing an exception will not prevent other registered callbacks from being executed.
-            </para>
-            <para>
-            The <see cref="T:System.Threading.ExecutionContext"/> that was captured when each callback was registered
-            will be reestablished when the callback is invoked.
-            </para>
-            </remarks>
-            <param name="throwOnFirstException">Specifies whether exceptions should immediately propagate.</param>
-            <exception cref="T:System.AggregateException">An aggregate exception containing all the exceptions thrown
-            by the registered callbacks on the associated <see cref="T:System.Threading.CancellationToken"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">This <see cref="T:System.Threading.CancellationTokenSource"/> has been disposed.</exception> 
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.Dispose">
-            <summary>
-            Releases the resources used by this <see cref="T:System.Threading.CancellationTokenSource" />.
-            </summary>
-            <remarks>
-            This method is not thread-safe for any other concurrent calls.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.ThrowIfDisposed">
-            <summary>
-            Throws an exception if the source has been disposed.
-            </summary>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.InternalGetStaticSource(System.Boolean)">
-            <summary>
-            InternalGetStaticSource()
-            </summary>
-            <param name="set">Whether the source should be set.</param>
-            <returns>A static source to be shared among multiple tokens.</returns>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.InternalRegister(System.Action{System.Object},System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext)">
-            <summary>
-            Registers a callback object. If cancellation has already occurred, the
-            callback will have been run by the time this method returns.
-            </summary>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.NotifyCancellation(System.Boolean)">
-            <summary>
-            
-            </summary>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(System.Boolean)">
-            <summary>
-            Invoke the Canceled event.
-            </summary>
-            <remarks>
-            The handlers are invoked synchronously in LIFO order.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken,System.Threading.CancellationToken)">
-            <summary>
-            Creates a <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that will be in the canceled state
-            when any of the source tokens are in the canceled state.
-            </summary>
-            <param name="token1">The first <see cref="T:System.Threading.CancellationToken">CancellationToken</see> to observe.</param>
-            <param name="token2">The second <see cref="T:System.Threading.CancellationToken">CancellationToken</see> to observe.</param>
-            <returns>A <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that is linked 
-            to the source tokens.</returns>
-            <exception cref="T:System.ObjectDisposedException">A <see
-            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with
-            one of the source tokens has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CancellationTokenSource.CreateLinkedTokenSource(System.Threading.CancellationToken[])">
-            <summary>
-            Creates a <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that will be in the canceled state
-            when any of the source tokens are in the canceled state.
-            </summary>
-            <param name="tokens">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> instances to observe.</param>
-            <returns>A <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> that is linked 
-            to the source tokens.</returns>
-            <exception cref="T:System.ArgumentNullException"><paramref name="tokens"/> is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">A <see
-            cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with
-            one of the source tokens has been disposed.</exception>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.IsCancellationRequested">
-            <summary>
-            Gets whether cancellation has been requested for this <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see>.
-            </summary>
-            <value>Whether cancellation has been requested for this <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see>.</value>
-            <remarks>
-            <para>
-            This property indicates whether cancellation has been requested for this token source, such as
-            due to a call to its
-            <see cref="M:System.Threading.CancellationTokenSource.Cancel">Cancel</see> method.
-            </para>
-            <para>
-            If this property returns true, it only guarantees that cancellation has been requested. It does not
-            guarantee that every handler registered with the corresponding token has finished executing, nor
-            that cancellation requests have finished propagating to all registered handlers. Additional
-            synchronization may be required, particularly in situations where related objects are being
-            canceled concurrently.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.IsCancellationCompleted">
-            <summary>
-            A simple helper to determine whether cancellation has finished.
-            </summary>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.IsDisposed">
-            <summary>
-            A simple helper to determine whether disposal has occured.
-            </summary>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.ThreadIDExecutingCallbacks">
-            <summary>
-            The ID of the thread that is running callbacks.
-            </summary>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.Token">
-            <summary>
-            Gets the <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            associated with this <see cref="T:System.Threading.CancellationTokenSource"/>.
-            </summary>
-            <value>The <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            associated with this <see cref="T:System.Threading.CancellationTokenSource"/>.</value>
-            <exception cref="T:System.ObjectDisposedException">The token source has been
-            disposed.</exception>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.CanBeCanceled">
-             <summary>
-            
-             </summary>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.WaitHandle">
-             <summary>
-            
-             </summary>
-        </member>
-        <member name="P:System.Threading.CancellationTokenSource.ExecutingCallback">
-            <summary>
-            The currently executing callback
-            </summary>
-        </member>
-        <member name="T:System.Threading.CancellationCallbackInfo">
-            <summary>
-            A helper class for collating the various bits of information required to execute 
-            cancellation callbacks.
-            </summary>
-        </member>
-        <member name="M:System.Threading.CancellationCallbackInfo.ExecuteCallback">
-            <summary>
-            InternalExecuteCallbackSynchronously_GeneralPath
-            This will be called on the target synchronization context, however, we still need to restore the required execution context
-            </summary>
-        </member>
-        <member name="T:System.Threading.SparselyPopulatedArray`1">
-            <summary>
-            A sparsely populated array.  Elements can be sparse and some null, but this allows for
-            lock-free additions and growth, and also for constant time removal (by nulling out).
-            </summary>
-            <typeparam name="T">The kind of elements contained within.</typeparam>
-        </member>
-        <member name="M:System.Threading.SparselyPopulatedArray`1.#ctor(System.Int32)">
-            <summary>
-            Allocates a new array with the given initial size.
-            </summary>
-            <param name="initialSize">How many array slots to pre-allocate.</param>
-        </member>
-        <member name="M:System.Threading.SparselyPopulatedArray`1.Add(`0)">
-            <summary>
-            Adds an element in the first available slot, beginning the search from the tail-to-head.
-            If no slots are available, the array is grown.  The method doesn't return until successful.
-            </summary>
-            <param name="element">The element to add.</param>
-            <returns>Information about where the add happened, to enable O(1) deregistration.</returns>
-        </member>
-        <member name="P:System.Threading.SparselyPopulatedArray`1.Head">
-            <summary>
-            The head of the doubly linked list.
-            </summary>
-        </member>
-        <member name="P:System.Threading.SparselyPopulatedArray`1.Tail">
-            <summary>
-            The tail of the doubly linked list.
-            </summary>
-        </member>
-        <member name="T:System.Threading.SparselyPopulatedArrayAddInfo`1">
-            <summary>
-            A struct to hold a link to the exact spot in an array an element was inserted, enabling
-            constant time removal later on.
-            </summary>
-        </member>
-        <member name="T:System.Threading.SparselyPopulatedArrayFragment`1">
-            <summary>
-            A fragment of a sparsely populated array, doubly linked.
-            </summary>
-            <typeparam name="T">The kind of elements contained within.</typeparam>
-        </member>
-        <member name="T:System.Threading.CountdownEvent">
-            <summary>
-            Represents a synchronization primitive that is signaled when its count reaches zero.
-            </summary>
-            <remarks>
-            All public and protected members of <see cref="T:System.Threading.CountdownEvent"/> are thread-safe and may be used
-            concurrently from multiple threads, with the exception of Dispose, which
-            must only be used when all other operations on the <see cref="T:System.Threading.CountdownEvent"/> have
-            completed, and Reset, which should only be used when no other threads are
-            accessing the event.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of <see cref="T:System.Threading.CountdownEvent"/> class with the
-            specified count.
-            </summary>
-            <param name="initialCount">The number of signals required to set the <see
-            cref="T:System.Threading.CountdownEvent"/>.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="initialCount"/> is less
-            than 0.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Dispose">
-            <summary>
-            Releases all resources used by the current instance of <see cref="T:System.Threading.CountdownEvent"/>.
-            </summary>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, <see cref="M:System.Threading.CountdownEvent.Dispose"/> is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Dispose(System.Boolean)">
-            <summary>
-            When overridden in a derived class, releases the unmanaged resources used by the
-            <see cref="T:System.Threading.CountdownEvent"/>, and optionally releases the managed resources.
-            </summary>
-            <param name="disposing">true to release both managed and unmanaged resources; false to release
-            only unmanaged resources.</param>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, <see cref="M:System.Threading.CountdownEvent.Dispose"/> is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Signal">
-            <summary>
-            Registers a signal with the <see cref="T:System.Threading.CountdownEvent"/>, decrementing its
-            count.
-            </summary>
-            <returns>true if the signal caused the count to reach zero and the event was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.InvalidOperationException">The current instance is already set.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Signal(System.Int32)">
-            <summary>
-            Registers multiple signals with the <see cref="T:System.Threading.CountdownEvent"/>,
-            decrementing its count by the specified amount.
-            </summary>
-            <param name="signalCount">The number of signals to register.</param>
-            <returns>true if the signals caused the count to reach zero and the event was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.InvalidOperationException">
-            The current instance is already set. -or- Or <paramref name="signalCount"/> is greater than <see cref="P:System.Threading.CountdownEvent.CurrentCount"/>.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="signalCount"/> is less
-            than 1.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.AddCount">
-            <summary>
-            Increments the <see cref="T:System.Threading.CountdownEvent"/>'s current count by one.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">The current instance is already
-            set.</exception>
-            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The current instance has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.TryAddCount">
-            <summary>
-            Attempts to increment the <see cref="T:System.Threading.CountdownEvent"/>'s current count by one.
-            </summary>
-            <returns>true if the increment succeeded; otherwise, false. If <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is
-            already at zero. this will return false.</returns>
-            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.AddCount(System.Int32)">
-            <summary>
-            Increments the <see cref="T:System.Threading.CountdownEvent"/>'s current count by a specified
-            value.
-            </summary>
-            <param name="signalCount">The value by which to increase <see cref="P:System.Threading.CountdownEvent.CurrentCount"/>.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="signalCount"/> is less than
-            0.</exception>
-            <exception cref="T:System.InvalidOperationException">The current instance is already
-            set.</exception>
-            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.TryAddCount(System.Int32)">
-            <summary>
-            Attempts to increment the <see cref="T:System.Threading.CountdownEvent"/>'s current count by a
-            specified value.
-            </summary>
-            <param name="signalCount">The value by which to increase <see cref="P:System.Threading.CountdownEvent.CurrentCount"/>.</param>
-            <returns>true if the increment succeeded; otherwise, false. If <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is
-            already at zero this will return false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="signalCount"/> is less
-            than 0.</exception>
-            <exception cref="T:System.InvalidOperationException">The current instance is already
-            set.</exception>
-            <exception cref="T:System.InvalidOperationException"><see cref="P:System.Threading.CountdownEvent.CurrentCount"/> is equal to <see cref="T:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Reset">
-            <summary>
-            Resets the <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> to the value of <see cref="P:System.Threading.CountdownEvent.InitialCount"/>.
-            </summary>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, Reset is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed..</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Reset(System.Int32)">
-            <summary>
-            Resets the <see cref="P:System.Threading.CountdownEvent.CurrentCount"/> to a specified value.
-            </summary>
-            <param name="count">The number of signals required to set the <see cref="T:System.Threading.CountdownEvent"/>.</param>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.CountdownEvent"/>, Reset is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="count"/> is
-            less than 0.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has alread been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Wait">
-            <summary>
-            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set.
-            </summary>
-            <remarks>
-            The caller of this method blocks indefinitely until the current instance is set. The caller will
-            return immediately if the event is currently in a set state.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Wait(System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, while
-            observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <remarks>
-            The caller of this method blocks indefinitely until the current instance is set. The caller will
-            return immediately if the event is currently in a set state.  If the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> being observed
-            is canceled during the wait operation, an <see cref="T:System.OperationCanceledException"/>
-            will be thrown.
-            </remarks>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
-            canceled.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Wait(System.TimeSpan)">
-            <summary>
-            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using a
-            <see cref="T:System.TimeSpan"/> to measure the time interval.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
-            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
-            wait indefinitely.</param>
-            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
-            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
-            than <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Wait(System.TimeSpan,System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using
-            a <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a
-            <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
-            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
-            wait indefinitely.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
-            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
-            than <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has
-            been canceled.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Wait(System.Int32)">
-            <summary>
-            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using a
-            32-bit signed integer to measure the time interval.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
-            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.Wait(System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until the <see cref="T:System.Threading.CountdownEvent"/> is set, using a
-            32-bit signed integer to measure the time interval, while observing a
-            <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <returns>true if the <see cref="T:System.Threading.CountdownEvent"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has
-            been canceled.</exception>
-        </member>
-        <member name="M:System.Threading.CountdownEvent.ThrowIfDisposed">
-            <summary>
-            Throws an exception if the latch has been disposed.
-            </summary>
-        </member>
-        <member name="P:System.Threading.CountdownEvent.CurrentCount">
-            <summary>
-            Gets the number of remaining signals required to set the event.
-            </summary>
-            <value>
-            The number of remaining signals required to set the event.
-            </value>
-        </member>
-        <member name="P:System.Threading.CountdownEvent.InitialCount">
-            <summary>
-            Gets the numbers of signals initially required to set the event.
-            </summary>
-            <value>
-            The number of signals initially required to set the event.
-            </value>
-        </member>
-        <member name="P:System.Threading.CountdownEvent.IsSet">
-            <summary>
-            Determines whether the event is set.
-            </summary>
-            <value>true if the event is set; otherwise, false.</value>
-        </member>
-        <member name="P:System.Threading.CountdownEvent.WaitHandle">
-            <summary>
-            Gets a <see cref="T:System.Threading.WaitHandle"/> that is used to wait for the event to be set. 
-            </summary>
-            <value>A <see cref="T:System.Threading.WaitHandle"/> that is used to wait for the event to be set.</value>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been disposed.</exception>
-            <remarks>
-            <see cref="P:System.Threading.CountdownEvent.WaitHandle"/> should only be used if it's needed for integration with code bases
-            that rely on having a WaitHandle.  If all that's needed is to wait for the <see cref="T:System.Threading.CountdownEvent"/>
-            to be set, the <see cref="M:System.Threading.CountdownEvent.Wait"/> method should be preferred.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.ManualResetEventSlim">
-            <summary>
-            Provides a slimmed down version of <see cref="T:System.Threading.ManualResetEvent"/>.
-            </summary>
-            <remarks>
-            All public and protected members of <see cref="T:System.Threading.ManualResetEventSlim"/> are thread-safe and may be used
-            concurrently from multiple threads, with the exception of Dispose, which
-            must only be used when all other operations on the <see cref="T:System.Threading.ManualResetEventSlim"/> have
-            completed, and Reset, which should only be used when no other threads are
-            accessing the event.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.ManualResetEventSlim"/>
-            class with an initial state of nonsignaled.
-            </summary>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.#ctor(System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.ManualResetEventSlim"/>
-            class with a Boolen value indicating whether to set the intial state to signaled.
-            </summary>
-            <param name="initialState">true to set the initial state signaled; false to set the initial state
-            to nonsignaled.</param>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.#ctor(System.Boolean,System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.ManualResetEventSlim"/>
-            class with a Boolen value indicating whether to set the intial state to signaled and a specified
-            spin count.
-            </summary>
-            <param name="initialState">true to set the initial state to signaled; false to set the initial state
-            to nonsignaled.</param>
-            <param name="spinCount">The number of spin waits that will occur before falling back to a true
-            wait.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="spinCount"/> is less than
-            0 or greater than the maximum allowed value.</exception>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Initialize(System.Boolean,System.Int32)">
-            <summary>
-            Initializes the internal state of the event.
-            </summary>
-            <param name="initialState">Whether the event is set initially or not.</param>
-            <param name="spinCount">The spin count that decides when the event will block.</param>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.EnsureLockObjectCreated">
-            <summary>
-            Helper to ensure the lock object is created before first use.
-            </summary>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.LazyInitializeEvent">
-            <summary>
-            This method lazily initializes the event object. It uses CAS to guarantee that
-            many threads racing to call this at once don't result in more than one event
-            being stored and used. The event will be signaled or unsignaled depending on
-            the state of the thin-event itself, with synchronization taken into account.
-            </summary>
-            <returns>True if a new event was created and stored, false otherwise.</returns>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Set">
-            <summary>
-            Sets the state of the event to signaled, which allows one or more threads waiting on the event to
-            proceed.
-            </summary>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Set(System.Boolean)">
-            <summary>
-            Private helper to actually perform the Set.
-            </summary>
-            <param name="duringCancellation">Indicates whether we are calling Set() during cancellation.</param>
-            <exception cref="T:System.OperationCanceledException">The object has been canceled.</exception>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Reset">
-            <summary>
-            Sets the state of the event to nonsignaled, which causes threads to block.
-            </summary>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.ManualResetEventSlim"/>, <see cref="M:System.Threading.ManualResetEventSlim.Reset"/> is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Wait">
-            <summary>
-            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The maximum number of waiters has been exceeded.
-            </exception>
-            <remarks>
-            The caller of this method blocks indefinitely until the current instance is set. The caller will
-            return immediately if the event is currently in a set state.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> receives a signal,
-            while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <exception cref="T:System.InvalidOperationException">
-            The maximum number of waiters has been exceeded.
-            </exception>
-            <exception cref="T:System.OperationCanceledExcepton"><paramref name="cancellationToken"/> was
-            canceled.</exception>
-            <remarks>
-            The caller of this method blocks indefinitely until the current instance is set. The caller will
-            return immediately if the event is currently in a set state.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.TimeSpan)">
-            <summary>
-            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
-            <see cref="T:System.TimeSpan"/> to measure the time interval.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
-            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
-            than <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The maximum number of waiters has been exceeded.
-            </exception>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.TimeSpan,System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
-            <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
-            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
-            than <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.Threading.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The maximum number of waiters has been exceeded.
-            </exception>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.Int32)">
-            <summary>
-            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
-            32-bit signed integer to measure the time interval.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
-            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The maximum number of waiters has been exceeded.
-            </exception>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Wait(System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until the current <see cref="T:System.Threading.ManualResetEventSlim"/> is set, using a
-            32-bit signed integer to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <returns>true if the <see cref="T:System.Threading.ManualResetEventSlim"/> was set; otherwise,
-            false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The maximum number of waiters has been exceeded.
-            </exception>
-            <exception cref="T:System.Threading.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Dispose">
-            <summary>
-            Releases all resources used by the current instance of <see cref="T:System.Threading.ManualResetEventSlim"/>.
-            </summary>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.ManualResetEventSlim"/>, <see cref="M:System.Threading.ManualResetEventSlim.Dispose"/> is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.Dispose(System.Boolean)">
-            <summary>
-            When overridden in a derived class, releases the unmanaged resources used by the 
-            <see cref="T:System.Threading.ManualResetEventSlim"/>, and optionally releases the managed resources.
-            </summary>
-            <param name="disposing">true to release both managed and unmanaged resources;
-            false to release only unmanaged resources.</param>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.ManualResetEventSlim"/>, <see cref="M:System.Threading.ManualResetEventSlim.Dispose(System.Boolean)"/> is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.ThrowIfDisposed">
-            <summary>
-            Throw ObjectDisposedException if the MRES is disposed
-            </summary>
-        </member>
-        <member name="F:System.Threading.ManualResetEventSlim.s_cancellationTokenCallback">
-            <summary>
-            Private helper method to wake up waiters when a cancellationToken gets canceled.
-            </summary>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.UpdateStateAtomically(System.Int32,System.Int32)">
-            <summary>
-            Private helper method for updating parts of a bit-string state value.
-            Mainly called from the IsSet and Waiters properties setters
-            </summary>
-            <remarks>
-            Note: the parameter types must be int as CompareExchange cannot take a Uint
-            </remarks>
-            <param name="newBits">The new value</param>
-            <param name="updateBitsMask">The mask used to set the bits</param>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.ExtractStatePortionAndShiftRight(System.Int32,System.Int32,System.Int32)">
-            <summary>
-            Private helper method - performs Mask and shift, particular helpful to extract a field from a packed word.
-            eg ExtractStatePortionAndShiftRight(0x12345678, 0xFF000000, 24) => 0x12, ie extracting the top 8-bits as a simple integer 
-            
-            ?? is there a common place to put this rather than being private to MRES?
-            </summary>
-            <param name="state"></param>
-            <param name="mask"></param>
-            <param name="rightBitShiftCount"></param>
-            <returns></returns>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.ExtractStatePortion(System.Int32,System.Int32)">
-            <summary>
-            Performs a Mask operation, but does not perform the shift.
-            This is acceptable for boolean values for which the shift is unnecessary
-            eg (val &amp; Mask) != 0 is an appropriate way to extract a boolean rather than using
-            ((val &amp; Mask) &gt;&gt; shiftAmount) == 1
-            
-            ?? is there a common place to put this rather than being private to MRES?
-            </summary>
-            <param name="state"></param>
-            <param name="mask"></param>
-        </member>
-        <member name="M:System.Threading.ManualResetEventSlim.UpdateTimeOut(System.Int64,System.Int32)">
-            <summary>
-            Helper function to measure and update the wait time
-            </summary>
-            <param name="startTimeTicks"> The first time (in Ticks) observed when the wait started.</param>
-            <param name="originalWaitMillisecondsTimeout">The orginal wait timeoutout in milliseconds.</param>
-            <returns>The new wait time in milliseconds, -1 if the time expired, -2 if overflow in counters
-            has occurred.</returns>
-        </member>
-        <member name="P:System.Threading.ManualResetEventSlim.WaitHandle">
-            <summary>
-            Gets the underlying <see cref="T:System.Threading.WaitHandle"/> object for this <see cref="T:System.Threading.ManualResetEventSlim"/>.
-            </summary>
-            <value>The underlying <see cref="T:System.Threading.WaitHandle"/> event object fore this <see cref="T:System.Threading.ManualResetEventSlim"/>.</value>
-            <remarks>
-            Accessing this property forces initialization of an underlying event object if one hasn't
-            already been created.  To simply wait on this <see cref="T:System.Threading.ManualResetEventSlim"/>, 
-            the public Wait methods should be preferred.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.ManualResetEventSlim.IsSet">
-            <summary>
-            Gets whether the event is set.
-            </summary>
-            <value>true if the event has is set; otherwise, false.</value>
-        </member>
-        <member name="P:System.Threading.ManualResetEventSlim.SpinCount">
-            <summary>
-            Gets the number of spin waits that will be occur before falling back to a true wait.
-            </summary>
-        </member>
-        <member name="P:System.Threading.ManualResetEventSlim.Waiters">
-            <summary>
-            How many threads are waiting.
-            </summary>
-        </member>
-        <member name="T:System.Lazy`1">
-            <summary>
-            Provides support for lazy initialization.
-            </summary>
-            <typeparam name="T">Specifies the type of element being laziliy initialized.</typeparam>
-            <remarks>
-            <para>
-            By default, all public and protected members of <see cref="T:System.Lazy`1"/> are thread-safe and may be used
-            concurrently from multiple threads.  These thread-safety guarantees may be removed optionally and per instance
-            using parameters to the type's constructors.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Lazy`1.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class that 
-            uses <typeparamref name="T"/>'s default constructor for lazy initialization.
-            </summary>
-            <remarks>
-            An instance created with this constructor may be used concurrently from multiple threads.
-            </remarks>
-        </member>
-        <member name="M:System.Lazy`1.#ctor(System.Func{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class that uses a
-            specified initialization function.
-            </summary>
-            <param name="valueFactory">
-            The <see cref="T:System.Func{T}"/> invoked to produce the lazily-initialized value when it is
-            needed.
-            </param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is a null
-            reference (Nothing in Visual Basic).</exception>
-            <remarks>
-            An instance created with this constructor may be used concurrently from multiple threads.
-            </remarks>
-        </member>
-        <member name="M:System.Lazy`1.#ctor(System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/>
-            class that uses <typeparamref name="T"/>'s default constructor and a specified thread-safety mode.
-            </summary>
-            <param name="isThreadSafe">true if this instance should be usable by multiple threads concurrently; false if the instance will only be used by one thread at a time.
-            </param>
-        </member>
-        <member name="M:System.Lazy`1.#ctor(System.Threading.LazyThreadSafetyMode)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/>
-            class that uses <typeparamref name="T"/>'s default constructor and a specified thread-safety mode.
-            </summary>
-            <param name="mode">The lazy thread-safety mode mode</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> mode contains an invalid valuee</exception>
-        </member>
-        <member name="M:System.Lazy`1.#ctor(System.Func{`0},System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class
-            that uses a specified initialization function and a specified thread-safety mode.
-            </summary>
-            <param name="valueFactory">
-            The <see cref="T:System.Func{T}"/> invoked to produce the lazily-initialized value when it is needed.
-            </param>
-            <param name="isThreadSafe">true if this instance should be usable by multiple threads concurrently; false if the instance will only be used by one thread at a time.
-            </param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is
-            a null reference (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Lazy`1.#ctor(System.Func{`0},System.Threading.LazyThreadSafetyMode)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Lazy{T}"/> class
-            that uses a specified initialization function and a specified thread-safety mode.
-            </summary>
-            <param name="valueFactory">
-            The <see cref="T:System.Func{T}"/> invoked to produce the lazily-initialized value when it is needed.
-            </param>
-            <param name="mode">The lazy thread-safety mode.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="valueFactory"/> is
-            a null reference (Nothing in Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="mode"/> mode contains an invalid value.</exception>
-        </member>
-        <member name="M:System.Lazy`1.GetObjectFromMode(System.Threading.LazyThreadSafetyMode)">
-            <summary>
-            Static helper function that returns an object based on the given mode. it also throws an exception if the mode is invalid
-            </summary>
-        </member>
-        <member name="M:System.Lazy`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
-            <summary>Forces initialization during serialization.</summary>
-            <param name="context">The StreamingContext for the serialization operation.</param>
-        </member>
-        <member name="M:System.Lazy`1.ToString">
-            <summary>Creates and returns a string representation of this instance.</summary>
-            <returns>The result of calling <see cref="M:System.Object.ToString"/> on the <see cref="P:System.Lazy`1.Value"/>.</returns>
-            <exception cref="T:System.NullReferenceException">
-            The <see cref="P:System.Lazy`1.Value"/> is null.
-            </exception>
-        </member>
-        <member name="M:System.Lazy`1.LazyInitValue">
-            <summary>
-            local helper method to initialize the value 
-            </summary>
-            <returns>The inititialized T value</returns>
-        </member>
-        <member name="M:System.Lazy`1.CreateValue">
-            <summary>Creates an instance of T using m_valueFactory in case its not null or use reflection to create a new T()</summary>
-            <returns>An instance of Boxed.</returns>
-        </member>
-        <member name="P:System.Lazy`1.ValueForDebugDisplay">
-            <summary>Gets the value of the Lazy&lt;T&gt; for debugging display purposes.</summary>
-        </member>
-        <member name="P:System.Lazy`1.Mode">
-            <summary>
-            Gets a value indicating whether this instance may be used concurrently from multiple threads.
-            </summary>
-        </member>
-        <member name="P:System.Lazy`1.IsValueFaulted">
-            <summary>
-            Gets whether the value creation is faulted or not
-            </summary>
-        </member>
-        <member name="P:System.Lazy`1.IsValueCreated">
-            <summary>Gets a value indicating whether the <see cref="T:System.Lazy{T}"/> has been initialized.
-            </summary>
-            <value>true if the <see cref="T:System.Lazy{T}"/> instance has been initialized;
-            otherwise, false.</value>
-            <remarks>
-            The initialization of a <see cref="T:System.Lazy{T}"/> instance may result in either
-            a value being produced or an exception being thrown.  If an exception goes unhandled during initialization, 
-            <see cref="P:System.Lazy`1.IsValueCreated"/> will return false.
-            </remarks>
-        </member>
-        <!-- Badly formed XML comment ignored for member "P:System.Lazy`1.Value" -->
-        <member name="T:System.Lazy`1.Boxed">
-            <summary>
-            wrapper class to box the initialized value, this is mainly created to avoid boxing/unboxing the value each time the value is called in case T is 
-            a value type
-            </summary>
-        </member>
-        <member name="T:System.Lazy`1.LazyInternalExceptionHolder">
-            <summary>
-            Wrapper class to wrap the excpetion thrown by the value factory
-            </summary>
-        </member>
-        <member name="T:System.System_LazyDebugView`1">
-            <summary>A debugger view of the Lazy&lt;T&gt; to surface additional debugging properties and 
-            to ensure that the Lazy&lt;T&gt; does not become initialized if it was not already.</summary>
-        </member>
-        <member name="M:System.System_LazyDebugView`1.#ctor(System.Lazy{`0})">
-            <summary>Constructs a new debugger view object for the provided Lazy object.</summary>
-            <param name="lazy">A Lazy object to browse in the debugger.</param>
-        </member>
-        <member name="P:System.System_LazyDebugView`1.IsValueCreated">
-            <summary>Returns whether the Lazy object is initialized or not.</summary>
-        </member>
-        <member name="P:System.System_LazyDebugView`1.Value">
-            <summary>Returns the value of the Lazy object.</summary>
-        </member>
-        <member name="P:System.System_LazyDebugView`1.Mode">
-            <summary>Returns the execution mode of the Lazy object</summary>
-        </member>
-        <member name="P:System.System_LazyDebugView`1.IsValueFaulted">
-            <summary>Returns the execution mode of the Lazy object</summary>
-        </member>
-        <member name="T:System.Threading.LazyThreadSafetyMode">
-            <summary>
-            Specifies how a <see cref="T:System.Threading.Lazy{T}"/> instance should synchronize access among multiple threads.
-            </summary>
-        </member>
-        <member name="F:System.Threading.LazyThreadSafetyMode.None">
-            <summary>
-            This mode makes no guarantees around the thread-safety of the <see cref="T:System.Threading.Lazy{T}"/> instance.  If used from multiple threads, the behavior of the <see cref="T:System.Threading.Lazy{T}"/> is undefined.
-            This mode should be used when a <see cref="T:System.Threading.Lazy{T}"/> is guaranteed to never be initialized from more than one thread simultaneously and high performance is crucial. 
-            If valueFactory throws an exception when the <see cref="T:System.Threading.Lazy{T}"/> is initialized, the exception will be cached and returned on subsequent accesses to Value. Also, if valueFactory recursively
-            accesses Value on this <see cref="T:System.Threading.Lazy{T}"/> instance, a <see cref="T:System.InvalidOperationException"/> will be thrown.
-            </summary>
-        </member>
-        <member name="F:System.Threading.LazyThreadSafetyMode.PublicationOnly">
-            <summary>
-            When multiple threads attempt to simultaneously initialize a <see cref="T:System.Threading.Lazy{T}"/> instance, this mode allows each thread to execute the
-            valueFactory but only the first thread to complete initialization will be allowed to set the final value of the  <see cref="T:System.Threading.Lazy{T}"/>.
-            Once initialized successfully, any future calls to Value will return the cached result.  If valueFactory throws an exception on any thread, that exception will be
-            propagated out of Value. If any thread executes valueFactory without throwing an exception and, therefore, successfully sets the value, that value will be returned on
-            subsequent accesses to Value from any thread.  If no thread succeeds in setting the value, IsValueCreated will remain false and subsequent accesses to Value will result in
-            the valueFactory delegate re-executing.  Also, if valueFactory recursively accesses Value on this  <see cref="T:System.Threading.Lazy{T}"/> instance, an exception will NOT be thrown.
-            </summary>
-        </member>
-        <member name="F:System.Threading.LazyThreadSafetyMode.ExecutionAndPublication">
-            <summary>
-            This mode uses locks to ensure that only a single thread can initialize a <see cref="T:System.Threading.Lazy{T}"/> instance in a thread-safe manner.  In general,
-            taken if this mode is used in conjunction with a <see cref="T:System.Threading.Lazy{T}"/> valueFactory delegate that uses locks internally, a deadlock can occur if not
-            handled carefully.  If valueFactory throws an exception when the<see cref="T:System.Threading.Lazy{T}"/> is initialized, the exception will be cached and returned on
-            subsequent accesses to Value. Also, if valueFactory recursively accesses Value on this <see cref="T:System.Threading.Lazy{T}"/> instance, a  <see cref="T:System.InvalidOperationException"/> will be thrown.
-            </summary>
-        </member>
-        <member name="T:System.Threading.LazyInitializer">
-            <summary>
-            Provides lazy initialization routines.
-            </summary>
-            <remarks>
-            These routines avoid needing to allocate a dedicated, lazy-initialization instance, instead using
-            references to ensure targets have been initialized as they are accessed.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@)">
-            <summary>
-            Initializes a target reference type with the type's default constructor if the target has not
-            already been initialized.
-            </summary>
-            <typeparam name="T">The refence type of the reference to be initialized.</typeparam>
-            <param name="target">A reference of type <typeparamref name="T"/> to initialize if it has not
-            already been initialized.</param>
-            <returns>The initialized reference of type <typeparamref name="T"/>.</returns>
-            <exception cref="T:System.MissingMemberException">Type <typeparamref name="T"/> does not have a default
-            constructor.</exception>
-            <exception cref="T:System.MemberAccessException">
-            Permissions to access the constructor of type <typeparamref name="T"/> were missing.
-            </exception>
-            <remarks>
-            <para>
-            This method may only be used on reference types. To ensure initialization of value
-            types, see other overloads of EnsureInitialized.
-            </para>
-            <para>
-            This method may be used concurrently by multiple threads to initialize <paramref name="target"/>.  
-            In the event that multiple threads access this method concurrently, multiple instances of <typeparamref name="T"/>
-            may be created, but only one will be stored into <paramref name="target"/>. In such an occurrence, this method will not dispose of the
-            objects that were not stored.  If such objects must be disposed, it is up to the caller to determine 
-            if an object was not used and to then dispose of the object appropriately.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@,System.Func{``0})">
-            <summary>
-            Initializes a target reference type using the specified function if it has not already been
-            initialized.
-            </summary>
-            <typeparam name="T">The reference type of the reference to be initialized.</typeparam>
-            <param name="target">The reference of type <typeparamref name="T"/> to initialize if it has not
-            already been initialized.</param>
-            <param name="valueFactory">The <see cref="T:System.Func{T}"/> invoked to initialize the
-            reference.</param>
-            <returns>The initialized reference of type <typeparamref name="T"/>.</returns>
-            <exception cref="T:System.MissingMemberException">Type <typeparamref name="T"/> does not have a
-            default constructor.</exception>
-            <exception cref="T:System.InvalidOperationException"><paramref name="valueFactory"/> returned
-            null.</exception>
-            <remarks>
-            <para>
-            This method may only be used on reference types, and <paramref name="valueFactory"/> may
-            not return a null reference (Nothing in Visual Basic). To ensure initialization of value types or
-            to allow null reference types, see other overloads of EnsureInitialized.
-            </para>
-            <para>
-            This method may be used concurrently by multiple threads to initialize <paramref name="target"/>.  
-            In the event that multiple threads access this method concurrently, multiple instances of <typeparamref name="T"/>
-            may be created, but only one will be stored into <paramref name="target"/>. In such an occurrence, this method will not dispose of the
-            objects that were not stored.  If such objects must be disposed, it is up to the caller to determine 
-            if an object was not used and to then dispose of the object appropriately.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.LazyInitializer.EnsureInitializedCore``1(``0@,System.Func{``0})">
-            <summary>
-            Initialize the target using the given delegate (slow path).
-            </summary>
-            <typeparam name="T">The reference type of the reference to be initialized.</typeparam>
-            <param name="target">The variable that need to be initialized</param>
-            <param name="valueFactory">The delegate that will be executed to initialize the target</param>
-            <returns>The initialized variable</returns>
-        </member>
-        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@,System.Boolean@,System.Object@)">
-            <summary>
-            Initializes a target reference or value type with its default constructor if it has not already
-            been initialized.
-            </summary>
-            <typeparam name="T">The type of the reference to be initialized.</typeparam>
-            <param name="target">A reference or value of type <typeparamref name="T"/> to initialize if it
-            has not already been initialized.</param>
-            <param name="initialized">A reference to a boolean that determines whether the target has already
-            been initialized.</param>
-            <param name="syncLock">A reference to an object used as the mutually exclusive lock for initializing
-            <paramref name="target"/>.</param>
-            <returns>The initialized value of type <typeparamref name="T"/>.</returns>
-        </member>
-        <member name="M:System.Threading.LazyInitializer.EnsureInitialized``1(``0@,System.Boolean@,System.Object@,System.Func{``0})">
-            <summary>
-            Initializes a target reference or value type with a specified function if it has not already been
-            initialized.
-            </summary>
-            <typeparam name="T">The type of the reference to be initialized.</typeparam>
-            <param name="target">A reference or value of type <typeparamref name="T"/> to initialize if it
-            has not already been initialized.</param>
-            <param name="initialized">A reference to a boolean that determines whether the target has already
-            been initialized.</param>
-            <param name="syncLock">A reference to an object used as the mutually exclusive lock for initializing
-            <paramref name="target"/>.</param>
-            <param name="valueFactory">The <see cref="T:System.Func{T}"/> invoked to initialize the
-            reference or value.</param>
-            <returns>The initialized value of type <typeparamref name="T"/>.</returns>
-        </member>
-        <member name="M:System.Threading.LazyInitializer.EnsureInitializedCore``1(``0@,System.Boolean@,System.Object@,System.Func{``0})">
-            <summary>
-            Ensure the target is initialized and return the value (slow path). This overload permits nulls
-            and also works for value type targets. Uses the supplied function to create the value.
-            </summary>
-            <typeparam name="T">The type of target.</typeparam>
-            <param name="target">A reference to the target to be initialized.</param>
-            <param name="initialized">A reference to a location tracking whether the target has been initialized.</param>
-            <param name="syncLock">A reference to a location containing a mutual exclusive lock.</param>
-            <param name="valueFactory">
-            The <see cref="T:System.Func{T}"/> to invoke in order to produce the lazily-initialized value.
-            </param>
-            <returns>The initialized object.</returns>
-        </member>
-        <member name="T:System.Threading.ThreadLocalGlobalCounter">
-            <summary>
-            A seprate non generic class that contains a global counter for fast path instances for all Ts that has been created, and adds an upper limit for all instances
-            that uses the fast path, if this limit has been reached, all new instances will use the slow path
-            </summary>
-        </member>
-        <member name="T:System.Threading.ThreadLocal`1">
-            <summary>
-            Provides thread-local storage of data.
-            </summary>
-            <typeparam name="T">Specifies the type of data stored per-thread.</typeparam>
-            <remarks>
-            <para>
-            With the exception of <see cref="M:System.Threading.ThreadLocal`1.Dispose"/>, all public and protected members of 
-            <see cref="T:System.Threading.ThreadLocal`1"/> are thread-safe and may be used
-            concurrently from multiple threads.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.#ctor">
-            <summary>
-            Initializes the <see cref="T:System.Threading.ThreadLocal`1"/> instance.
-            </summary>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.#ctor(System.Func{`0})">
-            <summary>
-            Initializes the <see cref="T:System.Threading.ThreadLocal`1"/> instance with the
-            specified <paramref name="valueFactory"/> function.
-            </summary>
-            <param name="valueFactory">
-            The <see cref="T:System.Func{T}"/> invoked to produce a lazily-initialized value when 
-            an attempt is made to retrieve <see cref="P:System.Threading.ThreadLocal`1.Value"/> without it having been previously initialized.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="valueFactory"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.Finalize">
-            <summary>
-            Releases the resources used by this <see cref="T:System.Threading.ThreadLocal{T}" /> instance.
-            </summary>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.Dispose">
-            <summary>
-            Releases the resources used by this <see cref="T:System.Threading.ThreadLocal{T}" /> instance.
-            </summary>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.ThreadLocal{T}"/>, this method is not thread-safe.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.Dispose(System.Boolean)">
-            <summary>
-            Releases the resources used by this <see cref="T:System.Threading.ThreadLocal{T}"/> instance.
-            </summary>
-            <param name="disposing">
-            A Boolean value that indicates whether this method is being called due to a call to <see cref="M:System.Threading.ThreadLocal`1.Dispose"/>.
-            </param>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.ThreadLocal{T}"/>, this method is not thread-safe.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.FindNextTypeIndex">
-            <summary>
-            Tries to get a unique index for the current instance of type T, it first tries to get it from the pool if it is not empty, otherwise it
-            increments the global counter if it is still below the maximum, otherwise it fails and returns -1
-            </summary>
-            <returns>True if there is an index available, false otherwise</returns>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.GetTypesFromIndex">
-            <summary>
-            Gets an array of types that will be used as generic parameters for the GenericHolder class
-            </summary>
-            <returns>The types array</returns>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.ToString">
-            <summary>Creates and returns a string representation of this instance for the current thread.</summary>
-            <returns>The result of calling <see cref="M:System.Object.ToString"/> on the <see cref="P:System.Threading.ThreadLocal`1.Value"/>.</returns>
-            <exception cref="T:System.NullReferenceException">
-            The <see cref="P:System.Threading.ThreadLocal`1.Value"/> for the current thread is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The initialization function referenced <see cref="P:System.Threading.ThreadLocal`1.Value"/> in an improper manner.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.ThreadLocal`1"/> instance has been disposed.
-            </exception>
-            <remarks>
-            Calling this method forces initialization for the current thread, as is the
-            case with accessing <see cref="P:System.Threading.ThreadLocal`1.Value"/> directly.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.ThreadLocal`1.CreateValue">
-            <summary>
-            Private helper function to lazily create the value using the calueSelector if specified in the constructor or the default parameterless constructor
-            </summary>
-            <returns>Returns the boxed object</returns>
-        </member>
-        <member name="P:System.Threading.ThreadLocal`1.Value">
-            <summary>
-            Gets or sets the value of this instance for the current thread.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The initialization function referenced <see cref="P:System.Threading.ThreadLocal`1.Value"/> in an improper manner.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.ThreadLocal`1"/> instance has been disposed.
-            </exception>
-            <remarks>
-            If this instance was not previously initialized for the current thread,
-            accessing <see cref="P:System.Threading.ThreadLocal`1.Value"/> will attempt to initialize it. If an initialization function was 
-            supplied during the construction, that initialization will happen by invoking the function 
-            to retrieve the initial value for <see cref="P:System.Threading.ThreadLocal`1.Value"/>.  Otherwise, the default value of 
-            <typeparamref name="T"/> will be used.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.ThreadLocal`1.IsValueCreated">
-            <summary>
-            Gets whether <see cref="P:System.Threading.ThreadLocal`1.Value"/> is initialized on the current thread.
-            </summary>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.ThreadLocal`1"/> instance has been disposed.
-            </exception>
-        </member>
-        <member name="P:System.Threading.ThreadLocal`1.ValueForDebugDisplay">
-            <summary>Gets the value of the ThreadLocal&lt;T&gt; for debugging display purposes. It takes care of getting
-            the value for the current thread in the ThreadLocal mode.</summary>
-        </member>
-        <member name="T:System.Threading.ThreadLocal`1.HolderBase">
-            <summary>
-            The base abstract class for the holder
-            </summary>
-        </member>
-        <member name="T:System.Threading.ThreadLocal`1.TLSHolder">
-            <summary>
-            The TLS holder representation
-            </summary>
-        </member>
-        <member name="T:System.Threading.ThreadLocal`1.GenericHolder`3">
-            <summary>
-            The generic holder representation
-            </summary>
-            <typeparam name="U">Dummy param</typeparam>
-            <typeparam name="V">Dummy param</typeparam>
-            <typeparam name="W">Dummy param</typeparam>
-        </member>
-        <member name="T:System.Threading.ThreadLocal`1.Boxed">
-            <summary>
-            wrapper to the actual value
-            </summary>
-        </member>
-        <member name="T:System.Threading.SystemThreading_ThreadLocalDebugView`1">
-            <summary>A debugger view of the ThreadLocal&lt;T&gt; to surface additional debugging properties and 
-            to ensure that the ThreadLocal&lt;T&gt; does not become initialized if it was not already.</summary>
-        </member>
-        <member name="M:System.Threading.SystemThreading_ThreadLocalDebugView`1.#ctor(System.Threading.ThreadLocal{`0})">
-            <summary>Constructs a new debugger view object for the provided ThreadLocal object.</summary>
-            <param name="tlocal">A ThreadLocal object to browse in the debugger.</param>
-        </member>
-        <member name="P:System.Threading.SystemThreading_ThreadLocalDebugView`1.IsValueCreated">
-            <summary>Returns whether the ThreadLocal object is initialized or not.</summary>
-        </member>
-        <member name="P:System.Threading.SystemThreading_ThreadLocalDebugView`1.Value">
-            <summary>Returns the value of the ThreadLocal object.</summary>
-        </member>
-        <member name="T:System.Threading.SemaphoreSlim">
-            <summary>
-            Limits the number of threads that can access a resource or pool of resources concurrently.
-            </summary>
-            <remarks>
-            <para>
-            The <see cref="T:System.Threading.SemaphoreSlim"/> provides a lightweight semaphore class that doesn't
-            use Windows kernel semaphores.
-            </para>
-            <para>
-            All public and protected members of <see cref="T:System.Threading.SemaphoreSlim"/> are thread-safe and may be used
-            concurrently from multiple threads, with the exception of Dispose, which
-            must only be used when all other operations on the <see cref="T:System.Threading.SemaphoreSlim"/> have
-            completed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.SemaphoreSlim"/> class, specifying
-            the initial number of requests that can be granted concurrently.
-            </summary>
-            <param name="initialCount">The initial number of requests for the semaphore that can be granted
-            concurrently.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="initialCount"/>
-            is less than 0.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.#ctor(System.Int32,System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.SemaphoreSlim"/> class, specifying
-            the initial and maximum number of requests that can be granted concurrently.
-            </summary>
-            <param name="initialCount">The initial number of requests for the semaphore that can be granted
-            concurrently.</param>
-            <param name="maxCount">The maximum number of requests for the semaphore that can be granted
-            concurrently.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="initialCount"/>
-            is less than 0. -or-
-            <paramref name="initialCount"/> is greater than <paramref name="maxCount"/>. -or-
-            <paramref name="maxCount"/> is less than 0.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Wait">
-            <summary>
-            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>.
-            </summary>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Wait(System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, while observing a
-            <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> token to
-            observe.</param>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> was
-            canceled.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Wait(System.TimeSpan)">
-            <summary>
-            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, using a <see cref="T:System.TimeSpan"/> to measure the time interval.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>;
-            otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
-            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
-            than <see cref="F:System.Int32.MaxValue"/>.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Wait(System.TimeSpan,System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, using a <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>;
-            otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
-            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
-            than <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Wait(System.Int32)">
-            <summary>
-            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>, using a 32-bit
-            signed integer to measure the time interval.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
-            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>;
-            otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Wait(System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Blocks the current thread until it can enter the <see cref="T:System.Threading.SemaphoreSlim"/>,
-            using a 32-bit signed integer to measure the time interval, 
-            while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to
-            wait indefinitely.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to observe.</param>
-            <returns>true if the current thread successfully entered the <see cref="T:System.Threading.SemaphoreSlim"/>; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a negative number other than -1,
-            which represents an infinite time-out.</exception>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> was canceled.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.WaitUntilCountOrTimeout(System.Int32,System.Int64,System.Threading.CancellationToken)">
-            <summary>
-            Local helper function, waits on the monitor until the monitor recieves signal or the
-            timeout is expired
-            </summary>
-            <param name="millisecondsTimeout">The maximum timeout</param>
-            <param name="startTimeTicks">The start ticks to calculate the elapsed time</param>
-            <param name="cancellationToken">The CancellationToken to observe.</param>
-            <returns>true if the monitor recieved a signal, false if the timeout expired</returns>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Release">
-            <summary>
-            Exits the <see cref="T:System.Threading.SemaphoreSlim"/> once.
-            </summary>
-            <returns>The previous count of the <see cref="T:System.Threading.SemaphoreSlim"/>.</returns>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Release(System.Int32)">
-            <summary>
-            Exits the <see cref="T:System.Threading.SemaphoreSlim"/> a specified number of times.
-            </summary>
-            <param name="releaseCount">The number of times to exit the semaphore.</param>
-            <returns>The previous count of the <see cref="T:System.Threading.SemaphoreSlim"/>.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="releaseCount"/> is less
-            than 1.</exception>
-            <exception cref="T:System.Threading.SemaphoreFullException">The <see cref="T:System.Threading.SemaphoreSlim"/> has
-            already reached its maximum size.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Dispose">
-            <summary>
-            Releases all resources used by the current instance of <see cref="T:System.Threading.SemaphoreSlim"/>.
-            </summary>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.SemaphoreSlim"/>, <see cref="M:System.Threading.SemaphoreSlim.Dispose"/> is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.Dispose(System.Boolean)">
-            <summary>
-            When overridden in a derived class, releases the unmanaged resources used by the 
-            <see cref="T:System.Threading.ManualResetEventSlim"/>, and optionally releases the managed resources.
-            </summary>
-            <param name="disposing">true to release both managed and unmanaged resources;
-            false to release only unmanaged resources.</param>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.SemaphoreSlim"/>, <see cref="M:System.Threading.SemaphoreSlim.Dispose(System.Boolean)"/> is not
-            thread-safe and may not be used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.UpdateTimeOut(System.Int64,System.Int32)">
-            <summary>
-            Helper function to measure and update the wait time
-            </summary>
-            <param name="startTimeTicks"> The first time (in Ticks) observed when the wait started</param>
-            <param name="originalWaitMillisecondsTimeout">The orginal wait timeoutout in milliseconds</param>
-            <returns>The new wait time in milliseconds, -1 if the time expired</returns>
-        </member>
-        <member name="F:System.Threading.SemaphoreSlim.s_cancellationTokenCanceledEventHandler">
-            <summary>
-            Private helper method to wake up waiters when a cancellationToken gets canceled.
-            </summary>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.CheckDispose">
-            <summary>
-            Checks the dispose status by checking the lock object, if it is null means that object
-            has been disposed and throw ObjectDisposedException
-            </summary>
-        </member>
-        <member name="M:System.Threading.SemaphoreSlim.GetResourceString(System.String)">
-            <summary>
-            local helper function to retrieve the exception string message from the resource file
-            </summary>
-            <param name="str">The key string</param>
-        </member>
-        <member name="P:System.Threading.SemaphoreSlim.CurrentCount">
-            <summary>
-            Gets the current count of the <see cref="T:System.Threading.SemaphoreSlim"/>.
-            </summary>
-            <value>The current count of the <see cref="T:System.Threading.SemaphoreSlim"/>.</value>
-        </member>
-        <member name="P:System.Threading.SemaphoreSlim.AvailableWaitHandle">
-            <summary>
-            Returns a <see cref="T:System.Threading.WaitHandle"/> that can be used to wait on the semaphore.
-            </summary>
-            <value>A <see cref="T:System.Threading.WaitHandle"/> that can be used to wait on the
-            semaphore.</value>
-            <remarks>
-            A successful wait on the <see cref="P:System.Threading.SemaphoreSlim.AvailableWaitHandle"/> does not imply a successful wait on
-            the <see cref="T:System.Threading.SemaphoreSlim"/> itself, nor does it decrement the semaphore's
-            count. <see cref="P:System.Threading.SemaphoreSlim.AvailableWaitHandle"/> exists to allow a thread to block waiting on multiple
-            semaphores, but such a wait should be followed by a true wait on the target semaphore.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Threading.SemaphoreSlim"/> has been disposed.</exception>
-        </member>
-        <member name="T:System.Threading.SpinWait">
-            <summary>
-            Provides support for spin-based waiting.
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:System.Threading.SpinWait"/> encapsulates common spinning logic. On single-processor machines, yields are
-            always used instead of busy waits, and on computers with Intel™ processors employing Hyper-Threading™
-            technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of
-            spinning and true yielding.
-            </para>
-            <para>
-            <see cref="T:System.Threading.SpinWait"/> is a value type, which means that low-level code can utilize SpinWait without
-            fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications.
-            In most cases, you should use the synchronization classes provided by the .NET Framework, such as
-            <see cref="T:System.Threading.Monitor"/>. For most purposes where spin waiting is required, however,
-            the <see cref="T:System.Threading.SpinWait"/> type should be preferred over the <see cref="M:System.Threading.Thread.SpinWait(System.Int32)"/> method.
-            </para>
-            <para>
-            While SpinWait is designed to be used in concurrent applications, it is not designed to be
-            used from multiple threads concurrently.  SpinWait's members are not thread-safe.  If multiple
-            threads must spin, each should use its own instance of SpinWait.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.SpinWait.SpinOnce">
-            <summary>
-            Performs a single spin.
-            </summary>
-            <remarks>
-            This is typically called in a loop, and may change in behavior based on the number of times a
-            <see cref="M:System.Threading.SpinWait.SpinOnce"/> has been called thus far on this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.SpinWait.Reset">
-            <summary>
-            Resets the spin counter.
-            </summary>
-            <remarks>
-            This makes <see cref="M:System.Threading.SpinWait.SpinOnce"/> and <see cref="P:System.Threading.SpinWait.NextSpinWillYield"/> behave as though no calls
-            to <see cref="M:System.Threading.SpinWait.SpinOnce"/> had been issued on this instance. If a <see cref="T:System.Threading.SpinWait"/> instance
-            is reused many times, it may be useful to reset it to avoid yielding too soon.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.SpinWait.SpinUntil(System.Func{System.Boolean})">
-            <summary>
-            Spins until the specified condition is satisfied.
-            </summary>
-            <param name="condition">A delegate to be executed over and over until it returns true.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="condition"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.SpinWait.SpinUntil(System.Func{System.Boolean},System.TimeSpan)">
-            <summary>
-            Spins until the specified condition is satisfied or until the specified timeout is expired.
-            </summary>
-            <param name="condition">A delegate to be executed over and over until it returns true.</param>
-            <param name="timeout">
-            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, 
-            or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
-            <returns>True if the condition is satisfied within the timeout; otherwise, false</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="condition"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
-            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.</exception>
-        </member>
-        <member name="M:System.Threading.SpinWait.SpinUntil(System.Func{System.Boolean},System.Int32)">
-            <summary>
-            Spins until the specified condition is satisfied or until the specified timeout is expired.
-            </summary>
-            <param name="condition">A delegate to be executed over and over until it returns true.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <returns>True if the condition is satisfied within the timeout; otherwise, false</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="condition"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-        </member>
-        <member name="P:System.Threading.SpinWait.Count">
-            <summary>
-            Gets the number of times <see cref="M:System.Threading.SpinWait.SpinOnce"/> has been called on this instance.
-            </summary>
-        </member>
-        <member name="P:System.Threading.SpinWait.NextSpinWillYield">
-            <summary>
-            Gets whether the next call to <see cref="M:System.Threading.SpinWait.SpinOnce"/> will yield the processor, triggering a
-            forced context switch.
-            </summary>
-            <value>Whether the next call to <see cref="M:System.Threading.SpinWait.SpinOnce"/> will yield the processor, triggering a
-            forced context switch.</value>
-            <remarks>
-            On a single-CPU machine, <see cref="M:System.Threading.SpinWait.SpinOnce"/> always yields the processor. On machines with
-            multiple CPUs, <see cref="M:System.Threading.SpinWait.SpinOnce"/> may yield after an unspecified number of calls.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.PlatformHelper">
-            <summary>
-            A helper class to get the number of preocessors, it updates the numbers of processors every sampling interval
-            </summary>
-        </member>
-        <member name="P:System.Threading.PlatformHelper.ProcessorCount">
-            <summary>
-            Gets the number of available processors
-            </summary>
-        </member>
-        <member name="P:System.Threading.PlatformHelper.IsSingleProcessor">
-            <summary>
-            Gets whether the current machine has only a single processor.
-            </summary>
-        </member>
-        <member name="T:System.Threading.SpinLock">
-            <summary>
-            Provides a mutual exclusion lock primitive where a thread trying to acquire the lock waits in a loop
-            repeatedly checking until the lock becomes available.
-            </summary>
-            <remarks>
-            <para>
-            Spin locks can be used for leaf-level locks where the object allocation implied by using a <see cref="T:System.Threading.Monitor"/>, in size or due to garbage collection pressure, is overly
-            expensive. Avoiding blocking is another reason that a spin lock can be useful, however if you expect
-            any significant amount of blocking, you are probably best not using spin locks due to excessive
-            spinning. Spinning can be beneficial when locks are fine grained and large in number (for example, a
-            lock per node in a linked list) as well as when lock hold times are always extremely short. In
-            general, while holding a spin lock, one should avoid blocking, calling anything that itself may
-            block, holding more than one spin lock at once, making dynamically dispatched calls (interface and
-            virtuals), making statically dispatched calls into any code one doesn't own, or allocating memory.
-            </para>
-            <para>
-            <see cref="T:System.Threading.SpinLock"/> should only be used when it's been determined that doing so will improve an
-            application's performance. It's also important to note that <see cref="T:System.Threading.SpinLock"/> is a value type,
-            for performance reasons. As such, one must be very careful not to accidentally copy a SpinLock
-            instance, as the two instances (the original and the copy) would then be completely independent of
-            one another, which would likely lead to erroneous behavior of the application. If a SpinLock instance
-            must be passed around, it should be passed by reference rather than by value.
-            </para>
-            <para>
-            Do not store <see cref="T:System.Threading.SpinLock"/> instances in readonly fields.
-            </para>
-            <para>
-            All members of <see cref="T:System.Threading.SpinLock"/> are thread-safe and may be used from multiple threads
-            concurrently.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.SpinLock.#ctor(System.Boolean)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.SpinLock"/>
-            structure with the option to track thread IDs to improve debugging.
-            </summary>
-            <remarks>
-            The default constructor for <see cref="T:System.Threading.SpinLock"/> tracks thread ownership.
-            </remarks>
-            <param name="enableThreadOwnerTracking">Whether to capture and use thread IDs for debugging
-            purposes.</param>
-        </member>
-        <member name="M:System.Threading.SpinLock.Enter(System.Boolean@)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.SpinLock"/>
-            structure with the option to track thread IDs to improve debugging.
-            </summary>
-            <remarks>
-            The default constructor for <see cref="T:System.Threading.SpinLock"/> tracks thread ownership.
-            </remarks>
-            <summary>
-            Acquires the lock in a reliable manner, such that even if an exception occurs within the method
-            call, <paramref name="lockTaken"/> can be examined reliably to determine whether the lock was
-            acquired.
-            </summary>
-            <remarks>
-            <see cref="T:System.Threading.SpinLock"/> is a non-reentrant lock, meaning that if a thread holds the lock, it is
-            not allowed to enter the lock again. If thread ownership tracking is enabled (whether it's
-            enabled is available through <see cref="P:System.Threading.SpinLock.IsThreadOwnerTrackingEnabled"/>), an exception will be
-            thrown when a thread tries to re-enter a lock it already holds. However, if thread ownership
-            tracking is disabled, attempting to enter a lock already held will result in deadlock.
-            </remarks>
-            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
-            <exception cref="T:System.Threading.LockRecursionException">
-            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling Enter.
-            </exception>
-        </member>
-        <member name="M:System.Threading.SpinLock.TryEnter(System.Boolean@)">
-            <summary>
-            Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within
-            the method call, <paramref name="lockTaken"/> can be examined reliably to determine whether the
-            lock was acquired.
-            </summary>
-            <remarks>
-            Unlike <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>, TryEnter will not block waiting for the lock to be available. If the
-            lock is not available when TryEnter is called, it will return immediately without any further
-            spinning.
-            </remarks>
-            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
-            <exception cref="T:System.Threading.LockRecursionException">
-            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling TryEnter.
-            </exception>
-        </member>
-        <member name="M:System.Threading.SpinLock.TryEnter(System.TimeSpan,System.Boolean@)">
-            <summary>
-            Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within
-            the method call, <paramref name="lockTaken"/> can be examined reliably to determine whether the
-            lock was acquired.
-            </summary>
-            <remarks>
-            Unlike <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>, TryEnter will not block indefinitely waiting for the lock to be
-            available. It will block until either the lock is available or until the <paramref name="timeout"/>
-            has expired.
-            </remarks>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
-            <exception cref="T:System.Threading.LockRecursionException">
-            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling TryEnter.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative
-            number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater
-            than <see cref="F:System.Int32.MaxValue"/> milliseconds.
-            </exception>
-        </member>
-        <member name="M:System.Threading.SpinLock.TryEnter(System.Int32,System.Boolean@)">
-            <summary>
-            Attempts to acquire the lock in a reliable manner, such that even if an exception occurs within
-            the method call, <paramref name="lockTaken"/> can be examined reliably to determine whether the
-            lock was acquired.
-            </summary>
-            <remarks>
-            Unlike <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>, TryEnter will not block indefinitely waiting for the lock to be
-            available. It will block until either the lock is available or until the <paramref name="millisecondsTimeout"/> has expired.
-            </remarks>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <param name="lockTaken">True if the lock is acquired; otherwise, false. <paramref name="lockTaken"/> must be initialized to false prior to calling this method.</param>
-            <exception cref="T:System.Threading.LockRecursionException">
-            Thread ownership tracking is enabled, and the current thread has already acquired this lock.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="lockTaken"/> argument must be initialized to false prior to calling TryEnter.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is
-            a negative number other than -1, which represents an infinite time-out.</exception>
-        </member>
-        <member name="M:System.Threading.SpinLock.ContinueTryEnter(System.Int32,System.Boolean@)">
-            <summary>
-            Try acquire the lock with long path, this is usually called after the first path in Enter and
-            TryEnter failed The reason for short path is to make it inline in the run time which improves the
-            performance. This method assumed that the parameter are validated in Enter ir TryENter method
-            </summary>
-            <param name="millisecondsTimeout">The timeout milliseconds</param>
-            <param name="lockTaken">The lockTaken param</param>
-        </member>
-        <member name="M:System.Threading.SpinLock.DecrementWaiters">
-            <summary>
-            decrements the waiters, in case of the timeout is expired
-            </summary>
-        </member>
-        <member name="M:System.Threading.SpinLock.ContinueTryEnterWithThreadTracking(System.Int32,System.Int64,System.Boolean@)">
-            <summary>
-            ContinueTryEnter for the thread tracking mode enabled
-            </summary>
-        </member>
-        <member name="M:System.Threading.SpinLock.TimeoutExpired(System.Int64,System.Int32)">
-            <summary>
-            Helper function to validate the timeout
-            </summary>
-            <param name="startTicks"> The start time in ticks</param>
-            <param name="originalWaitTime">The orginal wait time</param>
-            <returns>True if expired, false otherwise</returns>
-        </member>
-        <member name="M:System.Threading.SpinLock.Exit">
-            <summary>
-            Releases the lock.
-            </summary>
-            <remarks>
-            The default overload of <see cref="M:System.Threading.SpinLock.Exit"/> provides the same behavior as if calling <see cref="M:System.Threading.SpinLock.Exit(System.Boolean)"/> using true as the argument.
-            </remarks>
-            <exception cref="T:System.Threading.SynchronizationLockException">
-            Thread ownership tracking is enabled, and the current thread is not the owner of this lock.
-            </exception>
-        </member>
-        <member name="M:System.Threading.SpinLock.Exit(System.Boolean)">
-            <summary>
-            Releases the lock.
-            </summary>
-            <param name="useMemoryBarrier">
-            A Boolean value that indicates whether a memory fence should be issued in order to immediately
-            publish the exit operation to other threads.
-            </param>
-            <remarks>
-            Calling <see cref="M:System.Threading.SpinLock.Exit(System.Boolean)"/> with the <paramref name="useMemoryBarrier"/> argument set to
-            true will improve the fairness of the lock at the expense of some performance. The default <see cref="M:System.Threading.SpinLock.Enter(System.Boolean@)"/>
-            overload behaves as if specifying true for <paramref name="useMemoryBarrier"/>.
-            </remarks>
-            <exception cref="T:System.Threading.SynchronizationLockException">
-            Thread ownership tracking is enabled, and the current thread is not the owner of this lock.
-            </exception>
-        </member>
-        <member name="P:System.Threading.SpinLock.IsHeld">
-            <summary>
-            Gets whether the lock is currently held by any thread.
-            </summary>
-        </member>
-        <member name="P:System.Threading.SpinLock.IsHeldByCurrentThread">
-            <summary>
-            Gets whether the lock is currently held by any thread.
-            </summary>
-            <summary>
-            Gets whether the lock is held by the current thread.
-            </summary>
-            <remarks>
-            If the lock was initialized to track owner threads, this will return whether the lock is acquired
-            by the current thread. It is invalid to use this property when the lock was initialized to not
-            track thread ownership.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-            Thread ownership tracking is disabled.
-            </exception>
-        </member>
-        <member name="P:System.Threading.SpinLock.IsThreadOwnerTrackingEnabled">
-            <summary>Gets whether thread ownership tracking is enabled for this instance.</summary>
-        </member>
-        <member name="T:System.Threading.SpinLock.SystemThreading_SpinLockDebugView">
-            <summary>
-            Internal class used by debug type proxy attribute to display the owner thread ID 
-            </summary>
-        </member>
-        <member name="M:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.#ctor(System.Threading.SpinLock)">
-            <summary>
-            SystemThreading_SpinLockDebugView constructor
-            </summary>
-            <param name="spinLock">The SpinLock to be proxied.</param>
-        </member>
-        <member name="P:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.IsHeldByCurrentThread">
-            <summary>
-            Checks if the lock is held by the current thread or not
-            </summary>
-        </member>
-        <member name="P:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.OwnerThreadID">
-            <summary>
-            Gets the current owner thread, zero if it is released
-            </summary>
-        </member>
-        <member name="P:System.Threading.SpinLock.SystemThreading_SpinLockDebugView.IsHeld">
-            <summary>
-             Gets whether the lock is currently held by any thread or not.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.ParallelOptions">
-            <summary>
-            Stores options that configure the operation of methods on the 
-            <see cref="T:System.Threading.Tasks.Parallel">Parallel</see> class.
-            </summary>
-            <remarks>
-            By default, methods on the Parallel class attempt to utilize all available processors, are non-cancelable, and target
-            the default TaskScheduler (TaskScheduler.Default). <see cref="T:System.Threading.Tasks.ParallelOptions"/> enables
-            overriding these defaults.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelOptions.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.ParallelOptions"/> class.
-            </summary>
-            <remarks>
-            This constructor initializes the instance with default values.  <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/>
-            is initialized to -1, signifying that there is no upper bound set on how much parallelism should
-            be employed.  <see cref="P:System.Threading.Tasks.ParallelOptions.CancellationToken"/> is initialized to a non-cancelable token,
-            and <see cref="P:System.Threading.Tasks.ParallelOptions.TaskScheduler"/> is initialized to the default scheduler (TaskScheduler.Default).  
-            All of these defaults may be overwritten using the property set accessors on the instance.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelOptions.TaskScheduler">
-            <summary>
-            Gets or sets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> 
-            associated with this <see cref="T:System.Threading.Tasks.ParallelOptions"/> instance. Setting this property to null
-            indicates that the current scheduler should be used.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism">
-            <summary>
-            Gets or sets the maximum degree of parallelism enabled by this ParallelOptions instance.
-            </summary>
-            <remarks>
-            The <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/> limits the number of concurrent operations run by <see cref="T:System.Threading.Tasks.Parallel">Parallel</see> method calls that are passed this
-            ParallelOptions instance to the set value, if it is positive. If <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/> is -1, then there is no limit placed on the number of concurrently
-            running operations.
-            </remarks>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The exception that is thrown when this <see cref="P:System.Threading.Tasks.ParallelOptions.MaxDegreeOfParallelism"/> is set to 0 or some
-            value less than -1.
-            </exception>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelOptions.CancellationToken">
-            <summary>
-            Gets or sets the <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            associated with this <see cref="T:System.Threading.Tasks.ParallelOptions"/> instance.
-            </summary>
-            <remarks>
-            Providing a <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            to a <see cref="T:System.Threading.Tasks.Parallel">Parallel</see> method enables the operation to be
-            exited early. Code external to the operation may cancel the token, and if the operation observes the
-            token being set, it may exit early by throwing an
-            <see cref="T:System.OperationCanceledException"/>.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.Parallel">
-            <summary>
-            Provides support for parallel loops and regions.
-            </summary>
-            <remarks>
-            The <see cref="T:System.Threading.Tasks.Parallel"/> class provides library-based data parallel replacements
-            for common operations such as for loops, for each loops, and execution of a set of statements.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.Invoke(System.Action[])">
-            <summary>
-            Executes each of the provided actions, possibly in parallel.
-            </summary>
-            <param name="actions">An array of <see cref="T:System.Action">Actions</see> to execute.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="actions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="actions"/> array contains a null element.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown when any
-            action in the <paramref name="actions"/> array throws an exception.</exception>
-            <remarks>
-            This method can be used to execute a set of operations, potentially in parallel.   
-            No guarantees are made about the order in which the operations execute or whether 
-            they execute in parallel.  This method does not return until each of the 
-            provided operations has completed, regardless of whether completion 
-            occurs due to normal or exceptional termination.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.Invoke(System.Threading.Tasks.ParallelOptions,System.Action[])">
-            <summary>
-            Executes each of the provided actions, possibly in parallel.
-            </summary>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="actions">An array of <see cref="T:System.Action">Actions</see> to execute.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="actions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="actions"/> array contains a null element.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> is set.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown when any 
-            action in the <paramref name="actions"/> array throws an exception.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <remarks>
-            This method can be used to execute a set of operations, potentially in parallel.   
-            No guarantees are made about the order in which the operations execute or whether 
-            the they execute in parallel.  This method does not return until each of the 
-            provided operations has completed, regardless of whether completion 
-            occurs due to normal or exceptional termination.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Action{System.Int32})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int32) as a parameter.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Action{System.Int64})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int64) as a parameter.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action{System.Int32})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int32) as a parameter.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action{System.Int64})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the iteration count (an Int64) as a parameter.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Action{System.Int32,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </para>
-            <para>
-            Calling <see cref="M:System.Threading.Tasks.ParallelLoopState.Break">ParallelLoopState.Break()</see>
-            informs the For operation that iterations after the current one need not 
-            execute.  However, all iterations before the current one will still need to be executed if they have not already.
-            Therefore, calling Break is similar to using a break operation within a 
-            conventional for loop in a language like C#, but it is not a perfect substitute: for example, there is no guarantee that iterations 
-            after the current one will definitely not execute.
-            </para>
-            <para>
-            If executing all iterations before the current one is not necessary, 
-            <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop">ParallelLoopState.Stop()</see>
-            should be preferred to using Break.  Calling Stop informs the For loop that it may abandon all remaining
-            iterations, regardless of whether they're for interations above or below the current, 
-            since all required work has already been completed.  As with Break, however, there are no guarantees regarding 
-            which other iterations will not execute.
-            </para>
-            <para>
-            When a loop is ended prematurely, the <see cref="T:ParallelLoopState"/> that's returned will contain
-            relevant information about the loop's completion.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Action{System.Int64,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action{System.Int32,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action{System.Int64,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int32,System.Int32,System.Func{``0},System.Func{System.Int32,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int64,System.Int64,System.Func{``0},System.Func{System.Int64,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.  Supports 64-bit indices.
-            </summary>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Func{``0},System.Func{System.Int32,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int32), 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.For``1(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Func{``0},System.Func{System.Int64,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Action{``0})">
-            <summary>
-            Executes a for loop in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="fromInclusive">The start index, inclusive.</param>
-            <param name="toExclusive">The end index, exclusive.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each value in the iteration range: 
-            [fromInclusive, toExclusive).  It is provided with the following parameters: the iteration count (an Int64), 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForWorker``1(System.Int32,System.Int32,System.Threading.Tasks.ParallelOptions,System.Action{System.Int32},System.Action{System.Int32,System.Threading.Tasks.ParallelLoopState},System.Func{System.Int32,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Func{``0},System.Action{``0})">
-            <summary>
-            Performs the major work of the parallel for loop. It assumes that argument validation has already
-            been performed by the caller. This function's whole purpose in life is to enable as much reuse of
-            common implementation details for the various For overloads we offer. Without it, we'd end up
-            with lots of duplicate code. It handles: (1) simple for loops, (2) for loops that depend on
-            ParallelState, and (3) for loops with thread local data.
-            
-            @TODO: at some point in the future, we may want to manually inline the interesting bits into the
-            specific overloads above. There is some overhead associated with the extra arguments passed to
-            the function, and various if-checks in the code. It is also more difficult to follow what the
-            code does as-is because it has to handle the three flavors.
-            </summary>
-            <typeparam name="TLocal">The type of the local data.</typeparam>
-            <param name="fromInclusive">The loop's start index, inclusive.</param>
-            <param name="toExclusive">The loop's end index, exclusive.</param>
-            <param name="parallelOptions">A ParallelOptions instance.</param>
-            <param name="body">The simple loop body.</param>
-            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
-            <param name="bodyWithLocal">The loop body for thread local state overloads.</param>
-            <param name="localInit">A selector function that returns new thread local state.</param>
-            <param name="localFinally">A cleanup function to destroy thread local state.</param>
-            <remarks>Only one of the body arguments may be supplied (i.e. they are exclusive).</remarks>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForWorker64``1(System.Int64,System.Int64,System.Threading.Tasks.ParallelOptions,System.Action{System.Int64},System.Action{System.Int64,System.Threading.Tasks.ParallelLoopState},System.Func{System.Int64,System.Threading.Tasks.ParallelLoopState,``0,``0},System.Func{``0},System.Action{``0})">
-            <summary>
-            Performs the major work of the 64-bit parallel for loop. It assumes that argument validation has already
-            been performed by the caller. This function's whole purpose in life is to enable as much reuse of
-            common implementation details for the various For overloads we offer. Without it, we'd end up
-            with lots of duplicate code. It handles: (1) simple for loops, (2) for loops that depend on
-            ParallelState, and (3) for loops with thread local data.
-            
-            @TODO: at some point in the future, we may want to manually inline the interesting bits into the
-            specific overloads above. There is some overhead associated with the extra arguments passed to
-            the function, and various if-checks in the code. It is also more difficult to follow what the
-            code does as-is because it has to handle the three flavors.
-            </summary>
-            <typeparam name="TLocal">The type of the local data.</typeparam>
-            <param name="fromInclusive">The loop's start index, inclusive.</param>
-            <param name="toExclusive">The loop's end index, exclusive.</param>
-            <param name="parallelOptions">A ParallelOptions instance.</param>
-            <param name="body">The simple loop body.</param>
-            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
-            <param name="bodyWithLocal">The loop body for thread local state overloads.</param>
-            <param name="localInit">A selector function that returns new thread local state.</param>
-            <param name="localFinally">A cleanup function to destroy thread local state.</param>
-            <remarks>Only one of the body arguments may be supplied (i.e. they are exclusive).</remarks>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the current element as a parameter.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the current element as a parameter.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and the current element's index (an Int64).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and the current element's index (an Int64).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
-            state that may be shared amongst iterations that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on an <see cref="T:System.Collections.IEnumerable{TSource}"/> 
-            in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the data in the source.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            enumerable.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
-            state that may be shared amongst iterations that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEachWorker``2(System.Collections.Generic.IEnumerable{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Func{``1},System.Action{``1})">
-            <summary>
-            Performs the major work of the parallel foreach loop. It assumes that argument validation has
-            already been performed by the caller. This function's whole purpose in life is to enable as much
-            reuse of common implementation details for the various For overloads we offer. Without it, we'd
-            end up with lots of duplicate code. It handles: (1) simple foreach loops, (2) foreach loops that
-            depend on ParallelState, and (3) foreach loops that access indices, (4) foreach loops with thread
-            local data, and any necessary permutations thereof.
-            
-            @TODO: at some point in the future, we may want to manually inline the interesting bits into the
-            specific overloads above. There is some overhead associated with the extra arguments passed to
-            the function, and various if-checks in the code. It is also more difficult to follow what the
-            code does as-is because it has to handle the all flavors.
-            </summary>
-            <typeparam name="TSource">The type of the source data.</typeparam>
-            <typeparam name="TLocal">The type of the local data.</typeparam>
-            <param name="source">An enumerable data source.</param>
-            <param name="parallelOptions">ParallelOptions instance to use with this ForEach-loop</param>
-            <param name="body">The simple loop body.</param>
-            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
-            <param name="bodyWithStateAndIndex">The loop body for ParallelState/indexed overloads.</param>
-            <param name="bodyWithStateAndLocal">The loop body for ParallelState/thread local state overloads.</param>
-            <param name="bodyWithEverything">The loop body for ParallelState/indexed/thread local state overloads.</param>
-            <param name="localInit">A selector function that returns new thread local state.</param>
-            <param name="localFinally">A cleanup function to destroy thread local state.</param>
-            <remarks>Only one of the bodyXX arguments may be supplied (i.e. they are exclusive).</remarks>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEachWorker``2(``0[],System.Threading.Tasks.ParallelOptions,System.Action{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Func{``1},System.Action{``1})">
-            <summary>
-            A fast path for the more general ForEachWorker method above. This uses ldelem instructions to
-            access the individual elements of the array, which will be faster.
-            </summary>
-            <typeparam name="TSource">The type of the source data.</typeparam>
-            <typeparam name="TLocal">The type of the local data.</typeparam>
-            <param name="array">An array data source.</param>
-            <param name="parallelOptions">The options to use for execution.</param>
-            <param name="body">The simple loop body.</param>
-            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
-            <param name="bodyWithStateAndIndex">The loop body for indexed/ParallelLoopState overloads.</param>
-            <param name="bodyWithStateAndLocal">The loop body for local/ParallelLoopState overloads.</param>
-            <param name="bodyWithEverything">The loop body for the most generic overload.</param>
-            <param name="localInit">A selector function that returns new thread local state.</param>
-            <param name="localFinally">A cleanup function to destroy thread local state.</param>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEachWorker``2(System.Collections.Generic.IList{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Func{``1},System.Action{``1})">
-            <summary>
-            A fast path for the more general ForEachWorker method above. This uses IList&lt;T&gt;'s indexer
-            capabilities to access the individual elements of the list rather than an enumerator.
-            </summary>
-            <typeparam name="TSource">The type of the source data.</typeparam>
-            <typeparam name="TLocal">The type of the local data.</typeparam>
-            <param name="list">A list data source.</param>
-            <param name="parallelOptions">The options to use for execution.</param>
-            <param name="body">The simple loop body.</param>
-            <param name="bodyWithState">The loop body for ParallelState overloads.</param>
-            <param name="bodyWithStateAndIndex">The loop body for indexed/ParallelLoopState overloads.</param>
-            <param name="bodyWithStateAndLocal">The loop body for local/ParallelLoopState overloads.</param>
-            <param name="bodyWithEverything">The loop body for the most generic overload.</param>
-            <param name="localInit">A selector function that returns new thread local state.</param>
-            <param name="localFinally">A cleanup function to destroy thread local state.</param>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult"/> structure.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Action{``0})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
-            Partitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <param name="source">The Partitioner that contains the original data source.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> Partitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
-            the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
-            with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
-            IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the current element as a parameter.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
-            Partitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <param name="source">The Partitioner that contains the original data source.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> Partitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
-            the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
-            with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
-            IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.OrderablePartitioner{``0},System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
-            OrderablePartitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <param name="source">The OrderablePartitioner that contains the original data source.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner do not return the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IList with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and the current element's index (an Int64).
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.Partitioner{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
-            Partitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">The Partitioner that contains the original data source.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> Partitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
-            the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
-            with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
-            IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.OrderablePartitioner{``0},System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
-            OrderablePartitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">The OrderablePartitioner that contains the original data source.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner do not return the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IList with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
-            state that may be shared amongst iterations that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
-            Partitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <param name="source">The Partitioner that contains the original data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> Partitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
-            the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
-            with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
-            IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the current element as a parameter.
-            </para>    
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.Partitioner{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
-            Partitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <param name="source">The Partitioner that contains the original data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> Partitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
-            the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
-            with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
-            IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            and a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely.
-            </para>  
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``1(System.Collections.Concurrent.OrderablePartitioner{``0},System.Threading.Tasks.ParallelOptions,System.Action{``0,System.Threading.Tasks.ParallelLoopState,System.Int64})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
-            OrderablePartitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <param name="source">The OrderablePartitioner that contains the original data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner do not return the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IList with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and the current element's index (an Int64).
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.Partitioner{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">
-            Partitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">The Partitioner that contains the original data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> Partitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> Partitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner does not return 
-            the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() method in the <paramref name="source"/> Partitioner returns an IList 
-            with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() method in the <paramref name="source"/> Partitioner returns an 
-            IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, and some local state that may be shared amongst iterations 
-            that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ForEach``2(System.Collections.Concurrent.OrderablePartitioner{``0},System.Threading.Tasks.ParallelOptions,System.Func{``1},System.Func{``0,System.Threading.Tasks.ParallelLoopState,System.Int64,``1,``1},System.Action{``1})">
-            <summary>
-            Executes a for each operation on a <see cref="T:System.Collections.Concurrent.OrderablePartitioner{TSource}">
-            OrderablePartitioner</see> in which iterations may run in parallel.
-            </summary>
-            <typeparam name="TSource">The type of the elements in <paramref name="source"/>.</typeparam>
-            <typeparam name="TLocal">The type of the thread-local data.</typeparam>
-            <param name="source">The OrderablePartitioner that contains the original data source.</param>
-            <param name="parallelOptions">A <see cref="T:System.Threading.Tasks.ParallelOptions">ParallelOptions</see> 
-            instance that configures the behavior of this operation.</param>
-            <param name="localInit">The function delegate that returns the initial state of the local data 
-            for each thread.</param>
-            <param name="body">The delegate that is invoked once per iteration.</param>
-            <param name="localFinally">The delegate that performs a final action on the local state of each
-            thread.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="source"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="parallelOptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="body"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localInit"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="localFinally"/> argument is null.</exception>
-            <exception cref="T:System.OperationCanceledException">The exception that is thrown when the 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the <paramref name="parallelOptions"/> 
-            argument is set</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            SupportsDynamicPartitions property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            KeysNormalized property in the <paramref name="source"/> OrderablePartitioner returns 
-            false.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when any 
-            methods in the <paramref name="source"/> OrderablePartitioner return null.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner do not return the correct number of partitions.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetPartitions() or GetOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IList with at least one null value.</exception>
-            <exception cref="T:System.InvalidOperationException">The exception that is thrown when the 
-            GetDynamicPartitions() or GetDynamicOrderablePartitions() methods in the <paramref name="source"/> 
-            OrderablePartitioner return an IEnumerable whose GetEnumerator() method returns null.</exception>
-            <exception cref="T:System.AggregateException">The exception that is thrown to contain an exception
-            thrown from one of the specified delegates.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when the 
-            the <see cref="T:System.Threading.CancellationTokenSource">CancellationTokenSource</see> associated with the 
-            the <see cref="T:System.Threading.CancellationToken">CancellationToken</see> in the 
-            <paramref name="parallelOptions"/> has been disposed.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.ParallelLoopResult">ParallelLoopResult</see> structure
-            that contains information on what portion of the loop completed.</returns>
-            <remarks>
-            <para>
-            The <see cref="T:System.Collections.Concurrent.Partitioner{TSource}">Partitioner</see> is used to retrieve 
-            the elements to be processed, in place of the original data source.  If the current element's 
-            index is desired, the source must be an <see cref="T:System.Collections.Concurrent.OrderablePartitioner">
-            OrderablePartitioner</see>.
-            </para>
-            <para>
-            The <paramref name="body"/> delegate is invoked once for each element in the <paramref name="source"/> 
-            Partitioner.  It is provided with the following parameters: the current element, 
-            a <see cref="T:System.Threading.Tasks.ParallelLoopState">ParallelLoopState</see> instance that may be 
-            used to break out of the loop prematurely, the current element's index (an Int64), and some local 
-            state that may be shared amongst iterations that execute on the same thread.
-            </para>
-            <para>
-            The <paramref name="localInit"/> delegate is invoked once for each thread that participates in the loop's 
-            execution and returns the initial local state for each of those threads.  These initial states are passed to the first
-            <paramref name="body"/> invocations on each thread.  Then, every subsequent body invocation returns a possibly 
-            modified state value that is passed to the next body invocation.  Finally, the last body invocation on each thread returns a state value 
-            that is passed to the <paramref name="localFinally"/> delegate.  The localFinally delegate is invoked once per thread to perform a final 
-            action on each thread's local state.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Parallel.ThrowIfReducableToSingleOCE(System.Collections.Generic.IEnumerable{System.Exception},System.Threading.CancellationToken)">
-            <summary>
-            Internal utility function that implements the OCE filtering behavior for all Parallel.* APIs.
-            Throws a single OperationCancelledException object with the token if the Exception collection only contains 
-            OperationCancelledExceptions with the given CancellationToken.
-            
-            </summary>
-            <param name="excCollection"> The exception collection to filter</param>
-            <param name="ct"> The CancellationToken expected on all inner exceptions</param>
-            <returns></returns>
-        </member>
-        <member name="T:System.Threading.Tasks.ParallelLoopState">
-            <summary>
-            Enables iterations of <see cref="T:System.Threading.Tasks.Parallel"/> loops to interact with
-            other iterations.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopState.Stop">
-            <summary>
-            Communicates that the <see cref="T:System.Threading.Tasks.Parallel"/> loop should cease execution at the system's earliest
-            convenience.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> method was previously called.  <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> and <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> may not be used in combination by iterations of the same loop.
-            </exception>
-            <remarks>
-            <para>
-            <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> may be used to communicate to the loop that no other iterations need be run.
-            For long-running iterations that may already be executing, <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> causes <see cref="P:System.Threading.Tasks.ParallelLoopState.IsStopped"/>
-            to return true for all other iterations of the loop, such that another iteration may check <see cref="P:System.Threading.Tasks.ParallelLoopState.IsStopped"/> and exit early if it's observed to be true.
-            </para>
-            <para>
-            <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> is typically employed in search-based algorithms, where once a result is found,
-            no other iterations need be executed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopState.Break">
-            <summary>
-            Communicates that the <see cref="T:System.Threading.Tasks.Parallel"/> loop should cease execution at the system's earliest
-            convenience of iterations beyond the current iteration.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> method was previously called. <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> and <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/>
-            may not be used in combination by iterations of the same loop.
-            </exception>
-            <remarks>
-            <para>
-            <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> may be used to communicate to the loop that no other iterations after the
-            current iteration need be run. For example, if <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> is called from the 100th
-            iteration of a for loop iterating in parallel from 0 to 1000, all iterations less than 100 should
-            still be run, but the iterations from 101 through to 1000 are not necessary.
-            </para>
-            <para>
-            For long-running iterations that may already be executing, <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> causes <see cref="P:System.Threading.Tasks.ParallelLoopState.LowestBreakIteration"/>
-            to be set to the current iteration's index if the current index is less than the current value of
-            <see cref="P:System.Threading.Tasks.ParallelLoopState.LowestBreakIteration"/>.
-            </para>
-            <para>
-            <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> is typically employed in search-based algorithms where an ordering is
-            present in the data source.
-            </para>
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState.InternalShouldExitCurrentIteration">
-            <summary>
-            Internal/virtual support for ShouldExitCurrentIteration.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState.ShouldExitCurrentIteration">
-            <summary>
-            Gets whether the current iteration of the loop should exit based
-            on requests made by this or other iterations.
-            </summary>
-            <remarks>
-            When an iteration of a loop calls <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> or <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/>, or
-            when one throws an exception, or when the loop is canceled, the <see cref="T:System.Threading.Tasks.Parallel"/> class will proactively
-            attempt to prohibit additional iterations of the loop from starting execution.
-            However, there may be cases where it is unable to prevent additional iterations from starting.
-            It may also be the case that a long-running iteration has already begun execution.  In such
-            cases, iterations may explicitly check the <see cref="P:System.Threading.Tasks.ParallelLoopState.ShouldExitCurrentIteration"/> property and
-            cease execution if the property returns true.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState.IsStopped">
-            <summary>
-            Gets whether any iteration of the loop has called <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/>.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState.IsExceptional">
-            <summary>
-            Gets whether any iteration of the loop has thrown an exception that went unhandled by that
-            iteration.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState.InternalLowestBreakIteration">
-            <summary>
-            Internal/virtual support for LowestBreakIteration.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState.LowestBreakIteration">
-            <summary>
-            Gets the lowest iteration of the loop from which <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> was called.
-            </summary>
-            <remarks>
-            If no iteration of the loop called <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/>, this property will return null.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopState32.#ctor(System.Threading.Tasks.ParallelLoopStateFlags32)">
-            <summary>
-            Internal constructor to ensure an instance isn't created by users.
-            </summary>
-            <param name="sharedParallelStateFlags">A flag shared among all threads participating
-            in the execution of a certain loop.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopState32.InternalBreak">
-            <summary>
-            Communicates that parallel tasks should stop when they reach a specified iteration element.
-            (which is CurrentIteration of the caller).
-            </summary>
-            <exception cref="T:System.InvalidOperationException">Break() called after Stop().</exception>
-            <remarks>
-            This is shared with all other concurrent threads in the system which are participating in the
-            loop's execution. After calling Break(), no additional iterations will be executed on
-            the current thread, and other worker threads will execute once they get beyond the calling iteration.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState32.CurrentIteration">
-            <summary>
-            Tracks the current loop iteration for the owning task.
-            This is used to compute whether or not the task should
-            terminate early due to a Break() call.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState32.InternalShouldExitCurrentIteration">
-            <summary>
-            Returns true if we should be exiting from the current iteration
-            due to Stop(), Break() or exception.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState32.InternalLowestBreakIteration">
-            <summary>
-            Returns the lowest iteration at which Break() has been called, or
-            null if Break() has not yet been called.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.ParallelLoopState64">
-            <summary>
-            Allows independent iterations of a parallel loop to interact with other iterations.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopState64.#ctor(System.Threading.Tasks.ParallelLoopStateFlags64)">
-            <summary>
-            Internal constructor to ensure an instance isn't created by users.
-            </summary>
-            <param name="sharedParallelStateFlags">A flag shared among all threads participating
-            in the execution of a certain loop.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopState64.InternalBreak">
-            <summary>
-            Communicates that parallel tasks should stop when they reach a specified iteration element.
-            (which is CurrentIteration of the caller).
-            </summary>
-            <exception cref="T:System.InvalidOperationException">Break() called after Stop().</exception>
-            <remarks>
-            Atomically sets shared StoppedBroken flag to BROKEN, then atomically sets shared 
-            LowestBreakIteration to CurrentIteration, but only if CurrentIteration is less than 
-            LowestBreakIteration.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState64.CurrentIteration">
-            <summary>
-            Tracks the current loop iteration for the owning task.
-            This is used to compute whether or not the task should
-            terminate early due to a Break() call.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState64.InternalShouldExitCurrentIteration">
-            <summary>
-            Returns true if we should be exiting from the current iteration
-            due to Stop(), Break() or exception.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopState64.InternalLowestBreakIteration">
-            <summary>
-            Returns the lowest iteration at which Break() has been called, or
-            null if Break() has not yet been called.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.ParallelLoopStateFlags">
-            <summary>
-            State information that is common between ParallelStateFlags class
-            and ParallelStateFlags64 class.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.ParallelLoopStateFlags32">
-            <summary>
-            An internal class used to share accounting information in 32-bit versions
-            of For()/ForEach() loops.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopStateFlags32.ShouldExitLoop(System.Int32)">
-            <summary>
-            Lets the caller know whether or not to prematurely exit the For/ForEach loop.
-            If this returns true, then exit the loop.  Otherwise, keep going.
-            </summary>
-            <param name="CallerIteration">The caller's current iteration point
-            in the loop.</param>
-            <remarks>
-            The loop should exit on any one of the following conditions:
-              (1) Stop() has been called by one or more tasks.
-              (2) An exception has been raised by one or more tasks.
-              (3) Break() has been called by one or more tasks, and
-                  CallerIteration exceeds the (lowest) iteration at which 
-                  Break() was called.
-              (4) The loop was canceled.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.ParallelLoopStateFlags64">
-            <summary>
-            An internal class used to share accounting information in 64-bit versions
-            of For()/ForEach() loops.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelLoopStateFlags64.ShouldExitLoop(System.Int64)">
-            <summary>
-            Lets the caller know whether or not to prematurely exit the For/ForEach loop.
-            If this returns true, then exit the loop.  Otherwise, keep going.
-            </summary>
-            <param name="CallerIteration">The caller's current iteration point
-            in the loop.</param>
-            <remarks>
-            The loop should exit on any one of the following conditions:
-              (1) Stop() has been called by one or more tasks.
-              (2) An exception has been raised by one or more tasks.
-              (3) Break() has been called by one or more tasks, and
-                  CallerIteration exceeds the (lowest) iteration at which 
-                  Break() was called.
-              (4) The loop has been canceled.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.ParallelLoopResult">
-            <summary>
-            Provides completion status on the execution of a <see cref="T:System.Threading.Tasks.Parallel"/> loop.
-            </summary>
-            <remarks>
-            If <see cref="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted"/> returns true, then the loop ran to completion, such that all iterations
-            of the loop were executed. If <see cref="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted"/> returns false and <see cref="P:System.Threading.Tasks.ParallelLoopResult.LowestBreakIteration"/> returns null, a call to <see cref="M:System.Threading.Tasks.ParallelLoopState.Stop"/> was used to end the loop prematurely. If <see cref="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted"/> returns false and <see cref="P:System.Threading.Tasks.ParallelLoopResult.LowestBreakIteration"/> returns a non-null integral
-            value, <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> was used to end the loop prematurely.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopResult.IsCompleted">
-            <summary>
-            Gets whether the loop ran to completion, such that all iterations of the loop were executed
-            and the loop didn't receive a request to end prematurely.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ParallelLoopResult.LowestBreakIteration">
-            <summary>
-            Gets the index of the lowest iteration from which <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/>
-            was called.
-            </summary>
-            <remarks>
-            If <see cref="M:System.Threading.Tasks.ParallelLoopState.Break"/> was not employed, this property will
-            return null.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.Shared`1">
-            <summary>
-            Utility class for allocating structs as heap variables
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.IndexRange">
-            <summary>
-            Represents an index range
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.RangeWorker">
-            <summary>
-            The RangeWorker struct wraps the state needed by a task that services the parallel loop
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.RangeWorker.#ctor(System.Threading.Tasks.IndexRange[],System.Int32,System.Int64)">
-            <summary>
-            Initializes a RangeWorker struct
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.RangeWorker.FindNewWork(System.Int64@,System.Int64@)">
-            <summary>
-            Implements the core work search algorithm that will be used for this range worker. 
-            </summary> 
-            
-            Usage pattern is:
-               1) the thread associated with this rangeworker calls FindNewWork
-               2) if we return true, the worker uses the nFromInclusiveLocal and nToExclusiveLocal values
-                  to execute the sequential loop
-               3) if we return false it means there is no more work left. It's time to quit.        
-               
-        </member>
-        <member name="M:System.Threading.Tasks.RangeWorker.FindNewWork32(System.Int32@,System.Int32@)">
-            <summary>
-            32 bit integer version of FindNewWork. Assumes the ranges were initialized with 32 bit values.
-            </summary> 
-        </member>
-        <member name="T:System.Threading.Tasks.RangeManager">
-            <summary>
-            Represents the entire loop operation, keeping track of workers and ranges.
-            </summary>
-            
-            The usage pattern is:
-               1) The Parallel loop entry function (ForWorker) creates an instance of this class
-               2) Every thread joining to service the parallel loop calls RegisterWorker to grab a 
-                  RangeWorker struct to wrap the state it will need to find and execute work, 
-                  and they keep interacting with that struct until the end of the loop
-        </member>
-        <member name="M:System.Threading.Tasks.RangeManager.#ctor(System.Int64,System.Int64,System.Int64,System.Int32)">
-            <summary>
-            Initializes a RangeManager with the given loop parameters, and the desired number of outer ranges
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.RangeManager.RegisterNewWorker">
-            <summary>
-            The function that needs to be called by each new worker thread servicing the parallel loop
-            in order to get a RangeWorker struct that wraps the state for finding and executing indices
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.Task`1">
-            <summary>
-            Represents an asynchronous operation that produces a result at some time in the future.
-            </summary>
-            <typeparam name="TResult">
-            The type of the result produced by this <see cref="T:System.Threading.Tasks.Task`1"/>.
-            </typeparam>
-            <remarks>
-            <para>
-            <see cref="T:System.Threading.Tasks.Task`1"/> instances may be created in a variety of ways. The most common approach is by
-            using the task's <see cref="P:System.Threading.Tasks.Task`1.Factory"/> property to retrieve a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance that can be used to create tasks for several
-            purposes. For example, to create a <see cref="T:System.Threading.Tasks.Task`1"/> that runs a function, the factory's StartNew
-            method may be used:
-            <code>
-            // C# 
-            var t = Task&lt;int&gt;.Factory.StartNew(() =&gt; GenerateResult());
-            - or -
-            var t = Task.Factory.StartNew(() =&gt; GenerateResult());
-            
-            ' Visual Basic 
-            Dim t = Task&lt;int&gt;.Factory.StartNew(Function() GenerateResult())
-            - or -
-            Dim t = Task.Factory.StartNew(Function() GenerateResult())
-            </code>
-            </para>
-            <para>
-            The <see cref="T:System.Threading.Tasks.Task`1"/> class also provides constructors that initialize the task but that do not
-            schedule it for execution. For performance reasons, the StartNew method should be the
-            preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation
-            and scheduling must be separated, the constructors may be used, and the task's 
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see>
-            method may then be used to schedule the task for execution at a later time.
-            </para>
-            <para>
-            All members of <see cref="T:System.Threading.Tasks.Task`1"/>, except for 
-            <see cref="M:System.Threading.Tasks.Task.Dispose">Dispose</see>, are thread-safe
-            and may be used from multiple threads concurrently.
-            </para>
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.Task">
-            <summary>
-            Represents an asynchronous operation.
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:System.Threading.Tasks.Task"/> instances may be created in a variety of ways. The most common approach is by
-            using the Task type's <see cref="P:System.Threading.Tasks.Task.Factory"/> property to retrieve a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance that can be used to create tasks for several
-            purposes. For example, to create a <see cref="T:System.Threading.Tasks.Task"/> that runs an action, the factory's StartNew
-            method may be used:
-            <code>
-            // C# 
-            var t = Task.Factory.StartNew(() =&gt; DoAction());
-            
-            ' Visual Basic 
-            Dim t = Task.Factory.StartNew(Function() DoAction())
-            </code>
-            </para>
-            <para>
-            The <see cref="T:System.Threading.Tasks.Task"/> class also provides constructors that initialize the Task but that do not
-            schedule it for execution. For performance reasons, TaskFactory's StartNew method should be the
-            preferred mechanism for creating and scheduling computational tasks, but for scenarios where creation
-            and scheduling must be separated, the constructors may be used, and the task's <see cref="M:System.Threading.Tasks.Task.Start"/>
-            method may then be used to schedule the task for execution at a later time.
-            </para>
-            <para>
-            All members of <see cref="T:System.Threading.Tasks.Task"/>, except for <see cref="M:System.Threading.Tasks.Task.Dispose"/>, are thread-safe
-            and may be used from multiple threads concurrently.
-            </para>
-            <para>
-            For operations that return values, the <see cref="T:System.Threading.Tasks.Task`1"/> class
-            should be used.
-            </para>
-            <para>
-            For developers implementing custom debuggers, several internal and private members of Task may be
-            useful (these may change from release to release). The Int32 m_taskId field serves as the backing
-            store for the <see cref="P:System.Threading.Tasks.Task.Id"/> property, however accessing this field directly from a debugger may be
-            more efficient than accessing the same value through the property's getter method (the
-            s_taskIdCounter Int32 counter is used to retrieve the next available ID for a Task). Similarly, the
-            Int32 m_stateFlags field stores information about the current lifecycle stage of the Task,
-            information also accessible through the <see cref="P:System.Threading.Tasks.Task.Status"/> property. The m_action System.Object
-            field stores a reference to the Task's delegate, and the m_stateObject System.Object field stores the
-            async state passed to the Task by the developer. Finally, for debuggers that parse stack frames, the
-            InternalWait method serves a potential marker for when a Task is entering a wait operation.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#cctor">
-            <summary>
-            A type initializer that runs with the appropriate permissions.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the Task.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action,System.Threading.CancellationToken)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the Task.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            that will be assigned to the new Task.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and creation options.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the task.</param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the Task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="action"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and creation options.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the task.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the Task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="action"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action and state.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the task.</param>
-            <param name="state">An object representing data to be used by the action.</param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="action"/> argument is null.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object,System.Threading.CancellationToken)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action, state, snd options.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the task.</param>
-            <param name="state">An object representing data to be used by the action.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new task.</param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="action"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action, state, snd options.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the task.</param>
-            <param name="state">An object representing data to be used by the action.</param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the Task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="action"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Action{System.Object},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task"/> with the specified action, state, snd options.
-            </summary>
-            <param name="action">The delegate that represents the code to execute in the task.</param>
-            <param name="state">An object representing data to be used by the action.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the Task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="action"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.#ctor(System.Object,System.Object,System.Threading.Tasks.Task,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            An internal constructor used by the factory methods on task and its descendent(s).
-            This variant does not capture the ExecutionContext; it is up to the caller to do that.
-            </summary>
-            <param name="action">An action to execute.</param>
-            <param name="state">Optional state to pass to the action.</param>
-            <param name="parent">Parent of Task.</param>
-            <param name="cancellationToken">A CancellationToken for the task.</param>
-            <param name="scheduler">A task scheduler under which the task will run.</param>
-            <param name="creationOptions">Options to control its execution.</param>
-            <param name="internalOptions">Internal options to control its execution</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.TaskConstructorCore(System.Object,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Common logic used by the following internal ctors:
-                Task()
-                Task(object action, object state, Task parent, TaskCreationOptions options, TaskScheduler taskScheduler)
-            
-            ASSUMES THAT m_creatingTask IS ALREADY SET.
-            
-            </summary>
-            <param name="action">Action for task to execute.</param>
-            <param name="state">Object to which to pass to action (may be null)</param>
-            <param name="scheduler">Task scheduler on which to run thread (only used by continuation tasks).</param>
-            <param name="cancellationToken">A CancellationToken for the Task.</param>
-            <param name="creationOptions">Options to customize behavior of Task.</param>
-            <param name="internalOptions">Internal options to customize behavior of Task.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.DeregisterCancellationCallback">
-            <summary>
-            Checks if we registered a CT callback during construction, and deregisters it. 
-            This should be called when we know the registration isn't useful anymore. Specifically from Finish() if the task has completed
-            successfully or with an exception.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.PossiblyCaptureContext(System.Threading.StackCrawlMark2@)">
-            <summary>
-            Captures the ExecutionContext so long as flow isn't suppressed.
-            </summary>
-            <param name="stackMark">A stack crawl mark pointing to the frame of the caller.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.AddNewChild">
-            <summary>
-            Internal function that will be called by a new child task to add itself to 
-            the children list of the parent (this).
-            
-            Since a child task can only be created from the thread executing the action delegate
-            of this task, reentrancy is neither required nor supported. This should not be called from
-            anywhere other than the task construction/initialization codepaths.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Start">
-            <summary>
-            Starts the <see cref="T:System.Threading.Tasks.Task"/>, scheduling it for execution to the current <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
-            </summary>
-            <remarks>
-            A task may only be started and run only once.  Any attempts to schedule a task a second time
-            will result in an exception.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
-            executed, or canceled, or it may have been created in a manner that doesn't support direct
-            scheduling.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Start(System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Starts the <see cref="T:System.Threading.Tasks.Task"/>, scheduling it for execution to the specified <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
-            </summary>
-            <remarks>
-            A task may only be started and run only once. Any attempts to schedule a task a second time will
-            result in an exception.
-            </remarks>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> with which to associate
-            and execute this task.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
-            executed, or canceled, or it may have been created in a manner that doesn't support direct
-            scheduling.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.RunSynchronously">
-            <summary>
-            Runs the <see cref="T:System.Threading.Tasks.Task"/> synchronously on the current <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
-            </summary>
-            <remarks>
-            <para>
-            A task may only be started and run only once. Any attempts to schedule a task a second time will
-            result in an exception.
-            </para>
-            <para>
-            Tasks executed with <see cref="M:System.Threading.Tasks.Task.RunSynchronously"/> will be associated with the current <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>.
-            </para>
-            <para>
-            If the target scheduler does not support running this Task on the current thread, the Task will
-            be scheduled for execution on the scheduler, and the current thread will block until the
-            Task has completed execution.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
-            executed, or canceled, or it may have been created in a manner that doesn't support direct
-            scheduling.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.RunSynchronously(System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Runs the <see cref="T:System.Threading.Tasks.Task"/> synchronously on the <see cref="T:System.Threading.Tasks.TaskScheduler">scheduler</see> provided.
-            </summary>
-            <remarks>
-            <para>
-            A task may only be started and run only once. Any attempts to schedule a task a second time will
-            result in an exception.
-            </para>
-            <para>
-            If the target scheduler does not support running this Task on the current thread, the Task will
-            be scheduled for execution on the scheduler, and the current thread will block until the
-            Task has completed execution.
-            </para>
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-            The <see cref="T:System.Threading.Tasks.Task"/> is not in a valid state to be started. It may have already been started,
-            executed, or canceled, or it may have been created in a manner that doesn't support direct
-            scheduling.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> instance has been disposed.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="scheduler"/> parameter
-            is null.</exception>
-            <param name="scheduler">The scheduler on which to attempt to run this task inline.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ThrowIfDisposed">
-            <summary>
-            Throws an exception if the task has been disposed, and hence can no longer be accessed.
-            </summary>
-            <exception cref="T:System.ObjectDisposedException">The task has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.SetCompleted">
-            <summary>
-            Sets the internal completion event.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Dispose">
-            <summary>
-            Disposes the <see cref="T:System.Threading.Tasks.Task"/>, releasing all of its unmanaged resources.  
-            </summary>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.Tasks.Task"/>, this method is not thread-safe.
-            Also, <see cref="M:System.Threading.Tasks.Task.Dispose"/> may only be called on a <see cref="T:System.Threading.Tasks.Task"/> that is in one of
-            the final states: <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>,
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </remarks>
-            <exception cref="T:System.InvalidOperationException">
-            The exception that is thrown if the <see cref="T:System.Threading.Tasks.Task"/> is not in 
-            one of the final states: <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>,
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </exception>        
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Dispose(System.Boolean)">
-            <summary>
-            Disposes the <see cref="T:System.Threading.Tasks.Task"/>, releasing all of its unmanaged resources.  
-            </summary>
-            <param name="disposing">
-            A Boolean value that indicates whether this method is being called due to a call to <see cref="M:System.Threading.Tasks.Task.Dispose"/>.
-            </param>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.Tasks.Task"/>, this method is not thread-safe.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ScheduleAndStart(System.Boolean)">
-            <summary>
-            Schedules the task for execution.
-            </summary>
-            <param name="needsProtection">If true, TASK_STATE_STARTED bit is turned on in
-            an atomic fashion, making sure that TASK_STATE_CANCELED does not get set
-            underneath us.  If false, TASK_STATE_STARTED bit is OR-ed right in.  This
-            allows us to streamline things a bit for StartNew(), where competing cancellations
-            are not a problem.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.AddException(System.Object)">
-            <summary>
-            Adds an exception to the list of exceptions this task has thrown.
-            </summary>
-            <param name="exceptionObject">An object representing either an Exception or a collection of Exceptions.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.GetExceptions(System.Boolean)">
-            <summary>
-            Returns a list of exceptions by aggregating the holder's contents. Or null if
-            no exceptions have been thrown.
-            </summary>
-            <param name="includeTaskCanceledExceptions">Whether to include a TCE if cancelled.</param>
-            <returns>An aggregate exception, or null if no exceptions have been caught.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ThrowIfExceptional(System.Boolean)">
-            <summary>
-            Throws an aggregate exception if the task contains exceptions. 
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.UpdateExceptionObservedStatus">
-            <summary>
-            Checks whether this is an attached task, and whether we are being called by the parent task.
-            And sets the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag based on that.
-            
-            This is meant to be used internally when throwing an exception, and when WaitAll is gathering 
-            exceptions for tasks it waited on. If this flag gets set, the implicit wait on children 
-            will skip exceptions to prevent duplication.
-            
-            This should only be called when this task has completed with an exception
-            
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Finish(System.Boolean)">
-             <summary>
-             Signals completion of this particular task.
-            
-             The bUserDelegateExecuted parameter indicates whether this Finish() call comes following the
-             full execution of the user delegate. 
-             
-             If bUserDelegateExecuted is false, it mean user delegate wasn't invoked at all (either due to
-             a cancellation request, or because this task is a promise style Task). In this case, the steps
-             involving child tasks (i.e. WaitForChildren) will be skipped.
-             
-             </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.FinishStageTwo">
-            <summary>
-            FinishStageTwo is to be executed as soon as we known there are no more children to complete. 
-            It can happen i) either on the thread that originally executed this task (if no children were spawned, or they all completed by the time this task's delegate quit)
-                         ii) or on the thread that executed the last child.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.FinishStageThree">
-            <summary>
-            Final stage of the task completion code path. Notifies the parent (if any) that another of its childre are done, and runs continuations.
-            This function is only separated out from FinishStageTwo because these two operations are also needed to be called from CancellationCleanupLogic()
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ProcessChildCompletion(System.Threading.Tasks.Task)">
-            <summary>
-            This is called by children of this task when they are completed.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.AddExceptionsFromChildren">
-            <summary>
-            This is to be called just before the task does its final state transition. 
-            It traverses the list of exceptional children, and appends their aggregate exceptions into this one's exception list
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.FinishThreadAbortedTask(System.Boolean,System.Boolean)">
-            <summary>
-            Special purpose Finish() entry point to be used when the task delegate throws a ThreadAbortedException
-            This makes a note in the state flags so that we avoid any costly synchronous operations in the finish codepath
-            such as inlined continuations
-            </summary>
-            <param name="bTAEAddedToExceptionHolder">
-            Indicates whether the ThreadAbortException was added to this task's exception holder. 
-            This should always be true except for the case of non-root self replicating task copies.
-            </param>
-            <param name="delegateRan">Whether the delegate was executed.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Execute">
-            <summary>
-            Executes the task. This method will only be called once, and handles bookeeping associated with
-            self-replicating tasks, in addition to performing necessary exception marshaling.
-            </summary>
-            <exception cref="T:System.ObjectDisposedException">The task has already been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.System#Threading#Tasks#IThreadPoolWorkItem#ExecuteWorkItem">
-            <summary>
-            IThreadPoolWorkItem override, which is the entry function for this task when the TP scheduler decides to run it.
-            
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.System#Threading#Tasks#IThreadPoolWorkItem#MarkAborted(System.Threading.ThreadAbortException)">
-            <summary>
-            The ThreadPool calls this if a ThreadAbortException is thrown while trying to execute this workitem.  This may occur
-            before Task would otherwise be able to observe it.  
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ExecuteEntry(System.Boolean)">
-            <summary>
-            Outermost entry function to execute this task. Handles all aspects of executing a task on the caller thread.
-            Currently this is called by IThreadPoolWorkItem.ExecuteWorkItem(), and TaskManager.TryExecuteInline. 
-            
-            </summary>
-            <param name="bPreventDoubleExecution"> Performs atomic updates to prevent double execution. Should only be set to true
-            in codepaths servicing user provided TaskSchedulers. The ConcRT or ThreadPool schedulers don't need this. </param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.InnerInvoke">
-            <summary>
-            The actual code which invokes the body of the task. This can be overriden in derived types.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.InnerInvokeWithArg(System.Threading.Tasks.Task)">
-            <summary>
-            Alternate InnerInvoke prototype to be called from ExecuteSelfReplicating() so that
-            the Parallel Debugger can discover the actual task being invoked. 
-            Details: Here, InnerInvoke is actually being called on the rootTask object while we are actually executing the
-            childTask. And the debugger needs to discover the childTask, so we pass that down as an argument.
-            The NoOptimization and NoInlining flags ensure that the childTask pointer is retained, and that this
-            function appears on the callstack.
-            </summary>
-            <param name="childTask"></param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.HandleException(System.Exception)">
-            <summary>
-            Performs whatever handling is necessary for an unhandled exception. Normally
-            this just entails adding the exception to the holder object. 
-            </summary>
-            <param name="unhandledException">The exception that went unhandled.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Wait">
-            <summary>
-            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
-            </summary>
-            <exception cref="T:System.AggregateException">
-            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during
-            the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Wait(System.TimeSpan)">
-            <summary>
-            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
-            </summary>
-            <param name="timeout">
-            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>
-            true if the <see cref="T:System.Threading.Tasks.Task"/> completed execution within the allotted time; otherwise, false.
-            </returns>
-            <exception cref="T:System.AggregateException">
-            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="timeout"/> is a negative number other than -1 milliseconds, which represents an
-            infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Wait(System.Threading.CancellationToken)">
-            <summary>
-            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
-            </summary>
-            <param name="cancellationToken">
-            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the task to complete.
-            </param>
-            <exception cref="T:System.OperationCanceledException">
-            The <paramref name="cancellationToken"/> was canceled.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/>
-            has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Wait(System.Int32)">
-            <summary>
-            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
-            </summary>
-            <param name="millisecondsTimeout">
-            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
-            wait indefinitely.</param>
-            <returns>true if the <see cref="T:System.Threading.Tasks.Task"/> completed execution within the allotted time; otherwise,
-            false.
-            </returns>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
-            infinite time-out.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/>
-            has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.Wait(System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Waits for the <see cref="T:System.Threading.Tasks.Task"/> to complete execution.
-            </summary>
-            <param name="millisecondsTimeout">
-            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
-            wait indefinitely.
-            </param>
-            <param name="cancellationToken">
-            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the task to complete.
-            </param>
-            <returns>
-            true if the <see cref="T:System.Threading.Tasks.Task"/> completed execution within the allotted time; otherwise, false.
-            </returns>
-            <exception cref="T:System.AggregateException">
-            The <see cref="T:System.Threading.Tasks.Task"/> was canceled -or- an exception was thrown during the execution of the <see cref="T:System.Threading.Tasks.Task"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/>
-            has been disposed.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
-            infinite time-out.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The <paramref name="cancellationToken"/> was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.InternalWait(System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            The core wait function, which is only accesible internally. It's meant to be used in places in TPL code where 
-            the current context is known or cached.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.InternalCancel(System.Boolean)">
-            <summary>
-            Cancels the <see cref="T:System.Threading.Tasks.Task"/>.
-            </summary>
-            <param name="bCancelNonExecutingOnly"> Indiactes whether we should only cancel non-invoked tasks.
-            For the default scheduler this option will only be serviced through TryDequeue.
-            For custom schedulers we also attempt an atomic state transition.</param>
-            <returns>true if the task was successfully canceled; otherwise, false.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Threading.Tasks.Task"/>
-            has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.SetCancellationAcknowledged">
-            <summary>
-            Sets the task's cancellation acknowledged flag.
-            </summary>    
-        </member>
-        <member name="M:System.Threading.Tasks.Task.FinishContinuations">
-            <summary>
-            Runs all of the continuations, as appropriate.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWithIsRightKind(System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Helper function to determine whether the current task is in the state desired by the
-            continuation kind under evaluation. Three possibilities exist: the task failed with
-            an unhandled exception (OnFailed), the task was canceled before running (OnAborted),
-            or the task completed successfully (OnCompletedSuccessfully).  Note that the last
-            one includes completing due to cancellation.
-            </summary>
-            <param name="options">The continuation options under evaluation.</param>
-            <returns>True if the continuation should be run given the task's current state.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task})">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="cancellationToken"> The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes.  When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed. If the continuation criteria specified through the <paramref name="continuationOptions"/> parameter are not met, the continuation task will be canceled
-            instead of scheduled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith(System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
-            execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed. If the criteria specified through the <paramref name="continuationOptions"/> parameter
-            are not met, the continuation task will be canceled instead of scheduled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0})">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <typeparam name="TResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <typeparam name="TResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <typeparam name="TResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes.  When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <typeparam name="TResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
-            completed. If the continuation criteria specified through the <paramref name="continuationOptions"/> parameter are not met, the continuation task will be canceled
-            instead of scheduled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWith``1(System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task"/> completes.
-            </summary>
-            <typeparam name="TResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
-            execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
-            completed. If the criteria specified through the <paramref name="continuationOptions"/> parameter
-            are not met, the continuation task will be canceled instead of scheduled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.CreationOptionsFromContinuationOptions(System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskCreationOptions@,System.Threading.Tasks.InternalTaskOptions@)">
-            <summary>
-            Converts TaskContinuationOptions to TaskCreationOptions, and also does
-            some validity checking along the way.
-            </summary>
-            <param name="continuationOptions">Incoming TaskContinuationOptions</param>
-            <param name="creationOptions">Outgoing TaskCreationOptions</param>
-            <param name="internalOptions">Outgoing InternalTaskOptions</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler,System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Registers the continuation and possibly runs it (if the task is already finished).
-            </summary>
-            <param name="continuationTask">The continuation task itself.</param>
-            <param name="scheduler">TaskScheduler with which to associate continuation task.</param>
-            <param name="options">Restrictions on when the continuation becomes active.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[])">
-            <summary>
-            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
-            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.TimeSpan)">
-            <summary>
-            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <returns>
-            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
-            otherwise, false.
-            </returns>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <param name="timeout">
-            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
-            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="timeout"/> is a negative number other than -1 milliseconds, which represents an
-            infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32)">
-            <summary>
-            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <returns>
-            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
-            otherwise, false.
-            </returns>
-            <param name="millisecondsTimeout">
-            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
-            wait indefinitely.</param>
-            <param name="tasks">An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
-            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
-            infinite time-out.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Threading.CancellationToken)">
-            <summary>
-            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <returns>
-            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
-            otherwise, false.
-            </returns>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <param name="cancellationToken">
-            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the tasks to complete.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
-            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The <paramref name="cancellationToken"/> was canceled.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAll(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Waits for all of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <returns>
-            true if all of the <see cref="T:System.Threading.Tasks.Task"/> instances completed execution within the allotted time;
-            otherwise, false.
-            </returns>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <param name="millisecondsTimeout">
-            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
-            wait indefinitely.
-            </param>
-            <param name="cancellationToken">
-            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for the tasks to complete.
-            </param>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            At least one of the <see cref="T:System.Threading.Tasks.Task"/> instances was canceled -or- an exception was thrown during
-            the execution of at least one of the <see cref="T:System.Threading.Tasks.Task"/> instances.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
-            infinite time-out.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The <paramref name="cancellationToken"/> was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAllSTAAnd64Aware(System.Threading.WaitHandle[],System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Waits for a set of handles in a STA-aware way.  In other words, it will wait for each
-            of the events individually if we're on a STA thread, because MsgWaitForMultipleObjectsEx
-            can't do a true wait-all due to its hidden message queue event. This is not atomic,
-            of course, but we only wait on one-way (MRE) events anyway so this is OK.
-            </summary>
-            <param name="waitHandles">An array of wait handles to wait on.</param>
-            <param name="millisecondsTimeout">The timeout to use during waits.</param>
-            <param name="cancellationToken">The cancellationToken that enables a wait to be canceled.</param>
-            <returns>True if all waits succeeded, false if a timeout occurred.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.FastWaitAll(System.Threading.Tasks.Task[])">
-            <summary>
-            Internal WaitAll implementation which is meant to be used with small number of tasks,
-            optimized for Parallel.Invoke and other structured primitives.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.AddExceptionsForCompletedTask(System.Collections.Generic.List{System.Exception}@,System.Threading.Tasks.Task)">
-            <summary>
-            This internal function is only meant to be called by WaitAll()
-            If the completed task is canceled or it has other exceptions, here we will add those
-            into the passed in exception list (which will be lazily initialized here).
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[])">
-            <summary>
-            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <returns>The index of the completed task in the <paramref name="tasks"/> array argument.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.TimeSpan)">
-            <summary>
-            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <param name="timeout">
-            A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>
-            The index of the completed task in the <paramref name="tasks"/> array argument, or -1 if the
-            timeout occurred.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="timeout"/> is a negative number other than -1 milliseconds, which represents an
-            infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Threading.CancellationToken)">
-            <summary>
-            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <param name="cancellationToken">
-            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for a task to complete.
-            </param>
-            <returns>
-            The index of the completed task in the <paramref name="tasks"/> array argument.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The <paramref name="cancellationToken"/> was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Int32)">
-            <summary>
-            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <param name="millisecondsTimeout">
-            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
-            wait indefinitely.
-            </param>
-            <returns>
-            The index of the completed task in the <paramref name="tasks"/> array argument, or -1 if the
-            timeout occurred.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
-            infinite time-out.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.WaitAny(System.Threading.Tasks.Task[],System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Waits for any of the provided <see cref="T:System.Threading.Tasks.Task"/> objects to complete execution.
-            </summary>
-            <param name="tasks">
-            An array of <see cref="T:System.Threading.Tasks.Task"/> instances on which to wait.
-            </param>
-            <param name="millisecondsTimeout">
-            The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to
-            wait indefinitely.
-            </param>
-            <param name="cancellationToken">
-            A <see cref="P:System.Threading.Tasks.Task.CancellationToken"/> to observe while waiting for a task to complete.
-            </param>
-            <returns>
-            The index of the completed task in the <paramref name="tasks"/> array argument, or -1 if the
-            timeout occurred.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="tasks"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="tasks"/> argument contains a null element.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="millisecondsTimeout"/> is a negative number other than -1, which represents an
-            infinite time-out.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The <paramref name="cancellationToken"/> was canceled.
-            </exception>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.Id">
-            <summary>
-            Gets a unique ID for this <see cref="T:System.Threading.Tasks.Task">Task</see> instance.
-            </summary>
-            <remarks>
-            Task IDs are assigned on-demand and do not necessarily represent the order in the which Task
-            instances were created.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.CurrentId">
-            <summary>
-            Returns the unique ID of the currently executing <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.InternalCurrent">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.Task">Task</see> instance currently executing, or
-            null if none exists.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.CurrentStackGuard">
-            <summary>
-            Gets the StackGuard object assigned to the current thread.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.Exception">
-            <summary>
-            Gets the <see cref="T:System.AggregateException">Exception</see> that caused the <see cref="T:System.Threading.Tasks.Task">Task</see> to end prematurely. If the <see cref="T:System.Threading.Tasks.Task">Task</see> completed successfully or has not yet thrown any
-            exceptions, this will return null.
-            </summary>
-            <remarks>
-            Tasks that throw unhandled exceptions store the resulting exception and propagate it wrapped in a
-            <see cref="T:System.AggregateException"/> in calls to <see cref="M:System.Threading.Tasks.Task.Wait">Wait</see>
-            or in accesses to the <see cref="P:System.Threading.Tasks.Task.Exception"/> property.  Any exceptions not observed by the time
-            the Task instance is garbage collected will be propagated on the finalizer thread.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task">Task</see>
-            has been disposed.
-            </exception>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.Status">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> of this Task. 
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsCanceled">
-            <summary>
-            Gets whether this <see cref="T:System.Threading.Tasks.Task">Task</see> instance has completed
-            execution due to being canceled.
-            </summary>
-            <remarks>
-            A <see cref="T:System.Threading.Tasks.Task">Task</see> will complete in Canceled state either if its <see cref="P:System.Threading.Tasks.Task.CancellationToken">CancellationToken</see> 
-            was marked for cancellation before the task started executing, or if the task acknowledged the cancellation request on 
-            its already signaled CancellationToken by throwing an 
-            <see cref="T:System.OperationCanceledException">OperationCanceledException</see> that bears the same 
-            <see cref="T:System.Threading.CancellationToken">CancellationToken</see>.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsCancellationRequested">
-            <summary>
-            Returns true if this task has a cancellation token and it was signaled.
-            To be used internally in execute entry codepaths.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.CancellationToken">
-            <summary>
-            This internal property provides access to the CancellationToken that was set on the task 
-            when it was constructed.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsCancellationAcknowledged">
-            <summary>
-            Gets whether this <see cref="T:System.Threading.Tasks.Task"/> threw an OperationCanceledException while its CancellationToken was signaled.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsCompleted">
-            <summary>
-            Gets whether this <see cref="T:System.Threading.Tasks.Task">Task</see> has completed.
-            </summary>
-            <remarks>
-            <see cref="P:System.Threading.Tasks.Task.IsCompleted"/> will return true when the Task is in one of the three
-            final states: <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>,
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsDisposed">
-            <summary>
-            Checks whether this task has been disposed.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.CreationOptions">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used
-            to create this task.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.System#IAsyncResult#AsyncWaitHandle">
-            <summary>
-            Gets a <see cref="T:System.Threading.WaitHandle"/> that can be used to wait for the task to
-            complete.
-            </summary>
-            <remarks>
-            Using the wait functionality provided by <see cref="M:System.Threading.Tasks.Task.Wait"/>
-            should be preferred over using <see cref="P:System.IAsyncResult.AsyncWaitHandle"/> for similar
-            functionality.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task"/> has been disposed.
-            </exception>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.AsyncState">
-            <summary>
-            Gets the state object supplied when the <see cref="T:System.Threading.Tasks.Task">Task</see> was created,
-            or null if none was supplied.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.System#IAsyncResult#CompletedSynchronously">
-            <summary>
-            Gets an indication of whether the asynchronous operation completed synchronously.
-            </summary>
-            <value>true if the asynchronous operation completed synchronously; otherwise, false.</value>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.ExecutingTaskScheduler">
-            <summary>
-            Provides access to the TaskScheduler responsible for executing this Task.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.Factory">
-            <summary>
-            Provides access to factory methods for creating <see cref="T:System.Threading.Tasks.Task"/> and <see cref="T:System.Threading.Tasks.Task`1"/> instances.
-            </summary>
-            <remarks>
-            The factory returned from <see cref="P:System.Threading.Tasks.Task.Factory"/> is a default instance
-            of <see cref="T:System.Threading.Tasks.TaskFactory"/>, as would result from using
-            the default constructor on TaskFactory.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.CompletedEvent">
-            <summary>
-            Provides an event that can be used to wait for completion.
-            Only called by Wait*(), which means that we really do need to instantiate a completion event.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsSelfReplicatingRoot">
-            <summary>
-            Determines whether this is the root task of a self replicating group.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsChildReplica">
-            <summary>
-            Determines whether the task is a replica itself.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.ExceptionRecorded">
-            <summary>
-            The property formerly known as IsFaulted.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsFaulted">
-            <summary>
-            Gets whether the <see cref="T:System.Threading.Tasks.Task"/> completed due to an unhandled exception.
-            </summary>
-            <remarks>
-            If <see cref="P:System.Threading.Tasks.Task.IsFaulted"/> is true, the Task's <see cref="P:System.Threading.Tasks.Task.Status"/> will be equal to
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">TaskStatus.Faulted</see>, and its
-            <see cref="P:System.Threading.Tasks.Task.Exception"/> property will be non-null.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsExceptionObservedByParent">
-            <summary>
-            Checks whether the TASK_STATE_EXCEPTIONOBSERVEDBYPARENT status flag is set,
-            This will only be used by the implicit wait to prevent double throws
-            
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.Task.IsDelegateInvoked">
-            <summary>
-            Checks whether the body was ever invoked. Used by task scheduler code to verify custom schedulers actually ran the task.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.Task.TaskContinuation">
-            <summary>
-            A structure to hold continuation information.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.TaskContinuation.#ctor(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler,System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Constructs a new continuation structure.
-            </summary>
-            <param name="task">The task to be activated.</param>
-            <param name="options">The continuation options.</param>
-            <param name="scheduler">The scheduler to use for the continuation.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task.TaskContinuation.Run(System.Threading.Tasks.Task,System.Boolean)">
-            <summary>
-            Invokes the continuation for the target completion task.
-            </summary>
-            <param name="completedTask">The completed task.</param>
-            <param name="bCanInlineContinuationTask">Whether the continuation can be inlined.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0})">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.CancellationToken)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to be assigned to this task.</param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function and creation options.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function and creation options.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified function and state.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <param name="state">An object representing data to be used by the action.</param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified action, state, and options.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <param name="state">An object representing data to be used by the function.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to be assigned to the new task.</param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified action, state, and options.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <param name="state">An object representing data to be used by the function.</param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Initializes a new <see cref="T:System.Threading.Tasks.Task`1"/> with the specified action, state, and options.
-            </summary>
-            <param name="function">
-            The delegate that represents the code to execute in the task. When the function has completed,
-            the task's <see cref="P:System.Threading.Tasks.Task`1.Result"/> property will be set to return the result value of the function.
-            </param>
-            <param name="state">An object representing data to be used by the function.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to be assigned to the new task.</param>
-            <param name="creationOptions">
-            The <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions</see> used to
-            customize the task's behavior.
-            </param>
-            <exception cref="T:System.ArgumentException">
-            The <paramref name="function"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskCreationOptions"/>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{`0},System.Threading.Tasks.Task,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a new future object.
-            </summary>
-            <param name="parent">The parent task for this future.</param>
-            <param name="valueSelector">A function that yields the future value.</param>
-            <param name="scheduler">The task scheduler which will be used to execute the future.</param>
-            <param name="cancellationToken">The CancellationToken for the task.</param>
-            <param name="creationOptions">Options to control the future's behavior.</param>
-            <param name="internalOptions">Internal options to control the future's behavior.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="creationOptions"/> argument specifies
-            a SelfReplicating <see cref="T:System.Threading.Tasks.Task`1"/>, which is illegal."/&gt;.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.#ctor(System.Func{System.Object,`0},System.Object,System.Threading.Tasks.Task,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.InternalTaskOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a new future object.
-            </summary>
-            <param name="parent">The parent task for this future.</param>
-            <param name="state">An object containing data to be used by the action; may be null.</param>
-            <param name="valueSelector">A function that yields the future value.</param>
-            <param name="cancellationToken">The CancellationToken for the task.</param>
-            <param name="scheduler">The task scheduler which will be used to execute the future.</param>
-            <param name="creationOptions">Options to control the future's behavior.</param>
-            <param name="internalOptions">Internal options to control the future's behavior.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="creationOptions"/> argument specifies
-            a SelfReplicating <see cref="T:System.Threading.Tasks.Task`1"/>, which is illegal."/&gt;.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.InvokeFuture(System.Object)">
-            <summary>
-            Evaluates the value selector of the Task which is passed in as an object and stores the result.
-            </summary>        
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}})">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new continuation task.</param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed. If the continuation criteria specified through the <paramref name="continuationOptions"/> parameter are not met, the continuation task will be canceled
-            instead of scheduled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith(System.Action{System.Threading.Tasks.Task{`0}},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <param name="continuationAction">
-            An action to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
-            execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task"/> will not be scheduled for execution until the current task has
-            completed. If the criteria specified through the <paramref name="continuationOptions"/> parameter
-            are not met, the continuation task will be canceled instead of scheduled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationAction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0})">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <typeparam name="TNewResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current
-            task has completed, whether it completes due to running to completion successfully, faulting due
-            to an unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <typeparam name="TNewResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new task.</param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current
-            task has completed, whether it completes due to running to completion successfully, faulting due
-            to an unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <typeparam name="TNewResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes.  When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <typeparam name="TNewResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be
-            passed the completed task as an argument.
-            </param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            <para>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current
-            task has completed, whether it completes due to running to completion successfully, faulting due
-            to an unhandled exception, or exiting out early due to being canceled.
-            </para>
-            <para>
-            The <paramref name="continuationFunction"/>, when executed, should return a <see cref="T:System.Threading.Tasks.Task`1"/>. This task's completion state will be transferred to the task returned
-            from the ContinueWith call.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.Task`1.ContinueWith``1(System.Func{System.Threading.Tasks.Task{`0},``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation that executes when the target <see cref="T:System.Threading.Tasks.Task`1"/> completes.
-            </summary>
-            <typeparam name="TNewResult">
-            The type of the result produced by the continuation.
-            </typeparam>
-            <param name="continuationFunction">
-            A function to run when the <see cref="T:System.Threading.Tasks.Task`1"/> completes. When run, the delegate will be passed as
-            an argument this completed task.
-            </param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="continuationOptions">
-            Options for when the continuation is scheduled and how it behaves. This includes criteria, such
-            as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">OnlyOnCanceled</see>, as
-            well as execution options, such as <see cref="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">ExecuteSynchronously</see>.
-            </param>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler"/> to associate with the continuation task and to use for its
-            execution.
-            </param>
-            <returns>A new continuation <see cref="T:System.Threading.Tasks.Task`1"/>.</returns>
-            <remarks>
-            <para>
-            The returned <see cref="T:System.Threading.Tasks.Task`1"/> will not be scheduled for execution until the current task has
-            completed, whether it completes due to running to completion successfully, faulting due to an
-            unhandled exception, or exiting out early due to being canceled.
-            </para>
-            <para>
-            The <paramref name="continuationFunction"/>, when executed, should return a <see cref="T:System.Threading.Tasks.Task`1"/>.
-            This task's completion state will be transferred to the task returned from the
-            ContinueWith call.
-            </para>
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="continuationFunction"/> argument is null.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="continuationOptions"/> argument specifies an invalid value for <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            The <paramref name="scheduler"/> argument is null.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.Tasks.Task`1"/> has been disposed.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="P:System.Threading.Tasks.Task`1.Result">
-            <summary>
-            Gets the result value of this <see cref="T:System.Threading.Tasks.Task`1"/>.
-            </summary>
-            <remarks>
-            The get accessor for this property ensures that the asynchronous operation is complete before
-            returning. Once the result of the computation is available, it is stored and will be returned
-            immediately on later calls to <see cref="P:System.Threading.Tasks.Task`1.Result"/>.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.Task`1.Factory">
-            <summary>
-            Provides access to factory methods for creating <see cref="T:System.Threading.Tasks.Task`1"/> instances.
-            </summary>
-            <remarks>
-            The factory returned from <see cref="P:System.Threading.Tasks.Task`1.Factory"/> is a default instance
-            of <see cref="T:System.Threading.Tasks.TaskFactory`1"/>, as would result from using
-            the default constructor on the factory type.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskFactory`1">
-            <summary>
-            Provides support for creating and scheduling
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task{TResult}</see> objects.
-            </summary>
-            <typeparam name="TResult">The type of the results that are available though 
-            the <see cref="T:System.Threading.Tasks.Task{TResult}">Task{TResult}</see> objects that are associated with 
-            the methods in this class.</typeparam>
-            <remarks>
-            <para>
-            There are many common patterns for which tasks are relevant. The <see cref="T:System.Threading.Tasks.TaskFactory`1"/>
-            class encodes some of these patterns into methods that pick up default settings, which are
-            configurable through its constructors.
-            </para>
-            <para>
-            A default instance of <see cref="T:System.Threading.Tasks.TaskFactory`1"/> is available through the
-            <see cref="P:System.Threading.Tasks.Task`1.Factory">Task{TResult}.Factory</see> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the default configuration.
-            </summary>
-            <remarks>
-            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with a default configuration. The
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
-            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
-            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
-            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.CancellationToken)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the default configuration.
-            </summary>
-            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned 
-            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
-            while calling the factory methods.</param>
-            <remarks>
-            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with a default configuration. The
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
-            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
-            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
-            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the specified configuration.
-            </summary>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler">
-            TaskScheduler</see> to use to schedule any tasks created with this TaskFactory{TResult}. A null value
-            indicates that the current TaskScheduler should be used.
-            </param>
-            <remarks>
-            With this constructor, the
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
-            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
-            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
-            initialized to <paramref name="scheduler"/>, unless it's null, in which case the property is
-            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the specified configuration.
-            </summary>
-            <param name="creationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
-            TaskCreationOptions</see> to use when creating tasks with this TaskFactory{TResult}.
-            </param>
-            <param name="continuationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory{TResult}.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The exception that is thrown when the
-            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
-            argument specifies an invalid value.
-            </exception>
-            <remarks>
-            With this constructor, the
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
-            the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to the
-            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.#ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory`1"/> instance with the specified configuration.
-            </summary>
-            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned 
-            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
-            while calling the factory methods.</param>
-            <param name="creationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
-            TaskCreationOptions</see> to use when creating tasks with this TaskFactory{TResult}.
-            </param>
-            <param name="continuationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory{TResult}.
-            </param>
-            <param name="scheduler">
-            The default <see cref="T:System.Threading.Tasks.TaskScheduler">
-            TaskScheduler</see> to use to schedule any Tasks created with this TaskFactory{TResult}. A null value
-            indicates that TaskScheduler.Current should be used.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The exception that is thrown when the
-            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
-            argumentspecifies an invalid value.
-            </exception>
-            <remarks>
-            With this constructor, the
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
-            the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to
-            <paramref name="scheduler"/>, unless it's null, in which case the property is initialized to the
-            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0})">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0},System.Threading.CancellationToken)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0},System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
-            Task{TResult}</see>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.StartNew(System.Func{System.Object,`0},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
-            Task{TResult}</see>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.IAsyncResult,System.Func{System.IAsyncResult,`0})">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
-            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The function delegate that processes the completed <paramref
-            name="asyncResult"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
-            asynchronous operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.IAsyncResult,System.Func{System.IAsyncResult,`0},System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
-            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The function delegate that processes the completed <paramref
-            name="asyncResult"/>.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
-            asynchronous operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.IAsyncResult,System.Func{System.IAsyncResult,`0},System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
-            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The function delegate that processes the completed <paramref name="asyncResult"/>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the task that executes the end method.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
-            asynchronous operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``3(System.Func_{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,``2,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.FromAsync``3(System.Func_{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,`0},``0,``1,``2,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> 
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in 
-            the <paramref name="tasks"/> array have completed.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> 
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in 
-            the <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the <paramref
-            name="tasks"/> array completes.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory`1.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},`0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory`1.CancellationToken">
-            <summary>
-            Gets the default <see cref="T:System.Threading.CancellationToken">CancellationToken</see> of this
-            TaskFactory.
-            </summary>
-            <remarks>
-            This property returns the default <see cref="P:System.Threading.Tasks.TaskFactory`1.CancellationToken"/> that will be assigned to all 
-            tasks created by this factory unless another CancellationToken value is explicitly specified 
-            during the call to the factory methods.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory`1.Scheduler">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> of this
-            TaskFactory{TResult}.
-            </summary>
-            <remarks>
-            This property returns the default scheduler for this factory.  It will be used to schedule all 
-            tasks unless another scheduler is explicitly specified during calls to this factory's methods.  
-            If null, <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see> 
-            will be used.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory`1.CreationOptions">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions
-            </see> value of this TaskFactory{TResult}.
-            </summary>
-            <remarks>
-            This property returns the default creation options for this factory.  They will be used to create all 
-            tasks unless other options are explicitly specified during calls to this factory's methods.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory`1.ContinuationOptions">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskContinuationOptions
-            </see> value of this TaskFactory{TResult}.
-            </summary>
-            <remarks>
-            This property returns the default continuation options for this factory.  They will be used to create 
-            all continuation tasks unless other options are explicitly specified during calls to this factory's methods.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskStatus">
-            <summary>
-            Represents the current stage in the lifecycle of a <see cref="T:System.Threading.Tasks.Task"/>.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.Created">
-            <summary> 
-            The task has been initialized but has not yet been scheduled.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.WaitingForActivation">
-            <summary> 
-            The task is waiting to be activated and scheduled internally by the .NET Framework infrastructure.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.WaitingToRun">
-            <summary>
-            The task has been scheduled for execution but has not yet begun executing.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.Running">
-            <summary>
-            The task is running but has not yet completed.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.WaitingForChildrenToComplete">
-            <summary>
-            The task has finished executing and is implicitly waiting for
-            attached child tasks to complete.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.RanToCompletion">
-            <summary>
-            The task completed execution successfully.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.Canceled">
-            <summary>
-            The task acknowledged cancellation by throwing an OperationCanceledException with its own CancellationToken
-            while the token was in signaled state, or the task's CancellationToken was already signaled before the
-            task started executing.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskStatus.Faulted">
-            <summary>
-            The task completed due to an unhandled exception.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ParallelForReplicaTask.SaveStateForNextReplica(System.Object)">
-             <summary>
-             In some cases a replica will want to quit prematurely (ie. before finishing a chunk of work it may have grabbed)
-             yet they will need the next replica to pick things up from where they left. This API is used to save such state.
-            
-             Calling it is also the only way to record a premature exit.
-             </summary>
-             <param name="stateForNextReplica"></param>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskCreationOptions">
-            <summary>
-            Specifies flags that control optional behavior for the creation and execution of tasks.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskCreationOptions.None">
-            <summary>
-            Specifies that the default behavior should be used.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskCreationOptions.PreferFairness">
-            <summary>
-            A hint to a <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> to schedule a
-            task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to
-            be run sooner, and tasks scheduled later will be more likely to be run later.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskCreationOptions.LongRunning">
-            <summary>
-            Specifies that a task will be a long-running, course-grained operation. It provides a hint to the
-            <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> that oversubscription may be
-            warranted. 
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskCreationOptions.AttachedToParent">
-            <summary>
-            Specifies that a task is attached to a parent in the task hierarchy.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.InternalTaskOptions">
-            <summary>
-            Task creation flags which are only used internally.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.InternalTaskOptions.None">
-            <summary> Specifies "No internal task options" </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.InternalTaskOptions.InternalOptionsMask">
-            <summary>Used to filter out internal vs. public task creation options.</summary>
-        </member>
-        <member name="F:System.Threading.Tasks.InternalTaskOptions.QueuedByRuntime">
-            <summary>Specifies that the task will be queued by the runtime before handing it over to the user. 
-            This flag will be used to skip the cancellationtoken registration step, which is only meant for unstarted tasks.</summary>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskContinuationOptions">
-            <summary>
-            Specifies flags that control optional behavior for the creation and execution of continuation tasks.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.None">
-            <summary>
-            Default = "Continue on any, no task options, run asynchronously"
-            Specifies that the default behavior should be used.  Continuations, by default, will
-            be scheduled when the antecedent task completes, regardless of the task's final <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see>.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.PreferFairness">
-            <summary>
-            A hint to a <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> to schedule a
-            task in as fair a manner as possible, meaning that tasks scheduled sooner will be more likely to
-            be run sooner, and tasks scheduled later will be more likely to be run later.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.LongRunning">
-            <summary>
-            Specifies that a task will be a long-running, course-grained operation.  It provides
-            a hint to the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> that
-            oversubscription may be warranted.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.AttachedToParent">
-            <summary>
-            Specifies that a task is attached to a parent in the task hierarchy.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.NotOnRanToCompletion">
-            <summary>
-            Specifies that the continuation task should not be scheduled if its antecedent ran to completion.
-            This option is not valid for multi-task continuations.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.NotOnFaulted">
-            <summary>
-            Specifies that the continuation task should not be scheduled if its antecedent threw an unhandled
-            exception. This option is not valid for multi-task continuations.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.NotOnCanceled">
-            <summary>
-            Specifies that the continuation task should not be scheduled if its antecedent was canceled. This
-            option is not valid for multi-task continuations.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnRanToCompletion">
-            <summary>
-            Specifies that the continuation task should be scheduled only if its antecedent ran to
-            completion. This option is not valid for multi-task continuations.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnFaulted">
-            <summary>
-            Specifies that the continuation task should be scheduled only if its antecedent threw an
-            unhandled exception. This option is not valid for multi-task continuations.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.OnlyOnCanceled">
-            <summary>
-            Specifies that the continuation task should be scheduled only if its antecedent was canceled.
-            This option is not valid for multi-task continuations.
-            </summary>
-        </member>
-        <member name="F:System.Threading.Tasks.TaskContinuationOptions.ExecuteSynchronously">
-            <summary>
-            Specifies that the continuation task should be executed synchronously. With this option
-            specified, the continuation will be run on the same thread that causes the antecedent task to
-            transition into its final state. If the antecedent is already complete when the continuation is
-            created, the continuation will run on the thread creating the continuation.  Only very
-            short-running continuations should be executed synchronously.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.StackGuard">
-            <summary>
-            Internal helper class to keep track of stack depth and decide whether we should inline or not.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.StackGuard.TryBeginInliningScope">
-            <summary>
-            This method needs to be called before attempting inline execution on the current thread. 
-            If false is returned, it means we are too close to the end of the stack and should give up inlining.
-            Each call to TryBeginInliningScope() that returns true must be matched with a 
-            call to EndInliningScope() regardless of whether inlining actually took place.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.StackGuard.EndInliningScope">
-            <summary>
-            This needs to be called once for each previous successful TryBeginInliningScope() call after
-            inlining related logic runs.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskCanceledException">
-            <summary>
-            Represents an exception used to communicate task cancellation.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/> class.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/>
-            class with a specified error message.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.String,System.Exception)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/>
-            class with a specified error message and a reference to the inner exception that is the cause of
-            this exception.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-            <param name="innerException">The exception that is the cause of the current exception.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.Threading.Tasks.Task)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/> class
-            with a reference to the <see cref="T:System.Threading.Tasks.Task"/> that has been canceled.
-            </summary>
-            <param name="task">A task that has been canceled.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCanceledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskCanceledException"/>
-            class with serialized data.
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination. </param>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskCanceledException.Task">
-            <summary>
-            Gets the task associated with this exception.
-            </summary>
-            <remarks>
-            It is permissible for no Task to be associated with a 
-            <see cref="T:System.Threading.Tasks.TaskCanceledException"/>, in which case
-            this property will return null.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskExceptionHolder">
-            <summary>
-            An exception holder manages a list of exceptions for one particular task.
-            It offers the ability to aggregate, but more importantly, also offers intrinsic
-            support for propagating unhandled exceptions that are never observed. It does
-            this by aggregating and throwing if the holder is ever GC'd without the holder's
-            contents ever having been requested (e.g. by a Task.Wait, Task.get_Exception, etc).
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExceptionHolder.#ctor(System.Threading.Tasks.Task)">
-            <summary>
-            Creates a new holder; it will be registered for finalization.
-            </summary>
-            <param name="task">The task this holder belongs to.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExceptionHolder.Finalize">
-            <summary>
-            A finalizer that repropagates unhandled exceptions.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExceptionHolder.Add(System.Object)">
-            <summary>
-            Add an exception to the internal list.  This will ensure the holder is
-            in the proper state (handled/unhandled) depending on the list's contents.
-            </summary>
-            <param name="exceptionObject">An exception object (either an Exception or an 
-            IEnumerable{Exception}) to add to the list.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExceptionHolder.MarkAsUnhandled">
-            <summary>
-            A private helper method that ensures the holder is considered
-            unhandled, i.e. it is registered for finalization.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExceptionHolder.MarkAsHandled(System.Boolean)">
-            <summary>
-            A private helper method that ensures the holder is considered
-            handled, i.e. it is not registered for finalization.
-            </summary>
-            <param name="calledFromFinalizer">Whether this is called from the finalizer thread.</param> 
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExceptionHolder.CreateExceptionObject(System.Boolean,System.Exception)">
-            <summary>
-            Allocates a new aggregate exception and adds the contents of the list to
-            it. By calling this method, the holder assumes exceptions to have been
-            "observed", such that the finalization check will be subsequently skipped.
-            </summary>
-            <param name="calledFromFinalizer">Whether this is being called from a finalizer.</param>
-            <param name="includeThisException">An extra exception to be included (optionally).</param>
-            <returns>The aggregate exception to throw.</returns>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskFactory">
-            <summary>
-            Provides support for creating and scheduling
-            <see cref="T:System.Threading.Tasks.Task">Tasks</see>.
-            </summary>
-            <remarks>
-            <para>
-            There are many common patterns for which tasks are relevant. The <see cref="T:System.Threading.Tasks.TaskFactory"/>
-            class encodes some of these patterns into methods that pick up default settings, which are
-            configurable through its constructors.
-            </para>
-            <para>
-            A default instance of <see cref="T:System.Threading.Tasks.TaskFactory"/> is available through the
-            <see cref="P:System.Threading.Tasks.Task.Factory">Task.Factory</see> property.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.#ctor">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the default configuration.
-            </summary>
-            <remarks>
-            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with a default configuration. The
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
-            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
-            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
-            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.CancellationToken)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
-            </summary>
-            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned 
-            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
-            while calling the factory methods.</param>
-            <remarks>
-            This constructor creates a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with a default configuration. The
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
-            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
-            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
-            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
-            </summary>
-            <param name="scheduler">
-            The <see cref="T:System.Threading.Tasks.TaskScheduler">
-            TaskScheduler</see> to use to schedule any tasks created with this TaskFactory. A null value
-            indicates that the current TaskScheduler should be used.
-            </param>
-            <remarks>
-            With this constructor, the
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to
-            <see cref="F:System.Threading.Tasks.TaskCreationOptions.None">TaskCreationOptions.None</see>, the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <see cref="F:System.Threading.Tasks.TaskContinuationOptions.None">TaskContinuationOptions.None</see>,
-            and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is
-            initialized to <paramref name="scheduler"/>, unless it's null, in which case the property is
-            initialized to the current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
-            </summary>
-            <param name="creationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
-            TaskCreationOptions</see> to use when creating tasks with this TaskFactory.
-            </param>
-            <param name="continuationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The exception that is thrown when the
-            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
-            argument specifies an invalid value.
-            </exception>
-            <remarks>
-            With this constructor, the
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
-            the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to the
-            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.#ctor(System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Initializes a <see cref="T:System.Threading.Tasks.TaskFactory"/> instance with the specified configuration.
-            </summary>
-            <param name="cancellationToken">The default <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned 
-            to tasks created by this <see cref="T:System.Threading.Tasks.TaskFactory"/> unless another CancellationToken is explicitly specified 
-            while calling the factory methods.</param>
-            <param name="creationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskCreationOptions">
-            TaskCreationOptions</see> to use when creating tasks with this TaskFactory.
-            </param>
-            <param name="continuationOptions">
-            The default <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> to use when creating continuation tasks with this TaskFactory.
-            </param>
-            <param name="scheduler">
-            The default <see cref="T:System.Threading.Tasks.TaskScheduler">
-            TaskScheduler</see> to use to schedule any Tasks created with this TaskFactory. A null value
-            indicates that TaskScheduler.Current should be used.
-            </param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The exception that is thrown when the
-            <paramref name="creationOptions"/> argument or the <paramref name="continuationOptions"/>
-            argumentspecifies an invalid value.
-            </exception>
-            <remarks>
-            With this constructor, the
-            <see cref="T:System.Threading.Tasks.TaskCreationOptions"/> property is initialized to <paramref name="creationOptions"/>,
-            the
-            <see cref="T:System.Threading.Tasks.TaskContinuationOptions"/> property is initialized to <paramref name="continuationOptions"/>, and the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> property is initialized to
-            <paramref name="scheduler"/>, unless it's null, in which case the property is initialized to the
-            current scheduler (see <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see>).
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/> 
-            argument is null.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors 
-            and then calling 
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.  However,
-            unless creation and scheduling must be separated, StartNew is the recommended
-            approach for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action,System.Threading.CancellationToken)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/> 
-            argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors 
-            and then calling 
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.  However,
-            unless creation and scheduling must be separated, StartNew is the recommended
-            approach for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
-            then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
-            then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <param name="state">An object containing data to be used by the <paramref name="action"/>
-            delegate.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
-            argument is null.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
-            then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object,System.Threading.CancellationToken)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <param name="state">An object containing data to be used by the <paramref name="action"/>
-            delegate.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
-            argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
-            then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <param name="state">An object containing data to be used by the <paramref name="action"/>
-            delegate.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
-            then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew(System.Action{System.Object},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task">Task</see>.
-            </summary>
-            <param name="action">The action delegate to execute asynchronously.</param>
-            <param name="state">An object containing data to be used by the <paramref name="action"/>
-            delegate.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task">Task.</see></param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="action"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a Task using one of its constructors and
-            then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0})">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0},System.Threading.CancellationToken)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0},System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
-            Task{TResult}</see>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object,System.Threading.CancellationToken)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new <see cref="T:System.Threading.Tasks.Task"/></param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.StartNew``1(System.Func{System.Object,``0},System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates and starts a <see cref="T:System.Threading.Tasks.Task{TResult}"/>.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="function">A function delegate that returns the future result to be available through
-            the <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="function"/>
-            delegate.</param>
-            <param name="cancellationToken">The <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to the new task.</param>
-            <param name="creationOptions">A TaskCreationOptions value that controls the behavior of the
-            created
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created <see cref="T:System.Threading.Tasks.Task{TResult}">
-            Task{TResult}</see>.</param>
-            <returns>The started <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="function"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the <paramref name="scheduler"/>
-            argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            Calling StartNew is functionally equivalent to creating a <see cref="T:System.Threading.Tasks.Task`1"/> using one
-            of its constructors and then calling
-            <see cref="M:System.Threading.Tasks.Task.Start">Start</see> to schedule it for execution.
-            However, unless creation and scheduling must be separated, StartNew is the recommended approach
-            for both simplicity and performance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.IAsyncResult,System.Action{System.IAsyncResult})">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that executes an end method action
-            when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The action delegate that processes the completed <paramref
-            name="asyncResult"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous
-            operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.IAsyncResult,System.Action{System.IAsyncResult},System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that executes an end method action
-            when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The action delegate that processes the completed <paramref
-            name="asyncResult"/>.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous
-            operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.IAsyncResult,System.Action{System.IAsyncResult},System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that executes an end method action
-            when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The action delegate that processes the completed <paramref name="asyncResult"/>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the task that executes the end method.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous
-            operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func_{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,``2,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func_{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Action{System.IAsyncResult},``0,``1,``2,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents a pair of begin
-            and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the
-            asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.IAsyncResult,System.Func{System.IAsyncResult,``0})">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
-            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The function delegate that processes the completed <paramref
-            name="asyncResult"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
-            asynchronous operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.IAsyncResult,System.Func{System.IAsyncResult,``0},System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
-            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The function delegate that processes the completed <paramref
-            name="asyncResult"/>.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
-            asynchronous operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.IAsyncResult,System.Func{System.IAsyncResult,``0},System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that executes an end
-            method function when a specified <see cref="T:System.IAsyncResult">IAsyncResult</see> completes.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="asyncResult">The IAsyncResult whose completion should trigger the processing of the
-            <paramref name="endMethod"/>.</param>
-            <param name="endMethod">The function delegate that processes the completed <paramref name="asyncResult"/>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the task that executes the end method.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="asyncResult"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>A <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents the
-            asynchronous operation.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``0},System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``1(System.Func{System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``0},System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``1},``0,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``2(System.Func{``0,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``1},``0,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``2},``0,``1,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``3(System.Func{``0,``1,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``2},``0,``1,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``4(System.Func_{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``3},``0,``1,``2,System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.FromAsync``4(System.Func_{``0,``1,``2,System.AsyncCallback,System.Object,System.IAsyncResult},System.Func{System.IAsyncResult,``3},``0,``1,``2,System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that represents a pair of
-            begin and end methods that conform to the Asynchronous Programming Model pattern.
-            </summary>
-            <typeparam name="TArg1">The type of the first argument passed to the <paramref
-            name="beginMethod"/> delegate.</typeparam>
-            <typeparam name="TArg2">The type of the second argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TArg3">The type of the third argument passed to <paramref name="beginMethod"/>
-            delegate.</typeparam>
-            <typeparam name="TResult">The type of the result available through the
-            <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.
-            </typeparam>
-            <param name="beginMethod">The delegate that begins the asynchronous operation.</param>
-            <param name="endMethod">The delegate that ends the asynchronous operation.</param>
-            <param name="arg1">The first argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg2">The second argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="arg3">The third argument passed to the <paramref name="beginMethod"/>
-            delegate.</param>
-            <param name="creationOptions">The TaskCreationOptions value that controls the behavior of the
-            created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="state">An object containing data to be used by the <paramref name="beginMethod"/>
-            delegate.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="beginMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="endMethod"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="creationOptions"/> argument specifies an invalid TaskCreationOptions
-            value.</exception>
-            <returns>The created <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see> that
-            represents the asynchronous operation.</returns>
-            <remarks>
-            This method throws any exceptions thrown by the <paramref name="beginMethod"/>.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.CheckFromAsyncOptions(System.Threading.Tasks.TaskCreationOptions,System.Boolean)">
-            <summary>
-            Check validity of options passed to FromAsync method
-            </summary>
-            <param name="creationOptions">The options to be validated.</param>
-            <param name="hasBeginMethod">determines type of FromAsync method that called this method</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in 
-            the <paramref name="tasks"/> array have completed.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in 
-            the <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task[]},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in 
-            the <paramref name="tasks"/> array have completed.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see> 
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in 
-            the <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the 
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the 
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}[]},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationAction">The action delegate to execute when all tasks in the <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref
-            name="continuationFunction"/>
-            delegate and associated with the created <see
-            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task[],``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref
-            name="continuationFunction"/>
-            delegate and associated with the created <see
-            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAll``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0}[],``1},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of a set of provided Tasks.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue.</param>
-            <param name="continuationFunction">The function delegate to execute when all tasks in the
-            <paramref name="tasks"/> array have completed.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAll.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the <paramref
-            name="tasks"/> array completes.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny(System.Threading.Tasks.Task[],System.Action{System.Threading.Tasks.Task},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref
-            name="continuationFunction"/>
-            delegate and associated with the created <see
-            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task[],System.Func{System.Threading.Tasks.Task,``0},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref
-            name="continuationFunction"/>
-            delegate and associated with the created <see
-            cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``2(System.Threading.Tasks.Task{``0}[],System.Func{System.Threading.Tasks.Task{``0},``1},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TResult">The type of the result that is returned by the <paramref name="continuationFunction"/>
-            delegate and associated with the created <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</typeparam>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationFunction">The function delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationFunction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}})">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}},System.Threading.CancellationToken)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}},System.Threading.Tasks.TaskContinuationOptions)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskFactory.ContinueWhenAny``1(System.Threading.Tasks.Task{``0}[],System.Action{System.Threading.Tasks.Task{``0}},System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Creates a continuation <see cref="T:System.Threading.Tasks.Task">Task</see>
-            that will be started upon the completion of any Task in the provided set.
-            </summary>
-            <typeparam name="TAntecedentResult">The type of the result of the antecedent <paramref name="tasks"/>.</typeparam>
-            <param name="tasks">The array of tasks from which to continue when one task completes.</param>
-            <param name="continuationAction">The action delegate to execute when one task in the
-            <paramref name="tasks"/> array completes.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken">CancellationToken</see> 
-            that will be assigned to the new continuation task.</param>
-            <param name="continuationOptions">The <see cref="T:System.Threading.Tasks.TaskContinuationOptions">
-            TaskContinuationOptions</see> value that controls the behavior of
-            the created continuation <see cref="T:System.Threading.Tasks.Task">Task</see>.</param>
-            <param name="scheduler">The <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            that is used to schedule the created continuation <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>The new continuation <see cref="T:System.Threading.Tasks.Task"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="tasks"/> array is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="continuationAction"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown when the
-            <paramref name="scheduler"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array contains a null value.</exception>
-            <exception cref="T:System.ArgumentException">The exception that is thrown when the
-            <paramref name="tasks"/> array is empty.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The exception that is thrown when the
-            <paramref name="continuationOptions"/> argument specifies an invalid TaskContinuationOptions
-            value.</exception>
-            <exception cref="T:System.ObjectDisposedException">The exception that is thrown when one 
-            of the elements in the <paramref name="tasks"/> array has been disposed.</exception>
-            <exception cref="T:System.ObjectDisposedException">The provided <see cref="T:System.Threading.CancellationToken">CancellationToken</see>
-            has already been disposed.
-            </exception>
-            <remarks>
-            The NotOn* and OnlyOn* <see cref="T:System.Threading.Tasks.TaskContinuationOptions">TaskContinuationOptions</see>, 
-            which constrain for which <see cref="T:System.Threading.Tasks.TaskStatus">TaskStatus</see> states a continuation 
-            will be executed, are illegal with ContinueWhenAny.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory.CancellationToken">
-            <summary>
-            Gets the default <see cref="T:System.Threading.CancellationToken">CancellationToken</see> of this
-            TaskFactory.
-            </summary>
-            <remarks>
-            This property returns the default <see cref="P:System.Threading.Tasks.TaskFactory.CancellationToken"/> that will be assigned to all 
-            tasks created by this factory unless another CancellationToken value is explicitly specified 
-            during the call to the factory methods.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory.Scheduler">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> of this
-            TaskFactory.
-            </summary>
-            <remarks>
-            This property returns the default scheduler for this factory.  It will be used to schedule all 
-            tasks unless another scheduler is explicitly specified during calls to this factory's methods.  
-            If null, <see cref="P:System.Threading.Tasks.TaskScheduler.Current">TaskScheduler.Current</see> 
-            will be used.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory.CreationOptions">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskCreationOptions
-            </see> value of this TaskFactory.
-            </summary>
-            <remarks>
-            This property returns the default creation options for this factory.  They will be used to create all 
-            tasks unless other options are explicitly specified during calls to this factory's methods.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskFactory.ContinuationOptions">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskCreationOptions">TaskContinuationOptions
-            </see> value of this TaskFactory.
-            </summary>
-            <remarks>
-            This property returns the default continuation options for this factory.  They will be used to create 
-            all continuation tasks unless other options are explicitly specified during calls to this factory's methods.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskCompletionSource`1">
-            <summary>
-            Represents the producer side of a <see cref="T:System.Threading.Tasks.Task{TResult}"/> unbound to a
-            delegate, providing access to the consumer side through the <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> property.
-            </summary>
-            <remarks>
-            <para>
-            It is often the case that a <see cref="T:System.Threading.Tasks.Task{TResult}"/> is desired to
-            represent another asynchronous operation.
-            <see cref="T:System.Threading.Tasks.TaskCompletionSource`1">TaskCompletionSource</see> is provided for this purpose. It enables
-            the creation of a task that can be handed out to consumers, and those consumers can use the members
-            of the task as they would any other. However, unlike most tasks, the state of a task created by a
-            TaskCompletionSource is controlled explicitly by the methods on TaskCompletionSource. This enables the
-            completion of the external asynchronous operation to be propagated to the underlying Task. The
-            separation also ensures that consumers are not able to transition the state without access to the
-            corresponding TaskCompletionSource.
-            </para>
-            <para>
-            All members of <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/> are thread-safe
-            and may be used from multiple threads concurrently.
-            </para>
-            </remarks>
-            <typeparam name="TResult">The type of the result value assocatied with this <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.</typeparam>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor(System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>
-            with the specified options.
-            </summary>
-            <remarks>
-            The <see cref="T:System.Threading.Tasks.Task{TResult}"/> created
-            by this instance and accessible through its <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> property
-            will be instantiated using the specified <paramref name="creationOptions"/>.
-            </remarks>
-            <param name="creationOptions">The options to use when creating the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> represent options invalid for use
-            with a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor(System.Object)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>
-            with the specified state.
-            </summary>
-            <param name="state">The state to use as the underlying 
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>'s AsyncState.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.#ctor(System.Object,System.Threading.Tasks.TaskCreationOptions)">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/> with
-            the specified state and options.
-            </summary>
-            <param name="creationOptions">The options to use when creating the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <param name="state">The state to use as the underlying 
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/>'s AsyncState.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            The <paramref name="creationOptions"/> represent options invalid for use
-            with a <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetException(System.Exception)">
-            <summary>
-            Attempts to transition the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
-            state.
-            </summary>
-            <param name="exception">The exception to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>True if the operation was successful; otherwise, false.</returns>
-            <remarks>This operation will return false if the 
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> argument is null.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetException(System.Collections.Generic.IEnumerable{System.Exception})">
-            <summary>
-            Attempts to transition the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
-            state.
-            </summary>
-            <param name="exceptions">The collection of exceptions to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>True if the operation was successful; otherwise, false.</returns>
-            <remarks>This operation will return false if the 
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">There are one or more null elements in <paramref name="exceptions"/>.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="exceptions"/> collection is empty.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Exception)">
-            <summary>
-            Transitions the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
-            state.
-            </summary>
-            <param name="exception">The exception to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="exception"/> argument is null.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Collections.Generic.IEnumerable{System.Exception})">
-            <summary>
-            Transitions the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>
-            state.
-            </summary>
-            <param name="exceptions">The collection of exceptions to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="exceptions"/> argument is null.</exception>
-            <exception cref="T:System.ArgumentException">There are one or more null elements in <paramref name="exceptions"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetResult(`0)">
-            <summary>
-            Attempts to transition the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>
-            state.
-            </summary>
-            <param name="result">The result value to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <returns>True if the operation was successful; otherwise, false.</returns>
-            <remarks>This operation will return false if the 
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetResult(`0)">
-            <summary>
-            Transitions the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>
-            state.
-            </summary>
-            <param name="result">The result value to bind to this <see cref="T:System.Threading.Tasks.Task{TResult}"/>.</param>
-            <exception cref="T:System.InvalidOperationException">
-            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.SetCanceled">
-            <summary>
-            Transitions the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>
-            state.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The underlying <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskCompletionSource`1.TrySetCanceled">
-            <summary>
-            Attempts to transition the underlying
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> into the 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>
-            state.
-            </summary>
-            <returns>True if the operation was successful; otherwise, false.</returns>
-            <remarks>This operation will return false if the 
-            <see cref="T:System.Threading.Tasks.Task{TResult}"/> is already in one
-            of the three final states:
-            <see cref="F:System.Threading.Tasks.TaskStatus.RanToCompletion">RanToCompletion</see>, 
-            <see cref="F:System.Threading.Tasks.TaskStatus.Faulted">Faulted</see>, or
-            <see cref="F:System.Threading.Tasks.TaskStatus.Canceled">Canceled</see>.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="P:System.Threading.Tasks.TaskCompletionSource`1.Task"/> was disposed.</exception>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskCompletionSource`1.Task">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.Task{TResult}"/> created
-            by this <see cref="T:System.Threading.Tasks.TaskCompletionSource`1"/>.
-            </summary>
-            <remarks>
-            This property enables a consumer access to the <see cref="T:System.Threading.Tasks.Task{TResult}"/> that is controlled by this instance.
-            The <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetResult(`0)"/>, <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Exception)"/>,
-            <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetException(System.Collections.Generic.IEnumerable{System.Exception})"/>, and <see cref="M:System.Threading.Tasks.TaskCompletionSource`1.SetCanceled"/>
-            methods (and their "Try" variants) on this instance all result in the relevant state
-            transitions on this underlying Task.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskScheduler">
-            <summary>
-            Represents an abstract scheduler for tasks.
-            </summary>
-            <remarks>
-            <para>
-            <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> acts as the extension point for all 
-            pluggable scheduling logic.  This includes mechanisms such as how to schedule a task for execution, and
-            how scheduled tasks should be exposed to debuggers.
-            </para>
-            <para>
-            All members of the abstract <see cref="T:System.Threading.Tasks.TaskScheduler"/> type are thread-safe
-            and may be used from multiple threads concurrently.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.QueueTask(System.Threading.Tasks.Task)">
-            <summary>
-            Queues a <see cref="T:System.Threading.Tasks.Task">Task</see> to the scheduler.
-            </summary>
-            <remarks>
-            <para>
-            A class derived from <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>  
-            implements this method to accept tasks being scheduled on the scheduler.
-            A typical implementation would store the task in an internal data structure, which would
-            be serviced by threads that would execute those tasks at some time in the future.
-            </para>
-            <para>
-            This method is only meant to be called by the .NET Framework and
-            should not be called directly by the derived class. This is necessary 
-            for maintaining the consistency of the system.
-            </para>
-            </remarks>
-            <param name="task">The <see cref="T:System.Threading.Tasks.Task">Task</see> to be queued.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="task"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)">
-            <summary>
-            Determines whether the provided <see cref="T:System.Threading.Tasks.Task">Task</see>
-            can be executed synchronously in this call, and if it can, executes it.
-            </summary>
-            <remarks>
-            <para>
-            A class derived from <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> implements this function to
-            support inline execution of a task on a thread that initiates a wait on that task object. Inline
-            execution is optional, and the request may be rejected by returning false. However, better
-            scalability typically results the more tasks that can be inlined, and in fact a scheduler that
-            inlines too little may be prone to deadlocks. A proper implementation should ensure that a
-            request executing under the policies guaranteed by the scheduler can successfully inline. For
-            example, if a scheduler uses a dedicated thread to execute tasks, any inlining requests from that
-            thread should succeed.
-            </para>
-            <para>
-            If a scheduler decides to perform the inline execution, it should do so by calling to the base
-            TaskScheduler's
-            <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)">TryExecuteTask</see> method with the provided task object, propagating
-            the return value. It may also be appropriate for the scheduler to remove an inlined task from its
-            internal data structures if it decides to honor the inlining request. Note, however, that under
-            some circumstances a scheduler may be asked to inline a task that was not previously provided to
-            it with the <see cref="M:System.Threading.Tasks.TaskScheduler.QueueTask(System.Threading.Tasks.Task)"/> method.
-            </para>
-            <para>
-            The derived scheduler is responsible for making sure that the calling thread is suitable for
-            executing the given task as far as its own scheduling and execution policies are concerned.
-            </para>
-            </remarks>
-            <param name="task">The <see cref="T:System.Threading.Tasks.Task">Task</see> to be
-            executed.</param>
-            <param name="taskWasPreviouslyQueued">A Boolean denoting whether or not task has previously been
-            queued. If this parameter is True, then the task may have been previously queued (scheduled); if
-            False, then the task is known not to have been queued, and this call is being made in order to
-            execute the task inline without queueing it.</param>
-            <returns>A Boolean value indicating whether the task was executed inline.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="task"/> argument is
-            null.</exception>
-            <exception cref="T:System.InvalidOperationException">The <paramref name="task"/> was already
-            executed.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.GetScheduledTasks">
-            <summary>
-            Generates an enumerable of <see cref="T:System.Threading.Tasks.Task">Task</see> instances
-            currently queued to the scheduler waiting to be executed.
-            </summary>
-            <remarks>
-            <para>
-            A class derived from <see cref="T:System.Threading.Tasks.TaskScheduler"/> implements this method in order to support
-            integration with debuggers. This method will only be invoked by the .NET Framework when the
-            debugger requests access to the data. The enumerable returned will be traversed by debugging
-            utilities to access the tasks currently queued to this scheduler, enabling the debugger to
-            provide a representation of this information in the user interface.
-            </para>
-            <para>
-            It is important to note that, when this method is called, all other threads in the process will
-            be frozen. Therefore, it's important to avoid synchronization with other threads that may lead to
-            blocking. If synchronization is necessary, the method should prefer to throw a <see cref="T:System.NotSupportedException"/>
-            than to block, which could cause a debugger to experience delays. Additionally, this method and
-            the enumerable returned must not modify any globally visible state.
-            </para>
-            <para>
-            The returned enumerable should never be null. If there are currently no queued tasks, an empty
-            enumerable should be returned instead.
-            </para>
-            <para>
-            For developers implementing a custom debugger, this method shouldn't be called directly, but
-            rather this functionality should be accessed through the internal wrapper method
-            GetScheduledTasksForDebugger:
-            <c>internal Task[] GetScheduledTasksForDebugger()</c>. This method returns an array of tasks,
-            rather than an enumerable. In order to retrieve a list of active schedulers, a debugger may use
-            another internal method: <c>internal static TaskScheduler[] GetTaskSchedulersForDebugger()</c>.
-            This static method returns an array of all active TaskScheduler instances.
-            GetScheduledTasksForDebugger then may be used on each of these scheduler instances to retrieve
-            the list of scheduled tasks for each.
-            </para>
-            </remarks>
-            <returns>An enumerable that allows traversal of tasks currently queued to this scheduler.
-            </returns>
-            <exception cref="T:System.NotSupportedException">
-            This scheduler is unable to generate a list of queued tasks at this time.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.GetThreadStatics">
-            <summary>
-            Retrieves some thread static state that can be cached and passed to multiple
-            TryRunInline calls, avoiding superflous TLS fetches.
-            </summary>
-            <returns>A bag of TLS state (or null if none exists).</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task,System.Boolean,System.Object)">
-            <summary>
-            Attempts to execute the target task synchronously.
-            </summary>
-            <param name="task">The task to run.</param>
-            <param name="taskWasPreviouslyQueued">True if the task may have been previously queued,
-            false if the task was absolutely not previously queued.</param>
-            <param name="threadStatics">The state retrieved from GetThreadStatics</param>
-            <returns>True if it ran, false otherwise.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.TryDequeue(System.Threading.Tasks.Task)">
-            <summary>
-            Attempts to dequeue a <see cref="T:System.Threading.Tasks.Task">Task</see> that was previously queued to
-            this scheduler.
-            </summary>
-            <param name="task">The <see cref="T:System.Threading.Tasks.Task">Task</see> to be dequeued.</param>
-            <returns>A Boolean denoting whether the <paramref name="task"/> argument was successfully dequeued.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="task"/> argument is null.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.NotifyWorkItemProgress">
-            <summary>
-            Notifies the scheduler that a work item has made progress.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.#ctor">
-            <summary>
-            Initializes the <see cref="T:System.Threading.Tasks.TaskScheduler"/>.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.Finalize">
-            <summary>
-            Frees all resources associated with this scheduler.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext">
-            <summary>
-            Creates a <see cref="T:System.Threading.Tasks.TaskScheduler"/>
-            associated with the current <see cref="T:System.Threading.SynchronizationContext"/>.
-            </summary>
-            <remarks>
-            All <see cref="T:System.Threading.Tasks.Task">Task</see> instances queued to 
-            the returned scheduler will be executed through a call to the
-            <see cref="M:System.Threading.SynchronizationContext.Post(System.Threading.SendOrPostCallback,System.Object)">Post</see> method
-            on that context.
-            </remarks>
-            <returns>
-            A <see cref="T:System.Threading.Tasks.TaskScheduler"/> associated with 
-            the current <see cref="T:System.Threading.SynchronizationContext">SynchronizationContext</see>, as
-            determined by <see cref="P:System.Threading.SynchronizationContext.Current">SynchronizationContext.Current</see>.
-            </returns>
-            <exception cref="T:System.InvalidOperationException">
-            The current SynchronizationContext may not be used as a TaskScheduler.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)">
-            <summary>
-            Attempts to execute the provided <see cref="T:System.Threading.Tasks.Task">Task</see>
-            on this scheduler.
-            </summary>
-            <remarks>
-            <para>
-            Scheduler implementations are provided with <see cref="T:System.Threading.Tasks.Task">Task</see>
-            instances to be executed through either the <see cref="M:System.Threading.Tasks.TaskScheduler.QueueTask(System.Threading.Tasks.Task)"/> method or the
-            <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)"/> method. When the scheduler deems it appropriate to run the
-            provided task, <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)"/> should be used to do so. TryExecuteTask handles all
-            aspects of executing a task, including action invocation, exception handling, state management,
-            and lifecycle control.
-            </para>
-            <para>
-            <see cref="M:System.Threading.Tasks.TaskScheduler.TryExecuteTask(System.Threading.Tasks.Task)"/> must only be used for tasks provided to this scheduler by the .NET
-            Framework infrastructure. It should not be used to execute arbitrary tasks obtained through
-            custom mechanisms.
-            </para>
-            </remarks>
-            <param name="task">
-            A <see cref="T:System.Threading.Tasks.Task">Task</see> object to be executed.</param>
-            <exception cref="T:System.InvalidOperationException">
-            The <paramref name="task"/> is not associated with this scheduler.
-            </exception>
-            <returns>A Boolean that is true if <paramref name="task"/> was successfully executed, false if it
-            was not. A common reason for execution failure is that the task had previously been executed or
-            is in the process of being executed by another thread.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.GetScheduledTasksForDebugger">
-            <summary>
-            Provides an array of all queued <see cref="T:System.Threading.Tasks.Task">Task</see> instances
-            for the debugger.
-            </summary>
-            <remarks>
-            The returned array is populated through a call to <see cref="M:System.Threading.Tasks.TaskScheduler.GetScheduledTasks"/>.
-            Note that this function is only meant to be invoked by a debugger remotely. 
-            It should not be called by any other codepaths.
-            </remarks>
-            <returns>An array of <see cref="T:System.Threading.Tasks.Task">Task</see> instances.</returns> 
-            <exception cref="T:System.NotSupportedException">
-            This scheduler is unable to generate a list of queued tasks at this time.
-            </exception>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.GetTaskSchedulersForDebugger">
-            <summary>
-            Provides an array of all active <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> 
-            instances for the debugger.
-            </summary>
-            <remarks>
-            This function is only meant to be invoked by a debugger remotely. 
-            It should not be called by any other codepaths.
-            </remarks>
-            <returns>An array of <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> instances.</returns> 
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.RegisterTaskScheduler(System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Registers a new TaskScheduler instance in the global collection of schedulers.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskScheduler.UnregisterTaskScheduler(System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Removes a TaskScheduler instance from the global collection of schedulers.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskScheduler.MaximumConcurrencyLevel">
-            <summary>
-            Indicates the maximum concurrency level this 
-            <see cref="T:System.Threading.Tasks.TaskScheduler"/>  is able to support.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskScheduler.RequiresAtomicStartTransition">
-            <summary>
-            Indicates whether this is a custom scheduler, in which case the safe code paths will be taken upon task entry
-            using a CAS to transition from queued state to executing.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskScheduler.Default">
-            <summary>
-            Gets the default <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see> instance.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskScheduler.Current">
-            <summary>
-            Gets the <see cref="T:System.Threading.Tasks.TaskScheduler">TaskScheduler</see>
-            associated with the currently executing task.
-            </summary>
-            <remarks>
-            When not called from within a task, <see cref="P:System.Threading.Tasks.TaskScheduler.Current"/> will return the <see cref="P:System.Threading.Tasks.TaskScheduler.Default"/> scheduler.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Tasks.TaskScheduler.Id">
-            <summary>
-            Gets the unique ID for this <see cref="T:System.Threading.Tasks.TaskScheduler"/>.
-            </summary>
-        </member>
-        <member name="E:System.Threading.Tasks.TaskScheduler.UnobservedTaskException">
-            <summary>
-            Occurs when a faulted <see cref="T:System.Threading.Tasks.Task"/>'s unobserved exception is about to trigger exception escalation
-            policy, which, by default, would terminate the process.
-            </summary>
-            <remarks>
-            This AppDomain-wide event provides a mechanism to prevent exception
-            escalation policy (which, by default, terminates the process) from triggering. 
-            Each handler is passed a <see cref="T:System.Threading.Tasks.UnobservedTaskExceptionEventArgs"/>
-            instance, which may be used to examine the exception and to mark it as observed.
-            </remarks>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskScheduler.SystemThreadingTasks_TaskSchedulerDebugView">
-            <summary>
-            Nested class that provides debugger view for TaskScheduler
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.SynchronizationContextTaskScheduler">
-            <summary>
-            A TaskScheduler implementation that executes all tasks queued to it through a call to 
-            <see cref="M:System.Threading.SynchronizationContext.Post(System.Threading.SendOrPostCallback,System.Object)"/> on the <see cref="T:System.Threading.SynchronizationContext"/> 
-            that its associated with. The default constructor for this class binds to the current <see cref="T:System.Threading.SynchronizationContext"/> 
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.SynchronizationContextTaskScheduler.#ctor">
-            <summary>
-            Constructs a SynchronizationContextTaskScheduler associated with <see cref="T:System.Threading.SynchronizationContext.Current"/> 
-            </summary>
-            <exception cref="T:System.InvalidOperationException">This constructor expects <see cref="T:System.Threading.SynchronizationContext.Current"/> to be set.</exception>
-        </member>
-        <member name="M:System.Threading.Tasks.SynchronizationContextTaskScheduler.QueueTask(System.Threading.Tasks.Task)">
-            <summary>
-            Implemetation of <see cref="T:System.Threading.Tasks.TaskScheduler.QueueTask"/> for this scheduler class.
-            
-            Simply posts the tasks to be executed on the associated <see cref="T:System.Threading.SynchronizationContext"/>.
-            </summary>
-            <param name="task"></param>
-        </member>
-        <member name="M:System.Threading.Tasks.SynchronizationContextTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)">
-            <summary>
-            Implementation of <see cref="T:System.Threading.Tasks.TaskScheduler.TryExecuteTaskInline"/>  for this scheduler class.
-            
-            The task will be executed inline only if the call happens within 
-            the associated <see cref="T:System.Threading.SynchronizationContext"/>.
-            </summary>
-            <param name="task"></param>
-            <param name="taskWasPreviouslyQueued"></param>
-        </member>
-        <member name="P:System.Threading.Tasks.SynchronizationContextTaskScheduler.MaximumConcurrencyLevel">
-            <summary>
-            Implementes the <see cref="T:System.Threading.Tasks.TaskScheduler.MaximumConcurrencyLevel"/> property for
-            this scheduler class.
-            
-            By default it returns 1, because a <see cref="T:System.Threading.SynchronizationContext"/> based
-            scheduler only supports execution on a single thread.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.UnobservedTaskExceptionEventArgs">
-            <summary>
-            Provides data for the event that is raised when a faulted <see cref="T:System.Threading.Tasks.Task"/>'s
-            exception goes unobserved.
-            </summary>
-            <remarks>
-            The Exception property is used to examine the exception without marking it
-            as observed, whereas the <see cref="M:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.SetObserved"/> method is used to mark the exception
-            as observed.  Marking the exception as observed prevents it from triggering exception escalation policy
-            which, by default, terminates the process.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.#ctor(System.AggregateException)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.UnobservedTaskExceptionEventArgs"/> class
-            with the unobserved exception.
-            </summary>
-            <param name="exception">The Exception that has gone unobserved.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.SetObserved">
-            <summary>
-            Marks the <see cref="P:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.Exception"/> as "observed," thus preventing it
-            from triggering exception escalation policy which, by default, terminates the process.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.Observed">
-            <summary>
-            Gets whether this exception has been marked as "observed."
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.UnobservedTaskExceptionEventArgs.Exception">
-            <summary>
-            The Exception that went unobserved.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.ThreadPoolTaskScheduler">
-            <summary>
-            An implementation of TaskScheduler that uses the ThreadPool scheduler
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.#ctor">
-            <summary>
-            Constructs a new ThreadPool task scheduler object
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.QueueTask(System.Threading.Tasks.Task)">
-            <summary>
-            Schedules a task to the ThreadPool.
-            </summary>
-            <param name="task">The task to schedule.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task,System.Boolean)">
-            <summary>
-            This internal function will do this:
-              (1) If the task had previously been queued, attempt to pop it and return false if that fails.
-              (2) Propagate the return value from Task.ExecuteEntry() back to the caller.
-            
-            IMPORTANT NOTE: TryExecuteTaskInline will NOT throw task exceptions itself. Any wait code path using this function needs
-            to account for exceptions that need to be propagated, and throw themselves accordingly.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.ThreadPoolTaskScheduler.NotifyWorkItemProgress">
-            <summary>
-            Notifies the scheduler that work is progressing (no-op).
-            </summary>
-        </member>
-        <member name="P:System.Threading.Tasks.ThreadPoolTaskScheduler.RequiresAtomicStartTransition">
-            <summary>
-            This is the only scheduler that returns false for this property, indicating that the task entry codepath is unsafe (CAS free)
-            since we know that the underlying scheduler already takes care of atomic transitions from queued to non-queued.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskSchedulerException">
-            <summary>
-            Represents an exception used to communicate an invalid operation by a
-            <see cref="T:System.Threading.Tasks.TaskScheduler"/>.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/> class.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
-            class with a specified error message.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.Exception)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
-            class using the default error message and a reference to the inner exception that is the cause of
-            this exception.
-            </summary>
-            <param name="innerException">The exception that is the cause of the current exception.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.String,System.Exception)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
-            class with a specified error message and a reference to the inner exception that is the cause of
-            this exception.
-            </summary>
-            <param name="message">The error message that explains the reason for the exception.</param>
-            <param name="innerException">The exception that is the cause of the current exception.</param>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Tasks.TaskSchedulerException"/>
-            class with serialized data.
-            </summary>
-            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds
-            the serialized object data about the exception being thrown.</param>
-            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that
-            contains contextual information about the source or destination. </param>
-        </member>
-        <member name="T:System.Threading.BarrierPostPhaseException">
-            <summary>
-            The exception that is thrown when the post-phase action of a <see cref="T:System.Threading.Barrier"/> fails.
-            </summary>
-        </member>
-        <member name="M:System.Threading.BarrierPostPhaseException.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class.
-            </summary>
-        </member>
-        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.Exception)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with the specified inner exception.
-            </summary>
-            <param name="innerException">The exception that is the cause of the current exception.</param>
-        </member>
-        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.String)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with a specified error message.
-            </summary>
-            <param name="message">A string that describes the exception.</param>
-        </member>
-        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.String,System.Exception)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with a specified error message and inner exception.
-            </summary>
-            <param name="message">A string that describes the exception.</param>
-            <param name="innerException">The exception that is the cause of the current exception.</param>
-        </member>
-        <member name="M:System.Threading.BarrierPostPhaseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.BarrierPostPhaseException"/> class with serialized data.
-            </summary>
-            <param name="info">The object that holds the serialized object data.</param>
-            <param name="context">An object that describes the source or destination of the serialized data.</param>
-        </member>
-        <member name="T:System.Threading.Barrier">
-            <summary>
-            Enables multiple tasks to cooperatively work on an algorithm in parallel through multiple phases.
-            </summary>
-            <remarks>
-            <para>
-            A group of tasks cooperate by moving through a series of phases, where each in the group signals it
-            has arrived at the <see cref="T:System.Threading.Barrier"/> in a given phase and implicitly waits for all others to
-            arrive. The same <see cref="T:System.Threading.Barrier"/> can be used for multiple phases.
-            </para>
-            <para>
-            All public and protected members of <see cref="T:System.Threading.Barrier"/> are thread-safe and may be used
-            concurrently from multiple threads, with the exception of Dispose, which
-            must only be used when all other operations on the <see cref="T:System.Threading.Barrier"/> have
-            completed.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Barrier.#ctor(System.Int32)">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Barrier"/> class.
-            </summary>
-            <param name="participantCount">The number of participating threads.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="participantCount"/> is less than 0
-            or greater than <see cref="T:System.Int32.MaxValue"/>.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.#ctor(System.Int32,System.Action{System.Threading.Barrier})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Threading.Barrier"/> class.
-            </summary>
-            <param name="participantCount">The number of participating threads.</param>
-            <param name="postPhaseAction">The <see cref="T:System.Action`1"/> to be executed after each
-            phase.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"> <paramref name="participantCount"/> is less than 0
-            or greater than <see cref="T:System.Int32.MaxValue"/>.</exception>
-            <remarks>
-            The <paramref name="postPhaseAction"/> delegate will be executed after
-            all participants have arrived at the barrier in one phase.  The participants
-            will not be released to the next phase until the postPhaseAction delegate
-            has completed execution.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Barrier.GetCurrentTotal(System.Int32,System.Int32@,System.Int32@,System.Boolean@)">
-            <summary>
-            Extract the three variables current, total and sense from a given big variable
-            </summary>
-            <param name="currentTotal">The integer variable that contains the other three variables</param>
-            <param name="current">The current cparticipant count</param>
-            <param name="total">The total participants count</param>
-            <param name="sense">The sense flag</param>
-        </member>
-        <member name="M:System.Threading.Barrier.SetCurrentTotal(System.Int32,System.Int32,System.Int32,System.Boolean)">
-            <summary>
-            Write the three variables current. total and the sense to the m_currentTotal
-            </summary>
-            <param name="currentTotal">The old current total to compare</param>
-            <param name="current">The current cparticipant count</param>
-            <param name="total">The total participants count</param>
-            <param name="sense">The sense flag</param>
-            <returns>True if the CAS succeeded, false otherwise</returns>
-        </member>
-        <member name="M:System.Threading.Barrier.AddParticipant">
-            <summary>
-            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be an additional participant.
-            </summary>
-            <returns>The phase number of the barrier in which the new participants will first
-            participate.</returns>
-            <exception cref="T:System.InvalidOperationException">
-            Adding a participant would cause the barrier's participant count to 
-            exceed <see cref="T:System.Int16.MaxValue"/>.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.AddParticipants(System.Int32)">
-            <summary>
-            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be additional participants.
-            </summary>
-            <param name="participantCount">The number of additional participants to add to the
-            barrier.</param>
-            <returns>The phase number of the barrier in which the new participants will first
-            participate.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="participantCount"/> is less than
-            0.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">Adding <paramref name="participantCount"/> participants would cause the
-            barrier's participant count to exceed <see cref="T:System.Int16.MaxValue"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.RemoveParticipant">
-            <summary>
-            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be one less participant.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">The barrier already has 0
-            participants.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.RemoveParticipants(System.Int32)">
-            <summary>
-            Notifies the <see cref="T:System.Threading.Barrier"/> that there will be fewer participants.
-            </summary>
-            <param name="participantCount">The number of additional participants to remove from the barrier.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="participantCount"/> is less than
-            0.</exception>
-            <exception cref="T:System.InvalidOperationException">The barrier already has 0 participants.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.SignalAndWait">
-            <summary>
-            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
-            participants to reach the barrier as well.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
-            or the barrier is being used by more threads than are registered as participants.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.SignalAndWait(System.Threading.CancellationToken)">
-            <summary>
-            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
-            participants to reach the barrier, while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
-            or the barrier is being used by more threads than are registered as participants.
-            </exception>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
-            canceled.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.SignalAndWait(System.TimeSpan)">
-            <summary>
-            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
-            participants to reach the barrier as well, using a
-            <see cref="T:System.TimeSpan"/> to measure the time interval.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
-            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
-            wait indefinitely.</param>
-            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/>is a negative number
-            other than -1 milliseconds, which represents an infinite time-out, or it is greater than
-            <see cref="T:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
-            or the barrier is being used by more threads than are registered as participants.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.SignalAndWait(System.TimeSpan,System.Threading.CancellationToken)">
-            <summary>
-            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
-            participants to reach the barrier as well, using a
-            <see cref="T:System.TimeSpan"/> to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of
-            milliseconds to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to
-            wait indefinitely.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/>is a negative number
-            other than -1 milliseconds, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
-            or the barrier is being used by more threads than are registered as participants.
-            </exception>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
-            canceled.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.SignalAndWait(System.Int32)">
-            <summary>
-            Signals that a participant has reached the <see cref="T:System.Threading.Barrier"/> and waits for all other
-            participants to reach the barrier as well, using a
-            32-bit signed integer to measure the time interval.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
-            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
-            or the barrier is being used by more threads than are registered as participants.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.SignalAndWait(System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Signals that a participant has reached the barrier and waits for all other participants to reach
-            the barrier as well, using a
-            32-bit signed integer to measure the time interval, while observing a <see cref="T:System.Threading.CancellationToken"/>.
-            </summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.</param>
-            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> to
-            observe.</param>
-            <returns>true if all other participants reached the barrier; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action, the barrier currently has 0 participants,
-            or the barrier is being used by more threads than are registered as participants.
-            </exception>
-            <exception cref="T:System.OperationCanceledException"><paramref name="cancellationToken"/> has been
-            canceled.</exception>
-            <exception cref="T:System.ObjectDisposedException">The current instance has already been
-            disposed.</exception>
-        </member>
-        <member name="M:System.Threading.Barrier.FinishPhase(System.Boolean)">
-            <summary>
-            Finish the phase by invoking the post phase action, and setting the event, this must be called by the 
-            last arrival thread
-            </summary>
-            <param name="observedSense">The current phase sense</param>
-        </member>
-        <member name="M:System.Threading.Barrier.SetResetEvents(System.Boolean)">
-            <summary>
-            Sets the current phase event and reset the next phase event
-            </summary>
-            <param name="observedSense">The current phase sense</param>
-        </member>
-        <member name="M:System.Threading.Barrier.Dispose">
-            <summary>
-            Releases all resources used by the current instance of <see cref="T:System.Threading.Barrier"/>.
-            </summary>
-            <exception cref="T:System.InvalidOperationException">
-            The method was invoked from within a post-phase action.
-            </exception>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.Barrier"/>, Dispose is not thread-safe and may not be
-            used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Barrier.Dispose(System.Boolean)">
-            <summary>
-            When overridden in a derived class, releases the unmanaged resources used by the
-            <see cref="T:System.Threading.Barrier"/>, and optionally releases the managed resources.
-            </summary>
-            <param name="disposing">true to release both managed and unmanaged resources; false to release
-            only unmanaged resources.</param>
-            <remarks>
-            Unlike most of the members of <see cref="T:System.Threading.Barrier"/>, Dispose is not thread-safe and may not be
-            used concurrently with other members of this instance.
-            </remarks>
-        </member>
-        <member name="M:System.Threading.Barrier.ThrowIfDisposed">
-            <summary>
-            Throw ObjectDisposedException if the barrier is disposed
-            </summary>
-        </member>
-        <member name="P:System.Threading.Barrier.ParticipantsRemaining">
-            <summary>
-            Gets the number of participants in the barrier that haven’t yet signaled
-            in the current phase.
-            </summary>
-            <remarks>
-            This could be 0 during a post-phase action delegate execution or if the
-            ParticipantCount is 0.
-            </remarks>
-        </member>
-        <member name="P:System.Threading.Barrier.ParticipantCount">
-            <summary>
-            Gets the total number of participants in the barrier.
-            </summary>
-        </member>
-        <member name="P:System.Threading.Barrier.CurrentPhaseNumber">
-            <summary>
-            Gets the number of the barrier's current phase.
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.BlockingCollection`1">
-            <summary> 
-            Provides blocking and bounding capabilities for thread-safe collections that 
-            implement <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. 
-            </summary>
-            <remarks>
-            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> represents a collection
-            that allows for thread-safe adding and removing of data. 
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is used as a wrapper
-            for an <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> instance, allowing
-            removal attempts from the collection to block until data is available to be removed.  Similarly,
-            a <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> can be created to enforce
-            an upper-bound on the number of data elements allowed in the 
-            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>; addition attempts to the
-            collection may then block until space is available to store the added items.  In this manner,
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is similar to a traditional
-            blocking queue data structure, except that the underlying data storage mechanism is abstracted
-            away as an <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/>. 
-            </remarks>
-            <typeparam name="T">Specifies the type of elements in the collection.</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor">
-            <summary>Initializes a new instance of the 
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
-            class without an upper-bound.
-            </summary>
-            <remarks>
-            The default underlying collection is a <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1">ConcurrentQueue&lt;T&gt;</see>.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor(System.Int32)">
-            <summary>Initializes a new instance of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
-            class with the specified upper-bound.
-            </summary>
-            <param name="boundedCapacity">The bounded size of the collection.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="boundedCapacity"/> is
-            not a positive value.</exception>
-            <remarks>
-            The default underlying collection is a <see cref="T:System.Collections.Concurrent.ConcurrentQueue`1">ConcurrentQueue&lt;T&gt;</see>.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor(System.Collections.Concurrent.IProducerConsumerCollection{`0},System.Int32)">
-            <summary>Initializes a new instance of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
-            class with the specified upper-bound and using the provided 
-            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> as its underlying data store.</summary>
-            <param name="collection">The collection to use as the underlying data store.</param>
-            <param name="boundedCapacity">The bounded size of the collection.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="boundedCapacity"/> is not a positive value.</exception>
-            <exception cref="T:System.ArgumentException">The supplied <paramref name="collection"/> contains more values 
-            than is permitted by <paramref name="boundedCapacity"/>.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.#ctor(System.Collections.Concurrent.IProducerConsumerCollection{`0})">
-            <summary>Initializes a new instance of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>
-            class without an upper-bound and using the provided 
-            <see cref="T:System.Collections.Concurrent.IProducerConsumerCollection{T}"/> as its underlying data store.</summary>
-            <param name="collection">The collection to use as the underlying data store.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collection"/> argument is
-            null.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Initialize(System.Collections.Concurrent.IProducerConsumerCollection{`0},System.Int32,System.Int32)">
-            <summary>Initializes the BlockingCollection instance.</summary>
-            <param name="collection">The collection to use as the underlying data store.</param>
-            <param name="boundedCapacity">The bounded size of the collection.</param>
-            <param name="collectionCount">The number of items currently in the underlying collection.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Add(`0)">
-            <summary>
-            Adds the item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            </summary>
-            <param name="item">The item to be added to the collection. The value can be a null reference.</param>
-            <exception cref="T:System.InvalidOperationException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
-            <remarks>
-            If a bounded capacity was specified when this instance of 
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> was initialized, 
-            a call to Add may block until space is available to store the provided item.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Add(`0,System.Threading.CancellationToken)">
-            <summary>
-            Adds the item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled.
-            </summary>
-            <param name="item">The item to be added to the collection. The value can be a null reference.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
-            <remarks>
-            If a bounded capacity was specified when this instance of 
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> was initialized, 
-            a call to <see cref="M:System.Collections.Concurrent.BlockingCollection`1.Add(`0,System.Threading.CancellationToken)"/> may block until space is available to store the provided item.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0)">
-            <summary>
-            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            </summary>
-            <param name="item">The item to be added to the collection.</param>
-            <returns>true if the <paramref name="item"/> could be added; otherwise, false.</returns>
-            <exception cref="T:System.InvalidOperationException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0,System.TimeSpan)">
-            <summary>
-            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            </summary>
-            <param name="item">The item to be added to the collection.</param>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>true if the <paramref name="item"/> could be added to the collection within 
-            the alloted time; otherwise, false.</returns>
-            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
-            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0,System.Int32)">
-            <summary>
-            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            </summary>
-            <param name="item">The item to be added to the collection.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <returns>true if the <paramref name="item"/> could be added to the collection within 
-            the alloted time; otherwise, false.</returns>
-            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAdd(`0,System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Attempts to add the specified item to the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled.
-            </summary>
-            <param name="item">The item to be added to the collection.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <returns>true if the <paramref name="item"/> could be added to the collection within 
-            the alloted time; otherwise, false.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddWithNoTimeValidation(`0,System.Int32,System.Threading.CancellationToken)">
-            <summary>Adds an item into the underlying data store using its IProducerConsumerCollection&lt;T&gt;.Add 
-            method. If a bounded capacity was specified and the collection was full, 
-            this method will wait for, at most, the timeout period trying to add the item. 
-            If the timeout period was exhaused before successfully adding the item this method will 
-            return false.</summary>
-            <param name="item">The item to be added to the collection.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait for the collection to accept the item,
-            or Timeout.Infinite to wait indefinitely.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <returns>False if the collection remained full till the timeout period was exhausted.True otherwise.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.InvalidOperationException">the collection has already been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">If the collection has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection didn't accept the item.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Take">
-            <summary>Takes an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</summary>
-            <returns>The item removed from the collection.</returns>
-            <exception cref="T:System.OperationCanceledException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is empty and has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
-            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <remarks>A call to <see cref="M:System.Collections.Concurrent.BlockingCollection`1.Take"/> may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Take(System.Threading.CancellationToken)">
-            <summary>Takes an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</summary>
-            <returns>The item removed from the collection.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled or the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> is empty and has been marked
-            as complete with regards to additions.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
-            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <remarks>A call to <see cref="M:System.Collections.Concurrent.BlockingCollection`1.Take(System.Threading.CancellationToken)"/> may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@)">
-            <summary>
-            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            </summary>
-            <param name="item">The item removed from the collection.</param>
-            <returns>true if an item could be removed; otherwise, false.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
-            outside of this <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@,System.TimeSpan)">
-            <summary>
-            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            </summary>
-            <param name="item">The item removed from the collection.</param>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>true if an item could be removed from the collection within 
-            the alloted time; otherwise, false.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
-            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
-            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@,System.Int32)">
-            <summary>
-            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            </summary>
-            <param name="item">The item removed from the collection.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <returns>true if an item could be removed from the collection within 
-            the alloted time; otherwise, false.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
-            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTake(`0@,System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Attempts to remove an item from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled.
-            </summary>
-            <param name="item">The item removed from the collection.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <returns>true if an item could be removed from the collection within 
-            the alloted time; otherwise, false.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">The underlying collection was modified
-            outside of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeWithNoTimeValidation(`0@,System.Int32,System.Threading.CancellationToken,System.Threading.CancellationTokenSource)">
-            <summary>Takes an item from the underlying data store using its IProducerConsumerCollection&lt;T&gt;.Take 
-            method. If the collection was empty, this method will wait for, at most, the timeout period (if AddingIsCompleted is false)
-            trying to remove an item. If the timeout period was exhaused before successfully removing an item 
-            this method will return false.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled.
-            </summary>
-            <param name="item">The item removed from the collection.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait for the collection to have an item available 
-            for removal, or Timeout.Infinite to wait indefinitely.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <param name="combinedTokenSource">A combined cancellation token if created, it is only created by GetConsumingEnumerable to avoid creating the linked token 
-            multiple times.</param>
-            <returns>False if the collection remained empty till the timeout period was exhausted. True otherwise.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.ObjectDisposedException">If the collection has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.AddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0)">
-            <summary>
-            Adds the specified item to any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item to be added to one of the collections.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> array to which the item was added.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element, or at least one of collections has been
-            marked as complete for adding.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-            <remarks>
-            If a bounded capacity was specified when all of the
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances were initialized, 
-            a call to AddToAny may block until space is available in one of the collections
-            to store the provided item.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.AddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.Threading.CancellationToken)">
-            <summary>
-            Adds the specified item to any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled. 
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item to be added to one of the collections.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> array to which the item was added.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element, or at least one of collections has been
-            marked as complete for adding.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-            <remarks>
-            If a bounded capacity was specified when all of the
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances were initialized, 
-            a call to AddToAny may block until space is available in one of the collections
-            to store the provided item.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0)">
-            <summary>
-            Attempts to add the specified item to any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item to be added to one of the collections.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> 
-            array to which the item was added, or -1 if the item could not be added.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element, or at least one of collections has been
-            marked as complete for adding.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.TimeSpan)">
-            <summary>
-            Attempts to add the specified item to any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item to be added to one of the collections.</param>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>The index of the collection in the <paramref name="collections"/> 
-            array to which the item was added, or -1 if the item could not be added.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element, or at least one of collections has been
-            marked as complete for adding.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
-            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.Int32)">
-            <summary>
-            Attempts to add the specified item to any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item to be added to one of the collections.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>        /// <returns>The index of the collection in the <paramref name="collections"/> 
-            array to which the item was added, or -1 if the item could not be added.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element, or at least one of collections has been
-            marked as complete for adding.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddToAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0,System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Attempts to add the specified item to any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item to be added to one of the collections.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>        /// <returns>The index of the collection in the <paramref name="collections"/> 
-            array to which the item was added, or -1 if the item could not be added.</returns>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element, or at least one of collections has been
-            marked as complete for adding.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one underlying collection didn't accept the item.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryAddTakeAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Int32,System.Collections.Concurrent.BlockingCollection{`0}.OperationMode,System.Threading.CancellationToken)">
-            <summary>Adds/Takes an item to/from anyone of the specified collections.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled. 
-            </summary>
-            <param name="collections">The collections into which the item can be added.</param>
-            <param name="item">The item to be added or the item removed and returned to the caller.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait for a collection to accept the 
-            operation, or -1 to wait indefinitely.</param>
-            <param name="operationMode">Indicates whether this method is called to Add or Take.</param>
-            <param name="externalCancellationToken">A cancellation token to observe.</param>
-            <returns>The index into collections for the collection which accepted the 
-            adding/removal of the item; -1 if the item could not be added/removed.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.ArgumentNullException">If the collections argument is null.</exception>
-            <exception cref="T:System.ArgumentException">If the collections argument is a 0-length array or contains a 
-            null element. Also, if atleast one of the collections has been marked complete for adds.</exception>
-            <exception cref="T:System.ObjectDisposedException">If atleast one of the collections has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.GetHandles(System.Collections.Concurrent.BlockingCollection{`0}[],System.Collections.Concurrent.BlockingCollection{`0}.OperationMode,System.Threading.CancellationToken,System.Boolean,System.Threading.CancellationToken[]@)">
-            <summary>
-            Local static method, used by TryAddTakeAny to get the wait handles for the collection, with exclude option to exclude the Compeleted collections
-            </summary>
-            <param name="collections">The blocking collections</param>
-            <param name="operationMode">Add or Take operation</param>
-            <param name="externalCancellationToken">The original CancellationToken</param>
-            <param name="excludeCompleted">True to exclude the compeleted collections</param>
-            <param name="cancellationTokens">Complete list of cancellationTokens to observe</param>
-            <returns>The collections wait handles</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.WaitHandle_WaitAny(System.Collections.Generic.List{System.Threading.WaitHandle},System.Int32,System.Threading.CancellationToken,System.Threading.CancellationToken)">
-            <summary>
-            Helper to perform WaitHandle.WaitAny(.., CancellationToken)
-            this should eventually appear on the WaitHandle class.
-            </summary>
-            <param name="handles"></param>
-            <param name="millisecondsTimeout"></param>
-            <param name="combinedToken"></param>
-            <param name="externalToken"></param>
-            <returns></returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.UpdateTimeOut(System.Int64,System.Int32)">
-            <summary>
-            Helper function to measure and update the wait time
-            </summary>
-            <param name="startTimeTicks"> The first time (in Ticks) observed when the wait started</param>
-            <param name="originalWaitMillisecondsTimeout">The orginal wait timeoutout in milliseconds</param>
-            <returns>The new wait time in milliseconds, -1 if the time expired</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@)">
-            <summary>
-            Takes an item from any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item removed from one of the collections.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> array from which 
-            the item was removed, or -1 if an item could not be removed.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
-            outside of its <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-            <remarks>A call to TakeFromAny may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Threading.CancellationToken)">
-            <summary>
-            Takes an item from any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item removed from one of the collections.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> array from which 
-            the item was removed, or -1 if an item could not be removed.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
-            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of 
-            62 for STA and 63 for MTA.</exception>
-            <remarks>A call to TakeFromAny may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@)">
-            <summary>
-            Attempts to remove an item from any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item removed from one of the collections.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> array from which 
-            the item was removed, or -1 if an item could not be removed.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
-            outside of its <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.TimeSpan)">
-            <summary>
-            Attempts to remove an item from any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item removed from one of the collections.</param>
-            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds
-            to wait, or a <see cref="T:System.TimeSpan"/> that represents -1 milliseconds to wait indefinitely.
-            </param>
-            <returns>The index of the collection in the <paramref name="collections"/> array from which 
-            the item was removed, or -1 if an item could not be removed.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="timeout"/> is a negative number
-            other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than
-            <see cref="F:System.Int32.MaxValue"/>.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
-            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Int32)">
-            <summary>
-            Attempts to remove an item from any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item removed from one of the collections.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> array from which 
-            the item was removed, or -1 if an item could not be removed.</returns>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
-            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.TryTakeFromAny(System.Collections.Concurrent.BlockingCollection{`0}[],`0@,System.Int32,System.Threading.CancellationToken)">
-            <summary>
-            Attempts to remove an item from any one of the specified
-            <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances.
-            A <see cref="T:System.OperationCanceledException"/> is thrown if the <see cref="T:System.Threading.CancellationToken"/> is
-            canceled. 
-            </summary>
-            <param name="collections">The array of collections.</param>
-            <param name="item">The item removed from one of the collections.</param>
-            <param name="millisecondsTimeout">The number of milliseconds to wait, or <see cref="F:System.Threading.Timeout.Infinite"/> (-1) to wait indefinitely.</param>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <returns>The index of the collection in the <paramref name="collections"/> array from which 
-            the item was removed, or -1 if an item could not be removed.</returns>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="collections"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="collections"/> argument is
-            a 0-length array or contains a null element.</exception>
-            <exception cref="T:System.ObjectDisposedException">At least one of the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances has been disposed.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="millisecondsTimeout"/> is a
-            negative number other than -1, which represents an infinite time-out.</exception>
-            <exception cref="T:System.InvalidOperationException">At least one of the underlying collections was modified
-            outside of its <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The count of <paramref name="collections"/> is greater than the maximum size of
-            62 for STA and 63 for MTA.</exception>
-            <remarks>A call to TryTakeFromAny may block until an item is available to be removed.</remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CompleteAdding">
-            <summary>
-            Marks the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instances
-            as not accepting any more additions.  
-            </summary>
-            <remarks>
-            After a collection has been marked as complete for adding, adding to the collection is not permitted 
-            and attempts to remove from the collection will not wait when the collection is empty.
-            </remarks>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CancelWaitingConsumers">
-            <summary>Cancels the semaphores.</summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Dispose">
-            <summary>
-            Releases resources used by the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.Dispose(System.Boolean)">
-            <summary>
-            Releases resources used by the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.
-            </summary>
-            <param name="disposing">Whether being disposed explicitly (true) or due to a finalizer (false).</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ToArray">
-            <summary>Copies the items from the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance into a new array.</summary>
-            <returns>An array containing copies of the elements of the collection.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <remarks>
-            The copied elements are not removed from the collection.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CopyTo(`0[],System.Int32)">
-            <summary>Copies all of the items in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance 
-            to a compatible one-dimensional array, starting at the specified index of the target array.
-            </summary>
-            <param name="array">The one-dimensional array that is the destination of the elements copied from 
-            the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance. The array must have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="array"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index"/> argument is less than zero.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="index"/> argument is equal to or greater 
-            than the length of the <paramref name="array"/>.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
-            <summary>Copies all of the items in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance 
-            to a compatible one-dimensional array, starting at the specified index of the target array.
-            </summary>
-            <param name="array">The one-dimensional array that is the destination of the elements copied from 
-            the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance. The array must have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying begins.</param>
-            <exception cref="T:System.ArgumentNullException">The <paramref name="array"/> argument is
-            null.</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="index"/> argument is less than zero.</exception>
-            <exception cref="T:System.ArgumentException">The <paramref name="index"/> argument is equal to or greater 
-            than the length of the <paramref name="array"/>, the array is multidimensional, or the type parameter for the collection 
-            cannot be cast automatically to the type of the destination array.</exception>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.GetConsumingEnumerable">
-            <summary>Provides a consuming <see cref="T:System.Collections.Generics.IEnumerable{T}"/> for items in the collection.</summary>
-            <returns>An <see cref="T:System.Collections.Generics.IEnumerable{T}"/> that removes and returns items from the collection.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.GetConsumingEnumerable(System.Threading.CancellationToken)">
-            <summary>Provides a consuming <see cref="T:System.Collections.Generics.IEnumerable{T}"/> for items in the collection.
-            Calling MoveNext on the returned enumerable will block if there is no data available, or will
-            throw an <see cref="T:System.OperationCanceledException"/> if the <see cref="T:System.Threading.CancellationToken"/> is canceled.
-            </summary>
-            <param name="cancellationToken">A cancellation token to observe.</param>
-            <returns>An <see cref="T:System.Collections.Generics.IEnumerable{T}"/> that removes and returns items from the collection.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-            <exception cref="T:System.OperationCanceledException">If the <see cref="T:System.Threading.CancellationToken"/> is canceled.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.System#Collections#Generic#IEnumerable{T}#GetEnumerator">
-            <summary>Provides an <see cref="T:System.Collections.Generics.IEnumerator{T}"/> for items in the collection.</summary>
-            <returns>An <see cref="T:System.Collections.Generics.IEnumerator{T}"/> for the items in the collection.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.System#Collections#IEnumerable#GetEnumerator">
-            <summary>Provides an <see cref="T:System.Collections.IEnumerator"/> for items in the collection.</summary>
-            <returns>An <see cref="T:System.Collections.IEnumerator"/> for the items in the collection.</returns>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ValidateCollectionsArray(System.Collections.Concurrent.BlockingCollection{`0}[],System.Collections.Concurrent.BlockingCollection{`0}.OperationMode)">
-            <summary>Centralizes the logic for validating the BlockingCollections array passed to TryAddToAny()
-            and TryTakeFromAny().</summary>
-            <param name="collections">The collections to/from which an item should be added/removed.</param>
-            <param name="operationMode">Indicates whether this method is called to Add or Take.</param>
-            <returns>A copy of the collections array that acts as a defense to prevent an “outsider” from changing 
-            elements of the array after we have done the validation on them.</returns>
-            <exception cref="T:System.ArgumentNullException">If the collections argument is null.</exception>
-            <exception cref="T:System.ArgumentException">If the collections argument is a 0-length array or contains a 
-            null element. Also, if atleast one of the collections has been marked complete for adds.</exception>
-            <exception cref="T:System.ObjectDisposedException">If atleast one of the collections has been disposed.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ValidateTimeout(System.TimeSpan)">
-            <summary>Centeralizes the logic of validating the timeout input argument.</summary>
-            <param name="timeout">The TimeSpan to wait for to successfully complete an operation on the collection.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">If the number of millseconds represented by the timeout 
-            TimeSpan is less than 0 or is larger than Int32.MaxValue and not Timeout.Infinite</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.ValidateMillisecondsTimeout(System.Int32)">
-            <summary>Centralizes the logic of validating the millisecondsTimeout input argument.</summary>
-            <param name="millisecondsTimeout">The number of milliseconds to wait for to successfully complete an 
-            operation on the collection.</param>
-            <exception cref="T:System.ArgumentOutOfRangeException">If the number of millseconds is less than 0 and not 
-            equal to Timeout.Infinite.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.BlockingCollection`1.CheckDisposed">
-            <summary>Throws a System.ObjectDisposedException if the collection was disposed</summary>
-            <exception cref="T:System.ObjectDisposedException">If the collection has been disposed.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.BlockingCollection`1.BoundedCapacity">
-            <summary>Gets the bounded capacity of this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> instance.</summary>
-            <value>The bounded capacity of this collection, or int.MaxValue if no bound was supplied.</value>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.BlockingCollection`1.IsAddingCompleted">
-            <summary>Gets whether this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked as complete for adding.</summary>
-            <value>Whether this collection has been marked as complete for adding.</value>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.BlockingCollection`1.IsCompleted">
-            <summary>Gets whether this <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been marked as complete for adding and is empty.</summary>
-            <value>Whether this collection has been marked as complete for adding and is empty.</value>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.BlockingCollection`1.Count">
-            <summary>Gets the number of items contained in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</summary>
-            <value>The number of items contained in the <see cref="T:System.Collections.Concurrent.BlockingCollection{T}"/>.</value>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.BlockingCollection`1.System#Collections#ICollection#IsSynchronized">
-            <summary>Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is synchronized.</summary>
-            <exception cref="T:System.ObjectDisposedException">The <see
-            cref="T:System.Collections.Concurrent.BlockingCollection{T}"/> has been disposed.</exception>
-        </member>
-        <member name="P:System.Collections.Concurrent.BlockingCollection`1.System#Collections#ICollection#SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the <see
-            cref="T:System.Collections.ICollection"/>. This property is not supported.
-            </summary>
-            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
-        </member>
-        <member name="T:System.Collections.Concurrent.BlockingCollection`1.OperationMode">
-            <summary>An enumerated data type used internal to the class to specify to a generic method
-            the current mode of operation.</summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.SystemThreadingCollections_BlockingCollectionDebugView`1">
-            <summary>A debugger view of the blocking collection that makes it simple to browse the
-            collection's contents at a point in time.</summary>
-            <typeparam name="T">The type of element that the BlockingCollection will hold.</typeparam>
-        </member>
-        <member name="M:System.Collections.Concurrent.SystemThreadingCollections_BlockingCollectionDebugView`1.#ctor(System.Collections.Concurrent.BlockingCollection{`0})">
-            <summary>Constructs a new debugger view object for the provided blocking collection object.</summary>
-            <param name="collection">A blocking collection to browse in the debugger.</param>
-        </member>
-        <member name="P:System.Collections.Concurrent.SystemThreadingCollections_BlockingCollectionDebugView`1.Items">
-            <summary>Returns a snapshot of the underlying collection's elements.</summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentBag`1">
-            <summary>
-            Represents an thread-safe, unordered collection of objects. 
-            </summary>
-            <typeparam name="T">Specifies the type of elements in the bag.</typeparam>
-            <remarks>
-            <para>
-            Bags are useful for storing objects when ordering doesn't matter, and unlike sets, bags support
-            duplicates. <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is a thread-safe bag implementation, optimized for
-            scenarios where the same thread will be both producing and consuming data stored in the bag.
-            </para>
-            <para>
-            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> accepts null reference (Nothing in Visual Basic) as a valid 
-            value for reference types.
-            </para>
-            <para>
-            All public and protected members of <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> are thread-safe and may be used
-            concurrently from multiple threads.
-            </para>
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.#ctor">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>
-            class.
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
-            <summary>
-            Initializes a new instance of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>
-            class that contains elements copied from the specified collection.
-            </summary>
-            <param name="collection">The collection whose elements are copied to the new <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="collection"/> is a null reference
-            (Nothing in Visual Basic).</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.Initialize(System.Collections.Generic.IEnumerable{`0})">
-            <summary>
-            Local helper function to initalize a new bag object
-            </summary>
-            <param name="collection">An enumeration containing items with which to initialize this bag.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.Add(`0)">
-            <summary>
-            Adds an object to the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
-            </summary>
-            <param name="item">The object to be added to the
-            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The value can be a null reference
-            (Nothing in Visual Basic) for reference types.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.AddInternal(System.Collections.Concurrent.ConcurrentBag{`0}.ThreadLocalList,`0)">
-            <summary>
-            </summary>
-            <param name="list"></param>
-            <param name="item"></param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#Concurrent#IProducerConsumerCollection{T}#TryAdd(`0)">
-            <summary>
-            Attempts to add an object to the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
-            </summary>
-            <param name="item">The object to be added to the 
-            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The value can be a null reference
-            (Nothing in Visual Basic) for reference types.</param>
-            <returns>Always returns true</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TryTake(`0@)">
-            <summary>
-            Attempts to remove and return an object from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
-            </summary>
-            <param name="result">When this method returns, <paramref name="result"/> contains the object
-            removed from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> or the default value
-            of <typeparamref name="T"/> if the operation failed.</param>
-            <returns>true if an object was removed successfully; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TryPeek(`0@)">
-            <summary>
-            Attempts to return an object from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>
-            without removing it.
-            </summary>
-            <param name="result">When this method returns, <paramref name="result"/> contains an object from
-            the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> or the default value of
-            <typeparamref name="T"/> if the operation failed.</param>
-            <returns>true if and object was returned successfully; otherwise, false.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TryTakeOrPeek(`0@,System.Boolean)">
-            <summary>
-            Local helper function to Take or Peek an item from the bag
-            </summary>
-            <param name="result">To receive the item retrieved from the bag</param>
-            <param name="take">True means Take operation, false means Peek operation</param>
-            <returns>True if succeeded, false otherwise</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetThreadList(System.Boolean)">
-            <summary>
-            Local helper function to retrieve a thread local list by a thread object
-            </summary>
-            <param name="forceCreate">Create a new list if the thread does ot exist</param>
-            <returns>The local list object</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetUnownedList">
-            <summary>
-            Try to reuse an unowned list if exist
-            unowned lists are the lists that their owner threads are aborted or terminated
-            this is workaround to avoid memory leaks.
-            </summary>
-            <returns>The list object, null if all lists are owned</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.Steal(`0@,System.Boolean)">
-            <summary>
-            Local helper method to steal an item from any other non empty thread
-            It enumerate all other threads in two passes first pass acquire the lock with TryEnter if succeeded
-            it steals the item, otherwise it enumerate them again in 2nd pass and acquire the lock using Enter
-            </summary>
-            <param name="result">To receive the item retrieved from the bag</param>
-            <param name="take">Whether to remove or peek.</param>
-            <returns>True if succeeded, false otherwise.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.TrySteal(System.Collections.Concurrent.ConcurrentBag{`0}.ThreadLocalList,`0@,System.Boolean)">
-            <summary>
-            local helper function tries to steal an item from given local list
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.CanSteal(System.Collections.Concurrent.ConcurrentBag{`0}.ThreadLocalList)">
-            <summary>
-            Local helper function to check the list if it became empty after acquiring the lock
-            and wait if there is unsynchronized Add/Take operation in the list to be done
-            </summary>
-            <param name="list">The list to steal</param>
-            <returns>True if can steal, false otherwise</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.CopyTo(`0[],System.Int32)">
-            <summary>
-            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> elements to an existing
-            one-dimensional <see cref="T:System.Array">Array</see>, starting at the specified array
-            index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
-            destination of the elements copied from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The <see cref="T:System.Array">Array</see> must have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
-            Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            zero.</exception>
-            <exception cref="T:System.ArgumentException"><paramref name="index"/> is equal to or greater than the
-            length of the <paramref name="array"/>
-            -or- the number of elements in the source <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is greater than the available space from
-            <paramref name="index"/> to the end of the destination <paramref name="array"/>.</exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
-            <summary>
-            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an <see cref="T:System.Array"/>, starting at a particular
-            <see cref="T:System.Array"/> index.
-            </summary>
-            <param name="array">The one-dimensional <see cref="T:System.Array">Array</see> that is the
-            destination of the elements copied from the
-            <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>. The <see cref="T:System.Array">Array</see> must have zero-based indexing.</param>
-            <param name="index">The zero-based index in <paramref name="array"/> at which copying
-            begins.</param>
-            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is a null reference (Nothing in
-            Visual Basic).</exception>
-            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than
-            zero.</exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="array"/> is multidimensional. -or-
-            <paramref name="array"/> does not have zero-based indexing. -or-
-            <paramref name="index"/> is equal to or greater than the length of the <paramref name="array"/>
-            -or- The number of elements in the source <see cref="T:System.Collections.ICollection"/> is
-            greater than the available space from <paramref name="index"/> to the end of the destination
-            <paramref name="array"/>. -or- The type of the source <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to the type of the
-            destination <paramref name="array"/>.
-            </exception>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ToArray">
-            <summary>
-            Copies the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> elements to a new array.
-            </summary>
-            <returns>A new array containing a snapshot of elements copied from the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
-            </summary>
-            <returns>An enumerator for the contents of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</returns>
-            <remarks>
-            The enumeration represents a moment-in-time snapshot of the contents
-            of the bag.  It does not reflect any updates to the collection after 
-            <see cref="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator"/> was called.  The enumerator is safe to use
-            concurrently with reads from and writes to the bag.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
-            </summary>
-            <returns>An enumerator for the contents of the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</returns>
-            <remarks>
-            The items enumerated represent a moment-in-time snapshot of the contents
-            of the bag.  It does not reflect any update to the collection after 
-            <see cref="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator"/> was called.
-            </remarks>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.OnSerializing(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Get the data array to be serialized
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.OnDeserialized(System.Runtime.Serialization.StreamingContext)">
-            <summary>
-            Construct the stack from a previously seiralized one
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.FreezeBag(System.Boolean@)">
-            <summary>
-            Local helper method to freeze all bag operations, it
-            1- Acquire the global lock to prevent any other thread to freeze the bag, and also new new thread can be added
-            to the dictionary
-            2- Then Acquire all local lists locks to prevent steal and synchronized operations
-            3- Wait for all un-synchronized operations to be done
-            </summary>
-            <param name="lockTaken">Retrieve the lock taken result for the global lock, to be passed to Unfreeze method</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.UnfreezeBag(System.Boolean)">
-            <summary>
-            Local helper method to unfreeze the bag from a frozen state
-            </summary>
-            <param name="lockTaken">The lock taken result from the Freeze method</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.AcquireAllLocks">
-            <summary>
-            local helper method to acquire all local lists locks
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ReleaseAllLocks">
-            <summary>
-            Local helper method to release all local lists locks
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.WaitAllOperations">
-            <summary>
-            Local helper function to wait all unsynchronized operations
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.GetCountInternal">
-            <summary>
-            Local helper function to get the bag count, the caller should call it from Freeze/Unfreeze block
-            </summary>
-            <returns>The current bag count</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ToList">
-            <summary>
-            Local helper function to return the bag item in a list, this is mainly used by CopyTo and ToArray
-            This is not thread safe, should be called in Freeze/UnFreeze bag block
-            </summary>
-            <returns>List the contains the bag items</returns>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.Count">
-            <summary>
-            Gets the number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.
-            </summary>
-            <value>The number of elements contained in the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>.</value>
-            <remarks>
-            The count returned represents a moment-in-time snapshot of the contents
-            of the bag.  It does not reflect any updates to the collection after 
-            <see cref="M:System.Collections.Concurrent.ConcurrentBag`1.GetEnumerator"/> was called.
-            </remarks>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.IsEmpty">
-            <summary>
-            Gets a value that indicates whether the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is empty.
-            </summary>
-            <value>true if the <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/> is empty; otherwise, false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#ICollection#IsSynchronized">
-            <summary>
-            Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection"/> is
-            synchronized with the SyncRoot.
-            </summary>
-            <value>true if access to the <see cref="T:System.Collections.ICollection"/> is synchronized
-            with the SyncRoot; otherwise, false. For <see cref="T:System.Collections.Concurrent.ConcurrentBag`1"/>, this property always
-            returns false.</value>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.System#Collections#ICollection#SyncRoot">
-            <summary>
-            Gets an object that can be used to synchronize access to the <see
-            cref="T:System.Collections.ICollection"/>. This property is not supported.
-            </summary>
-            <exception cref="T:System.NotSupportedException">The SyncRoot property is not supported.</exception>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentBag`1.Node">
-            <summary>
-            A class that represents a node in the lock thread list
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList">
-            <summary>
-            A class that represents the lock thread list
-            </summary>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.#ctor(System.Threading.Thread)">
-            <summary>
-            ThreadLocalList constructor
-            </summary>
-            <param name="ownerThread">The owner thread for this list</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Add(`0,System.Boolean)">
-            <summary>
-            Add new item to head of the list
-            </summary>
-            <param name="item">The item to add.</param>
-            <param name="updateCount">Whether to update the count.</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Remove(`0@)">
-            <summary>
-            Remove an item from the head of the list
-            </summary>
-            <param name="result">The removed item</param>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Peek(`0@)">
-            <summary>
-            Peek an item from the head of the list
-            </summary>
-            <param name="result">the peeked item</param>
-            <returns>True if succeeded, false otherwise</returns>
-        </member>
-        <member name="M:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Steal(`0@,System.Boolean)">
-            <summary>
-            Steal an item from the tail of the list
-            </summary>
-            <param name="result">the removed item</param>
-            <param name="remove">remove or peek flag</param>
-        </member>
-        <member name="P:System.Collections.Concurrent.ConcurrentBag`1.ThreadLocalList.Count">
-            <summary>
-            Gets the total list count, it's not thread safe, may provide incorrect count if it is called concurrently
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.ConcurrentBag`1.ListOperation">
-            <summary>
-            List operations
-            </summary>
-        </member>
-        <member name="T:System.Collections.Concurrent.SystemThreadingCollection_IProducerConsumerCollectionDebugView`1">
-            <summary>
-            A simple class for the debugger view window
-            </summary>
-        </member>
-        <member name="T:System.Linq.ParallelEnumerable">
-            <summary>
-            Provides a set of methods for querying objects that implement 
-            ParallelQuery{TSource}.  This is the parallel equivalent of 
-            <see cref="T:System.Linq.Enumerable"/>.
-            </summary>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsParallel``1(System.Collections.Generic.IEnumerable{``0})">
-            <summary>
-            Enables parallelization of a query.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> 
-            to convert to a <see cref="T:System.Linq.ParallelQuery`1"/>.</param>
-            <returns>The source as a <see cref="T:System.Linq.ParallelQuery`1"/> to bind to
-            ParallelEnumerable extension methods.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsParallel``1(System.Collections.Concurrent.Partitioner{``0})">
-            <summary>
-            Enables parallelization of a query, as sourced by a partitioner
-            responsible for splitting the input sequence into partitions.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A partitioner over the input sequence.</param>
-            <returns>The <paramref name="source"/> as a ParallelQuery to bind to ParallelEnumerable extension methods.</returns>
-            <remarks>
-            The source partitioner's GetOrderedPartitions method is used when ordering is enabled,
-            whereas the partitioner's GetPartitions is used if ordering is not enabled (the default).
-            The source partitioner's GetDynamicPartitions and GetDynamicOrderedPartitions are not used.
-            </remarks>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsOrdered``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Enables treatment of a data source as if it was ordered, overriding the default of unordered.
-            AsOrdered may only be invoked on sequences returned by AsParallel, ParallelEnumerable.Range,
-            and ParallelEnumerable.Repeat.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The input sequence.</param>
-            <exception cref="T:System.InvalidOperationException">
-            Thrown if <paramref name="source"/> is not one of AsParallel, ParallelEnumerable.Range, or ParallelEnumerable.Repeat.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <remarks>
-            A natural tension exists between performance and preserving order in parallel processing. By default, 
-            a parallelized query behaves as if the ordering of the results is arbitrary 
-            unless AsOrdered is applied or there is an explicit OrderBy operator in the query.
-            </remarks>
-            <returns>The source sequence which will maintain ordering in the query.</returns>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsOrdered(System.Linq.ParallelQuery)">
-            <summary>
-            Enables treatment of a data source as if it was ordered, overriding the default of unordered.
-            AsOrdered may only be invoked on sequences returned by AsParallel, ParallelEnumerable.Range,
-            and ParallelEnumerable.Repeat.
-            </summary>
-            <param name="source">The input sequence.</param>
-            <exception cref="T:System.InvalidOperationException">
-            Thrown if the <paramref name="source"/> is not one of AsParallel, ParallelEnumerable.Range, or ParallelEnumerable.Repeat.
-            </exception>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <remarks>
-            A natural tension exists between performance and preserving order in parallel processing. By default, 
-            a parallelized query behaves as if the ordering of the results is arbitrary unless AsOrdered 
-            is applied or there is an explicit OrderBy operator in the query.
-            </remarks>
-            <returns>The source sequence which will maintain ordering in the query.</returns>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsUnordered``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Allows an intermediate query to be treated as if no ordering is implied among the elements.
-            </summary>
-            <remarks>
-            AsUnordered may provide
-            performance benefits when ordering is not required in a portion of a query.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The input sequence.</param>
-            <returns>The source sequence with arbitrary order.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsParallel(System.Collections.IEnumerable)">
-            <summary>
-            Enables parallelization of a query.
-            </summary>
-            <param name="source">An <see cref="T:System.Collections.Generic.IEnumerable`1"/> to convert 
-            to a <see cref="T:System.Linq.ParallelQuery`1"/>.</param>
-            <returns>
-            The source as a ParallelQuery to bind to
-            ParallelEnumerable extension methods.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsSequential``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Converts a <see cref="T:System.Linq.ParallelQuery`1"/> into an 
-            <see cref="T:System.Collections.Generic.IEnumerable`1"/> to force sequential
-            evaluation of the query.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A <see cref="T:System.Linq.ParallelQuery`1"/> to convert to an <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</param>
-            <returns>The source as an <see cref="T:System.Collections.Generic.IEnumerable`1"/>
-            to bind to sequential extension methods.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.WithTaskScheduler``1(System.Linq.ParallelQuery{``0},System.Threading.Tasks.TaskScheduler)">
-            <summary>
-            Sets the task scheduler to execute the query.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A ParallelQuery on which to set the task scheduler option.</param>
-            <param name="taskScheduler">Task scheduler to execute the query.</param>
-            <returns>ParallelQuery representing the same query as source, but with the task scheduler option set.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="taskScheduler"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            WithTaskScheduler is used multiple times in the query.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.WithDegreeOfParallelism``1(System.Linq.ParallelQuery{``0},System.Int32)">
-            <summary>
-            Sets the degree of parallelism to use in a query. Degree of parallelism is the maximum number of concurrently
-            executing tasks that will be used to process the query.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A ParallelQuery on which to set the limit on the degrees of parallelism.</param>
-            <param name="degreeOfParallelism">The degree of parallelism for the query.</param>
-            <returns>ParallelQuery representing the same query as source, with the limit on the degrees of parallelism set.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            WithDegreeOfParallelism is used multiple times in the query.
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="degreeOfParallelism"/> is less than 1 or greater than 63.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.WithCancellation``1(System.Linq.ParallelQuery{``0},System.Threading.CancellationToken)">
-            <summary>
-            Sets the <see cref="T:System.Threading.CancellationToken"/> to associate with the query.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A ParallelQuery on which to set the option.</param>
-            <param name="cancellationToken">A cancellation token.</param>
-            <returns>ParallelQuery representing the same query as source, but with the <seealso cref="T:System.Threading.CancellationToken"/>
-            registered.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            WithCancellation is used multiple times in the query.
-            </exception>
-            <exception cref="T:System.ObjectDisposedException">
-            The <see cref="T:System.Threading.CancellationTokenSource"/> associated with the <paramref name="cancellationToken"/> has been disposed.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.WithExecutionMode``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelExecutionMode)">
-            <summary>
-            Sets the execution mode of the query.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A ParallelQuery on which to set the option.</param>
-            <param name="executionMode">The mode in which to execute the query.</param>
-            <returns>ParallelQuery representing the same query as source, but with the 
-            <seealso cref="T:System.Linq.ParallelExecutionMode"/> registered.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="executionMode"/> is not a valid <see cref="T:System.Linq.ParallelExecutionMode"/> value.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            WithExecutionMode is used multiple times in the query.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.WithMergeOptions``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelMergeOptions)">
-            <summary>
-            Sets the merge options for this query, which specify how the query will buffer output.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A ParallelQuery on which to set the option.</param>
-            <param name="mergeOptions">The merge optiosn to set for this query.</param>
-            <returns>ParallelQuery representing the same query as source, but with the 
-            <seealso cref="T:System.Linq.ParallelMergeOptions"/> registered.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.ArgumentException">
-            <paramref name="mergeOptions"/> is not a valid <see cref="T:System.Linq.ParallelMergeOptions"/> value.
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            WithMergeOptions is used multiple times in the query.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Range(System.Int32,System.Int32)">
-            <summary>
-            Generates a parallel sequence of integral numbers within a specified range.
-            </summary>
-            <param name="start">The value of the first integer in the sequence.</param>
-            <param name="count">The number of sequential integers to generate.</param>
-            <returns>An <b>IEnumerable&lt;Int32&gt;</b> in C# or <B>IEnumerable(Of Int32)</B> in 
-            Visual Basic that contains a range of sequential integral numbers.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="count"/> is less than 0
-            -or-
-            <paramref name="start"/> + <paramref name="count"/> - 1 is larger than <see cref="M:System.Int32.MaxValue"/>.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Repeat``1(``0,System.Int32)">
-            <summary>
-            Generates a parallel sequence that contains one repeated value.
-            </summary>
-            <typeparam name="TResult">The type of the value to be repeated in the result sequence.</typeparam>
-            <param name="element">The value to be repeated.</param>
-            <param name="count">The number of times to repeat the value in the generated sequence.</param>
-            <returns>A sequence that contains a repeated value.</returns>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="count"/> is less than 0.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Empty``1">
-            <summary>
-            Returns an empty ParallelQuery{TResult} that has the specified type argument.
-            </summary>
-            <typeparam name="TResult">The type to assign to the type parameter of the returned 
-            generic sequence.</typeparam>
-            <returns>An empty sequence whose type argument is <typeparamref name="TResult"/>.</returns>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ForAll``1(System.Linq.ParallelQuery{``0},System.Action{``0})">
-            <summary>
-            Invokes in parallel the specified action for each element in the <paramref name="source"/>.
-            </summary>
-            <remarks>
-            This is an efficient way to process the output from a parallelized query because it does 
-            not require a merge step at the end.  However, order of execution is non-deterministic.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The <see cref="T:System.Linq.ParallelQuery`1"/> whose elements will be processed by 
-            <paramref name="action"/>.</param>
-            <param name="action">An Action to invoke on each element.</param>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="action"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Where``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Filters in parallel a sequence of values based on a predicate.
-            </summary>
-            <typeparam name="TSource">The type of the elements of source.</typeparam>
-            <param name="source">A sequence to filter.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>A sequence that contains elements from the input sequence that satisfy 
-            the condition.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Where``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Boolean})">
-            <summary>
-            Filters in parallel a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function.
-            </summary>
-            <typeparam name="TSource">The type of the elements of source.</typeparam>
-            <param name="source">A sequence to filter.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>A sequence that contains elements from the input sequence that satisfy the condition.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Select``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Projects in parallel each element of a sequence into a new form.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TResult">The type of elements resturned by <b>selector</b>.</typeparam>
-            <param name="source">A sequence of values to invoke a transform function on.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>A sequence whose elements are the result of invoking the transform function on each 
-            element of <paramref name="source"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Select``2(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,``1})">
-            <summary>
-            Projects in parallel each element of a sequence into a new form by incorporating the element's index.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TResult">The type of elements resturned by <b>selector</b>.</typeparam>
-            <param name="source">A sequence of values to invoke a transform function on.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>A sequence whose elements are the result of invoking the transform function on each 
-            element of <paramref name="source"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Zip``3(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``1,``2})">
-            <summary>
-            Merges in parallel two sequences by using the specified predicate function.
-            </summary>
-            <typeparam name="TFirst">The type of the elements of the first sequence.</typeparam>
-            <typeparam name="TSecond">The type of the elements of the second sequence.</typeparam>
-            <typeparam name="TResult">The type of the return elements.</typeparam>
-            <param name="first">The first sequence to zip.</param>
-            <param name="second">The second sequence to zip.</param>
-            <param name="resultSelector">A function to create a result element from two matching elements.</param>
-            <returns>
-            A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
-            resultSelector pairwise on two sequences. If the sequence lengths are unequal, this truncates
-            to the length of the shorter sequence.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Zip``3(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``1,``2})">
-            <summary>
-            This Zip overload should never be called. 
-            This method is marked as obsolete and always throws 
-            <see cref="T:System.NotSupportedException"/> when invoked.
-            </summary>
-            <typeparam name="TFirst">This type parameter is not used.</typeparam>
-            <typeparam name="TSecond">This type parameter is not used.</typeparam>
-            <typeparam name="TResult">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <param name="resultSelector">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Zip with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Zip operator would appear to be bind to the parallel implementation, but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})">
-            <summary>
-            Correlates in parallel the elements of two sequences based on matching keys. 
-            The default equality comparer is used to compare keys.
-            </summary>
-            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
-            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
-            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
-            <typeparam name="TResult">The type of the result elements.</typeparam>
-            <param name="outer">The first sequence to join.</param>
-            <param name="inner">The sequence to join to the first sequence.</param>
-            <param name="outerKeySelector">A function to extract the join key from each element of 
-            the first sequence.</param>
-            <param name="innerKeySelector">A function to extract the join key from each element of 
-            the second sequence.</param>
-            <param name="resultSelector">A function to create a result element from two matching elements.</param>
-            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
-            an inner join on two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
-            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3})">
-            <summary>
-            This Join overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when invoked.
-            </summary>
-            <typeparam name="TOuter">This type parameter is not used.</typeparam>
-            <typeparam name="TInner">This type parameter is not used.</typeparam>
-            <typeparam name="TKey">This type parameter is not used.</typeparam>
-            <typeparam name="TResult">This type parameter is not used.</typeparam>
-            <param name="outer">This parameter is not used.</param>
-            <param name="inner">This parameter is not used.</param>
-            <param name="outerKeySelector">This parameter is not used.</param>
-            <param name="innerKeySelector">This parameter is not used.</param>
-            <param name="resultSelector">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage Join with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Join operator would appear to be binding to the parallel implementation, but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})">
-            <summary>
-            Correlates in parallel the elements of two sequences based on matching keys. 
-            A specified IEqualityComparer{T} is used to compare keys.
-            </summary>
-            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
-            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
-            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
-            <typeparam name="TResult">The type of the result elements.</typeparam>
-            <param name="outer">The first sequence to join.</param>
-            <param name="inner">The sequence to join to the first sequence.</param>
-            <param name="outerKeySelector">A function to extract the join key from each element 
-            of the first sequence.</param>
-            <param name="innerKeySelector">A function to extract the join key from each element 
-            of the second sequence.</param>
-            <param name="resultSelector">A function to create a result element from two matching elements.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to hash and compare keys.</param>
-            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
-            an inner join on two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
-            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Join``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,``1,``3},System.Collections.Generic.IEqualityComparer{``2})">
-            <summary>
-            This Join overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when invoked.
-            </summary>
-            <typeparam name="TOuter">This type parameter is not used.</typeparam>
-            <typeparam name="TInner">This type parameter is not used.</typeparam>
-            <typeparam name="TKey">This type parameter is not used.</typeparam>
-            <typeparam name="TResult">This type parameter is not used.</typeparam>
-            <param name="outer">This parameter is not used.</param>
-            <param name="inner">This parameter is not used.</param>
-            <param name="outerKeySelector">This parameter is not used.</param>
-            <param name="innerKeySelector">This parameter is not used.</param>
-            <param name="resultSelector">This parameter is not used.</param>
-            <param name="comparer">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Join with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Join operator would appear to be binding to the parallel implementation, but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})">
-            <summary>
-            Correlates in parallel the elements of two sequences based on equality of keys and groups the results. 
-            The default equality comparer is used to compare keys.
-            </summary>
-            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
-            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
-            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
-            <typeparam name="TResult">The type of the result elements.</typeparam>
-            <param name="outer">The first sequence to join.</param>
-            <param name="inner">The sequence to join to the first sequence.</param>
-            <param name="outerKeySelector">A function to extract the join key from each element 
-            of the first sequence.</param>
-            <param name="innerKeySelector">A function to extract the join key from each element 
-            of the second sequence.</param>
-            <param name="resultSelector">A function to create a result element from an element from 
-            the first sequence and a collection of matching elements from the second sequence.</param>
-            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
-            a grouped join on two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
-            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3})">
-             <summary>
-             This GroupJoin overload should never be called. 
-             This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-             </summary>
-             <typeparam name="TOuter">This type parameter is not used.</typeparam>
-             <typeparam name="TInner">This type parameter is not used.</typeparam>
-             <typeparam name="TKey">This type parameter is not used.</typeparam>
-             <typeparam name="TResult">This type parameter is not used.</typeparam>
-             <param name="outer">This parameter is not used.</param>
-             <param name="inner">This parameter is not used.</param>
-             <param name="outerKeySelector">This parameter is not used.</param>
-             <param name="innerKeySelector">This parameter is not used.</param>
-             <param name="resultSelector">This parameter is not used.</param>
-             <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-             <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-             <remarks>
-             This overload exists to disallow usage of GroupJoin with a left data source of type
-             <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-             Otherwise, the GroupJoin operator would appear to be binding to the parallel implementation, 
-             but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3},System.Collections.Generic.IEqualityComparer{``2})">
-            <summary>
-            Correlates in parallel the elements of two sequences based on key equality and groups the results. 
-            A specified IEqualityComparer{T} is used to compare keys.
-            </summary>
-            <typeparam name="TOuter">The type of the elements of the first sequence.</typeparam>
-            <typeparam name="TInner">The type of the elements of the second sequence.</typeparam>
-            <typeparam name="TKey">The type of the keys returned by the key selector functions.</typeparam>
-            <typeparam name="TResult">The type of the result elements.</typeparam>
-            <param name="outer">The first sequence to join.</param>
-            <param name="inner">The sequence to join to the first sequence.</param>
-            <param name="outerKeySelector">A function to extract the join key from each element 
-            of the first sequence.</param>
-            <param name="innerKeySelector">A function to extract the join key from each element 
-            of the second sequence.</param>
-            <param name="resultSelector">A function to create a result element from an element from 
-            the first sequence and a collection of matching elements from the second sequence.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to hash and compare keys.</param>
-            <returns>A sequence that has elements of type <typeparamref name="TResult"/> that are obtained by performing 
-            a grouped join on two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="outer"/> or <paramref name="inner"/> or <paramref name="outerKeySelector"/> or
-            <paramref name="innerKeySelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupJoin``4(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``2},System.Func{``1,``2},System.Func{``0,System.Collections.Generic.IEnumerable{``1},``3},System.Collections.Generic.IEqualityComparer{``2})">
-            <summary>
-            This GroupJoin overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TOuter">This type parameter is not used.</typeparam>
-            <typeparam name="TInner">This type parameter is not used.</typeparam>
-            <typeparam name="TKey">This type parameter is not used.</typeparam>
-            <typeparam name="TResult">This type parameter is not used.</typeparam>
-            <param name="outer">This parameter is not used.</param>
-            <param name="inner">This parameter is not used.</param>
-            <param name="outerKeySelector">This parameter is not used.</param>
-            <param name="innerKeySelector">This parameter is not used.</param>
-            <param name="resultSelector">This parameter is not used.</param>
-            <param name="comparer">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of GroupJoin with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the GroupJoin operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SelectMany``2(System.Linq.ParallelQuery{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}})">
-            <summary>
-            Projects in parallel each element of a sequence to an IEnumerable{T} 
-            and flattens the resulting sequences into one sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TResult">The type of the elements of the sequence returned by <B>selector</B>.</typeparam>
-            <param name="source">A sequence of values to project.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>A sequence whose elements are the result of invoking the one-to-many transform 
-            function on each element of the input sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SelectMany``2(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}})">
-            <summary>
-            Projects in parallel each element of a sequence to an IEnumerable{T}, and flattens the resulting 
-            sequences into one sequence. The index of each source element is used in the projected form of 
-            that element.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TResult">The type of the elements of the sequence returned by <B>selector</B>.</typeparam>
-            <param name="source">A sequence of values to project.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>A sequence whose elements are the result of invoking the one-to-many transform 
-            function on each element of the input sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SelectMany``3(System.Linq.ParallelQuery{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})">
-            <summary>
-            Projects each element of a sequence to an IEnumerable{T}, 
-            flattens the resulting sequences into one sequence, and invokes a result selector 
-            function on each element therein.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TCollection">The type of the intermediate elements collected by <paramref name="collectionSelector"/>.</typeparam>
-            <typeparam name="TResult"></typeparam>
-            <param name="source">A sequence of values to project.</param>
-            <param name="collectionSelector">A transform function to apply to each source element; 
-            the second parameter of the function represents the index of the source element.</param>
-            <param name="resultSelector">A function to create a result element from an element from 
-            the first sequence and a collection of matching elements from the second sequence.</param>
-            <returns>A sequence whose elements are the result of invoking the one-to-many transform 
-            function <paramref name="collectionSelector"/> on each element of <paramref name="source"/> and then mapping 
-            each of those sequence elements and their corresponding source element to a result element.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="collectionSelector"/> or
-            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SelectMany``3(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Collections.Generic.IEnumerable{``1}},System.Func{``0,``1,``2})">
-            <summary>
-            Projects each element of a sequence to an IEnumerable{T}, flattens the resulting 
-            sequences into one sequence, and invokes a result selector function on each element 
-            therein. The index of each source element is used in the intermediate projected 
-            form of that element.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TCollection">The type of the intermediate elements collected by 
-            <paramref name="collectionSelector"/>.</typeparam>
-            <typeparam name="TResult">The type of elements to return.</typeparam>
-            <param name="source">A sequence of values to project.</param>
-            <param name="collectionSelector">A transform function to apply to each source element; 
-            the second parameter of the function represents the index of the source element.</param>
-            <param name="resultSelector">A function to create a result element from an element from 
-            the first sequence and a collection of matching elements from the second sequence.</param>
-            <returns>
-            A sequence whose elements are the result of invoking the one-to-many transform 
-            function <paramref name="collectionSelector"/> on each element of <paramref name="source"/> and then mapping 
-            each of those sequence elements and their corresponding source element to a 
-            result element.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="collectionSelector"/> or
-            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.OrderBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Sorts in parallel the elements of a sequence in ascending order according to a key.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort. 
-            To achieve a stable sort, change a query of the form:
-            <code>var ordered = source.OrderBy((e) => e.k);</code>
-            to instead be formed as:
-            <code>var ordered = source.Select((e,i) => new { E=e, I=i }).OrderBy((v) => v.i).Select((v) => v.e);</code>
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">A sequence of values to order.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
-            according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.OrderBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
-            <summary>
-            Sorts in parallel the elements of a sequence in ascending order by using a specified comparer.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort.
-            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
-            an approach to implementing a stable sort.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">A sequence of values to order.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <param name="comparer">An IComparer{TKey} to compare keys.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted according 
-            to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.OrderByDescending``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Sorts in parallel the elements of a sequence in descending order according to a key.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort.
-            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
-            an approach to implementing a stable sort.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">A sequence of values to order.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
-            descending according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.OrderByDescending``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
-            <summary>
-            Sorts the elements of a sequence in descending order by using a specified comparer.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort.
-            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
-            an approach to implementing a stable sort.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">A sequence of values to order.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <param name="comparer">An IComparer{TKey} to compare keys.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted descending 
-            according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ThenBy``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Performs in parallel a subsequent ordering of the elements in a sequence 
-            in ascending order according to a key.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort.
-            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
-            an approach to implementing a stable sort.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">An OrderedParallelQuery{TSource} than 
-            contains elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are 
-            sorted according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ThenBy``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
-            <summary>
-            Performs in parallel a subsequent ordering of the elements in a sequence in 
-            ascending order by using a specified comparer.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort.
-            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
-            an approach to implementing a stable sort.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">An OrderedParallelQuery{TSource} that contains 
-            elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <param name="comparer">An IComparer{TKey} to compare keys.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
-            according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ThenByDescending``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Performs in parallel a subsequent ordering of the elements in a sequence in 
-            descending order, according to a key.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort.
-            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
-            an approach to implementing a stable sort.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">An OrderedParallelQuery{TSource} than contains 
-            elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
-            descending according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ThenByDescending``2(System.Linq.OrderedParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IComparer{``1})">
-            <summary>
-            Performs in parallel a subsequent ordering of the elements in a sequence in descending 
-            order by using a specified comparer.
-            </summary>
-            <remarks>
-            In contrast to the sequential implementation, this is not a stable sort.
-            See the remarks for OrderBy(ParallelQuery{TSource}, Func{TSource,TKey}) for 
-            an approach to implementing a stable sort.
-            </remarks>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">An OrderedParallelQuery{TSource} than contains 
-            elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <param name="comparer">An IComparer{TKey} to compare keys.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
-            descending according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Groups in parallel the elements of a sequence according to a specified key selector function.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">An OrderedParallelQuery{TSource}than contains 
-            elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <returns>An OrderedParallelQuery{TSource}whose elements are sorted 
-            descending according to a key.</returns>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Groups in parallel the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>>.</typeparam>
-            <param name="source">An OrderedParallelQuery{TSource} than contains 
-            elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <param name="comparer">An IComparer{TSource} to compare keys.</param>
-            <returns>An OrderedParallelQuery{TSource} whose elements are sorted 
-            descending according to a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2})">
-            <summary>
-            Groups in parallel the elements of a sequence according to a specified key selector function and 
-            projects the elements for each group by using a specified function.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the elements in the IGrouping</typeparam>
-            <param name="source">An OrderedParallelQuery&lt;(Of &lt;(TElement&gt;)&gt;) than contains 
-            elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <param name="elementSelector">A function to map each source element to an element in an  IGrouping.</param>
-            <returns>A ParallelQuery&lt;IGrouping&lt;TKey, TElement&gt;&gt; in C# or 
-            ParallelQuery(Of IGrouping(Of TKey, TElement)) in Visual Basic where each IGrouping 
-            generic object contains a collection of objects of type <typeparamref name="TElement"/> and a key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or
-            <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Groups in parallel the elements of a sequence according to a key selector function. 
-            The keys are compared by using a comparer and each group's elements are projected by 
-            using a specified function.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the elements in the IGrouping</typeparam>
-            <param name="source">An OrderedParallelQuery{TSource}than contains elements to sort.</param>
-            <param name="keySelector">A function to extract a key from an element.</param>
-            <param name="elementSelector">A function to map each source element to an element in an  IGrouping.</param>
-            <param name="comparer">An IComparer{TSource} to compare keys.</param>
-            <returns>
-            A ParallelQuery{IGrouping{TKey, TElement}} in C# or 
-            ParallelQuery(Of IGrouping(Of TKey, TElement)) in Visual Basic where each IGrouping 
-            generic object contains a collection of objects of type <typeparamref name="TElement"/> and a key.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or
-            <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2})">
-            <summary>
-            Groups in parallel the elements of a sequence according to a specified 
-            key selector function and creates a result value from each group and its key.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
-            <param name="source">A sequence whose elements to group.</param>
-            <param name="keySelector">A function to extract the key for each element.</param>
-            <param name="resultSelector">A function to create a result value from each group.</param>
-            <returns>A collection of elements of type <typeparamref name="TResult"/> where each element represents a 
-            projection over a group and its key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or
-            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``1,System.Collections.Generic.IEnumerable{``0},``2},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Groups in parallel the elements of a sequence according to a specified key selector function 
-            and creates a result value from each group and its key. The keys are compared 
-            by using a specified comparer.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
-            <param name="source">A sequence whose elements to group.</param>
-            <param name="keySelector">A function to extract the key for each element.</param>
-            <param name="resultSelector">A function to create a result value from each group.</param>
-            <param name="comparer">An IEqualityComparer{TKey} to compare keys.</param>
-            <returns>
-            An <B>ParallelQuery&lt;IGrouping&lt;TKey, TResult&gt;&gt;</B> in C# or 
-            <B>ParallelQuery(Of IGrouping(Of TKey, TResult))</B> in Visual Basic where each 
-            IGrouping&lt;(Of &lt;(TKey, TResult&gt;)&gt;) object contains a collection of objects 
-            of type <typeparamref name="TResult"/> and a key.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or
-            <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``4(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3})">
-            <summary>
-            Groups in parallel the elements of a sequence according to a specified key 
-            selector function and creates a result value from each group and its key. 
-            The elements of each group are projected by using a specified function.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the elements in each 
-            IGrouping{TKey, TElement}.</typeparam>
-            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
-            <param name="source">A sequence whose elements to group.</param>
-            <param name="keySelector">A function to extract the key for each element.</param>
-            <param name="elementSelector">A function to map each source element to an element in an 
-            IGrouping&lt;TKey, TElement&gt;.</param>
-            <param name="resultSelector">A function to create a result value from each group.</param>
-            <returns>A collection of elements of type <typeparamref name="TElement"/> where each element represents a 
-            projection over a group and its key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or
-            <paramref name="elementSelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.GroupBy``4(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Func{``1,System.Collections.Generic.IEnumerable{``2},``3},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Groups the elements of a sequence according to a specified key selector function and 
-            creates a result value from each group and its key. Key values are compared by using a 
-            specified comparer, and the elements of each group are projected by using a specified function.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the elements in each 
-            IGrouping{TKey, TElement}.</typeparam>
-            <typeparam name="TResult">The type of the result value returned by <paramref name="resultSelector"/>.</typeparam>
-            <param name="source">A sequence whose elements to group.</param>
-            <param name="keySelector">A function to extract the key for each element.</param>
-            <param name="elementSelector">A function to map each source element to an element in an 
-            IGrouping{Key, TElement}.</param>
-            <param name="resultSelector">A function to create a result value from each group.</param>
-            <param name="comparer">An IEqualityComparer{TKey} to compare keys.</param>
-            <returns>A collection of elements of type <typeparamref name="TResult"/> where each element represents a 
-            projection over a group and its key.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or
-            <paramref name="elementSelector"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.PerformSequentialAggregation``2(System.Linq.ParallelQuery{``0},``1,System.Boolean,System.Func{``1,``0,``1})">
-            <summary>
-            Run an aggregation sequentially. If the user-provided reduction function throws an exception, wrap
-            it with an AggregateException.
-            </summary>
-            <param name="source"></param>
-            <param name="seed"></param>
-            <param name="seedIsSpecified">
-            if true, use the seed provided in the method argument
-            if false, use the first element of the sequence as the seed instead
-            </param>
-            <param name="func"></param>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Aggregate``1(System.Linq.ParallelQuery{``0},System.Func{``0,``0,``0})">
-            <summary>
-            Applies in parallel an accumulator function over a sequence.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence to aggregate over.</param>
-            <param name="func">An accumulator function to be invoked on each element.</param>
-            <returns>The final accumulator value.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="func"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Aggregate``2(System.Linq.ParallelQuery{``0},``1,System.Func{``1,``0,``1})">
-            <summary>
-            Applies in parallel an accumulator function over a sequence. 
-            The specified seed value is used as the initial accumulator value.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
-            <param name="source">A sequence to aggregate over.</param>
-            <param name="seed">The initial accumulator value.</param>
-            <param name="func">An accumulator function to be invoked on each element.</param>
-            <returns>The final accumulator value.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="func"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Aggregate``3(System.Linq.ParallelQuery{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``2})">
-            <summary>
-            Applies in parallel an accumulator function over a sequence. The specified 
-            seed value is used as the initial accumulator value, and the specified 
-            function is used to select the result value.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
-            <typeparam name="TResult">The type of the resulting value.</typeparam>
-            <param name="source">A sequence to aggregate over.</param>
-            <param name="seed">The initial accumulator value.</param>
-            <param name="func">An accumulator function to be invoked on each element.</param>
-            <param name="resultSelector">A function to transform the final accumulator value 
-            into the result value.</param>
-            <returns>The transformed final accumulator value.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="func"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Aggregate``3(System.Linq.ParallelQuery{``0},``1,System.Func{``1,``0,``1},System.Func{``1,``1,``1},System.Func{``1,``2})">
-            <summary>
-            Applies in parallel an accumulator function over a sequence. This overload is not
-            available in the sequential implementation.
-            </summary>
-            <remarks>
-            This overload is specific to processing a parallelized query. A parallelized query may 
-            partition the data source sequence into several sub-sequences (partitions). 
-            The <paramref name="updateAccumulatorFunc"/> is invoked on each element within partitions. 
-            Each partition then yields a single accumulated result. The <paramref name="combineAccumulatorsFunc"/>
-            is then invoked on the results of each partition to yield a single element. This element is then
-            transformed by the <paramref name="resultSelector"/> function.
-            </remarks>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
-            <typeparam name="TResult">The type of the resulting value.</typeparam>
-            <param name="source">A sequence to aggregate over.</param>
-            <param name="seed">The initial accumulator value.</param>
-            <param name="updateAccumulatorFunc">
-            An accumulator function to be invoked on each element in a partition.
-            </param>
-            <param name="combineAccumulatorsFunc">
-            An accumulator function to be invoked on the yielded element from each partition.
-            </param>
-            <param name="resultSelector">
-            A function to transform the final accumulator value into the result value.
-            </param>
-            <returns>The transformed final accumulator value.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="updateAccumulatorFunc"/> 
-            or <paramref name="combineAccumulatorsFunc"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Aggregate``3(System.Linq.ParallelQuery{``0},System.Func{``1},System.Func{``1,``0,``1},System.Func{``1,``1,``1},System.Func{``1,``2})">
-            <summary>
-            Applies in parallel an accumulator function over a sequence.  This overload is not
-            available in the sequential implementation.
-            </summary>
-            <remarks>
-            This overload is specific to parallelized queries. A parallelized query may partition the data source sequence
-            into several sub-sequences (partitions). The <paramref name="updateAccumulatorFunc"/> is invoked 
-            on each element within partitions. Each partition then yields a single accumulated result. 
-            The <paramref name="combineAccumulatorsFunc"/>
-            is then invoked on the results of each partition to yield a single element. This element is then
-            transformed by the <paramref name="resultSelector"/> function.
-            </remarks>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TAccumulate">The type of the accumulator value.</typeparam>
-            <typeparam name="TResult">The type of the resulting value.</typeparam>
-            <param name="source">A sequence to aggregate over.</param>
-            <param name="seedFactory">
-            A function that returns the initial accumulator value.
-            </param>
-            <param name="updateAccumulatorFunc">
-            An accumulator function to be invoked on each element in a partition.
-            </param>
-            <param name="combineAccumulatorsFunc">
-            An accumulator function to be invoked on the yielded element from each partition. 
-            </param>
-            <param name="resultSelector">
-            A function to transform the final accumulator value into the result value.
-            </param>
-            <returns>The transformed final accumulator value.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="seedFactory"/> or <paramref name="updateAccumulatorFunc"/> 
-            or <paramref name="combineAccumulatorsFunc"/> or <paramref name="resultSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Count``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the number of elements in a parallel sequence.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence that contains elements to be counted.</param>
-            <returns>The number of elements in the input sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The number of elements in source is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Count``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns a number that represents how many elements in the specified 
-            parallel sequence satisfy a condition.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence that contains elements to be counted.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            A number that represents how many elements in the sequence satisfy the condition 
-            in the predicate function.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The number of elements in source is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.LongCount``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns an Int64 that represents the total number of elements in a parallel sequence.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence that contains elements to be counted.</param>
-            <returns>The number of elements in the input sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The number of elements in source is larger than <see cref="M:System.Int64.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.LongCount``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns an Int64 that represents how many elements in a parallel sequence satisfy a condition.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence that contains elements to be counted.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            A number that represents how many elements in the sequence satisfy the condition 
-            in the predicate function.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The number of elements in source is larger than <see cref="M:System.Int64.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Int32})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Int64})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Single})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Double})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Decimal})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
-            <summary>
-            Computes in parallel the sum of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Int64.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Sum``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
-            <summary>
-            Computes in parallel the sum of the sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to calculate the sum of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The sum of the values in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum is larger than <see cref="M:System.Decimal.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Int32})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Int64})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Single})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Double})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Decimal})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the minimum value in a parallel sequence of values.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements and <typeparamref name="TSource"/> is a non-nullable value type.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Min``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the minimum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TResult">The type of the value returned by <paramref name="selector"/>.</typeparam>
-            <param name="source">A sequence of values to determine the minimum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The minimum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements and <typeparamref name="TResult"/> is a non-nullable value type.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Int32})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Int64})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Single})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Double})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Decimal})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the maximum value in a parallel sequence of values.
-            </summary>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements and <typeparam name="TSource"/> is a non-nullable value type.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Max``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Invokes in parallel a transform function on each element of a 
-            sequence and returns the maximum value.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TResult">The type of the value returned by <paramref name="selector"/>.</typeparam>
-            <param name="source">A sequence of values to determine the maximum value of.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The maximum value in the sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements and <typeparamref name="TResult"/> is a non-nullable value type.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Int32})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Int32}})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Int64})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Int64}})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Single})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Single}})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Double})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Double}})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <exception cref="T:System.ArgumentNullException">
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Decimal})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average(System.Linq.ParallelQuery{System.Nullable{System.Decimal}})">
-            <summary>
-            Computes in parallel the average of a sequence of values.
-            </summary>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int32}})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int64})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int32.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Int64}})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            The sum or count of the elements in the sequence is larger than <see cref="M:System.Int64.MaxValue"/>.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Single})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Single}})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Double})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Double}})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Decimal})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Average``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Nullable{System.Decimal}})">
-            <summary>
-            Computes in parallel the average of a sequence of values that are obtained 
-            by invoking a transform function on each element of the input sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values that are used to calculate an average.</param>
-            <param name="selector">A transform function to apply to each element.</param>
-            <returns>The average of the sequence of values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="selector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Any``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Determines in parallel whether any element of a sequence satisfies a condition.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">An IEnumerable whose elements to apply the predicate to.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            true if any elements in the source sequence pass the test in the specified predicate; otherwise, false.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Any``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Determines whether a parallel sequence contains any elements.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The IEnumerable to check for emptiness.</param>
-            <returns>true if the source sequence contains any elements; otherwise, false.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.All``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Determines in parallel whether all elements of a sequence satisfy a condition.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence whose elements to apply the predicate to.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            true if all elements in the source sequence pass the test in the specified predicate; otherwise, false.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Contains``1(System.Linq.ParallelQuery{``0},``0)">
-            <summary>
-            Determines in parallel whether a sequence contains a specified element 
-            by using the default equality comparer.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence in which to locate a value.</param>
-            <param name="value">The value to locate in the sequence.</param>
-            <returns>
-            true if the source sequence contains an element that has the specified value; otherwise, false.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Contains``1(System.Linq.ParallelQuery{``0},``0,System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            Determines in parallel whether a sequence contains a specified element by using a 
-            specified IEqualityComparer{T}.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence in which to locate a value.</param>
-            <param name="value">The value to locate in the sequence.</param>
-            <param name="comparer">An equality comparer to compare values.</param>
-            <returns>
-            true if the source sequence contains an element that has the specified value; otherwise, false.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Take``1(System.Linq.ParallelQuery{``0},System.Int32)">
-            <summary>
-            Returns a specified number of contiguous elements from the start of a parallel sequence.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return elements from.</param>
-            <param name="count">The number of elements to return.</param>
-            <returns>
-            A sequence that contains the specified number of elements from the start of the input sequence.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.TakeWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns elements from a parallel sequence as long as a specified condition is true.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return elements from.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            A sequence that contains the elements from the input sequence that occur before 
-            the element at which the test no longer passes.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.TakeWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Boolean})">
-            <summary>
-            Returns elements from a parallel sequence as long as a specified condition is true. 
-            The element's index is used in the logic of the predicate function.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return elements from.</param>
-            <param name="predicate">
-            A function to test each source element for a condition; the second parameter of the 
-            function represents the index of the source element.
-            </param>
-            <returns>
-            A sequence that contains elements from the input sequence that occur before 
-            the element at which the test no longer passes.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Skip``1(System.Linq.ParallelQuery{``0},System.Int32)">
-            <summary>
-            Bypasses a specified number of elements in a parallel sequence and then returns the remaining elements.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return elements from.</param>
-            <param name="count">The number of elements to skip before returning the remaining elements.</param>
-            <returns>
-            A sequence that contains the elements that occur after the specified index in the input sequence.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SkipWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Bypasses elements in a parallel sequence as long as a specified 
-            condition is true and then returns the remaining elements.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return elements from.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>A sequence that contains the elements from the input sequence starting at 
-            the first element in the linear series that does not pass the test specified by 
-            <B>predicate</B>.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SkipWhile``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Int32,System.Boolean})">
-            <summary>
-            Bypasses elements in a parallel sequence as long as a specified condition is true and 
-            then returns the remaining elements. The element's index is used in the logic of 
-            the predicate function.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return elements from.</param>
-            <param name="predicate">
-            A function to test each source element for a condition; the 
-            second parameter of the function represents the index of the source element.
-            </param>
-            <returns>
-            A sequence that contains the elements from the input sequence starting at the 
-            first element in the linear series that does not pass the test specified by 
-            <B>predicate</B>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Concat``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
-            <summary>
-            Concatenates two parallel sequences.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">The first sequence to concatenate.</param>
-            <param name="second">The sequence to concatenate to the first sequence.</param>
-            <returns>A sequence that contains the concatenated elements of the two input sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Concat``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
-            <summary>
-            This Concat overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Concat with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Concat operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
-            <summary>
-            Determines whether two parallel sequences are equal by comparing the elements by using 
-            the default equality comparer for their type.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">A sequence to compare to <b>second</b>.</param>
-            <param name="second">A sequence to compare to the first input sequence.</param>
-            <returns>
-            true if the two source sequences are of equal length and their corresponding elements 
-            are equal according to the default equality comparer for their type; otherwise, false.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
-            <summary>
-            This SequenceEqual overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">Thrown every time this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of SequenceEqual with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the SequenceEqual operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            Determines whether two parallel sequences are equal by comparing their elements by 
-            using a specified IEqualityComparer{T}.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">A sequence to compare to <paramref name="second"/>.</param>
-            <param name="second">A sequence to compare to the first input sequence.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to use to compare elements.</param>
-            <returns>
-            true if the two source sequences are of equal length and their corresponding 
-            elements are equal according to the default equality comparer for their type; otherwise, false.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.DisposeEnumerator``1(System.Collections.Generic.IEnumerator{``0},System.Linq.Parallel.CancellationState)">
-            <summary>
-            A helper method for SequenceEqual to dispose an enumerator. If an exception is thrown by the disposal, 
-            it gets wrapped into an AggregateException, unless it is an OCE with the query's CancellationToken.
-            </summary>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SequenceEqual``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            This SequenceEqual overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <param name="comparer">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">Thrown every time this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of SequenceEqual with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the SequenceEqual operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Distinct``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns distinct elements from a parallel sequence by using the 
-            default equality comparer to compare values.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to remove duplicate elements from.</param>
-            <returns>A sequence that contains distinct elements from the source sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Distinct``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            Returns distinct elements from a parallel sequence by using a specified 
-            IEqualityComparer{T} to compare values.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to remove duplicate elements from.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
-            <returns>A sequence that contains distinct elements from the source sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
-            <summary>
-            Produces the set union of two parallel sequences by using the default equality comparer.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">A sequence whose distinct elements form the first set for the union.</param>
-            <param name="second">A sequence whose distinct elements form the second set for the union.</param>
-            <returns>A sequence that contains the elements from both input sequences, excluding duplicates.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
-            <summary>
-            This Union overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Union with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Union operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            Produces the set union of two parallel sequences by using a specified IEqualityComparer{T}.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">A sequence whose distinct elements form the first set for the union.</param>
-            <param name="second">A sequence whose distinct elements form the second set for the union.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
-            <returns>A sequence that contains the elements from both input sequences, excluding duplicates.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Union``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            This Union overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <param name="comparer">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Union with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Union operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
-            <summary>
-            Produces the set intersection of two parallel sequences by using the 
-            default equality comparer to compare values.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first"
-            >A sequence whose distinct elements that also appear in <paramref name="second"/> will be returned.
-            </param>
-            <param name="second">
-            A sequence whose distinct elements that also appear in the first sequence will be returned.
-            </param>
-            <returns>A sequence that contains the elements that form the set intersection of two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
-            <summary>
-            This Intersect overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Intersect with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Intersect operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            Produces the set intersection of two parallel sequences by using 
-            the specified IEqualityComparer{T} to compare values.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">
-            A sequence whose distinct elements that also appear in <paramref name="second"/> will be returned.
-            </param>
-            <param name="second">
-            A sequence whose distinct elements that also appear in the first sequence will be returned.
-            </param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
-            <returns>A sequence that contains the elements that form the set intersection of two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Intersect``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            This Intersect overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <param name="comparer">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Intersect with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Intersect operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0})">
-            <summary>
-            Produces the set difference of two parallel sequences by using 
-            the default equality comparer to compare values.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">
-            A sequence whose elements that are not also in <paramref name="second"/> will be returned.
-            </param>
-            <param name="second">
-            A sequence whose elements that also occur in the first sequence will cause those 
-            elements to be removed from the returned sequence.
-            </param>
-            <returns>A sequence that contains the set difference of the elements of two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0})">
-            <summary>
-            This Except overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Except with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Except operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Linq.ParallelQuery{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            Produces the set difference of two parallel sequences by using the 
-            specified IEqualityComparer{T} to compare values.
-            </summary>
-            <typeparam name="TSource">The type of the elements of the input sequences.</typeparam>
-            <param name="first">A sequence whose elements that are not also in <paramref name="second"/> will be returned.</param>
-            <param name="second">
-            A sequence whose elements that also occur in the first sequence will cause those elements 
-            to be removed from the returned sequence.
-            </param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare values.</param>
-            <returns>A sequence that contains the set difference of the elements of two sequences.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="first"/> or <paramref name="second"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Except``1(System.Linq.ParallelQuery{``0},System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEqualityComparer{``0})">
-            <summary>
-            This Except overload should never be called. 
-            This method is marked as obsolete and always throws <see cref="T:System.NotSupportedException"/> when called.
-            </summary>
-            <typeparam name="TSource">This type parameter is not used.</typeparam>
-            <param name="first">This parameter is not used.</param>
-            <param name="second">This parameter is not used.</param>
-            <param name="comparer">This parameter is not used.</param>
-            <returns>This overload always throws a <see cref="T:System.NotSupportedException"/>.</returns>
-            <exception cref="T:System.NotSupportedException">The exception that occurs when this method is called.</exception>
-            <remarks>
-            This overload exists to disallow usage of Except with a left data source of type
-            <see cref="T:System.Linq.ParallelQuery`1"/> and a right data source of type <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
-            Otherwise, the Except operator would appear to be binding to the parallel implementation, 
-            but would in reality bind to the sequential implementation.
-            </remarks>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.AsEnumerable``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Converts a <see cref="T:System.Linq.ParallelQuery`1"/> into an 
-            <see cref="T:System.Collections.Generic.IEnumerable`1"/> to force sequential
-            evaluation of the query.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to type as <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</param>
-            <returns>The input sequence types as <see cref="T:System.Collections.Generic.IEnumerable`1"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToArray``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Creates an array from a ParallelQuery{T}.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence to create an array from.</param>
-            <returns>An array that contains the elements from the input sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToList``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Creates a List{T} from an ParallelQuery{T}.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence to create a List&lt;(Of &lt;(T&gt;)&gt;) from.</param>
-            <returns>A List&lt;(Of &lt;(T&gt;)&gt;) that contains elements from the input sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Creates a Dictionary{TKey,TValue} from a ParallelQuery{T} according to 
-            a specified key selector function.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <returns>A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains keys and values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
-            -or-
-            <paramref name="keySelector"/> produces duplicate keys for two elements.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Creates a Dictionary{TKey,TValue} from a ParallelQuery{T} according to a 
-            specified key selector function and key comparer.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
-            <returns>A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains keys and values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
-            -or-
-            <paramref name="keySelector"/> produces duplicate keys for two elements.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2})">
-            <summary>
-            Creates a Dictionary{TKey,TValue} from a ParallelQuery{T} according to specified 
-            key selector and element selector functions.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
-            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <param name="elementSelector">
-            A transform function to produce a result element value from each element.
-            </param>
-            <returns>
-            A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains values of type <typeparamref name="TElement"/> 
-            selected from the input sequence
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
-            -or-
-            <paramref name="keySelector"/> produces duplicate keys for two elements.
-            -or- 
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToDictionary``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Creates a Dictionary{TKey,TValue from a ParallelQuery{T} according to a 
-            specified key selector function, a comparer, and an element selector function.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
-            <param name="source">A sequence to create a Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <param name="elementSelector">A transform function to produce a result element 
-            value from each element.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
-            <returns>
-            A Dictionary&lt;(Of &lt;(TKey, TValue&gt;)&gt;) that contains values of type <typeparamref name="TElement"/> 
-            selected from the input sequence
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            <paramref name="keySelector"/> produces a key that is a null reference (Nothing in Visual Basic).
-            -or-
-            <paramref name="keySelector"/> produces duplicate keys for two elements.
-            -or-
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToLookup``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1})">
-            <summary>
-            Creates an ILookup{TKey,T} from a ParallelQuery{T} according to a specified key selector function.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <returns>A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains keys and values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToLookup``2(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Creates an ILookup{TKey,T} from a ParallelQuery{T} according to a specified 
-            key selector function and key comparer.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
-            <returns>A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains keys and values.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToLookup``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2})">
-            <summary>
-            Creates an ILookup{TKey,TElement} from a ParallelQuery{T} according to specified 
-            key selector and element selector functions.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
-            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <param name="elementSelector">
-            A transform function to produce a result element value from each element.
-            </param>
-            <returns>
-            A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains values of type TElement 
-            selected from the input sequence.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ToLookup``3(System.Linq.ParallelQuery{``0},System.Func{``0,``1},System.Func{``0,``2},System.Collections.Generic.IEqualityComparer{``1})">
-            <summary>
-            Creates an ILookup{TKey,TElement} from a ParallelQuery{T} according to 
-            a specified key selector function, a comparer and an element selector function.
-            </summary>
-            <typeparam name="TSource">The type of elements of <paramref name="source"/>.</typeparam>
-            <typeparam name="TKey">The type of the key returned by <paramref name="keySelector"/>.</typeparam>
-            <typeparam name="TElement">The type of the value returned by <paramref name="elementSelector"/>.</typeparam>
-            <param name="source">The sequence to create a Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) from.</param>
-            <param name="keySelector">A function to extract a key from each element.</param>
-            <param name="elementSelector">
-            A transform function to produce a result element value from each element.
-            </param>
-            <param name="comparer">An IEqualityComparer&lt;(Of &lt;(T&gt;)&gt;) to compare keys.</param>
-            <returns>
-            A Lookup&lt;(Of &lt;(TKey, TElement&gt;)&gt;) that contains values of type TElement selected 
-            from the input sequence.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="keySelector"/> or <paramref name="elementSelector"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Reverse``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Inverts the order of the elements in a parallel sequence.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence of values to reverse.</param>
-            <returns>A sequence whose elements correspond to those of the input sequence in reverse order.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.OfType``1(System.Linq.ParallelQuery)">
-            <summary>
-            Filters the elements of a ParallelQuery based on a specified type.
-            </summary>
-            <typeparam name="TResult">The type to filter the elements of the sequence on.</typeparam>
-            <param name="source">The sequence whose elements to filter.</param>
-            <returns>A sequence that contains elements from the input sequence of type <typeparamref name="TResult"/>.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Cast``1(System.Linq.ParallelQuery)">
-            <summary>
-            Converts the elements of a ParallelQuery to the specified type.
-            </summary>
-            <typeparam name="TResult">The type to convert the elements of <paramref name="source"/> to.</typeparam>
-            <param name="source">The sequence that contains the elements to be converted.</param>
-            <returns>
-            A sequence that contains each element of the source sequence converted to the specified type.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.First``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the first element of a parallel sequence.</summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the first element of.</param>
-            <returns>The first element in the specified sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.First``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns the first element in a parallel sequence that satisfies a specified condition.
-            </summary>
-            <remarks>There's a temporary difference from LINQ to Objects, this does not throw
-            ArgumentNullException when the predicate is null.</remarks>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return an element from.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>The first element in the sequence that passes the test in the specified predicate function.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            No element in <paramref name="source"/> satisfies the condition in <paramref name="predicate"/>.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.FirstOrDefault``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the first element of a parallel sequence, or a default value if the 
-            sequence contains no elements.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the first element of.</param>
-            <returns>
-            default(<B>TSource</B>) if <paramref name="source"/> is empty; otherwise, the first element in <paramref name="source"/>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.FirstOrDefault``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns the first element of the parallel sequence that satisfies a condition or a 
-            default value if no such element is found.
-            </summary>
-            <remarks>There's a temporary difference from LINQ to Objects, this does not throw
-            ArgumentNullException when the predicate is null.</remarks>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return an element from.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            default(<B>TSource</B>) if <paramref name="source"/> is empty or if no element passes the test 
-            specified by <B>predicate</B>; otherwise, the first element in <paramref name="source"/> that 
-            passes the test specified by <B>predicate</B>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Last``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the last element of a parallel sequence.</summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the last element from.</param>
-            <returns>The value at the last position in the source sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            <paramref name="source"/> contains no elements.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Last``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns the last element of a parallel sequence that satisfies a specified condition.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return an element from.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            The last element in the sequence that passes the test in the specified predicate function.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            No element in <paramref name="source"/> satisfies the condition in <paramref name="predicate"/>.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.LastOrDefault``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the last element of a parallel sequence, or a default value if the 
-            sequence contains no elements.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return an element from.</param>
-            <returns>
-            default(<typeparamref name="TSource"/>) if the source sequence is empty; otherwise, the last element in the sequence.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.LastOrDefault``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns the last element of a parallel sequence that satisfies a condition, or 
-            a default value if no such element is found.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return an element from.</param>
-            <param name="predicate">A function to test each element for a condition.</param>
-            <returns>
-            default(<typeparamref name="TSource"/>) if the sequence is empty or if no elements pass the test in the 
-            predicate function; otherwise, the last element that passes the test in the predicate function.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Single``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the only element of a parallel sequence, and throws an exception if there is not 
-            exactly one element in the sequence.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the single element of.</param>
-            <returns>The single element of the input sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            The input sequence contains more than one element. -or- The input sequence is empty.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.Single``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns the only element of a parallel sequence that satisfies a specified condition, 
-            and throws an exception if more than one such element exists.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the single element of.</param>
-            <param name="predicate">A function to test an element for a condition.</param>
-            <returns>The single element of the input sequence that satisfies a condition.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.InvalidOperationException">
-            No element satisfies the condition in <paramref name="predicate"/>. -or- More than one element satisfies the condition in <paramref name="predicate"/>.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SingleOrDefault``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the only element of a parallel sequence, or a default value if the sequence is 
-            empty; this method throws an exception if there is more than one element in the sequence.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the single element of.</param>
-            <returns>
-            The single element of the input sequence, or default(<typeparamref name="TSource"/>) if the 
-            sequence contains no elements.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.SingleOrDefault``1(System.Linq.ParallelQuery{``0},System.Func{``0,System.Boolean})">
-            <summary>
-            Returns the only element of a parallel sequence that satisfies a specified condition 
-            or a default value if no such element exists; this method throws an exception 
-            if more than one element satisfies the condition.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the single element of.</param>
-            <param name="predicate">A function to test an element for a condition.</param>
-            <returns>
-            The single element of the input sequence that satisfies the condition, or 
-            default(<typeparamref name="TSource"/>) if no such element is found.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> or <paramref name="predicate"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.DefaultIfEmpty``1(System.Linq.ParallelQuery{``0})">
-            <summary>
-            Returns the elements of the specified parallel sequence or the type parameter's 
-            default value in a singleton collection if the sequence is empty.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return a default value for if it is empty.</param>
-            <returns>
-            A sequence that contains default(<B>TSource</B>) if <paramref name="source"/> is empty; otherwise, <paramref name="source"/>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.DefaultIfEmpty``1(System.Linq.ParallelQuery{``0},``0)">
-            <summary>
-            Returns the elements of the specified parallel sequence or the specified value 
-            in a singleton collection if the sequence is empty.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">The sequence to return the specified value for if it is empty.</param>
-            <param name="defaultValue">The value to return if the sequence is empty.</param>
-            <returns>
-            A sequence that contains <B>defaultValue</B> if <paramref name="source"/> is empty; otherwise, <paramref name="source"/>.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ElementAt``1(System.Linq.ParallelQuery{``0},System.Int32)">
-            <summary>
-            Returns the element at a specified index in a parallel sequence.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence to return an element from.</param>
-            <param name="index">The zero-based index of the element to retrieve.</param>
-            <returns>The element at the specified position in the source sequence.</returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.ArgumentOutOfRangeException">
-            <paramref name="index"/> is less than 0 or greater than or equal to the number of elements in <paramref name="source"/>.
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="M:System.Linq.ParallelEnumerable.ElementAtOrDefault``1(System.Linq.ParallelQuery{``0},System.Int32)">
-            <summary>
-            Returns the element at a specified index in a parallel sequence or a default value if the 
-            index is out of range.
-            </summary>
-            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
-            <param name="source">A sequence to return an element from.</param>
-            <param name="index">The zero-based index of the element to retrieve.</param>
-            <returns>
-            default(<B>TSource</B>) if the index is outside the bounds of the source sequence; 
-            otherwise, the element at the specified position in the source sequence.
-            </returns>
-            <exception cref="T:System.ArgumentNullException">
-            <paramref name="source"/> is a null reference (Nothing in Visual Basic).
-            </exception>
-            <exception cref="T:System.AggregateException">
-            One or more exceptions occurred during the evaluation of the query.
-            </exception>
-            <exception cref="T:System.OperationCanceledException">
-            The query was canceled.
-            </exception>
-        </member>
-        <member name="T:System.Linq.ParallelMergeOptions">
-            <summary>
-            Specifies the preferred type of output merge to use in a query. This is a hint only, and may not be
-            respected by the system when parallelizing all queries.
-            </summary>
-            <remarks>
-            <para>
-            Use <b>NotBuffered</b> for queries that will be consumed and output as streams, this has the lowest latency
-            between beginning query execution and elements being yielded. For some queries, such as those involving a 
-            sort (OrderBy, OrderByDescending), buffering is essential and a hint of NotBuffered or AutoBuffered will 
-            be ignored.
-            </para>
-            <para>
-            Use <b>AutoBuffered</b> for most cases; this is the default.  It strikes a balance between latency and
-            overall performance.
-            </para>
-            <para>
-            Use <b>FullyBuffered</b> for queries when the entire output can be processed before the information is 
-            needed. This option offers the best performance when all of the output can be accumulated before yielding
-            any information, though it is not suitable for stream processing or showing partial results mid-query.
-            </para>
-            </remarks>
-        </member>
-        <member name="F:System.Linq.ParallelMergeOptions.Default">
-            <summary>
-            Use the default merge type, which is AutoBuffered.
-            </summary>
-        </member>
-        <member name="F:System.Linq.ParallelMergeOptions.NotBuffered">
-            <summary>
-            Use a merge without output buffers. As soon as result elements have been computed, 
-            make that element available to the consumer of the query.
-            </summary>
-        </member>
-        <member name="F:System.Linq.ParallelMergeOptions.AutoBuffered">
-            <summary>
-            Use a merge with output buffers of a size chosen by the system. Results
-            will accumulate into an output buffer before they are available to the consumer of
-            the query.
-            </summary>
-        </member>
-        <member name="F:System.Linq.ParallelMergeOptions.FullyBuffered">
-            <summary>
-            Use a merge with full output buffers. The system will accumulate all of the
-            results before making any of them available to the consumer of the query.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.AsynchronousChannel`1">
-            <summary>
-            This is a bounded channel meant for single-producer/single-consumer scenarios. 
-            </summary>
-            <typeparam name="T">Specifies the type of data in the channel.</typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.SynchronousChannel`1">
-             <summary>
-             The simplest channel is one that has no synchronization.  This is used for stop-
-             and-go productions where we are guaranteed the consumer is not running
-             concurrently. It just wraps a FIFO queue internally.
-            
-             Assumptions:
-                 Producers and consumers never try to enqueue/dequeue concurrently.
-             </summary>
-             <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.EmptyEnumerable`1">
-            <summary>
-            We occassionally need a no-op enumerator to stand-in when we don't have data left
-            within a partition's data stream. These are simple enumerable and enumerator
-            implementations that always and consistently yield no elements.
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.ParallelQuery`1">
-            <summary>
-            Represents a parallel sequence.
-            </summary>
-        </member>
-        <member name="T:System.Linq.ParallelQuery">
-            <summary>
-            Represents a parallel sequence.
-            </summary>
-        </member>
-        <member name="M:System.Linq.ParallelQuery.System#Collections#IEnumerable#GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through the sequence.
-            </summary>
-            <returns>An enumerator that iterates through the sequence.</returns>
-        </member>
-        <member name="M:System.Linq.ParallelQuery`1.GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through the sequence.
-            </summary>
-            <returns>An enumerator that iterates through the sequence.</returns>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryOperatorEnumerator`2">
-            <summary>
-            A common enumerator type that unifies all query operator enumerators. 
-            </summary>
-            <typeparam name="TElement"></typeparam>
-            <typeparam name="TKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.EnumerableWrapperWeakToStrong">
-            <summary>
-            A simple implementation of the IEnumerable{object} interface which wraps
-            a weakly typed IEnumerable object, allowing it to be accessed as a strongly typed
-            IEnumerable{object}.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.IParallelPartitionable`1">
-             <summary>
-             
-             An interface that allows developers to specify their own partitioning routines.
-            
-             </summary>
-             <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ParallelEnumerableWrapper">
-            <summary>
-            A simple implementation of the ParallelQuery{object} interface which wraps an
-            underlying IEnumerable, such that it can be used in parallel queries.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.ParallelEnumerableWrapper`1">
-            <summary>
-            A simple implementation of the ParallelQuery{T} interface which wraps an
-            underlying IEnumerable{T}, such that it can be used in parallel queries.
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryAggregationOptions">
-            <summary>
-            An enum to specify whether an aggregate operator is associative, commutative,
-            neither, or both. This influences query analysis and execution: associative
-            aggregations can run in parallel, whereas non-associative cannot; non-commutative
-            aggregations must be run over data in input-order. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.RangeEnumerable">
-            <summary>
-            A simple enumerable type that implements the range algorithm. It also supports
-            partitioning of the indices by implementing an interface that PLINQ recognizes.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.RepeatEnumerable`1">
-            <summary>
-            A simple enumerable type that implements the repeat algorithm. It also supports
-            partitioning of the count space by implementing an interface that PLINQ recognizes.
-            </summary>
-            <typeparam name="TResult"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ArrayMergeHelper`1">
-            <summary>
-            A special merge helper for indexible queries. Given an indexible query, we know how many elements
-            we'll have in the result set, so we can allocate the array ahead of time. Then, as each result element
-            is produced, we can directly insert it into the appropriate position in the output array, paying
-            no extra cost for ordering.
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.IMergeHelper`1">
-            <summary>
-            Used as a stand-in for replaceable merge algorithms. Alternative implementations
-            are chosen based on the style of merge required. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.#ctor(System.Linq.Parallel.QuerySettings,System.Linq.Parallel.QueryResults{`0})">
-            <summary>
-            Instantiates the array merge helper.
-            </summary>
-            <param name="settings">The query settings</param>
-            <param name="queryResults">The query results</param>
-        </member>
-        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.ToArrayElement(System.Int32)">
-            <summary>
-            A method used as a delegate passed into the ForAll operator
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.Execute">
-            <summary>
-            Schedules execution of the merge itself.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.GetEnumerator">
-            <summary>
-            Gets the enumerator over the results.
-            
-            We never expect this method to be called. ArrayMergeHelper is intended to be used when we want
-            to consume the results using GetResultsAsArray().
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ArrayMergeHelper`1.GetResultsAsArray">
-            <summary>
-            Returns the merged results as an array.
-            </summary>
-            <returns></returns>
-        </member>
-        <member name="T:System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1">
-             <summary>
-             An enumerator that merges multiple one-to-one channels into a single output
-             stream, including any necessary blocking and synchronization. This is an
-             asynchronous enumerator, i.e. the producers may be inserting items into the
-             channels concurrently with the consumer taking items out of them. Therefore,
-             enumerating this object can cause the current thread to block.
-            
-             We use a biased choice algorithm to choose from our consumer channels. I.e. we
-             will prefer to process elements in a fair round-robin fashion, but will
-             occassionally bypass this if a channel is empty.
-            
-             </summary>
-             <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.MergeEnumerator`1">
-            <summary>
-            Convenience class used by enumerators that merge many partitions into one. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1.WaitAny(System.Threading.ManualResetEventSlim[])">
-            <summary>
-            WaitAny simulates a Win32-style WaitAny on the set of thin-events.
-            </summary>
-            <param name="events">An array of thin-events (null elements permitted)</param>
-            <returns>The index of the specific event in events that caused us to wake up.</returns>
-        </member>
-        <member name="T:System.Linq.Parallel.DefaultMergeHelper`2">
-            <summary>
-            The default merge helper uses a set of straightforward algorithms for output
-            merging. Namely, for synchronous merges, the input data is yielded from the
-            input data streams in "depth first" left-to-right order. For asynchronous merges,
-            on the other hand, we use a biased choice algorithm to favor input channels in
-            a "fair" way. No order preservation is carried out by this helper. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-            <typeparam name="TIgnoreKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.MergeExecutor`1">
-            <summary>
-            Drives execution of an actual merge operation, including creating channel data
-            structures and scheduling parallel work as appropriate. The algorithms used
-            internally are parameterized based on the type of data in the partitions; e.g.
-            if an order preserved stream is found, the merge will automatically use an
-            order preserving merge, and so forth. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderPreservingMergeHelper`2">
-            <summary>
-            The order preserving merge helper guarantees the output stream is in a specific order. This is done
-            by comparing keys from a set of already-sorted input partitions, and coalescing output data using
-            incremental key comparisons.
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-            <typeparam name="TKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1">
-            <summary>
-            A merge helper that yields results in a streaming fashion, while still ensuring correct output
-            ordering. This merge only works if each producer task generates outputs in the correct order,
-            i.e. with an Increasing (or Correct) order index.
-            
-            The merge creates DOP producer tasks, each of which will be  writing results into a separate
-            buffer.
-            
-            The consumer always waits until each producer buffer contains at least one element. If we don't
-            have one element from each producer, we cannot yield the next element. (If the order index is 
-            Correct, or in some special cases with the Increasing order, we could yield sooner. The
-            current algorithm does not take advantage of this.)
-            
-            The consumer maintains a producer heap, and uses it to decide which producer should yield the next output
-            result. After yielding an element from a particular producer, the consumer will take another element
-            from the same producer. However, if the producer buffer exceeded a particular threshold, the consumer
-            will take the entire buffer, and give the producer an empty buffer to fill.
-            
-            Finally, if the producer notices that its buffer has exceeded an even greater threshold, it will
-            go to sleep and wait until the consumer takes the entire buffer.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.INITIAL_BUFFER_SIZE">
-            <summary>
-            The initial capacity of the buffer queue. The value was chosen experimentally.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.STEAL_BUFFER_SIZE">
-            <summary>
-            If the consumer notices that the queue reached this limit, it will take the entire buffer from
-            the producer, instead of just popping off one result. The value was chosen experimentally.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.MAX_BUFFER_SIZE">
-            <summary>
-            If the producer notices that the queue reached this limit, it will go to sleep until woken up
-            by the consumer. Chosen experimentally.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_autoBuffered">
-            <summary>
-            Whether the producer is allowed to buffer up elements before handing a chunk to the consumer.
-            If false, the producer will make each result available to the consumer immediately after it is
-            produced.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_buffers">
-            <summary>
-            Buffers for the results. Each buffer has elements added by one producer, and removed
-            by the consumer.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_producerDone">
-            <summary>
-            Whether each producer is done producing. Set to true by individual producers, read by consumer.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_producerWaiting">
-            <summary>
-            Whether a particular producer is waiting on the consumer. Read by the consumer, set to true
-            by producers, set to false by the consumer.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_consumerWaiting">
-            <summary>
-             Whether the consumer is waiting on a particular producer. Read by producers, set to true
-             by consumer, set to false by producer.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.m_bufferLocks">
-            <summary>
-            Each object is a lock protecting the corresponding elements in m_buffers, m_producerDone, 
-            m_producerWaiting and m_consumerWaiting.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.s_producerComparer">
-            <summary>
-            A singleton instance of the comparer used by the producer heap. Eager allocation is OK 
-            because if the static constructor runs, we will be using this merge.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.Producer">
-            <summary>
-            A structure to represent a producer in the producer heap.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.ProducerComparer">
-            <summary>
-            A comparer used by FixedMaxHeap(Of Producer)
-            
-            This comparer will be used by max-heap. We want the producer with the smallest MaxKey to
-            end up in the root of the heap.
-            
-                x.MaxKey GREATER_THAN y.MaxKey  =>  x LESS_THAN y     => return -
-                x.MaxKey EQUALS y.MaxKey        =>  x EQUALS y        => return 0
-                x.MaxKey LESS_THAN y.MaxKey     =>  x GREATER_THAN y  => return +
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator">
-            <summary>
-            Enumerator over the results of an order-preserving pipelining merge.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_mergeHelper">
-            <summary>
-            Merge helper associated with this enumerator
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_producerHeap">
-            <summary>
-            Heap used to efficiently locate the producer whose result should be consumed next.
-            For each producer, stores the order index for the next element to be yielded.
-            
-            Read and written by the consumer only.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_producerNextElement">
-            <summary>
-            Stores the next element to be yielded from each producer. We use a separate array
-            rather than storing this information in the producer heap to keep the Producer struct 
-            small.
-            
-            Read and written by the consumer only.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_privateBuffer">
-            <summary>
-            A private buffer for the consumer. When the size of a producer buffer exceeds a threshold 
-            (STEAL_BUFFER_SIZE), the consumer will take ownership of the entire buffer, and give the
-            producer a new empty buffer to place results into.
-            
-            Read and written by the consumer only.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.m_initialized">
-            <summary>
-            Tracks whether MoveNext() has already been called previously.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.#ctor(System.Linq.Parallel.OrderPreservingPipeliningMergeHelper{`0})">
-            <summary>
-            Constructor
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.MoveNext">
-            <summary>
-            Moves the enumerator to the next result, or returns false if there are no more results to yield.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.ThrowIfInTearDown">
-            <summary>
-            If the cancellation of the query has been initiated (because one or more producers
-            encountered exceptions, or because external cancellation token has been set), the method 
-            will tear down the query and rethrow the exception.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.TryWaitForElement(System.Int32,System.Linq.Parallel.Pair{System.Int32,`0}@)">
-            <summary>
-            Wait until a producer's buffer is non-empty, or until that producer is done.
-            </summary>
-            <returns>false if there is no element to yield because the producer is done, true otherwise</returns>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.TryGetPrivateElement(System.Int32,System.Linq.Parallel.Pair{System.Int32,`0}@)">
-            <summary>
-            Looks for an element from a particular producer in the consumer's private buffer.
-            </summary>
-        </member>
-        <member name="P:System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`1.OrderedPipeliningMergeEnumerator.Current">
-            <summary>
-            Returns the current result
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.SynchronousChannelMergeEnumerator`1">
-            <summary>
-            This enumerator merges multiple input channels into a single output stream. The merging process just
-            goes from left-to-right, enumerating each channel in succession in its entirety.
-            Assumptions:
-                Before enumerating this object, all producers for all channels must have finished enqueueing new
-                elements.
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.HashRepartitionEnumerator`3">
-            <summary>
-            This enumerator handles the actual coordination among partitions required to
-            accomplish the repartitioning operation, as explained above.
-            </summary>
-            <typeparam name="TInputOutput">The kind of elements.</typeparam>
-            <typeparam name="THashKey">The key used to distribute elements.</typeparam>
-            <typeparam name="TIgnoreKey">The kind of keys found in the source (ignored).</typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.HashRepartitionStream`3">
-             <summary>
-             A repartitioning stream must take input data that has already been partitioned and
-             redistribute its contents based on a new partitioning algorithm. This is accomplished
-             by making each partition p responsible for redistributing its input data to the
-             correct destination partition. Some input elements may remain in p, but many will now
-             belong to a different partition and will need to move. This requires a great deal of
-             synchronization, but allows threads to repartition data incrementally and in parallel.
-             Each partition will "pull" data on-demand instead of partitions "pushing" data, which
-             allows us to reduce some amount of synchronization overhead.
-            
-             We currently only offer one form of reparitioning via hashing.  This used to be an
-             abstract base class, but we have eliminated that to get rid of some virtual calls on
-             hot code paths.  Uses a key selection algorithm with mod'ding to determine destination.
-            
-             @TODO: @BUG#519: consider adding a bound to the buffers. Unfortunately this can quite easily
-                 lead to deadlock when multiple repartitions are involved. Need a solution.
-             @TODO: @BUG#504: consider amortizing synchronization overhead by enqueueing/dequeueing in chunks
-                 rather than single elements. Also need to be careful not to introduce deadlock.
-             </summary>
-             <typeparam name="TInputOutput"></typeparam>
-             <typeparam name="THashKey"></typeparam>
-             <typeparam name="TOrderKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.PartitionedStream`2">
-             <summary>
-             A partitioned stream just partitions some data source using an extensible 
-             partitioning algorithm and exposes a set of N enumerators that are consumed by
-             their ordinal index [0..N). It is used to build up a set of streaming computations.
-             At instantiation time, the actual data source to be partitioned is supplied; and
-             then the caller will layer on top additional enumerators to represent phases in the
-             computation. Eventually, a merge can then schedule enumeration of all of the
-             individual partitions in parallel by obtaining references to the individual
-             partition streams.
-            
-             This type has a set of subclasses which implement different partitioning algorithms,
-             allowing us to easily plug in different partitioning techniques as needed. The type
-             supports wrapping IEnumerables and IEnumerators alike, with some preference for the
-             former as many partitioning algorithms are more intelligent for certain data types.
-             </summary>
-             <typeparam name="TElement"></typeparam>
-             <typeparam name="TKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.IPartitionedStreamRecipient`1">
-            <summary>
-            IPartitionedStreamRecipient is essentially a generic action on a partitioned stream,
-            whose generic type parameter is the type of the order keys in the partitioned stream.
-            </summary>
-            <typeparam name="TElement"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderedHashRepartitionEnumerator`3">
-            <summary>
-            This enumerator handles the actual coordination among partitions required to
-            accomplish the repartitioning operation, as explained above.  In addition to that,
-            it tracks order keys so that order preservation can flow through the enumerator.
-            </summary>
-            <typeparam name="TInputOutput">The kind of elements.</typeparam>
-            <typeparam name="THashKey">The key used to distribute elements.</typeparam>
-            <typeparam name="TOrderKey">The kind of keys found in the source.</typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.PartitionedDataSource`1">
-             <summary>
-             Contiguous range chunk partitioning attempts to improve data locality by keeping
-             data close together in the incoming data stream together in the outgoing partitions.
-             There are really three types of partitions that are used internally:
-            
-                 1. If the data source is indexable--like an array or List_T--we can actually
-                    just compute the range indexes and avoid doing any copying whatsoever. Each
-                    "partition" is just an enumerator that will walk some subset of the data.
-                 2. If the data source has an index (different than being indexable!), we can
-                    turn this into a range scan of the index. We can roughly estimate distribution
-                    and ensure an evenly balanced set of partitions.
-                    @TODO: @BUG#516: we don't have indexes today. We are considering it for the future.
-                 3. If we can't use 1 or 2, we instead partition "on demand" by chunking the contents
-                    of the source enumerator as they are requested. The unfortunate thing is that
-                    this requires synchronization, since consumers may be running in parallel. We
-                    amortize the cost of this by giving chunks of items when requested instead of
-                    one element at a time. Note that this approach also works for infinite streams.
-            
-             In all cases, the caller can request that enumerators walk elements in striped
-             contiguous chunks. If striping is requested, then each partition j will yield elements
-             in the data source for which ((i / s)%p) == j, where i is the element's index, s is
-             a chunk size calculated by the system with the intent of aligning on cache lines, and
-             p is the number of partitions. If striping is not requested, we use the same algorith,
-             only, instead of aligning on cache lines, we use a chunk size of l / p, where l
-             is the length of the input and p is the number of partitions.
-            
-             Notes:
-                 This is used as the default partitioning strategy by much of the PLINQ infrastructure.
-             </summary>
-             <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.AssociativeAggregationOperator`3">
-             <summary>
-             The aggregation operator is a little unique, in that the enumerators it returns
-             yield intermediate results instead of the final results. That's because there is
-             one last Aggregate operation that must occur in order to perform the final reduction
-             over the intermediate streams. In other words, the intermediate enumerators produced
-             by this operator are never seen by other query operators or consumers directly.
-            
-             An aggregation performs parallel prefixing internally. Given a binary operator O,
-             it will generate intermediate results by folding O across partitions; then it
-             performs a final reduction by folding O accross the intermediate results. The
-             analysis engine knows about associativity and commutativity, and will ensure the
-             style of partitioning inserted into the tree is compatable with the operator.
-            
-             For instance, say O is + (meaning it is AC), our input is {1,2,...,8}, and we
-             use 4 partitions to calculate the aggregation. Sequentially this would look
-             like this O(O(O(1,2),...),8), in other words ((1+2)+...)+8. The parallel prefix
-             of this (w/ 4 partitions) instead calculates the intermediate aggregations, i.e.:
-             t1 = O(1,2), t2 = O(3,4), ... t4 = O(7,8), aka t1 = 1+2, t2 = 3+4, t4 = 7+8.
-             The final step is to aggregate O over these intermediaries, i.e.
-             O(O(O(t1,t2),t3),t4), or ((t1+t2)+t3)+t4. This generalizes to any binary operator.
-            
-             Beause some aggregations use a different input, intermediate, and output types,
-             we support an even more generalized aggregation type. In this model, we have
-             three operators, an intermediate (used for the incremental aggregations), a
-             final (used for the final summary of intermediate results), and a result selector
-             (used to perform whatever transformation is needed on the final summary).
-             </summary>
-             <typeparam name="TInput"></typeparam>
-             <typeparam name="TIntermediate"></typeparam>
-             <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.UnaryQueryOperator`2">
-            <summary>
-            The base class from which all binary query operators derive, that is, those that
-            have two child operators. This introduces some convenience methods for those
-            classes, as well as any state common to all subclasses.
-            </summary>
-            <typeparam name="TInput"></typeparam>
-            <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryOperator`1">
-             <summary>
-             This is the abstract base class for all query operators in the system. It
-             implements the ParallelQuery{T} type so that it can be bound as the source
-             of parallel queries and so that it can be returned as the result of parallel query
-             operations. Not much is in here, although it does serve as the "entry point" for
-             opening all query operators: it will lazily analyze and cache a plan the first
-             time the tree is opened, and will open the tree upon calls to GetEnumerator.
-            
-             Notes:
-                 This class implements ParallelQuery so that any parallel query operator
-                 can bind to the parallel query provider overloads. This allows us to string
-                 together operators w/out the user always specifying AsParallel, e.g.
-                 Select(Where(..., ...), ...), and so forth. 
-             </summary>
-             <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryResults`1">
-             <summary>
-             The QueryResults{T} is a class representing the results of the query. There may
-             be different ways the query results can be manipulated. Currently, two ways are
-             supported:
-            
-             1. Open the query results as a partitioned stream by calling GivePartitionedStream
-                and pass a generic action as an argument.
-                
-             2. Access individual elements of the results list by calling GetElement(index) and
-                ElementsCount. This method of accessing the query results is available only if
-                IsIndexible return true. 
-             </summary>
-             <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1">
-            <summary>
-            A QueryOperator that represents the output of the query partitioner.AsParallel().
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.PartitionerQueryOperator`1.GetOrdinalIndexState(System.Collections.Concurrent.Partitioner{`0})">
-            <summary>
-            Determines the OrdinalIndexState for a partitioner 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1.PartitionerQueryOperatorResults">
-            <summary>
-            QueryResults for a PartitionerQueryOperator
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1.OrderablePartitionerEnumerator">
-            <summary>
-            Enumerator that converts an enumerator over key-value pairs exposed by a partitioner
-            to a QueryOperatorEnumerator used by PLINQ internally.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.PartitionerQueryOperator`1.PartitionerEnumerator">
-            <summary>
-            Enumerator that converts an enumerator over key-value pairs exposed by a partitioner
-            to a QueryOperatorEnumerator used by PLINQ internally.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.ScanQueryOperator`1">
-            <summary>
-            A scan is just a simple operator that is positioned directly on top of some
-            real data source. It's really just a place holder used during execution and
-            analysis -- it should never actually get opened.
-            </summary>
-            <typeparam name="TElement"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ExceptQueryOperator`1">
-            <summary>
-            Operator that yields the elements from the first data source that aren't in the second.
-            This is known as the set relative complement, i.e. left - right. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.BinaryQueryOperator`3">
-            <summary>
-            The base class from which all binary query operators derive, that is, those that
-            have two child operators. This introduces some convenience methods for those
-            classes, as well as any state common to all subclasses. 
-            </summary>
-            <typeparam name="TLeftInput"></typeparam>
-            <typeparam name="TRightInput"></typeparam>
-            <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.GroupJoinQueryOperator`4">
-            <summary>
-            A group join operator takes a left query tree and a right query tree, and then yields
-            the matching elements between the two. This can be used for outer joins, i.e. those
-            where an outer element has no matching inner elements -- the result is just an empty
-            list. As with the join algorithm above, we currently use a hash join algorithm.
-            </summary>
-            <typeparam name="TLeftInput"></typeparam>
-            <typeparam name="TRightInput"></typeparam>
-            <typeparam name="TKey"></typeparam>
-            <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.HashJoinQueryOperatorEnumerator`5">
-             <summary>
-             This enumerator implements the hash-join algorithm as noted earlier.
-            
-             Assumptions:
-                 This enumerator type won't work properly at all if the analysis engine didn't
-                 ensure a proper hash-partition. We expect inner and outer elements with equal
-                 keys are ALWAYS in the same partition. If they aren't (e.g. if the analysis is
-                 busted) we'll silently drop items on the floor. :( 
-                 
-                 
-              This is the enumerator class for two operators:
-               - Join
-               - GroupJoin
-             </summary>
-             <typeparam name="TLeftInput"></typeparam>
-             <typeparam name="TLeftKey"></typeparam>
-             <typeparam name="TRightInput"></typeparam>
-             <typeparam name="THashKey"></typeparam>
-             <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.IntersectQueryOperator`1">
-            <summary>
-            Operator that yields the intersection of two data sources. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.JoinQueryOperator`4">
-             <summary>
-             A join operator takes a left query tree and a right query tree, and then yields the
-             matching pairs between the two. LINQ supports equi-key-based joins. Hence, a key-
-             selection function for the left and right data types will yield keys of the same
-             type for both. We then merely have to match elements from the left with elements from
-             the right that have the same exact key. Note that this is an inner join. In other
-             words, outer elements with no matching inner elements do not appear in the output.
-            
-             @TODO: @BUG#528: Currently we implement only a hash-join algorithm. Furthermore, we always
-                 choose the inner data source for the hash-table creation. There is room for
-                 optimization and different algorithm choices eventually.
-            
-             Hash-joins work in two phases:
-            
-                (1) Building - we build a hash-table from one of the data sources. In the case
-                        of this specific operator, the table is built from the hash-codes of
-                        keys selected via the key selector function. Because elements may share
-                        the same key, the table must support one-key-to-many-values.
-                (2) Probing - for each element in the data source not used for building, we
-                        use its key to look into the hash-table. If we find elements under this
-                        key, we just enumerate all of them, yielding them as join matches.
-            
-             Because hash-tables exhibit on average O(1) lookup, we turn what would have been
-             an O(n*m) algorithm -- in the case of nested loops joins -- into an O(n) algorithm.
-             We of course require some additional storage to do so, but in general this pays.
-             </summary>
-             <typeparam name="TLeftInput"></typeparam>
-             <typeparam name="TRightInput"></typeparam>
-             <typeparam name="TKey"></typeparam>
-             <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.UnionQueryOperator`1">
-            <summary>
-            Operator that yields the union of two data sources. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ZipQueryOperator`3">
-            <summary>
-            A Zip operator combines two input data sources into a single output stream,
-            using a pairwise element matching algorithm. For example, the result of zipping
-            two vectors a = {0, 1, 2, 3} and b = {9, 8, 7, 6} is the vector of pairs,
-            c = {(0,9), (1,8), (2,7), (3,6)}. Because the expectation is that each element
-            is matched with the element in the other data source at the same ordinal
-            position, the zip operator requires order preservation. 
-            </summary>
-            <typeparam name="TLeftInput"></typeparam>
-            <typeparam name="TRightInput"></typeparam>
-            <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.PartitionedStreamMerger`1">
-            <summary>
-            Partitioned stream recipient that will merge the results. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryOpeningEnumerator`1">
-            <summary>
-            A wrapper enumerator that just opens the query operator when MoveNext() is called for the
-            first time. We use QueryOpeningEnumerator to call QueryOperator.GetOpenedEnumerator()
-            lazily because once GetOpenedEnumerator() is called, PLINQ starts precomputing the
-            results of the query.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.QueryOpeningEnumerator`1.OpenQuery">
-            <summary>
-            Opens the query and initializes m_openedQueryEnumerator and m_querySettings.
-            Called from the first MoveNext call.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.CountAggregationOperator`1">
-            <summary>
-            An inlined count aggregation and its enumerator. 
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.InlinedAggregationOperator`3">
-            <summary>
-            This class is common to all of the "inlined" versions of various aggregations.  The
-            inlined operators ensure that real MSIL instructions are used to perform elementary
-            operations versus general purpose delegate-based binary operators.  For obvious reasons
-            this is a quite bit more efficient, although it does lead to a fair bit of unfortunate
-            code duplication. 
-            </summary>
-            <typeparam name="TSource"></typeparam>
-            <typeparam name="TIntermediate"></typeparam>
-            <typeparam name="TResult"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.InlinedAggregationOperatorEnumerator`1">
-            <summary>
-            A class with some shared implementation between all aggregation enumerators. 
-            </summary>
-            <typeparam name="TIntermediate"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.DecimalAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for decimals. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.DecimalMinMaxAggregationOperator">
-            <summary>
-            An inlined min/max aggregation and its enumerator, for decimals.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.DecimalSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for decimals. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.DoubleAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for doubles.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.DoubleMinMaxAggregationOperator">
-             <summary>
-             An inlined min/max aggregation and its enumerator, for doubles.
-            
-             Notes:
-                 Note that normally double.NaN &lt; anything is false, as is anything &lt; NaN.  This would
-                 lead to some strangeness in Min and Max, e.g. Min({ NaN, 5.0 } == NaN, yet
-                 Min({ 5.0, NaN }) == 5.0!  We impose a total ordering so that NaN is smaller than
-                 everything, including -infinity, which is consistent with Comparer_T. 
-             </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.DoubleSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for doubles. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.FloatAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for floats. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.FloatMinMaxAggregationOperator">
-            <summary>
-            An inlined min/max aggregation and its enumerator, for floats.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.FloatSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for floats. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.IntAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for ints. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.IntMinMaxAggregationOperator">
-            <summary>
-            An inlined min/max aggregation and its enumerator, for ints. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.IntSumAggregationOperator">
-            <summary>
-            Inlined aggregations for summing up primitives (int, long, float, double, decimal), as
-            well as the nullable versions of each (int?, long?, float?, double?, decimal?). 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.LongAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for longs. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.LongCountAggregationOperator`1">
-            <summary>
-            An inlined count aggregation and its enumerator. 
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.LongMinMaxAggregationOperator">
-            <summary>
-            An inlined min/max aggregation and its enumerator, for longs. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.LongSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for longs. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableDecimalAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for Nullable decimals.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableDecimalMinMaxAggregationOperator">
-            <summary>
-            An inlined min/max aggregation and its enumerator, for Nullable decimals. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableDecimalSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for nullable decimals. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableDoubleAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for Nullable doubles.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableDoubleMinMaxAggregationOperator">
-             <summary>
-             An inlined min/max aggregation and its enumerator, for Nullable{Double}s.
-            
-             Notes:
-                 Note that normally double.NaN &lt; anything is false, as is anything &lt; NaN.  This would
-                 lead to some strangeness in Min and Max, e.g. Min({ NaN, 5.0 } == NaN, yet
-                 Min({ 5.0, NaN }) == 5.0!  We impose a total ordering so that NaN is smaller than
-                 everything, including -infinity, which is consistent with Comparer_T. 
-             </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableDoubleSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for nullable doubles. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableFloatAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for Nullable floats.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableFloatMinMaxAggregationOperator">
-             <summary>
-             An inlined min/max aggregation and its enumerator, for Nullable floats.
-            
-             Notes:
-                 Note that normally float.NaN &lt; anything is false, as is anything &lt; NaN.  This would
-                 lead to some strangeness in Min and Max, e.g. Min({ NaN, 5.0 } == NaN, yet
-                 Min({ 5.0, NaN }) == 5.0!  We impose a total ordering so that NaN is smaller than
-                 everything, including -infinity, which is consistent with Comparer_T.
-             </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableFloatSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for Nullable floats. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableIntAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for Nullable ints. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableIntMinMaxAggregationOperator">
-            <summary>
-            An inlined min/max aggregation and its enumerator, for Nullable ints. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableIntSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for Nullable ints. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableLongAverageAggregationOperator">
-            <summary>
-            An inlined average aggregation operator and its enumerator, for Nullable longs. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableLongMinMaxAggregationOperator">
-            <summary>
-            An inlined min/max aggregation and its enumerator, for Nullable{Int64}s. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NullableLongSumAggregationOperator">
-            <summary>
-            An inlined sum aggregation and its enumerator, for Nullable longs. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.ListQueryResults`1">
-            <summary>
-            Class to represent an IList{T} as QueryResults{T} 
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.OrdinalIndexState">
-            <summary>
-            Describes the state of order preservation index associated with an enumerator. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.QuerySettings">
-            <summary>
-            This type contains query execution options specified by the user.
-            QuerySettings are used as follows:
-            - in the query construction phase, some settings may be uninitialized.
-            - at the start of the query opening phase, the WithDefaults method
-              is used to initialize all uninitialized settings.
-            - in the rest of the query opening phase, we assume that all settings
-              have been initialized.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderingQueryOperator`1">
-            <summary>
-            Represents operators AsOrdered and AsUnordered. In the current implementation, it
-            simply turns on preservation globally in the query. 
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryExecutionOption`1">
-            <summary>
-            Represents operators that set various query execution options. 
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.AnyAllSearchOperator`1">
-             <summary>
-             The any/all operators work the same way. They search for the occurrence of a predicate
-             value in the data source, and upon the first occurrence of such a value, yield a
-             particular value. Specifically:
-            
-                 - Any returns true if the predicate for any element evaluates to true.
-                 - All returns false if the predicate for any element evaluates to false.
-            
-             This uniformity is used to apply a general purpose algorithm. Both sentences above
-             take the form of "returns XXX if the predicate for any element evaluates to XXX."
-             Therefore, we just parameterize on XXX, called the qualifciation below, and if we
-             ever find an occurrence of XXX in the input data source, we also return XXX. Otherwise,
-             we return !XXX. Obviously, XXX in this case is a bool.
-            
-             This is a search algorithm. So once any single partition finds an element, it will
-             return so that execution can stop. This is done with a "cancelation" flag that is
-             polled by all parallel workers. The first worker to find an answer sets it, and all
-             other workers notice it and quit as quickly as possible.
-             </summary>
-             <typeparam name="TInput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ConcatQueryOperator`1">
-            <summary>
-            Concatenates one data source with another.  Order preservation is used to ensure
-            the output is actually a concatenation -- i.e. one after the other.  The only
-            special synchronization required is to find the largest index N in the first data
-            source so that the indices of elements in the second data source can be offset
-            by adding N+1.  This makes it appear to the order preservation infrastructure as
-            though all elements in the second came after all elements in the first, which is
-            precisely what we want.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ContainsSearchOperator`1">
-            <summary>
-            Contains is quite similar to the any/all operator above. Each partition searches a
-            subset of elements for a match, and the first one to find a match signals to the rest
-            of the partititons to stop searching.
-            </summary>
-            <typeparam name="TInput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.DefaultIfEmptyQueryOperator`1">
-            <summary>
-            This operator just exposes elements directly from the underlying data source, if
-            it's not empty, or yields a single default element if the data source is empty.
-            There is a minimal amount of synchronization at the beginning, until all partitions
-            have registered whether their stream is empty or not. Once the 0th partition knows
-            that at least one other partition is non-empty, it may proceed. Otherwise, it is
-            the 0th partition which yields the default value.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.DistinctQueryOperator`1">
-            <summary>
-            This operator yields all of the distinct elements in a single data set. It works quite
-            like the above set operations, with the obvious difference being that it only accepts
-            a single data source as input. 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ElementAtQueryOperator`1">
-            <summary>
-            ElementAt just retrieves an element at a specific index.  There is some cross-partition
-            coordination to force partitions to stop looking once a partition has found the
-            sought-after element.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.ElementAtQueryOperator`1.Aggregate(`0@,System.Boolean)">
-            <summary>
-            Executes the query, either sequentially or in parallel, depending on the query execution mode and
-            whether a premature merge was inserted by this ElementAt operator.
-            </summary>
-            <param name="result">result</param>
-            <param name="withDefaultValue">withDefaultValue</param>
-            <returns>whether an element with this index exists</returns>
-        </member>
-        <member name="T:System.Linq.Parallel.FirstQueryOperator`1">
-            <summary>
-            First tries to discover the first element in the source, optionally matching a
-            predicate.  All partitions search in parallel, publish the lowest index for a
-            candidate match, and reach a barrier.  Only the partition that "wins" the race,
-            i.e. who found the candidate with the smallest index, will yield an element.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ForAllOperator`1">
-            <summary>
-            A forall operator just enables an action to be placed at the "top" of a query tree
-            instead of yielding an enumerator that some consumer can walk. We execute the
-            query for effect instead of yielding a data result. 
-            </summary>
-            <typeparam name="TInput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.GroupByQueryOperator`3">
-            <summary>
-            The operator type for GroupBy statements. This operator groups the input based on
-            a key-selection routine, yielding one-to-many values of key-to-elements. The
-            implementation is very much like the hash join operator, in which we first build
-            a big hashtable of the input; then we just iterate over each unique key in the
-            hashtable, yielding it plus all of the elements with the same key.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-            <typeparam name="TGroupKey"></typeparam>
-            <typeparam name="TElement"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderedGroupByGrouping`3">
-            <summary>
-            An ordered version of the grouping data structure. Represents an ordered group of elements that
-            have the same grouping key.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderedGroupByGrouping`3.#ctor(`0,System.Collections.Generic.IComparer{`1})">
-            <summary>
-            Constructs a new grouping
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderedGroupByGrouping`3.Add(`2,`1)">
-            <summary>
-            Add an element
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderedGroupByGrouping`3.DoneAdding">
-            <summary>
-            No more elements will be added, so we can sort the group now.
-            </summary>
-        </member>
-        <member name="P:System.Linq.Parallel.OrderedGroupByGrouping`3.System#Linq#IGrouping{TGroupKey@TElement}#Key">
-            <summary>
-            The key this grouping represents.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.IndexedSelectQueryOperator`2">
-             <summary>
-             A variant of the Select operator that supplies element index while performing the
-             projection operation. This requires cooperation with partitioning and merging to
-             guarantee ordering is preserved.
-            
-             @TODO: @PERF: @BUG#527: as an optimization, we strictly don't need order to be preserved
-                  all the way until the merge. If ordering is only kept for THIS operator, we
-                  can subsequently get rid of order preservation after executing. 
-             </summary>
-             <typeparam name="TInput"></typeparam>
-             <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.IndexedWhereQueryOperator`1">
-             <summary>
-             A variant of the Where operator that supplies element index while performing the
-             filtering operation. This requires cooperation with partitioning and merging to
-             guarantee ordering is preserved.
-            
-             @TODO: @PERF: @BUG#527: as an optimization, we strictly don't need order to be preserved
-                  all the way until the merge. If ordering is only kept for THIS operator, we
-                  can subsequently get rid of order preservation after executing. 
-             </summary>
-             <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.LastQueryOperator`1">
-             <summary>
-             Last tries to discover the last element in the source, optionally matching a
-             predicate.  All partitions search in parallel, publish the greatest index for a
-             candidate match, and reach a barrier.  Only the partition that "wins" the race,
-             i.e. who found the candidate with the largest index, will yield an element.
-            
-             @TODO: @PERF: @BUG#414: this traverses the data source in forward-order.  In the future, we
-                 will want to traverse in reverse order, since this allows partitions to stop
-                 the search sooner (by watching if the current index passes below the current best).
-            
-             </summary>
-             <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ReverseQueryOperator`1">
-            <summary>
-            Reverse imposes ordinal order preservation. There are normally two phases to this
-            operator's execution.  Each partition first builds a buffer containing all of its
-            elements, and then proceeds to yielding the elements in reverse.  There is a
-            'barrier' (but not a blocking barrier) in between these two steps, at which point the largest index becomes
-            known.  This is necessary so that when elements from the buffer are yielded, the
-            CurrentIndex can be reported as the largest index minus the original index (thereby
-            reversing the indices as well as the elements themselves).  If the largest index is
-            known a priori, because we have an array for example, we can avoid the barrier in
-            between the steps.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.SelectManyQueryOperator`3">
-             <summary>
-             SelectMany is effectively a nested loops join. It is given two data sources, an
-             outer and an inner -- actually, the inner is sometimes calculated by invoking a
-             function for each outer element -- and we walk the outer, walking the entire
-             inner enumerator for each outer element. There is an optional result selector
-             function which can transform the output before yielding it as a result element.
-            
-             Notes:
-                 Although select many takes two enumerable objects as input, it appears to the
-                 query analysis infrastructure as a unary operator. That's because it works a
-                 little differently than the other binary operators: it has to re-open the right
-                 child every time an outer element is walked. The right child is NOT partitioned. 
-             </summary>
-             <typeparam name="TLeftInput"></typeparam>
-             <typeparam name="TRightInput"></typeparam>
-             <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStreamNotIndexed``1(System.Linq.Parallel.PartitionedStream{`0,``0},System.Linq.Parallel.IPartitionedStreamRecipient{`2},System.Linq.Parallel.QuerySettings)">
-            <summary>
-            A helper method for WrapPartitionedStream. We use the helper to reuse a block of code twice, but with
-            a different order key type. (If premature merge occured, the order key type will be "int". Otherwise, 
-            it will be the same type as "TLeftKey" in WrapPartitionedStream.)
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.SelectManyQueryOperator`3.WrapPartitionedStreamIndexed(System.Linq.Parallel.PartitionedStream{`0,System.Int32},System.Linq.Parallel.IPartitionedStreamRecipient{`2},System.Linq.Parallel.QuerySettings)">
-            <summary>
-            Similar helper method to WrapPartitionedStreamNotIndexed, except that this one is for the indexed variant
-            of SelectMany (i.e., the SelectMany that passes indices into the user sequence-generating delegate)
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.SelectQueryOperator`2">
-            <summary>
-            The operator type for Select statements. This operator transforms elements as it
-            enumerates them through the use of a selector delegate. 
-            </summary>
-            <typeparam name="TInput"></typeparam>
-            <typeparam name="TOutput"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.SingleQueryOperator`1">
-            <summary>
-            Single searches the input to find the sole element that satisfies the (optional)
-            predicate.  If multiple such elements are found, the caller is responsible for
-            producing an error.  There is some degree of cross-partition synchronization to
-            proactively hault the search if we ever determine there are multiple elements
-            satisfying the search in the input.
-            </summary>
-            <typeparam name="TSource"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.SortQueryOperator`2">
-            <summary>
-            The query operator for OrderBy and ThenBy.
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-            <typeparam name="TSortKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.TakeOrSkipQueryOperator`1">
-            <summary>
-            Take and Skip either take or skip a specified number of elements, captured in the
-            count argument.  These will work a little bit like TakeWhile and SkipWhile: there
-            are two phases, (1) Search and (2) Yield.  In the search phase, our goal is to
-            find the 'count'th index from the input.  We do this in parallel by sharing a count-
-            sized array.  Each thread races to populate the array with indices in ascending
-            order.  This requires synchronization for inserts.  We use a simple heap, for decent
-            worst case performance.  After a thread has scanned ‘count’ elements, or its current
-            index is greater than or equal to the maximum index in the array (and the array is
-            fully populated), the thread can stop searching.  All threads issue a barrier before
-            moving to the Yield phase.  When the Yield phase is entered, the count-1th element
-            of the array contains: in the case of Take, the maximum index (exclusive) to be
-            returned; or in the case of Skip, the minimum index (inclusive) to be returned.  The
-            Yield phase simply consists of yielding these elements as output.
-            </summary>
-            <typeparam name="TResult"></typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.TakeOrSkipQueryOperator`1.OutputOrdinalIndexState">
-            <summary>
-            Determines the order index state for the output operator
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1">
-             <summary>
-             Take- and SkipWhile work similarly. Execution is broken into two phases: Search
-             and Yield.
-            
-             During the Search phase, many partitions at once search for the first occurrence
-             of a false element.  As they search, any time a partition finds a false element
-             whose index is lesser than the current lowest-known false element, the new index
-             will be published, so other partitions can stop the search.  The search stops
-             as soon as (1) a partition exhausts its input, (2) the predicate yields false for
-             one of the partition's elements, or (3) its input index passes the current lowest-
-             known index (sufficient since a given partition's indices are always strictly
-             incrementing -- asserted below).  Elements are buffered during this process.
-            
-             Partitions use a barrier after Search and before moving on to Yield.  Once all
-             have passed the barrier, Yielding begins.  At this point, the lowest-known false
-             index will be accurate for the entire set, since all partitions have finished
-             scanning.  This is where TakeWhile and SkipWhile differ.  TakeWhile will start at
-             the beginning of its buffer and yield all elements whose indices are less than
-             the lowest-known false index.  SkipWhile, on the other hand, will skipp any such
-             elements in the buffer, yielding those whose index is greater than or equal to
-             the lowest-known false index, and then finish yielding any remaining elements in
-             its data source (since it may have stopped prematurely due to (3) above).
-             </summary>
-             <typeparam name="TResult"></typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1.OutputOrderIndexState">
-            <summary>
-            Determines the order index state for the output operator
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.WhereQueryOperator`1">
-            <summary>
-            The operator type for Where statements. This operator filters out elements that
-            don't match a filter function (supplied at instantiation time). 
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-        </member>
-        <member name="F:System.Linq.Parallel.CancellationState.POLL_INTERVAL">
-            <summary>
-            Poll frequency (number of loops per cancellation check) for situations where per-1-loop testing is too high an overhead. 
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.CancellationState.ThrowIfCanceled(System.Threading.CancellationToken)">
-            <summary>
-            Throws an OCE if the merged token has been canceled.
-            </summary>
-            <param name="token">A token to check for cancelation.</param>
-        </member>
-        <member name="T:System.Linq.Parallel.SpoolingTaskBase">
-            <summary>
-            A spooling task handles marshaling data from a producer to a consumer. It simply
-            takes data from a producer and hands it off to a consumer. This class is the base
-            class from which other concrete spooling tasks derive, encapsulating some common
-            logic (such as capturing exceptions).
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryTask">
-            <summary>
-            Simple abstract task representation, allowing either synchronous and asynchronous
-            execution. Subclasses override the Work API to implement the logic.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.PRODUCER_BUFFER_AUTO_SIZE">
-            <summary>
-            The number of elements to accumulate on the producer before copying the elements to the 
-            producer-consumer buffer. This constant is only used in the AutoBuffered mode.
-            
-            Experimentally, 16 appears to be sufficient buffer size to compensate for the synchronization
-            cost.
-            </summary>
-        </member>
-        <member name="F:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.m_autoBuffered">
-            <summary>
-            Whether the producer is allowed to buffer up elements before handing a chunk to the consumer.
-            If false, the producer will make each result available to the consumer immediately after it is
-            produced.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.#ctor(System.Linq.Parallel.QueryOperatorEnumerator{`0,System.Int32},System.Linq.Parallel.QueryTaskGroupState,System.Boolean[],System.Boolean[],System.Boolean[],System.Int32,System.Collections.Generic.Queue{System.Linq.Parallel.Pair{System.Int32,`0}}[],System.Object,System.Threading.Tasks.TaskScheduler,System.Boolean)">
-            <summary>
-            Constructor
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.SpoolingWork">
-            <summary>
-            This method is responsible for enumerating results and enqueueing them to
-            the output buffer as appropriate.  Each base class implements its own.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.Spool(System.Linq.Parallel.QueryTaskGroupState,System.Linq.Parallel.PartitionedStream{`0,System.Int32},System.Boolean[],System.Boolean[],System.Boolean[],System.Collections.Generic.Queue{System.Linq.Parallel.Pair{System.Int32,`0}}[],System.Object[],System.Threading.Tasks.TaskScheduler,System.Boolean)">
-            <summary>
-            Creates and begins execution of a new set of spooling tasks.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`1.SpoolingFinally">
-            <summary>
-            Dispose the underlying enumerator and wake up the consumer if necessary.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.OrderPreservingSpoolingTask`2">
-            <summary>
-            A spooling task handles marshaling data from a producer to a consumer. It's given
-            a single enumerator object that contains all of the production algorithms, a single
-            destination channel from which consumers draw results, and (optionally) a
-            synchronization primitive using which to notify asynchronous consumers. This
-            particular task variant preserves sort order in the final data.
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-            <typeparam name="TKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.QueryTaskGroupState">
-            <summary>
-            A collection of tasks used by a single query instance. This type also offers some
-            convenient methods for tracing significant ETW events, waiting on tasks, propagating
-            exceptions, and performing cancellation activities.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.SpoolingTask">
-            <summary>
-            A factory class to execute spooling logic.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.StopAndGoSpoolingTask`2">
-            <summary>
-            A spooling task handles marshaling data from a producer to a consumer. It's given
-            a single enumerator object that contains all of the production algorithms, a single
-            destination channel from which consumers draw results, and (optionally) a
-            synchronization primitive using which to notify asynchronous consumers.
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-            <typeparam name="TIgnoreKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.PipelineSpoolingTask`2">
-            <summary>
-            A spooling task handles marshaling data from a producer to a consumer. It's given
-            a single enumerator object that contains all of the production algorithms, a single
-            destination channel from which consumers draw results, and (optionally) a
-            synchronization primitive using which to notify asynchronous consumers.
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-            <typeparam name="TIgnoreKey"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ForAllSpoolingTask`2">
-            <summary>
-            A spooling task handles marshaling data from a producer to a consumer. It's given
-            a single enumerator object that contains all of the production algorithms, a single
-            destination channel from which consumers draw results, and (optionally) a
-            synchronization primitive using which to notify asynchronous consumers.
-            </summary>
-            <typeparam name="TInputOutput"></typeparam>
-            <typeparam name="TIgnoreKey"></typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.CancellableEnumerable.Wrap``1(System.Collections.Generic.IEnumerable{``0},System.Threading.CancellationToken)">
-            <summary>
-            Wraps an enumerable with a cancellation checker. The enumerator handed out by the source enumerable
-            will be wrapped by an object that periodically checks whether a particular cancellation token has
-            been cancelled. If so, the next call to MoveNext() will throw an OperationCancelledException.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ExceptionAggregator.WrapEnumerable``1(System.Collections.Generic.IEnumerable{``0},System.Linq.Parallel.CancellationState)">
-            <summary>
-            WrapEnumerable.ExceptionAggregator wraps the enumerable with another enumerator that will
-            catch exceptions, and wrap each with an AggregateException.
-            
-            If PLINQ decides to execute a query sequentially, we will reuse LINQ-to-objects
-            implementations for the different operators. However, we still need to throw
-            AggregateException in the cases when parallel execution would have thrown an
-            AggregateException. Thus, we introduce a wrapper enumerator that catches exceptions
-            and wraps them with an AggregateException.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ExceptionAggregator.WrapQueryEnumerator``2(System.Linq.Parallel.QueryOperatorEnumerator{``0,``1},System.Linq.Parallel.CancellationState)">
-            <summary>
-            A variant of WrapEnumerable that accepts a QueryOperatorEnumerator{,} instead of an IEnumerable{}.
-            The code duplication is necessary to avoid extra virtual method calls that would otherwise be needed to
-            convert the QueryOperatorEnumerator{,} to an IEnumerator{}.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ExceptionAggregator.ThrowOCEorAggregateException(System.Exception,System.Linq.Parallel.CancellationState)">
-            <summary>
-            Accepts an exception, wraps it as if it was crossing the parallel->sequential boundary, and throws the
-            wrapped exception. In sequential fallback cases, we use this method to throw exceptions that are consistent
-            with exceptions thrown by PLINQ when the query is executed by worker tasks.
-            
-            The exception will be wrapped into an AggregateException, except for the case when the query is being
-            legitimately cancelled, in which case we will propagate the CancellationException with the appropriate
-            token.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ExceptionAggregator.WrapFunc``2(System.Func{``0,``1},System.Linq.Parallel.CancellationState)">
-            <summary>
-            Wraps a function with a try/catch that morphs all exceptions into AggregateException.
-            </summary>
-            <typeparam name="T">The input argument type.</typeparam>
-            <typeparam name="U">The return value type.</typeparam>
-            <param name="f">A function to use internally.</param>
-            <param name="cancellationState">The cancellation state to use.</param>
-            <returns>A new function containing exception wrapping logic.</returns>
-        </member>
-        <member name="T:System.Linq.Parallel.ExchangeUtilities">
-            <summary>
-            ExchangeUtilities is a static class that contains helper functions to partition and merge
-            streams. 
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.NoKeyMemoizationRequired">
-            <summary>
-            Used during hash partitioning, when the keys being memoized are not used for anything.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.FixedMaxHeap`1">
-            <summary>
-            Very simple heap data structure, of fixed size.
-            </summary>
-            <typeparam name="TElement"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.GrowingArray`1">
-            <summary>
-            A growing array. Unlike List{T}, it makes the internal array available to its user.
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.HashLookup`2">
-            <summary>
-            A simple hash map data structure, derived from the LINQ set we also use.
-            </summary>
-            <typeparam name="TKey">The kind of keys contained within.</typeparam>
-            <typeparam name="TValue">The kind of values contained within.</typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ListChunk`1">
-            <summary>
-            A linked list of array chunks. Allows direct access to its arrays.
-            </summary>
-            <typeparam name="TInputOutput">The elements held within.</typeparam>
-        </member>
-        <member name="M:System.Linq.Parallel.ListChunk`1.#ctor(System.Int32)">
-            <summary>
-            Allocates a new root chunk of a particular size.
-            </summary>
-        </member>
-        <member name="M:System.Linq.Parallel.ListChunk`1.Add(`0)">
-            <summary>
-            Adds an element to this chunk.  Only ever called on the root.
-            </summary>
-            <param name="e">The new element.</param>
-        </member>
-        <member name="M:System.Linq.Parallel.ListChunk`1.GetEnumerator">
-            <summary>
-            Fetches an enumerator to walk the elements in all chunks rooted from this one.
-            </summary>
-        </member>
-        <member name="P:System.Linq.Parallel.ListChunk`1.Next">
-            <summary>
-            The next chunk in the linked chain.
-            </summary>
-        </member>
-        <member name="P:System.Linq.Parallel.ListChunk`1.Count">
-            <summary>
-            The number of elements contained within this particular chunk.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.Lookup`2">
-             <summary>
-             Lookup class implements the ILookup interface. Lookup is very similar to a dictionary
-             except multiple values are allowed to map to the same key, and null keys are supported.
-            
-             Support for null keys adds an issue because the Dictionary class Lookup uses for
-             storage does not support null keys. So, we need to treat null keys separately.
-             Unfortunately, since TKey may be a value type, we cannot test whether the key is null
-             using the user-specified equality comparer.
-            
-             C# does allow us to compare the key against null using the == operator, but there is a
-             possibility that the user's equality comparer considers null to be equal to other values.
-             Now, MSDN documentation specifies that if IEqualityComparer.Equals(x,y) returns true, it
-             must be the case that x and y have the same hash code, and null has no hash code. Despite
-             that, we might as well support the use case, even if it is bad practice.
-            
-             The solution the Lookup class uses is to treat the key default(TKey) as a special case,
-             and hold its associated grouping - if any - in a special field instead of inserting it
-             into a dictionary.
-             </summary>
-             <typeparam name="TKey"></typeparam>
-             <typeparam name="TElement"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.Pair`2">
-            <summary>
-            A pair just wraps two bits of data into a single addressable unit. This is a
-            value type to ensure it remains very lightweight, since it is frequently used
-            with other primitive data types as well.
-            </summary>
-            <typeparam name="T"></typeparam>
-            <typeparam name="U"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.PairComparer`2">
-            <summary>
-            PairComparer compares pairs by the first element, and breaks ties by the second
-            element.
-            </summary>
-            <typeparam name="T"></typeparam>
-            <typeparam name="U"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.ReverseComparer`1">
-            <summary>
-            Comparer that wraps another comparer, and flips the result of each comparison to the
-            opposite answer.
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.Set`1">
-            <summary>
-            A set for various operations. Shamelessly stolen from LINQ's source code.
-            @TODO: can the Linq one be used directly now that we are in System.Core
-            </summary>
-            <typeparam name="TElement">The kind of elements contained within.</typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.Shared`1">
-            <summary>
-            A very simple primitive that allows us to share a value across multiple threads.
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.Util">
-            <summary>
-            Common miscellaneous utility methods used throughout the code-base.
-            </summary>
-        </member>
-        <member name="T:System.Linq.Parallel.Wrapper`1">
-            <summary>
-            A struct to wrap any arbitrary object reference or struct.  Used for situations
-            where we can't tolerate null values (like keys for hashtables).
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.Parallel.WrapperEqualityComparer`1">
-            <summary>
-            Compares two wrapped structs of the same underlying type for equality.  Simply
-            wraps the actual comparer for the type being wrapped.
-            </summary>
-            <typeparam name="T"></typeparam>
-        </member>
-        <member name="T:System.Linq.OrderedParallelQuery`1">
-            <summary>
-            Represents a sorted, parallel sequence.
-            </summary>
-        </member>
-        <member name="M:System.Linq.OrderedParallelQuery`1.GetEnumerator">
-            <summary>
-            Returns an enumerator that iterates through the sequence.
-            </summary>
-            <returns>An enumerator that iterates through the sequence.</returns>
-        </member>
-        <member name="T:System.Linq.ParallelExecutionMode">
-            <summary>
-            The query execution mode is a hint that specifies how the system should handle
-            performance trade-offs when parallelizing queries.
-            </summary>
-        </member>
-        <member name="F:System.Linq.ParallelExecutionMode.Default">
-            <summary>
-            By default, the system will use algorithms for queries
-            that are ripe for parallelism and will avoid algorithms with high 
-            overheads that will likely result in slow downs for parallel execution. 
-            </summary>
-        </member>
-        <member name="F:System.Linq.ParallelExecutionMode.ForceParallelism">
-            <summary>
-            Parallelize the entire query, even if that means using high-overhead algorithms.
-            </summary>
-        </member>
-        <member name="T:System.Threading.Tasks.TaskExtensions">
-            <summary>
-            Provides a set of static (Shared in Visual Basic) methods for working with specific kinds of 
-            <see cref="T:System.Threading.Tasks.Task"/> instances.
-            </summary>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExtensions.Unwrap(System.Threading.Tasks.Task{System.Threading.Tasks.Task})">
-            <summary>
-            Creates a proxy <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the 
-            asynchronous operation of a Task{Task}.
-            </summary>
-            <remarks>
-            It is often useful to be able to return a Task from a <see cref="T:System.Threading.Tasks.Task`1">
-            Task{TResult}</see>, where the inner Task represents work done as part of the outer Task{TResult}.  However, 
-            doing so results in a Task{Task}, which, if not dealt with carefully, could produce unexpected behavior.  Unwrap 
-            solves this problem by creating a proxy Task that represents the entire asynchronous operation of such a Task{Task}.
-            </remarks>
-            <param name="task">The Task{Task} to unwrap.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown if the 
-            <paramref name="task"/> argument is null.</exception>
-            <returns>A Task that represents the asynchronous operation of the provided Task{Task}.</returns>
-        </member>
-        <member name="M:System.Threading.Tasks.TaskExtensions.Unwrap``1(System.Threading.Tasks.Task{System.Threading.Tasks.Task{``0}})">
-            <summary>
-            Creates a proxy <see cref="T:System.Threading.Tasks.Task`1">Task{TResult}</see> that represents the 
-            asynchronous operation of a Task{Task{TResult}}.
-            </summary>
-            <remarks>
-            It is often useful to be able to return a Task{TResult} from a Task{TResult}, where the inner Task{TResult} 
-            represents work done as part of the outer Task{TResult}.  However, doing so results in a Task{Task{TResult}}, 
-            which, if not dealt with carefully, could produce unexpected behavior.  Unwrap solves this problem by 
-            creating a proxy Task{TResult} that represents the entire asynchronous operation of such a Task{Task{TResult}}.
-            </remarks>
-            <param name="task">The Task{Task{TResult}} to unwrap.</param>
-            <exception cref="T:System.ArgumentNullException">The exception that is thrown if the 
-            <paramref name="task"/> argument is null.</exception>
-            <returns>A Task{TResult} that represents the asynchronous operation of the provided Task{Task{TResult}}.</returns>        /// <summary>Unwraps a Task that returns another Task.</summary>
-        </member>
-    </members>
-</doc>

+ 0 - 8
Unity/Assets/CSharp vNext Support/AsyncTools/Plugins/System.Threading.xml.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 0016c9be79865ae43ab56dab4c60e2d9
-timeCreated: 1431533940
-licenseType: Pro
-TextScriptImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 68
Unity/Assets/CSharp vNext Support/AsyncTools/UnityScheduler.cs

@@ -1,68 +0,0 @@
-using System;
-using System.Threading;
-using System.Threading.Tasks;
-using UnityEngine;
-
-public class UnityScheduler : MonoBehaviour
-{
-	public static int MainThreadId { get; private set; }
-
-	/// <summary>
-	/// Use UpdateScheduler, LateUpdateScheduler or FixedUpdateScheduler instead.
-	/// </summary>
-	[Obsolete]
-	public static UnityTaskScheduler MainThreadScheduler => UpdateScheduler;
-
-	/// <summary>
-	/// Executes tasks in the main thread, Update context.
-	/// </summary>
-	public static UnityTaskScheduler UpdateScheduler { get; private set; }
-	
-	/// <summary>
-	/// Executes tasks in the main thread, LateUpdate context.
-	/// </summary>
-	public static UnityTaskScheduler LateUpdateScheduler { get; private set; }
-
-	/// <summary>
-	/// Executes tasks in the main thread, FixedUpdate context.
-	/// </summary>
-	public static UnityTaskScheduler FixedUpdateScheduler { get; private set; }
-
-	public static UnityTaskScheduler EditorUpdateScheduler { get; private set; }
-
-	/// <summary>
-	/// Executes tasks in the thread pool. It's an alias for TaskScheduler.Default.
-	/// </summary>
-	public static TaskScheduler ThreadPoolScheduler => TaskScheduler.Default;
-
-	[RuntimeInitializeOnLoadMethod]
-	private static void Initialize()
-	{
-		MainThreadId = Thread.CurrentThread.ManagedThreadId;
-
-		UpdateScheduler = new UnityTaskScheduler("Update");
-		LateUpdateScheduler = new UnityTaskScheduler("LateUpdate");
-		FixedUpdateScheduler = new UnityTaskScheduler("FixedUpdate");
-
-		SynchronizationContext.SetSynchronizationContext(UpdateScheduler.Context);
-
-		var go = new GameObject("UnityScheduler");
-		go.hideFlags = HideFlags.HideAndDontSave;
-		go.AddComponent<UnityScheduler>();
-	}
-
-	public static void InitializeInEditor()
-	{
-		MainThreadId = Thread.CurrentThread.ManagedThreadId;
-		EditorUpdateScheduler = new UnityTaskScheduler("EditorUpdate");
-		SynchronizationContext.SetSynchronizationContext(EditorUpdateScheduler.Context);
-	}
-
-	public static void ProcessEditorUpdate() => EditorUpdateScheduler.Activate();
-
-	private void Update() => UpdateScheduler.Activate();
-
-	private void LateUpdate() => LateUpdateScheduler.Activate();
-
-	private void FixedUpdate() => FixedUpdateScheduler.Activate();
-}

+ 0 - 12
Unity/Assets/CSharp vNext Support/AsyncTools/UnityScheduler.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 94133cd8b5ef43349b9e07e1f80baaa7
-timeCreated: 1431638967
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: -10000
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 38
Unity/Assets/CSharp vNext Support/AsyncTools/UnitySynchronizationContext.cs

@@ -1,38 +0,0 @@
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Threading;
-
-public class UnitySynchronizationContext : SynchronizationContext
-{
-	private readonly BlockingCollection<KeyValuePair<SendOrPostCallback, object>> queue = new BlockingCollection<KeyValuePair<SendOrPostCallback, object>>();
-
-	public string Name { get; }
-
-	public event EventHandler Activated;
-
-	public UnitySynchronizationContext(string name)
-	{
-		Name = name;
-	}
-
-	public void Activate()
-	{
-		Activated?.Invoke(this, EventArgs.Empty);
-		Activated = null;
-	}
-
-	public override void Post(SendOrPostCallback d, object state)
-	{
-		queue.Add(new KeyValuePair<SendOrPostCallback, object>(d, state));
-	}
-
-	public void ExecutePendingContinuations()
-	{
-		KeyValuePair<SendOrPostCallback, object> workItem;
-		while (queue.TryTake(out workItem))
-		{
-			workItem.Key(workItem.Value);
-		}
-	}
-}

+ 0 - 12
Unity/Assets/CSharp vNext Support/AsyncTools/UnitySynchronizationContext.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: abcd1fe92309a994293767b78d3cd211
-timeCreated: 1451598383
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 87
Unity/Assets/CSharp vNext Support/AsyncTools/UnityTaskScheduler.cs

@@ -1,87 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-
-public class UnityTaskScheduler : TaskScheduler
-{
-	public string Name { get; }
-	public UnitySynchronizationContext Context { get; }
-	private readonly LinkedList<Task> queue = new LinkedList<Task>();
-
-	public UnityTaskScheduler(string name)
-	{
-		Name = name;
-		Context = new UnitySynchronizationContext(name);
-	}
-
-	public void Activate()
-	{
-		SynchronizationContext.SetSynchronizationContext(Context);
-		Context.Activate();
-
-		ExecutePendingTasks();
-		Context.ExecutePendingContinuations();
-	}
-
-	protected override IEnumerable<Task> GetScheduledTasks()
-	{
-		lock (queue)
-		{
-			return queue.ToArray();
-		}
-	}
-
-	protected override void QueueTask(Task task)
-	{
-		lock (queue)
-		{
-			queue.AddLast(task);
-		}
-	}
-
-	protected override bool TryExecuteTaskInline(Task task, bool taskWasPreviouslyQueued)
-	{
-		if (Context != SynchronizationContext.Current)
-		{
-			return false;
-		}
-
-		if (taskWasPreviouslyQueued)
-		{
-			lock (queue)
-			{
-				queue.Remove(task);
-			}
-		}
-
-		return TryExecuteTask(task);
-	}
-
-	private void ExecutePendingTasks()
-	{
-		while (true)
-		{
-			Task task;
-			lock (queue)
-			{
-				if (queue.Count == 0)
-				{
-					break;
-				}
-				task = queue.First.Value;
-				queue.RemoveFirst();
-			}
-
-			if (task != null)
-			{
-				var result = TryExecuteTask(task);
-				if (result == false)
-				{
-					throw new InvalidOperationException();
-				}
-			}
-		}
-	}
-}

+ 0 - 12
Unity/Assets/CSharp vNext Support/AsyncTools/UnityTaskScheduler.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 998646c27a6d1084499e5fd0e2ab0c2e
-timeCreated: 1451598383
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/CSharp vNext Support/Editor.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: ad1316e00c55aa44d8b28322993767d4
-folderAsset: yes
-timeCreated: 1446591068
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Unity/Assets/CSharp vNext Support/Editor/CSharpVNextSupport.dll


+ 0 - 24
Unity/Assets/CSharp vNext Support/Editor/CSharpVNextSupport.dll.meta

@@ -1,24 +0,0 @@
-fileFormatVersion: 2
-guid: e4f9cb46e577ef8479f0e8e582cb6333
-timeCreated: 1459889200
-licenseType: Pro
-PluginImporter:
-  serializedVersion: 1
-  iconMap: {}
-  executionOrder: {}
-  isPreloaded: 0
-  platformData:
-    Any:
-      enabled: 0
-      settings: {}
-    Editor:
-      enabled: 1
-      settings:
-        DefaultValueInitialized: true
-    WindowsStoreApps:
-      enabled: 0
-      settings:
-        CPU: AnyCPU
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 11
Unity/Assets/CSharp vNext Support/Editor/UnitySchedulerEditor.cs

@@ -1,11 +0,0 @@
-using UnityEditor;
-
-public static class UnitySchedulerEditor
-{
-	[InitializeOnLoadMethod]
-	private static void InitializeInEditor()
-	{
-		UnityScheduler.InitializeInEditor();
-		EditorApplication.update += UnityScheduler.ProcessEditorUpdate;
-	}
-}

+ 0 - 12
Unity/Assets/CSharp vNext Support/Editor/UnitySchedulerEditor.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: fd7028abf67117e4a98bcde72172cdbe
-timeCreated: 1473459342
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/CSharp vNext Support/FormattableString.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 31cb7cff77bc5ba44ba9dcc254122cfd
-folderAsset: yes
-timeCreated: 1461347836
-licenseType: Pro
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 82
Unity/Assets/CSharp vNext Support/FormattableString/FormattableString.cs

@@ -1,82 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-** Class:  FormattableString
-**
-**
-** Purpose: implementation of the FormattableString
-** class.
-**
-===========================================================*/
-namespace System
-{
-    /// <summary>
-    /// A composite format string along with the arguments to be formatted. An instance of this
-    /// type may result from the use of the C# or VB language primitive "interpolated string".
-    /// </summary>
-    public abstract class FormattableString : IFormattable
-    {
-        /// <summary>
-        /// The composite format string.
-        /// </summary>
-        public abstract string Format { get; }
-
-        /// <summary>
-        /// Returns an object array that contains zero or more objects to format. Clients should not
-        /// mutate the contents of the array.
-        /// </summary>
-        public abstract object[] GetArguments();
-
-        /// <summary>
-        /// The number of arguments to be formatted.
-        /// </summary>
-        public abstract int ArgumentCount { get; }
-
-        /// <summary>
-        /// Returns one argument to be formatted from argument position <paramref name="index"/>.
-        /// </summary>
-        public abstract object GetArgument(int index);
-
-        /// <summary>
-        /// Format to a string using the given culture.
-        /// </summary>
-        public abstract string ToString(IFormatProvider formatProvider);
-
-        string IFormattable.ToString(string ignored, IFormatProvider formatProvider)
-        {
-            return ToString(formatProvider);
-        }
-
-        /// <summary>
-        /// Format the given object in the invariant culture. This static method may be
-        /// imported in C# by
-        /// <code>
-        /// using static System.FormattableString;
-        /// </code>.
-        /// Within the scope
-        /// of that import directive an interpolated string may be formatted in the
-        /// invariant culture by writing, for example,
-        /// <code>
-        /// Invariant($"{{ lat = {latitude}; lon = {longitude} }}")
-        /// </code>
-        /// </summary>
-        public static string Invariant(FormattableString formattable)
-        {
-            if (formattable == null)
-            {
-                throw new ArgumentNullException("formattable");
-            }
-
-            return formattable.ToString(Globalization.CultureInfo.InvariantCulture);
-        }
-
-        public override string ToString()
-        {
-            return ToString(Globalization.CultureInfo.CurrentCulture);
-        }
-    }
-}
-

+ 0 - 12
Unity/Assets/CSharp vNext Support/FormattableString/FormattableString.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 3f75f902cf93cf144becd3aeb61a5cb0
-timeCreated: 1461347850
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 59
Unity/Assets/CSharp vNext Support/FormattableString/FormattableStringFactory.cs

@@ -1,59 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-** Class:  FormattableStringFactory
-**
-**
-** Purpose: implementation of the FormattableStringFactory
-** class.
-**
-===========================================================*/
-namespace System.Runtime.CompilerServices
-{
-    /// <summary>
-    /// A factory type used by compilers to create instances of the type <see cref="FormattableString"/>.
-    /// </summary>
-    public static class FormattableStringFactory
-    {
-        /// <summary>
-        /// Create a <see cref="FormattableString"/> from a composite format string and object
-        /// array containing zero or more objects to format.
-        /// </summary>
-        public static FormattableString Create(string format, params object[] arguments)
-        {
-            if (format == null)
-            {
-                throw new ArgumentNullException("format");
-            }
-
-            if (arguments == null)
-            {
-                throw new ArgumentNullException("arguments");
-            }
-
-            return new ConcreteFormattableString(format, arguments);
-        }
-
-        private sealed class ConcreteFormattableString : FormattableString
-        {
-            private readonly string _format;
-            private readonly object[] _arguments;
-
-            internal ConcreteFormattableString(string format, object[] arguments)
-            {
-                _format = format;
-                _arguments = arguments;
-            }
-
-            public override string Format { get { return _format; } }
-            public override object[] GetArguments() { return _arguments; }
-            public override int ArgumentCount { get { return _arguments.Length; } }
-            public override object GetArgument(int index) { return _arguments[index]; }
-            public override string ToString(IFormatProvider formatProvider) { return string.Format(formatProvider, _format, _arguments); }
-        }
-    }
-}
-

+ 0 - 12
Unity/Assets/CSharp vNext Support/FormattableString/FormattableStringFactory.cs.meta

@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 4263742f7d8ddd34a8d5906cc734cb47
-timeCreated: 1461347850
-licenseType: Pro
-MonoImporter:
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 9
Unity/Assets/Plugins/Android/libs/armeabi.meta

@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: e40b340040b804c1dacad73cf46c9e54
-folderAsset: yes
-timeCreated: 1482825912
-licenseType: Free
-DefaultImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Unity/Assets/Res/Code/Hotfix.dll.bytes


BIN
Unity/Assets/Res/Code/Hotfix.pdb.bytes


+ 0 - 0
Unity/Assets/CSharpCompilerWrapper.rsp → Unity/Assets/mcs.rsp


+ 0 - 0
Unity/Assets/CSharpCompilerWrapper.rsp.meta → Unity/Assets/mcs.rsp.meta


BIN
Unity/CSharp60Support/CSharp60Support.unitypackage


BIN
Unity/CSharp60Support/CSharpCompilerWrapper.exe


BIN
Unity/CSharp60Support/Roslyn/Microsoft.CodeAnalysis.CSharp.dll


BIN
Unity/CSharp60Support/Roslyn/Microsoft.CodeAnalysis.dll


BIN
Unity/CSharp60Support/Roslyn/Mono.Cecil.dll


BIN
Unity/CSharp60Support/Roslyn/Mono.CompilerServices.SymbolWriter.dll


BIN
Unity/CSharp60Support/Roslyn/System.Collections.Immutable.dll


BIN
Unity/CSharp60Support/Roslyn/System.Reflection.Metadata.dll


BIN
Unity/CSharp60Support/Roslyn/csc.exe


+ 0 - 9
Unity/CSharp60Support/Roslyn/csc.exe.config

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!-- Copyright (c)  Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information. -->
-
-<configuration>
-  <runtime>
-    <gcServer enabled="true" />
-    <gcConcurrent enabled="false"/>
-  </runtime>
-</configuration>

BIN
Unity/CSharp60Support/Roslyn/pdb2mdb.exe


BIN
Unity/CSharp60Support/mcs.exe


+ 0 - 8
Unity/CSharp60Support/ngen install.cmd

@@ -1,8 +0,0 @@
-"%windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" install "%~dp0Roslyn\csc.exe"
-"%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe" install "%~dp0Roslyn\csc.exe"
-"%windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" install "%~dp0Roslyn\pdb2mdb.exe"
-"%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe" install "%~dp0Roslyn\pdb2mdb.exe"
-"%windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" install "%~dp0mcs.exe"
-"%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe" install "%~dp0mcs.exe"
-
-pause

+ 0 - 8
Unity/CSharp60Support/ngen uninstall.cmd

@@ -1,8 +0,0 @@
-"%windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" uninstall "%~dp0Roslyn\csc.exe"
-"%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe" uninstall "%~dp0Roslyn\csc.exe"
-"%windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" uninstall "%~dp0Roslyn\pdb2mdb.exe"
-"%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe" uninstall "%~dp0Roslyn\pdb2mdb.exe"
-"%windir%\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" uninstall "%~dp0mcs.exe"
-"%windir%\Microsoft.NET\Framework\v4.0.30319\ngen.exe" uninstall "%~dp0mcs.exe"
-
-pause

+ 7 - 10
Unity/Hotfix/Unity.Hotfix.csproj

@@ -9,9 +9,10 @@
     <AppDesignerFolder>Properties</AppDesignerFolder>
     <RootNamespace>Hotfix</RootNamespace>
     <AssemblyName>Hotfix</AssemblyName>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
-    <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -21,6 +22,7 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -29,12 +31,9 @@
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <Prefer32Bit>false</Prefer32Bit>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="AsyncBridge.Net35, Version=0.0.0.0, Culture=neutral, PublicKeyToken=b3b1c0202c0d6a87, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\Assets\CSharp vNext Support\AsyncTools\Plugins\AsyncBridge.Net35.dll</HintPath>
-    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
     <Reference Include="System.Threading, Version=1.0.2856.102, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
@@ -75,10 +74,8 @@
   <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
-    <PostBuildEvent>"$(ProjectDir)..\CSharp60Support\Roslyn\pdb2mdb.exe" $(TargetFileName)
-echo FA | xcopy $(TargetName).dll $(SolutionDir)Assets\Res\Code\$(TargetName).dll.bytes
-echo FA | xcopy $(TargetName).pdb $(SolutionDir)Assets\Res\Code\$(TargetName).pdb.bytes
-echo FA | xcopy /y $(TargetName).dll.mdb $(SolutionDir)\Assets\Res\Code\$(TargetFileName).mdb.bytes</PostBuildEvent>
+    <PostBuildEvent>echo FA | xcopy $(TargetName).dll $(SolutionDir)Assets\Res\Code\$(TargetName).dll.bytes
+echo FA | xcopy $(TargetName).pdb $(SolutionDir)Assets\Res\Code\$(TargetName).pdb.bytes</PostBuildEvent>
   </PropertyGroup>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

+ 289 - 149
Unity/ProjectSettings/ProjectSettings.asset

@@ -3,7 +3,7 @@
 --- !u!129 &1
 PlayerSettings:
   m_ObjectHideFlags: 0
-  serializedVersion: 8
+  serializedVersion: 11
   productGUID: 1eb5b450436966b49a962ffe89a9d776
   AndroidProfiler: 0
   defaultScreenOrientation: 4
@@ -14,15 +14,39 @@ PlayerSettings:
   productName: Unity
   defaultCursor: {fileID: 0}
   cursorHotspot: {x: 0, y: 0}
-  m_SplashScreenStyle: 0
+  m_SplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21176471, a: 1}
   m_ShowUnitySplashScreen: 1
+  m_ShowUnitySplashLogo: 1
+  m_SplashScreenOverlayOpacity: 1
+  m_SplashScreenAnimation: 1
+  m_SplashScreenLogoStyle: 1
+  m_SplashScreenDrawMode: 0
+  m_SplashScreenBackgroundAnimationZoom: 1
+  m_SplashScreenLogoAnimationZoom: 1
+  m_SplashScreenBackgroundLandscapeAspect: 1
+  m_SplashScreenBackgroundPortraitAspect: 1
+  m_SplashScreenBackgroundLandscapeUvs:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  m_SplashScreenBackgroundPortraitUvs:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  m_SplashScreenLogos: []
+  m_SplashScreenBackgroundLandscape: {fileID: 0}
+  m_SplashScreenBackgroundPortrait: {fileID: 0}
   m_VirtualRealitySplashScreen: {fileID: 0}
+  m_HolographicTrackingLossScreen: {fileID: 0}
   defaultScreenWidth: 1024
   defaultScreenHeight: 768
   defaultScreenWidthWeb: 960
   defaultScreenHeightWeb: 600
-  m_RenderingPath: 1
-  m_MobileRenderingPath: 1
+  m_StereoRenderingPath: 0
   m_ActiveColorSpace: 0
   m_MTRendering: 1
   m_MobileMTRendering: 0
@@ -44,15 +68,16 @@ PlayerSettings:
   defaultIsNativeResolution: 1
   runInBackground: 1
   captureSingleScreen: 0
-  Override IPod Music: 0
   muteOtherAudioSources: 0
   Prepare IOS For Recording: 0
+  Force IOS Speakers When Recording: 0
   submitAnalytics: 1
   usePlayerLog: 1
   bakeCollisionMeshes: 0
   forceSingleInstance: 0
   resizableWindow: 0
   useMacAppStoreValidation: 0
+  macAppStoreCategory: public.app-category.games
   gpuSkinning: 0
   graphicsJobs: 0
   xboxPIXTextureCapture: 0
@@ -62,6 +87,7 @@ PlayerSettings:
   xboxEnableFitness: 0
   visibleInBackground: 0
   allowFullscreenSwitch: 1
+  graphicsJobMode: 0
   macFullscreenMode: 2
   d3d9FullscreenMode: 1
   d3d11FullscreenMode: 1
@@ -72,12 +98,10 @@ PlayerSettings:
   n3dsDisableStereoscopicView: 0
   n3dsEnableSharedListOpt: 1
   n3dsEnableVSync: 0
-  uiUse16BitDepthBuffer: 0
   ignoreAlphaClear: 0
   xboxOneResolution: 0
   xboxOneMonoLoggingLevel: 0
   xboxOneLoggingLevel: 1
-  ps3SplashScreen: {fileID: 0}
   videoMemoryForVertexBuffers: 0
   psp2PowerMode: 0
   psp2AcquireBGM: 1
@@ -96,36 +120,55 @@ PlayerSettings:
     16:10: 1
     16:9: 1
     Others: 1
-  bundleIdentifier: com.Company.ProductName
   bundleVersion: 1.0
   preloadedAssets: []
-  metroEnableIndependentInputSource: 0
+  metroInputSource: 0
+  m_HolographicPauseOnTrackingLoss: 1
   xboxOneDisableKinectGpuReservation: 0
-  singlePassStereoRendering: 0
+  xboxOneEnable7thCore: 0
+  vrSettings:
+    cardboard:
+      depthFormat: 0
+      enableTransitionView: 0
+    daydream:
+      depthFormat: 0
+      useSustainedPerformanceMode: 0
+    hololens:
+      depthFormat: 1
   protectGraphicsMemory: 0
+  useHDRDisplay: 0
+  targetPixelDensity: 0
+  resolutionScalingMode: 0
+  applicationIdentifier:
+    Android: com.Company.ProductName
+    Standalone: unity.DefaultCompany.Unity
+    Tizen: com.Company.ProductName
+    iOS: com.Company.ProductName
+    tvOS: com.Company.ProductName
+  buildNumber:
+    iOS: 0
   AndroidBundleVersionCode: 1
-  AndroidMinSdkVersion: 9
+  AndroidMinSdkVersion: 16
+  AndroidTargetSdkVersion: 0
   AndroidPreferredInstallLocation: 1
   aotOptions: 
-  apiCompatibilityLevel: 1
   stripEngineCode: 1
   iPhoneStrippingLevel: 0
   iPhoneScriptCallOptimization: 0
-  iPhoneBuildNumber: 0
   ForceInternetPermission: 0
   ForceSDCardPermission: 0
   CreateWallpaper: 0
   APKExpansionFiles: 0
-  preloadShaders: 0
+  keepLoadedShadersAlive: 0
   StripUnusedMeshComponents: 0
   VertexChannelCompressionMask:
     serializedVersion: 2
     m_Bits: 238
   iPhoneSdkVersion: 988
-  iPhoneTargetOSVersion: 22
+  iOSTargetOSVersionString: 6.0
   tvOSSdkVersion: 0
-  tvOSTargetOSVersion: 900
   tvOSRequireExtendedGameController: 0
+  tvOSTargetOSVersionString: 9.0
   uIPrerenderedIcon: 0
   uIRequiresPersistentWiFi: 0
   uIRequiresFullScreen: 1
@@ -166,6 +209,11 @@ PlayerSettings:
   iOSLaunchScreeniPadCustomXibPath: 
   iOSDeviceRequirements: []
   iOSURLSchemes: []
+  iOSBackgroundModes: 0
+  iOSMetalForceHardShadows: 0
+  metalEditorSupport: 1
+  metalAPIValidation: 1
+  iOSRenderExtraFrameOnPause: 1
   appleDeveloperTeamID: 
   iOSManualSigningProvisioningProfileID: 
   tvOSManualSigningProvisioningProfileID: 
@@ -196,6 +244,63 @@ PlayerSettings:
   - m_BuildTarget: AndroidPlayer
     m_APIs: 08000000
     m_Automatic: 0
+  m_BuildTargetVRSettings:
+  - m_BuildTarget: Android
+    m_Enabled: 0
+    m_Devices:
+    - Oculus
+  - m_BuildTarget: Metro
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: N3DS
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: PS3
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: PS4
+    m_Enabled: 0
+    m_Devices:
+    - PlayStationVR
+  - m_BuildTarget: PSM
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: PSP2
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: SamsungTV
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: Standalone
+    m_Enabled: 0
+    m_Devices:
+    - Oculus
+  - m_BuildTarget: Tizen
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: WebGL
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: WebPlayer
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: WiiU
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: Xbox360
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: XboxOne
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: iOS
+    m_Enabled: 0
+    m_Devices: []
+  - m_BuildTarget: tvOS
+    m_Enabled: 0
+    m_Devices: []
+  openGLRequireES31: 0
+  openGLRequireES31AEP: 0
   webPlayerTemplate: APPLICATION:Default
   m_TemplateCustomTags: {}
   wiiUTitleID: 0005000011000000
@@ -216,6 +321,7 @@ PlayerSettings:
   wiiUGamePadStartupScreen: {fileID: 0}
   wiiUDrcBufferDisabled: 0
   wiiUProfilerLibPath: 
+  playModeTestRunnerEnabled: 0
   actionOnDotNetUnhandledException: 1
   enableInternalProfiler: 0
   logObjCUncaughtExceptions: 1
@@ -223,34 +329,117 @@ PlayerSettings:
   cameraUsageDescription: 
   locationUsageDescription: 
   microphoneUsageDescription: 
-  XboxTitleId: 
-  XboxImageXexPath: 
-  XboxSpaPath: 
-  XboxGenerateSpa: 0
-  XboxDeployKinectResources: 0
-  XboxSplashScreen: {fileID: 0}
-  xboxEnableSpeech: 0
-  xboxAdditionalTitleMemorySize: 0
-  xboxDeployKinectHeadOrientation: 0
-  xboxDeployKinectHeadPosition: 0
-  ps3TitleConfigPath: 
-  ps3DLCConfigPath: 
-  ps3ThumbnailPath: 
-  ps3BackgroundPath: 
-  ps3SoundPath: 
-  ps3NPAgeRating: 12
-  ps3TrophyCommId: 
-  ps3NpCommunicationPassphrase: 
-  ps3TrophyPackagePath: 
-  ps3BootCheckMaxSaveGameSizeKB: 128
-  ps3TrophyCommSig: 
-  ps3SaveGameSlots: 1
-  ps3TrialMode: 0
-  ps3VideoMemoryForAudio: 0
-  ps3EnableVerboseMemoryStats: 0
-  ps3UseSPUForUmbra: 0
-  ps3EnableMoveSupport: 1
-  ps3DisableDolbyEncoding: 0
+  switchNetLibKey: 
+  switchSocketMemoryPoolSize: 6144
+  switchSocketAllocatorPoolSize: 128
+  switchSocketConcurrencyLimit: 14
+  switchScreenResolutionBehavior: 2
+  switchUseCPUProfiler: 0
+  switchApplicationID: 0x01004b9000490000
+  switchNSODependencies: 
+  switchTitleNames_0: 
+  switchTitleNames_1: 
+  switchTitleNames_2: 
+  switchTitleNames_3: 
+  switchTitleNames_4: 
+  switchTitleNames_5: 
+  switchTitleNames_6: 
+  switchTitleNames_7: 
+  switchTitleNames_8: 
+  switchTitleNames_9: 
+  switchTitleNames_10: 
+  switchTitleNames_11: 
+  switchTitleNames_12: 
+  switchTitleNames_13: 
+  switchTitleNames_14: 
+  switchPublisherNames_0: 
+  switchPublisherNames_1: 
+  switchPublisherNames_2: 
+  switchPublisherNames_3: 
+  switchPublisherNames_4: 
+  switchPublisherNames_5: 
+  switchPublisherNames_6: 
+  switchPublisherNames_7: 
+  switchPublisherNames_8: 
+  switchPublisherNames_9: 
+  switchPublisherNames_10: 
+  switchPublisherNames_11: 
+  switchPublisherNames_12: 
+  switchPublisherNames_13: 
+  switchPublisherNames_14: 
+  switchIcons_0: {fileID: 0}
+  switchIcons_1: {fileID: 0}
+  switchIcons_2: {fileID: 0}
+  switchIcons_3: {fileID: 0}
+  switchIcons_4: {fileID: 0}
+  switchIcons_5: {fileID: 0}
+  switchIcons_6: {fileID: 0}
+  switchIcons_7: {fileID: 0}
+  switchIcons_8: {fileID: 0}
+  switchIcons_9: {fileID: 0}
+  switchIcons_10: {fileID: 0}
+  switchIcons_11: {fileID: 0}
+  switchIcons_12: {fileID: 0}
+  switchIcons_13: {fileID: 0}
+  switchIcons_14: {fileID: 0}
+  switchSmallIcons_0: {fileID: 0}
+  switchSmallIcons_1: {fileID: 0}
+  switchSmallIcons_2: {fileID: 0}
+  switchSmallIcons_3: {fileID: 0}
+  switchSmallIcons_4: {fileID: 0}
+  switchSmallIcons_5: {fileID: 0}
+  switchSmallIcons_6: {fileID: 0}
+  switchSmallIcons_7: {fileID: 0}
+  switchSmallIcons_8: {fileID: 0}
+  switchSmallIcons_9: {fileID: 0}
+  switchSmallIcons_10: {fileID: 0}
+  switchSmallIcons_11: {fileID: 0}
+  switchSmallIcons_12: {fileID: 0}
+  switchSmallIcons_13: {fileID: 0}
+  switchSmallIcons_14: {fileID: 0}
+  switchManualHTML: 
+  switchAccessibleURLs: 
+  switchLegalInformation: 
+  switchMainThreadStackSize: 1048576
+  switchPresenceGroupId: 0x01004b9000490000
+  switchLogoHandling: 0
+  switchReleaseVersion: 0
+  switchDisplayVersion: 1.0.0
+  switchStartupUserAccount: 0
+  switchTouchScreenUsage: 0
+  switchSupportedLanguagesMask: 0
+  switchLogoType: 0
+  switchApplicationErrorCodeCategory: 
+  switchUserAccountSaveDataSize: 0
+  switchUserAccountSaveDataJournalSize: 0
+  switchAttribute: 0
+  switchCardSpecSize: 4
+  switchCardSpecClock: 25
+  switchRatingsMask: 0
+  switchRatingsInt_0: 0
+  switchRatingsInt_1: 0
+  switchRatingsInt_2: 0
+  switchRatingsInt_3: 0
+  switchRatingsInt_4: 0
+  switchRatingsInt_5: 0
+  switchRatingsInt_6: 0
+  switchRatingsInt_7: 0
+  switchRatingsInt_8: 0
+  switchRatingsInt_9: 0
+  switchRatingsInt_10: 0
+  switchRatingsInt_11: 0
+  switchLocalCommunicationIds_0: 0x01004b9000490000
+  switchLocalCommunicationIds_1: 
+  switchLocalCommunicationIds_2: 
+  switchLocalCommunicationIds_3: 
+  switchLocalCommunicationIds_4: 
+  switchLocalCommunicationIds_5: 
+  switchLocalCommunicationIds_6: 
+  switchLocalCommunicationIds_7: 
+  switchParentalControl: 0
+  switchAllowsScreenshot: 1
+  switchDataLossConfirmation: 0
+  switchSupportedNpadStyles: 3
   ps4NPAgeRating: 12
   ps4NPTitleSecret: 
   ps4NPTrophyPackPath: 
@@ -263,6 +452,7 @@ PlayerSettings:
   ps4ParamSfxPath: 
   ps4VideoOutPixelFormat: 0
   ps4VideoOutInitialWidth: 1920
+  ps4VideoOutBaseModeInitialWidth: 1920
   ps4VideoOutReprojectionRate: 120
   ps4PronunciationXMLPath: 
   ps4PronunciationSIGPath: 
@@ -285,15 +475,15 @@ PlayerSettings:
   ps4ApplicationParam4: 0
   ps4DownloadDataSize: 0
   ps4GarlicHeapSize: 2048
+  ps4ProGarlicHeapSize: 2560
   ps4Passcode: eaoEiIgxIX4a2dREbbSqWy6yhKIDCdJO
-  ps4UseDebugIl2cppLibs: 0
   ps4pnSessions: 1
   ps4pnPresence: 1
   ps4pnFriends: 1
   ps4pnGameCustomData: 1
   playerPrefsSupport: 0
-  ps4UseResolutionFallback: 0
   restrictedAudioUsageRights: 0
+  ps4UseResolutionFallback: 0
   ps4ReprojectionSupport: 0
   ps4UseAudio3dBackend: 0
   ps4SocialScreenEnabled: 0
@@ -361,11 +551,37 @@ PlayerSettings:
   psp2UseLibLocation: 0
   psp2InfoBarOnStartup: 0
   psp2InfoBarColor: 0
-  psp2UseDebugIl2cppLibs: 0
+  psp2ScriptOptimizationLevel: 0
   psmSplashimage: {fileID: 0}
+  splashScreenBackgroundSourceLandscape: {fileID: 0}
+  splashScreenBackgroundSourcePortrait: {fileID: 0}
   spritePackerPolicy: 
+  webGLMemorySize: 256
+  webGLExceptionSupport: 1
+  webGLNameFilesAsHashes: 0
+  webGLDataCaching: 0
+  webGLDebugSymbols: 0
+  webGLEmscriptenArgs: 
+  webGLModulesDirectory: 
+  webGLTemplate: APPLICATION:Default
+  webGLAnalyzeBuildSize: 0
+  webGLUseEmbeddedResources: 0
+  webGLUseWasm: 0
+  webGLCompressionFormat: 1
   scriptingDefineSymbols:
     1: 
+  platformArchitecture:
+    iOS: 2
+  scriptingBackend:
+    Android: 0
+    Standalone: 0
+    iOS: 1
+  incrementalIl2cppBuild: {}
+  additionalIl2CppArgs: 
+  scriptingRuntimeVersion: 1
+  apiCompatibilityLevelPerPlatform: {}
+  m_RenderingPath: 1
+  m_MobileRenderingPath: 1
   metroPackageName: Unity
   metroPackageVersion: 
   metroCertificatePath: 
@@ -396,7 +612,9 @@ PlayerSettings:
   tizenSigningProfileName: 
   tizenGPSPermissions: 0
   tizenMicrophonePermissions: 0
-  tizenMinOSVersion: 0
+  tizenDeploymentTarget: 
+  tizenDeploymentTargetType: -1
+  tizenMinOSVersion: 1
   n3dsUseExtSaveData: 0
   n3dsCompressStaticMem: 1
   n3dsExtSaveDataNumber: 0x12345
@@ -426,114 +644,36 @@ PlayerSettings:
   XboxOnePackageEncryption: 0
   XboxOnePackageUpdateGranularity: 2
   XboxOneDescription: 
+  XboxOneLanguage:
+  - enus
+  XboxOneCapability: []
+  XboxOneGameRating: {}
   XboxOneIsContentPackage: 0
   XboxOneEnableGPUVariability: 0
   XboxOneSockets: {}
   XboxOneSplashScreen: {fileID: 0}
   XboxOneAllowedProductIds: []
   XboxOnePersistentLocalStorageSize: 0
-  intPropertyNames:
-  - Android::ScriptingBackend
-  - Standalone::ScriptingBackend
-  - iOS::Architecture
-  - iOS::ScriptingBackend
-  Android::ScriptingBackend: 0
-  Standalone::ScriptingBackend: 0
-  iOS::Architecture: 2
-  iOS::ScriptingBackend: 1
-  boolPropertyNames:
-  - Android::VR::enable
-  - Metro::VR::enable
-  - N3DS::VR::enable
-  - PS3::VR::enable
-  - PS4::VR::enable
-  - PSM::VR::enable
-  - PSP2::VR::enable
-  - SamsungTV::VR::enable
-  - Standalone::VR::enable
-  - Tizen::VR::enable
-  - WebGL::VR::enable
-  - WebPlayer::VR::enable
-  - WiiU::VR::enable
-  - Xbox360::VR::enable
-  - XboxOne::VR::enable
-  - iOS::VR::enable
-  - tvOS::VR::enable
-  Android::VR::enable: 0
-  Metro::VR::enable: 0
-  N3DS::VR::enable: 0
-  PS3::VR::enable: 0
-  PS4::VR::enable: 0
-  PSM::VR::enable: 0
-  PSP2::VR::enable: 0
-  SamsungTV::VR::enable: 0
-  Standalone::VR::enable: 0
-  Tizen::VR::enable: 0
-  WebGL::VR::enable: 0
-  WebPlayer::VR::enable: 0
-  WiiU::VR::enable: 0
-  Xbox360::VR::enable: 0
-  XboxOne::VR::enable: 0
-  iOS::VR::enable: 0
-  tvOS::VR::enable: 0
-  stringPropertyNames:
-  - Analytics_ServiceEnabled::Analytics_ServiceEnabled
-  - Build_ServiceEnabled::Build_ServiceEnabled
-  - Collab_ServiceEnabled::Collab_ServiceEnabled
-  - ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled
-  - Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled
-  - Hub_ServiceEnabled::Hub_ServiceEnabled
-  - Purchasing_ServiceEnabled::Purchasing_ServiceEnabled
-  - UNet_ServiceEnabled::UNet_ServiceEnabled
-  - Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled
-  Analytics_ServiceEnabled::Analytics_ServiceEnabled: False
-  Build_ServiceEnabled::Build_ServiceEnabled: False
-  Collab_ServiceEnabled::Collab_ServiceEnabled: False
-  ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled: False
-  Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled: False
-  Hub_ServiceEnabled::Hub_ServiceEnabled: False
-  Purchasing_ServiceEnabled::Purchasing_ServiceEnabled: False
-  UNet_ServiceEnabled::UNet_ServiceEnabled: False
-  Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled: False
-  vectorPropertyNames:
-  - Android::VR::enabledDevices
-  - Metro::VR::enabledDevices
-  - N3DS::VR::enabledDevices
-  - PS3::VR::enabledDevices
-  - PS4::VR::enabledDevices
-  - PSM::VR::enabledDevices
-  - PSP2::VR::enabledDevices
-  - SamsungTV::VR::enabledDevices
-  - Standalone::VR::enabledDevices
-  - Tizen::VR::enabledDevices
-  - WebGL::VR::enabledDevices
-  - WebPlayer::VR::enabledDevices
-  - WiiU::VR::enabledDevices
-  - Xbox360::VR::enabledDevices
-  - XboxOne::VR::enabledDevices
-  - iOS::VR::enabledDevices
-  - tvOS::VR::enabledDevices
-  Android::VR::enabledDevices:
-  - Oculus
-  Metro::VR::enabledDevices: []
-  N3DS::VR::enabledDevices: []
-  PS3::VR::enabledDevices: []
-  PS4::VR::enabledDevices:
-  - PlayStationVR
-  PSM::VR::enabledDevices: []
-  PSP2::VR::enabledDevices: []
-  SamsungTV::VR::enabledDevices: []
-  Standalone::VR::enabledDevices:
-  - Oculus
-  Tizen::VR::enabledDevices: []
-  WebGL::VR::enabledDevices: []
-  WebPlayer::VR::enabledDevices: []
-  WiiU::VR::enabledDevices: []
-  Xbox360::VR::enabledDevices: []
-  XboxOne::VR::enabledDevices: []
-  iOS::VR::enabledDevices: []
-  tvOS::VR::enabledDevices: []
+  xboxOneScriptCompiler: 0
+  vrEditorSettings:
+    daydream:
+      daydreamIconForeground: {fileID: 0}
+      daydreamIconBackground: {fileID: 0}
+  cloudServicesEnabled:
+    Analytics: 0
+    Build: 0
+    Collab: 0
+    ErrorHub: 0
+    Game_Performance: 0
+    Hub: 0
+    Purchasing: 0
+    UNet: 0
+    Unity_Ads: 0
+  facebookSdkVersion: 7.9.4
+  apiCompatibilityLevel: 2
   cloudProjectId: 
   projectName: 
   organizationId: 
   cloudEnabled: 0
+  enableNativePlatformBackendsForNewInputSystem: 0
+  disableOldInputManagerSupport: 0

+ 1 - 1
Unity/ProjectSettings/ProjectVersion.txt

@@ -1 +1 @@
-m_EditorVersion: 5.5.2f1
+m_EditorVersion: 2017.1.0b5

+ 32 - 44
Unity/Unity.Editor.csproj

@@ -11,17 +11,14 @@
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
-    <CompilerResponseFile>
-    </CompilerResponseFile>
+    <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+    <TargetFrameworkProfile></TargetFrameworkProfile>
+    <CompilerResponseFile>Assets\mcs.rsp</CompilerResponseFile>
     <UnityProjectType>Editor:5</UnityProjectType>
-    <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget>
-    <UnityVersion>5.5.2f1</UnityVersion>
-    <RootNamespace>
-    </RootNamespace>
+    <UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget>
+    <UnityVersion>2017.1.0b5</UnityVersion>
+    <RootNamespace></RootNamespace>
     <LangVersion>6</LangVersion>
-    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -30,7 +27,8 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_2;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_1_0;UNITY_2017_1;UNITY_2017;PLATFORM_ARCH_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;ENABLE_SPRITE_MASKING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_RMGUI;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_STYLE_SHEETS;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE;</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -39,32 +37,25 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_2;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_1_0;UNITY_2017_1;UNITY_2017;PLATFORM_ARCH_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;ENABLE_SPRITE_MASKING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_RMGUI;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_STYLE_SHEETS;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE;</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="mscorlib" />
     <Reference Include="System" />
     <Reference Include="System.XML" />
     <Reference Include="System.Core" />
-    <Reference Include="Boo.Lang" />
-    <Reference Include="UnityScript.Lang" />
     <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.Xml.Linq" />
-    <Reference Include="UnityEngine">
-      <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
-    </Reference>
     <Reference Include="UnityEditor">
       <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
     </Reference>
+    <Reference Include="UnityEngine">
+      <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
+    </Reference>
     <Reference Include="UnityEditor.Advertisements">
       <HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath>
     </Reference>
-    <Reference Include="nunit.framework">
-      <HintPath>Library\UnityAssemblies\nunit.framework.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEditor.EditorTestsRunner">
-      <HintPath>Library\UnityAssemblies\UnityEditor.EditorTestsRunner.dll</HintPath>
-    </Reference>
     <Reference Include="UnityEngine.UI">
       <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
     </Reference>
@@ -77,11 +68,20 @@
     <Reference Include="UnityEditor.Networking">
       <HintPath>Library\UnityAssemblies\UnityEditor.Networking.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEditor.PlaymodeTestsRunner">
-      <HintPath>Library\UnityAssemblies\UnityEditor.PlaymodeTestsRunner.dll</HintPath>
+    <Reference Include="UnityEditor.TestRunner">
+      <HintPath>Library\UnityAssemblies\UnityEditor.TestRunner.dll</HintPath>
+    </Reference>
+    <Reference Include="UnityEngine.TestRunner">
+      <HintPath>Library\UnityAssemblies\UnityEngine.TestRunner.dll</HintPath>
+    </Reference>
+    <Reference Include="nunit.framework">
+      <HintPath>Library\UnityAssemblies\nunit.framework.dll</HintPath>
+    </Reference>
+    <Reference Include="UnityEngine.Timeline">
+      <HintPath>Library\UnityAssemblies\UnityEngine.Timeline.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.PlaymodeTestsRunner">
-      <HintPath>Library\UnityAssemblies\UnityEngine.PlaymodeTestsRunner.dll</HintPath>
+    <Reference Include="UnityEditor.Timeline">
+      <HintPath>Library\UnityAssemblies\UnityEditor.Timeline.dll</HintPath>
     </Reference>
     <Reference Include="UnityEditor.TreeEditor">
       <HintPath>Library\UnityAssemblies\UnityEditor.TreeEditor.dll</HintPath>
@@ -98,12 +98,12 @@
     <Reference Include="UnityEngine.HoloLens">
       <HintPath>Library\UnityAssemblies\UnityEngine.HoloLens.dll</HintPath>
     </Reference>
+    <Reference Include="UnityEditor.Purchasing">
+      <HintPath>Library\UnityAssemblies\UnityEditor.Purchasing.dll</HintPath>
+    </Reference>
     <Reference Include="UnityEditor.VR">
       <HintPath>Library\UnityAssemblies\UnityEditor.VR.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.VR">
-      <HintPath>Library\UnityAssemblies\UnityEngine.VR.dll</HintPath>
-    </Reference>
     <Reference Include="UnityEditor.Graphs">
       <HintPath>Library\UnityAssemblies\UnityEditor.Graphs.dll</HintPath>
     </Reference>
@@ -125,15 +125,6 @@
     <Reference Include="UnityEditor.iOS.Extensions.Common">
       <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Common.dll</HintPath>
     </Reference>
-    <Reference Include="AsyncBridge.Net35">
-      <HintPath>Assets\CSharp vNext Support\AsyncTools\Plugins\AsyncBridge.Net35.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Threading">
-      <HintPath>Assets\CSharp vNext Support\AsyncTools\Plugins\System.Threading.dll</HintPath>
-    </Reference>
-    <Reference Include="CSharpVNextSupport">
-      <HintPath>Assets\CSharp vNext Support\Editor\CSharpVNextSupport.dll</HintPath>
-    </Reference>
     <Reference Include="ICSharpCode.SharpZipLib">
       <HintPath>Assets\Editor\SDKPorter\XCodeEditor\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>
@@ -152,7 +143,6 @@
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Assets\CSharp vNext Support\Editor\UnitySchedulerEditor.cs" />
     <Compile Include="Assets\Editor\BehaviorTreeEditor\BehaviorBatchOperation.cs" />
     <Compile Include="Assets\Editor\BehaviorTreeEditor\BehaviorDesignerUtility.cs" />
     <Compile Include="Assets\Editor\BehaviorTreeEditor\BehaviorDesignerWindow.cs" />
@@ -194,7 +184,6 @@
     <Compile Include="Assets\Editor\RsyncEditor\RsyncConfig.cs" />
     <Compile Include="Assets\Editor\RsyncEditor\RsyncEditor.cs" />
     <Compile Include="Assets\Editor\SDKPorter\ShareSDKPostProcessBuild.cs" />
-    <Compile Include="Assets\Editor\SDKPorter\XCPlist.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\PBXBuildFile.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\PBXBuildPhase.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\PBXDictionary.cs" />
@@ -208,17 +197,16 @@
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCConfigurationList.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCFileOperationQueue.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCMod.cs" />
+    <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCodeEditorMenu.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCProject.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCSourceFile.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCTarget.cs" />
-    <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\XCodeEditorMenu.cs" />
     <Compile Include="Assets\Editor\SDKPorter\XCodeEditor\ZipHelper.cs" />
+    <Compile Include="Assets\Editor\SDKPorter\XCPlist.cs" />
     <Compile Include="Assets\Editor\ServerCommandLineEditor\ServerCommandLineEditor.cs" />
     <Compile Include="Assets\Editor\ServerManagerEditor\ServerManagerEditor.cs" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Assets\CSharp vNext Support\AsyncTools\Plugins\AsyncBridge.Net35.xml" />
-    <None Include="Assets\CSharp vNext Support\AsyncTools\Plugins\System.Threading.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\AndroidManifest.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\res\drawable\ssdk_oks_classic_platform_cell_back.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\res\drawable\ssdk_oks_classic_progressbar.xml" />
@@ -231,4 +219,4 @@
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Target Name="GenerateTargetFrameworkMonikerAttribute" />
-</Project>
+</Project>

+ 41 - 49
Unity/Unity.Plugins.csproj

@@ -11,17 +11,14 @@
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
-    <CompilerResponseFile>
-    </CompilerResponseFile>
+    <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+    <TargetFrameworkProfile></TargetFrameworkProfile>
+    <CompilerResponseFile>Assets\mcs.rsp</CompilerResponseFile>
     <UnityProjectType>GamePlugins:3</UnityProjectType>
-    <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget>
-    <UnityVersion>5.5.2f1</UnityVersion>
-    <RootNamespace>
-    </RootNamespace>
+    <UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget>
+    <UnityVersion>2017.1.0b5</UnityVersion>
+    <RootNamespace></RootNamespace>
     <LangVersion>6</LangVersion>
-    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -30,7 +27,8 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_2;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_1_0;UNITY_2017_1;UNITY_2017;PLATFORM_ARCH_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;ENABLE_SPRITE_MASKING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_RMGUI;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_STYLE_SHEETS;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE;</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -39,17 +37,19 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_2;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_1_0;UNITY_2017_1;UNITY_2017;PLATFORM_ARCH_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;ENABLE_SPRITE_MASKING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_RMGUI;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_STYLE_SHEETS;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE;</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="mscorlib" />
     <Reference Include="System" />
     <Reference Include="System.XML" />
     <Reference Include="System.Core" />
-    <Reference Include="Boo.Lang" />
-    <Reference Include="UnityScript.Lang" />
     <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.Xml.Linq" />
+    <Reference Include="UnityEditor">
+      <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
+    </Reference>
     <Reference Include="UnityEngine">
       <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
     </Reference>
@@ -59,8 +59,14 @@
     <Reference Include="UnityEngine.Networking">
       <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.PlaymodeTestsRunner">
-      <HintPath>Library\UnityAssemblies\UnityEngine.PlaymodeTestsRunner.dll</HintPath>
+    <Reference Include="UnityEngine.TestRunner">
+      <HintPath>Library\UnityAssemblies\UnityEngine.TestRunner.dll</HintPath>
+    </Reference>
+    <Reference Include="nunit.framework">
+      <HintPath>Library\UnityAssemblies\nunit.framework.dll</HintPath>
+    </Reference>
+    <Reference Include="UnityEngine.Timeline">
+      <HintPath>Library\UnityAssemblies\UnityEngine.Timeline.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine.Analytics">
       <HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath>
@@ -68,24 +74,12 @@
     <Reference Include="UnityEngine.HoloLens">
       <HintPath>Library\UnityAssemblies\UnityEngine.HoloLens.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.VR">
-      <HintPath>Library\UnityAssemblies\UnityEngine.VR.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEditor">
-      <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
-    </Reference>
     <Reference Include="UnityEditor.iOS.Extensions.Xcode">
       <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath>
     </Reference>
     <Reference Include="UnityEditor.iOS.Extensions.Common">
       <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Common.dll</HintPath>
     </Reference>
-    <Reference Include="AsyncBridge.Net35">
-      <HintPath>Assets\CSharp vNext Support\AsyncTools\Plugins\AsyncBridge.Net35.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Threading">
-      <HintPath>Assets\CSharp vNext Support\AsyncTools\Plugins\System.Threading.dll</HintPath>
-    </Reference>
     <Reference Include="ICSharpCode.SharpZipLib">
       <HintPath>Assets\Plugins\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>
@@ -270,11 +264,11 @@
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IConventionPack.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\ICreatorMapConvention.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IDiscriminatorConvention.cs" />
-    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IMemberMapConvention.cs" />
-    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IPostProcessingConvention.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IgnoreExtraElementsConvention.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IgnoreIfDefaultConvention.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IgnoreIfNullConvention.cs" />
+    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IMemberMapConvention.cs" />
+    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\IPostProcessingConvention.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\LookupIdGeneratorConvention.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\MemberDefaultValueConvention.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Conventions\MemberNameElementNameConvention.cs" />
@@ -311,7 +305,6 @@
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IBsonSerializationProvider.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IBsonSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\ICreatorSelector.cs" />
-    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IIdGenerator.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IdGenerators\AscendingGuidGenerator.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IdGenerators\BsonBinaryDataGuidGenerator.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IdGenerators\BsonObjectIdGenerator.cs" />
@@ -321,6 +314,7 @@
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IdGenerators\ObjectIdGenerator.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IdGenerators\StringObjectIdGenerator.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IdGenerators\ZeroIdChecker.cs" />
+    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\IIdGenerator.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\MostArgumentsCreatorSelector.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Options\ArraySerializationOptions.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Options\BsonBaseSerializationOptions.cs" />
@@ -370,16 +364,16 @@
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\DictionaryGenericSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\DictionarySerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\DoubleSerializer.cs" />
-    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\EnumSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\EnumerableSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\EnumerableSerializerBase.cs" />
+    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\EnumSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\GuidSerializer.cs" />
-    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\IPAddressSerializer.cs" />
-    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\IPEndPointSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\Int16Serializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\Int32Serializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\Int64Serializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\InterfaceSerializer.cs" />
+    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\IPAddressSerializer.cs" />
+    <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\IPEndPointSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\KeyValuePairSerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\LazyBsonArraySerializer.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Bson\Serialization\Serializers\LazyBsonDocumentSerializer.cs" />
@@ -411,16 +405,6 @@
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Shared\CanonicalEquatableStruct.cs" />
     <Compile Include="Assets\Plugins\MongoDB\MongoDB.Shared\Hasher.cs" />
     <Compile Include="Assets\Plugins\MongoDB\ReaderWriterLockExtension.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\Android\AndroidImpl.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\ContentType.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\MiniJSON.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\PlatformType.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\ResponseState.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\ShareContent.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\ShareSDK.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\ShareSDKDevInfo.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\ShareSDKImpl.cs" />
-    <Compile Include="Assets\Plugins\ShareSDK\iOS\iOSImpl.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\BclHelpers.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\BufferExtension.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\BufferPool.cs" />
@@ -473,13 +457,13 @@
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\EnumSerializer.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\FieldDecorator.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\GuidSerializer.cs" />
-    <Compile Include="Assets\Plugins\protobuf-net\Serializers\IProtoSerializer.cs" />
-    <Compile Include="Assets\Plugins\protobuf-net\Serializers\IProtoTypeSerializer.cs" />
-    <Compile Include="Assets\Plugins\protobuf-net\Serializers\ISerializerProxy.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\ImmutableCollectionDecorator.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\Int16Serializer.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\Int32Serializer.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\Int64Serializer.cs" />
+    <Compile Include="Assets\Plugins\protobuf-net\Serializers\IProtoSerializer.cs" />
+    <Compile Include="Assets\Plugins\protobuf-net\Serializers\IProtoTypeSerializer.cs" />
+    <Compile Include="Assets\Plugins\protobuf-net\Serializers\ISerializerProxy.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\KeyValuePairDecorator.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\ListDecorator.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\Serializers\MemberSpecifiedDecorator.cs" />
@@ -509,10 +493,18 @@
     <Compile Include="Assets\Plugins\protobuf-net\ServiceModel\XmlProtoSerializer.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\SubItemToken.cs" />
     <Compile Include="Assets\Plugins\protobuf-net\WireType.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\Android\AndroidImpl.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\ContentType.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\iOS\iOSImpl.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\MiniJSON.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\PlatformType.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\ResponseState.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\ShareContent.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\ShareSDK.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\ShareSDKDevInfo.cs" />
+    <Compile Include="Assets\Plugins\ShareSDK\ShareSDKImpl.cs" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Assets\CSharp vNext Support\AsyncTools\Plugins\AsyncBridge.Net35.xml" />
-    <None Include="Assets\CSharp vNext Support\AsyncTools\Plugins\System.Threading.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\AndroidManifest.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\res\drawable\ssdk_oks_classic_platform_cell_back.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\res\drawable\ssdk_oks_classic_progressbar.xml" />
@@ -525,4 +517,4 @@
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Target Name="GenerateTargetFrameworkMonikerAttribute" />
-</Project>
+</Project>

+ 31 - 44
Unity/Unity.csproj

@@ -11,17 +11,14 @@
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <TargetFrameworkProfile>Unity Full v3.5</TargetFrameworkProfile>
-    <CompilerResponseFile>
-    </CompilerResponseFile>
+    <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+    <TargetFrameworkProfile></TargetFrameworkProfile>
+    <CompilerResponseFile>Assets\mcs.rsp</CompilerResponseFile>
     <UnityProjectType>Game:1</UnityProjectType>
-    <UnityBuildTarget>StandaloneWindows:5</UnityBuildTarget>
-    <UnityVersion>5.5.2f1</UnityVersion>
-    <RootNamespace>
-    </RootNamespace>
+    <UnityBuildTarget>StandaloneWindows64:19</UnityBuildTarget>
+    <UnityVersion>2017.1.0b5</UnityVersion>
+    <RootNamespace></RootNamespace>
     <LangVersion>6</LangVersion>
-    <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -30,7 +27,8 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Debug\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_2;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_1_0;UNITY_2017_1;UNITY_2017;PLATFORM_ARCH_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;ENABLE_SPRITE_MASKING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_RMGUI;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_STYLE_SHEETS;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE;</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugType>pdbonly</DebugType>
@@ -39,17 +37,19 @@
     <IntermediateOutputPath>Temp\UnityVS_obj\Release\</IntermediateOutputPath>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
-    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_5_2;UNITY_5_5;UNITY_5;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_SCRIPTING_NEW_CSHARP_COMPILER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VIDEO;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE</DefineConstants>
+    <DefineConstants>TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_1_0;UNITY_2017_1;UNITY_2017;PLATFORM_ARCH_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_GENERICS;ENABLE_PVR_GI;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_RUNTIME_NAVMESH_BUILDING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_NATIVE_ARRAY;ENABLE_SPRITE_MASKING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_RMGUI;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_STYLE_SHEETS;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_4_6;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_NATIVE_ARRAY_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU;UNITY_PRO_LICENSE;</DefineConstants>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="mscorlib" />
     <Reference Include="System" />
     <Reference Include="System.XML" />
     <Reference Include="System.Core" />
-    <Reference Include="Boo.Lang" />
-    <Reference Include="UnityScript.Lang" />
     <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.Xml.Linq" />
+    <Reference Include="UnityEditor">
+      <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
+    </Reference>
     <Reference Include="UnityEngine">
       <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
     </Reference>
@@ -59,8 +59,14 @@
     <Reference Include="UnityEngine.Networking">
       <HintPath>Library\UnityAssemblies\UnityEngine.Networking.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.PlaymodeTestsRunner">
-      <HintPath>Library\UnityAssemblies\UnityEngine.PlaymodeTestsRunner.dll</HintPath>
+    <Reference Include="UnityEngine.TestRunner">
+      <HintPath>Library\UnityAssemblies\UnityEngine.TestRunner.dll</HintPath>
+    </Reference>
+    <Reference Include="nunit.framework">
+      <HintPath>Library\UnityAssemblies\nunit.framework.dll</HintPath>
+    </Reference>
+    <Reference Include="UnityEngine.Timeline">
+      <HintPath>Library\UnityAssemblies\UnityEngine.Timeline.dll</HintPath>
     </Reference>
     <Reference Include="UnityEngine.Analytics">
       <HintPath>Library\UnityAssemblies\UnityEngine.Analytics.dll</HintPath>
@@ -68,24 +74,12 @@
     <Reference Include="UnityEngine.HoloLens">
       <HintPath>Library\UnityAssemblies\UnityEngine.HoloLens.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.VR">
-      <HintPath>Library\UnityAssemblies\UnityEngine.VR.dll</HintPath>
-    </Reference>
-    <Reference Include="UnityEditor">
-      <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
-    </Reference>
     <Reference Include="UnityEditor.iOS.Extensions.Xcode">
       <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Xcode.dll</HintPath>
     </Reference>
     <Reference Include="UnityEditor.iOS.Extensions.Common">
       <HintPath>Library\UnityAssemblies\UnityEditor.iOS.Extensions.Common.dll</HintPath>
     </Reference>
-    <Reference Include="AsyncBridge.Net35">
-      <HintPath>Assets\CSharp vNext Support\AsyncTools\Plugins\AsyncBridge.Net35.dll</HintPath>
-    </Reference>
-    <Reference Include="System.Threading">
-      <HintPath>Assets\CSharp vNext Support\AsyncTools\Plugins\System.Threading.dll</HintPath>
-    </Reference>
     <Reference Include="ICSharpCode.SharpZipLib">
       <HintPath>Assets\Plugins\ICSharpCode.SharpZipLib.dll</HintPath>
     </Reference>
@@ -97,11 +91,6 @@
     </ProjectReference>
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="Assets\CSharp vNext Support\AsyncTools\UnityScheduler.cs" />
-    <Compile Include="Assets\CSharp vNext Support\AsyncTools\UnitySynchronizationContext.cs" />
-    <Compile Include="Assets\CSharp vNext Support\AsyncTools\UnityTaskScheduler.cs" />
-    <Compile Include="Assets\CSharp vNext Support\FormattableString\FormattableString.cs" />
-    <Compile Include="Assets\CSharp vNext Support\FormattableString\FormattableStringFactory.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\CLR\Method\CLRMethod.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\CLR\Method\ExceptionHandler.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\CLR\Method\ILMethod.cs" />
@@ -121,10 +110,10 @@
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\CLRBinding\BindingCodeGenerator.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\BreakPointContext.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\BreakpointInfo.cs" />
+    <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\DebuggerServer\DebuggerServer.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\DebugMessageType.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\DebugService.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\DebugSocket.cs" />
-    <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\DebuggerServer\DebuggerServer.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\Protocol\CSBindBreakpoint.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\Protocol\CSDeleteBreakpoint.cs" />
     <Compile Include="Assets\ILRuntime\ILRuntime\Runtime\Debugger\Protocol\CSExecute.cs" />
@@ -249,13 +238,13 @@
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\ModuleKind.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\ModuleReference.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\NativeType.cs" />
-    <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PInvokeAttributes.cs" />
-    <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PInvokeInfo.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\ParameterAttributes.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\ParameterDefinition.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\ParameterDefinitionCollection.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\ParameterReference.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PinnedType.cs" />
+    <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PInvokeAttributes.cs" />
+    <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PInvokeInfo.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PointerType.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PropertyAttributes.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.20\MonoCecil\Mono.Cecil\PropertyDefinition.cs" />
@@ -316,8 +305,8 @@
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\DbiHeader.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\DbiModuleInfo.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\DbiSecCon.cs" />
-    <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\IntHashTable.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\Interfaces.cs" />
+    <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\IntHashTable.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\MsfDirectory.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\PdbConstant.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Microsoft.Cci.Pdb\PdbDebugException.cs" />
@@ -340,14 +329,10 @@
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Mono.Cecil.Pdb\PdbWriter.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Mono.Cecil.Pdb\SymDocumentWriter.cs" />
     <Compile Include="Assets\ILRuntime\Mono.Cecil.Pdb\pdb\Mono.Cecil.Pdb\SymWriter.cs" />
-    <Compile Include="Assets\Scripts\BehaviorTree\BTEnv.cs" />
-    <Compile Include="Assets\Scripts\BehaviorTree\BTEnvKey.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorNodeConfig.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTree.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeArgsDict.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeConfig.cs" />
-    <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BTTypeBaseComponent.cs" />
-    <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BTTypeManager.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BaseType\BTArrayDoubleComponent.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BaseType\BTArrayFloatComponent.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BaseType\BTArrayInt64Component.cs" />
@@ -360,6 +345,8 @@
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BaseType\BTInt64Component.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BaseType\BTIntComponent.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BaseType\BTStringComponent.cs" />
+    <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BTTypeBaseComponent.cs" />
+    <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\BTTypeManager.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\UnityType\BTArrayAudioClipComponent.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\UnityType\BTArrayGameObjectComponent.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\UnityType\BTArrayMaterialComponent.cs" />
@@ -376,6 +363,8 @@
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\UnityType\BTTexture2DComponent.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\UnityType\BTTexture3DComponent.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\BehaviorTreeType\UnityType\BTTextureComponent.cs" />
+    <Compile Include="Assets\Scripts\BehaviorTree\BTEnv.cs" />
+    <Compile Include="Assets\Scripts\BehaviorTree\BTEnvKey.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\ClientNodeTypeProto.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\Node.cs" />
     <Compile Include="Assets\Scripts\BehaviorTree\NodeAttribute.cs" />
@@ -465,8 +454,8 @@
     <Compile Include="Assets\Scripts\ILGenerated\System_String_Binding.cs" />
     <Compile Include="Assets\Scripts\ILGenerated\System_Type_Binding.cs" />
     <Compile Include="Assets\Scripts\Init.cs" />
-    <Compile Include="Assets\Scripts\Message\AMHandler.cs" />
     <Compile Include="Assets\Scripts\Message\AMessage.cs" />
+    <Compile Include="Assets\Scripts\Message\AMHandler.cs" />
     <Compile Include="Assets\Scripts\Message\AppType.cs" />
     <Compile Include="Assets\Scripts\Message\ErrorCode.cs" />
     <Compile Include="Assets\Scripts\Message\IMHandler.cs" />
@@ -499,8 +488,6 @@
     <Compile Include="Assets\Scripts\UIConfig.cs" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="Assets\CSharp vNext Support\AsyncTools\Plugins\AsyncBridge.Net35.xml" />
-    <None Include="Assets\CSharp vNext Support\AsyncTools\Plugins\System.Threading.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\AndroidManifest.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\res\drawable\ssdk_oks_classic_platform_cell_back.xml" />
     <None Include="Assets\Plugins\Android\ShareSDK\res\drawable\ssdk_oks_classic_progressbar.xml" />
@@ -513,4 +500,4 @@
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Target Name="GenerateTargetFrameworkMonikerAttribute" />
-</Project>
+</Project>

+ 1 - 1
Unity/Unity.sln

@@ -1,6 +1,6 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2015
+# Visual Studio 2017
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Plugins", "Unity.Plugins.csproj", "{D1FDB199-0FB7-099D-3771-C6A942E4E326}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity", "Unity.csproj", "{CF118143-7E37-744F-BE45-3F55345FEC40}"