diff --git a/.editorconfig b/.editorconfig
index e36b54a487..843916258f 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -9,7 +9,7 @@ root = true
# Use tabs as indentation
# Trim trailing whitespace
[*]
-insert_final_newline = true
+insert_final_newline = false
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
@@ -26,9 +26,9 @@ csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_throw_expression = true:suggestion
-csharp_style_var_elsewhere = true:none
-csharp_style_var_for_built_in_types = true:suggestion
-csharp_style_var_when_type_is_apparent = true:warning
+csharp_style_var_elsewhere = false:none
+csharp_style_var_for_built_in_types = false:none
+csharp_style_var_when_type_is_apparent = false:warning
csharp_indent_block_contents = true:warning
csharp_indent_braces = false:warning
@@ -49,6 +49,15 @@ csharp_space_before_comma = false:warning
csharp_space_before_dot = false:error
csharp_space_before_open_square_brackets = true:warning
csharp_space_before_semicolon_in_for_statement = false:error
+csharp_using_directive_placement = outside_namespace:silent
+csharp_prefer_simple_using_statement = true:suggestion
+csharp_style_namespace_declarations = block_scoped:silent
+csharp_style_expression_bodied_lambdas = true:silent
+csharp_style_expression_bodied_local_functions = false:silent
+csharp_indent_labels = one_less_than_current
+csharp_style_prefer_null_check_over_type_check = true:suggestion
+csharp_style_implicit_object_creation_when_type_is_apparent = true:suggestion
+csharp_style_prefer_not_pattern = true:suggestion
[*.{cs,vb}]
dotnet_sort_system_directives_first = true
@@ -59,18 +68,16 @@ dotnet_style_explicit_tuple_names = true:warning
dotnet_style_null_propagation = true:suggestion
dotnet_style_object_initializer = true:suggestion
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
-dotnet_style_predefined_type_for_member_access = false:warning
+dotnet_style_predefined_type_for_member_access = true:warning
dotnet_style_qualification_for_event = false:warning
dotnet_style_qualification_for_field = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_naming_style.pascal_case.capitalization = pascal_case
-dotnet_naming_style.parameters.capitalization = pascal_case
-dotnet_naming_style.parameters.required_prefix = a
+dotnet_naming_style.parameters.capitalization = camel_case
-dotnet_naming_style.private_fields.capitalization = pascal_case
-dotnet_naming_style.private_fields.required_prefix = _
+dotnet_naming_style.private_fields.capitalization = camel_case
dotnet_naming_style.interfaces.capitalization = pascal_case
dotnet_naming_style.interfaces.required_prefix = I
@@ -94,8 +101,13 @@ dotnet_naming_rule.pascal_case_definitions.style = pascal_case
dotnet_naming_rule.parameters.severity = suggestion
dotnet_naming_rule.parameters.symbols = parameters
-dotnet_naming_rule.parameters.style = parameters
+dotnet_naming_rule.parameters.style = private_fields
dotnet_naming_rule.private_fields.severity = suggestion
dotnet_naming_rule.private_fields.symbols = private_fields
dotnet_naming_rule.private_fields.style = private_fields
+dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
+dotnet_style_operator_placement_when_wrapping = beginning_of_line
+tab_width = 4
+end_of_line = crlf
+dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000000..aa359040c2
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,22 @@
+---
+name: Bug report
+about: For bugs in Cosmos
+title: ''
+labels: Bug
+assignees: ''
+
+---
+
+#### Area of Cosmos - What area of Cosmos are we dealing with?
+
+
+#### Expected Behaviour - What do you think that should happen?
+
+
+#### Actual Behaviour - What unexpectedly happens?
+
+
+#### Reproduction - How did you get this error to appear?
+
+
+#### Version - Were you using the User Kit or Dev Kit? And what User Kit version or Dev Kit commit (Cosmos, IL2CPU, X#)?
diff --git a/.github/ISSUE_TEMPLATE/build-error-and-visual-studio-problems.md b/.github/ISSUE_TEMPLATE/build-error-and-visual-studio-problems.md
new file mode 100644
index 0000000000..92af22fc60
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/build-error-and-visual-studio-problems.md
@@ -0,0 +1,31 @@
+---
+name: Build Error and Visual Studio Problems
+about: For errors when trying to build or modify a Cosmos Kernel
+title: ''
+labels: 'Area: Build, Area: Visual Studio Integration'
+assignees: ''
+
+---
+
+Have you checked Github Issues for similar errors?
+
+**Exception**
+Post the exception returned by Visual Studio
+
+**Visual Studio Output Logs**
+Post the entire output log given by Visual Studio for the build
+
+**How To Reproduce**
+Describe any changes done to a clean kernel for this error to occur.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Context**
+Before posting please confirm that the following are in order
+[ ] Both Cosmos VS Extensions are installed
+[ ] In the NuGet Package Manager "Include prerelease" is selected
+[ ] The Cosmos NuGet package store is selected (NOT nuget.org) in 'Manage NuGet Packages'
+[ ] The Cosmos NuGet packages are installed
+
+Add any other context about the problem which might be helpful.
diff --git a/.github/ISSUE_TEMPLATE/docs_or_website.md b/.github/ISSUE_TEMPLATE/docs_or_website.md
new file mode 100644
index 0000000000..f94084d3af
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/docs_or_website.md
@@ -0,0 +1,16 @@
+---
+name: Documentation/Website Bug Report
+about: For bugs involving the Cosmos documentation & website
+title: ''
+labels: 'Area: Documentation'
+assignees: ''
+
+---
+
+#### URL of Documentation - What page of documentation are we dealing with?
+
+
+#### Expected Behaviour - What do you think should happen?
+
+
+#### Actual Behaviour - What is the issue?
diff --git a/.github/ISSUE_TEMPLATE/installation-error.md b/.github/ISSUE_TEMPLATE/installation-error.md
new file mode 100644
index 0000000000..98ab73dabf
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/installation-error.md
@@ -0,0 +1,28 @@
+---
+name: Installation Error
+about: For errors while trying to install Cosmos
+title: ''
+labels: 'Area: Installer'
+assignees: ''
+
+---
+
+**Describe the problem**
+A clear and concise description of where the installation is going wrong.
+
+**Steps of installation up to now**
+Steps to reproduce the behavior:
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Logs**
+Please post the entire log given by Cosmos. For long logs please use pastebin.
+
+**Setup (please complete the following information):**
+ - Cosmos Version (Userkit/Devkit)
+ - Are you running installer as administrator?
+ - Visual Studio Version if applicable
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/plug-request.md b/.github/ISSUE_TEMPLATE/plug-request.md
new file mode 100644
index 0000000000..6acec1669b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/plug-request.md
@@ -0,0 +1,20 @@
+---
+name: Plug request
+about: Suggest that a certain method should be plugged
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+**What is the usecase for this plug**
+A clear and concise description of where the plug is needed
+
+** Complexity of plug **
+Can this plug be added without requiring new drivers or a lot of work? (Methods requiring Linq, Reflection or Networking etc. are too complex for this request)
+
+**Describe alternatives you've considered**
+Are there workarounds for this plug?
+
+**Additional context**
+Add any other context about the plug request here.
diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml
new file mode 100644
index 0000000000..6bfe464a09
--- /dev/null
+++ b/.github/workflows/build-docs.yml
@@ -0,0 +1,48 @@
+name: Build Docs
+
+on:
+ push:
+ branches: [ master ]
+
+jobs:
+ build:
+ runs-on: windows-latest
+ steps:
+ - name: Checkout Cosmos
+ uses: actions/checkout@v2.4.2
+ with:
+ repository: CosmosOS/Cosmos
+ path: Cosmos
+ - name: Checkout IL2CPU
+ uses: actions/checkout@v2.4.2
+ with:
+ repository: CosmosOS/IL2CPU
+ path: IL2CPU
+ - name: Checkout XSharp
+ uses: actions/checkout@v2.4.2
+ with:
+ repository: CosmosOS/XSharp
+ path: XSharp
+ - name: Checkout Common
+ uses: actions/checkout@v2.4.2
+ with:
+ repository: CosmosOS/Common
+ path: Common
+ - name: Setup dotnet
+ uses: actions/setup-dotnet@v2.0.0
+ with:
+ dotnet-version: 6.0.x
+ - name: Install DocFX
+ shell: pwsh
+ run: choco install docfx
+ - name: Build Docs
+ shell: pwsh
+ run: docfx ./Cosmos/Docs/docfx.json
+ continue-on-error: false
+ - name: Publish to GitHub Pages
+ uses: peaceiris/actions-gh-pages@v3
+ with:
+ personal_token: ${{ secrets.GH_PAGES }}
+ external_repository: CosmosOS/cosmosos.github.io
+ publish_branch: master
+ publish_dir: ./Cosmos/Docs/_site
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 0000000000..d50a098ab0
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -0,0 +1,165 @@
+name: Build and Test
+
+on:
+ workflow_dispatch:
+ pull_request:
+ branches: [ "master" ]
+
+jobs:
+
+ build:
+
+ runs-on: self-hosted
+
+ outputs:
+ testkernels: ${{ steps.testkernels_output.outputs.testkernels }}
+
+ env:
+ USER_KIT_PATH: 'C:\CosmosRun\'
+ BochsPath: 'C:\Program Files (x86)\Bochs-2.6.8\Bochs.exe'
+
+ steps:
+ - name: Checkout Cosmos
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/Cosmos
+ path: Cosmos
+
+ - name: Checkout Common
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/Common
+ path: Common
+
+ - name: Checkout IL2CPU
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/IL2CPU
+ path: IL2CPU
+
+ - name: Checkout XSharp
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/XSharp
+ path: XSharp
+
+ - name: Setup MSBuild
+ uses: microsoft/setup-msbuild@v1.1.3
+
+ - name: Nuget - Cache
+ uses: actions/cache@v3
+ with:
+ path: ~/.nuget/packages
+ key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-nuget
+
+ - name: Nuget - Restore
+ run: |
+ msbuild Cosmos\Build.sln /t:Restore /maxcpucount /verbosity:normal /p:Net48=True
+
+ - name: Build - Cosmos
+ run: |
+ msbuild Cosmos\Build.sln /t:Build /maxcpucount /verbosity:normal /p:Net48=True
+
+ - name: Build - IL2CPU
+ run: |
+ dotnet publish IL2CPU\source\IL2CPU -o "$($env:USER_KIT_PATH)Build\IL2CPU\"
+
+ - name: Copy Output - Cosmos
+ run: |
+ xcopy /Y "Cosmos\source\Cosmos.Build.Tasks\tools\grub2\boot\grub\i386-pc\*.*" "$($env:USER_KIT_PATH)Build\ISO\boot\grub\i386-pc\"
+ xcopy /Y "Cosmos\Build\grub2\boot\grub\grub.cfg" "$($env:USER_KIT_PATH)Build\ISO\boot\grub"
+ xcopy /Y /S "Cosmos\Build\VMware\*" "$($env:USER_KIT_PATH)Build\VMware\"
+ xcopy /Y /S "Cosmos\Build\Tools" "$($env:USER_KIT_PATH)Build\Tools\"
+
+ - name: Copy Output - IL2CPU
+ run: |
+ xcopy /Y "IL2CPU\source\Cosmos.Core.DebugStub\*.xs" "$($env:USER_KIT_PATH)XSharp\DebugStub\"
+
+ # - name: Send test kernels to GITHUB_OUTPUT
+ # id: testkernels_output
+ # run: |
+ # $testList = dotnet test Cosmos\Tests\Cosmos.TestRunner.UnitTest\Cosmos.TestRunner.UnitTest.csproj --list-tests
+ # Write-Host $testList
+ # $testList >> tests.txt
+ # $match = Select-String -Pattern "^.*TestKernel\((.*)\)$" -Path tests.txt
+ # Write-Host $match
+ # $testKernels = $match.matches.groups | where { $_.index % 2 -ne 0 } | Select-Object value | foreach { $_.value }
+ # Write-Host $testKernels
+ # $testKernelsEnv = ""
+ # $testKernels | foreach { $testKernelsEnv += "$($_)," }
+ # $testKernelsEnv = $testKernelsEnv.Trim(",")
+ # Write-Host $testKernelsEnv
+ # "testkernels=[$($testKernelsEnv)]" >> $env:GITHUB_OUTPUT
+
+ test:
+ if: ${{ success() }}
+ needs: [build]
+ runs-on: self-hosted
+
+ strategy:
+ matrix:
+ kernel: [
+ "BoxingTests.Kernel",
+ "Cosmos.Compiler.Tests.TypeSystem.Kernel",
+ "Cosmos.Compiler.Tests.Bcl.Kernel",
+ "Cosmos.Compiler.Tests.Bcl.System.Kernel",
+ "Cosmos.Compiler.Tests.Exceptions.Kernel",
+ "Cosmos.Compiler.Tests.MethodTests.Kernel",
+ "Cosmos.Compiler.Tests.SingleEchoTest.Kernel",
+ "Cosmos.Kernel.Tests.Fat.Kernel",
+ "Cosmos.Kernel.Tests.IO.Kernel",
+ "SimpleStructsAndArraysTest.Kernel",
+ "Cosmos.Kernel.Tests.DiskManager.Kernel",
+ "GraphicTest.Kernel",
+ "NetworkTest.Kernel",
+ "AudioTests.Kernel",
+ "MemoryOperationsTest.Kernel",
+ "ProcessorTests.Kernel"
+ ]
+
+ env:
+ USER_KIT_PATH: 'C:\CosmosRun\'
+ BochsPath: 'C:\Program Files (x86)\Bochs-2.6.8\Bochs.exe'
+
+ steps:
+ - name: Checkout Cosmos
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/Cosmos
+ path: Cosmos
+
+ - name: Checkout Common
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/Common
+ path: Common
+
+ - name: Checkout IL2CPU
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/IL2CPU
+ path: IL2CPU
+
+ - name: Checkout XSharp
+ uses: actions/checkout@v3
+ with:
+ repository: CosmosOS/XSharp
+ path: XSharp
+
+ - name: Copy Bochs
+ run: |
+ xcopy /Y /S "Cosmos\Resources\Bochs\*.*" "${env:ProgramFiles(x86)}\Bochs-2.6.8\"
+
+ - name: Test - Cosmos
+ env:
+ CI: "True"
+ run: |
+ dotnet test "Cosmos\Tests\Cosmos.TestRunner.UnitTest\Cosmos.TestRunner.UnitTest.csproj" --logger "trx;LogFileName=$($env:USER_KIT_PATH)TestResults\${{ matrix.kernel }}-TestResult.trx" --filter "FullyQualifiedName~${{ matrix.kernel }}"
+
+ - name: Upload Test Logs
+ uses: actions/upload-artifact@v3
+ with:
+ name: test-logs
+ path: ${{ env.USER_KIT_PATH }}TestResults
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 0000000000..e823b432b5
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,23 @@
+name: Mark stale issues and pull requests
+
+on:
+ schedule:
+ - cron: "30 1 * * *"
+
+jobs:
+ stale:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/stale@v3
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ stale-issue-message: 'As this issue has received no new activity, it has been marked as stale'
+ stale-pr-message: 'As this pull request has received no new activity, it has been marked as stale'
+ stale-issue-label: 'no-issue-activity'
+ stale-pr-label: 'no-pr-activity'
+ exempt-issue-labels: 'Up for Grabs,Blocked,PR submitted'
+ exempt-pr-labels: 'Work in progress'
+ exempt-all-milestones: true
+ exempt-all-assignees: true
diff --git a/.gitignore b/.gitignore
index 8742bf01be..5ce42c8e8e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,11 +14,11 @@
[Pp]ackages/
[Oo]bj/
+Docs/log.txt
+
*.[Oo]bj
-*.suo
*.ncb
*.aps
-*.user
*.ccscc
*.cache
*.bak
@@ -34,9 +34,6 @@
*.docstates
*.vsp
*.pdb
-*.lock.json
-*.nuget.props
-*.nuget.targets
Thumbs.db
build.force
@@ -55,3 +52,8 @@ Docs/~$RingsGen2.xlsx
source/Kernel-X86/90-Application/GuessKernelGen3.csproj
Docs/~$RingsGen3.xlsx
*.map
+/Resources/Dependencies/Dapper/DapperExtensions.StrongName.deps.json
+/Resources/Dependencies/Dapper/ref/DapperExtensions.StrongName.dll
+
+
+.idea/
\ No newline at end of file
diff --git a/Artwork/liminewp.bmp b/Artwork/liminewp.bmp
new file mode 100644
index 0000000000..e3aeb7c372
Binary files /dev/null and b/Artwork/liminewp.bmp differ
diff --git a/Build.sln b/Build.sln
index 682f55932d..a2826a5433 100644
--- a/Build.sln
+++ b/Build.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2010
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30711.63
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{D95021E1-A2C9-4829-819E-ED433AF13162}"
EndProject
@@ -61,7 +61,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core", "source\Cosmo
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.HAL2", "source\Cosmos.HAL2\Cosmos.HAL2.csproj", "{DE4F000A-B65C-4395-B066-891B7423E9EC}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp.csproj", "{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp\XSharp.csproj", "{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core_Plugs", "source\Cosmos.Core_Plugs\Cosmos.Core_Plugs.csproj", "{89DB6325-2C81-467D-BE8A-C4AEBB6540A5}"
EndProject
@@ -71,8 +71,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System2_Plugs", "sou
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.Kernel.Plugs.Asm", "source\Cosmos.Debug.Kernel.Plugs.Asm\Cosmos.Debug.Kernel.Plugs.Asm.csproj", "{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.Assembler", "..\XSharp\source\XSharp.Assembler\XSharp.Assembler.csproj", "{E1AC1E9B-27EA-4AE0-8C83-328BD96F978A}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Build.Common", "..\Common\source\Cosmos.Build.Common\Cosmos.Build.Common.csproj", "{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2CPU.API", "..\IL2CPU\source\IL2CPU.API\IL2CPU.API.csproj", "{A9469897-4FD8-49E7-97F1-FE420A2B75B9}"
@@ -85,28 +83,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test Runner", "Test Runner"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.TestRunner.TestController", "Tests\Cosmos.TestRunner.TestController\Cosmos.TestRunner.TestController.csproj", "{2EEC1BF8-758F-4D9D-B063-8CF005468B24}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheRingMaster", "source\TheRingMaster\TheRingMaster.csproj", "{0EE3DF1C-44E6-4669-88AA-D8D2612DA817}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{3C4B0261-3B1D-4503-97F1-AC0252D500E6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NASM", "Tools\NASM\NASM.csproj", "{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spruce", "..\XSharp\source\Spruce\Spruce.csproj", "{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.x86", "..\XSharp\source\XSharp.x86\XSharp.x86.csproj", "{91442476-F818-4A7D-A3BC-2159BCDE3352}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Build.Tasks", "source\Cosmos.Build.Tasks\Cosmos.Build.Tasks.csproj", "{0BA0EC69-F124-44C1-823D-C97FE3AEC59E}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VSPropertyPages", "..\Common\source\VSPropertyPages\VSPropertyPages.csproj", "{3487890D-43F4-4810-9587-1F02F646915D}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.HyperVServer", "source\Cosmos.Debug.HyperVServer\Cosmos.Debug.HyperVServer.csproj", "{9413B5A0-1120-43AD-8784-8A3726C1898C}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DapperExtensions.StrongName", "Resources\Dependencies\DapperExtensions.StrongName\DapperExtensions.StrongName.csproj", "{28F18214-DFF8-4A30-BA24-4F32C20CA910}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2CPU.Debug.Symbols.Net48", "..\IL2CPU\source\IL2CPU.Debug.Symbols.Net48\IL2CPU.Debug.Symbols.Net48.csproj", "{440CE2D4-024F-45D3-A95C-9077CC0A51E3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.Plugs", "source\Cosmos.Plugs\Cosmos.Plugs.csproj", "{509FB0F8-6D0F-424F-9C6B-9E5818B06B21}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug-CI|Any CPU = Debug-CI|Any CPU
Release|Any CPU = Release|Any CPU
Release-CI|Any CPU = Release-CI|Any CPU
+ TEST|Any CPU = TEST|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AB24E403-54F3-4F67-B5E0-119A7227AAC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -117,6 +116,8 @@ Global
{AB24E403-54F3-4F67-B5E0-119A7227AAC1}.Release|Any CPU.Build.0 = Release|Any CPU
{AB24E403-54F3-4F67-B5E0-119A7227AAC1}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{AB24E403-54F3-4F67-B5E0-119A7227AAC1}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {AB24E403-54F3-4F67-B5E0-119A7227AAC1}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {AB24E403-54F3-4F67-B5E0-119A7227AAC1}.TEST|Any CPU.Build.0 = TEST|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -125,6 +126,8 @@ Global
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Release|Any CPU.Build.0 = Release|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.TEST|Any CPU.Build.0 = Release|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -133,6 +136,8 @@ Global
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Release|Any CPU.Build.0 = Release|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {3370FC04-B669-46A4-A4AA-A89540318F8D}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {3370FC04-B669-46A4-A4AA-A89540318F8D}.TEST|Any CPU.Build.0 = Release|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -141,6 +146,8 @@ Global
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Release|Any CPU.Build.0 = Release|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.TEST|Any CPU.Build.0 = Release|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -149,6 +156,8 @@ Global
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Release|Any CPU.Build.0 = Release|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {3D84CF8B-C6DF-4D78-8DE1-708582B43711}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {3D84CF8B-C6DF-4D78-8DE1-708582B43711}.TEST|Any CPU.Build.0 = Release|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -157,6 +166,8 @@ Global
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Release|Any CPU.Build.0 = Release|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.TEST|Any CPU.Build.0 = Release|Any CPU
{F3025446-D2C7-4FEA-AB03-C707F7B48B43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F3025446-D2C7-4FEA-AB03-C707F7B48B43}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F3025446-D2C7-4FEA-AB03-C707F7B48B43}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -165,6 +176,8 @@ Global
{F3025446-D2C7-4FEA-AB03-C707F7B48B43}.Release|Any CPU.Build.0 = Release|Any CPU
{F3025446-D2C7-4FEA-AB03-C707F7B48B43}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{F3025446-D2C7-4FEA-AB03-C707F7B48B43}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {F3025446-D2C7-4FEA-AB03-C707F7B48B43}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {F3025446-D2C7-4FEA-AB03-C707F7B48B43}.TEST|Any CPU.Build.0 = TEST|Any CPU
{3C45A898-4AA9-476F-8302-63391D6ED044}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C45A898-4AA9-476F-8302-63391D6ED044}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C45A898-4AA9-476F-8302-63391D6ED044}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -173,6 +186,8 @@ Global
{3C45A898-4AA9-476F-8302-63391D6ED044}.Release|Any CPU.Build.0 = Release|Any CPU
{3C45A898-4AA9-476F-8302-63391D6ED044}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{3C45A898-4AA9-476F-8302-63391D6ED044}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {3C45A898-4AA9-476F-8302-63391D6ED044}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {3C45A898-4AA9-476F-8302-63391D6ED044}.TEST|Any CPU.Build.0 = TEST|Any CPU
{2E740096-911F-47D0-A46D-998DBB76FC5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E740096-911F-47D0-A46D-998DBB76FC5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E740096-911F-47D0-A46D-998DBB76FC5D}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -181,6 +196,8 @@ Global
{2E740096-911F-47D0-A46D-998DBB76FC5D}.Release|Any CPU.Build.0 = Release|Any CPU
{2E740096-911F-47D0-A46D-998DBB76FC5D}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{2E740096-911F-47D0-A46D-998DBB76FC5D}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {2E740096-911F-47D0-A46D-998DBB76FC5D}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {2E740096-911F-47D0-A46D-998DBB76FC5D}.TEST|Any CPU.Build.0 = TEST|Any CPU
{BC91BCEF-D146-4EB0-BE63-C637880C5800}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BC91BCEF-D146-4EB0-BE63-C637880C5800}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BC91BCEF-D146-4EB0-BE63-C637880C5800}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -189,6 +206,8 @@ Global
{BC91BCEF-D146-4EB0-BE63-C637880C5800}.Release|Any CPU.Build.0 = Release|Any CPU
{BC91BCEF-D146-4EB0-BE63-C637880C5800}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{BC91BCEF-D146-4EB0-BE63-C637880C5800}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {BC91BCEF-D146-4EB0-BE63-C637880C5800}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {BC91BCEF-D146-4EB0-BE63-C637880C5800}.TEST|Any CPU.Build.0 = TEST|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -197,6 +216,8 @@ Global
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release|Any CPU.Build.0 = Release|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|Any CPU.Build.0 = TEST|Any CPU
{0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -205,6 +226,8 @@ Global
{0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.Release|Any CPU.Build.0 = Release|Any CPU
{0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {0AF0A39D-7184-4EBE-B8CB-4A61034607FE}.TEST|Any CPU.Build.0 = TEST|Any CPU
{72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -213,6 +236,8 @@ Global
{72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.Release|Any CPU.Build.0 = Release|Any CPU
{72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {72EEFBFE-AF88-4E16-AD6C-7D9857CDC32C}.TEST|Any CPU.Build.0 = TEST|Any CPU
{3C515676-8565-4A19-98E7-266F83D579A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3C515676-8565-4A19-98E7-266F83D579A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3C515676-8565-4A19-98E7-266F83D579A8}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -221,6 +246,8 @@ Global
{3C515676-8565-4A19-98E7-266F83D579A8}.Release|Any CPU.Build.0 = Release|Any CPU
{3C515676-8565-4A19-98E7-266F83D579A8}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{3C515676-8565-4A19-98E7-266F83D579A8}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {3C515676-8565-4A19-98E7-266F83D579A8}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {3C515676-8565-4A19-98E7-266F83D579A8}.TEST|Any CPU.Build.0 = TEST|Any CPU
{B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -229,6 +256,8 @@ Global
{B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.Release|Any CPU.Build.0 = Release|Any CPU
{B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {B45F760C-6D3D-48E1-9E2C-97CECC6A7061}.TEST|Any CPU.Build.0 = TEST|Any CPU
{DE4F000A-B65C-4395-B066-891B7423E9EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE4F000A-B65C-4395-B066-891B7423E9EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DE4F000A-B65C-4395-B066-891B7423E9EC}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -237,12 +266,16 @@ Global
{DE4F000A-B65C-4395-B066-891B7423E9EC}.Release|Any CPU.Build.0 = Release|Any CPU
{DE4F000A-B65C-4395-B066-891B7423E9EC}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{DE4F000A-B65C-4395-B066-891B7423E9EC}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {DE4F000A-B65C-4395-B066-891B7423E9EC}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {DE4F000A-B65C-4395-B066-891B7423E9EC}.TEST|Any CPU.Build.0 = TEST|Any CPU
{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.Release|Any CPU.Build.0 = Release|Any CPU
{12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
+ {12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {12B1AAA1-14DE-4B85-8C33-B32EA3A95B82}.TEST|Any CPU.Build.0 = Release|Any CPU
{89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -251,6 +284,8 @@ Global
{89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.Release|Any CPU.Build.0 = Release|Any CPU
{89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {89DB6325-2C81-467D-BE8A-C4AEBB6540A5}.TEST|Any CPU.Build.0 = TEST|Any CPU
{2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -259,6 +294,8 @@ Global
{2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.Release|Any CPU.Build.0 = Release|Any CPU
{2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {2A24DA41-0D3A-48A6-83D5-8584A1D4CA94}.TEST|Any CPU.Build.0 = TEST|Any CPU
{9A327DB7-42E2-4C82-9537-0D995B9171FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9A327DB7-42E2-4C82-9537-0D995B9171FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9A327DB7-42E2-4C82-9537-0D995B9171FF}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -267,6 +304,8 @@ Global
{9A327DB7-42E2-4C82-9537-0D995B9171FF}.Release|Any CPU.Build.0 = Release|Any CPU
{9A327DB7-42E2-4C82-9537-0D995B9171FF}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{9A327DB7-42E2-4C82-9537-0D995B9171FF}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {9A327DB7-42E2-4C82-9537-0D995B9171FF}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {9A327DB7-42E2-4C82-9537-0D995B9171FF}.TEST|Any CPU.Build.0 = TEST|Any CPU
{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -275,18 +314,16 @@ Global
{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.Release|Any CPU.Build.0 = Release|Any CPU
{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.Release-CI|Any CPU.Build.0 = Release|Any CPU
- {E1AC1E9B-27EA-4AE0-8C83-328BD96F978A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E1AC1E9B-27EA-4AE0-8C83-328BD96F978A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E1AC1E9B-27EA-4AE0-8C83-328BD96F978A}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
- {E1AC1E9B-27EA-4AE0-8C83-328BD96F978A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E1AC1E9B-27EA-4AE0-8C83-328BD96F978A}.Release|Any CPU.Build.0 = Release|Any CPU
- {E1AC1E9B-27EA-4AE0-8C83-328BD96F978A}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
+ {7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B}.TEST|Any CPU.Build.0 = TEST|Any CPU
{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.Release|Any CPU.Build.0 = Release|Any CPU
{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
+ {CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {CB20F8F9-8C1D-43A6-96EA-89FEC2512C99}.TEST|Any CPU.Build.0 = Release|Any CPU
{A9469897-4FD8-49E7-97F1-FE420A2B75B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A9469897-4FD8-49E7-97F1-FE420A2B75B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A9469897-4FD8-49E7-97F1-FE420A2B75B9}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -295,6 +332,8 @@ Global
{A9469897-4FD8-49E7-97F1-FE420A2B75B9}.Release|Any CPU.Build.0 = Release|Any CPU
{A9469897-4FD8-49E7-97F1-FE420A2B75B9}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{A9469897-4FD8-49E7-97F1-FE420A2B75B9}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {A9469897-4FD8-49E7-97F1-FE420A2B75B9}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {A9469897-4FD8-49E7-97F1-FE420A2B75B9}.TEST|Any CPU.Build.0 = TEST|Any CPU
{366C2EC6-B9D8-4676-9C88-98F041B8FC93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{366C2EC6-B9D8-4676-9C88-98F041B8FC93}.Debug|Any CPU.Build.0 = Debug|Any CPU
{366C2EC6-B9D8-4676-9C88-98F041B8FC93}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -303,6 +342,8 @@ Global
{366C2EC6-B9D8-4676-9C88-98F041B8FC93}.Release|Any CPU.Build.0 = Release|Any CPU
{366C2EC6-B9D8-4676-9C88-98F041B8FC93}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{366C2EC6-B9D8-4676-9C88-98F041B8FC93}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {366C2EC6-B9D8-4676-9C88-98F041B8FC93}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {366C2EC6-B9D8-4676-9C88-98F041B8FC93}.TEST|Any CPU.Build.0 = TEST|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -311,6 +352,8 @@ Global
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Release|Any CPU.Build.0 = Release|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {535A7E34-AC73-4781-B791-2C81A9066A2C}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {535A7E34-AC73-4781-B791-2C81A9066A2C}.TEST|Any CPU.Build.0 = Release|Any CPU
{2EEC1BF8-758F-4D9D-B063-8CF005468B24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2EEC1BF8-758F-4D9D-B063-8CF005468B24}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2EEC1BF8-758F-4D9D-B063-8CF005468B24}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -319,14 +362,8 @@ Global
{2EEC1BF8-758F-4D9D-B063-8CF005468B24}.Release|Any CPU.Build.0 = Release|Any CPU
{2EEC1BF8-758F-4D9D-B063-8CF005468B24}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{2EEC1BF8-758F-4D9D-B063-8CF005468B24}.Release-CI|Any CPU.Build.0 = Release|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Debug-CI|Any CPU.Build.0 = Debug|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Release|Any CPU.Build.0 = Release|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {2EEC1BF8-758F-4D9D-B063-8CF005468B24}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {2EEC1BF8-758F-4D9D-B063-8CF005468B24}.TEST|Any CPU.Build.0 = TEST|Any CPU
{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -335,18 +372,16 @@ Global
{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.Release|Any CPU.Build.0 = Release|Any CPU
{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65}.TEST|Any CPU.Build.0 = TEST|Any CPU
{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.Release|Any CPU.Build.0 = Release|Any CPU
{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
- {91442476-F818-4A7D-A3BC-2159BCDE3352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {91442476-F818-4A7D-A3BC-2159BCDE3352}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {91442476-F818-4A7D-A3BC-2159BCDE3352}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
- {91442476-F818-4A7D-A3BC-2159BCDE3352}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {91442476-F818-4A7D-A3BC-2159BCDE3352}.Release|Any CPU.Build.0 = Release|Any CPU
- {91442476-F818-4A7D-A3BC-2159BCDE3352}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
+ {C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F}.TEST|Any CPU.Build.0 = Release|Any CPU
{0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -355,12 +390,16 @@ Global
{0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.Release|Any CPU.Build.0 = Release|Any CPU
{0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {0BA0EC69-F124-44C1-823D-C97FE3AEC59E}.TEST|Any CPU.Build.0 = Release|Any CPU
{3487890D-43F4-4810-9587-1F02F646915D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3487890D-43F4-4810-9587-1F02F646915D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3487890D-43F4-4810-9587-1F02F646915D}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
{3487890D-43F4-4810-9587-1F02F646915D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3487890D-43F4-4810-9587-1F02F646915D}.Release|Any CPU.Build.0 = Release|Any CPU
{3487890D-43F4-4810-9587-1F02F646915D}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
+ {3487890D-43F4-4810-9587-1F02F646915D}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {3487890D-43F4-4810-9587-1F02F646915D}.TEST|Any CPU.Build.0 = Release|Any CPU
{9413B5A0-1120-43AD-8784-8A3726C1898C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9413B5A0-1120-43AD-8784-8A3726C1898C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9413B5A0-1120-43AD-8784-8A3726C1898C}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
@@ -369,6 +408,38 @@ Global
{9413B5A0-1120-43AD-8784-8A3726C1898C}.Release|Any CPU.Build.0 = Release|Any CPU
{9413B5A0-1120-43AD-8784-8A3726C1898C}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
{9413B5A0-1120-43AD-8784-8A3726C1898C}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {9413B5A0-1120-43AD-8784-8A3726C1898C}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {9413B5A0-1120-43AD-8784-8A3726C1898C}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Debug-CI|Any CPU.Build.0 = Debug|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Release|Any CPU.Build.0 = Release|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Debug-CI|Any CPU.Build.0 = Debug|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Release-CI|Any CPU.ActiveCfg = Release|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.Release-CI|Any CPU.Build.0 = Release|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Debug-CI|Any CPU.ActiveCfg = Debug|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Debug-CI|Any CPU.Build.0 = Debug|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Release|Any CPU.Build.0 = Release|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Release-CI|Any CPU.ActiveCfg = Debug|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.Release-CI|Any CPU.Build.0 = Debug|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.TEST|Any CPU.ActiveCfg = Debug|Any CPU
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21}.TEST|Any CPU.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -400,19 +471,18 @@ Global
{2A24DA41-0D3A-48A6-83D5-8584A1D4CA94} = {360A9DE9-F8CF-4A38-9593-3699648DA616}
{9A327DB7-42E2-4C82-9537-0D995B9171FF} = {056A94C1-6C75-4730-B62A-675779CD07FB}
{7549D7F8-58A3-4F4F-8544-DEF2ABF79A0B} = {E3779B95-E47B-4CAD-B8C1-0549E30AA4F2}
- {E1AC1E9B-27EA-4AE0-8C83-328BD96F978A} = {9C8A3E55-9045-44CA-BFD4-16D5B4343A90}
{CB20F8F9-8C1D-43A6-96EA-89FEC2512C99} = {D95021E1-A2C9-4829-819E-ED433AF13162}
{A9469897-4FD8-49E7-97F1-FE420A2B75B9} = {6A15C540-8278-4B9C-B890-FA57FB6AE6A6}
{366C2EC6-B9D8-4676-9C88-98F041B8FC93} = {CAF5EB57-6CAD-446D-8FC7-4C03D4B996A6}
{535A7E34-AC73-4781-B791-2C81A9066A2C} = {CD3F5E45-8B24-424F-ADF1-0211712F4CB7}
{2EEC1BF8-758F-4D9D-B063-8CF005468B24} = {D4833110-032D-40E3-ACB3-F11583727B08}
- {0EE3DF1C-44E6-4669-88AA-D8D2612DA817} = {6A15C540-8278-4B9C-B890-FA57FB6AE6A6}
{A7C295D2-8DEA-4CAE-A8CB-44CD0529EC65} = {3C4B0261-3B1D-4503-97F1-AC0252D500E6}
{C984AF76-66C2-4A5F-A3DC-9F8FE0CD4D2F} = {9C8A3E55-9045-44CA-BFD4-16D5B4343A90}
- {91442476-F818-4A7D-A3BC-2159BCDE3352} = {9C8A3E55-9045-44CA-BFD4-16D5B4343A90}
{0BA0EC69-F124-44C1-823D-C97FE3AEC59E} = {D95021E1-A2C9-4829-819E-ED433AF13162}
- {3487890D-43F4-4810-9587-1F02F646915D} = {CD3F5E45-8B24-424F-ADF1-0211712F4CB7}
{9413B5A0-1120-43AD-8784-8A3726C1898C} = {FF5BAFDE-AE9D-438D-935A-86B33EE0A758}
+ {28F18214-DFF8-4A30-BA24-4F32C20CA910} = {FF5BAFDE-AE9D-438D-935A-86B33EE0A758}
+ {440CE2D4-024F-45D3-A95C-9077CC0A51E3} = {FF5BAFDE-AE9D-438D-935A-86B33EE0A758}
+ {509FB0F8-6D0F-424F-9C6B-9E5818B06B21} = {4D3F3613-E112-4013-AB81-B8CCED78A555}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E5429BF0-2CEE-45B0-BC73-2188A409E1D3}
diff --git a/Build/Cosmos.ruleset b/Build/Cosmos.ruleset
deleted file mode 100644
index f13b029be1..0000000000
--- a/Build/Cosmos.ruleset
+++ /dev/null
@@ -1,355 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Build/README.md b/Build/README.md
new file mode 100644
index 0000000000..6be36775c5
--- /dev/null
+++ b/Build/README.md
@@ -0,0 +1,10 @@
+### Bin
+
+- Often may appear to be a copy of VSIP but is used to provide bin refs to projs in SLN files.
+- Separate from VSIP to allow updating without worry about locks caused by VS in VSIP. Allows
+files to be updated independently for running and without need to update VS just because a
+common file is locked.
+
+### VSIP
+
+- Bin output of Builder for VS to use for VSIP etc
diff --git a/Build/ReadMe.txt b/Build/ReadMe.txt
deleted file mode 100644
index c645eb2ec6..0000000000
--- a/Build/ReadMe.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Bin
--Often may appear to be a copy of VSIP but is used to provide bin refs to projs in SLN files.
--Separate from VSIP to allow updating without worry about locks caused by VS in VSIP. Allows
-files to be updated independently for running and without need to update VS just because a
-common file is locked.
-
-VSIP
--Bin outpout of Builder for VS to use for VSIP etc
diff --git a/Build/Targets/Import.props b/Build/Targets/Import.props
index 67e239182a..bd767b56a6 100644
--- a/Build/Targets/Import.props
+++ b/Build/Targets/Import.props
@@ -11,4 +11,6 @@
+
+
diff --git a/Build/Targets/Import.targets b/Build/Targets/Import.targets
index 3dc1e1b143..73cc879f2d 100644
--- a/Build/Targets/Import.targets
+++ b/Build/Targets/Import.targets
@@ -1,23 +1,28 @@
-
+
+ True
+
-
-
-
-
-
+
-
+
+
+
-
-
-
+
-
+
+
+
+
+
+
+
+
-
+
diff --git a/Build/Targets/InternalPackages.targets b/Build/Targets/InternalPackages.targets
index 8804045b7d..5be96af5f4 100644
--- a/Build/Targets/InternalPackages.targets
+++ b/Build/Targets/InternalPackages.targets
@@ -2,7 +2,6 @@
-
@@ -12,6 +11,7 @@
+
@@ -19,12 +19,12 @@
-
+
-
+
diff --git a/Build/Targets/MSBuildExtension.targets b/Build/Targets/MSBuildExtension.targets
new file mode 100644
index 0000000000..4e3f7da98a
--- /dev/null
+++ b/Build/Targets/MSBuildExtension.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/Build/Targets/NETFramework.targets b/Build/Targets/NETFramework.targets
deleted file mode 100644
index 914b42e54d..0000000000
--- a/Build/Targets/NETFramework.targets
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/Build/Targets/PackageProperties.props b/Build/Targets/PackageProperties.props
index 2cdad86b76..83c93005e0 100644
--- a/Build/Targets/PackageProperties.props
+++ b/Build/Targets/PackageProperties.props
@@ -22,7 +22,7 @@
-
+
diff --git a/Build/Targets/PackageVersions.targets b/Build/Targets/PackageVersions.targets
index c7e85ee69b..bbd5c7ecc9 100644
--- a/Build/Targets/PackageVersions.targets
+++ b/Build/Targets/PackageVersions.targets
@@ -1,26 +1,19 @@
- 1.0.0-alpha-004
- 15.8.0
- 15.0.27
- 1.16.30
- 15.9.3032
- 1.3.2
- 4.8.0
- 3.10.1
- 3.10.0
- 2.6.2
+ 3.0.18
+ 0.7.0
+ 6.8.0
+ 3.11.0
+ 3.12.0
+ 2.6.2
-
-
-
-
-
-
-
+
+
+
+
diff --git a/Build/Targets/RestoreSources.props b/Build/Targets/RestoreSources.props
index 8e64ada25d..ef7afc63a2 100644
--- a/Build/Targets/RestoreSources.props
+++ b/Build/Targets/RestoreSources.props
@@ -9,7 +9,6 @@
https://ci.appveyor.com/nuget/cosmos-common;
https://ci.appveyor.com/nuget/il2cpu;
https://ci.appveyor.com/nuget/xsharp;
- https://dotnet.myget.org/F/roslyn-tools/api/v3/index.json
$(RestoreSources);$(DefaultPackageOutputPath)
diff --git a/Build/Targets/Tool.targets b/Build/Targets/Tool.targets
new file mode 100644
index 0000000000..69a5a83e4b
--- /dev/null
+++ b/Build/Targets/Tool.targets
@@ -0,0 +1,74 @@
+
+
+
+ True
+
+
+
+ True
+
+
+
+ False
+ True
+ $(TargetsForTfmSpecificContentInPackage);PackToolProject
+
+
+
+
+
+ $([MSBuild]::EnsureTrailingSlash($(ToolPackagePath)))
+ $(ToolPackagePath)$(TargetFramework)\
+
+
+
+
+
+
+
+
+
+ tools\$(ToolPackagePath)%(GeneratedToolFiles.RecursiveDir)
+
+
+ tools\$(ToolPackagePath)%(ResolvedFileToPublish.RelativePath)
+
+
+
+
+
+
+ $(GenerateNuspecDependsOn);_GetProjectReferencesContentToPack
+
+
+
+
+
+
+
+
+
+
+ False
+
+
+
+
+
+
+ <_NupkgContent Include="@(_PackageFiles->'%(FullPath)')"
+ PackagePath="$([MSBuild]::EnsureTrailingSlash($(_NupkgContentPath)))%(_PackageFiles.PackagePath)" />
+
+
+
+
+
diff --git a/Build/Targets/VSIX.targets b/Build/Targets/VSIX.targets
index 35b021b604..13f89c9e50 100644
--- a/Build/Targets/VSIX.targets
+++ b/Build/Targets/VSIX.targets
@@ -10,11 +10,6 @@
$(_TargetVsixContainerDir)$(TargetVsixContainerName)
-
-
-
-
-
+
+
+ 3.0.22
+ 0.7.0
+ 16.7.0
+ 1.0.0
+ 16.0.1
+ 16.0.1
+ 16.0.374-pre
+ 15.0.27
+ 1.16.30
+ 16.1.28917.181
+ 11.0.61031
+ 16.6.2051
+ 1.4.0
+ 5.1.0
+ 3.11.0
+ 3.13.0
+ 9.12.1
+
+
+
diff --git a/Build/Test Kernel/README.md b/Build/Test Kernel/README.md
new file mode 100644
index 0000000000..2bf8e87faf
--- /dev/null
+++ b/Build/Test Kernel/README.md
@@ -0,0 +1,16 @@
+# Build test kernel
+Remove the .iso file, and run the commands in the iso root dir:
+
+Compiling output.bin :
+
+```cmd
+nasm -f bin -o output.bin kernel.asm
+```
+
+Build iso:
+
+```cmd
+mkisofs -R -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso
+```
+
+then use boot.iso as boot image.
diff --git a/Build/Test Kernel/readme.txt b/Build/Test Kernel/readme.txt
deleted file mode 100644
index 720aab54b4..0000000000
--- a/Build/Test Kernel/readme.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-remove the .iso file, and run the commands in the iso root dir:
-
-compiling output.bin :
-
-nasm -f bin -o output.bin kernel.asm
-
-build iso:
-mkisofs -R -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso
-
-then use boot.iso as boot image.
\ No newline at end of file
diff --git a/Build/Tools/NAsm/LICENSE b/Build/Tools/NAsm/LICENSE
deleted file mode 100644
index 331e2600ad..0000000000
--- a/Build/Tools/NAsm/LICENSE
+++ /dev/null
@@ -1,29 +0,0 @@
-NASM is now licensed under the 2-clause BSD license, also known as the
-simplified BSD license.
-
- Copyright 1996-2010 the NASM Authors - All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following
- conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Build/Tools/NAsm/nasm.exe b/Build/Tools/NAsm/nasm.exe
deleted file mode 100644
index d6d39f5216..0000000000
Binary files a/Build/Tools/NAsm/nasm.exe and /dev/null differ
diff --git a/Build/Tools/NAsm/ndisasm.exe b/Build/Tools/NAsm/ndisasm.exe
deleted file mode 100644
index 6907fe4fd8..0000000000
Binary files a/Build/Tools/NAsm/ndisasm.exe and /dev/null differ
diff --git a/Build/Tools/NAsm/version.txt b/Build/Tools/NAsm/version.txt
deleted file mode 100644
index bc60569040..0000000000
--- a/Build/Tools/NAsm/version.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-2.12.01
-
-before updating, test..
\ No newline at end of file
diff --git a/Build/Tools/Yasm/LICENSE.txt b/Build/Tools/Yasm/LICENSE.txt
new file mode 100644
index 0000000000..60b9b71d1b
--- /dev/null
+++ b/Build/Tools/Yasm/LICENSE.txt
@@ -0,0 +1,74 @@
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+-------------------------------------------------------------------------------
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. Neither the name of the author nor the names of other contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+-------------------------------------------------------------------------------
+NASM is now licensed under the 2-clause BSD license, also known as the
+simplified BSD license.
+
+ Copyright 1996-2009 the NASM Authors - All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following
+ conditions are met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/Build/Tools/Yasm/yasm.exe b/Build/Tools/Yasm/yasm.exe
new file mode 100644
index 0000000000..b2cc6af610
Binary files /dev/null and b/Build/Tools/Yasm/yasm.exe differ
diff --git a/Build/Tools/cygwin/cygiconv-2.dll b/Build/Tools/cygwin/cygiconv-2.dll
deleted file mode 100644
index 926464c7e2..0000000000
Binary files a/Build/Tools/cygwin/cygiconv-2.dll and /dev/null differ
diff --git a/Build/Tools/cygwin/cygintl-3.dll b/Build/Tools/cygwin/cygintl-3.dll
deleted file mode 100644
index bd6e3829ab..0000000000
Binary files a/Build/Tools/cygwin/cygintl-3.dll and /dev/null differ
diff --git a/Build/Tools/cygwin/cygwin1.dll b/Build/Tools/cygwin/cygwin1.dll
index 73c27fc1fb..00d8a72aad 100644
Binary files a/Build/Tools/cygwin/cygwin1.dll and b/Build/Tools/cygwin/cygwin1.dll differ
diff --git a/Build/Tools/cygwin/ld.exe b/Build/Tools/cygwin/ld.exe
index 963eeabd3c..52fc663fea 100644
Binary files a/Build/Tools/cygwin/ld.exe and b/Build/Tools/cygwin/ld.exe differ
diff --git a/Build/Tools/cygwin/objdump.bat b/Build/Tools/cygwin/objdump.bat
new file mode 100644
index 0000000000..63a2817c5b
--- /dev/null
+++ b/Build/Tools/cygwin/objdump.bat
@@ -0,0 +1,7 @@
+@ECHO OFF
+
+REM %1 == ToolPath
+REM %2 == ElfFile
+REM %3 == MapFile
+
+"%~1\objdump.exe" --wide --syms "%~2" > "%~3"
diff --git a/Build/Tools/cygwin/objdump.exe b/Build/Tools/cygwin/objdump.exe
index e709c327a5..fbd59f7f51 100644
Binary files a/Build/Tools/cygwin/objdump.exe and b/Build/Tools/cygwin/objdump.exe differ
diff --git a/Build/Tools/cygwin/objdump.sh b/Build/Tools/cygwin/objdump.sh
new file mode 100644
index 0000000000..4b16c3ae66
--- /dev/null
+++ b/Build/Tools/cygwin/objdump.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+# %1 == ToolPath
+# %2 == ElfFile
+# %3 == MapFile
+objdump --wide --syms "$2" > "$3"
diff --git a/Build/VMWare/Workstation/Cosmos.vmx b/Build/VMWare/Workstation/Cosmos.vmx
index 7a71985182..da62d2a6ce 100644
--- a/Build/VMWare/Workstation/Cosmos.vmx
+++ b/Build/VMWare/Workstation/Cosmos.vmx
@@ -51,8 +51,11 @@ serial0.pipe.endPoint = "client"
serial0.tryNoRxLoss = "TRUE"
sound.present = "TRUE"
ethernet0.present = "TRUE"
-ethernet0.wakeOnPcktRcv = "FALSE"
+ethernet0.connectionType = "nat"
ethernet0.addressType = "generated"
+ethernet0.generatedAddress = "00:0c:29:0c:c9:44"
+ethernet0.generatedAddressOffset = "0"
+ethernet0.pciSlotNumber = "34"
usb.present = "TRUE"
usb.generic.allowHID = "TRUE"
ehci.present = "TRUE"
diff --git a/Build/VMWare/Workstation/Filesystem(OLD).vmdk b/Build/VMWare/Workstation/Filesystem(OLD).vmdk
deleted file mode 100644
index da5998300f..0000000000
Binary files a/Build/VMWare/Workstation/Filesystem(OLD).vmdk and /dev/null differ
diff --git a/Build/VMWare/Workstation/Filesystem.vmdk b/Build/VMWare/Workstation/Filesystem.vmdk
index 0d95353311..586f772354 100644
Binary files a/Build/VMWare/Workstation/Filesystem.vmdk and b/Build/VMWare/Workstation/Filesystem.vmdk differ
diff --git a/Build/VMWare/Workstation/FilesystemTest.vmdk b/Build/VMWare/Workstation/FilesystemTest.vmdk
new file mode 100644
index 0000000000..a9743a6443
Binary files /dev/null and b/Build/VMWare/Workstation/FilesystemTest.vmdk differ
diff --git a/Build/grub2/boot/grub/grub.cfg b/Build/grub2/boot/grub/grub.cfg
new file mode 100644
index 0000000000..8d97b0c09c
--- /dev/null
+++ b/Build/grub2/boot/grub/grub.cfg
@@ -0,0 +1,6 @@
+set timeout=0
+
+menuentry 'Cosmos' {
+ multiboot2 /boot/Cosmos.bin
+ boot
+}
diff --git a/Build/limine/boot/limine.cfg b/Build/limine/boot/limine.cfg
new file mode 100644
index 0000000000..979897d803
--- /dev/null
+++ b/Build/limine/boot/limine.cfg
@@ -0,0 +1,12 @@
+DEFAULT_ENTRY=1
+TIMEOUT=3
+VERBOSE=yes
+
+# TERM_WALLPAPER=boot:///boot/bg.bmp
+TERM_BACKDROP=008080
+
+:Multiboot2 CosmosKernel
+ COMMENT=Boot Cosmos Kernel using Multiboot2 protocol
+
+ PROTOCOL=multiboot2
+ KERNEL_PATH=boot:///boot/Cosmos.bin
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f074fdf5c9..de74adecce 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,15 +1,13 @@
CosmosOS is a volunteer effort. We encourage you to pitch in. Join the team!
-- Before you begin work, make sure to clear it with the project owners. It will save a lot of time down the road.
+- Before you begin work, make sure to discuss it with the maintainers here on github or on discord. It will save a lot of time down the road.
- Fork the project over to your account, do not request repository access.
- Please be sure to check out the FAQ to see if any questions you have are already answered. [FAQ on GoCosmos.org](https://www.gocosmos.org/faq/)
- Please don't "bump" your issue(s). If you've filed it, we have seen it.
-- Please be sure to install the [EditorConfig](https://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328). This ensures your pull requests meet the required formatting and conventions. [See here](https://github.com/CosmosOS/Cosmos/wiki/FAQ#what-is-this-editorconfig-file-and-how-do-i-use-it) for more info.
-
-Want to get started contributing to Cosmos? Check out the open issues page:
-- [High priority](https://github.com/CosmosOS/Cosmos/labels/Priority%3A%20High)
-- [Medium priority](https://github.com/CosmosOS/Cosmos/labels/Priority%3A%20Medium)
+- If you have any questions or need a bit of help feel free to open a discussion post or ask on the discord.
+Want to get started contributing to Cosmos?
+Check out the open issues page for open [issues](https://github.com/CosmosOS/Cosmos/labels/Up%20for%20Grabs).
Thanks!
diff --git a/Demos.sln b/Demos.sln
deleted file mode 100644
index c49ed4883e..0000000000
--- a/Demos.sln
+++ /dev/null
@@ -1,64 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28010.2041
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Beep", "Beep", "{85AD61C5-4105-4E94-9AC3-345C3744770A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Graphics", "Graphics", "{7A1220A6-511A-4552-B5F6-D6675FC21508}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Guess", "Guess", "{2A48C638-F2BB-491A-A36A-B58A9697D1B0}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ZMachine", "ZMachine", "{39B58CD8-7147-4FF0-961C-2CA140651C34}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BeepDemo", "Demos\BeepDemo\BeepDemo.csproj", "{96D8F1A6-EA27-4899-8E08-EDD86CB0370A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GuessKernel", "Demos\Guess\GuessKernel.csproj", "{8E76CDF2-CBE3-4C50-B991-F9B7E3033132}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CosmosGraphicSubsystem", "Demos\CosmosGraphicSubsystem\CosmosGraphicSubsystem.csproj", "{6F750E6B-8C93-4DE7-9FF9-3C31C5121F1E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZKernel", "Demos\ZMachine\ZKernel\ZKernel.csproj", "{04B52A1C-C57A-40C3-BED3-A97B7BA840E9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZLibrary", "Demos\ZMachine\ZLibrary\ZLibrary.csproj", "{3B661E21-F46C-4048-92BA-4BF67F7ED7D0}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {96D8F1A6-EA27-4899-8E08-EDD86CB0370A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {96D8F1A6-EA27-4899-8E08-EDD86CB0370A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {96D8F1A6-EA27-4899-8E08-EDD86CB0370A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {96D8F1A6-EA27-4899-8E08-EDD86CB0370A}.Release|Any CPU.Build.0 = Release|Any CPU
- {8E76CDF2-CBE3-4C50-B991-F9B7E3033132}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8E76CDF2-CBE3-4C50-B991-F9B7E3033132}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8E76CDF2-CBE3-4C50-B991-F9B7E3033132}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8E76CDF2-CBE3-4C50-B991-F9B7E3033132}.Release|Any CPU.Build.0 = Release|Any CPU
- {6F750E6B-8C93-4DE7-9FF9-3C31C5121F1E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6F750E6B-8C93-4DE7-9FF9-3C31C5121F1E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6F750E6B-8C93-4DE7-9FF9-3C31C5121F1E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6F750E6B-8C93-4DE7-9FF9-3C31C5121F1E}.Release|Any CPU.Build.0 = Release|Any CPU
- {04B52A1C-C57A-40C3-BED3-A97B7BA840E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {04B52A1C-C57A-40C3-BED3-A97B7BA840E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {04B52A1C-C57A-40C3-BED3-A97B7BA840E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {04B52A1C-C57A-40C3-BED3-A97B7BA840E9}.Release|Any CPU.Build.0 = Release|Any CPU
- {3B661E21-F46C-4048-92BA-4BF67F7ED7D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B661E21-F46C-4048-92BA-4BF67F7ED7D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B661E21-F46C-4048-92BA-4BF67F7ED7D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B661E21-F46C-4048-92BA-4BF67F7ED7D0}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {96D8F1A6-EA27-4899-8E08-EDD86CB0370A} = {85AD61C5-4105-4E94-9AC3-345C3744770A}
- {8E76CDF2-CBE3-4C50-B991-F9B7E3033132} = {2A48C638-F2BB-491A-A36A-B58A9697D1B0}
- {6F750E6B-8C93-4DE7-9FF9-3C31C5121F1E} = {7A1220A6-511A-4552-B5F6-D6675FC21508}
- {04B52A1C-C57A-40C3-BED3-A97B7BA840E9} = {39B58CD8-7147-4FF0-961C-2CA140651C34}
- {3B661E21-F46C-4048-92BA-4BF67F7ED7D0} = {39B58CD8-7147-4FF0-961C-2CA140651C34}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {737503A6-354A-4725-8D7F-27A996161138}
- EndGlobalSection
-EndGlobal
diff --git a/Demos/BeepDemo/BeepDemo.sln b/Demos/BeepDemo/BeepDemo.sln
deleted file mode 100644
index 4954140098..0000000000
--- a/Demos/BeepDemo/BeepDemo.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27428.2037
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeepDemo", "BeepDemo.csproj", "{0AD02943-D563-43E4-A41F-D4FC1870C42A}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0AD02943-D563-43E4-A41F-D4FC1870C42A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0AD02943-D563-43E4-A41F-D4FC1870C42A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0AD02943-D563-43E4-A41F-D4FC1870C42A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0AD02943-D563-43E4-A41F-D4FC1870C42A}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {2315A3B8-08D1-4EED-8629-E83991A77E46}
- EndGlobalSection
-EndGlobal
diff --git a/Demos/BeepDemo/Kernel.cs b/Demos/BeepDemo/Kernel.cs
deleted file mode 100644
index b154bcbdbc..0000000000
--- a/Demos/BeepDemo/Kernel.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Sys = Cosmos.System;
-using System.Threading;
-
-namespace BeepDemo
-{
- public class Kernel: Sys.Kernel
- {
- protected override void BeforeRun()
- {
- Console.WriteLine("Cosmos booted successfully. Type a line of text to get it echoed back.");
- }
- protected override void Run()
- {
- Console.WriteLine("Run 'Mary Had a Little Lamb'? ");
- string ans = Console.ReadLine();
- if (ans.ToLower() == "y" || ans.ToLower() == "yes")
- {
- BeepTest.Main();
- }
- else
- {
- Console.WriteLine("Default beep:");
- Console.Beep();
- // Does the follwing: Console.Beep((int)Sys.Notes.Default (800 hertz), (int)Sys.Durations.Default (200 milliseconds) );
- }
- }
- }
- class BeepTest
- {
- public static void Main()
- {
- // Declare the first few notes of the song, "Mary Had A Little Lamb".
- Note[] Mary =
- {
- new Note(Tone.B, Duration.QUARTER),
- new Note(Tone.A, Duration.QUARTER),
- new Note(Tone.GbelowC, Duration.QUARTER),
- new Note(Tone.A, Duration.QUARTER),
- new Note(Tone.B, Duration.QUARTER),
- new Note(Tone.B, Duration.QUARTER),
- new Note(Tone.B, Duration.HALF),
- new Note(Tone.A, Duration.QUARTER),
- new Note(Tone.A, Duration.QUARTER),
- new Note(Tone.A, Duration.HALF),
- new Note(Tone.B, Duration.QUARTER),
- new Note(Tone.D, Duration.QUARTER),
- new Note(Tone.D, Duration.HALF)
- };
- // Play the song
- Play(Mary);
- }
-
- // Play the notes in a song.
- protected static void Play(Note[] tune)
- {
- foreach (Note n in tune)
- {
- if (n.NoteTone == Tone.REST)
- {
- Thread.Sleep((int)n.NoteDuration);
- }
- else
- {
- Console.Beep((int)n.NoteTone, (int)n.NoteDuration);
- }
- }
- }
-
- // Define the frequencies of notes in an octave, as well as
- // silence (rest).
- protected enum Tone
- {
- REST = 0,
- GbelowC = 196,
- A = 220,
- Asharp = 233,
- B = 247,
- C = 262,
- Csharp = 277,
- D = 294,
- Dsharp = 311,
- E = 330,
- F = 349,
- Fsharp = 370,
- G = 392,
- Gsharp = 415,
- }
-
- // Define the duration of a note in units of milliseconds.
- protected enum Duration
- {
- WHOLE = 1600,
- HALF = WHOLE / 2,
- QUARTER = HALF / 2,
- EIGHTH = QUARTER / 2,
- SIXTEENTH = EIGHTH / 2,
- }
-
- // Define a note as a frequency (tone) and the amount of
- // time (duration) the note plays.
- protected struct Note
- {
- Tone toneVal;
- Duration durVal;
-
- // Define a constructor to create a specific note.
- public Note(Tone frequency, Duration time)
- {
- toneVal = frequency;
- durVal = time;
- }
-
- // Define properties to return the note's tone and duration.
- public Tone NoteTone { get { return toneVal; } }
- public Duration NoteDuration { get { return durVal; } }
- }
- }
- /*
- This example produces the following results:
-
- This example plays the first few notes of "Mary Had A Little Lamb"
- through the computer PC Speaker.
- */
-}
diff --git a/Demos/CosmosGraphicSubsystem/CosmosGraphicSubsystem.sln b/Demos/CosmosGraphicSubsystem/CosmosGraphicSubsystem.sln
deleted file mode 100644
index 072135d89f..0000000000
--- a/Demos/CosmosGraphicSubsystem/CosmosGraphicSubsystem.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2036
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CosmosGraphicSubsystem", "CosmosGraphicSubsystem.csproj", "{AD808AC8-9CF4-4CCF-AD4E-EE10F1AFD286}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {AD808AC8-9CF4-4CCF-AD4E-EE10F1AFD286}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AD808AC8-9CF4-4CCF-AD4E-EE10F1AFD286}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AD808AC8-9CF4-4CCF-AD4E-EE10F1AFD286}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AD808AC8-9CF4-4CCF-AD4E-EE10F1AFD286}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {D3B68C24-03DF-45BC-947B-7A088082DD0B}
- EndGlobalSection
-EndGlobal
diff --git a/Demos/CosmosGraphicSubsystem/Kernel.cs b/Demos/CosmosGraphicSubsystem/Kernel.cs
deleted file mode 100644
index 455f029310..0000000000
--- a/Demos/CosmosGraphicSubsystem/Kernel.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using System;
-using System.Drawing;
-using Cosmos.System.Graphics;
-using Sys = Cosmos.System;
-using Point = Cosmos.System.Graphics.Point;
-
-
-/*
- * Beware Demo Kernels are not recompiled when its dependencies changes!
- * To force recompilation right click on on the Cosmos icon of the demo solution and do "Build".
- */
-
-namespace Cosmos_Graphic_Subsytem
-{
- public class Kernel : Sys.Kernel
- {
- private Canvas canvas;
- private Bitmap bitmap;
-
- protected override void BeforeRun()
- {
- Console.WriteLine("Cosmos booted successfully. Let's go in Graphic Mode");
- Console.WriteLine("Using default graphics mode");
- //Mode start = new Mode(800, 600, ColorDepth.ColorDepth32);
-
- bitmap = new Bitmap(10, 10,
- new byte[] { 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0,
- 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
- 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
- 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255,
- 23, 59, 88, 255, 0, 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255, 23, 59, 88, 255, 0, 255, 243, 255, 0,
- 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255, 153, 57, 12, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
- 243, 255, 0, 255, 243, 255, 153, 57, 12, 255, 23, 59, 88, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243,
- 255, 0, 255, 243, 255, 0, 255, 243, 255, 72, 72, 72, 255, 72, 72, 72, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0,
- 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 72, 72,
- 72, 255, 72, 72, 72, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
- 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
- 243, 255, 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 10, 66, 148, 255, 10, 66, 148, 255,
- 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
- 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148,
- 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
- 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, }, ColorDepth.ColorDepth32);
-
- Console.WriteLine("Press any key to continue!");
- Console.ReadKey(true);
- // Create new instance of FullScreenCanvas, using default graphics mode
- canvas = FullScreenCanvas.GetFullScreenCanvas(); // canvas = GetFullScreenCanvas(start);
-
- /* Clear the Screen with the color 'Blue' */
- canvas.Clear(Color.Blue);
- }
-
- protected override void Run()
- {
- try
- {
- mDebugger.Send("Run");
-
- /* A red Point */
- Pen pen = new Pen(Color.Red);
- canvas.DrawPoint(pen, 69, 69);
-
- /* A GreenYellow horizontal line */
- pen.Color = Color.GreenYellow;
- canvas.DrawLine(pen, 250, 100, 400, 100);
-
- /* An IndianRed vertical line */
- pen.Color = Color.IndianRed;
- canvas.DrawLine(pen, 350, 150, 350, 250);
-
- /* A MintCream diagonal line */
- pen.Color = Color.MintCream;
- canvas.DrawLine(pen, 250, 150, 400, 250);
-
- /* A PaleVioletRed rectangle */
- pen.Color = Color.PaleVioletRed;
- canvas.DrawRectangle(pen, 350, 350, 80, 60);
-
- pen.Color = Color.Chartreuse;
- canvas.DrawCircle(pen, 69, 69, 10);
-
- pen.Color = Color.LightSalmon;
- canvas.DrawEllipse(pen, 400, 300, 100, 150);
-
- pen.Color = Color.MediumPurple;
- canvas.DrawPolygon(pen, new Point(200, 250), new Point(250, 300), new Point(220, 350), new Point(210, 275));
-
- canvas.DrawImage(bitmap, new Point(20, 20));
-
- /*
- * It will be really beautiful to do here:
- * canvas.DrawString(pen, "Please press any key to continue the Demo...");
- */
- Console.ReadKey();
-
- /* Let's try to change mode...*/
- canvas.Mode = new Mode(800, 600, ColorDepth.ColorDepth32);
-
- //If the background is not redrawn, it gets corrupted
- canvas.Clear(Color.Blue);
-
- /* A LimeGreen rectangle */
- pen.Color = Color.LimeGreen;
- canvas.DrawRectangle(pen, 450, 450, 80, 60);
-
- /* A filled rectange */
- pen.Color = Color.Chocolate;
- canvas.DrawFilledRectangle(pen, 200, 150, 400, 300);
-
- /*
- * It will be really beautiful to do here:
- * canvas.DrawString(pen, "Please press any key to end the Demo...");
- */
- Console.ReadKey();
-
- Sys.Power.Shutdown();
- }
- catch (Exception e)
- {
- Console.WriteLine($"Got fatal exception {e.Message}");
- }
- }
- }
-}
diff --git a/Demos/Guess/Kernel.cs b/Demos/Guess/Kernel.cs
deleted file mode 100644
index ad4a87ce8c..0000000000
--- a/Demos/Guess/Kernel.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-
-using Cosmos.Debug.Kernel;
-using Sys = Cosmos.System;
-
-/*
- * Beware Demo Kernels are not recompiled when its dependencies changes!
- * To force recompilation right click on on the Cosmos icon of the demo solution and do "Build".
- */
-namespace Guess
-{
- public class GuessOS : Sys.Kernel
- {
- private Random mRandom;
- private int mCount;
- private int mNumber;
-
- protected override void BeforeRun()
- {
- mRandom = new Random();
-
- mCount = 0;
- mNumber = mRandom.Next(1, 100);
-
- Console.Clear();
-
- Console.WriteLine("Guess Demo");
- Console.WriteLine("----------");
- Console.WriteLine();
- Console.WriteLine("Please guess a number from 1 to 100.");
- Console.WriteLine();
- }
-
- protected override void Run()
- {
- mCount++;
-
- Console.Write($"Guess #{mCount}: ");
-
- var xGuess = Int32.Parse(Console.ReadLine());
- mDebugger.Send($"Guess#{mCount}: {xGuess}");
-
- if (xGuess < mNumber)
- {
- Console.WriteLine("Too low.");
- }
- else if (xGuess > mNumber)
- {
- Console.WriteLine("Too high.");
- }
- else
- {
- Console.WriteLine("You guessed it!");
- Console.WriteLine("Press s to stop or any other key to play again. Thanks for playing!");
-
- if (Console.ReadKey(true).Key == ConsoleKey.S)
- {
- Stop();
- }
-
- mNumber = mRandom.Next(1, 100);
- mCount = 0;
- }
- }
-
- protected override void AfterRun()
- {
- Sys.Power.Shutdown();
- }
- }
-}
diff --git a/Demos/ZMachine/ZLibrary/ZLibrary.csproj b/Demos/ZMachine/ZLibrary/ZLibrary.csproj
deleted file mode 100644
index ee0230b21a..0000000000
--- a/Demos/ZMachine/ZLibrary/ZLibrary.csproj
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- netstandard2.0
-
-
-
-
-
-
-
diff --git a/Demos/ZMachine/ZMachine.sln b/Demos/ZMachine/ZMachine.sln
deleted file mode 100644
index 76c60ea3f6..0000000000
--- a/Demos/ZMachine/ZMachine.sln
+++ /dev/null
@@ -1,51 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27703.2000
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZKernel", "ZKernel\ZKernel.csproj", "{FB1DD9D8-940E-4112-AB03-A487F4CCF270}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZLibrary", "ZLibrary\ZLibrary.csproj", "{8ECC1100-B49F-42B5-9679-737E181B3DED}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZTestConsoleApp", "ZTestConsoleApp\ZTestConsoleApp.csproj", "{A69AEB62-6CDA-4BEC-9AEE-7702452C3965}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Debug|x86.Build.0 = Debug|Any CPU
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Release|Any CPU.Build.0 = Release|Any CPU
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Release|x86.ActiveCfg = Release|Any CPU
- {FB1DD9D8-940E-4112-AB03-A487F4CCF270}.Release|x86.Build.0 = Release|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Debug|x86.ActiveCfg = Debug|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Debug|x86.Build.0 = Debug|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Release|Any CPU.Build.0 = Release|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Release|x86.ActiveCfg = Release|Any CPU
- {8ECC1100-B49F-42B5-9679-737E181B3DED}.Release|x86.Build.0 = Release|Any CPU
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Debug|x86.ActiveCfg = Debug|x86
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Debug|x86.Build.0 = Debug|x86
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Release|Any CPU.Build.0 = Release|Any CPU
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Release|x86.ActiveCfg = Release|x86
- {A69AEB62-6CDA-4BEC-9AEE-7702452C3965}.Release|x86.Build.0 = Release|x86
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {A2762066-8A9B-4B54-954B-2CECDAECFD2A}
- EndGlobalSection
-EndGlobal
diff --git a/Demos/ZMachine/ZTestConsoleApp/ZTestConsoleApp.csproj b/Demos/ZMachine/ZTestConsoleApp/ZTestConsoleApp.csproj
deleted file mode 100644
index ce1d9f7dbc..0000000000
--- a/Demos/ZMachine/ZTestConsoleApp/ZTestConsoleApp.csproj
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
- Exe
- netcoreapp2.0
- AnyCPU;x86
-
-
-
- true
-
-
-
- true
-
-
-
-
-
-
-
diff --git a/Directory.Build.props b/Directory.Build.props
index 1bbe9c4b23..e261217c81 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,10 +1,5 @@
-
- Latest
- CA1051;CA1707;CA1711;CA1801;$(NoWarn)
-
-
$(MSBuildThisFileDirectory)
$(RepoRoot)..\Common\
@@ -12,6 +7,14 @@
$(RepoRoot)..\XSharp\
+
+ Latest
+ CA1051;CA1501;CA1707;CA1711;CA1801;CS1572;CS1573;CS1574;CS1591;NU1603;$(NoWarn)
+ True
+ true
+ true
+
+
-
-
-
-
-
\ No newline at end of file
diff --git a/Docs/api/.gitignore b/Docs/api/.gitignore
new file mode 100644
index 0000000000..e8079a3bef
--- /dev/null
+++ b/Docs/api/.gitignore
@@ -0,0 +1,5 @@
+###############
+# temp file #
+###############
+*.yml
+.manifest
diff --git a/Users/Kudzu/Breakpoints/Cosmos.bxrc b/Docs/api/cosmos/index.md
similarity index 100%
rename from Users/Kudzu/Breakpoints/Cosmos.bxrc
rename to Docs/api/cosmos/index.md
diff --git a/Docs/api/il2cpu/index copy.md b/Docs/api/il2cpu/index copy.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/Docs/api/il2cpu/index.md b/Docs/api/il2cpu/index.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/Docs/api/index.md b/Docs/api/index.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/Docs/api/plugs/index.md b/Docs/api/plugs/index.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/Docs/api/xsharp/index.md b/Docs/api/xsharp/index.md
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/Docs/articles/Changelog.md b/Docs/articles/Changelog.md
new file mode 100644
index 0000000000..952f1f1e4f
--- /dev/null
+++ b/Docs/articles/Changelog.md
@@ -0,0 +1,14 @@
+# DevKit changelog
+
+## c5c087c697d106348adbcff86d5d43331500e648 (update then merged in)
+
+### Features
+
+* X# is now packaged as a nuget package
+* Plugs are now packaged as a nuget package rather then been hard coded in build scripts
+
+### Breaking changes
+
+Plugs are now included via a nuget package, to update cosmos past this commit you need to add the `Cosmos.Plugs` package to your kernel project. Don't forget to tick the `Include prerelease` checkbox and to set the package origin to `All`!
+
+*Last updated on 4 September 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Compiler/il2cpu.md b/Docs/articles/Compiler/il2cpu.md
new file mode 100644
index 0000000000..fdd3969db2
--- /dev/null
+++ b/Docs/articles/Compiler/il2cpu.md
@@ -0,0 +1,15 @@
+# IL2CPU
+
+IL2CPU is one of the most important pieces of code in Cosmos. It's an AOT (Ahead-Of-Time) compiler.
+
+When you compile your C# (or any other .NET language) program, it is compiled into CIL (common intermediate language). The CIL is then interpreted and executed by a virtual machine when you open your .exe.
+
+Cosmos is written in C# and Visual Studio compiles it into CIL like usual. But a PC does not come with an interpreter for the CIL code, and writing a virtual machine for running an operating system is not ideal.
+
+This is where IL2CPU comes in. IL2CPU takes the CIL code and translates it to processor op-codes. Currently, only x86 opcodes are available at the moment. However, more architectures are planned for the future (ARM, PowerPC, x86-64).
+
+At this point, IL2CPU performs some more magic before finally converting the entire file into a bootable binary file, which can be loaded by a bootloader on any system (Cosmos uses the [Limine bootloader](https://github.com/limine-bootloader/limine).
+
+As you might think, IL2CPU is a fundamental part of the development of Cosmos. IL2CPU is responsible for the final output, which is why most optimizations added are for IL2CPU.
+
+*Last updated on 24 March 2024.*
\ No newline at end of file
diff --git a/Docs/articles/Debugger/DebugCommands.md b/Docs/articles/Debugger/DebugCommands.md
new file mode 100644
index 0000000000..15c4a91b6f
--- /dev/null
+++ b/Docs/articles/Debugger/DebugCommands.md
@@ -0,0 +1,64 @@
+# Debug Commands
+
+## DS to VS
+
+```cs
+Noop = 0;
+TracePoint = 1;
+Message = 2;
+BreakPoint = 3;
+Error = 4;
+Pointer = 5;
+// This is sent once on start up. The first call to debug stub sends this.
+// Host can then respond with a series of set breakpoints etc, ie ones that were set before running.
+Started = 6;
+MethodContext = 7;
+MemoryData = 8;
+// Sent after commands to acknowledge receipt during batch mode
+CmdCompleted = 9;
+Registers = 10;
+Frame = 11;
+Stack = 12;
+Pong = 13;
+BreakPointAsm = 14;
+```
+
+## VS to DS
+
+```cs
+Noop = 0;
+
+TraceOff = 1; // Dont think currently used
+TraceOn = 2; // Dont think currently used
+
+Break = 3;
+Continue = 4; // After a Break
+BreakOnAddress = 6;
+
+BatchBegin = 7;
+BatchEnd = 8;
+
+StepInto = 5;
+StepOver = 11;
+StepOut = 12;
+
+SendMethodContext = 9; // Sends data from stack, relative to EBP (in x86)
+SendMemory = 10;
+SendRegisters = 13; // Send the register values to DC
+SendFrame = 14;
+SendStack = 15;
+
+ // Set an assembly level break point
+ // Only one can be active at a time. BreakOnAddress can have multiple.
+ // User must call continue after.
+SetAsmBreak = 16;
+
+Ping = 17;
+ // Make sure this is always the last entry. Used by DebugStub to verify commands.
+Max = 18;
+```
+
+## Debug channel
+We support channels, which are prefixed with anything prefixed with 192 and up. 192 is used for a debug view.
+
+*Last updated on 12 February 2020.*
\ No newline at end of file
diff --git a/Docs/Directories.md b/Docs/articles/Directories.md
similarity index 99%
rename from Docs/Directories.md
rename to Docs/articles/Directories.md
index 1bdad8122c..0e9b3e6f34 100644
--- a/Docs/Directories.md
+++ b/Docs/articles/Directories.md
@@ -65,7 +65,7 @@ This directory contains the low-level plugs for Cosmos.Core.
#### \Source\Cosmos.Debug
This directory contains the Debug Engine and Connector code and also, it's gives the possibility to
-work with GDB. For more informations about debugging see the [Debugger](debugger.htm) page
+work with GDB. For more informations about debugging see the [Debugger](Debugger/DebugCommands.md) page
#### \Source\Cosmos.Deploy
diff --git a/Docs/articles/GettingStarted.md b/Docs/articles/GettingStarted.md
new file mode 100644
index 0000000000..475335c389
--- /dev/null
+++ b/Docs/articles/GettingStarted.md
@@ -0,0 +1,130 @@
+# Getting Started
+
+## Introducing Cosmos
+
+Cosmos (C# Open Source Managed Operating System) is an operating system
+development kit which uses Visual Studio as its development environment.
+Despite C# in the name, any .NET based language can be used, including VB.NET,
+Fortran, Delphi Prism, IronPython, F# and more. Cosmos itself and the kernel
+routines are primarily written in C#, and thus the Cosmos name. Besides that,
+NOSMOS (.NET Open Source Managed Operating System) sounds silly.
+
+Cosmos diverts from traditional operating systems because it is not an operating system in the conventional sense; rather, it is an "Operating System Kit," similar to "Operating System Legos". With Cosmos, you have the flexibility to construct operating systems just as how Visual Studio and C# help you develop applications. Using Visual Studio, most users can swiftly write and boot their own operating system within minutes. Additionally, debugging your operating system directly from Visual Studio is a feature, allowing for efficient troubleshooting through breakpoints.
+
+Cosmos is available in two distributions, the developer kit (abbr. *DevKit*), and the user kit.
+The DevKit was originally designed for those who want to work on Cosmos's core features, but now has superceded the inferior user kit due to having much more technical ability.
+The User Kit was designed for those who are interested in building their own operating system and doing some Cosmos work. Since the User Kit is so heavily outdated, it is often recommended to download the DevKit when installing. The documentation will cover both.
+
+## Writing your first Operating System
+
+Once you have installed Cosmos (see other docs), you can create a new project as you would any C# project, but select Cosmos as the project type.
+
+
+
+A starter project will be created. It looks very much like a standard C#
+console application.
+
+
+
+Kernel.cs contains the boot and execution code. Instead of seeing a Windows
+console window, you will see the following:
+
+
+
+This is your operating system running in VMware Player! Cosmos can of course
+also be booted in VMware Workstation, VirtualBox, Bochs, or on real
+hardware. But by default, Cosmos uses VMware Player because it is both free,
+and reliable. Cosmos can even debug in Visual Studio, even when running on
+another machine.
+
+## Integrated Debugging
+
+Debugging is a major issue with operating system development. The Cosmos team
+was not content enough to simply conquer building and deployment, we want to
+make developing operating systems as easy as developing Windows applications.
+Debugging a Cosmos based operating system should feel very familiar to you.
+Lets modify our project a little bit to show the effect, and set a breakpoint.
+*Note that the debugger only works in Visual Studio, and not Linux!*
+
+
+
+Now run the project again.
+
+
+
+Notice how the execution stopped at "One"? That is becuase in Visual Studio our
+project has stopped on a breakpoint. Simply press F5 to continue just as you
+would in a normal application!
+
+In addition to breakpoints, Cosmos also supports step into (F11) as well. Trace
+over (F10) is not supported yet.
+
+## Debugger Communication
+
+The debugger uses the serial port to communicate. Because of this, debugging
+only works within virtualization environments that support serial ports, such as
+VMware. QEMU supports serial ports as well, but its serial port implementation
+is seriously broken on Windows and makes debugging impossible using QEMU. To
+debug on real hardware, you must use a physical serial cable. In the future,
+Cosmos will also support debugging over Ethernet.
+
+## Extra Debugging
+
+Cosmos supports some explicit methods that can be used to communicate with the
+debugger and use additional functionality. It is accessed using the Debugger
+class in the Cosmos.Debug namespace in the Cosmos.Kernel assembly. This
+assembly is used by all Cosmos projects.
+
+## Code Based Breakpoints
+
+
+ mDebugger.Break();
+
+Break can be used to issue a code based break. Visual Studio will break on the
+line after this statement.
+
+
+
+Since Cosmos does not support conditional breakpoints in the IDE yet, code
+base breaks are very useful for implementing such. For example:
+
+
+ if (x == 5) {
+ mDebugger.Break();
+ }
+
+Or you can use the .NET BCL debugger break:
+
+
+ System.Diagnostics.Debugger.Break();
+
+Both functions will produce the same result.
+
+## Debug Output
+
+Debug strings can be outputted to the debug window of the host. Because Cosmos
+does not support watches yet, this functionality can be very useful for
+watching variable values and for performing tracing without breakpoints.
+
+
+ mDebugger.Send("Hello from Cosmos!");
+
+When this line is executed, it will send a message over the debugging channel
+and it will appear in the Visual Studio output window.
+
+
+
+## What's the catch?
+
+There really is no catch. Everything we've shown here is functioning as seen.
+No mockups were used. However, we still have a lot of work to do. Items of
+interest that are on our current task list include multithreading and x64 systems.
+We have prototypes and experiments for each, but none have been rolled into
+the mainline Cosmos development as of yet.
+
+## Obtaining Cosmos
+
+ * Cosmos website - [http://www.GoCosmos.org](http://www.GoCosmos.org)
+ * Source code - Both DevKit and User Kit - [http://github.com/CosmosOS/Cosmos/](http://github.com/CosmosOS/Cosmos/)
+
+*Last updated on 24 March 2024.*
\ No newline at end of file
diff --git a/Docs/articles/Installation/DevKit.md b/Docs/articles/Installation/DevKit.md
new file mode 100644
index 0000000000..08f95b01c1
--- /dev/null
+++ b/Docs/articles/Installation/DevKit.md
@@ -0,0 +1,83 @@
+# DevKit Installation
+
+## Windows
+
+### Prerequisites
+
+* Source code of Development Kit from [Cosmos on GitHub](https://github.com/CosmosOS/Cosmos)
+ * You must clone the repository using Git. For a detailed walkthrough, [see here](https://help.github.com/articles/fork-a-repo/).
+
+* [Visual Studio 2022 Community](https://visualstudio.microsoft.com/vs/)
+* [InnoSetup](http://www.jrsoftware.org/isdl.php#qsp)
+
+ * This is required to build the setup kit which is used to build and install the Visual Studio integration libaries for Cosmos.
+ * During install it will ask you about optional components to install. Be sure you check "Install Inno Setup Preprocessor".
+
+### Installation
+
+* Git clone the current source code of Cosmos or download the source code directly from GitHub. If you downlaod the source code, you will need to rename the folder to simply 'Cosmos'.
+* Look in the downloaded sources and run **install-VS2022.bat** with admin privileges (UAC will ask for permission), needed for install in system directories.
+* When the installation is complete, Visual Studio will automatically open and you may begin programming with your new, modified copy of Cosmos.
+
+
+## Linux
+
+### Prerequisites
+
+* .NET SDK (6+): [Download .NET SDK](https://learn.microsoft.com/en-us/dotnet/core/install/linux)
+* Make (`apt install make`)
+* Yasm (`apt install yasm`)
+* Xorriso (`apt install xorriso`)
+* QEMU or any other virtual machine. See [Running](https://cosmosos.github.io/articles/Installation/Running.html) for more information.
+
+### Installation
+Git clone the current source code of Cosmos.
+Run `make` to build Cosmos. Cosmos will clone all the required repos, build itself, and install it and its nuget packages to the system automatically.
+
+## MacOS (Apple Silicon/Intel)
+It is currently difficult to build Cosmos on Apple Silicon Devices. So, we are going to build DevKit on Docker (Virtual Environment Service).
+
+### Prerequisites
+
+* Docker (`brew install --cask docker`)
+* QEMU or any other virtual machine. See [Running](https://cosmosos.github.io/articles/Installation/Running.html) for more information.
+
+
+### Installation
+First, we need to set directory to the path of Cosmos source directory and build the Dockerfile:
+```
+cd /path/to/Cosmos/
+docker build -t cosmos .
+```
+This will take a while. If there is no error, you successfully installed Cosmos on a Virtual Environment!
+
+## Notes / FAQ
+
+### Custom Cosmos Repos
+
+If you are using custom Cosmos repos, you will need to clone them all manually, as the installer script will only pull from https://github.com/CosmosOS/
+
+A tree diagram of the source should look like the following:
+
+
+
+
+### I get stuck pulling the git repos!
+
+Check if [Git](https://git-scm.com/) is installed on your machine and within your path. We use Git to pull the repos from GitHub.
+
+### I just updated my DevKit and my project is still using the older version!
+
+Although Cosmos typically uninstalls previous kits before installing a new one; it is possible that your project can reference an older-version. In the rare case this does occur, you may need to clear the NuGet cache. Try running `dotnet clean` to clear the project-level cache.
+
+### The project templates are not showing in Visual Studio!
+
+If you have more than 1 version of Visual Studio *(such as both 2022 and 2019)*, this bug can occur. Try running `dotnet Project Templates` to get them back.
+
+### dotnet Project Templates
+
+If you are using Linux, or prefer not using Visual Studio for your projects, you can install the dotnet project template using `dotnet new --install ./source/templates/csharp/` assuming you are currently in the Cosmos base directory. After installing the template, use `dotnet new cosmosCSKernel -n {name}` to create a new Cosmos Kernel project.
+The dotnet template can be removed at a later time using `dotnet new --uninstall ./source/templates/csharp/`.
+
+*Last updated on 20 April 2024.*
+
diff --git a/Docs/articles/Installation/Running.md b/Docs/articles/Installation/Running.md
new file mode 100644
index 0000000000..139722738d
--- /dev/null
+++ b/Docs/articles/Installation/Running.md
@@ -0,0 +1,120 @@
+# Running
+Cosmos supports running on any Intel x86 environment. However, for debugging
+and ease of use, many virtual and physical setups have integrated support. If
+you do not see your environment, this does not mean Cosmos will not work. You
+can simply fall back to ISO, which should work with any environment.
+
+## ISO
+
+The ISO option creates an ISO image of the Cosmos output. This ISO file can be
+mounted and booted by most virtualization technologies. In addition, a physical
+optical disk can be burned and used to boot physical hardware.
+
+# Linux/Posix
+**DISCLAIMER: This article assumes that you are using a Debian-based operating system!**
+
+## QEMU
+Here you can use a generic run file, you can run it by using `sh run.sh -i -m -h `. It has to be at the root directory of the project.
+
+QEMU is required and can be installed with `apt-get install qemu-system`.
+
+To create an HDD image, you have to convert this [.vmdk](https://github.com/CosmosOS/Cosmos/blob/master/Build/VMWare/Workstation/Filesystem.vmdk?raw=true) file to a .img, which can then be used by QEMU using the following command
+`qemu-img convert -f vmdk -O raw Filesystem.vmdk cosmos.img`
+
+Here is the run.sh:
+`run.sh:`
+```sh
+#!/bin/bash
+
+helpFunction()
+{
+ echo ""
+ echo "Usage: $0 -i -m -h "
+ echo "\t-i ISO path to be used"
+ echo "\t-m Memory size to allocate to the Virtual Machine"
+ echo "\t-h Hard disk image location, can be created with qemu-img"
+ exit 1 # Exit script after printing help
+}
+
+while getopts "i:m:h:" opt
+do
+ case "$opt" in
+ i ) ISO="$OPTARG" ;;
+ m ) MEMORY_SIZE="$OPTARG" ;;
+ h ) HDD_IMAGE="$OPTARG" ;;
+ ? ) helpFunction ;; # Print helpFunction in case parameter is non-existent
+ esac
+done
+
+# Print helpFunction in case parameters are empty
+if [ -z "$ISO" ] || [ -z "$MEMORY_SIZE" ] || [ -z "$HDD_IMAGE" ]
+then
+ echo "Some or all of the parameters are empty";
+ helpFunction
+fi
+
+# Build the project
+dotnet build
+
+# Emulate the ISO
+qemu-system-x86_64 -boot d -cdrom $ISO -m $MEMORY_SIZE -hda $HDD_IMAGE
+```
+
+## VirtualBox
+Create a virtual machine and use this [.vmdk](https://github.com/CosmosOS/Cosmos/blob/master/Build/VMWare/Workstation/Filesystem.vmdk?raw=true) as your HDD image.
+If you are utilizing audio, we recommend VirtualBox for the ability to use their AC97 driver.
+
+# Windows
+
+## VMWare
+
+WMWare Workstation and VMWare Player are the preferred testing environments
+for Cosmos. This is because they are stable, reliable, and easily controlled
+by the Cosmos Visual Studio integration package. This allows for easy debugging and code execution control.
+
+VMWare Workstation is not free, however VMWare Player is. VMWare Player for
+the typical Cosmos developer provides more than enough functionality.
+
+### VMWare Player
+
+VMWare Player can be downloaded [here](https://www.vmware.com/go/getplayer-win).
+
+### VMWare Workstation
+
+VMWare Workstation (paid version) can be downloaded for a free trial [here](https://www.vmware.com/go/getworkstation-win).
+
+## QEMU
+
+QEMU is not officially supported for Cosmos at this time, but can be used. Just use the ISO option above with debugging turned off.
+If you want to use graphical mode in QEMU (Canvas or SVGA-II), ensure that VBE multiboot is enabled in your project settings of Cosmos.
+
+QEMU can be downloaded [here](https://www.qemu.org/download/)
+
+## Bochs
+
+Bochs is officially supported for Cosmos. As Bochs is a full emulation software, results vary and are often times slower than other virtualization platforms.
+
+Bochs can be downloaded [here](https://bochs.sourceforge.io/getcurrent.html)
+
+## PXE
+
+For PXE, no special software is required. Only an ethernet connection to your router. However, if you have a computer that does not support network booting, or if you must perform the action over WiFi, you may need to look at a PXE chainloader such as [gPXE](http://etherboot.org/wiki/).
+To run your Cosmos kernel in PXE you need to follow these steps:
+
+Step #1: Disable Cosmos Remote Debugger, activate PXE and compile in bin format.
+Go to Properties and copy these settings:
+
+
+
+Boot the machine and connect it via Ethernet and will show this screen:
+
+
+
+Wait and your OS will boot up.
+
+## Hyper-V, VirtualPC
+
+Not supported at this time.
+
+
+*Last updated on 24 March 2024.*
\ No newline at end of file
diff --git a/Docs/articles/Installation/UserKit.md b/Docs/articles/Installation/UserKit.md
new file mode 100644
index 0000000000..df986f41ff
--- /dev/null
+++ b/Docs/articles/Installation/UserKit.md
@@ -0,0 +1,27 @@
+# User Kit Installation
+
+for DevKit / running on Linux see [DevKit](DevKit.md)
+
+### Prerequisites
+
+* **Visual Studio 2022** - [Download](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx)
+* **Visual Studio 2022 Workload: .NET Desktop** - .NET Desktop development
+* **.NET 6.0** - [Download](https://www.microsoft.com/en-us/download/details.aspx?id=53321)
+* **VMware Player or Workstation** VMware Player is free, so that is recommended instead - [Download](https://www.vmware.com/uk/products/workstation-player/workstation-player-evaluation.html)
+* **Microsoft Visual C++ 2010 Redistributable** - [Download](https://www.microsoft.com/en-us/download/details.aspx?id=26999)
+
+### Installing Cosmos
+
+First, you need to choose between the User Kit and the Dev Kit. It is recommended that any user start with the Dev Kit now due to the technical advancement of it - the User Kit is almost 2 years old in comparison! The DevKit is the live source code which the Cosmos Team develops directly, and as such, it has the latest and greatest features, but at various times has known issues, and sometimes may not even build. Thus, to use the DevKit, be sure to join our support channels and inquire about the current status before using the DevKit or updating it.
+
+The User Kit is a snapshot stable version of Cosmos including a premade installer. The UserKit however is often very out of date compared to the DevKit and is only occasionally updated. The User Kit is a great easy way to get familiar with Cosmos, but active developers should transition to the DevKit after becoming very familiar with the UserKit, and expect some bugs here and there.
+
+### User Kit
+
+1. Download [the latest release of Cosmos](http://github.com/CosmosOS/Cosmos/releases/latest) (download the **exe** file)
+2. Wait for the download to complete then run the installer. Allow it to run as admin. Make sure **VS2022 is NOT running** when you do this.
+3. Click "Next" then "Install"
+4. Wait for the install to progress. **Tip:** At the end the installer may look like it has stalled, but it is still doing something in the background. WAIT for the "Finish" button to become available.
+5. Cosmos should now be installed. Follow other tutorials to find out how to create your first OS.
+
+*Last updated on 24 March 2024.*
\ No newline at end of file
diff --git a/Docs/articles/Internals/object.md b/Docs/articles/Internals/object.md
new file mode 100644
index 0000000000..c7dec15dd3
--- /dev/null
+++ b/Docs/articles/Internals/object.md
@@ -0,0 +1,12 @@
+# Object
+
+## Memory Layout
+
+Each object is allocated with a header of three uints. The first uint is the type of the object, the second uint is the instance type of object (normal, boxed, array etc) and the third is the size in memory.
+
+## Garbage Collector Information
+
+The garbage collector itself also alloctes its own header of 1 uint (2 ushort). The first ushort is the allocated size of the object (this includes the size of both headers) while the second tracks the GC information.
+The GC information is made up of a 1bit flag (the lowest bit) used to track if the GC has hit the object during the sweep phase already and the upper 7 bits count how many static references there are to the object.
+
+Combined in memory we have the format | ushort: memory size | ushort: gc info | uint: object type | uint: instance type | uint: object size | variable: object data |
diff --git a/Docs/articles/Kernel/Audio.md b/Docs/articles/Kernel/Audio.md
new file mode 100644
index 0000000000..271b1a7afe
--- /dev/null
+++ b/Docs/articles/Kernel/Audio.md
@@ -0,0 +1,85 @@
+# The Cosmos Audio Infrastructure (CAI)
+The Cosmos Audio Infrastructure allows for audio manipulation/conversion, audio I/O, and communication between audio devices. The CAI was designed with simplicity and versatility in mind.
+
+A basic example of playing audio through an AC97-compatible audio card:
+```cs
+var mixer = new AudioMixer();
+var audioStream = MemoryAudioStream.FromWave(sampleAudioBytes);
+var driver = AC97.Initialize(bufferSize: 4096);
+mixer.Streams.Add(audioStream);
+
+var audioManager = new AudioManager()
+{
+ Stream = mixer,
+ Output = driver
+};
+audioManager.Enable();
+```
+
+The sampleAudioBytes are the bytes of a .WAV audio file. You can read it from [VFS](https://cosmosos.github.io/articles/Kernel/VFS.html) or using [ManifestResourceStream](https://cosmosos.github.io/articles/Kernel/ManifestResouceStream.html).
+
+## Audio Streams
+An `AudioStream` is an object that can provide sample data to audio buffers. By design, the base `AudioStream` class does not have any length or position properties, as audio streams may be infinite - for example, an output stream from a microphone, or an audio mixer. All seekable streams inherit from the class `SeekableAudioStream`, which provides functionality for accessing the position/length properties and allows methods to determine whether they accept infinite and finite streams, or only finite streams.
+
+### Reading audio streams from memory
+You can create seekable audio streams from byte arrays using the `MemoryAudioStream` class:
+```cs
+byte[] bytes = GetArrayOfAudioSamplesFromSomewhere();
+var memAudioStream = new MemoryAudioStream(new SampleFormat(AudioBitDepth.Bits16, 2, true), 48000, bytes);
+```
+
+However, usually, you will have an audio file which contains a header containing information about the format of the audio samples it contains. The MemoryAudioStream class features support for the [Waveform Audio File Format (WAVE)](https://en.wikipedia.org/wiki/WAV), commonly used with the .WAV extension. To create an memory audio stream from a .WAV file, simply do:
+```cs
+byte[] bytes = GetWavFileFromSomewhere();
+var wavAudioStream = MemoryAudioStream.FromWave(bytes);
+```
+The method will parse the file and return a `MemoryAudioStream`. The sample format will be determined by using the .WAV header. Please keep in mind that this method only accepts uncompressed LPCM samples, which is the most common encoding used in .WAV files.
+
+## Audio Mixing
+The CAI includes an `AudioMixer` class out of the box. This class is an infinite `AudioStream` that mixes given streams together. Please keep in mind that mixing several audio streams together can result in [signal clipping](https://en.wikipedia.org/wiki/Clipping_(signal_processing)). In order to prevent clipping, it's recommended to either decrease the volume of the processed streams by using the `GainPostProcessor`, or implementing your own [audio limiter](https://en.wikipedia.org/wiki/Limiter).
+
+## Audio Buffers
+Audio buffers are commonly used in both hardware and software handling - for this reason, the `AudioBuffer` class exists to operate over an array of raw audio sample data.
+
+### Audio Buffer R/W
+Audio buffers can be easily written to or read from with the help of the `AudioBufferWriter` or `AudioBufferReader` classes, respectively. These classes automatically perform all bit-depth, channel, and sign conversions. Please keep in mind that conversion operations may be taxing on the CPU. It is recommended to use standard signed 16-bit PCM samples, but, if a conversion operation is necessary, it's recommended to perform them offline (as in, before feeding the unconverted streams into an audio mixer). The reason behind this is because processing the samples within a continously running audio driver will introduce audio crackle if the CPU cannot keep up with the conversion task.
+
+## Audio Post-Processing
+Audio streams can be processed before they write to an audio buffer by using the `PostProcessors` property on an `AudioStream` instance. Post-processing effects are simple to implement:
+
+```cs
+public class SilencePostProcessor : AudioPostProcessor {
+ public override void Process(AudioBuffer buffer){
+ Array.Clear(buffer.RawData);
+ }
+}
+```
+
+The above example implements an audio post-processor that turns any audio stream into silence. A more complex example can be seen in the `GainPostProcessor` class, included with the CAI.
+
+## Interfacing with hardware
+All hardware interfacing is abstracted behind the `AudioDriver` class. It's recommended to operate an audio driver using the `AudioManager` class. Implementations of the `AudioDriver` class usually do not have a public constructor, as they can handle only one instance of an audio card - if that is the case, they should feature a static `Initialize` method and a static `Instance` property.
+
+For example, to initialize the AC97 driver:
+```cs
+var driver = AC97.Initialize(4096);
+```
+
+As you can see in the example above, the AC97 initialization method accepts an integer parameter - this is the buffer size the AC97 will use. A higher buffer size will result in a decreased amount of clicks and will usually decrease mixing overhead, however, it will increase latency. Some drivers, like the AC97 driver, include support for changing the buffer size while it is running - however, support for this is not guaranteed.
+
+After initializing a driver, it's recommended to handle it using `AudioManager`:
+```cs
+var audioManager = new AudioManager()
+{
+ Stream = mixer,
+ Output = driver
+};
+
+audioManager.Enable();
+```
+The audio manager accepts a `Stream` and an `Output` property - the `Stream` is the audio stream that the audio manager will read samples from, which will in turn be provided to the underlying `Output` audio driver. The audio manager abstracts all hardware handling - however, if you need more control over the devices, you can use the driver classes directly.
+
+> **Note**
+- > When interfacing with audio devices, remember not to overload the system when supplying the audio samples. When mixing several streams of audio of different formats, for example, the system can get too overloaded, and this will result in audio crackle, or the system won't be able to respond to the audio device in time, resulting in the audio device stopping all output unexpectedly.
+
+*Last updated on 28 July 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/CGS.md b/Docs/articles/Kernel/CGS.md
new file mode 100644
index 0000000000..451f669573
--- /dev/null
+++ b/Docs/articles/Kernel/CGS.md
@@ -0,0 +1,151 @@
+# Introduction
+
+The Cosmos Graphic Subsystem *(abbr. CGS)* is based on the abstraction of Canvas that is an empty space in which the user of CGS can draw its content. CGS is not a widget toolkit like Winforms or Gnome / GTK, but is thought to be more lower level and is the basic foundation in which widget toolkits will be implemented. CGS hides the graphics driver (so far VGA, VBE and SVGAII) used and it is thought to be the universal way to draw on the screen in Cosmos.
+
+# FullScreenCanvas
+The `FullScreenCanvas` provides two methods to get a canvas instance for the screen. It automatically chooses the best available driver to use.
+
+`public static Canvas GetFullScreenCanvas(Mode mode)`: gets the instance of Canvas representing the complete screen in the specified mode. Some modes that are currently available are as follows: *(depends on the backend used)*
+
+```CSharp
+320x240, 32
+640x480, 32
+800x600, 32
+1024x768, 32
+1280x720, 32
+1280x768, 32
+1280x1024, 32
+1366x768, 32
+1680x1050, 32
+1920x1080, 32
+1920x1200, 32
+```
+
+`public static Canvas GetFullScreenCanvas()`: gets the instance of Canvas representing the complete screen in the best driver available on your platform.
+
+# Canvas
+
+## List of Properties of the Canvas class
+
+`Mode`: get / set the mode of the video card to mode. It throws if the selected mode is not supported by the video card.\
+`DefaultGraphicMode`: default graphic mode this will change based on the underlying hardware\
+`AvailableModes`: list of the available modes supported this will change based on the underlying hardware
+
+## List of Methods of the Canvas class
+
+`Clear(Color color)` clear the entire Canvas using the specified color as background
+
+`void DrawPoint(Color color, int x, int y)` draws a point at the coordinates specified by x and y with the specified pen
+
+`void DrawLine(Color color, int x_start, int y_start, int x_end, int y_end)` draws a line at the coordinates specified by x_start, y_start and x_end, y_end with the specified pen
+
+`void DrawRectangle(Color color, int x_start, int y_start,int width, int height)` draws a rectangle specified by a coordinate pair, a width, and a height with the specified pen
+
+`void DrawImage(Image image, int x, int y)` draws an image at the x and y specified
+
+`void DrawString(String string, Font font, Brush brush, int x, int y)` draws a string with the specified font and brush at the specified x and y coordinates
+
+`void Display()` is only required when using a double buffered driver, swaps the 2 buffers which causes all changes to be displayed
+
+
+Really simple right?
+# A working example (DevKit only!)
+```CSharp
+using System;
+using Sys = Cosmos.System;
+using Cosmos.System.Graphics;
+
+namespace GraphicTest
+{
+ public class Kernel : Sys.Kernel
+ {
+ Canvas canvas;
+
+ private readonly Bitmap bitmap = new Bitmap(10, 10,
+ new byte[] { 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0,
+ 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
+ 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
+ 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255,
+ 23, 59, 88, 255, 0, 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255, 23, 59, 88, 255, 0, 255, 243, 255, 0,
+ 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255, 153, 57, 12, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
+ 243, 255, 0, 255, 243, 255, 153, 57, 12, 255, 23, 59, 88, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243,
+ 255, 0, 255, 243, 255, 0, 255, 243, 255, 72, 72, 72, 255, 72, 72, 72, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0,
+ 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 72, 72,
+ 72, 255, 72, 72, 72, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
+ 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
+ 243, 255, 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 10, 66, 148, 255, 10, 66, 148, 255,
+ 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
+ 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148,
+ 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
+ 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, }, ColorDepth.ColorDepth32);
+
+ protected override void BeforeRun()
+ {
+ // If all works correctly you should not really see this :-)
+ Console.WriteLine("Cosmos booted successfully. Let's go in Graphical Mode");
+
+ /*
+ You don't have to specify the Mode, but here we do to show that you can.
+ To not specify the Mode and pick the best one, use:
+ canvas = FullScreenCanvas.GetFullScreenCanvas();
+ */
+ canvas = FullScreenCanvas.GetFullScreenCanvas(new Mode(640, 480, ColorDepth.ColorDepth32));
+
+ // This will clear the canvas with the specified color.
+ canvas.Clear(Color.Blue);
+ }
+
+ protected override void Run()
+ {
+ try
+ {
+ // A red Point
+ canvas.DrawPoint(Color.Red, 69, 69);
+
+ // A GreenYellow horizontal line
+ canvas.DrawLine(Color.GreenYellow, 250, 100, 400, 100);
+
+ // An IndianRed vertical line
+ canvas.DrawLine(Color.IndianRed, 350, 150, 350, 250);
+
+ // A MintCream diagonal line
+ canvas.DrawLine(Color.MintCream, 250, 150, 400, 250);
+
+ // A PaleVioletRed rectangle
+ canvas.DrawRectangle(Color.PaleVioletRed, 350, 350, 80, 60);
+
+ // A LimeGreen rectangle
+ canvas.DrawRectangle(Color.LimeGreen, 450, 450, 80, 60);
+
+ // A bitmap
+ canvas.DrawImage(bitmap, 100, 150);
+
+ canvas.Display(); // Required for something to be displayed when using a double buffered driver
+
+ Console.ReadKey();
+ Sys.Power.Shutdown();
+ }
+ catch (Exception e)
+ {
+ Debugger.Send("Exception occurred: " + e.Message);
+ Sys.Power.Shutdown();
+ }
+ }
+ }
+}
+```
+# Limitations of the current implementation
+
+1. Only 32-bit color depth is actually supported. The API provides methods to set a resolution with 24, 16, 8 and 4 bit but the low level Bochs driver has not yet implemented them.
+If you use SVGAIICanvas, you can use 24 bit Color depth, and if you use VGACanvas there are 3 modes: 320x200x8, 640x480x4 and 720x480x4.
+
+2. In addition, some other nice things could be implemented:
+ - Plugging System.Drawing functions for easier manipulation of colors.
+ - Plugging of System.Drawing functions for easier implementation of image conversion.
+
+3. CGS interacts badly with uncaught exceptions and the Kernel.Stop method: the screen will freeze without displaying any error message whatsoever. You must use the Sys.Power.Shutdown() function to properly shut down your computer.
+
+# Old examples
+On the internet, there have been a lot of tutorials explaining how to use graphics in Cosmos, but most of them are outdated. Just remember that the new Mouse class is Sys.MouseManager and Pen has been replaced with Color.
+
+*Last updated on 28 July 2023.*
\ No newline at end of file
diff --git a/Docs/Kernel/Levels.md b/Docs/articles/Kernel/Levels.md
similarity index 96%
rename from Docs/Kernel/Levels.md
rename to Docs/articles/Kernel/Levels.md
index e6db6cac0e..edf88870e1 100644
--- a/Docs/Kernel/Levels.md
+++ b/Docs/articles/Kernel/Levels.md
@@ -1,4 +1,8 @@
-The security model of Cosmos will evolve and mature as
+# Levels
+
+**Warning:** This article is for a older version of Cosmos, and as such, does not represent the current version included in the DevKit.
+
+The security model of Cosmos will evolve and mature as
Cosmos does, however the base model is presented here.
### Goals
@@ -204,3 +208,5 @@ references.
1 Ethernet
2 TCP/IP
3 Application
+
+*Last updated on 28 July 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/ManifestResouceStream.md b/Docs/articles/Kernel/ManifestResouceStream.md
new file mode 100644
index 0000000000..e7457b8e61
--- /dev/null
+++ b/Docs/articles/Kernel/ManifestResouceStream.md
@@ -0,0 +1,23 @@
+# Manifest Resource Streams
+Manifest Resource Streams allow you to include data from files as byte arrays in your code. An example of its use is in the [ZMachine Demo](https://github.com/CosmosOS/Cosmos/blob/5973a3fae95c989dc13505184aff9a15aae9f65f/Demos/ZMachine/ZKernel/Kernel.cs#L19).
+
+## How to use
+1. Set for the file you want to use `Build As: Embedded Resource` using the File Properties window in VS.
+
+2. In the code, reference the file using the following format (a static byte array with the attribute):
+```
+[ManifestResourceStream(ResourceName = "{project_name}.{path}.{to}.{filename_with_extension}")]
+static byte[] file;
+```
+The field _must_ be static but the name of the field (file) can be changed. You will also need to add `using IL2CPU.API.Attribs;` to the code.
+
+For example, if the project is called Kernel and the file is `Data\Text.txt`, then `ResourceName = "Kernel.Data.Text.txt"`.
+
+3. To access the data simply read from the byte array defined.
+
+```csharp
+string fileContent = System.Text.Encoding.UTF8.GetString(file); //convert the byte array to string (assuming text data)
+Console.WriteLine(fileContent); //write it out
+```
+
+*Last updated on 28 July 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/MemoryManagement.md b/Docs/articles/Kernel/MemoryManagement.md
new file mode 100644
index 0000000000..76df1c6a22
--- /dev/null
+++ b/Docs/articles/Kernel/MemoryManagement.md
@@ -0,0 +1,69 @@
+# Memory Management in Cosmos
+
+Cosmos provides dynamic memory allocation on a heap and a garbage collector to free unused objects.
+
+The heap is initialised automatically when the kernel starts and the memory managed is split into pages of 4096 bytes each.
+
+This article provides an overview of how both Memory Allocation and the Garbage Collector can be used (Usage Section) and how they work internally (Internals Section).
+
+## Memory Allocation
+
+### Usage
+
+#### Allocation
+
+Usually, users should be allocating memory indirectly by using `new` or other standard methods provided by .Net to allocate new objects. In the cases, where you want to allocate a managed block of memory, which is not part of a certain .NET type, a `ManagedMemoryBlock` or `byte[]` should suffice. If this is not sufficient, one can use `uint GCImplementation.AllocNewObject(uint aSize)` to allocate a region of `aSize` bytes. The returned uint contains the memory address and can be converted to pointer if required.
+
+One can manually free an object using `Heap.Free(void* aPtr)` or `GCImplementation.Free(object aObj)`. It is recommended to not manually free .NET objects unless you know what you are doing, since Cosmos does not always recognise when it is accessing already freed memory. This can lead to very weird bugs.
+
+#### Information
+
+Cosmos provides a few methods to get information about the heap status:
+
+ - `GCImplementation.GetAvailableRAM()` returns the size of the memory in MB available to the heap
+ - `GCImplementation.GetUsedRAM()` provides a rough estimate of how many bytes are currently in use
+ - `HeapSmall.GetAllocatedObjectCount()` returns the number of .NET objects are currently allocated
+ - `RAT.GetPageCount(byte aType)` returns how many pages of a certain type are allocated. The different type definitions are stored in `RAT.PageType`
+
+### Internals
+
+The Heap is managed using the RAT (RAM Allocation Table). The RAT consists of a byte array which for every page in the heap stores its status. The table is stored at the end of the heap starting at `mRAT` and does not grow during runtime. Pages can be of the following types, `Empty`, `HeapSmall`, `HeapMedium`, `HeapLarge`, `RAT`, `SMT` and `Extension`. If the value for a type is odd, it means that the page is managed by the GC and objects stored there will be scanned and if possible freed.
+
+The RAT initialisation is triggered using `GCImplementation.Init()` which is called in the boot sequence defined in CosmosAssembler.cs. If the MemoryMap is available, the largest continuous region of memory is used for the heap.
+
+The RAT is managed through the `RAT` class. Pages are allocated via `void* RAT.AllocPages(byte aType, uint aPageCount = 1)`. If more than 1 page is allocated at once, the first page will be marked as type `aType`, while all later pages are marked as `Extension`. Pages can be freed (set to type `Empty`) using `void RAT.Free(uint aPageIdx)` which also frees any extension pages which follow the first page. To convert between a pointer and the page index, the method `uint RAT.GetFirstRATIndex(void* aPtr)` can be used.
+
+The Heap itself is managed by the `Heap` class. It contains the mechanism to allocate (`byte* Heap.Alloc(uint aSize)`), re-allocate ('byte* Heap.Realloc(byte* aPtr, uint newSize)') and free (`void Heap.Free(void* aPtr)`) objects of various sizes. Objects are seperated by size in bytes into Small (Smaller than 1/4 Page), Medium (Smaller than 1 Page) and Large (Larger than 1 Page). Currently Medium and Large objects are managed the same way using the methods in `HeapLarge` which do little more than allocating/freeing the necessary number of pages. Small objects are managed differently in `HeapSmall`.
+
+Small Objects are managed using the SMT (Size Map Table), which is initalised using `void HeapSmall.InitSMT(uint aMaxItemSize)`.
+The basic idea of the SMT is to allocate objects of similar sizes on the same page. The SMT grows dynamically as required.
+The SMT is made up of a series of pages, each of which contains a series of `RootSMTBlock` each of which link to a chain of `SMTBlock`.
+The `RootSMTBlock` can be thought of as column headers and the `SMTBlock` as the elements stored in the column.
+The `RootSMTBlock` are a linked list, each containing the maximum object size stored in its pages, the location of the first `SMTBlock` for this size, and the location of the next `RootSMTBlock`.
+The list is in ascending order of size, so that the smallest large enough `RootSMTBlock` is found first.
+A `SMTBlock` contains a pointer to the actual page where objects are stored, how much space is left on that page, and a pointer to the next `SMTBlock`.
+If every `SMTBlock` for a certain size is full, a new `SMTBlock` is allocated.
+The page linked to by the `SMTBlock` is split into an array of spaces, each large enough to allocate an object of maximum size with header, which can be iterated through via index and fixed size when allocating.
+Each object allocated on the `HeapSmall` has a header of 2 `ushort`, the first one storing the actual size of the object and the second, the GC status of the object.
+
+## Garbage Collection
+
+### Interface
+
+The garbage collector has to be manually triggerd using the call `int Heap.Collect()` which returns the number of objects freed.
+
+Note that the GC does not track objects only pointed to by pointers. To ensure that the GC nevertheless does not incorrectly free objects, you can use `void GCImplementation.IncRootCount(ushort* aPtr)` to manually increase the references of your object by 1. Once you no longer need the object you can use `void GCImplementation.DecRootCount(ushort* aPtr)` to remove the manual reference, which allows the next `Heap.Collect` call to free the object.
+
+`Heap.Collect` only cleans up the objects which are no longer used but will leave behind empty pages in the SMT.
+These pages can be cleaned up using `HeapSmall.PruneSMT` which will return the number of pages it freed.
+Note that if in future elements are reallocated, this will cause new pages in the SMT to be allocated again, so using this too often may not be useful.
+
+## Automatically Trigger Garbage Collection
+
+When `RAT.MinFreePages` is set to a positive value and the number of free pages (as tracked by `RAT.FreePageCount`) drops below this value, on page allocation `Heap.Collect` will automatically be called. Each time this happens the value in `RAT.GCTriggered` is incremented by one.
+
+### Internals
+
+The garbage collector uses the tracing approach, which means that during collection a graph of all reachable objects is created and all non-discovered objects are freed. The garbage collector will only check objects on pages which have a type where the `GCManaged` bit is set. The graph is created by starting from "root" objects which are either stored in static variables or part of the current stack. Each of these objects is "marked" and all objects referenced by this object are recursivly also "marked" and "swept". This is done using the methods `void Heap.MarkAndSweepObject(void* aPtr)` for objects and `void Heap.SweepTypedObject(uint* obj, uint type)` for structures. For this to work each allocated object holds a 1bit flag if the object was discovered during the marking phase and a 7bit value counter for the number of static references it has. The number of static references an object has is updated using `void GCImplementation.IncRootCount(ushort* aPtr)` and similar methods, which are called from the Stsfld opcode.
+
+*Last updated on 22 October 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/Network.md b/Docs/articles/Kernel/Network.md
new file mode 100644
index 0000000000..16ab25aefe
--- /dev/null
+++ b/Docs/articles/Kernel/Network.md
@@ -0,0 +1,204 @@
+# Network
+
+In this article, we will discuss Networking on Cosmos, how to use the Network Stack, and send and receive packets. For now, available protocols are **ARP**, **IPv4**, **TCP**, **UDP**, **ICMP**, **DHCP** and **DNS**. Note that Cosmos DevKit must be installed for this article.
+
+All protocols here don't necessarily support every feature described by their RFC and may have some bugs or architecture issues, if you find bugs or something abnormal please [submit an issue](https://github.com/CosmosOS/Cosmos/issues/new/choose) on our repository.
+
+Each protocol has a Client class which can be used to receive and send data. If a Receive() method is blocking, the method will timeout after 5 seconds or use the value optionally set by parameter. Please note that all finished connections should be closed using Close().
+
+The Cosmos Network Stack does not uses classes and functions that are under .NET Core (except TCP). Everything described here will be under:
+```csharp
+using Cosmos.System.Network;
+```
+
+Before anything, a Network Configuration must be set (local machine IPv4 address, subnet mask and gateway). It can be manually set with IPConfig.Enable or dynamically set through a DHCP server. For DHCP, Cosmos will ask to the DHCP server (usually default gateway) for an address in your local network.
+### Manually set IPv4 Config
+```csharp
+NetworkDevice nic = NetworkDevice.GetDeviceByName("eth0"); //get network device by name
+IPConfig.Enable(nic, new Address(192, 168, 1, 69), new Address(255, 255, 255, 0), new Address(192, 168, 1, 254)); //enable IPv4 configuration
+```
+### Dynamically set IPv4 Config through DHCP
+```csharp
+using(var xClient = new DHCPClient())
+{
+ /** Send a DHCP Discover packet **/
+ //This will automatically set the IP config after DHCP response
+ xClient.SendDiscoverPacket();
+}
+```
+
+### Get local IP address
+```csharp
+Console.WriteLine(NetworkConfiguration.CurrentAddress.ToString());
+```
+## UDP
+Before playing with packets, we have to create a client and call Connect() to specify the remote machine address. After that the client will be able to send or listen for data.
+```csharp
+using(var xClient = new UdpClient(4242))
+{
+ xClient.Connect(new Address(192, 168, 1, 70), 4242);
+
+ /** Send data **/
+ xClient.Send(Encoding.ASCII.GetBytes(message));
+
+ /** Receive data **/
+ var endpoint = new EndPoint(Address.Zero, 0);
+ var data = xClient.Receive(ref endpoint); //set endpoint to remote machine IP:port
+ var data2 = xClient.NonBlockingReceive(ref endpoint); //retrieve receive buffer without waiting
+}
+```
+
+## TCP
+Unlike UDP, TCP is plugged with the dotnet framework. You won't have to use Cosmos.System.Network but System.Net.Sockets and System.Net. You can setup TCP network streams using TcpListener, TcpClient and NetworkStream, don't use the Stream class unless you know what you do.
+
+Server:
+```csharp
+using System.Text;
+using System.Net.Sockets;
+using System.Net;
+
+class TcpServer
+{
+ private TcpListener tcpListener;
+ private int port;
+
+ public TcpServer(int port)
+ {
+ this.port = port;
+ var address = IPAddress.Any;
+ this.tcpListener = new TcpListener(address, port);
+ }
+
+ public void Start()
+ {
+ this.tcpListener.Start();
+
+ while (true)
+ {
+ /** Wait for new connections **/
+ TcpClient client = this.tcpListener.AcceptTcpClient();
+ HandleClientComm(client);
+ client.Close();
+ }
+ }
+
+ private void HandleClientComm(TcpClient client)
+ {
+ NetworkStream stream = client.GetStream();
+
+ byte[] buffer = new byte[client.ReceiveBufferSize];
+ int bytesRead;
+
+ while (true)
+ {
+ bytesRead = 0;
+
+ /** Receive data **/
+ bytesRead = stream.Read(buffer, 0, buffer.Length); // Blocks until a client sends a message
+
+ if (bytesRead == 0) // The client has disconnected from the server
+ {
+ break;
+ }
+
+ string received = Encoding.ASCII.GetString(buffer, 0, bytesRead);
+
+ /** Send data **/
+ byte[] response = Encoding.ASCII.GetBytes("ok");
+ stream.Write(response, 0, response.Length);
+
+ // stream.Flush(); useless for now
+ }
+ stream.Close();
+ }
+}
+```
+
+Client :
+```csharp
+string serverIp = "192.168.1.63";
+int serverPort = 1312;
+
+using(TcpClient client = new TcpClient())
+{
+ /**Connect to server **/
+ client.Connect(serverIp, serverPort);
+ NetworkStream stream = client.GetStream();
+
+ /** Send data **/
+ string messageToSend = "Hello from CosmosOS!";
+ byte[] dataToSend = Encoding.ASCII.GetBytes(messageToSend);
+ stream.Write(dataToSend, 0, dataToSend.Length);
+
+ /** Receive data **/
+ byte[] receivedData = new byte[client.ReceiveBufferSize];
+ int bytesRead = stream.Read(receivedData, 0, receivedData.Length);
+ string receivedMessage = Encoding.ASCII.GetString(receivedData, 0, bytesRead);
+
+ /** Close data stream **/
+ stream.Close();
+}
+```
+
+## FTP
+Only server-side FTP is implemented within Cosmos. We recommend to use FileZilla as your FTP client.
+
+**Your FTP client must enable active mode**. Since in Active Mode the server has to open TCP connections, **your computer firewall must be disabled** to accept incoming connection. An FTP connection is made of two TCP sockets. One for control connection (as a textual protocol) and one for data transmission. Data transmission sockets can be opened by the client (if it is in Passive Mode) or by the server (if in Active Mode). The Passive Mode is not supported yet due to current Cosmos TCP and multithreading limitation.
+
+### Installation:
+
+Install CosmosFtpServer package into your Cosmos kernel. For more information see [CosmosFTP readme](https://github.com/CosmosOS/CosmosFtp).
+
+### FTP client configuration:
+
+Use Plain FTP with an anonymous connection:
+
+
+
+### Usage:
+
+Please note that for now only one FTP connection can be accepted, the server will shut down itself after the client disconnection.
+
+```csharp
+/** Initialize filesystem **/
+var fs = new CosmosVFS();
+VFSManager.RegisterVFS(fs);
+
+using(var xServer = new FtpServer(fs, "0:\\"))
+{
+ /** Listen for new FTP client connections **/
+ FtpServer.Listen();
+}
+```
+
+## ICMP
+For ICMP, we will only be able to send an ICMP echo to a distant machine and wait for its response. If another machine sends us an ICMP echo, Cosmos will automatically handle the request and reply.
+```csharp
+using(var xClient = new ICMPClient())
+{
+ xClient.Connect(new Address(192, 168, 1, 254));
+
+ /** Send ICMP Echo **/
+ xClient.SendEcho();
+
+ /** Receive ICMP Response **/
+ int time = xClient.Receive(ref endpoint); //return elapsed time / timeout if no response
+}
+
+```
+## DNS
+DNS can be used to get an IP address from a Domain Name string. For now DNS can only ask for one domain name at the same time.
+```csharp
+using(var xClient = new DnsClient())
+{
+ xClient.Connect(new Address(192, 168, 1, 254)); //DNS Server address. We recommend a Google or Cloudflare DNS, but you can use any you like!
+
+ /** Send DNS ask for a single domain name **/
+ xClient.SendAsk("github.com");
+
+ /** Receive DNS Response **/
+ Address destination = xClient.Receive(); //can set a timeout value
+}
+```
+
+*Last updated on 24 March 2024.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/OnBoot.md b/Docs/articles/Kernel/OnBoot.md
new file mode 100644
index 0000000000..45673f5b3f
--- /dev/null
+++ b/Docs/articles/Kernel/OnBoot.md
@@ -0,0 +1,18 @@
+# OnBoot
+If you need to disable drivers because you are developing your own, or in some cases just don't need them, you may do so by adding the OnBoot method to your kernel. For now, you can disable 3 drivers and disable a part of a driver, an example would be:
+
+```csharp
+protected override void OnBoot()
+{
+ Sys.Global.Init(GetTextScreen(),true,true,true,false);
+}
+```
+
+In that example, we specify that the Mousewheel is enabled, the PS2controller is loaded, network drivers are being loaded and the IDE controller is disabled.
+this is helpful if you intend on developing your own IDE controller, the order of the booleans is as stated above:
+`Mousewheel`
+`PS2Controller`
+`Network Drivers`
+`IDE Controller`
+
+*Last updated on 24 March 2024.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/Plugs.md b/Docs/articles/Kernel/Plugs.md
new file mode 100644
index 0000000000..8c6ad1e5b0
--- /dev/null
+++ b/Docs/articles/Kernel/Plugs.md
@@ -0,0 +1,53 @@
+# Plugs
+
+Plugs are used to fill "holes" in .NET libraries and replace them with different
+ code. Holes exist for example when a method in .NET library uses a Windows API
+ call. That API call will not be available on Cosmos. Emulating the Win32 API would be highly inefficient. Instead,
+ Cosmos replaces specific methods and property implementations that rely on
+ Win32 API calls. Plugs can also be used to provide an alternate implementation
+ for a method, even if it does not rely on the Windows API.
+
+ > **Important: All plugs must go in a seperate project, which is included in your original project using the `PlugsReference` attribute in your Kernel's csproj.**
+
+## Types of plugs
+
+There are two types of plugs used and supported by Cosmos:
+
+* Code Plug - A standard C# (or any .NET language) method is used to provide the alternate implementation.
+* X#/Assembly Languge - In a few cases, it is difficult or impossible to write the code using C#/.Net since one needs exact control over the emitted assembly code. An assembly plug are designed for that case. Cosmos itself only uses this type of plug within the Cosmos.Core projects.
+
+## How do plugs work?
+
+To explain how plugs work, we first need to give an overview of how IL2CPU works. Roughly, IL2CPU compiles a kernel using the following steps:
+1. IL2CPU determines a list of all methods and types which are used by the kernel.
+2. It then compiles each of these methods into assembly code.
+This is usually done by getting the list of IL instructions which make up the method and translating each of them into some corresponding assembly.
+3. Together with a bit of boilerplate code, the emitted assembly for all the methods is compiled using yasm.
+
+Plugs effect what occurs in Step 2; A normal code plug means that rather from taking the IL instructions from the original method, the IL instructions from the plug are used and then converted into assembly. An assembly plug directly states what asm should be emitted.
+
+# Implementing a Plug
+
+While one always plugs individual methods, plugs are defined class-wise. Therefore, the first step to plugging any method is to define a new static class to contain all the pluggged methods for some certain type. This class must be decorated with the `Plug` attribute. The plug attribute either takes the type it is plugging (`Plug(Type target)`), or a string with the target name(`Plug(string targetName)`). Using the string target name is required when plugging internal or private classes. An example for a plugged class is for the [Math class](https://github.com/CosmosOS/Cosmos/blob/8a8393353f1957890c5154650e29847fd22bf893/source/Cosmos.System2_Plugs/System/MathImpl.cs#L8-L9).
+
+## Code Plug
+
+Once you have created such a class, you can add methods to the class. If these methods share the signature with a method in the original class they will be used to plug the original methods. For example in the above mentioned Math plug class, the following method plugs the original `double Math.Abs(double)` implementation. [See here](https://github.com/CosmosOS/Cosmos/blob/8a8393353f1957890c5154650e29847fd22bf893/source/Cosmos.System2_Plugs/System/MathImpl.cs#L52-L63).
+
+Note, when plugging a non-static method, the first argument will be correspond to "this" (the instance for which the method is being called).
+
+Sometimes it is impossible to define a method with exactly the same signature due to some of the arguments being from private or internal classes. In that case you can use the `PlugMethod` attribute. An example, is the following plug for `GC.AllocateNewArray` since `ALLOC_FLAGS` is a private enum. [See here](https://github.com/CosmosOS/Cosmos/blob/8a8393353f1957890c5154650e29847fd22bf893/source/Cosmos.Core_Plugs/System/GCImpl.cs#L17-L29).
+
+## Assembly Plug
+
+Defining an assembly plug is slightly more complicated. The first step is the same, and one needs to define a method with the same signature as the method one needs to plug. This acts as a plug placeholder. The actual plug implemenation is a new class inheriting from `AssemblerMethod`. This class needs to override the `void AssembleNew(Assembler aAssembler, object aMethodInfo)` method. The `AssembleNew` method will be called when IL2CPU is executing and should emit the required asm. Examples of such classes can be found [here](https://github.com/CosmosOS/Cosmos/blob/master/source/Cosmos.Core_Plugs/MathImpl.cs) including the plug implementation for `double Math.Round(double)` [here](https://github.com/CosmosOS/Cosmos/blob/8a8393353f1957890c5154650e29847fd22bf893/source/Cosmos.Core_Plugs/MathImpl.cs#L40-L49
+).
+
+The final step is to link the plug implementation to the plug placeholder by adding a `PlugMethod(Type Assembler)` to the plug placeholder, where the `Assembler` value is the class you created with the implementation. An example is the plug placeholder for the above mentioned `double Math.Round(double)`, [here](https://github.com/CosmosOS/Cosmos/blob/8a8393353f1957890c5154650e29847fd22bf893/source/Cosmos.Core_Plugs/MathImpl.cs#L15-L19).
+
+## Using plugs to write Assembly in your Kernel
+
+While plugs are usually used to overwrite existing methods in the .NET runtime, they can also be used to include assembly methods in your kernel.
+This is for example, done to implement the `void CPU.UpdateIDT(bool)` method in Cosmos. To do this for your own classes and methods is not more difficult than plugging any other method. Simply set target of the plug class to your own class and write the assembly plug as usual. As a reference you can look at [Cosmos.Core/CPU.cs](https://github.com/CosmosOS/Cosmos/blob/master/source/Cosmos.Core/CPU.cs), [Cosmos.Core_Asm/CPUImpl.cs](https://github.com/CosmosOS/Cosmos/blob/master/source/Cosmos.Core_Asm/CPUImpl.cs) and [CPUUpdateIDTAsm.cs]( https://github.com/CosmosOS/Cosmos/blob/master/source/Cosmos.Core_Asm/CPU/CPUUpdateIDTAsm.cs).
+
+*Last updated on 28 April 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/Startup.md b/Docs/articles/Kernel/Startup.md
new file mode 100644
index 0000000000..5308b2f176
--- /dev/null
+++ b/Docs/articles/Kernel/Startup.md
@@ -0,0 +1,21 @@
+# Startup
+
+On startup, the first thing that happens is that the BIOS of your computer loads Limine, the bootloader that Cosmos uses. From there, there is some hand-coded assembly that runs before the "Cosmos layer" kicks in. From there, the IL2CPU-ed C# entry point `Cosmos.System.Kernel.Start()` or `Sys.Kernel.Start()` is called.
+
+> By the way, `Cosmos.System.Kernel` is an abstract class that forms the Cosmos framework. It provides a base that your OS is built on top of.
+
+## Sys.Kernel.Start()
+
+### What does it do?
+`Kernel.Start()` does quite a bit of stuff. First, it checks if `System.String.Empty` is null. If it is null, then it will just throw an exception. If it isn't, it just continues. After that check, `Kernel.Start()` initializes the hardware bootstrap, then calls `OnBoot()`.
+> The next article explains what `OnBoot()` is.
+
+Then, `Kernel.Start()` calls your `BeforeRun()` method, after it finishes, `Kernel.Start()` enables the hardware interrupts. Then it simply does a `while (!mStopped)` loop with your `Run()` method. After that, it calls an optional method called `AfterRun()`. By default, `AfterRun()` is just empty, so don't worry about nulls or something like that. Then it finishes. All of that is also try/catched too with the `A kernel exception has occurred` message.
+
+### Overriding it
+You can override the `Kernel.Start()` method in your Kernel to suppress the standard Cosmos boot routines and get deeper control of Cosmos.
+> You override it the same way you do with other methods. An extremely simple base override in your Kernel would be: `protected override void Start() {}`
+
+The default `Kernel.Start()` method is located in `Cosmos\source\Cosmos.System2\Kernel.cs`. You can copy it and make modifications with your Kernel override.
+
+*Last updated on 20 May 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/VFS.md b/Docs/articles/Kernel/VFS.md
new file mode 100644
index 0000000000..ef1e3c0149
--- /dev/null
+++ b/Docs/articles/Kernel/VFS.md
@@ -0,0 +1,248 @@
+# File System
+
+In this article, we will discuss about using Cosmos VFS (virtual file system).
+Cosmos VFS and the VFSManager classes, let you manage your file system.
+
+**Attention**: **Always** format your drive with Cosmos and **only** Cosmos if you plan to use it with Cosmos. Using any other tool such as Parted, FDisk, or any other tool might lead to weird things when using that drive with Cosmos' VFS. Those tools are much more advanced and might format and read/write to the disk differently than Cosmos.
+
+**WARNING!**: Please do **not** try this on actual hardware! It may cause **IRREPARBLE DAMAGE** to your data. It is recommended to use a virtual machine like VMware or VirtualBox, just to name a few.
+
+First, we should create and initialize an instance of the VFS, this will initialize the partition and files-system lists, as well as register the new VFS.
+This is essential for using the VFS.
+
+We start with creating a global CosmosVFS, this line should appear outside of any function, and before the BeforeRun() function.
+
+```C#
+Sys.FileSystem.CosmosVFS fs = new Cosmos.System.FileSystem.CosmosVFS();
+```
+
+Next, we register our VFS at the VFS manager, this will initiate the VFS and make it usable, add this to your kernel's BeforeRun() function:
+
+```C#
+Sys.FileSystem.VFS.VFSManager.RegisterVFS(fs);
+```
+
+**Note**: From now on, we'll be using some plugged functions from ``System.IO``, so be sure to use that reference to your code. Now, let's get started over some useful functions:
+
+## Format disks
+
+**Note**: You don't have to format your drive if you're debugging your Cosmos project with VMWare. The build will automatically add an already formatted FAT32 VMDK file for your convenience.
+
+You can get all available disks using `VFSManager.GetDisks()`. The methods to get information about the disk or format it can be found under the [Disk](https://cosmosos.github.io/api/Cosmos.System.FileSystem.Disk.html) class.
+To format a disk use the [`FormatDisk(int index, string format, bool quick = true)`](https://cosmosos.github.io/api/Cosmos.System.FileSystem.Disk.html#Cosmos_System_FileSystem_Disk_FormatPartition_System_Int32_System_String_System_Boolean_)
+method.
+
+
+## Get available free space
+
+We use this function to get the size of the available free space in our file system, in bytes.
+
+```C#
+var available_space = fs.GetAvailableFreeSpace(@"0:\");
+Console.WriteLine("Available Free Space: " + available_space);
+```
+
+
+
+You have probably noticed the "0:\" argument passed to this function, this is the ID of the drive that we want to get available free space of.
+Cosmos uses the DOS drive naming system, this is why we use "0".
+
+**Attention**: Typing "0:/" instead of "0:\\" might lead to errors, you've been warned.
+
+## Get file system type
+
+This will let us know what is the file system type that we are using.
+You **should** be seeing "FAT32", if you see other types of FAT like "FAT16" or "FAT12", then the virtual disk has probably been formatted with one of those FAT types, but remember, the best supported one is FAT32.
+
+
+
+```C#
+var fs_type = fs.GetFileSystemType(@"0:\");
+Console.WriteLine("File System Type: " + fs_type);
+```
+
+## Get list of file
+
+We start by getting a list of files, using:
+
+```C#
+var files_list = Directory.GetFiles(@"0:\");
+```
+
+Once we have it, we can get the names of our files:
+
+```C#
+foreach (var file in files_list)
+{
+ Console.WriteLine(file);
+}
+```
+
+
+
+## Get directory listing (files and other directories)
+
+You can get files and directory listing by using this code:
+
+```C#
+var files_list = Directory.GetFiles(@"0:\");
+var directory_list = Directory.GetDirectories(@"0:\");
+
+foreach (var file in files_list);
+{
+ Console.WriteLine(file)
+}
+foreach (var directory in directory_list)
+{
+ Console.WriteLine(directory);
+}
+```
+
+
+## Read all the files in a directory
+
+This one is more tricky,
+We need to get a list of files and print all of their content to the screen.
+
+Of course, we'll start with geting that files list:
+
+```C#
+var directory_list = Directory.GetFiles(@"0:\");
+```
+
+Now we can go through our list, and print the raw content of each file.
+
+```C#
+try
+{
+ foreach (var file in directory_list)
+ {
+ var content = File.ReadAllText(file);
+
+ Console.WriteLine("File name: " + file);
+ Console.WriteLine("File size: " + content.Length);
+ Console.WriteLine("Content: " + content);
+ }
+}
+catch(Exception e)
+{
+ Console.WriteLine(e.ToString());
+}
+```
+
+## Create new file
+Reading and writing is working on existing files, but it's much more useful to write to our own files.
+Let's jump right into it:
+
+```C#
+try
+{
+ var file_stream = File.Create(@"0:\testing.txt");
+}
+catch (Exception e)
+{
+ Console.WriteLine(e.ToString());
+}
+```
+
+## Create a new directory
+Here is a example of code of creating a new directory:
+
+```C#
+try
+{
+ Directory.Create(@"0:\testdirectory\");
+}
+catch (Exception e)
+{
+ Console.WriteLine(e.ToString());
+}
+```
+
+## Deleting a file or a directory
+
+You can also delete files or directories using this code:
+
+```C#
+try
+{
+ File.Delete(@"0:\testing.txt");
+ Directory.Delete(@"0:\testdirectory\");
+}
+catch (Exception e)
+{
+ Console.WriteLine(e.ToString());
+}
+```
+
+## Write to file
+
+Now we will write to an existing file.
+Writing to a file is almost the same as reading from a file.
+Always remember that we should put our code in a try catch block.
+
+```C#
+try
+{
+ File.WriteAllText(@"0:\testing.txt", "Learning how to use VFS!");
+}
+catch (Exception e)
+{
+ Console.WriteLine(e.ToString());
+}
+```
+
+## Move a file
+
+File.Move() is not currently plugged in Cosmos, so you need to copy the file and then delete the old file.
+Here is an example Method:
+```C#
+public static void MoveFile(string file, string newpath)
+{
+ try
+ {
+ File.Copy(file, newpath);
+ File.Delete(file);
+ }
+ catch(Exception e)
+ {
+ Console.WriteLine(ex);
+ }
+}
+```
+
+
+## Read all text from a specific file
+
+Now, we will read a specific file from a given path.
+As usual, we'll do it in a try catch block.
+
+```C#
+try
+{
+ Console.WriteLine(File.ReadAllText(@"0:\testing.txt"));
+}
+catch (Exception e)
+{
+ Console.WriteLine(e.ToString());
+}
+```
+
+
+
+# Read All bytes from a specific file
+
+As like the ReadAllText Method, ReadAllBytes should return all bytes the bytes from a file. You can use this to load files that include data and not just text.
+
+```C#
+try
+{
+ Console.WriteLine(File.ReadAllBytes(@"0:\testing.txt"));
+}
+catch (Exception e)
+{
+ Console.WriteLine(e.ToString());
+}
+```
+
+*Last updated on 2 November 2023.*
\ No newline at end of file
diff --git a/Docs/articles/Kernel/images/File System Files List.PNG b/Docs/articles/Kernel/images/File System Files List.PNG
new file mode 100644
index 0000000000..0e594aea42
Binary files /dev/null and b/Docs/articles/Kernel/images/File System Files List.PNG differ
diff --git a/Docs/articles/Kernel/images/File System Free Space.PNG b/Docs/articles/Kernel/images/File System Free Space.PNG
new file mode 100644
index 0000000000..e827d90c92
Binary files /dev/null and b/Docs/articles/Kernel/images/File System Free Space.PNG differ
diff --git a/Docs/articles/Kernel/images/File System Read Specified File.PNG b/Docs/articles/Kernel/images/File System Read Specified File.PNG
new file mode 100644
index 0000000000..6b2d415069
Binary files /dev/null and b/Docs/articles/Kernel/images/File System Read Specified File.PNG differ
diff --git a/Docs/articles/Kernel/images/File System Type.PNG b/Docs/articles/Kernel/images/File System Type.PNG
new file mode 100644
index 0000000000..8d4ebba6d0
Binary files /dev/null and b/Docs/articles/Kernel/images/File System Type.PNG differ
diff --git a/Docs/articles/Reference/x86.md b/Docs/articles/Reference/x86.md
new file mode 100644
index 0000000000..ae46388245
--- /dev/null
+++ b/Docs/articles/Reference/x86.md
@@ -0,0 +1,5 @@
+# x86 Reference
+
+The reference can be found [here](http://ref.x86asm.net/).
+
+*Last updated on 20 June 2022.*
\ No newline at end of file
diff --git a/Docs/articles/Tests/TestRunner.md b/Docs/articles/Tests/TestRunner.md
new file mode 100644
index 0000000000..1b01153d75
--- /dev/null
+++ b/Docs/articles/Tests/TestRunner.md
@@ -0,0 +1,31 @@
+# TestRunner
+
+## Description
+TestRunner is used to run Kernel Tests using the tests at a specified location and can run each kernel in multiple targets to ensure full compatibility and stability accross these targets.
+
+TestRunner generates a result file upon completion to detail the results of the tests.
+
+## Get Started
+To use the TestRunnner open the `Test.sln`, set the Target Project to `Cosmos.TestRunner` and run the solution.
+
+## Configuration
+Edit the configuration for TestRunner via [DefaultEngineConfiguration.cs](https://github.com/CosmosOS/Cosmos/blob/9d0ccc2be22938424d8992611b11409aaabf74ea/Tests/Cosmos.TestRunner.Full/DefaultEngineConfiguration.cs#L9). in ..\Tests\TestRunner\TestRunner.Core
+This allows one to choose which emulator to use and at what level the kernel is debugged.
+
+To select which Test Kernels to run, edit `GetStableKernelTypes()` in `TestKernelSets.cs`.
+
+### Adding a Kernel
+To add a kernel to the TestRunner, open the TestKernelSets file and add a line to GetStableKernelTypes() like this line:
+
+`yield return typeof(Cosmos.Kernel.Tests.Fat.Kernel);`
+
+Note: This can be used to test your own kernel for debug purposes. Add your kernel to the Test solution, add a project reference to your kernel to Cosmos.TestRunner.Full and add the kernel to the TestKernelSets list.
+You will also need to modify the .csproj file by removing the platform line. You also need to replace the nuget references with references to the actual projects (System2, Core etc) and import the `/Tests/Kernels/Directory.Build.targets` file. If you are still faced with the .refs file not generating, comment out the Cosmos related parts of the csproj.
+
+### Time Out
+To set the period before the TestRunner registers an error, change the line: `engine.AllowedSecondsInKernel = 1800;` This means that, in this case, if the Kernel runs for more that 30 minutes then it will register a failure.
+
+## Project Location
+The TestRunner Projects are located in ..\Tests\TestRunner
+
+*Last updated on 9 December 2022.*
\ No newline at end of file
diff --git a/Docs/articles/images/SNAG-0000.png b/Docs/articles/images/SNAG-0000.png
new file mode 100644
index 0000000000..8154c78f96
Binary files /dev/null and b/Docs/articles/images/SNAG-0000.png differ
diff --git a/Docs/articles/images/SNAG-0001.png b/Docs/articles/images/SNAG-0001.png
new file mode 100644
index 0000000000..f41c7dba47
Binary files /dev/null and b/Docs/articles/images/SNAG-0001.png differ
diff --git a/Docs/articles/images/SNAG-0002.png b/Docs/articles/images/SNAG-0002.png
new file mode 100644
index 0000000000..82d23c00db
Binary files /dev/null and b/Docs/articles/images/SNAG-0002.png differ
diff --git a/Docs/articles/images/SNAG-0003.png b/Docs/articles/images/SNAG-0003.png
new file mode 100644
index 0000000000..6e0a39289d
Binary files /dev/null and b/Docs/articles/images/SNAG-0003.png differ
diff --git a/Docs/articles/images/SNAG-0004.png b/Docs/articles/images/SNAG-0004.png
new file mode 100644
index 0000000000..ee74691600
Binary files /dev/null and b/Docs/articles/images/SNAG-0004.png differ
diff --git a/Docs/articles/images/SNAG-0005.png b/Docs/articles/images/SNAG-0005.png
new file mode 100644
index 0000000000..69be453d6b
Binary files /dev/null and b/Docs/articles/images/SNAG-0005.png differ
diff --git a/Docs/articles/images/SNAG-0007.png b/Docs/articles/images/SNAG-0007.png
new file mode 100644
index 0000000000..efb1279679
Binary files /dev/null and b/Docs/articles/images/SNAG-0007.png differ
diff --git a/Docs/articles/images/SNAG-0008.png b/Docs/articles/images/SNAG-0008.png
new file mode 100644
index 0000000000..e6e8a8d81f
Binary files /dev/null and b/Docs/articles/images/SNAG-0008.png differ
diff --git a/Docs/articles/toc.md b/Docs/articles/toc.md
new file mode 100644
index 0000000000..30cc3ead58
--- /dev/null
+++ b/Docs/articles/toc.md
@@ -0,0 +1,31 @@
+# [Getting Started](GettingStarted.md)
+
+# [Compiler](Compiler/il2cpu.md)
+
+# [Change Log](Changelog.md)
+
+# Debugger
+## [Debug Commands](Debugger/DebugCommands.md)
+
+# Installation
+## [User Kit](Installation/UserKit.md)
+## [Dev Kit](Installation/DevKit.md)
+## [Running](Installation/Running.md)
+
+# Kernel
+## [Levels](Kernel/Levels.md)
+## [Plugs](Kernel/Plugs.md)
+## [Startup](Kernel/Startup.md)
+## [OnBoot](Kernel/OnBoot.md)
+## [Graphics](Kernel/CGS.md)
+## [Virtual File System](Kernel/VFS.md)
+## [Network](Kernel/Network.md)
+## [Resource Files](Kernel/ManifestResouceStream.md)
+## [Memory Management and Garbage Collection](Kernel/MemoryManagement.md)
+## [Audio](Kernel/Audio.md)
+
+# Reference
+## [x86](Reference/x86.md)
+
+# Tests
+## [Test Runner](Tests/TestRunner.md)
diff --git a/Docs/docfx.json b/Docs/docfx.json
new file mode 100644
index 0000000000..e0b21cc9e3
--- /dev/null
+++ b/Docs/docfx.json
@@ -0,0 +1,142 @@
+{
+ "metadata": [
+ {
+ "src": [
+ {
+ "files": [
+ "IL2CPU/source/IL2CPU/IL2CPU.csproj",
+ "IL2CPU/source/IL2CPU.API/IL2CPU.API.csproj",
+ "IL2CPU/source/Cosmos.IL2CPU/Cosmos.IL2CPU.csproj"
+ ],
+ "exclude": [
+ "**/bin/**",
+ "**/obj/**"
+ ],
+ "src": "../../"
+ }
+ ],
+ "dest": "api/il2cpu"
+ },
+ {
+ "src": [
+ {
+ "files": [
+ "XSharp/source/XSharp/XSharp/XSharp.csproj"
+ ],
+ "exclude": [
+ "**/bin/**",
+ "**/obj/**"
+ ],
+ "src": "../../"
+ }
+ ],
+ "dest": "api/xsharp"
+ },
+ {
+ "src": [
+ {
+ "files": [
+ "source/Cosmos.Core/Cosmos.Core.csproj",
+ "source/Cosmos.Core_Asm/Cosmos.Core_Asm.csproj",
+ "source/Cosmos.HAL2/Cosmos.HAL2.csproj",
+ "source/Cosmos.System2/Cosmos.System2.csproj",
+ "source/Cosmos.Debug.Kernel/Cosmos.Debug.Kernel.csproj",
+ ],
+ "exclude": [
+ "**/bin/**",
+ "**/obj/**"
+ ],
+ "src": "../"
+ }
+ ],
+ "dest": "api/cosmos"
+ },
+ {
+ "src": [
+ {
+ "files": [
+ "source/Cosmos.Core_Plugs/Cosmos.Core_Plugs.csproj",
+ "source/Cosmos.HAL2/Cosmos.HAL2.csproj",
+ "source/Cosmos.System2_Plugs/Cosmos.System2_Plugs.csproj"
+ ],
+ "exclude": [
+ "**/bin/**",
+ "**/obj/**"
+ ],
+ "src": "../"
+ }
+ ],
+ "dest": "api/plugs"
+ }
+ ],
+ "build": {
+ "content": [
+ {
+ "files": [
+ "**/*.yml"
+ ],
+ "src": "api",
+ "dest": "api"
+ },
+ {
+ "files": [
+ "**/*.yml"
+ ],
+ "src": "api/cosmos",
+ "dest": "api/cosmos"
+ },
+ {
+ "files": [
+ "**/*.yml"
+ ],
+ "src": "api/plugs",
+ "dest": "api/plugs"
+ },
+ {
+ "files": [
+ "**/*.md",
+ "*.md",
+ "toc.yml"
+ ]
+ }
+ ],
+ "resource": [
+ {
+ "files": [
+ "favicon.ico",
+ "images/**",
+ "articles/images/**"
+ ]
+ }
+ ],
+ "overwrite": [
+ {
+ "files": [
+ "apidoc/**.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "_site",
+ "globalMetadata": {
+ "_appFooter": " ",
+ "_appLogoPath": "images/logo.png",
+ "_enableNewTab": true
+ },
+ "globalMetadataFiles": [],
+ "fileMetadataFiles": [],
+ "template": [
+ "statictoc",
+ "templates/darkfx"
+ ],
+ "postProcessors": [],
+ "markdownEngineName": "markdig",
+ "noLangKeyword": false,
+ "keepFileLink": false,
+ "cleanupCacheHistory": false,
+ "disableGitFeatures": false
+ }
+}
diff --git a/source/Archive/Cosmos.VS.ProjectSystem/ProjectTemplates/Cosmos/Kernel.ico b/Docs/favicon.ico
similarity index 100%
rename from source/Archive/Cosmos.VS.ProjectSystem/ProjectTemplates/Cosmos/Kernel.ico
rename to Docs/favicon.ico
diff --git a/Docs/images/Dir.png b/Docs/images/Dir.png
new file mode 100644
index 0000000000..80cd9d089c
Binary files /dev/null and b/Docs/images/Dir.png differ
diff --git a/Docs/images/logo.png b/Docs/images/logo.png
new file mode 100644
index 0000000000..70445c7ff5
Binary files /dev/null and b/Docs/images/logo.png differ
diff --git a/Docs/index.md b/Docs/index.md
index 9e7352f921..553f56b571 100644
--- a/Docs/index.md
+++ b/Docs/index.md
@@ -1,147 +1,20 @@
-
-
-### Introducing Cosmos
-
-Cosmos (C# Open Source Managed Operating System) is an operating system
-development kit which uses Visual Studio as its development environment.
-Despite C# in the name any .NET based language can be used including VB.NET,
-Fortran, Delphi Prism, IronPython, F# and more. Cosmos itself and the kernel
-routines are primarily written in C#, and thus the Cosmos name. Besides that,
-NOSMOS (.NET Open Source Managed Operating System) sounds stupid.
-
-Cosmos is not an operating system in the traditional sense, but instead it is
-an "Operating System Kit", or as I like to say "Operating System Legos".
-Cosmos lets you create operating systems just as Visual Studio and C# normally
-let you create applications. Most users can write and boot their own operating
-system in just a few minutes, all using Visual Studio. Since milestone 5,
-Cosmos includes an integrated project type in Visual Studio, and an
-integrated debugger. You can debug your operating system directly from Visual
-Studio using breakpoints.
-
-Cosmos is available in two distributions, the developer kit (dev kit), and the
-user kit. The dev kit is designed for users who want to work on Cosmos itself.
-The user kit is designed for those who are interested in building their own
-operating system and doing some Cosmos work. The dev kit might be thought of
-as the Cosmos SDK. Most users should start off with the user kit as it is not
-so overwhelming like the dev kit. This article focuses on the user kit.
-
-### Writing your first Operating System
-
-Create a new project as you would any C# project, but select Cosmos as the
-project type.
-
-
-
-A starter project will be created. It looks very much like a standard C#
-console application.
-
-
-
-Program.cs contains the boot and execution code. Instead of seeing a Windows
-console window, you will see the following:
-
-
-
-This is your operating system running in VMWare Player! Cosmos can of course
-also be booted in VMWare Workstation, Hyper-V, Virtual PC, or on real
-hardware. But by default Cosmos uses VMWare Player because it is both free,
-and reliable. Cosmos can even debug in Visual Studio, even when running on
-another machine.
-
-### Integrated Debugging
-
-Debugging is a major issue with operating system development. The Cosmos team
-was not content enough to simply conquer building and deployment, we want to
-make developing operating system as easy as developing Windows applications.
-Debugging a Cosmos based operating system should feel very familiar to you.
-Lets modify our project a little bit to show the effect, and set a breakpoint.
-
-
-
-Now run the project again.
-
-
-
-Note that the execution stopped at "Two"? That is becuase in Visual Studio our
-project has stopped on a breakpoint. Simply press F5 to continue just as you
-would in a normal application!
-
-In addition to breakpoints Cosmos also supports step into (F11) as well. Trace
-over (F10) is not supported yet.
-
-### Debugger Communication
-
-The debugger uses the serial port to communicate. Because of this, debugging
-only works wtih virtualization environments that support serial ports such as
-VMWare. QEMU supports serial ports as well, but its serial port implementation
-is seriously broken on Windows and makes debugging impossible using QEMU. To
-debug on real hardware, you must use a physical serial cable. In the future
-Cosmos will also support debugging over Ethernet.
-
-### Extra Debugging
-
-Cosmos supports some explicit methods that can be used to communicate with the
-debugger and use additional functionality. It is accessed using the Debugger
-class in the Cosmos.Debug namespace in the Cosmos.Kernel assembly. This
-assembly is used by all Cosmos projects.
-
-### Code Based Breakpoints
+# Welcome to the Official Cosmos Documentation
+
+If you're new to Cosmos, welcome! Before you get surf through the API documentation, we highly recommend you visit the website linked below.
+
+While majority of the content in this documentation is up-to-date, this website also includes some articles which have been written over years ago for websites such as www.codeproject.com. They are mostly kept for archival purposes. We prefer newcomers who want to develop their own operating systems to read the API documentation while we update these articles to comply with the current Cosmos project.
+We **strongly** encourage newcomers to Cosmos to have a basic to intermediate proficiency in the [C# language](https://dotnet.microsoft.com/en-us/languages/csharp). Having this level of proficiency will significantly enable independent debugging and problem-solving, reducing the need for continuous assistance. There are many tutorials online for understanding classes, methods, and functions.
- Global.Dbg.Break();
-
-Break can be used to issue a code based break. Visual Studio will break on the
-line after this statement.
-
-
-
-Since Cosmos does not support conditional breakpoints in the IDE yet, code
-base breaks are very useful for implementing such. For example:
-
-```csharp
-if (x == 5) {
- Global.Dbg.Break();
-}
-```
-
-Alternatively you can call the .NET class libary break:
-
-
- System.Diagnostics.Debugger.Break();
-
-Both functions will produce the same result.
-
-### Debug Output
-
-Debug strings can be output to the debug window of the host. Because Cosmos
-does not support watches yet, this functionality can be very useful for
-watching variable values and for performing tracing without breakpoints.
-
-```csharp
-Global.Dbg.Send("Hello from Cosmos!");
-```
-
-When this line is executed, it will send a message over the debugging channel
-and it will appear in the Visual Studio output window.
-
-
-
-### What's the catch?
-
-There really is no catch. Everything I've shown here is functioning as seen.
-No mockups were used. However we still have a lot of work to go. Items of
-interest that are on our current task list include interfaces (necessary for
-foreach), file systems (partial support exists), threads, networking, and
-graphics. We have prototypes and experimentation for each, but none have been
-rolled into the mainline Cosmos development as of yet.
+For projects using the Cosmos Virtual File System *(abbr. VFS)* directly, we recommend you use System.IO methods where possible. This is because these were written before much progress was made making .NET assemblies usable.
+
+For a comprehensive set of information about Cosmos, including our ambitions and other links to chat with us or to seek assistance with something not covered in the documentation, please visit the official [Cosmos website](https://www.gocosmos.org/).
-### What was that Syslinux thing I saw on boot?
+If you need a translation for this documentation, click [here](https://cosmosos-github-io.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp).
-Cosmos does not run on Linux. A boot loader called Syslinux is used to boot
-Cosmos. After booting, Syslinux is not used. Syslinux is a bootloader and is
-not a Linux distro.
+You can find the latest and previous build statuses on AppVeyor, [here](https://ci.appveyor.com/project/CosmosOS/cosmos).
-### Obtaining Cosmos
+[](https://ci.appveyor.com/project/CosmosOS/cosmos/branch/master)
+[](https://discord.com/invite/kwtBwv6jhD)
- * [Source Code - Both dev kit and user kit](http://github.com/CosmosOS/Cosmos/)
- * [Releases](https://github.com/CosmosOS/Cosmos/releases)
+xref link [https://cosmosos.github.io/xrefmap.yml](https://cosmosos.github.io/xrefmap.yml)
diff --git a/Docs/install.md b/Docs/install.md
new file mode 100644
index 0000000000..6befc38f3e
--- /dev/null
+++ b/Docs/install.md
@@ -0,0 +1,63 @@
+
+
+### Dev Kit
+
+##### **Additional Prerequisites**
+
+* **Visual Studio 2022 Workload: Visual Studio Extension Development**
+* **Inno Setup (Free)** – Install with defaults - [Download](http://www.jrsoftware.org/isdl.php#qsp)
+* **.NET 6 SDK** - [Download](https://dotnet.microsoft.com/en-us/download)
+
+##### Get the Source
+
+Cosmos source is hosted at GitHub. The simplest method to obtain the source is download a .zip file, however this makes updating and getting the latest updates a bit tricky.
+To update the Cosmos source more efficiently, use the Git command line, or any of the many Git User Interfaces. Any frontend may work fine but for users new to Git, we suggest [GitHub Desktop](https://desktop.github.com/). For more experienced Git users, we really like [Git Kraken](https://www.gitkraken.com/). Git Kraken is free for non-commercial use such as Cosmos. SourceTree, Git GUI, and others are also available.
+
+To aid in better encapsulation and to invite more developers to assist in various areas, Cosmos is split into four Git repositories. Each of these is designed to be an independent project although Cosmos relies on the other three.
+You will need to pull the source for all four repositories and they must exist in sibling directories as shown in the diagram below. The Cosmos base directory can be named anything and exist anywhere. But the directories inside it must match exactly.
+
+Windows is not case sensitive for files, but many of the ._**NET Core tools used to build are case sensitive even on Windows for file paths**_. Make sure to create the subdirectories exactly as shown. For demonstration purposes let us assume that you will use c:\\source\\Cosmos to install to.
+This base directory is referred to as the Cosmos directory. Each of the four repositories then must be cloned or extracted to the corresponding sub folder of the Cosmos directory. Using this example, the set up should look like this:
+
+```
+C:\\source\\CosmosOS\\
+C:\\source\\CosmosOS\\Cosmos\\ - [Git Repository for Cosmos](https://github.com/CosmosOS/Cosmos)
+C:\\source\\CosmosOS\\IL2CPU\\ - [Git Repository for IL2CPU](https://github.com/CosmosOS/IL2CPU)
+C:\\source\\CosmosOS\\XSharp\\ - [Git Repository for XSharp](https://github.com/CosmosOS/XSharp)
+C:\\source\\CosmosOS\\Common\\ - [Git Repository for Common](https://github.com/CosmosOS/Common)
+```
+
+A tree diagram of the source should look like the following:
+
+
+
+We are working to make syncing code easier. We have already experimented with Git Submodules, however the simple use of submodules presents a few issues, but the biggest of them is that they trigger a fireworks show of problems and errors in every Git UI we tried and would have limited developers options and forced them to the command line in most cases. We are currently investigating subtrees.
+
+For now, it's much easier to handle the 4 repositories as most of the time, new Cosmos developers may only have to work in the Cosmos repository. Only when you are comfortable with the concept of Operating System development and C# should you venture into IL2CPU and XSharp.
+
+If you want to keep your source up to date in a one-click method, paste this code into a .bat file in the CosmosOS folder ( as shown in the above example). This .bat file will only work after the repositories have been cloned with git at least once.
+
+```cmd
+cd C:\\XSharp
+git pull
+cd ..\\IL2CPU
+git pull
+cd ..\\Cosmos
+git pull
+cd ..\\Common
+git pull
+cd ..
+```
+
+##### Building and Installing
+
+(if you have already installed) If you edited the Cosmos DevKit source using _Cosmos.sln_ or _Test.sln_, be sure to set solution config to **Debug x86**.
+
+1. Make sure Visual Studio is **NOT running**.
+2. In the root directory of the DevKit files, you downloaded earlier, run `install-VS2022.bat`.
+3. Wait for the install to progress. (**Tip:** At the end the installer may look like it is stalling, it is still doing something, just in the background)
+4. VS will open with Cosmos loaded. You can now make changes to core assemblies of Cosmos. If you don't want to, you can close this VS window and create a new Cosmos project as with the user kit.
+
+For more information about Dev Kit, see [here](articles/Installation/DevKit.html)
+
+Happy Cosmos-ing!
diff --git a/Docs/templates/darkfx/partials/affix.tmpl.partial b/Docs/templates/darkfx/partials/affix.tmpl.partial
new file mode 100644
index 0000000000..11caeb3d05
--- /dev/null
+++ b/Docs/templates/darkfx/partials/affix.tmpl.partial
@@ -0,0 +1,40 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
+ {{^_disableContribution}}
+
+ {{/_disableContribution}}
+
+
+ ☀
+
+
+
+
+
+
+ ☾
+
+
+
+
+
+
diff --git a/Docs/templates/darkfx/partials/footer.tmpl.partial b/Docs/templates/darkfx/partials/footer.tmpl.partial
new file mode 100644
index 0000000000..a9da7c3bb4
--- /dev/null
+++ b/Docs/templates/darkfx/partials/footer.tmpl.partial
@@ -0,0 +1,29 @@
+{{!Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
\ No newline at end of file
diff --git a/Docs/templates/darkfx/partials/head.tmpl.partial b/Docs/templates/darkfx/partials/head.tmpl.partial
new file mode 100644
index 0000000000..83fc5f91a8
--- /dev/null
+++ b/Docs/templates/darkfx/partials/head.tmpl.partial
@@ -0,0 +1,20 @@
+{{!Copyright (c) Oscar Vasquez. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.}}
+
+
+
+
+ {{#title}}{{title}}{{/title}}{{^title}}{{>partials/title}}{{/title}} {{#_appTitle}}| {{_appTitle}} {{/_appTitle}}
+
+
+
+ {{#_description}} {{/_description}}
+
+
+
+
+
+
+ {{#_noindex}} {{/_noindex}}
+ {{#_enableSearch}} {{/_enableSearch}}
+ {{#_enableNewTab}} {{/_enableNewTab}}
+
\ No newline at end of file
diff --git a/Docs/templates/darkfx/styles/main.css b/Docs/templates/darkfx/styles/main.css
new file mode 100644
index 0000000000..c332862695
--- /dev/null
+++ b/Docs/templates/darkfx/styles/main.css
@@ -0,0 +1,474 @@
+:root, body.dark-theme {
+ --color-foreground: #ccd5dc;
+ --color-navbar: #66666d;
+ --color-breadcrumb: #999;
+ --color-underline: #ddd;
+ --color-toc-hover: #fff;
+ --color-background: #2d2d30;
+ --color-background-subnav: #333337;
+ --color-background-dark: #1e1e1e;
+ --color-background-table-alt: #212123;
+ --color-background-quote: #69696e;
+}
+
+body.light-theme {
+ --color-foreground: #171717;
+ --color-breadcrumb: #4a4a4a;
+ --color-toc-hover: #4c4c4c;
+ --color-background: #ffffff;
+ --color-background-subnav: #f5f5f5;
+ --color-background-dark: #ddd;
+ --color-background-table-alt: #f9f9f9;
+}
+
+body {
+ color: var(--color-foreground);
+ line-height: 1.5;
+ font-size: 14px;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+ word-wrap: break-word;
+ background-color: var(--color-background);
+}
+
+.btn.focus, .btn:focus, .btn:hover {
+ color: var(--color-foreground);
+}
+
+h1 {
+ font-weight: 600;
+ font-size: 32px;
+}
+
+h2 {
+ font-weight: 600;
+ font-size: 24px;
+ line-height: 1.8;
+}
+
+h3 {
+ font-weight: 600;
+ font-size: 20px;
+ line-height: 1.8;
+}
+
+h5 {
+ font-size: 14px;
+ padding: 10px 0px;
+}
+
+article h1, article h2, article h3, article h4 {
+ margin-top: 35px;
+ margin-bottom: 15px;
+}
+
+article h4 {
+ padding-bottom: 8px;
+ border-bottom: 2px solid var(--color-underline);
+}
+
+.navbar-brand>img {
+ color: var(--color-background);
+}
+
+.navbar {
+ border: none;
+}
+
+.navbar #logo {
+ width: 50px;
+}
+
+.subnav {
+ border-top: 1px solid var(--color-underline);
+ background-color: var(--color-background-subnav);
+}
+
+.sidenav, .fixed_header, .toc {
+ background-color: var(--color-background);
+}
+
+.navbar-inverse {
+ background-color: var(--color-background-dark);
+ z-index: 100;
+}
+
+.navbar-inverse .navbar-nav>li>a, .navbar-inverse .navbar-text {
+ color: var(--color-navbar);
+ background-color: var(--color-background-dark);
+ border-bottom: 3px solid transparent;
+ padding-bottom: 12px;
+}
+
+.navbar-inverse .navbar-nav>li>a:focus, .navbar-inverse .navbar-nav>li>a:hover {
+ color: var(--color-foreground);
+ background-color: var(--color-background-dark);
+ border-bottom: 3px solid var(--color-background-subnav);
+ transition: all ease 0.25s;
+}
+
+.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:focus, .navbar-inverse .navbar-nav>.active>a:hover {
+ color: var(--color-foreground);
+ background-color: var(--color-background-dark);
+ border-bottom: 3px solid var(--color-foreground);
+ transition: all ease 0.25s;
+}
+
+.navbar-form .form-control {
+ border: none;
+ border-radius: 0;
+}
+
+.light-theme .navbar-brand svg {
+ filter: brightness(20%);
+}
+
+.toc .level1>li {
+ font-weight: 400;
+}
+
+.toc .nav>li>a {
+ color: var(--color-foreground);
+}
+
+.sidefilter {
+ background-color: var(--color-background);
+ border-left: none;
+ border-right: none;
+}
+
+.sidefilter {
+ background-color: var(--color-background);
+ border-left: none;
+ border-right: none;
+}
+
+.toc-filter {
+ padding: 10px;
+ margin: 0;
+ background-color: var(--color-background);
+}
+
+.toc-filter>input {
+ border: none;
+ border-radius: unset;
+ background-color: var(--color-background-subnav);
+ padding: 5px 0 5px 20px;
+ font-size: 90%
+}
+
+.toc-filter>.clear-icon {
+ position: absolute;
+ top: 17px;
+ right: 15px;
+}
+
+.toc-filter>input:focus {
+ color: var(--color-foreground);
+ transition: all ease 0.25s;
+}
+
+.toc-filter>.filter-icon {
+ display: none;
+}
+
+.sidetoc>.toc {
+ background-color: var(--color-background);
+ overflow-x: hidden;
+}
+
+.sidetoc {
+ background-color: var(--color-background);
+ border: none;
+}
+
+.alert {
+ background-color: inherit;
+ border: none;
+ padding: 10px 0;
+ border-radius: 0;
+}
+
+.alert>p {
+ margin-bottom: 0;
+ padding: 5px 10px;
+ border-bottom: 1px solid;
+ background-color: var(--color-background-dark);
+}
+
+.alert>h5 {
+ padding: 10px 15px;
+ margin-top: 0;
+ margin-bottom: 0;
+ text-transform: uppercase;
+ font-weight: bold;
+ border-top: 2px solid;
+ background-color: var(--color-background-dark);
+ border-radius: none;
+}
+
+.alert>ul {
+ margin-bottom: 0;
+ padding: 5px 40px;
+}
+
+.alert-info {
+ color: #1976d2;
+}
+
+.alert-warning {
+ color: #f57f17;
+}
+
+.alert-danger {
+ color: #d32f2f;
+}
+
+pre {
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ word-break: break-all;
+ word-wrap: break-word;
+ background-color: var(--color-background-dark);
+ border-radius: 0;
+ border: none;
+}
+
+code {
+ background: var(--color-background-dark) !important;
+ border-radius: 2px;
+}
+
+.hljs {
+ color: var(--color-foreground);
+}
+
+.toc .nav>li.active>.expand-stub::before, .toc .nav>li.in>.expand-stub::before, .toc .nav>li.in.active>.expand-stub::before, .toc .nav>li.filtered>.expand-stub::before {
+ content: "▾";
+}
+
+.toc .nav>li>.expand-stub::before, .toc .nav>li.active>.expand-stub::before {
+ content: "▸";
+}
+
+.affix ul ul>li>a:before {
+ content: "|";
+}
+
+.breadcrumb {
+ background-color: var(--color-background-subnav);
+}
+
+.breadcrumb .label.label-primary {
+ background: #444;
+ border-radius: 0;
+ font-weight: normal;
+ font-size: 100%;
+}
+
+#breadcrumb .breadcrumb>li a {
+ border-radius: 0;
+ font-weight: normal;
+ font-size: 85%;
+ display: inline;
+ padding: 0 .6em 0;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ color: var(--color-breadcrumb);
+}
+
+#breadcrumb .breadcrumb>li a:hover {
+ color: var(--color-foreground);
+ transition: all ease 0.25s;
+}
+
+.breadcrumb>li+li:before {
+ content: "⯈";
+ font-size: 75%;
+ color: var(--color-background-dark);
+ padding: 0;
+}
+
+.light-theme .breadcrumb>li+li:before {
+ color: var(--color-foreground)
+ }
+
+.toc .level1>li {
+ font-weight: 600;
+ font-size: 130%;
+ padding-left: 5px;
+}
+
+.footer {
+ border-top: none;
+ background-color: var(--color-background-dark);
+ padding: 15px 0;
+ font-size: 90%;
+}
+
+.toc .nav>li>a:hover, .toc .nav>li>a:focus {
+ color: var(--color-toc-hover);
+ transition: all ease 0.1s;
+}
+
+.form-control {
+ background-color: var(--color-background-subnav);
+ border: none;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+input#search-query:focus {
+ color: var(--color-foreground);
+}
+
+.table-bordered, .table-bordered>tbody>tr>td, .table-bordered>tbody>tr>th, .table-bordered>tfoot>tr>td, .table-bordered>tfoot>tr>th, .table-bordered>thead>tr>td, .table-bordered>thead>tr>th {
+ border: 1px solid var(--color-background-dark);
+}
+
+.table-striped>tbody>tr:nth-of-type(odd) {
+ background-color: var(--color-background-table-alt);
+}
+
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 10px;
+ font-size: 110%;
+ border-left: 5px solid var(--color-background-quote);
+ color: var(--color-background-quote);
+}
+
+.pagination>.disabled>a, .pagination>.disabled>a:focus, .pagination>.disabled>a:hover, .pagination>.disabled>span, .pagination>.disabled>span:focus, .pagination>.disabled>span:hover {
+ background-color: var(--color-background-subnav);
+ border-color: var(--color-background-subnav);
+}
+
+.breadcrumb>li, .pagination {
+ display: inline;
+}
+
+.tabGroup a[role="tab"] {
+ border-bottom: 2px solid var(--color-background-dark);
+}
+
+.tabGroup a[role="tab"][aria-selected="true"] {
+ color: var(--color-foreground);
+}
+
+.tabGroup section[role="tabpanel"] {
+ border: 1px solid var(--color-background-dark);
+}
+
+.sideaffix > div.contribution > ul > li > a.contribution-link:hover {
+ background-color: var(--color-background);
+}
+
+.switch {
+ position: relative;
+ display: inline-block;
+ width: 40px;
+ height: 20px;
+}
+
+.switch input {
+ opacity: 0;
+ width: 0;
+ height: 0;
+}
+
+.slider {
+ position: absolute;
+ cursor: pointer;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #ccc;
+ -webkit-transition: .4s;
+ transition: .4s;
+}
+
+.slider:before {
+ position: absolute;
+ content: "";
+ height: 14px;
+ width: 14px;
+ left: 4px;
+ bottom: 3px;
+ background-color: white;
+ -webkit-transition: .4s;
+ transition: .4s;
+}
+
+input:checked + .slider {
+ background-color: #337ab7;
+}
+
+input:focus + .slider {
+ box-shadow: 0 0 1px #337ab7;
+}
+
+input:checked + .slider:before {
+ -webkit-transform: translateX(19px);
+ -ms-transform: translateX(19px);
+ transform: translateX(19px);
+}
+
+/* Rounded sliders */
+.slider.round {
+ border-radius: 20px;
+}
+
+.slider.round:before {
+ border-radius: 50%;
+}
+.toggle-mode .icon {
+ display: inline-block;
+}
+
+.toggle-mode .icon i {
+ font-style: normal;
+ font-size: 17px;
+ display: inline-block;
+ padding-right: 7px;
+ padding-left: 7px;
+ vertical-align: middle;
+}
+
+@media (min-width: 1600px) {
+ .container {
+ width: 100%;
+ }
+ .sidefilter {
+ width: 18%;
+ }
+ .sidetoc {
+ width: 18%;
+ }
+ .article.grid-right {
+ margin-left: 19%;
+ }
+ .sideaffix {
+ width: 11.5%;
+ }
+ .affix ul>li.active>a {
+ white-space: initial;
+ }
+ .affix ul>li>a {
+ width: 99%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+}
diff --git a/Docs/templates/darkfx/styles/toggle-theme.js b/Docs/templates/darkfx/styles/toggle-theme.js
new file mode 100644
index 0000000000..f2ea5f5fd7
--- /dev/null
+++ b/Docs/templates/darkfx/styles/toggle-theme.js
@@ -0,0 +1,35 @@
+const sw = document.getElementById("switch-style"), sw_mobile = document.getElementById("switch-style-m"), b = document.body;
+if (b) {
+ function toggleTheme(target, dark) {
+ target.classList.toggle("dark-theme", dark)
+ target.classList.toggle("light-theme", !dark)
+ }
+
+ function switchEventListener() {
+ toggleTheme(b, this.checked);
+ if (window.localStorage) {
+ this.checked ? localStorage.setItem("theme", "dark-theme") : localStorage.setItem("theme", "light-theme")
+ }
+ }
+
+ var isDarkTheme = !window.localStorage || !window.localStorage.getItem("theme") || window.localStorage && localStorage.getItem("theme") === "dark-theme";
+
+ if(sw && sw_mobile){
+ sw.checked = isDarkTheme;
+ sw_mobile.checked = isDarkTheme;
+
+ sw.addEventListener("change", switchEventListener);
+ sw_mobile.addEventListener("change", switchEventListener);
+
+ // sync state between switches
+ sw.addEventListener("change", function() {
+ sw_mobile.checked = this.checked;
+ });
+
+ sw_mobile.addEventListener("change", function() {
+ sw.checked = this.checked;
+ });
+ }
+
+ toggleTheme(b, isDarkTheme);
+}
\ No newline at end of file
diff --git a/Docs/toc.yml b/Docs/toc.yml
new file mode 100644
index 0000000000..9dcf7f0094
--- /dev/null
+++ b/Docs/toc.yml
@@ -0,0 +1,15 @@
+- name: Home
+ href: index.md
+- name: Install
+ href: articles/Installation/UserKit.md
+- name: Cosmos Website
+ href: https://gocosmos.org
+- name: Articles
+ href: articles/
+ homepage: articles/GettingStarted.md
+- name: Cosmos
+ href: api/cosmos/
+- name: X#
+ href: api/xsharp/
+- name: IL2CPU
+ href: api/il2cpu/
\ No newline at end of file
diff --git a/Examples.sln b/Examples.sln
new file mode 100644
index 0000000000..ed42ee7eb4
--- /dev/null
+++ b/Examples.sln
@@ -0,0 +1,98 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33110.190
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZKernel", "Examples\ZMachine Emulator\ZKernel\ZKernel.csproj", "{54876871-D090-45CB-81A7-DE92788065F7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZLibrary", "Examples\ZMachine Emulator\ZLibrary\ZLibrary.csproj", "{9D75A72C-9721-4B9B-AC7E-C920E6B0047D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ZTestConsoleApp", "Examples\ZMachine Emulator\ZTestConsoleApp\ZTestConsoleApp.csproj", "{E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ZMachine", "ZMachine", "{9832638C-A006-4E2B-B5B5-1B883EA1130E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GuessKernel", "Examples\Guess Number Game\GuessKernel.csproj", "{A462D9B3-F72A-4EC9-95CE-1172A0E11114}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CosmosGraphicSubsystem", "Examples\Cosmos Graphic Subsystem\CosmosGraphicSubsystem.csproj", "{4A3CCFAF-687E-4E75-8A4F-4005593259E7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BeepDemo", "Examples\Console Beep Demo\BeepDemo.csproj", "{E36B1862-E376-4A6C-AE5A-729081C4DCB5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BasicTerminalShell", "Examples\Basic Terminal Shell\BasicTerminalShell.csproj", "{C1844DF5-3A07-4473-A137-D763B89E8C9F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {54876871-D090-45CB-81A7-DE92788065F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {54876871-D090-45CB-81A7-DE92788065F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {54876871-D090-45CB-81A7-DE92788065F7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {54876871-D090-45CB-81A7-DE92788065F7}.Debug|x86.Build.0 = Debug|Any CPU
+ {54876871-D090-45CB-81A7-DE92788065F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {54876871-D090-45CB-81A7-DE92788065F7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {54876871-D090-45CB-81A7-DE92788065F7}.Release|x86.ActiveCfg = Release|Any CPU
+ {54876871-D090-45CB-81A7-DE92788065F7}.Release|x86.Build.0 = Release|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Debug|x86.Build.0 = Debug|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Release|x86.ActiveCfg = Release|Any CPU
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D}.Release|x86.Build.0 = Release|Any CPU
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Debug|x86.ActiveCfg = Debug|x86
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Debug|x86.Build.0 = Debug|x86
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Release|x86.ActiveCfg = Release|x86
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7}.Release|x86.Build.0 = Release|x86
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Debug|x86.Build.0 = Debug|Any CPU
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Release|x86.ActiveCfg = Release|Any CPU
+ {A462D9B3-F72A-4EC9-95CE-1172A0E11114}.Release|x86.Build.0 = Release|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Debug|x86.Build.0 = Debug|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Release|x86.ActiveCfg = Release|Any CPU
+ {4A3CCFAF-687E-4E75-8A4F-4005593259E7}.Release|x86.Build.0 = Release|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Debug|x86.Build.0 = Debug|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Release|x86.ActiveCfg = Release|Any CPU
+ {E36B1862-E376-4A6C-AE5A-729081C4DCB5}.Release|x86.Build.0 = Release|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Debug|x86.Build.0 = Debug|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Release|x86.ActiveCfg = Release|Any CPU
+ {C1844DF5-3A07-4473-A137-D763B89E8C9F}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {54876871-D090-45CB-81A7-DE92788065F7} = {9832638C-A006-4E2B-B5B5-1B883EA1130E}
+ {9D75A72C-9721-4B9B-AC7E-C920E6B0047D} = {9832638C-A006-4E2B-B5B5-1B883EA1130E}
+ {E4BB51D4-6F98-4001-BDC5-A24B6F68AEB7} = {9832638C-A006-4E2B-B5B5-1B883EA1130E}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {CDCC44E7-6647-4887-B1D0-7761436578FD}
+ EndGlobalSection
+EndGlobal
diff --git a/Examples/Basic Terminal Shell/BasicTerminalShell.csproj b/Examples/Basic Terminal Shell/BasicTerminalShell.csproj
new file mode 100644
index 0000000000..5548636e91
--- /dev/null
+++ b/Examples/Basic Terminal Shell/BasicTerminalShell.csproj
@@ -0,0 +1,29 @@
+
+
+
+ net6.0
+
+ cosmos
+ false
+ True
+
+
+
+ False
+ False
+ Pipe: Cosmos\Serial
+ Serial: COM1
+ VMware
+ VMware
+ Use VMware Player or Workstation to deploy and debug.
+ 192.168.0.8
+
+
+
+
+
+
+
+
+
+
diff --git a/Examples/Basic Terminal Shell/Kernel.cs b/Examples/Basic Terminal Shell/Kernel.cs
new file mode 100644
index 0000000000..ccdb626321
--- /dev/null
+++ b/Examples/Basic Terminal Shell/Kernel.cs
@@ -0,0 +1,50 @@
+using System;
+using Cosmos.Core;
+using Sys = Cosmos.System;
+
+namespace BasicTerminalShell
+{
+ public class Kernel : Sys.Kernel
+ {
+ // prompt variable
+ private string _Prompt;
+
+ protected override void BeforeRun()
+ {
+ Console.WriteLine("Cosmos booted successfully. Type a command to get it executed!");
+ _Prompt = "";
+ }
+
+ protected override void Run()
+ {
+ Console.Write($"{_Prompt}> ");
+ var input = Console.ReadLine();
+ string[] words = input.Split(' ');
+ switch (words[0])
+ {
+ case "cpu":
+ Console.WriteLine($"Vendor: {CPU.GetCPUVendorName()}, Name: {CPU.GetCPUBrandString()}, Frequency: {CPU.GetCPUCycleSpeed()}");
+ break;
+ case "shutdown":
+ Sys.Power.Shutdown(); // shutdown is supported
+ break;
+ case "restart":
+ Sys.Power.Reboot(); // restart too
+ break;
+ case "help":
+ // console methods are plugged
+ Console.WriteLine("cpu - prints info about current cpu");
+ Console.WriteLine("shutdown - shuts down current computer");
+ Console.WriteLine("restart - restarts current computer");
+ Console.WriteLine("help - shows this help menu");
+ break;
+ default:
+ // switch operator works great
+ Console.WriteLine($"\"{words[0]}\" is not a command");
+ break;
+ }
+ // overloading works too
+ Console.WriteLine();
+ }
+ }
+}
diff --git a/Demos/BeepDemo/BeepDemo.csproj b/Examples/Console Beep Demo/BeepDemo.csproj
similarity index 87%
rename from Demos/BeepDemo/BeepDemo.csproj
rename to Examples/Console Beep Demo/BeepDemo.csproj
index ae438f29c1..13975abed6 100644
--- a/Demos/BeepDemo/BeepDemo.csproj
+++ b/Examples/Console Beep Demo/BeepDemo.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.0
+ net6.0
cosmos
@@ -20,6 +20,7 @@
+
diff --git a/Examples/Console Beep Demo/Kernel.cs b/Examples/Console Beep Demo/Kernel.cs
new file mode 100644
index 0000000000..a93a2c06c6
--- /dev/null
+++ b/Examples/Console Beep Demo/Kernel.cs
@@ -0,0 +1,127 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Sys = Cosmos.System;
+using System.Threading;
+
+namespace BeepDemo
+{
+ public class Kernel: Sys.Kernel
+ {
+ protected override void BeforeRun()
+ {
+ Console.WriteLine("Cosmos booted successfully. Type a line of text to get it echoed back.");
+ }
+ protected override void Run()
+ {
+ Console.WriteLine("Run 'Mary Had a Little Lamb'? ");
+ string ans = Console.ReadLine();
+ if (ans.ToLower() == "y" || ans.ToLower() == "yes")
+ {
+ BeepTest.Main();
+ }
+ else
+ {
+ Console.WriteLine("Default beep:");
+ Console.Beep();
+ // Does the follwing: Console.Beep((int)Sys.Notes.Default (800 hertz), (int)Sys.Durations.Default (200 milliseconds) );
+ }
+ }
+ }
+ class BeepTest
+ {
+ public static void Main()
+ {
+ // Declare the first few notes of the song, "Mary Had A Little Lamb".
+ Note[] Mary =
+ {
+ new Note(Tone.B, Duration.QUARTER),
+ new Note(Tone.A, Duration.QUARTER),
+ new Note(Tone.GbelowC, Duration.QUARTER),
+ new Note(Tone.A, Duration.QUARTER),
+ new Note(Tone.B, Duration.QUARTER),
+ new Note(Tone.B, Duration.QUARTER),
+ new Note(Tone.B, Duration.HALF),
+ new Note(Tone.A, Duration.QUARTER),
+ new Note(Tone.A, Duration.QUARTER),
+ new Note(Tone.A, Duration.HALF),
+ new Note(Tone.B, Duration.QUARTER),
+ new Note(Tone.D, Duration.QUARTER),
+ new Note(Tone.D, Duration.HALF)
+ };
+ // Play the song
+ Play(Mary);
+ }
+
+ // Play the notes in a song.
+ protected static void Play(Note[] aTune)
+ {
+ foreach (Note n in aTune)
+ {
+ if (n.NoteTone == Tone.REST)
+ {
+ Thread.Sleep((int)n.NoteDuration);
+ }
+ else
+ {
+ Console.Beep((int)n.NoteTone, (int)n.NoteDuration);
+ }
+ }
+ }
+
+ // Define the frequencies of notes in an octave, as well as
+ // silence (rest).
+ protected enum Tone
+ {
+ REST = 0,
+ GbelowC = 196,
+ A = 220,
+ Asharp = 233,
+ B = 247,
+ C = 262,
+ Csharp = 277,
+ D = 294,
+ Dsharp = 311,
+ E = 330,
+ F = 349,
+ Fsharp = 370,
+ G = 392,
+ Gsharp = 415,
+ }
+
+ // Define the duration of a note in units of milliseconds.
+ protected enum Duration
+ {
+ WHOLE = 1600,
+ HALF = WHOLE / 2,
+ QUARTER = HALF / 2,
+ EIGHTH = QUARTER / 2,
+ SIXTEENTH = EIGHTH / 2,
+ }
+
+ // Define a note as a aFrequency (tone) and the amount of
+ // aTime (duration) the note plays.
+ protected readonly struct Note
+ {
+ readonly Tone _ToneVal;
+ readonly Duration _DurVal;
+
+ // Define a constructor to create a specific note.
+ public Note(Tone aFrequency, Duration aTime)
+ {
+ _ToneVal = aFrequency;
+ _DurVal = aTime;
+ }
+
+ // Define properties to return the note's tone and duration.
+ public Tone NoteTone => _ToneVal;
+ public Duration NoteDuration => _DurVal;
+ }
+ }
+ /*
+ This example produces the following results:
+
+ This example plays the first few notes of "Mary Had A Little Lamb"
+ through the computer PC Speaker.
+ */
+}
diff --git a/Demos/CosmosGraphicSubsystem/CosmosGraphicSubsystem.csproj b/Examples/Cosmos Graphic Subsystem/CosmosGraphicSubsystem.csproj
similarity index 94%
rename from Demos/CosmosGraphicSubsystem/CosmosGraphicSubsystem.csproj
rename to Examples/Cosmos Graphic Subsystem/CosmosGraphicSubsystem.csproj
index ca814e71c0..354dee0708 100644
--- a/Demos/CosmosGraphicSubsystem/CosmosGraphicSubsystem.csproj
+++ b/Examples/Cosmos Graphic Subsystem/CosmosGraphicSubsystem.csproj
@@ -1,11 +1,8 @@
- netcoreapp2.0
+ net6.0
cosmos
- CosmosGraphicSubsystemBoot
- CosmosGraphicSubsystemBoot
- CosmosGraphicSubsystemBoot
@@ -74,6 +71,7 @@
+
diff --git a/Examples/Cosmos Graphic Subsystem/Kernel.cs b/Examples/Cosmos Graphic Subsystem/Kernel.cs
new file mode 100644
index 0000000000..c0128c0255
--- /dev/null
+++ b/Examples/Cosmos Graphic Subsystem/Kernel.cs
@@ -0,0 +1,171 @@
+using System;
+using System.Drawing;
+using Cosmos.System.Graphics;
+using Sys = Cosmos.System;
+using Cosmos.Debug.Kernel;
+
+/*
+ * Beware Demo Kernels are not recompiled when its dependencies changes!
+ * To force recompilation right click on on the Cosmos icon of the demo solution and do "Build".
+ */
+
+namespace Cosmos_Graphic_Subsytem
+{
+ public class Kernel : Sys.Kernel
+ {
+
+ public Debugger debugger = new ("System", "CGS");
+
+ private Canvas canvas;
+ private Bitmap bitmap;
+
+ protected override void BeforeRun()
+ {
+ Console.WriteLine("Cosmos booted successfully. Let's go in Graphic Mode");
+ Console.WriteLine("Using default graphics mode");
+ //Mode start = new Mode(800, 600, ColorDepth.ColorDepth32);
+
+ bitmap = new Bitmap(114, 50,
+ new byte[] { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xee, 0xee, 0xee, 0xff, 0xd6, 0xd6, 0xd6, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0xa0, 0x9f, 0x9f, 0xff, 0x92, 0x92, 0x92, 0xff, 0x89, 0x89, 0x88, 0xff, 0x84, 0x84, 0x84, 0xff, 0x83, 0x83, 0x83, 0xff, 0x87, 0x87, 0x87, 0xff, 0x8d, 0x8d, 0x8c, 0xff, 0x96, 0x96, 0x96, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xbc, 0xbc, 0xbc, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x78, 0x78, 0x77, 0xff, 0x7c, 0x7b, 0x7a, 0xff, 0x8b, 0x8b, 0x89, 0xff, 0x9a, 0x98, 0x96, 0xff, 0xa4, 0xa2, 0xa1, 0xff, 0xae, 0xad, 0xab, 0xff, 0xb4, 0xb3, 0xb0, 0xff, 0xb5, 0xb4, 0xb1, 0xff, 0xb2, 0xb0, 0xae, 0xff, 0xaa, 0xa9, 0xa6, 0xff, 0xa0, 0x9f, 0x9d, 0xff, 0x96, 0x95, 0x93, 0xff, 0x88, 0x88, 0x87, 0xff, 0x7a, 0x79, 0x78, 0xff, 0x79, 0x79, 0x78, 0xff, 0x91, 0x91, 0x91, 0xff, 0xb6, 0xb6, 0xb6, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xc4, 0xc4, 0xc4, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0x76, 0x75, 0x74, 0xff, 0x8f, 0x8e, 0x8c, 0xff, 0xb3, 0xb1, 0xaf, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xeb, 0xe9, 0xe6, 0xff, 0xef, 0xed, 0xea, 0xff, 0xef, 0xed, 0xea, 0xff, 0xef, 0xed, 0xea, 0xff, 0xee, 0xec, 0xe9, 0xff, 0xee, 0xec, 0xe9, 0xff, 0xee, 0xec, 0xe9, 0xff, 0xef, 0xed, 0xea, 0xff, 0xef, 0xed, 0xea, 0xff, 0xee, 0xec, 0xe9, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xe0, 0xdf, 0xdc, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xaf, 0xae, 0xac, 0xff, 0x8c, 0x8b, 0x89, 0xff, 0x75, 0x75, 0x73, 0xff, 0x96, 0x95, 0x95, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xc3, 0xc3, 0xc3, 0xff, 0x7f, 0x7f, 0x7e, 0xff, 0x7e, 0x7d, 0x7c, 0xff, 0xb0, 0xae, 0xac, 0xff, 0xda, 0xd8, 0xd6, 0xff, 0xeb, 0xe9, 0xe6, 0xff, 0xee, 0xec, 0xe9, 0xff, 0xed, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xee, 0xec, 0xe9, 0xff, 0xea, 0xe8, 0xe5, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0x9d, 0x9b, 0x99, 0xff, 0x74, 0x74, 0x74, 0xff, 0xd3, 0xd3, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0x8c, 0x8c, 0x8b, 0xff, 0x7a, 0x79, 0x78, 0xff, 0xb7, 0xb5, 0xb3, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xeb, 0xe9, 0xe6, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xe7, 0xe5, 0xe2, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd7, 0xd5, 0xd3, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xe1, 0xdf, 0xdd, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xed, 0xeb, 0xe8, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xeb, 0xe9, 0xe6, 0xff, 0xeb, 0xe9, 0xe6, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xae, 0xac, 0xaa, 0xff, 0x7d, 0x7c, 0x7c, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0x73, 0x73, 0x72, 0xff, 0xa0, 0x9e, 0x9c, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xec, 0xea, 0xe7, 0xff, 0xea, 0xe8, 0xe5, 0xff, 0xea, 0xe8, 0xe5, 0xff, 0xeb, 0xe9, 0xe6, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xbc, 0xba, 0xb7, 0xff, 0x9c, 0x9b, 0x98, 0xff, 0x85, 0x83, 0x81, 0xff, 0x73, 0x71, 0x6f, 0xff, 0x68, 0x66, 0x64, 0xff, 0x63, 0x61, 0x5f, 0xff, 0x63, 0x61, 0x5e, 0xff, 0x63, 0x61, 0x5e, 0xff, 0x62, 0x61, 0x5e, 0xff, 0x64, 0x63, 0x60, 0xff, 0x6b, 0x69, 0x67, 0xff, 0x77, 0x75, 0x73, 0xff, 0x89, 0x87, 0x85, 0xff, 0xa0, 0x9f, 0x9c, 0xff, 0xc0, 0xbe, 0xbc, 0xff, 0xdc, 0xda, 0xd8, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xea, 0xe8, 0xe5, 0xff, 0xea, 0xe8, 0xe5, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0x7e, 0x7d, 0x7c, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xa6, 0xa6, 0xa6, 0xff, 0x75, 0x74, 0x73, 0xff, 0xc2, 0xc0, 0xbd, 0xff, 0xea, 0xe7, 0xe4, 0xff, 0xea, 0xe7, 0xe4, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xeb, 0xe8, 0xe5, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xc0, 0xbe, 0xbb, 0xff, 0x8e, 0x8d, 0x8a, 0xff, 0x6a, 0x69, 0x66, 0xff, 0x62, 0x60, 0x5d, 0xff, 0x65, 0x63, 0x60, 0xff, 0x6d, 0x6b, 0x68, 0xff, 0x75, 0x74, 0x70, 0xff, 0x79, 0x77, 0x73, 0xff, 0x7a, 0x79, 0x75, 0xff, 0x7b, 0x7a, 0x76, 0xff, 0x7b, 0x7a, 0x76, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7a, 0x78, 0x74, 0xff, 0x78, 0x76, 0x73, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x6a, 0x69, 0x66, 0xff, 0x64, 0x62, 0x5f, 0xff, 0x61, 0x60, 0x5d, 0xff, 0x6c, 0x6b, 0x69, 0xff, 0xa9, 0xa8, 0xa5, 0xff, 0xe6, 0xe4, 0xe1, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xeb, 0xe9, 0xe6, 0xff, 0x91, 0x8f, 0x8d, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0x9d, 0x9d, 0x9c, 0xff, 0x7c, 0x7c, 0x7a, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xea, 0xe8, 0xe5, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xbf, 0xbd, 0xba, 0xff, 0x7f, 0x7e, 0x7b, 0xff, 0x60, 0x5e, 0x5c, 0xff, 0x66, 0x65, 0x62, 0xff, 0x75, 0x74, 0x70, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x80, 0x7e, 0x7a, 0xff, 0x80, 0x7e, 0x7a, 0xff, 0x7f, 0x7e, 0x79, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7f, 0x7e, 0x7a, 0xff, 0x80, 0x7e, 0x7a, 0xff, 0x80, 0x7e, 0x7a, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x60, 0x5f, 0x5c, 0xff, 0x87, 0x86, 0x83, 0xff, 0xe7, 0xe4, 0xe1, 0xff, 0xe9, 0xe6, 0xe3, 0xff, 0xe6, 0xe4, 0xe1, 0xff, 0x88, 0x87, 0x85, 0xff, 0xbe, 0xbe, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xa1, 0xa1, 0xa1, 0xff, 0x7d, 0x7c, 0x7b, 0xff, 0xd7, 0xd5, 0xd3, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xe7, 0xe5, 0xe2, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0x91, 0x90, 0x8d, 0xff, 0x5f, 0x5e, 0x5c, 0xff, 0x68, 0x67, 0x64, 0xff, 0x7a, 0x78, 0x74, 0xff, 0x7f, 0x7d, 0x79, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x62, 0x60, 0x5d, 0xff, 0xa7, 0xa6, 0xa3, 0xff, 0xe9, 0xe7, 0xe4, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0x75, 0x74, 0x74, 0xff, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0x77, 0x76, 0x75, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xe6, 0xe4, 0xe1, 0xff, 0xe7, 0xe5, 0xe2, 0xff, 0xc6, 0xc4, 0xc1, 0xff, 0x73, 0x71, 0x6f, 0xff, 0x5f, 0x5e, 0x5b, 0xff, 0x76, 0x75, 0x71, 0xff, 0x7e, 0x7c, 0x78, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x79, 0x77, 0x73, 0xff, 0x60, 0x5e, 0x5c, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xc3, 0xc1, 0xbf, 0xff, 0x7d, 0x7c, 0x7c, 0xff, 0xf6, 0xf6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0x71, 0x70, 0x70, 0xff, 0xc6, 0xc4, 0xc2, 0xff, 0xe7, 0xe5, 0xe2, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xe7, 0xe4, 0xe1, 0xff, 0xbd, 0xbb, 0xb9, 0xff, 0x66, 0x65, 0x63, 0xff, 0x66, 0x64, 0x61, 0xff, 0x7b, 0x79, 0x76, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7c, 0x7a, 0x76, 0xff, 0x7c, 0x7a, 0x76, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x7c, 0x7b, 0x77, 0xff, 0x7d, 0x7b, 0x77, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x6d, 0x6c, 0x6a, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xe6, 0xe4, 0xe1, 0xff, 0xe8, 0xe6, 0xe3, 0xff, 0xa0, 0x9f, 0x9d, 0xff, 0x9c, 0x9b, 0x9b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xed, 0xed, 0xed, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xec, 0xec, 0xec, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xfa, 0xfa, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xec, 0xec, 0xec, 0xff, 0xe7, 0xe7, 0xe7, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xed, 0xed, 0xed, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0x7f, 0x7f, 0x7e, 0xff, 0xa8, 0xa6, 0xa4, 0xff, 0xe6, 0xe4, 0xe1, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe6, 0xe4, 0xe1, 0xff, 0xc1, 0xbf, 0xbc, 0xff, 0x64, 0x63, 0x61, 0xff, 0x68, 0x67, 0x64, 0xff, 0x7b, 0x7a, 0x76, 0xff, 0x7b, 0x7a, 0x76, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x7a, 0x76, 0xff, 0x7b, 0x7a, 0x76, 0xff, 0x7c, 0x7a, 0x76, 0xff, 0x77, 0x76, 0x72, 0xff, 0x6f, 0x6d, 0x6a, 0xff, 0x64, 0x63, 0x60, 0xff, 0x60, 0x5f, 0x5c, 0xff, 0x60, 0x5f, 0x5c, 0xff, 0x60, 0x5f, 0x5c, 0xff, 0x60, 0x5f, 0x5c, 0xff, 0x60, 0x5f, 0x5c, 0xff, 0x61, 0x60, 0x5d, 0xff, 0x67, 0x66, 0x62, 0xff, 0x71, 0x6f, 0x6c, 0xff, 0x78, 0x77, 0x73, 0xff, 0x65, 0x63, 0x60, 0xff, 0x89, 0x88, 0x85, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0x82, 0x81, 0x80, 0xff, 0x81, 0x81, 0x81, 0xff, 0x97, 0x97, 0x97, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x73, 0x72, 0x72, 0xff, 0x74, 0x73, 0x72, 0xff, 0x74, 0x74, 0x73, 0xff, 0x73, 0x73, 0x73, 0xff, 0x78, 0x78, 0x77, 0xff, 0x8a, 0x8a, 0x8a, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0x99, 0x99, 0x99, 0xff, 0x85, 0x85, 0x85, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x86, 0x86, 0x86, 0xff, 0x9d, 0x9c, 0x9c, 0xff, 0xda, 0xda, 0xda, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0x89, 0x88, 0x88, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x83, 0x83, 0x83, 0xff, 0x84, 0x84, 0x84, 0xff, 0x94, 0x94, 0x94, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x84, 0x83, 0x83, 0xff, 0x75, 0x74, 0x74, 0xff, 0x73, 0x72, 0x72, 0xff, 0x74, 0x73, 0x72, 0xff, 0x73, 0x73, 0x72, 0xff, 0x78, 0x78, 0x78, 0xff, 0x8c, 0x8b, 0x8b, 0xff, 0x8b, 0x8b, 0x8b, 0xff, 0x77, 0x76, 0x75, 0xff, 0x73, 0x73, 0x72, 0xff, 0x73, 0x73, 0x72, 0xff, 0x76, 0x75, 0x75, 0xff, 0x90, 0x90, 0x90, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xe9, 0xe9, 0xe9, 0xff, 0xb5, 0xb5, 0xb5, 0xff, 0x8f, 0x8e, 0x8e, 0xff, 0x79, 0x79, 0x79, 0xff, 0x73, 0x73, 0x72, 0xff, 0x74, 0x74, 0x73, 0xff, 0x74, 0x74, 0x73, 0xff, 0x74, 0x73, 0x72, 0xff, 0x7a, 0x7a, 0x79, 0xff, 0x8d, 0x8d, 0x8c, 0xff, 0xaf, 0xae, 0xae, 0xff, 0xdf, 0xdf, 0xdf, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb1, 0xb1, 0xb1, 0xff, 0x81, 0x7f, 0x7e, 0xff, 0xdf, 0xdc, 0xda, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x6c, 0x6b, 0x68, 0xff, 0x65, 0x64, 0x61, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x7b, 0x79, 0x75, 0xff, 0x74, 0x72, 0x6e, 0xff, 0x62, 0x61, 0x5d, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x6f, 0x6e, 0x6c, 0xff, 0x8b, 0x89, 0x87, 0xff, 0x9e, 0x9c, 0x9a, 0xff, 0xaa, 0xa8, 0xa6, 0xff, 0xaf, 0xad, 0xaa, 0xff, 0xad, 0xab, 0xa8, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0x97, 0x95, 0x92, 0xff, 0x83, 0x81, 0x7f, 0xff, 0x6a, 0x69, 0x66, 0xff, 0x5d, 0x5b, 0x59, 0xff, 0x51, 0x50, 0x4e, 0xff, 0xa7, 0xa5, 0xa2, 0xff, 0xe6, 0xe4, 0xe1, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0x70, 0x6e, 0x6d, 0xff, 0x79, 0x77, 0x76, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0xc4, 0xc2, 0xc0, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0xb2, 0xb0, 0xad, 0xff, 0x91, 0x90, 0x8e, 0xff, 0x73, 0x72, 0x71, 0xff, 0x70, 0x6e, 0x6d, 0xff, 0x9d, 0x9b, 0x99, 0xff, 0xba, 0xb8, 0xb6, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xb9, 0xb7, 0xb5, 0xff, 0x98, 0x96, 0x94, 0xff, 0x72, 0x72, 0x71, 0xff, 0x9d, 0x9d, 0x9d, 0xff, 0x78, 0x78, 0x78, 0xff, 0x8b, 0x89, 0x87, 0xff, 0xb4, 0xb1, 0xaf, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xbc, 0xba, 0xb7, 0xff, 0xa3, 0xa1, 0x9f, 0xff, 0x73, 0x72, 0x71, 0xff, 0xa5, 0xa5, 0xa5, 0xff, 0xf8, 0xf8, 0xf8, 0xff, 0xce, 0xce, 0xce, 0xff, 0x84, 0x84, 0x83, 0xff, 0x76, 0x75, 0x75, 0xff, 0x97, 0x95, 0x93, 0xff, 0xba, 0xb8, 0xb6, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd5, 0xd2, 0xd0, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0xae, 0xac, 0xaa, 0xff, 0xae, 0xac, 0xa9, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0xa3, 0xa2, 0xa0, 0xff, 0x74, 0x73, 0x72, 0xff, 0x81, 0x81, 0x81, 0xff, 0x75, 0x74, 0x74, 0xff, 0x86, 0x84, 0x83, 0xff, 0xaa, 0xa8, 0xa6, 0xff, 0xc9, 0xc7, 0xc4, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd4, 0xd2, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0xad, 0xaa, 0xa8, 0xff, 0x8c, 0x8b, 0x89, 0xff, 0x73, 0x73, 0x72, 0xff, 0x91, 0x90, 0x90, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xec, 0xec, 0xff, 0x75, 0x75, 0x74, 0xff, 0xc0, 0xbe, 0xbc, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0x84, 0x83, 0x81, 0xff, 0x5e, 0x5c, 0x59, 0xff, 0x79, 0x77, 0x73, 0xff, 0x7a, 0x78, 0x74, 0xff, 0x79, 0x78, 0x74, 0xff, 0x7a, 0x78, 0x74, 0xff, 0x7a, 0x78, 0x74, 0xff, 0x79, 0x78, 0x74, 0xff, 0x7a, 0x78, 0x74, 0xff, 0x78, 0x77, 0x73, 0xff, 0x66, 0x65, 0x62, 0xff, 0x5d, 0x5c, 0x5a, 0xff, 0x88, 0x87, 0x84, 0xff, 0xbe, 0xbc, 0xb9, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xbd, 0xbb, 0xb8, 0xff, 0x9a, 0x98, 0x95, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd5, 0xd2, 0xd0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xbe, 0xbb, 0xb9, 0xff, 0x62, 0x62, 0x61, 0xff, 0xa7, 0xa5, 0xa3, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x75, 0x75, 0x73, 0xff, 0x79, 0x79, 0x79, 0xff, 0x74, 0x74, 0x72, 0xff, 0xa8, 0xa7, 0xa4, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0x9d, 0x9c, 0x9a, 0xff, 0xc5, 0xc3, 0xc0, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xde, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0x95, 0x94, 0x92, 0xff, 0x79, 0x79, 0x78, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0x86, 0x85, 0x83, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xaf, 0xad, 0xab, 0xff, 0x59, 0x58, 0x55, 0xff, 0x74, 0x72, 0x6f, 0xff, 0x79, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x79, 0x77, 0x73, 0xff, 0x76, 0x75, 0x71, 0xff, 0x5f, 0x5d, 0x5a, 0xff, 0x6f, 0x6d, 0x6b, 0xff, 0xbb, 0xb9, 0xb7, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe6, 0xe3, 0xe0, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe4, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xb8, 0xb7, 0xb4, 0xff, 0x85, 0x84, 0x82, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe3, 0xe0, 0xff, 0xe5, 0xe2, 0xdf, 0xff, 0xe4, 0xe2, 0xdf, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0x91, 0x90, 0x8d, 0xff, 0x9b, 0x9a, 0x9a, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0x7b, 0x7b, 0x7a, 0xff, 0xb9, 0xb7, 0xb5, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0x6f, 0x6e, 0x6c, 0xff, 0x66, 0x65, 0x62, 0xff, 0x79, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x78, 0x77, 0x73, 0xff, 0x77, 0x76, 0x72, 0xff, 0x5e, 0x5d, 0x5a, 0xff, 0x78, 0x77, 0x75, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0xad, 0xab, 0xa9, 0xff, 0x9b, 0x9a, 0x97, 0xff, 0x97, 0x95, 0x93, 0xff, 0x9e, 0x9d, 0x9a, 0xff, 0xb4, 0xb2, 0xb0, 0xff, 0xd0, 0xce, 0xcc, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xc2, 0xc1, 0xbe, 0xff, 0xa9, 0xa7, 0xa5, 0xff, 0xac, 0xab, 0xa8, 0xff, 0xd1, 0xd0, 0xcd, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xbe, 0xbc, 0xba, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0x98, 0x97, 0x94, 0xff, 0x98, 0x96, 0x94, 0xff, 0xa0, 0x9f, 0x9c, 0xff, 0xb4, 0xb2, 0xaf, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xd5, 0xd4, 0xd1, 0xff, 0xbc, 0xbb, 0xb8, 0xff, 0xba, 0xb9, 0xb6, 0xff, 0xba, 0xb9, 0xb6, 0xff, 0xba, 0xb9, 0xb6, 0xff, 0xbd, 0xbb, 0xb8, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xc0, 0xbf, 0xbc, 0xff, 0xba, 0xb9, 0xb6, 0xff, 0xba, 0xb9, 0xb6, 0xff, 0xba, 0xb9, 0xb6, 0xff, 0xbb, 0xb9, 0xb7, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xca, 0xc8, 0xc6, 0xff, 0xad, 0xac, 0xa9, 0xff, 0x9b, 0x9a, 0x97, 0xff, 0x97, 0x95, 0x93, 0xff, 0x9e, 0x9c, 0x9a, 0xff, 0xb3, 0xb2, 0xaf, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xb4, 0xb3, 0xb0, 0xff, 0x98, 0x97, 0x94, 0xff, 0x99, 0x98, 0x96, 0xff, 0xc3, 0xc2, 0xbf, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xb9, 0xb8, 0xb5, 0xff, 0xa1, 0xa0, 0x9d, 0xff, 0x97, 0x96, 0x93, 0xff, 0x98, 0x97, 0x94, 0xff, 0xa2, 0xa1, 0x9e, 0xff, 0xb8, 0xb6, 0xb4, 0xff, 0xd1, 0xd0, 0xcd, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xc7, 0xc5, 0xc3, 0xff, 0x76, 0x75, 0x75, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xcf, 0xcf, 0xcf, 0xff, 0x77, 0x77, 0x75, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xac, 0xaa, 0xa7, 0xff, 0x59, 0x58, 0x55, 0xff, 0x75, 0x74, 0x70, 0xff, 0x78, 0x76, 0x72, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x75, 0x71, 0xff, 0x78, 0x76, 0x72, 0xff, 0x65, 0x64, 0x60, 0xff, 0x6d, 0x6c, 0x69, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xc2, 0xc0, 0xbd, 0xff, 0x83, 0x81, 0x7f, 0xff, 0x5d, 0x5d, 0x5a, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x5d, 0x5c, 0x58, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x64, 0x63, 0x61, 0xff, 0x6e, 0x6d, 0x6b, 0xff, 0x5c, 0x5b, 0x59, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x59, 0x58, 0x55, 0xff, 0x72, 0x71, 0x6e, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xaf, 0xad, 0xaa, 0xff, 0x70, 0x6f, 0x6c, 0xff, 0x5a, 0x59, 0x57, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x5e, 0x5d, 0x5a, 0xff, 0xa9, 0xa7, 0xa4, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xad, 0xab, 0xa8, 0xff, 0x56, 0x55, 0x52, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x55, 0x55, 0x52, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xc0, 0xbe, 0xbb, 0xff, 0x5b, 0x5b, 0x58, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x5b, 0x5b, 0x57, 0xff, 0x5b, 0x5b, 0x58, 0xff, 0x52, 0x52, 0x4f, 0xff, 0x9b, 0x9a, 0x97, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xc2, 0xc0, 0xbd, 0xff, 0x83, 0x82, 0x7f, 0xff, 0x5e, 0x5d, 0x5b, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x5d, 0x5b, 0x58, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x63, 0x62, 0x5f, 0xff, 0x67, 0x66, 0x63, 0xff, 0x5a, 0x5a, 0x57, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x64, 0x63, 0x61, 0xff, 0xc4, 0xc2, 0xbf, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xa3, 0xa1, 0x9f, 0xff, 0x69, 0x68, 0x66, 0xff, 0x5a, 0x59, 0x57, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x64, 0x63, 0x61, 0xff, 0xb9, 0xb7, 0xb4, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0x72, 0x71, 0x70, 0xff, 0xec, 0xec, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0x95, 0x94, 0x92, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0x71, 0x70, 0x6d, 0xff, 0x52, 0x50, 0x4d, 0xff, 0x6a, 0x68, 0x64, 0xff, 0x6f, 0x6d, 0x69, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x76, 0x75, 0x71, 0xff, 0x77, 0x76, 0x72, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0xb7, 0xb5, 0xb2, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xa9, 0xa7, 0xa4, 0xff, 0x5e, 0x5d, 0x5b, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x6f, 0x6e, 0x6a, 0xff, 0x75, 0x74, 0x70, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x76, 0x71, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x6c, 0x6b, 0x67, 0xff, 0x67, 0x66, 0x62, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x76, 0x75, 0x71, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x58, 0x57, 0x54, 0xff, 0xa9, 0xa7, 0xa4, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0x9c, 0x9a, 0x98, 0xff, 0x57, 0x56, 0x54, 0xff, 0x65, 0x64, 0x60, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x70, 0x6f, 0x6b, 0xff, 0x70, 0x6f, 0x6b, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x73, 0x71, 0x6e, 0xff, 0x57, 0x56, 0x54, 0xff, 0xa5, 0xa4, 0xa1, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xa0, 0x9e, 0x9b, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x75, 0x74, 0x6f, 0xff, 0x61, 0x60, 0x5d, 0xff, 0x7d, 0x7c, 0x79, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0x97, 0x95, 0x93, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x8f, 0x8e, 0x8b, 0xff, 0xe2, 0xe0, 0xdd, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xaa, 0xa8, 0xa5, 0xff, 0x5f, 0x5e, 0x5b, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x6f, 0x6e, 0x6a, 0xff, 0x75, 0x74, 0x70, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x76, 0x71, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x6c, 0x6b, 0x68, 0xff, 0x6a, 0x69, 0x65, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x77, 0x76, 0x72, 0xff, 0x77, 0x76, 0x72, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x9c, 0x9a, 0x98, 0xff, 0xe3, 0xe0, 0xdd, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0x8b, 0x8a, 0x87, 0xff, 0x57, 0x55, 0x53, 0xff, 0x68, 0x67, 0x64, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x70, 0x6f, 0x6b, 0xff, 0x71, 0x6f, 0x6c, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x70, 0x6f, 0x6b, 0xff, 0x57, 0x56, 0x54, 0xff, 0xbb, 0xb9, 0xb6, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xc5, 0xc3, 0xc0, 0xff, 0x77, 0x77, 0x76, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf6, 0xf6, 0xf6, 0xff, 0x80, 0x7f, 0x7f, 0xff, 0xb9, 0xb7, 0xb4, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xc4, 0xc2, 0xbf, 0xff, 0x47, 0x46, 0x43, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x51, 0x4f, 0x4b, 0xff, 0x52, 0x50, 0x4c, 0xff, 0x55, 0x54, 0x50, 0xff, 0x5b, 0x59, 0x55, 0xff, 0x5f, 0x5e, 0x5a, 0xff, 0x65, 0x63, 0x5f, 0xff, 0x56, 0x55, 0x51, 0xff, 0x82, 0x80, 0x7e, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xad, 0xac, 0xa9, 0xff, 0x59, 0x58, 0x56, 0xff, 0x68, 0x67, 0x64, 0xff, 0x76, 0x75, 0x71, 0xff, 0x76, 0x75, 0x71, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x76, 0x74, 0x70, 0xff, 0x76, 0x75, 0x71, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0xa4, 0xa3, 0xa0, 0xff, 0xbb, 0xb9, 0xb6, 0xff, 0x59, 0x58, 0x56, 0xff, 0x6c, 0x6b, 0x67, 0xff, 0x75, 0x74, 0x70, 0xff, 0x62, 0x61, 0x5e, 0xff, 0x59, 0x58, 0x56, 0xff, 0x60, 0x60, 0x5d, 0xff, 0x61, 0x60, 0x5e, 0xff, 0x5b, 0x5b, 0x58, 0xff, 0x57, 0x56, 0x54, 0xff, 0x57, 0x57, 0x54, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0x98, 0x96, 0x94, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x75, 0x74, 0x70, 0xff, 0x66, 0x65, 0x62, 0xff, 0x67, 0x66, 0x62, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x61, 0x60, 0x5d, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0x71, 0x70, 0x6e, 0xff, 0x65, 0x64, 0x60, 0xff, 0x67, 0x66, 0x62, 0xff, 0x66, 0x65, 0x61, 0xff, 0x75, 0x74, 0x70, 0xff, 0x5f, 0x5e, 0x5a, 0xff, 0x89, 0x88, 0x85, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xae, 0xac, 0xaa, 0xff, 0x59, 0x58, 0x56, 0xff, 0x68, 0x67, 0x63, 0xff, 0x76, 0x74, 0x70, 0xff, 0x76, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x76, 0x74, 0x70, 0xff, 0x76, 0x75, 0x71, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x76, 0x75, 0x71, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x9c, 0x9a, 0x98, 0xff, 0xe3, 0xe1, 0xde, 0xff, 0xa7, 0xa5, 0xa2, 0xff, 0x56, 0x55, 0x53, 0xff, 0x70, 0x6f, 0x6b, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x5f, 0x5f, 0x5b, 0xff, 0x5a, 0x59, 0x57, 0xff, 0x61, 0x61, 0x5e, 0xff, 0x60, 0x5f, 0x5d, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x55, 0x54, 0x52, 0xff, 0x64, 0x63, 0x61, 0xff, 0xd3, 0xd0, 0xce, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xa1, 0x9f, 0x9d, 0xff, 0x93, 0x93, 0x92, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xe4, 0xe4, 0xe4, 0xff, 0x72, 0x72, 0x70, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0x9e, 0x9c, 0x9a, 0xff, 0x3e, 0x3c, 0x39, 0xff, 0x4e, 0x4c, 0x48, 0xff, 0x4e, 0x4c, 0x48, 0xff, 0x4e, 0x4c, 0x48, 0xff, 0x4e, 0x4c, 0x48, 0xff, 0x4e, 0x4c, 0x48, 0xff, 0x4e, 0x4c, 0x48, 0xff, 0x4c, 0x4a, 0x46, 0xff, 0x43, 0x41, 0x3f, 0xff, 0xb4, 0xb2, 0xaf, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x59, 0x58, 0x55, 0xff, 0x6d, 0x6b, 0x67, 0xff, 0x70, 0x6e, 0x6a, 0xff, 0x72, 0x70, 0x6c, 0xff, 0x73, 0x71, 0x6d, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x74, 0x70, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x5a, 0x59, 0x56, 0xff, 0xba, 0xb8, 0xb5, 0xff, 0x88, 0x87, 0x84, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x76, 0x75, 0x71, 0xff, 0x64, 0x63, 0x5f, 0xff, 0x69, 0x67, 0x65, 0xff, 0xb7, 0xb5, 0xb2, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0xc5, 0xc3, 0xc0, 0xff, 0xa5, 0xa3, 0xa0, 0xff, 0x9a, 0x98, 0x95, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xe1, 0xde, 0xdb, 0xff, 0x90, 0x8e, 0x8b, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x72, 0x70, 0x6d, 0xff, 0x4c, 0x4b, 0x48, 0xff, 0x4c, 0x4b, 0x48, 0xff, 0x6e, 0x6d, 0x69, 0xff, 0x59, 0x58, 0x55, 0xff, 0xae, 0xac, 0xa9, 0xff, 0xe0, 0xde, 0xdb, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0xc0, 0xbe, 0xbb, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x6a, 0x68, 0x65, 0xff, 0x4e, 0x4d, 0x4a, 0xff, 0x4c, 0x4b, 0x48, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x61, 0x60, 0x5c, 0xff, 0x82, 0x81, 0x7e, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xca, 0xc7, 0xc5, 0xff, 0x64, 0x63, 0x60, 0xff, 0x65, 0x64, 0x61, 0xff, 0x75, 0x74, 0x70, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x75, 0x73, 0x6f, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x59, 0x58, 0x55, 0xff, 0xb8, 0xb6, 0xb3, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0x74, 0x72, 0x70, 0xff, 0x64, 0x63, 0x5f, 0xff, 0x76, 0x74, 0x70, 0xff, 0x5f, 0x5e, 0x5b, 0xff, 0x74, 0x72, 0x70, 0xff, 0xbe, 0xbc, 0xb9, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xc1, 0xbf, 0xbd, 0xff, 0x9d, 0x9b, 0x99, 0xff, 0xa3, 0xa1, 0x9f, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0x83, 0x82, 0x81, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xc5, 0xc5, 0xc5, 0xff, 0x7d, 0x7c, 0x7b, 0xff, 0xd8, 0xd5, 0xd3, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0x7c, 0x7b, 0x78, 0xff, 0x3c, 0x3b, 0x37, 0xff, 0x4d, 0x4b, 0x47, 0xff, 0x4d, 0x4b, 0x46, 0xff, 0x4d, 0x4b, 0x46, 0xff, 0x4d, 0x4b, 0x46, 0xff, 0x4d, 0x4b, 0x46, 0xff, 0x4d, 0x4b, 0x47, 0xff, 0x44, 0x43, 0x3f, 0xff, 0x59, 0x58, 0x55, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0x89, 0x88, 0x85, 0xff, 0x3b, 0x3a, 0x37, 0xff, 0x4e, 0x4c, 0x48, 0xff, 0x4f, 0x4d, 0x49, 0xff, 0x51, 0x4f, 0x4b, 0xff, 0x54, 0x53, 0x4e, 0xff, 0x58, 0x56, 0x52, 0xff, 0x5c, 0x5a, 0x56, 0xff, 0x5f, 0x5e, 0x5a, 0xff, 0x63, 0x62, 0x5e, 0xff, 0x66, 0x65, 0x61, 0xff, 0x6a, 0x69, 0x65, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x70, 0x6e, 0x6a, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x63, 0x62, 0x5f, 0xff, 0x6f, 0x6e, 0x6c, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0x71, 0x70, 0x6e, 0xff, 0x67, 0x66, 0x62, 0xff, 0x75, 0x74, 0x70, 0xff, 0x5a, 0x5a, 0x56, 0xff, 0x99, 0x98, 0x95, 0xff, 0xe2, 0xdf, 0xdc, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xdf, 0xdd, 0xda, 0xff, 0xdd, 0xdb, 0xd7, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0x88, 0x86, 0x84, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x6f, 0x6e, 0x6b, 0xff, 0x53, 0x52, 0x50, 0xff, 0x5b, 0x5a, 0x58, 0xff, 0x6a, 0x69, 0x65, 0xff, 0x5d, 0x5c, 0x59, 0xff, 0x89, 0x88, 0x85, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0x99, 0x98, 0x95, 0xff, 0x59, 0x59, 0x56, 0xff, 0x63, 0x62, 0x5f, 0xff, 0x65, 0x63, 0x61, 0xff, 0x54, 0x54, 0x51, 0xff, 0x70, 0x6f, 0x6b, 0xff, 0x63, 0x62, 0x5e, 0xff, 0x7b, 0x7a, 0x78, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0x93, 0x91, 0x8f, 0xff, 0x58, 0x57, 0x54, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x74, 0x73, 0x6f, 0xff, 0x64, 0x63, 0x5f, 0xff, 0x6f, 0x6e, 0x6b, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x60, 0x5f, 0x5d, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x58, 0x58, 0x55, 0xff, 0xae, 0xac, 0xaa, 0xff, 0xe1, 0xdf, 0xdc, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xcf, 0xcc, 0xca, 0xff, 0x72, 0x72, 0x71, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xa9, 0xa9, 0xa9, 0xff, 0x8a, 0x89, 0x87, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0x62, 0x61, 0x5e, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x7a, 0x78, 0x76, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x55, 0x54, 0x51, 0xff, 0x42, 0x40, 0x3d, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4a, 0x48, 0x45, 0xff, 0x4a, 0x48, 0x45, 0xff, 0x4a, 0x48, 0x45, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4c, 0x4a, 0x46, 0xff, 0x4d, 0x4b, 0x48, 0xff, 0x4e, 0x4c, 0x49, 0xff, 0x50, 0x4f, 0x4b, 0xff, 0x54, 0x52, 0x4f, 0xff, 0x43, 0x41, 0x3e, 0xff, 0x86, 0x85, 0x82, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0x6b, 0x6a, 0x68, 0xff, 0x57, 0x56, 0x52, 0xff, 0x67, 0x65, 0x61, 0xff, 0x55, 0x54, 0x51, 0xff, 0x71, 0x70, 0x6e, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0x80, 0x7f, 0x7c, 0xff, 0x60, 0x5f, 0x5b, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x5e, 0x5e, 0x5b, 0xff, 0x74, 0x73, 0x70, 0xff, 0x60, 0x5f, 0x5b, 0xff, 0x68, 0x67, 0x64, 0xff, 0x69, 0x68, 0x65, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0x73, 0x72, 0x70, 0xff, 0x62, 0x62, 0x5e, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x84, 0x82, 0x80, 0xff, 0x5b, 0x5a, 0x58, 0xff, 0x6e, 0x6d, 0x69, 0xff, 0x65, 0x64, 0x60, 0xff, 0x74, 0x73, 0x71, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0x67, 0x66, 0x63, 0xff, 0x67, 0x66, 0x63, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x59, 0x58, 0x55, 0xff, 0x8b, 0x8a, 0x87, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0x60, 0x5f, 0x5d, 0xff, 0x6b, 0x6a, 0x67, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x5a, 0x5a, 0x57, 0xff, 0x86, 0x84, 0x82, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xa3, 0xa1, 0x9f, 0xff, 0x85, 0x85, 0x84, 0xff, 0xfa, 0xfa, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x97, 0x97, 0x97, 0xff, 0x95, 0x93, 0x91, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0x4f, 0x4e, 0x4b, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x3b, 0x39, 0x36, 0xff, 0x91, 0x8f, 0x8d, 0xff, 0xdf, 0xdc, 0xd9, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xb7, 0xb5, 0xb3, 0xff, 0x3f, 0x3e, 0x3b, 0xff, 0x47, 0x45, 0x41, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x44, 0xff, 0x49, 0x47, 0x43, 0xff, 0x49, 0x47, 0x43, 0xff, 0x49, 0x47, 0x43, 0xff, 0x49, 0x47, 0x43, 0xff, 0x49, 0x47, 0x43, 0xff, 0x49, 0x47, 0x43, 0xff, 0x3c, 0x3b, 0x37, 0xff, 0x6d, 0x6c, 0x69, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0x82, 0x80, 0x7d, 0xff, 0x39, 0x37, 0x34, 0xff, 0x4b, 0x49, 0x45, 0xff, 0x4a, 0x48, 0x44, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x58, 0x57, 0x55, 0xff, 0x98, 0x97, 0x94, 0xff, 0xc8, 0xc5, 0xc3, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xdd, 0xdb, 0xd8, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0x74, 0x73, 0x70, 0xff, 0x59, 0x57, 0x54, 0xff, 0x63, 0x62, 0x5e, 0xff, 0x61, 0x60, 0x5d, 0xff, 0x8e, 0x8c, 0x8a, 0xff, 0x57, 0x56, 0x53, 0xff, 0x6b, 0x6a, 0x66, 0xff, 0x56, 0x55, 0x53, 0xff, 0xbc, 0xba, 0xb7, 0xff, 0xde, 0xdc, 0xd9, 0xff, 0xc4, 0xc2, 0xbf, 0xff, 0x5a, 0x59, 0x56, 0xff, 0x69, 0x68, 0x64, 0xff, 0x59, 0x58, 0x55, 0xff, 0xa5, 0xa3, 0xa1, 0xff, 0x5b, 0x5a, 0x57, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x67, 0x66, 0x62, 0xff, 0x6e, 0x6d, 0x6a, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xbc, 0xba, 0xb7, 0xff, 0x58, 0x58, 0x55, 0xff, 0x6f, 0x6e, 0x6a, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x72, 0x71, 0x6d, 0xff, 0x61, 0x60, 0x5c, 0xff, 0x79, 0x77, 0x75, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0x78, 0x76, 0x74, 0xff, 0x5e, 0x5e, 0x5a, 0xff, 0x73, 0x72, 0x6e, 0xff, 0x6c, 0x6b, 0x67, 0xff, 0x56, 0x55, 0x53, 0xff, 0x71, 0x70, 0x6d, 0xff, 0xa7, 0xa6, 0xa3, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xdc, 0xda, 0xd7, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0x90, 0x8e, 0x8c, 0xff, 0x85, 0x84, 0x84, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x8c, 0x8c, 0x8b, 0xff, 0x9d, 0x9b, 0x99, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xc6, 0xc4, 0xc1, 0xff, 0x43, 0x41, 0x3f, 0xff, 0x43, 0x42, 0x3e, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x47, 0x45, 0x41, 0xff, 0x3b, 0x3a, 0x37, 0xff, 0xa0, 0x9e, 0x9c, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0x9f, 0x9d, 0x9a, 0xff, 0x3b, 0x39, 0x37, 0xff, 0x47, 0x45, 0x41, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x48, 0x46, 0x42, 0xff, 0x40, 0x3e, 0x3b, 0xff, 0x58, 0x57, 0x54, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xbe, 0xbb, 0xb9, 0xff, 0x4b, 0x49, 0x47, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x48, 0x46, 0x42, 0xff, 0x47, 0x45, 0x41, 0xff, 0x3d, 0x3c, 0x38, 0xff, 0x38, 0x37, 0x34, 0xff, 0x4b, 0x49, 0x47, 0xff, 0x7e, 0x7c, 0x79, 0xff, 0xbd, 0xbb, 0xb8, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xdb, 0xd9, 0xd6, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0x62, 0x60, 0x5e, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x45, 0x43, 0x3f, 0xff, 0x56, 0x55, 0x53, 0xff, 0xa8, 0xa6, 0xa4, 0xff, 0x43, 0x42, 0x40, 0xff, 0x4d, 0x4c, 0x48, 0xff, 0x40, 0x3e, 0x3c, 0xff, 0x96, 0x94, 0x91, 0xff, 0xe0, 0xdd, 0xda, 0xff, 0x9f, 0x9d, 0x9b, 0xff, 0x45, 0x44, 0x41, 0xff, 0x51, 0x50, 0x4c, 0xff, 0x5d, 0x5c, 0x5a, 0xff, 0xbd, 0xba, 0xb8, 0xff, 0x52, 0x51, 0x4f, 0xff, 0x5c, 0x5a, 0x57, 0xff, 0x5a, 0x58, 0x55, 0xff, 0x61, 0x60, 0x5d, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0x52, 0x51, 0x4e, 0xff, 0x69, 0x68, 0x64, 0xff, 0x6b, 0x6a, 0x66, 0xff, 0x6c, 0x6a, 0x67, 0xff, 0x6c, 0x6b, 0x67, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x6d, 0x6c, 0x68, 0xff, 0x6e, 0x6d, 0x69, 0xff, 0x6e, 0x6d, 0x69, 0xff, 0x6e, 0x6d, 0x69, 0xff, 0x6f, 0x6e, 0x6a, 0xff, 0x6f, 0x6e, 0x6a, 0xff, 0x6f, 0x6e, 0x6a, 0xff, 0x70, 0x6f, 0x6b, 0xff, 0x66, 0x65, 0x61, 0xff, 0x67, 0x67, 0x64, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0xb1, 0xaf, 0xac, 0xff, 0x56, 0x56, 0x53, 0xff, 0x65, 0x64, 0x61, 0xff, 0x71, 0x70, 0x6c, 0xff, 0x6f, 0x6e, 0x6a, 0xff, 0x5f, 0x5f, 0x5b, 0xff, 0x55, 0x55, 0x52, 0xff, 0x63, 0x63, 0x60, 0xff, 0x91, 0x90, 0x8d, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xdb, 0xd9, 0xd6, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x76, 0x75, 0x74, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x84, 0x84, 0x84, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xdb, 0xd9, 0xd6, 0xff, 0xbf, 0xbc, 0xba, 0xff, 0x3e, 0x3d, 0x3a, 0xff, 0x42, 0x41, 0x3d, 0xff, 0x46, 0x44, 0x41, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x46, 0x44, 0x40, 0xff, 0x44, 0x43, 0x3f, 0xff, 0x3b, 0x3a, 0x37, 0xff, 0xa8, 0xa6, 0xa3, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0x93, 0x91, 0x8f, 0xff, 0x38, 0x37, 0x34, 0xff, 0x46, 0x44, 0x41, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x45, 0x44, 0x40, 0xff, 0x46, 0x44, 0x41, 0xff, 0x40, 0x3e, 0x3b, 0xff, 0x50, 0x4f, 0x4d, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xab, 0xa8, 0xa6, 0xff, 0x4c, 0x4b, 0x49, 0xff, 0x36, 0x35, 0x32, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x46, 0x44, 0x40, 0xff, 0x45, 0x43, 0x40, 0xff, 0x3f, 0x3e, 0x3b, 0xff, 0x36, 0x35, 0x32, 0xff, 0x46, 0x45, 0x43, 0xff, 0x97, 0x95, 0x93, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x57, 0x56, 0x53, 0xff, 0x3e, 0x3d, 0x3a, 0xff, 0x3f, 0x3d, 0x3a, 0xff, 0x58, 0x56, 0x54, 0xff, 0xc0, 0xbe, 0xbb, 0xff, 0x4e, 0x4d, 0x4a, 0xff, 0x40, 0x3e, 0x3b, 0xff, 0x38, 0x37, 0x34, 0xff, 0x71, 0x70, 0x6d, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0x77, 0x76, 0x73, 0xff, 0x37, 0x35, 0x33, 0xff, 0x37, 0x36, 0x33, 0xff, 0x79, 0x77, 0x75, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0x47, 0x46, 0x43, 0xff, 0x42, 0x40, 0x3d, 0xff, 0x41, 0x40, 0x3d, 0xff, 0x4f, 0x4e, 0x4b, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xde, 0xdb, 0xd8, 0xff, 0x95, 0x93, 0x90, 0xff, 0x3b, 0x39, 0x37, 0xff, 0x49, 0x48, 0x44, 0xff, 0x4a, 0x48, 0x45, 0xff, 0x4a, 0x48, 0x45, 0xff, 0x4b, 0x49, 0x46, 0xff, 0x4c, 0x4a, 0x47, 0xff, 0x4d, 0x4b, 0x48, 0xff, 0x4d, 0x4c, 0x48, 0xff, 0x4f, 0x4d, 0x49, 0xff, 0x4f, 0x4e, 0x4a, 0xff, 0x50, 0x4e, 0x4b, 0xff, 0x51, 0x50, 0x4c, 0xff, 0x52, 0x50, 0x4d, 0xff, 0x52, 0x51, 0x4e, 0xff, 0x54, 0x52, 0x4f, 0xff, 0x4e, 0x4c, 0x49, 0xff, 0x56, 0x55, 0x52, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0x9f, 0x9e, 0x9b, 0xff, 0x50, 0x4f, 0x4d, 0xff, 0x49, 0x48, 0x45, 0xff, 0x54, 0x53, 0x4f, 0xff, 0x59, 0x57, 0x53, 0xff, 0x57, 0x55, 0x52, 0xff, 0x4d, 0x4c, 0x49, 0xff, 0x40, 0x3f, 0x3c, 0xff, 0x53, 0x52, 0x50, 0xff, 0xa6, 0xa4, 0xa2, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xb4, 0xb2, 0xaf, 0xff, 0x77, 0x76, 0x75, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x81, 0x81, 0x80, 0xff, 0xa5, 0xa3, 0xa1, 0xff, 0xdb, 0xd9, 0xd6, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xbb, 0xb8, 0xb6, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x41, 0x40, 0x3c, 0xff, 0x44, 0x43, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x43, 0x41, 0x3d, 0xff, 0x3a, 0x39, 0x36, 0xff, 0xa8, 0xa6, 0xa3, 0xff, 0xdb, 0xd9, 0xd6, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0x93, 0x91, 0x8f, 0xff, 0x37, 0x36, 0x33, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x42, 0x3f, 0xff, 0x44, 0x43, 0x3f, 0xff, 0x3e, 0x3c, 0x39, 0xff, 0x52, 0x51, 0x4f, 0xff, 0xcd, 0xca, 0xc8, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xbe, 0xbc, 0xb9, 0xff, 0x78, 0x77, 0x74, 0xff, 0x44, 0x42, 0x40, 0xff, 0x36, 0x34, 0x32, 0xff, 0x3b, 0x39, 0x36, 0xff, 0x43, 0x42, 0x3e, 0xff, 0x44, 0x43, 0x3f, 0xff, 0x3c, 0x3b, 0x37, 0xff, 0x38, 0x37, 0x35, 0xff, 0x99, 0x97, 0x95, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0x4e, 0x4d, 0x4a, 0xff, 0x3f, 0x3d, 0x3a, 0xff, 0x3c, 0x3b, 0x37, 0xff, 0x5c, 0x5a, 0x58, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0x6e, 0x6c, 0x6a, 0xff, 0x38, 0x37, 0x33, 0xff, 0x3e, 0x3c, 0x39, 0xff, 0x52, 0x50, 0x4e, 0xff, 0xc1, 0xbe, 0xbc, 0xff, 0x54, 0x53, 0x51, 0xff, 0x3b, 0x3a, 0x36, 0xff, 0x38, 0x37, 0x34, 0xff, 0xa3, 0xa2, 0x9f, 0xff, 0xcc, 0xc9, 0xc7, 0xff, 0x49, 0x48, 0x46, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x40, 0x3e, 0x3a, 0xff, 0x47, 0x45, 0x43, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0xdd, 0xda, 0xd7, 0xff, 0x94, 0x92, 0x90, 0xff, 0x37, 0x36, 0x33, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x43, 0x42, 0x3e, 0xff, 0x43, 0x42, 0x3e, 0xff, 0x43, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x3d, 0x3c, 0x38, 0xff, 0x51, 0x50, 0x4e, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xb4, 0xb2, 0xaf, 0xff, 0x6c, 0x6a, 0x68, 0xff, 0x3e, 0x3d, 0x3b, 0xff, 0x35, 0x34, 0x31, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x43, 0x42, 0x3e, 0xff, 0x44, 0x42, 0x3e, 0xff, 0x39, 0x38, 0x35, 0xff, 0x40, 0x3f, 0x3d, 0xff, 0xac, 0xa9, 0xa7, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0x79, 0x77, 0x76, 0xff, 0xc5, 0xc5, 0xc5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x83, 0x83, 0x82, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xbb, 0xb9, 0xb6, 0xff, 0x3c, 0x3a, 0x38, 0xff, 0x40, 0x3e, 0x3b, 0xff, 0x43, 0x41, 0x3e, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x41, 0x3d, 0xff, 0x42, 0x40, 0x3d, 0xff, 0x38, 0x37, 0x34, 0xff, 0xa0, 0x9e, 0x9c, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0x9f, 0x9d, 0x9a, 0xff, 0x37, 0x36, 0x34, 0xff, 0x42, 0x40, 0x3d, 0xff, 0x43, 0x41, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x41, 0x3e, 0xff, 0x39, 0x38, 0x35, 0xff, 0x60, 0x5e, 0x5c, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xbe, 0xbb, 0xb9, 0xff, 0x8e, 0x8c, 0x89, 0xff, 0x55, 0x53, 0x51, 0xff, 0x35, 0x34, 0x31, 0xff, 0x3f, 0x3d, 0x3a, 0xff, 0x43, 0x41, 0x3e, 0xff, 0x3a, 0x38, 0x35, 0xff, 0x4c, 0x4b, 0x48, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0x46, 0x44, 0x42, 0xff, 0x3e, 0x3c, 0x39, 0xff, 0x39, 0x37, 0x35, 0xff, 0x62, 0x60, 0x5e, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0x91, 0x90, 0x8d, 0xff, 0x35, 0x34, 0x31, 0xff, 0x40, 0x3e, 0x3b, 0xff, 0x3e, 0x3d, 0x3b, 0xff, 0x98, 0x96, 0x94, 0xff, 0x3e, 0x3d, 0x3a, 0xff, 0x3a, 0x38, 0x36, 0xff, 0x48, 0x46, 0x44, 0xff, 0xc6, 0xc4, 0xc1, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0x4d, 0x4b, 0x49, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x3f, 0x3d, 0x3a, 0xff, 0x40, 0x3e, 0x3c, 0xff, 0xc5, 0xc2, 0xbf, 0xff, 0xdc, 0xd9, 0xd6, 0xff, 0xa0, 0x9e, 0x9c, 0xff, 0x38, 0x36, 0x34, 0xff, 0x42, 0x40, 0x3d, 0xff, 0x43, 0x41, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x40, 0x3d, 0xff, 0x43, 0x41, 0x3e, 0xff, 0x39, 0x38, 0x35, 0xff, 0x5e, 0x5d, 0x5b, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xb7, 0xb5, 0xb2, 0xff, 0x85, 0x83, 0x81, 0xff, 0x4c, 0x4b, 0x49, 0xff, 0x35, 0x34, 0x31, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x43, 0x41, 0x3e, 0xff, 0x36, 0x34, 0x32, 0xff, 0x5e, 0x5d, 0x5b, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0x91, 0x90, 0x8e, 0xff, 0xa0, 0xa0, 0xa0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x89, 0x89, 0x89, 0xff, 0x9d, 0x9b, 0x99, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xc1, 0xbf, 0xbc, 0xff, 0x3d, 0x3c, 0x3a, 0xff, 0x3d, 0x3c, 0x38, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x35, 0x33, 0x31, 0xff, 0x91, 0x8f, 0x8d, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xb7, 0xb5, 0xb2, 0xff, 0x3b, 0x39, 0x37, 0xff, 0x3e, 0x3c, 0x39, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x79, 0x77, 0x75, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0x7d, 0x7c, 0x7a, 0xff, 0x35, 0x33, 0x31, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x37, 0x36, 0x33, 0xff, 0xa8, 0xa6, 0xa3, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xc3, 0xc0, 0xbe, 0xff, 0x3e, 0x3d, 0x3b, 0xff, 0x3d, 0x3c, 0x38, 0xff, 0x36, 0x35, 0x31, 0xff, 0x67, 0x66, 0x63, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xb6, 0xb4, 0xb1, 0xff, 0x3b, 0x3a, 0x38, 0xff, 0x3d, 0x3c, 0x38, 0xff, 0x38, 0x37, 0x34, 0xff, 0x57, 0x56, 0x54, 0xff, 0x37, 0x36, 0x33, 0xff, 0x34, 0x32, 0x30, 0xff, 0x6d, 0x6c, 0x69, 0xff, 0xd6, 0xd4, 0xd0, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0x50, 0x4e, 0x4c, 0xff, 0x3b, 0x39, 0x36, 0xff, 0x3e, 0x3c, 0x39, 0xff, 0x3b, 0x3a, 0x38, 0xff, 0xbe, 0xbc, 0xb9, 0xff, 0xda, 0xd8, 0xd5, 0xff, 0xb8, 0xb6, 0xb3, 0xff, 0x3b, 0x3a, 0x38, 0xff, 0x3e, 0x3c, 0x39, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3b, 0xff, 0x41, 0x3f, 0x3c, 0xff, 0x33, 0x31, 0x2f, 0xff, 0x77, 0x76, 0x73, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xc4, 0xc1, 0xbf, 0xff, 0x6b, 0x69, 0x67, 0xff, 0x35, 0x33, 0x31, 0xff, 0x40, 0x3f, 0x3b, 0xff, 0x3d, 0x3c, 0x38, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0xbd, 0xbb, 0xb8, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xa3, 0xa1, 0x9f, 0xff, 0x90, 0x90, 0x90, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0x93, 0x93, 0x93, 0xff, 0x93, 0x91, 0x90, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xc6, 0xc4, 0xc1, 0xff, 0x45, 0x44, 0x42, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x31, 0x30, 0x2e, 0xff, 0x79, 0x78, 0x75, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xb6, 0xb4, 0xb1, 0xff, 0x39, 0x39, 0x36, 0xff, 0x3b, 0x3a, 0x37, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x34, 0x33, 0x31, 0xff, 0xa1, 0x9f, 0x9c, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xc5, 0xc3, 0xc0, 0xff, 0x43, 0x42, 0x40, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3e, 0x3d, 0x3a, 0xff, 0x35, 0x34, 0x31, 0xff, 0x9a, 0x99, 0x96, 0xff, 0xdb, 0xd8, 0xd5, 0xff, 0xba, 0xb8, 0xb5, 0xff, 0x39, 0x39, 0x36, 0xff, 0x3c, 0x3b, 0x38, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x6c, 0x6b, 0x69, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0x53, 0x52, 0x50, 0xff, 0x37, 0x36, 0x33, 0xff, 0x35, 0x34, 0x31, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x35, 0x34, 0x31, 0xff, 0x33, 0x32, 0x30, 0xff, 0x98, 0x96, 0x94, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0x54, 0x53, 0x50, 0xff, 0x38, 0x37, 0x34, 0xff, 0x3c, 0x3b, 0x38, 0xff, 0x39, 0x38, 0x35, 0xff, 0xb5, 0xb3, 0xb1, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xb6, 0xb4, 0xb1, 0xff, 0x3a, 0x39, 0x37, 0xff, 0x3b, 0x3a, 0x37, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3e, 0x3e, 0x3a, 0xff, 0x3f, 0x3e, 0x3a, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x34, 0x33, 0x30, 0xff, 0x9f, 0x9d, 0x9b, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xda, 0xd7, 0xd4, 0xff, 0xb6, 0xb4, 0xb1, 0xff, 0x38, 0x37, 0x35, 0xff, 0x3c, 0x3b, 0x38, 0xff, 0x3c, 0x3b, 0x38, 0xff, 0x38, 0x37, 0x34, 0xff, 0xb3, 0xb0, 0xae, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xa9, 0xa7, 0xa5, 0xff, 0x8a, 0x89, 0x89, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xa3, 0xa3, 0xa3, 0xff, 0x89, 0x87, 0x86, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0x55, 0x53, 0x51, 0xff, 0x36, 0x34, 0x32, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x35, 0x34, 0x31, 0xff, 0x58, 0x56, 0x54, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0x81, 0x7f, 0x7d, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x3d, 0x3b, 0x38, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x34, 0x32, 0x30, 0xff, 0x52, 0x51, 0x4f, 0xff, 0xc9, 0xc6, 0xc4, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xc0, 0xbe, 0xbb, 0xff, 0xb3, 0xb1, 0xae, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0xaf, 0xad, 0xaa, 0xff, 0x3a, 0x39, 0x37, 0xff, 0x3a, 0x38, 0x36, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x35, 0x34, 0x32, 0xff, 0xa8, 0xa6, 0xa3, 0xff, 0xd9, 0xd7, 0xd4, 0xff, 0xb0, 0xae, 0xab, 0xff, 0x37, 0x36, 0x34, 0xff, 0x3b, 0x3a, 0x37, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x72, 0x71, 0x6e, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0x77, 0x76, 0x73, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x39, 0x37, 0x34, 0xff, 0x38, 0x36, 0x34, 0xff, 0x3f, 0x3e, 0x3c, 0xff, 0xbe, 0xbc, 0xb9, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xcd, 0xca, 0xc8, 0xff, 0x58, 0x57, 0x55, 0xff, 0x35, 0x34, 0x31, 0xff, 0x3b, 0x3a, 0x37, 0xff, 0x36, 0x35, 0x33, 0xff, 0xad, 0xab, 0xa8, 0xff, 0xd9, 0xd6, 0xd3, 0xff, 0x83, 0x81, 0x7f, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x3d, 0x3b, 0x38, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x3d, 0x3c, 0x39, 0xff, 0x34, 0x32, 0x30, 0xff, 0x51, 0x4f, 0x4d, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xba, 0xb7, 0xb5, 0xff, 0xb7, 0xb5, 0xb2, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xd8, 0xd6, 0xd3, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0x9c, 0x9a, 0x98, 0xff, 0x33, 0x32, 0x30, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3a, 0x38, 0x35, 0xff, 0x3b, 0x3a, 0x38, 0xff, 0xbd, 0xba, 0xb8, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xa0, 0x9e, 0x9c, 0xff, 0x90, 0x90, 0x90, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xbe, 0xbe, 0xbe, 0xff, 0x7d, 0x7b, 0x7a, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0x6d, 0x6b, 0x69, 0xff, 0x30, 0x2e, 0x2c, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x39, 0x37, 0x34, 0xff, 0x39, 0x37, 0x35, 0xff, 0xb2, 0xb0, 0xad, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0x57, 0x56, 0x54, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x37, 0x35, 0x32, 0xff, 0x33, 0x32, 0x30, 0xff, 0x9d, 0x9b, 0x98, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd7, 0xd5, 0xd1, 0xff, 0x86, 0x84, 0x82, 0xff, 0x34, 0x33, 0x31, 0xff, 0x58, 0x57, 0x55, 0xff, 0x7b, 0x79, 0x77, 0xff, 0x8f, 0x8d, 0x8b, 0xff, 0x94, 0x92, 0x8f, 0xff, 0x80, 0x7e, 0x7c, 0xff, 0x47, 0x46, 0x44, 0xff, 0x32, 0x31, 0x2e, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x34, 0x32, 0x2f, 0xff, 0x49, 0x48, 0x46, 0xff, 0xc5, 0xc2, 0xbf, 0xff, 0xd8, 0xd5, 0xd2, 0xff, 0xa6, 0xa4, 0xa1, 0xff, 0x34, 0x33, 0x31, 0xff, 0x3b, 0x39, 0x36, 0xff, 0x2e, 0x2d, 0x2a, 0xff, 0x78, 0x76, 0x74, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0x9e, 0x9c, 0x99, 0xff, 0x32, 0x31, 0x2e, 0xff, 0x3b, 0x39, 0x36, 0xff, 0x3c, 0x3b, 0x37, 0xff, 0x31, 0x30, 0x2d, 0xff, 0x62, 0x61, 0x5e, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd6, 0xd3, 0xd0, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0x5d, 0x5b, 0x59, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x3b, 0x39, 0x36, 0xff, 0x34, 0x33, 0x31, 0xff, 0xa5, 0xa3, 0xa0, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0x32, 0x31, 0x2e, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x3c, 0x3a, 0x37, 0xff, 0x37, 0x35, 0x32, 0xff, 0x33, 0x32, 0x30, 0xff, 0x9c, 0x9a, 0x97, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0x71, 0x6f, 0x6d, 0xff, 0x36, 0x35, 0x33, 0xff, 0x5f, 0x5e, 0x5b, 0xff, 0x7f, 0x7d, 0x7b, 0xff, 0x91, 0x8f, 0x8d, 0xff, 0x93, 0x91, 0x8e, 0xff, 0x79, 0x77, 0x75, 0xff, 0x3f, 0x3d, 0x3b, 0xff, 0x34, 0x33, 0x30, 0xff, 0x3c, 0x3b, 0x37, 0xff, 0x31, 0x2f, 0x2c, 0xff, 0x5c, 0x5b, 0x58, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0xd6, 0xd3, 0xd0, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0x8d, 0x8b, 0x89, 0xff, 0xa3, 0xa3, 0xa3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xdf, 0xdf, 0xdf, 0xff, 0x71, 0x70, 0x6f, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0x8b, 0x8a, 0x87, 0xff, 0x2e, 0x2d, 0x2b, 0xff, 0x39, 0x38, 0x35, 0xff, 0x39, 0x39, 0x35, 0xff, 0x39, 0x39, 0x35, 0xff, 0x39, 0x39, 0x35, 0xff, 0x39, 0x39, 0x35, 0xff, 0x39, 0x39, 0x35, 0xff, 0x39, 0x39, 0x35, 0xff, 0x2e, 0x2d, 0x2a, 0xff, 0x79, 0x77, 0x75, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xc6, 0xc4, 0xc1, 0xff, 0x47, 0x46, 0x44, 0xff, 0x35, 0x34, 0x31, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x35, 0xff, 0x39, 0x38, 0x35, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x39, 0x38, 0x35, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x81, 0x80, 0x7d, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x61, 0x60, 0x5d, 0xff, 0x2d, 0x2c, 0x29, 0xff, 0x31, 0x30, 0x2d, 0xff, 0x2d, 0x2c, 0x29, 0xff, 0x2f, 0x2e, 0x2c, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x2d, 0x2c, 0x2a, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x39, 0x38, 0x35, 0xff, 0x34, 0x33, 0x30, 0xff, 0x30, 0x30, 0x2d, 0xff, 0x92, 0x90, 0x8d, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0x9c, 0x9a, 0x97, 0xff, 0x32, 0x31, 0x2f, 0xff, 0x39, 0x38, 0x35, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x7d, 0x7b, 0x79, 0xff, 0xd7, 0xd5, 0xd2, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xbe, 0xbc, 0xb9, 0xff, 0x3e, 0x3d, 0x3b, 0xff, 0x36, 0x35, 0x32, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x2e, 0x2d, 0x2b, 0xff, 0x8d, 0x8b, 0x88, 0xff, 0xd7, 0xd4, 0xd1, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xcf, 0xcd, 0xca, 0xff, 0x61, 0x60, 0x5d, 0xff, 0x30, 0x30, 0x2d, 0xff, 0x39, 0x38, 0x35, 0xff, 0x31, 0x31, 0x2e, 0xff, 0x9c, 0x9a, 0x98, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0x50, 0x4f, 0x4d, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x39, 0x38, 0x35, 0xff, 0x39, 0x38, 0x35, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x3a, 0x39, 0x36, 0xff, 0x39, 0x38, 0x35, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x2f, 0x2e, 0x2c, 0xff, 0x81, 0x7f, 0x7c, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xc8, 0xc5, 0xc3, 0xff, 0x4c, 0x4b, 0x49, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x2d, 0x2c, 0x29, 0xff, 0x2f, 0x2e, 0x2c, 0xff, 0x2f, 0x2e, 0x2c, 0xff, 0x2d, 0x2c, 0x2a, 0xff, 0x34, 0x33, 0x30, 0xff, 0x3a, 0x38, 0x35, 0xff, 0x32, 0x31, 0x2e, 0xff, 0x37, 0x36, 0x34, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0xd6, 0xd3, 0xd0, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0x74, 0x74, 0x73, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf3, 0xf3, 0xf3, 0xff, 0x79, 0x79, 0x78, 0xff, 0xb5, 0xb3, 0xb0, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xb1, 0xaf, 0xac, 0xff, 0x36, 0x34, 0x32, 0xff, 0x35, 0x34, 0x31, 0xff, 0x38, 0x37, 0x34, 0xff, 0x38, 0x36, 0x33, 0xff, 0x38, 0x36, 0x33, 0xff, 0x38, 0x36, 0x33, 0xff, 0x38, 0x36, 0x33, 0xff, 0x38, 0x37, 0x34, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x3c, 0x3b, 0x39, 0xff, 0xb2, 0xb0, 0xae, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0x5e, 0x5c, 0x5a, 0xff, 0x2b, 0x2a, 0x27, 0xff, 0x34, 0x33, 0x30, 0xff, 0x31, 0x30, 0x2d, 0xff, 0x2c, 0x2b, 0x28, 0xff, 0x2c, 0x2a, 0x28, 0xff, 0x2e, 0x2d, 0x2b, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x35, 0x34, 0x31, 0xff, 0x35, 0x34, 0x31, 0xff, 0x34, 0x33, 0x30, 0xff, 0x30, 0x2e, 0x2c, 0xff, 0x2b, 0x2a, 0x28, 0xff, 0x3f, 0x3e, 0x3c, 0xff, 0x8d, 0x8b, 0x89, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xc5, 0xc3, 0xc0, 0xff, 0x48, 0x47, 0x45, 0xff, 0x28, 0x28, 0x25, 0xff, 0x31, 0x30, 0x2d, 0xff, 0x34, 0x33, 0x30, 0xff, 0x35, 0x34, 0x31, 0xff, 0x35, 0x33, 0x31, 0xff, 0x35, 0x33, 0x30, 0xff, 0x31, 0x30, 0x2d, 0xff, 0x2b, 0x2a, 0x28, 0xff, 0x39, 0x38, 0x36, 0xff, 0x88, 0x86, 0x83, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xd6, 0xd3, 0xd0, 0xff, 0x91, 0x8f, 0x8d, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x31, 0x2f, 0x2d, 0xff, 0x27, 0x26, 0x24, 0xff, 0x81, 0x80, 0x7d, 0xff, 0xd6, 0xd4, 0xd1, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0x5e, 0x5c, 0x5a, 0xff, 0x25, 0x24, 0x22, 0xff, 0x29, 0x28, 0x25, 0xff, 0x35, 0x34, 0x32, 0xff, 0xb5, 0xb3, 0xb0, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0x64, 0x62, 0x60, 0xff, 0x28, 0x27, 0x24, 0xff, 0x31, 0x2f, 0x2d, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x92, 0x91, 0x8e, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0x71, 0x6f, 0x6d, 0xff, 0x29, 0x28, 0x25, 0xff, 0x32, 0x31, 0x2e, 0xff, 0x2f, 0x2e, 0x2b, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2e, 0x2d, 0x2b, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x35, 0x34, 0x31, 0xff, 0x35, 0x34, 0x31, 0xff, 0x34, 0x33, 0x30, 0xff, 0x30, 0x2e, 0x2c, 0xff, 0x2b, 0x2a, 0x28, 0xff, 0x3e, 0x3d, 0x3b, 0xff, 0x8c, 0x8a, 0x88, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xba, 0xb7, 0xb5, 0xff, 0x39, 0x38, 0x36, 0xff, 0x2a, 0x29, 0x26, 0xff, 0x32, 0x30, 0x2e, 0xff, 0x35, 0x33, 0x30, 0xff, 0x35, 0x34, 0x31, 0xff, 0x35, 0x34, 0x31, 0xff, 0x34, 0x33, 0x30, 0xff, 0x30, 0x2f, 0x2d, 0xff, 0x2b, 0x2b, 0x28, 0xff, 0x40, 0x3f, 0x3d, 0xff, 0x97, 0x95, 0x92, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xd5, 0xd3, 0xd0, 0xff, 0xaa, 0xa8, 0xa6, 0xff, 0x78, 0x78, 0x78, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x99, 0x99, 0x99, 0xff, 0x92, 0x90, 0x8e, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0x56, 0x54, 0x53, 0xff, 0x2e, 0x2c, 0x2a, 0xff, 0x37, 0x35, 0x32, 0xff, 0x37, 0x35, 0x32, 0xff, 0x37, 0x35, 0x32, 0xff, 0x37, 0x35, 0x32, 0xff, 0x37, 0x35, 0x32, 0xff, 0x37, 0x35, 0x32, 0xff, 0x37, 0x35, 0x32, 0xff, 0x2c, 0x2b, 0x28, 0xff, 0x5c, 0x5b, 0x59, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0xaf, 0xad, 0xaa, 0xff, 0x58, 0x56, 0x54, 0xff, 0x3e, 0x3c, 0x3b, 0xff, 0x4c, 0x4a, 0x48, 0xff, 0x74, 0x73, 0x70, 0xff, 0x86, 0x84, 0x82, 0xff, 0x5d, 0x5c, 0x5a, 0xff, 0x40, 0x3e, 0x3d, 0xff, 0x35, 0x34, 0x32, 0xff, 0x35, 0x33, 0x32, 0xff, 0x3c, 0x3b, 0x39, 0xff, 0x54, 0x52, 0x51, 0xff, 0x7f, 0x7e, 0x7b, 0xff, 0xb7, 0xb5, 0xb2, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xa6, 0xa4, 0xa1, 0xff, 0x74, 0x72, 0x70, 0xff, 0x52, 0x50, 0x4e, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x35, 0x34, 0x32, 0xff, 0x35, 0x33, 0x31, 0xff, 0x3a, 0x39, 0x37, 0xff, 0x4f, 0x4d, 0x4c, 0xff, 0x76, 0x74, 0x72, 0xff, 0xaf, 0xad, 0xaa, 0xff, 0xd1, 0xce, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd4, 0xd2, 0xce, 0xff, 0xa0, 0x9e, 0x9b, 0xff, 0x55, 0x53, 0x52, 0xff, 0x54, 0x52, 0x50, 0xff, 0x54, 0x53, 0x51, 0xff, 0x9d, 0x9b, 0x99, 0xff, 0xd4, 0xd2, 0xcf, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd3, 0xd1, 0xcd, 0xff, 0xa7, 0xa4, 0xa2, 0xff, 0x7b, 0x79, 0x77, 0xff, 0x7b, 0x79, 0x77, 0xff, 0x90, 0x8e, 0x8b, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0x87, 0x85, 0x83, 0xff, 0x52, 0x50, 0x4e, 0xff, 0x54, 0x52, 0x51, 0xff, 0x57, 0x55, 0x53, 0xff, 0xa4, 0xa2, 0x9f, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xbd, 0xbb, 0xb8, 0xff, 0x6e, 0x6d, 0x6a, 0xff, 0x4d, 0x4c, 0x4a, 0xff, 0x5b, 0x59, 0x57, 0xff, 0x83, 0x80, 0x7e, 0xff, 0x8a, 0x88, 0x86, 0xff, 0x5d, 0x5b, 0x5a, 0xff, 0x40, 0x3e, 0x3d, 0xff, 0x35, 0x34, 0x32, 0xff, 0x35, 0x33, 0x31, 0xff, 0x3c, 0x3a, 0x39, 0xff, 0x54, 0x52, 0x50, 0xff, 0x7f, 0x7d, 0x7a, 0xff, 0xb6, 0xb4, 0xb1, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0x9e, 0x9c, 0x99, 0xff, 0x6d, 0x6c, 0x6a, 0xff, 0x4e, 0x4c, 0x4a, 0xff, 0x3b, 0x39, 0x37, 0xff, 0x35, 0x33, 0x31, 0xff, 0x35, 0x34, 0x32, 0xff, 0x3d, 0x3b, 0x39, 0xff, 0x54, 0x52, 0x50, 0xff, 0x7e, 0x7c, 0x7a, 0xff, 0xb7, 0xb5, 0xb2, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0x70, 0x6f, 0x6e, 0xff, 0xbd, 0xbd, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0x75, 0x74, 0x73, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0x8d, 0x8b, 0x89, 0xff, 0x2b, 0x2a, 0x28, 0xff, 0x34, 0x33, 0x30, 0xff, 0x35, 0x33, 0x31, 0xff, 0x34, 0x33, 0x31, 0xff, 0x34, 0x33, 0x31, 0xff, 0x34, 0x33, 0x31, 0xff, 0x34, 0x33, 0x31, 0xff, 0x35, 0x33, 0x31, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x6b, 0x6a, 0x67, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0xc1, 0xbe, 0xbc, 0xff, 0xc6, 0xc3, 0xc0, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xc1, 0xbf, 0xbc, 0xff, 0xb9, 0xb7, 0xb4, 0xff, 0xb8, 0xb6, 0xb3, 0xff, 0xbf, 0xbd, 0xba, 0xff, 0xc9, 0xc7, 0xc4, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0xc0, 0xbd, 0xba, 0xff, 0xb9, 0xb6, 0xb4, 0xff, 0xb8, 0xb6, 0xb3, 0xff, 0xbe, 0xbc, 0xb9, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0xc9, 0xc6, 0xc4, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc4, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xd5, 0xd2, 0xcf, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc7, 0xc4, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0xc7, 0xc4, 0xc1, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0xd3, 0xd1, 0xce, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xc1, 0xbf, 0xbc, 0xff, 0xb9, 0xb7, 0xb4, 0xff, 0xb8, 0xb6, 0xb3, 0xff, 0xbf, 0xbd, 0xba, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd4, 0xd1, 0xce, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xc7, 0xc4, 0xc1, 0xff, 0xbf, 0xbc, 0xb9, 0xff, 0xb8, 0xb6, 0xb3, 0xff, 0xb8, 0xb6, 0xb4, 0xff, 0xc0, 0xbd, 0xba, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0x7e, 0x7d, 0x7b, 0xff, 0x92, 0x92, 0x92, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0x74, 0x74, 0x74, 0xff, 0xb1, 0xaf, 0xad, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xc0, 0xbd, 0xbb, 0xff, 0x47, 0x46, 0x44, 0xff, 0x2c, 0x2b, 0x28, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x33, 0x31, 0x2f, 0xff, 0x33, 0x31, 0x2f, 0xff, 0x33, 0x31, 0x2f, 0xff, 0x33, 0x31, 0x2f, 0xff, 0x33, 0x31, 0x2f, 0xff, 0x33, 0x32, 0x2f, 0xff, 0x31, 0x30, 0x2d, 0xff, 0x29, 0x28, 0x26, 0xff, 0x5d, 0x5c, 0x5a, 0xff, 0xb4, 0xb2, 0xaf, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd1, 0xcd, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xbe, 0xbb, 0xb9, 0xff, 0x83, 0x82, 0x81, 0xff, 0x9f, 0x9d, 0x9b, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd1, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xd0, 0xcd, 0xff, 0xbc, 0xba, 0xb7, 0xff, 0x79, 0x77, 0x76, 0xff, 0x8a, 0x8a, 0x89, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa7, 0xa7, 0xa7, 0xff, 0x81, 0x7f, 0x7d, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0x8f, 0x8d, 0x8b, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x30, 0x2e, 0x2c, 0xff, 0x32, 0x30, 0x2d, 0xff, 0x32, 0x30, 0x2d, 0xff, 0x32, 0x30, 0x2d, 0xff, 0x32, 0x30, 0x2d, 0xff, 0x32, 0x30, 0x2d, 0xff, 0x32, 0x30, 0x2d, 0xff, 0x32, 0x30, 0x2e, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x28, 0x26, 0x24, 0xff, 0x3c, 0x3b, 0x39, 0xff, 0x7c, 0x7b, 0x78, 0xff, 0xb4, 0xb1, 0xaf, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xbd, 0xba, 0xb7, 0xff, 0xa2, 0xa0, 0x9d, 0xff, 0xc4, 0xc1, 0xbe, 0xff, 0xd0, 0xce, 0xcb, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xbe, 0xbb, 0xb8, 0xff, 0x95, 0x93, 0x91, 0xff, 0x6e, 0x6d, 0x6b, 0xff, 0x9b, 0x99, 0x97, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xaa, 0xa7, 0xa5, 0xff, 0xb6, 0xb4, 0xb1, 0xff, 0xc5, 0xc3, 0xc0, 0xff, 0xc6, 0xc3, 0xc0, 0xff, 0xc6, 0xc3, 0xc0, 0xff, 0xc6, 0xc3, 0xc0, 0xff, 0xbf, 0xbc, 0xba, 0xff, 0x9b, 0x99, 0x96, 0xff, 0xaa, 0xa8, 0xa5, 0xff, 0xcc, 0xc9, 0xc7, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xc7, 0xc4, 0xc1, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xd3, 0xd0, 0xcd, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xc9, 0xc7, 0xc4, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd2, 0xd0, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xb9, 0xb7, 0xb4, 0xff, 0x8e, 0x8c, 0x8a, 0xff, 0x6d, 0x6c, 0x6b, 0xff, 0x8d, 0x8d, 0x8d, 0xff, 0x77, 0x76, 0x76, 0xff, 0x79, 0x78, 0x76, 0xff, 0xa4, 0xa2, 0xa0, 0xff, 0xc2, 0xc0, 0xbd, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xd2, 0xcf, 0xcc, 0xff, 0xcb, 0xc8, 0xc6, 0xff, 0xba, 0xb7, 0xb5, 0xff, 0x8e, 0x8c, 0x8a, 0xff, 0x6d, 0x6c, 0x6b, 0xff, 0xa2, 0xa2, 0xa2, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe6, 0xe6, 0xe6, 0xff, 0x6e, 0x6e, 0x6d, 0xff, 0xb4, 0xb1, 0xaf, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xc7, 0xc5, 0xc2, 0xff, 0x5f, 0x5e, 0x5c, 0xff, 0x25, 0x24, 0x22, 0xff, 0x2f, 0x2e, 0x2b, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x2f, 0x2f, 0x2c, 0xff, 0x2f, 0x2f, 0x2c, 0xff, 0x2f, 0x2f, 0x2c, 0xff, 0x2f, 0x2f, 0x2c, 0xff, 0x2f, 0x2f, 0x2c, 0xff, 0x30, 0x2f, 0x2c, 0xff, 0x2f, 0x2e, 0x2c, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x26, 0x25, 0x23, 0xff, 0x35, 0x34, 0x32, 0xff, 0x59, 0x58, 0x56, 0xff, 0x7a, 0x79, 0x76, 0xff, 0x91, 0x8f, 0x8c, 0xff, 0x9f, 0x9d, 0x9a, 0xff, 0xa5, 0xa2, 0xa0, 0xff, 0xa2, 0xa0, 0x9d, 0xff, 0x99, 0x97, 0x94, 0xff, 0x89, 0x87, 0x85, 0xff, 0x74, 0x73, 0x71, 0xff, 0x5a, 0x59, 0x57, 0xff, 0x3b, 0x3a, 0x38, 0xff, 0x2f, 0x2e, 0x2c, 0xff, 0xa1, 0x9e, 0x9c, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xc1, 0xbe, 0xbc, 0xff, 0x7a, 0x79, 0x77, 0xff, 0x84, 0x83, 0x81, 0xff, 0x8f, 0x8d, 0x8b, 0xff, 0x97, 0x95, 0x93, 0xff, 0x98, 0x96, 0x93, 0xff, 0x91, 0x8f, 0x8d, 0xff, 0x87, 0x85, 0x83, 0xff, 0x77, 0x76, 0x74, 0xff, 0x6f, 0x6e, 0x6d, 0xff, 0x8f, 0x8f, 0x8e, 0xff, 0xb3, 0xb3, 0xb3, 0xff, 0x7c, 0x7c, 0x7b, 0xff, 0x72, 0x72, 0x71, 0xff, 0x81, 0x80, 0x7f, 0xff, 0x83, 0x82, 0x80, 0xff, 0x83, 0x81, 0x80, 0xff, 0x83, 0x82, 0x80, 0xff, 0x81, 0x80, 0x7f, 0xff, 0x72, 0x71, 0x70, 0xff, 0x74, 0x73, 0x73, 0xff, 0x71, 0x71, 0x70, 0xff, 0x6e, 0x6d, 0x6c, 0xff, 0x6f, 0x6e, 0x6d, 0xff, 0x6f, 0x6e, 0x6d, 0xff, 0x6e, 0x6e, 0x6c, 0xff, 0x6e, 0x6e, 0x6c, 0xff, 0x80, 0x80, 0x80, 0xff, 0x72, 0x72, 0x71, 0xff, 0x76, 0x75, 0x74, 0xff, 0x82, 0x81, 0x7f, 0xff, 0x83, 0x82, 0x80, 0xff, 0x83, 0x81, 0x80, 0xff, 0x83, 0x82, 0x80, 0xff, 0x81, 0x80, 0x7f, 0xff, 0x74, 0x73, 0x72, 0xff, 0x6f, 0x6e, 0x6d, 0xff, 0x80, 0x7e, 0x7c, 0xff, 0x85, 0x85, 0x83, 0xff, 0x80, 0x80, 0x7e, 0xff, 0x73, 0x72, 0x71, 0xff, 0x72, 0x71, 0x70, 0xff, 0x82, 0x81, 0x7f, 0xff, 0x8f, 0x8d, 0x8b, 0xff, 0x97, 0x95, 0x93, 0xff, 0x98, 0x96, 0x94, 0xff, 0x90, 0x8e, 0x8c, 0xff, 0x84, 0x84, 0x82, 0xff, 0x76, 0x74, 0x73, 0xff, 0x6f, 0x6f, 0x6e, 0xff, 0x96, 0x95, 0x95, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xfd, 0xfd, 0xfd, 0xff, 0xef, 0xef, 0xef, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0x80, 0x80, 0x80, 0xff, 0x6d, 0x6d, 0x6c, 0xff, 0x79, 0x78, 0x77, 0xff, 0x87, 0x85, 0x83, 0xff, 0x90, 0x8e, 0x8c, 0xff, 0x98, 0x96, 0x93, 0xff, 0x98, 0x95, 0x93, 0xff, 0x8f, 0x8d, 0x8b, 0xff, 0x85, 0x83, 0x81, 0xff, 0x75, 0x74, 0x73, 0xff, 0x6f, 0x6e, 0x6e, 0xff, 0x95, 0x95, 0x95, 0xff, 0xd8, 0xd8, 0xd8, 0xff, 0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0x79, 0x78, 0x77, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xd0, 0xcd, 0xca, 0xff, 0xb5, 0xb3, 0xb0, 0xff, 0x45, 0x44, 0x42, 0xff, 0x25, 0x24, 0x22, 0xff, 0x2e, 0x2d, 0x2a, 0xff, 0x2e, 0x2d, 0x2a, 0xff, 0x2e, 0x2c, 0x2a, 0xff, 0x2e, 0x2c, 0x2a, 0xff, 0x2e, 0x2c, 0x2a, 0xff, 0x2e, 0x2c, 0x2a, 0xff, 0x2e, 0x2c, 0x2a, 0xff, 0x2e, 0x2d, 0x2a, 0xff, 0x2e, 0x2d, 0x2b, 0xff, 0x2d, 0x2c, 0x2a, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x26, 0x25, 0x23, 0xff, 0x24, 0x23, 0x21, 0xff, 0x28, 0x27, 0x25, 0xff, 0x2b, 0x2a, 0x28, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2b, 0x2a, 0x29, 0xff, 0x29, 0x28, 0x27, 0xff, 0x26, 0x25, 0x23, 0xff, 0x23, 0x22, 0x20, 0xff, 0x26, 0x25, 0x23, 0xff, 0x2a, 0x29, 0x27, 0xff, 0x24, 0x23, 0x21, 0xff, 0x83, 0x82, 0x7f, 0xff, 0xd1, 0xce, 0xcb, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0xc2, 0xbf, 0xbc, 0xff, 0x5d, 0x5c, 0x5b, 0xff, 0x94, 0x94, 0x94, 0xff, 0x9d, 0x9c, 0x9c, 0xff, 0x94, 0x94, 0x93, 0xff, 0x93, 0x93, 0x93, 0xff, 0x9a, 0x9a, 0x9a, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xf4, 0xf4, 0xff, 0xcd, 0xcd, 0xcd, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xb1, 0xb1, 0xb1, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xb3, 0xb3, 0xb3, 0xff, 0xce, 0xce, 0xce, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xe3, 0xe3, 0xe3, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xfa, 0xfa, 0xfa, 0xff, 0xef, 0xef, 0xef, 0xff, 0xc6, 0xc6, 0xc6, 0xff, 0xb1, 0xb1, 0xb1, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xb0, 0xb0, 0xb0, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0xcc, 0xcc, 0xcc, 0xff, 0xd7, 0xd7, 0xd7, 0xff, 0xb8, 0xb8, 0xb8, 0xff, 0xab, 0xab, 0xab, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0xd0, 0xd0, 0xd0, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0xaf, 0xaf, 0xaf, 0xff, 0x9c, 0x9c, 0x9c, 0xff, 0x94, 0x94, 0x93, 0xff, 0x94, 0x94, 0x94, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0xab, 0xab, 0xaa, 0xff, 0xcb, 0xcb, 0xcb, 0xff, 0xef, 0xef, 0xef, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xe4, 0xe4, 0xe4, 0xff, 0xc2, 0xc2, 0xc2, 0xff, 0xa8, 0xa9, 0xa8, 0xff, 0x9a, 0x9a, 0x9a, 0xff, 0x93, 0x93, 0x93, 0xff, 0x94, 0x94, 0x93, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0xaa, 0xaa, 0xaa, 0xff, 0xca, 0xca, 0xca, 0xff, 0xed, 0xed, 0xed, 0xff, 0xfd, 0xfd, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0x79, 0x79, 0x78, 0xff, 0x9a, 0x98, 0x96, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0xa8, 0xa5, 0xa3, 0xff, 0x3e, 0x3c, 0x3b, 0xff, 0x23, 0x22, 0x20, 0xff, 0x2c, 0x2a, 0x28, 0xff, 0x2d, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2c, 0x2b, 0x29, 0xff, 0x2d, 0x2b, 0x29, 0xff, 0x2d, 0x2b, 0x29, 0xff, 0x2d, 0x2b, 0x29, 0xff, 0x2c, 0x2a, 0x28, 0xff, 0x2b, 0x2a, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2c, 0x2a, 0x28, 0xff, 0x2c, 0x2b, 0x28, 0xff, 0x2d, 0x2b, 0x29, 0xff, 0x2d, 0x2b, 0x29, 0xff, 0x2d, 0x2b, 0x29, 0xff, 0x22, 0x21, 0x1f, 0xff, 0x68, 0x66, 0x64, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0xc9, 0xc7, 0xc4, 0xff, 0x77, 0x76, 0x75, 0xff, 0xc9, 0xc9, 0xc9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xeb, 0xeb, 0xeb, 0xff, 0xe5, 0xe5, 0xe5, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd1, 0xd1, 0xd1, 0xff, 0x6a, 0x69, 0x69, 0xff, 0xb1, 0xaf, 0xad, 0xff, 0xce, 0xcc, 0xc9, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0xa7, 0xa5, 0xa3, 0xff, 0x44, 0x43, 0x41, 0xff, 0x21, 0x20, 0x1e, 0xff, 0x29, 0x28, 0x25, 0xff, 0x2b, 0x2a, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x29, 0x27, 0xff, 0x2b, 0x2a, 0x27, 0xff, 0x24, 0x23, 0x21, 0xff, 0x4c, 0x4b, 0x49, 0xff, 0xc4, 0xc1, 0xbe, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xcf, 0xcc, 0xc9, 0xff, 0x84, 0x83, 0x81, 0xff, 0xa9, 0xa9, 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb3, 0xb3, 0xb3, 0xff, 0x6d, 0x6b, 0x6a, 0xff, 0xba, 0xb8, 0xb5, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xcd, 0xcb, 0xc8, 0xff, 0xb4, 0xb2, 0xaf, 0xff, 0x5f, 0x5d, 0x5b, 0xff, 0x24, 0x24, 0x22, 0xff, 0x22, 0x21, 0x1f, 0xff, 0x28, 0x27, 0x25, 0xff, 0x29, 0x28, 0x26, 0xff, 0x29, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x28, 0x28, 0x25, 0xff, 0x29, 0x28, 0x25, 0xff, 0x25, 0x24, 0x22, 0xff, 0x34, 0x33, 0x31, 0xff, 0xb8, 0xb6, 0xb3, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xce, 0xcb, 0xc8, 0xff, 0x97, 0x95, 0x93, 0xff, 0x90, 0x90, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0x6f, 0x6e, 0x6c, 0xff, 0xb9, 0xb7, 0xb4, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xcc, 0xca, 0xc7, 0xff, 0xc4, 0xc1, 0xbe, 0xff, 0x8d, 0x8b, 0x89, 0xff, 0x43, 0x42, 0x40, 0xff, 0x21, 0x20, 0x1f, 0xff, 0x20, 0x1f, 0x1d, 0xff, 0x25, 0x23, 0x21, 0xff, 0x27, 0x25, 0x23, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x27, 0x26, 0x24, 0xff, 0x24, 0x23, 0x21, 0xff, 0x24, 0x23, 0x22, 0xff, 0x9f, 0x9d, 0x9b, 0xff, 0xcd, 0xca, 0xc7, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xaf, 0xad, 0xaa, 0xff, 0x78, 0x77, 0x77, 0xff, 0xf5, 0xf5, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xf9, 0xf9, 0xff, 0xa4, 0xa4, 0xa4, 0xff, 0x6c, 0x6a, 0x69, 0xff, 0xaf, 0xac, 0xaa, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xbb, 0xb9, 0xb6, 0xff, 0x89, 0x87, 0x85, 0xff, 0x4f, 0x4e, 0x4c, 0xff, 0x2a, 0x2a, 0x28, 0xff, 0x1f, 0x1e, 0x1c, 0xff, 0x1d, 0x1c, 0x1a, 0xff, 0x21, 0x1f, 0x1e, 0xff, 0x23, 0x21, 0x20, 0xff, 0x24, 0x22, 0x20, 0xff, 0x24, 0x23, 0x21, 0xff, 0x24, 0x23, 0x21, 0xff, 0x25, 0x23, 0x21, 0xff, 0x24, 0x23, 0x21, 0xff, 0x24, 0x23, 0x21, 0xff, 0x23, 0x22, 0x20, 0xff, 0x23, 0x22, 0x20, 0xff, 0x21, 0x20, 0x1e, 0xff, 0x1e, 0x1d, 0x1b, 0xff, 0x1d, 0x1d, 0x1b, 0xff, 0x25, 0x24, 0x23, 0xff, 0x45, 0x44, 0x42, 0xff, 0xa6, 0xa4, 0xa1, 0xff, 0xcc, 0xc9, 0xc6, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xb9, 0xb7, 0xb4, 0xff, 0x70, 0x6f, 0x6f, 0xff, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xfb, 0xfb, 0xff, 0xb4, 0xb4, 0xb4, 0xff, 0x69, 0x69, 0x68, 0xff, 0x97, 0x96, 0x93, 0xff, 0xc6, 0xc3, 0xc0, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xc9, 0xc7, 0xc4, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xcb, 0xc9, 0xc6, 0xff, 0xc2, 0xc0, 0xbd, 0xff, 0xa8, 0xa6, 0xa3, 0xff, 0x81, 0x7f, 0x7d, 0xff, 0x5f, 0x5d, 0x5b, 0xff, 0x43, 0x42, 0x41, 0xff, 0x30, 0x2f, 0x2d, 0xff, 0x28, 0x27, 0x25, 0xff, 0x25, 0x24, 0x23, 0xff, 0x24, 0x23, 0x21, 0xff, 0x24, 0x22, 0x21, 0xff, 0x24, 0x23, 0x21, 0xff, 0x25, 0x24, 0x23, 0xff, 0x28, 0x27, 0x25, 0xff, 0x30, 0x2f, 0x2d, 0xff, 0x41, 0x40, 0x3e, 0xff, 0x59, 0x58, 0x56, 0xff, 0x77, 0x75, 0x73, 0xff, 0x9d, 0x9a, 0x98, 0xff, 0xbc, 0xba, 0xb7, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0xc9, 0xc7, 0xc4, 0xff, 0xcb, 0xc9, 0xc5, 0xff, 0xa8, 0xa6, 0xa3, 0xff, 0x7a, 0x7a, 0x79, 0xff, 0xf6, 0xf6, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xd2, 0xd2, 0xff, 0x79, 0x79, 0x78, 0xff, 0x76, 0x74, 0x72, 0xff, 0xad, 0xab, 0xa8, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xc6, 0xc4, 0xc1, 0xff, 0xbd, 0xbb, 0xb8, 0xff, 0xb5, 0xb3, 0xb0, 0xff, 0xa9, 0xa7, 0xa4, 0xff, 0x9e, 0x9b, 0x99, 0xff, 0x97, 0x95, 0x93, 0xff, 0x96, 0x94, 0x91, 0xff, 0x98, 0x96, 0x94, 0xff, 0x9f, 0x9d, 0x9a, 0xff, 0xaa, 0xa8, 0xa5, 0xff, 0xb5, 0xb3, 0xb0, 0xff, 0xbc, 0xba, 0xb7, 0xff, 0xc5, 0xc2, 0xbf, 0xff, 0xcb, 0xc8, 0xc5, 0xff, 0xca, 0xc8, 0xc5, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc8, 0xc6, 0xc3, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xc3, 0xc1, 0xbe, 0xff, 0x75, 0x74, 0x73, 0xff, 0xab, 0xab, 0xab, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xab, 0xab, 0xab, 0xff, 0x6f, 0x6d, 0x6c, 0xff, 0x7b, 0x7a, 0x78, 0xff, 0xa9, 0xa6, 0xa4, 0xff, 0xc3, 0xc0, 0xbd, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xca, 0xc6, 0xc3, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xca, 0xc7, 0xc4, 0xff, 0xc6, 0xc3, 0xc0, 0xff, 0xb1, 0xaf, 0xac, 0xff, 0x78, 0x76, 0x74, 0xff, 0x83, 0x83, 0x83, 0xff, 0xf1, 0xf1, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xa8, 0xa8, 0xa8, 0xff, 0x73, 0x73, 0x73, 0xff, 0x70, 0x6e, 0x6d, 0xff, 0x8b, 0x89, 0x87, 0xff, 0xab, 0xa9, 0xa6, 0xff, 0xbd, 0xba, 0xb7, 0xff, 0xc5, 0xc2, 0xbf, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc5, 0xc2, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc8, 0xc5, 0xc2, 0xff, 0xc9, 0xc5, 0xc2, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc9, 0xc6, 0xc3, 0xff, 0xc6, 0xc3, 0xc0, 0xff, 0xbf, 0xbc, 0xb9, 0xff, 0xb2, 0xb0, 0xad, 0xff, 0x95, 0x93, 0x90, 0xff, 0x77, 0x76, 0x75, 0xff, 0x6c, 0x6c, 0x6b, 0xff, 0x9f, 0x9f, 0x9f, 0xff, 0xef, 0xef, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0xf2, 0xf2, 0xff, 0xc7, 0xc7, 0xc7, 0xff, 0x98, 0x98, 0x97, 0xff, 0x76, 0x76, 0x75, 0xff, 0x6d, 0x6c, 0x6b, 0xff, 0x78, 0x76, 0x75, 0xff, 0x83, 0x81, 0x7f, 0xff, 0x8f, 0x8d, 0x8a, 0xff, 0x9a, 0x98, 0x96, 0xff, 0xa3, 0xa1, 0x9e, 0xff, 0xa8, 0xa6, 0xa3, 0xff, 0xa9, 0xa7, 0xa4, 0xff, 0xa8, 0xa5, 0xa3, 0xff, 0xa3, 0xa0, 0x9e, 0xff, 0x9a, 0x98, 0x95, 0xff, 0x8f, 0x8d, 0x8b, 0xff, 0x84, 0x82, 0x80, 0xff, 0x7b, 0x79, 0x78, 0xff, 0x6f, 0x6e, 0x6c, 0xff, 0x71, 0x70, 0x70, 0xff, 0x8c, 0x8b, 0x8b, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0xe8, 0xe8, 0xe8, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xff, 0xf3, 0xf3, 0xf3, 0xff, 0xdb, 0xdb, 0xdb, 0xff, 0xb7, 0xb7, 0xb7, 0xff, 0x9b, 0x9b, 0x9b, 0xff, 0x89, 0x89, 0x88, 0xff, 0x7b, 0x7b, 0x7a, 0xff, 0x72, 0x71, 0x70, 0xff, 0x6c, 0x6b, 0x6b, 0xff, 0x6a, 0x6a, 0x69, 0xff, 0x6c, 0x6c, 0x6b, 0xff, 0x72, 0x72, 0x71, 0xff, 0x7b, 0x7b, 0x7b, 0xff, 0x89, 0x89, 0x89, 0xff, 0x9a, 0x9a, 0x99, 0xff, 0xb2, 0xb2, 0xb2, 0xff, 0xd4, 0xd4, 0xd4, 0xff, 0xee, 0xee, 0xee, 0xff, 0xfc, 0xfc, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }, ColorDepth.ColorDepth32);
+
+ Console.WriteLine("Press any key to continue!");
+ Console.ReadKey(true);
+ // Create new instance of FullScreenCanvas, using default graphics mode
+ canvas = FullScreenCanvas.GetFullScreenCanvas(); // canvas = GetFullScreenCanvas(start);
+
+ /* Clear the Screen with the color 'Blue' */
+ canvas.Clear(Color.Blue);
+ }
+
+ protected override void Run()
+ {
+ try
+ {
+ mDebugger.Send("Run");
+
+ /* A red Point */
+ canvas.DrawPoint(Color.Red, 69, 69);
+
+ /* A GreenYellow horizontal line */
+ canvas.DrawLine(Color.GreenYellow, 250, 100, 400, 100);
+
+ /* An IndianRed vertical line */
+ canvas.DrawLine(Color.IndianRed, 350, 150, 350, 250);
+
+ /* A MintCream diagonal line */
+ canvas.DrawLine(Color.MintCream, 250, 150, 400, 250);
+
+ /* A PaleVioletRed rectangle */
+ canvas.DrawRectangle(Color.PaleVioletRed, 350, 350, 80, 60);
+
+ canvas.DrawCircle(Color.Chartreuse, 69, 69, 10);
+
+ canvas.DrawEllipse(Color.LightSalmon, 400, 300, 100, 150);
+
+ canvas.DrawPolygon(Color.MediumPurple, new Point(200, 250), new Point(250, 300), new Point(220, 350), new Point(210, 275));
+
+ canvas.DrawFilledEllipse(Color.LightSalmon, 400, 300, 100, 150);
+ canvas.DrawImage(bitmap, 20, 20);
+
+ /* Cosmos graphics is double-buffered so you need to swap buffers every time user needs to see a picture */
+ canvas.Display();
+
+ /*
+ * It will be really beautiful to do here:
+ * canvas.DrawString(pen, "Please press any key to continue the Demo...");
+ */
+ Console.ReadKey();
+
+ // Throws a NotImplementedException in VMWare,
+ // due to being unable to escape from the clutches of the SVGA II driver...
+ //
+ // Probably best to leave this commented out until it can work in VMWare as well
+ canvas.Clear();
+ canvas.Disable();
+ Console.Clear();
+ Console.WriteLine("If it worked, you've successfully returned back to standard VGA Text Mode!");
+ Console.WriteLine("Let's try returning back to CGS mode... Press any key!");
+ Console.ReadKey(true);
+
+
+ /* Let's try to change mode...*/
+
+ canvas.Mode = new Mode(1024, 768, ColorDepth.ColorDepth32);
+
+ //If the background is not redrawn, it gets corrupted
+ canvas.Clear(Color.Blue);
+
+ /* A LimeGreen rectangle */
+ canvas.DrawRectangle(Color.LimeGreen, 450, 450, 80, 60);
+
+ /* A filled rectange */
+ canvas.DrawFilledRectangle(Color.Chocolate, 200, 150, 400, 300);
+
+ canvas.DrawFilledRectangle(Color.Aquamarine, 0, 0, 1024, 150);
+
+ canvas.DrawFilledCircle(Color.Blue, 69, 69, 10);
+ /*
+ * It will be really beautiful to do here:
+ * canvas.DrawString(pen, "Please press any key to end the Demo...");
+ */
+ Console.ReadKey();
+
+ Sys.Power.Shutdown();
+ }
+ catch (Exception e)
+ {
+ debugger.Send($"Got fatal exception {e.Message}");
+ Console.WriteLine($"Got fatal exception {e.Message}");
+ }
+ }
+ }
+}
diff --git a/Demos/Guess/GuessKernel.csproj b/Examples/Guess Number Game/GuessKernel.csproj
similarity index 96%
rename from Demos/Guess/GuessKernel.csproj
rename to Examples/Guess Number Game/GuessKernel.csproj
index bbaa250fc1..829d94e22f 100644
--- a/Demos/Guess/GuessKernel.csproj
+++ b/Examples/Guess Number Game/GuessKernel.csproj
@@ -1,7 +1,7 @@
- netcoreapp2.0
+ net6.0
cosmos
@@ -56,6 +56,7 @@
+
diff --git a/Examples/Guess Number Game/Kernel.cs b/Examples/Guess Number Game/Kernel.cs
new file mode 100644
index 0000000000..589ed7f448
--- /dev/null
+++ b/Examples/Guess Number Game/Kernel.cs
@@ -0,0 +1,66 @@
+using System;
+
+using Sys = Cosmos.System;
+
+namespace Guess
+{
+ public class GuessOS : Sys.Kernel
+ {
+ private Random _Random;
+ private int _Count;
+ private int _Number;
+
+ protected override void BeforeRun()
+ {
+ _Random = new Random(); // random works
+
+ _Count = 0;
+ _Number = _Random.Next(1, 101);
+
+ Console.Clear();
+
+ Console.WriteLine("Guess Demo");
+ Console.WriteLine("----------");
+ Console.WriteLine();
+ Console.WriteLine("Please guess a number from 1 to 100.");
+ Console.WriteLine();
+ }
+
+ protected override void Run()
+ {
+ _Count++;
+
+ Console.Write($"Guess #{_Count}: ");
+
+ var xGuess = Int32.Parse(Console.ReadLine());
+ mDebugger.Send($"Guess#{_Count}: {xGuess}");
+
+ if (xGuess < _Number)
+ {
+ Console.WriteLine("Too low.");
+ }
+ else if (xGuess > _Number)
+ {
+ Console.WriteLine("Too high.");
+ }
+ else
+ {
+ Console.WriteLine("You guessed it!");
+ Console.WriteLine("Press s to stop or any other key to play again. Thanks for playing!");
+
+ if (Console.ReadKey(true).Key == ConsoleKey.S)
+ {
+ Stop();
+ }
+
+ _Number = _Random.Next(1, 100);
+ _Count = 0;
+ }
+ }
+
+ protected override void AfterRun()
+ {
+ Sys.Power.Shutdown();
+ }
+ }
+}
diff --git a/Demos/ZMachine/ZKernel/Kernel.cs b/Examples/ZMachine Emulator/ZKernel/Kernel.cs
similarity index 100%
rename from Demos/ZMachine/ZKernel/Kernel.cs
rename to Examples/ZMachine Emulator/ZKernel/Kernel.cs
diff --git a/Demos/ZMachine/ZKernel/ZKernel.csproj b/Examples/ZMachine Emulator/ZKernel/ZKernel.csproj
similarity index 86%
rename from Demos/ZMachine/ZKernel/ZKernel.csproj
rename to Examples/ZMachine Emulator/ZKernel/ZKernel.csproj
index dd30b94b37..429c59d0fc 100644
--- a/Demos/ZMachine/ZKernel/ZKernel.csproj
+++ b/Examples/ZMachine Emulator/ZKernel/ZKernel.csproj
@@ -1,9 +1,12 @@
- netcoreapp2.0
+ net6.0
cosmos
- VMware
+
+
+
+ Bochs
ELF
True
MethodFooters
@@ -19,11 +22,11 @@
<_DebugMode>Source
<_IgnoreDebugStubAttribute>False
<_PxeInterface>192.168.211.1
- Use VMware Player or Workstation to deploy and debug.
- VMware
+ Use Bochs emulator to deploy and debug.
+ Bochs
Pipe: Cosmos\Serial
- False
- False
+ True
+ True
True
MethodFooters
Use VMware Player or Workstation to deploy and debug.
@@ -34,8 +37,8 @@
False
Pipe: Cosmos\Serial
192.168.211.1
- True
- True
+ False
+ False
True
MethodFooters
Use Bochs emulator to deploy and debug.
@@ -70,6 +73,7 @@
+
diff --git a/Demos/ZMachine/ZKernel/ZORK1.DAT b/Examples/ZMachine Emulator/ZKernel/ZORK1.DAT
similarity index 100%
rename from Demos/ZMachine/ZKernel/ZORK1.DAT
rename to Examples/ZMachine Emulator/ZKernel/ZORK1.DAT
diff --git a/Demos/ZMachine/ZKernel/ZORK2.DAT b/Examples/ZMachine Emulator/ZKernel/ZORK2.DAT
similarity index 100%
rename from Demos/ZMachine/ZKernel/ZORK2.DAT
rename to Examples/ZMachine Emulator/ZKernel/ZORK2.DAT
diff --git a/Demos/ZMachine/ZKernel/ZORK3.DAT b/Examples/ZMachine Emulator/ZKernel/ZORK3.DAT
similarity index 100%
rename from Demos/ZMachine/ZKernel/ZORK3.DAT
rename to Examples/ZMachine Emulator/ZKernel/ZORK3.DAT
diff --git a/Demos/ZMachine/ZLibrary/Constants/CallType.cs b/Examples/ZMachine Emulator/ZLibrary/Constants/CallType.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Constants/CallType.cs
rename to Examples/ZMachine Emulator/ZLibrary/Constants/CallType.cs
diff --git a/Demos/ZMachine/ZLibrary/Constants/Config.cs b/Examples/ZMachine Emulator/ZLibrary/Constants/Config.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Constants/Config.cs
rename to Examples/ZMachine Emulator/ZLibrary/Constants/Config.cs
diff --git a/Demos/ZMachine/ZLibrary/Constants/FileVersion.cs b/Examples/ZMachine Emulator/ZLibrary/Constants/FileVersion.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Constants/FileVersion.cs
rename to Examples/ZMachine Emulator/ZLibrary/Constants/FileVersion.cs
diff --git a/Demos/ZMachine/ZLibrary/Constants/FontStyle.cs b/Examples/ZMachine Emulator/ZLibrary/Constants/FontStyle.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Constants/FontStyle.cs
rename to Examples/ZMachine Emulator/ZLibrary/Constants/FontStyle.cs
diff --git a/Demos/ZMachine/ZLibrary/Constants/HeaderOffset.cs b/Examples/ZMachine Emulator/ZLibrary/Constants/HeaderOffset.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Constants/HeaderOffset.cs
rename to Examples/ZMachine Emulator/ZLibrary/Constants/HeaderOffset.cs
diff --git a/Demos/ZMachine/ZLibrary/Constants/InterpreterType.cs b/Examples/ZMachine Emulator/ZLibrary/Constants/InterpreterType.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Constants/InterpreterType.cs
rename to Examples/ZMachine Emulator/ZLibrary/Constants/InterpreterType.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/IZInput.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/IZInput.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/IZInput.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/IZInput.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/IZOutput.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/IZOutput.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/IZOutput.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/IZOutput.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/IZScreen.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/IZScreen.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/IZScreen.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/IZScreen.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/CATCH.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/CATCH.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/CATCH.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/CATCH.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/EXTENDED.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/EXTENDED.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/EXTENDED.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/EXTENDED.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/NEW_LINE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/NEW_LINE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/NEW_LINE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/NEW_LINE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/NOP.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/NOP.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/NOP.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/NOP.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/PIRACY.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/PIRACY.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/PIRACY.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/PIRACY.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/POP.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/POP.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/POP.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/POP.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/PRINT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/PRINT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/PRINT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/PRINT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/PRINT_RET.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/PRINT_RET.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/PRINT_RET.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/PRINT_RET.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/QUIT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/QUIT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/QUIT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/QUIT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RESTART.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RESTART.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RESTART.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RESTART.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RESTORE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RESTORE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RESTORE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RESTORE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RET_POPPED.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RET_POPPED.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RET_POPPED.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RET_POPPED.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RFALSE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RFALSE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RFALSE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RFALSE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RTRUE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RTRUE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/RTRUE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/RTRUE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/SAVE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/SAVE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/SAVE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/SAVE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/SHOW_STATUS.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/SHOW_STATUS.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/SHOW_STATUS.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/SHOW_STATUS.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/VERIFY.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/VERIFY.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/0OP/VERIFY.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/0OP/VERIFY.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/CALL_1N.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/CALL_1N.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/CALL_1N.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/CALL_1N.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/CALL_1S.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/CALL_1S.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/CALL_1S.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/CALL_1S.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/DEC.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/DEC.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/DEC.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/DEC.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_CHILD.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_CHILD.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_CHILD.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_CHILD.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_PARENT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_PARENT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_PARENT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_PARENT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_PROP_LEN.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_PROP_LEN.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_PROP_LEN.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_PROP_LEN.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_SIBLING.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_SIBLING.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/GET_SIBLING.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/GET_SIBLING.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/INC.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/INC.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/INC.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/INC.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/JUMP.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/JUMP.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/JUMP.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/JUMP.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/JZ.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/JZ.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/JZ.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/JZ.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/LOAD.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/LOAD.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/LOAD.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/LOAD.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/NOT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/NOT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/NOT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/NOT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/PRINT_ADDR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/PRINT_ADDR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/PRINT_ADDR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/PRINT_ADDR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/PRINT_OBJ.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/PRINT_OBJ.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/PRINT_OBJ.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/PRINT_OBJ.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/PRINT_PADDR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/PRINT_PADDR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/PRINT_PADDR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/PRINT_PADDR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/REMOVE_OBJ.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/REMOVE_OBJ.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/REMOVE_OBJ.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/REMOVE_OBJ.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/RET.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/RET.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/1OP/RET.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/1OP/RET.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/ADD.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/ADD.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/ADD.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/ADD.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/AND.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/AND.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/AND.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/AND.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/CALL_2N.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/CALL_2N.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/CALL_2N.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/CALL_2N.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/CALL_2S.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/CALL_2S.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/CALL_2S.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/CALL_2S.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/CLEAR_ATTR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/CLEAR_ATTR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/CLEAR_ATTR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/CLEAR_ATTR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/DEC_CHK.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/DEC_CHK.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/DEC_CHK.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/DEC_CHK.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/DIV.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/DIV.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/DIV.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/DIV.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/GET_NEXT_PROP.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/GET_NEXT_PROP.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/GET_NEXT_PROP.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/GET_NEXT_PROP.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/GET_PROP.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/GET_PROP.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/GET_PROP.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/GET_PROP.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/GET_PROP_ADDR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/GET_PROP_ADDR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/GET_PROP_ADDR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/GET_PROP_ADDR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/ILLEGAL.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/ILLEGAL.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/ILLEGAL.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/ILLEGAL.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/INC_CHK.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/INC_CHK.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/INC_CHK.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/INC_CHK.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/INSERT_OBJ.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/INSERT_OBJ.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/INSERT_OBJ.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/INSERT_OBJ.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/JIN.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/JIN.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/JIN.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/JIN.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/LOADB.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/LOADB.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/LOADB.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/LOADB.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/LOADW.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/LOADW.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/LOADW.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/LOADW.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/MOD.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/MOD.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/MOD.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/MOD.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/MUL.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/MUL.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/MUL.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/MUL.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/OR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/OR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/OR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/OR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/SET_ATTR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/SET_ATTR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/SET_ATTR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/SET_ATTR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/SET_COLOR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/SET_COLOR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/SET_COLOR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/SET_COLOR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/STORE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/STORE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/STORE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/STORE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/SUB.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/SUB.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/SUB.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/SUB.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/TEST.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/TEST.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/TEST.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/TEST.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/TEST_ATTR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/TEST_ATTR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/TEST_ATTR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/TEST_ATTR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/THROW.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/THROW.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/2OP/THROW.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/2OP/THROW.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/Opcode.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/Opcode.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/Opcode.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/Opcode.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/AREAD.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/AREAD.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/AREAD.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/AREAD.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/BUFFER_MODE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/BUFFER_MODE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/BUFFER_MODE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/BUFFER_MODE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VN.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VN.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VN.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VN.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VN2.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VN2.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VN2.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VN2.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VS.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VS.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VS.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VS.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VS2.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VS2.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CALL_VS2.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CALL_VS2.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CHECK_ARG_COUNT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CHECK_ARG_COUNT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/CHECK_ARG_COUNT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/CHECK_ARG_COUNT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/COPY_TABLE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/COPY_TABLE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/COPY_TABLE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/COPY_TABLE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ENCODE_TEXT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ENCODE_TEXT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ENCODE_TEXT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ENCODE_TEXT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ERASE_LINE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ERASE_LINE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ERASE_LINE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ERASE_LINE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ERASE_WINDOW.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ERASE_WINDOW.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ERASE_WINDOW.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ERASE_WINDOW.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/GET_CURSOR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/GET_CURSOR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/GET_CURSOR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/GET_CURSOR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ILLEGAL.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ILLEGAL.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/ILLEGAL.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/ILLEGAL.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/INPUT_STREAM.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/INPUT_STREAM.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/INPUT_STREAM.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/INPUT_STREAM.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/JE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/JE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/JE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/JE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/JG.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/JG.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/JG.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/JG.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/JL.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/JL.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/JL.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/JL.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/NOT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/NOT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/NOT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/NOT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/OUTPUT_STREAM.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/OUTPUT_STREAM.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/OUTPUT_STREAM.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/OUTPUT_STREAM.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PRINT_CHAR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PRINT_CHAR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PRINT_CHAR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PRINT_CHAR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PRINT_NUM.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PRINT_NUM.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PRINT_NUM.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PRINT_NUM.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PRINT_TABLE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PRINT_TABLE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PRINT_TABLE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PRINT_TABLE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PULL.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PULL.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PULL.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PULL.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PUSH.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PUSH.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PUSH.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PUSH.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PUT_PROP.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PUT_PROP.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/PUT_PROP.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/PUT_PROP.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/RANDOM.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/RANDOM.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/RANDOM.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/RANDOM.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/READ_CHAR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/READ_CHAR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/READ_CHAR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/READ_CHAR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SCAN_TABLE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SCAN_TABLE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SCAN_TABLE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SCAN_TABLE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SET_CURSOR.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SET_CURSOR.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SET_CURSOR.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SET_CURSOR.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SET_TEXT_STYLE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SET_TEXT_STYLE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SET_TEXT_STYLE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SET_TEXT_STYLE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SET_WINDOW.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SET_WINDOW.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SET_WINDOW.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SET_WINDOW.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SOUND_EFFECT.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SOUND_EFFECT.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SOUND_EFFECT.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SOUND_EFFECT.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SPLIT_WINDOW.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SPLIT_WINDOW.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SPLIT_WINDOW.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SPLIT_WINDOW.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SREAD.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SREAD.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/SREAD.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/SREAD.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/STOREB.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/STOREB.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/STOREB.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/STOREB.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/STOREW.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/STOREW.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/STOREW.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/STOREW.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/TOKENISE.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/TOKENISE.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/Opcodes/VAR/TOKENISE.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/Opcodes/VAR/TOKENISE.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZConsoleScreen.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZConsoleScreen.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZConsoleScreen.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZConsoleScreen.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZInput.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZInput.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZInput.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZInput.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZInterpreter.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZInterpreter.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZInterpreter.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZInterpreter.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZMemory.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZMemory.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZMemory.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZMemory.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZObject.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZObject.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZObject.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZObject.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZOutput.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZOutput.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZOutput.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZOutput.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZRandom.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZRandom.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZRandom.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZRandom.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZStack.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZStack.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZStack.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZStack.cs
diff --git a/Demos/ZMachine/ZLibrary/Machine/ZText.cs b/Examples/ZMachine Emulator/ZLibrary/Machine/ZText.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Machine/ZText.cs
rename to Examples/ZMachine Emulator/ZLibrary/Machine/ZText.cs
diff --git a/Demos/ZMachine/ZLibrary/Story/ZHeader.cs b/Examples/ZMachine Emulator/ZLibrary/Story/ZHeader.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Story/ZHeader.cs
rename to Examples/ZMachine Emulator/ZLibrary/Story/ZHeader.cs
diff --git a/Demos/ZMachine/ZLibrary/Story/ZStory.cs b/Examples/ZMachine Emulator/ZLibrary/Story/ZStory.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/Story/ZStory.cs
rename to Examples/ZMachine Emulator/ZLibrary/Story/ZStory.cs
diff --git a/Demos/ZMachine/ZLibrary/ZDebug.cs b/Examples/ZMachine Emulator/ZLibrary/ZDebug.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/ZDebug.cs
rename to Examples/ZMachine Emulator/ZLibrary/ZDebug.cs
diff --git a/Examples/ZMachine Emulator/ZLibrary/ZLibrary.csproj b/Examples/ZMachine Emulator/ZLibrary/ZLibrary.csproj
new file mode 100644
index 0000000000..1a6e62a7df
--- /dev/null
+++ b/Examples/ZMachine Emulator/ZLibrary/ZLibrary.csproj
@@ -0,0 +1,11 @@
+
+
+
+ net6.0
+
+
+
+
+
+
+
diff --git a/Demos/ZMachine/ZLibrary/ZMachine.cs b/Examples/ZMachine Emulator/ZLibrary/ZMachine.cs
similarity index 100%
rename from Demos/ZMachine/ZLibrary/ZMachine.cs
rename to Examples/ZMachine Emulator/ZLibrary/ZMachine.cs
diff --git a/Demos/ZMachine/ZTestConsoleApp/Program.cs b/Examples/ZMachine Emulator/ZTestConsoleApp/Program.cs
similarity index 100%
rename from Demos/ZMachine/ZTestConsoleApp/Program.cs
rename to Examples/ZMachine Emulator/ZTestConsoleApp/Program.cs
diff --git a/Examples/ZMachine Emulator/ZTestConsoleApp/ZTestConsoleApp.csproj b/Examples/ZMachine Emulator/ZTestConsoleApp/ZTestConsoleApp.csproj
new file mode 100644
index 0000000000..bcb8b6033b
--- /dev/null
+++ b/Examples/ZMachine Emulator/ZTestConsoleApp/ZTestConsoleApp.csproj
@@ -0,0 +1,13 @@
+
+
+
+ Exe
+ net6.0
+ AnyCPU;x86
+
+
+
+
+
+
+
diff --git a/Demos/ZMachine/z-spec10.pdf b/Examples/ZMachine Emulator/z-spec10.pdf
similarity index 100%
rename from Demos/ZMachine/z-spec10.pdf
rename to Examples/ZMachine Emulator/z-spec10.pdf
diff --git a/IDE.sln b/IDE.sln
index 3b2a457cb2..57dd53be1b 100644
--- a/IDE.sln
+++ b/IDE.sln
@@ -1,20 +1,18 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2010
+# Visual Studio Version 17
+VisualStudioVersion = 17.1.32210.238
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Deploy", "Deploy", "{BDFC9BA8-F528-43B5-92D0-497579E55065}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{F7C6CA93-1D02-443C-9C8B-A1988DE0306B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.Assembler", "..\XSharp\source\XSharp.Assembler\XSharp.Assembler.csproj", "{0CDB3F6E-7971-426B-81F8-38B966A54C2B}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Build.Common", "..\Common\source\Cosmos.Build.Common\Cosmos.Build.Common.csproj", "{F74A4B2B-02DA-455A-89FB-803A442B5B2C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.Common", "source\Cosmos.Debug.Common\Cosmos.Debug.Common.csproj", "{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.DebugConnectors", "source\Cosmos.Debug.DebugConnectors\Cosmos.Debug.DebugConnectors.csproj", "{BA661F30-9F3B-4356-B47B-D9C9375A473B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core.DebugStub", "source\Cosmos.Core.DebugStub\Cosmos.Core.DebugStub.csproj", "{5049175E-F1EE-4D8F-8354-F547444B8F10}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core.DebugStub", "..\IL2CPU\source\Cosmos.Core.DebugStub\Cosmos.Core.DebugStub.csproj", "{5049175E-F1EE-4D8F-8354-F547444B8F10}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.GDB", "source\Cosmos.Debug.GDB\Cosmos.Debug.GDB.csproj", "{3370FC04-B669-46A4-A4AA-A89540318F8D}"
EndProject
@@ -30,42 +28,34 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Visual Studio", "Visual Stu
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XSharp", "XSharp", "{E9CD521E-C386-466D-B5F7-A5EB19A61625}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp.csproj", "{72EB557A-8A2D-4B0F-823E-C70A791831B5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp\XSharp.csproj", "{72EB557A-8A2D-4B0F-823E-C70A791831B5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.VS.DebugEngine", "source\Cosmos.VS.DebugEngine\Cosmos.VS.DebugEngine.csproj", "{535A7E34-AC73-4781-B791-2C81A9066A2C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.VS.Windows", "source\Cosmos.VS.Windows\Cosmos.VS.Windows.csproj", "{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.VS", "..\XSharp\source\XSharp.VS\XSharp.VS.csproj", "{FB71E8EF-E229-4D81-984A-B9170D752BF9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.VS", "..\XSharp\source\ToSort\XSharp.VS\XSharp.VS.csproj", "{FB71E8EF-E229-4D81-984A-B9170D752BF9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.VS.ProjectSystem", "source\Cosmos.VS.ProjectSystem\Cosmos.VS.ProjectSystem.csproj", "{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{AA3CAD10-7821-4B3A-85D3-13CB4F308CBF}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.x86", "..\XSharp\source\XSharp.x86\XSharp.x86.csproj", "{7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spruce", "..\XSharp\source\Spruce\Spruce.csproj", "{449E143F-3E7F-46DC-8E65-F1555FB55FAD}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VSPropertyPages", "..\XSharp\source\VSPropertyPages\VSPropertyPages.csproj", "{45028B2F-66EA-4BA6-841E-F339CF54B8A3}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Build.Tasks", "source\Cosmos.Build.Tasks\Cosmos.Build.Tasks.csproj", "{D761BA74-7CB9-4C7F-BD5F-5893A69743C9}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2CPU.Debug.Symbols.Net48", "..\IL2CPU\source\IL2CPU.Debug.Symbols.Net48\IL2CPU.Debug.Symbols.Net48.csproj", "{AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
+ TEST|Any CPU = TEST|Any CPU
+ TEST|x86 = TEST|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|x86.Build.0 = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|Any CPU.Build.0 = Release|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|x86.ActiveCfg = Release|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|x86.Build.0 = Release|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -74,6 +64,10 @@ Global
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Release|Any CPU.Build.0 = Release|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Release|x86.ActiveCfg = Release|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Release|x86.Build.0 = Release|Any CPU
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|x86.ActiveCfg = Debug|x86
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|x86.Build.0 = Debug|x86
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -82,6 +76,10 @@ Global
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Release|Any CPU.Build.0 = Release|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Release|x86.ActiveCfg = Release|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Release|x86.Build.0 = Release|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|x86.Build.0 = TEST|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -90,6 +88,10 @@ Global
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Release|Any CPU.Build.0 = Release|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Release|x86.ActiveCfg = Release|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Release|x86.Build.0 = Release|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|x86.Build.0 = TEST|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -98,6 +100,10 @@ Global
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Release|Any CPU.Build.0 = Release|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Release|x86.ActiveCfg = Release|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Release|x86.Build.0 = Release|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|x86.Build.0 = TEST|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -106,6 +112,10 @@ Global
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Release|Any CPU.Build.0 = Release|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Release|x86.ActiveCfg = Release|Any CPU
{3370FC04-B669-46A4-A4AA-A89540318F8D}.Release|x86.Build.0 = Release|Any CPU
+ {3370FC04-B669-46A4-A4AA-A89540318F8D}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {3370FC04-B669-46A4-A4AA-A89540318F8D}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {3370FC04-B669-46A4-A4AA-A89540318F8D}.TEST|x86.ActiveCfg = Release|Any CPU
+ {3370FC04-B669-46A4-A4AA-A89540318F8D}.TEST|x86.Build.0 = Release|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -114,6 +124,10 @@ Global
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release|Any CPU.Build.0 = Release|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release|x86.ActiveCfg = Release|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release|x86.Build.0 = Release|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|x86.Build.0 = TEST|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -122,6 +136,10 @@ Global
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Release|Any CPU.Build.0 = Release|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Release|x86.ActiveCfg = Release|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Release|x86.Build.0 = Release|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|x86.Build.0 = TEST|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -130,6 +148,10 @@ Global
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Release|Any CPU.Build.0 = Release|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Release|x86.ActiveCfg = Release|Any CPU
{D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.Release|x86.Build.0 = Release|Any CPU
+ {D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.TEST|x86.ActiveCfg = Release|Any CPU
+ {D4BA64B3-D7F6-4A3A-AF1D-74E41B49D865}.TEST|x86.Build.0 = Release|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -138,6 +160,10 @@ Global
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Release|Any CPU.Build.0 = Release|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Release|x86.ActiveCfg = Release|Any CPU
{3D84CF8B-C6DF-4D78-8DE1-708582B43711}.Release|x86.Build.0 = Release|Any CPU
+ {3D84CF8B-C6DF-4D78-8DE1-708582B43711}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {3D84CF8B-C6DF-4D78-8DE1-708582B43711}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {3D84CF8B-C6DF-4D78-8DE1-708582B43711}.TEST|x86.ActiveCfg = Release|Any CPU
+ {3D84CF8B-C6DF-4D78-8DE1-708582B43711}.TEST|x86.Build.0 = Release|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -146,6 +172,10 @@ Global
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Release|Any CPU.Build.0 = Release|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Release|x86.ActiveCfg = Release|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Release|x86.Build.0 = Release|Any CPU
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|x86.ActiveCfg = Debug|x86
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|x86.Build.0 = Debug|x86
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -154,6 +184,10 @@ Global
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Release|Any CPU.Build.0 = Release|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Release|x86.ActiveCfg = Release|Any CPU
{535A7E34-AC73-4781-B791-2C81A9066A2C}.Release|x86.Build.0 = Release|Any CPU
+ {535A7E34-AC73-4781-B791-2C81A9066A2C}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {535A7E34-AC73-4781-B791-2C81A9066A2C}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {535A7E34-AC73-4781-B791-2C81A9066A2C}.TEST|x86.ActiveCfg = Release|Any CPU
+ {535A7E34-AC73-4781-B791-2C81A9066A2C}.TEST|x86.Build.0 = Release|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -162,6 +196,10 @@ Global
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Release|Any CPU.Build.0 = Release|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Release|x86.ActiveCfg = Release|Any CPU
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.Release|x86.Build.0 = Release|Any CPU
+ {47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.TEST|x86.ActiveCfg = Release|Any CPU
+ {47E8F3DC-FF3F-4CC7-8643-1807260B0B18}.TEST|x86.Build.0 = Release|Any CPU
{FB71E8EF-E229-4D81-984A-B9170D752BF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB71E8EF-E229-4D81-984A-B9170D752BF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB71E8EF-E229-4D81-984A-B9170D752BF9}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -170,6 +208,10 @@ Global
{FB71E8EF-E229-4D81-984A-B9170D752BF9}.Release|Any CPU.Build.0 = Release|Any CPU
{FB71E8EF-E229-4D81-984A-B9170D752BF9}.Release|x86.ActiveCfg = Release|Any CPU
{FB71E8EF-E229-4D81-984A-B9170D752BF9}.Release|x86.Build.0 = Release|Any CPU
+ {FB71E8EF-E229-4D81-984A-B9170D752BF9}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {FB71E8EF-E229-4D81-984A-B9170D752BF9}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {FB71E8EF-E229-4D81-984A-B9170D752BF9}.TEST|x86.ActiveCfg = Release|Any CPU
+ {FB71E8EF-E229-4D81-984A-B9170D752BF9}.TEST|x86.Build.0 = Release|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -178,14 +220,10 @@ Global
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Release|Any CPU.Build.0 = Release|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Release|x86.ActiveCfg = Release|Any CPU
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.Release|x86.Build.0 = Release|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Debug|x86.Build.0 = Debug|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Release|Any CPU.Build.0 = Release|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Release|x86.ActiveCfg = Release|Any CPU
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6}.Release|x86.Build.0 = Release|Any CPU
+ {12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.TEST|x86.ActiveCfg = Release|Any CPU
+ {12C1623C-1B28-46DF-A4B5-6B767A01ECF6}.TEST|x86.Build.0 = Release|Any CPU
{449E143F-3E7F-46DC-8E65-F1555FB55FAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{449E143F-3E7F-46DC-8E65-F1555FB55FAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{449E143F-3E7F-46DC-8E65-F1555FB55FAD}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -194,14 +232,10 @@ Global
{449E143F-3E7F-46DC-8E65-F1555FB55FAD}.Release|Any CPU.Build.0 = Release|Any CPU
{449E143F-3E7F-46DC-8E65-F1555FB55FAD}.Release|x86.ActiveCfg = Release|Any CPU
{449E143F-3E7F-46DC-8E65-F1555FB55FAD}.Release|x86.Build.0 = Release|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Debug|x86.Build.0 = Debug|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Release|Any CPU.Build.0 = Release|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Release|x86.ActiveCfg = Release|Any CPU
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3}.Release|x86.Build.0 = Release|Any CPU
+ {449E143F-3E7F-46DC-8E65-F1555FB55FAD}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {449E143F-3E7F-46DC-8E65-F1555FB55FAD}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {449E143F-3E7F-46DC-8E65-F1555FB55FAD}.TEST|x86.ActiveCfg = Debug|x86
+ {449E143F-3E7F-46DC-8E65-F1555FB55FAD}.TEST|x86.Build.0 = Debug|x86
{D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -210,12 +244,27 @@ Global
{D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.Release|Any CPU.Build.0 = Release|Any CPU
{D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.Release|x86.ActiveCfg = Release|Any CPU
{D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.Release|x86.Build.0 = Release|Any CPU
+ {D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.TEST|Any CPU.ActiveCfg = Release|Any CPU
+ {D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.TEST|Any CPU.Build.0 = Release|Any CPU
+ {D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.TEST|x86.ActiveCfg = Release|Any CPU
+ {D761BA74-7CB9-4C7F-BD5F-5893A69743C9}.TEST|x86.Build.0 = Release|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Debug|x86.Build.0 = Debug|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Release|x86.ActiveCfg = Release|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.Release|x86.Build.0 = Release|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818}.TEST|x86.Build.0 = TEST|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B} = {AA3CAD10-7821-4B3A-85D3-13CB4F308CBF}
{F74A4B2B-02DA-455A-89FB-803A442B5B2C} = {AA3CAD10-7821-4B3A-85D3-13CB4F308CBF}
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85} = {F7C6CA93-1D02-443C-9C8B-A1988DE0306B}
{BA661F30-9F3B-4356-B47B-D9C9375A473B} = {F7C6CA93-1D02-443C-9C8B-A1988DE0306B}
@@ -230,10 +279,9 @@ Global
{47E8F3DC-FF3F-4CC7-8643-1807260B0B18} = {F0B09CE5-6AF5-453F-BEBE-E257108C65DC}
{FB71E8EF-E229-4D81-984A-B9170D752BF9} = {E9CD521E-C386-466D-B5F7-A5EB19A61625}
{12C1623C-1B28-46DF-A4B5-6B767A01ECF6} = {F0B09CE5-6AF5-453F-BEBE-E257108C65DC}
- {7E338FAE-2E91-46FF-A88B-95C40A9AD1E6} = {E9CD521E-C386-466D-B5F7-A5EB19A61625}
{449E143F-3E7F-46DC-8E65-F1555FB55FAD} = {E9CD521E-C386-466D-B5F7-A5EB19A61625}
- {45028B2F-66EA-4BA6-841E-F339CF54B8A3} = {F0B09CE5-6AF5-453F-BEBE-E257108C65DC}
{D761BA74-7CB9-4C7F-BD5F-5893A69743C9} = {AA3CAD10-7821-4B3A-85D3-13CB4F308CBF}
+ {AC3FEEDE-DA07-40BF-A1EA-56716EBC2818} = {F7C6CA93-1D02-443C-9C8B-A1988DE0306B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {35645DF6-909B-4368-B6CC-188E096C7908}
diff --git a/Kernel.sln b/Kernel.sln
index f1dd63f788..7d8ac65db3 100644
--- a/Kernel.sln
+++ b/Kernel.sln
@@ -1,357 +1,223 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2036
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kernel G2", "Kernel G2", "{9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0 Core", "0 Core", "{04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1 HAL", "1 HAL", "{D651C346-95CF-4AE9-B309-DB2A1A512811}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2 System", "2 System", "{0259702E-9575-4852-A641-5F9714A9C740}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kernel G3", "Kernel G3", "{00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "10 CPU", "10 CPU", "{C5D22A6E-96F8-4F85-9EE4-C1EB8C5E0530}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "20 Platform", "20 Platform", "{2C27BF1B-0AB0-4B68-83C4-991D43897B66}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "30 HAL", "30 HAL", "{B369DAF1-94BC-4BD7-887C-80F76F8B5910}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "40 System", "40 System", "{2E1A72C6-5DD4-4AB9-92A1-6BB44D9B1009}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "50 Application", "50 Application", "{2A22DC4C-E237-4D4B-A592-47D477F9ED5B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TapRoot", "TapRoot", "{DB771C12-E60D-41C9-9A39-74CC95A661CD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "91 Plug", "91 Plug", "{1B2F7229-B8F1-4F40-966A-AA8C2DC30A54}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "92 CpuPlug", "92 CpuPlug", "{AD495579-C209-48FA-8F0F-633D22438DDD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.HAL2", "source\Cosmos.HAL2\Cosmos.HAL2.csproj", "{1425715D-1C93-44C7-8BB5-F124F195A41A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Common", "source\Cosmos.Common\Cosmos.Common.csproj", "{09099C80-8262-486A-94A5-492F51B08823}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core", "source\Cosmos.Core\Cosmos.Core.csproj", "{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System2", "source\Cosmos.System2\Cosmos.System2.csproj", "{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core_Plugs", "source\Cosmos.Core_Plugs\Cosmos.Core_Plugs.csproj", "{1132E689-18B0-4D87-94E8-934D4802C540}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core_Asm", "source\Cosmos.Core_Asm\Cosmos.Core_Asm.csproj", "{3C186D37-21C3-417C-95F1-19BE538AF88A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System2_Plugs", "source\Cosmos.System2_Plugs\Cosmos.System2_Plugs.csproj", "{9431FF1F-AD75-4A1E-B38A-46E0F109411D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.Kernel", "source\Cosmos.Debug.Kernel\Cosmos.Debug.Kernel.csproj", "{94DBCFC7-B5D2-4148-BE18-D76654C379E2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2CPU.API", "..\IL2CPU\source\IL2CPU.API\IL2CPU.API.csproj", "{31D48401-77B2-44AF-B6D3-27AB67C10759}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.Kernel.Plugs.Asm", "source\Cosmos.Debug.Kernel.Plugs.Asm\Cosmos.Debug.Kernel.Plugs.Asm.csproj", "{6C770E55-8EED-444C-AD4E-017E823E5BA3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core.DebugStub", "..\IL2CPU\source\Cosmos.Core.DebugStub\Cosmos.Core.DebugStub.csproj", "{9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.CPU.x86", "source\Kernel-X86\10-CPU\Cosmos.CPU.x86\Cosmos.CPU.x86.csproj", "{FC65D765-990D-4F00-B240-8DD17FA91EA9}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Platform.PC", "source\Kernel-X86\20-Platform\Cosmos.Platform.PC\Cosmos.Platform.PC.csproj", "{63843265-D889-47D2-883E-595289C99F42}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System", "source\Kernel-X86\40-System\Cosmos.System\Cosmos.System.csproj", "{F8BF6943-B69D-4549-9C16-75146616E19C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.Assembler", "..\XSharp\source\XSharp.Assembler\XSharp.Assembler.csproj", "{F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp.csproj", "{F785B091-7E4D-4D2E-A310-B18690623F74}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.HAL", "source\Kernel-X86\30-HAL\Cosmos.HAL\Cosmos.HAL.csproj", "{3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.IL2CPU", "..\IL2CPU\source\Cosmos.IL2CPU\Cosmos.IL2CPU.csproj", "{47F9D446-ACD4-489A-AD6D-A46A19247E2F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Build.Common", "..\Common\source\Cosmos.Build.Common\Cosmos.Build.Common.csproj", "{67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2CPU.Debug.Symbols", "..\IL2CPU\source\IL2CPU.Debug.Symbols\IL2CPU.Debug.Symbols.csproj", "{4E9B8F31-AEA0-402D-9B3A-223100F2156D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Plugs.TapRoot", "source\Kernel-X86\91-Plugs\Cosmos.Plugs.TapRoot\Cosmos.Plugs.TapRoot.csproj", "{BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.CPU_Plugs", "source\Kernel-X86\10-CPU\Cosmos.CPU_Plugs\Cosmos.CPU_Plugs.csproj", "{365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.CPU_Asm", "source\Kernel-X86\10-CPU\Cosmos.CPU_Asm\Cosmos.CPU_Asm.csproj", "{08B5D5EF-45F5-45BC-B842-A413E8113A55}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GuessKernelGen3", "source\Kernel-X86\50-Application\GuessKernelGen3.csproj", "{9E58E949-7B71-45ED-9610-11DA287EE933}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TRKernel", "source\Kernel-TapRoot\Demo\TRKernel.csproj", "{F614D199-03E6-4CBD-836C-EDB769B025A3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spruce", "..\XSharp\source\Spruce\Spruce.csproj", "{0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.x86", "..\XSharp\source\XSharp.x86\XSharp.x86.csproj", "{7370A62F-12DA-4181-BE3B-009D0926CA7E}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|x86.Build.0 = Debug|Any CPU
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|Any CPU.Build.0 = Release|Any CPU
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|x86.ActiveCfg = Release|Any CPU
- {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|x86.Build.0 = Release|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Debug|x86.ActiveCfg = Debug|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Debug|x86.Build.0 = Debug|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Release|Any CPU.Build.0 = Release|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Release|x86.ActiveCfg = Release|Any CPU
- {09099C80-8262-486A-94A5-492F51B08823}.Release|x86.Build.0 = Release|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|x86.Build.0 = Debug|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|Any CPU.Build.0 = Release|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|x86.ActiveCfg = Release|Any CPU
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|x86.Build.0 = Release|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|x86.Build.0 = Debug|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|Any CPU.Build.0 = Release|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|x86.ActiveCfg = Release|Any CPU
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|x86.Build.0 = Release|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|x86.Build.0 = Debug|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Release|Any CPU.Build.0 = Release|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Release|x86.ActiveCfg = Release|Any CPU
- {1132E689-18B0-4D87-94E8-934D4802C540}.Release|x86.Build.0 = Release|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|x86.Build.0 = Debug|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|Any CPU.Build.0 = Release|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|x86.ActiveCfg = Release|Any CPU
- {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|x86.Build.0 = Release|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|x86.Build.0 = Debug|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|Any CPU.Build.0 = Release|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|x86.ActiveCfg = Release|Any CPU
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|x86.Build.0 = Release|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|x86.Build.0 = Debug|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|Any CPU.Build.0 = Release|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|x86.ActiveCfg = Release|Any CPU
- {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|x86.Build.0 = Release|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|x86.ActiveCfg = Debug|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|x86.Build.0 = Debug|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|Any CPU.Build.0 = Release|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|x86.ActiveCfg = Release|Any CPU
- {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|x86.Build.0 = Release|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|x86.Build.0 = Debug|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|Any CPU.Build.0 = Release|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|x86.ActiveCfg = Release|Any CPU
- {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|x86.Build.0 = Release|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|x86.Build.0 = Debug|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|Any CPU.Build.0 = Release|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|x86.ActiveCfg = Release|Any CPU
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|x86.Build.0 = Release|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Debug|x86.Build.0 = Debug|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Release|Any CPU.Build.0 = Release|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Release|x86.ActiveCfg = Release|Any CPU
- {FC65D765-990D-4F00-B240-8DD17FA91EA9}.Release|x86.Build.0 = Release|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Debug|x86.ActiveCfg = Debug|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Debug|x86.Build.0 = Debug|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Release|Any CPU.Build.0 = Release|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Release|x86.ActiveCfg = Release|Any CPU
- {63843265-D889-47D2-883E-595289C99F42}.Release|x86.Build.0 = Release|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Debug|x86.Build.0 = Debug|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Release|Any CPU.Build.0 = Release|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Release|x86.ActiveCfg = Release|Any CPU
- {F8BF6943-B69D-4549-9C16-75146616E19C}.Release|x86.Build.0 = Release|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Debug|x86.Build.0 = Debug|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Release|Any CPU.Build.0 = Release|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Release|x86.ActiveCfg = Release|Any CPU
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3}.Release|x86.Build.0 = Release|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|x86.Build.0 = Debug|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|Any CPU.Build.0 = Release|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|x86.ActiveCfg = Release|Any CPU
- {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|x86.Build.0 = Release|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Debug|x86.Build.0 = Debug|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Release|Any CPU.Build.0 = Release|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Release|x86.ActiveCfg = Release|Any CPU
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E}.Release|x86.Build.0 = Release|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|x86.Build.0 = Debug|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|Any CPU.Build.0 = Release|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|x86.ActiveCfg = Release|Any CPU
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|x86.Build.0 = Release|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|x86.ActiveCfg = Debug|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|x86.Build.0 = Debug|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|Any CPU.Build.0 = Release|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|x86.ActiveCfg = Release|Any CPU
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|x86.Build.0 = Release|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|x86.Build.0 = Debug|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|Any CPU.Build.0 = Release|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|x86.ActiveCfg = Release|Any CPU
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|x86.Build.0 = Release|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Debug|x86.Build.0 = Debug|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Release|Any CPU.Build.0 = Release|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Release|x86.ActiveCfg = Release|Any CPU
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C}.Release|x86.Build.0 = Release|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Debug|x86.Build.0 = Debug|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Release|Any CPU.Build.0 = Release|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Release|x86.ActiveCfg = Release|Any CPU
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6}.Release|x86.Build.0 = Release|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Debug|x86.ActiveCfg = Debug|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Debug|x86.Build.0 = Debug|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Release|Any CPU.Build.0 = Release|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Release|x86.ActiveCfg = Release|Any CPU
- {08B5D5EF-45F5-45BC-B842-A413E8113A55}.Release|x86.Build.0 = Release|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Debug|x86.ActiveCfg = Debug|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Debug|x86.Build.0 = Debug|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Release|Any CPU.Build.0 = Release|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Release|x86.ActiveCfg = Release|Any CPU
- {9E58E949-7B71-45ED-9610-11DA287EE933}.Release|x86.Build.0 = Release|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Debug|x86.Build.0 = Debug|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Release|Any CPU.Build.0 = Release|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Release|x86.ActiveCfg = Release|Any CPU
- {F614D199-03E6-4CBD-836C-EDB769B025A3}.Release|x86.Build.0 = Release|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|x86.Build.0 = Debug|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|Any CPU.Build.0 = Release|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|x86.ActiveCfg = Release|Any CPU
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|x86.Build.0 = Release|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Debug|x86.Build.0 = Debug|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Release|Any CPU.Build.0 = Release|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Release|x86.ActiveCfg = Release|Any CPU
- {7370A62F-12DA-4181-BE3B-009D0926CA7E}.Release|x86.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
- {D651C346-95CF-4AE9-B309-DB2A1A512811} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
- {0259702E-9575-4852-A641-5F9714A9C740} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
- {C5D22A6E-96F8-4F85-9EE4-C1EB8C5E0530} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {2C27BF1B-0AB0-4B68-83C4-991D43897B66} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {B369DAF1-94BC-4BD7-887C-80F76F8B5910} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {2E1A72C6-5DD4-4AB9-92A1-6BB44D9B1009} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {2A22DC4C-E237-4D4B-A592-47D477F9ED5B} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {DB771C12-E60D-41C9-9A39-74CC95A661CD} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {1B2F7229-B8F1-4F40-966A-AA8C2DC30A54} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {AD495579-C209-48FA-8F0F-633D22438DDD} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {1425715D-1C93-44C7-8BB5-F124F195A41A} = {D651C346-95CF-4AE9-B309-DB2A1A512811}
- {09099C80-8262-486A-94A5-492F51B08823} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
- {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4} = {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}
- {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF} = {0259702E-9575-4852-A641-5F9714A9C740}
- {1132E689-18B0-4D87-94E8-934D4802C540} = {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}
- {3C186D37-21C3-417C-95F1-19BE538AF88A} = {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}
- {9431FF1F-AD75-4A1E-B38A-46E0F109411D} = {0259702E-9575-4852-A641-5F9714A9C740}
- {31D48401-77B2-44AF-B6D3-27AB67C10759} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
- {FC65D765-990D-4F00-B240-8DD17FA91EA9} = {C5D22A6E-96F8-4F85-9EE4-C1EB8C5E0530}
- {63843265-D889-47D2-883E-595289C99F42} = {2C27BF1B-0AB0-4B68-83C4-991D43897B66}
- {F8BF6943-B69D-4549-9C16-75146616E19C} = {2E1A72C6-5DD4-4AB9-92A1-6BB44D9B1009}
- {F0860B7D-3FF7-4E2A-AC10-18E87ADD62A3} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- {F785B091-7E4D-4D2E-A310-B18690623F74} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- {3F8EDE0E-61BD-4D01-95F5-4A5A17F6221E} = {B369DAF1-94BC-4BD7-887C-80F76F8B5910}
- {47F9D446-ACD4-489A-AD6D-A46A19247E2F} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- {4E9B8F31-AEA0-402D-9B3A-223100F2156D} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- {BEEDA0BE-0105-40BF-BD8D-7F6A2BC3B05C} = {1B2F7229-B8F1-4F40-966A-AA8C2DC30A54}
- {365810FC-AFC2-4130-8A70-EF1F2C3FA5D6} = {AD495579-C209-48FA-8F0F-633D22438DDD}
- {08B5D5EF-45F5-45BC-B842-A413E8113A55} = {C5D22A6E-96F8-4F85-9EE4-C1EB8C5E0530}
- {9E58E949-7B71-45ED-9610-11DA287EE933} = {2A22DC4C-E237-4D4B-A592-47D477F9ED5B}
- {F614D199-03E6-4CBD-836C-EDB769B025A3} = {DB771C12-E60D-41C9-9A39-74CC95A661CD}
- {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- {7370A62F-12DA-4181-BE3B-009D0926CA7E} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {1A1E8F1D-82B3-471F-9B59-0350DEA9203D}
- EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33205.214
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kernel G2", "Kernel G2", "{9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0 Core", "0 Core", "{04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "1 HAL", "1 HAL", "{D651C346-95CF-4AE9-B309-DB2A1A512811}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2 System", "2 System", "{0259702E-9575-4852-A641-5F9714A9C740}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kernel G3", "Kernel G3", "{00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.HAL2", "source\Cosmos.HAL2\Cosmos.HAL2.csproj", "{1425715D-1C93-44C7-8BB5-F124F195A41A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Common", "source\Cosmos.Common\Cosmos.Common.csproj", "{09099C80-8262-486A-94A5-492F51B08823}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core", "source\Cosmos.Core\Cosmos.Core.csproj", "{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System2", "source\Cosmos.System2\Cosmos.System2.csproj", "{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core_Plugs", "source\Cosmos.Core_Plugs\Cosmos.Core_Plugs.csproj", "{1132E689-18B0-4D87-94E8-934D4802C540}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core_Asm", "source\Cosmos.Core_Asm\Cosmos.Core_Asm.csproj", "{3C186D37-21C3-417C-95F1-19BE538AF88A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System2_Plugs", "source\Cosmos.System2_Plugs\Cosmos.System2_Plugs.csproj", "{9431FF1F-AD75-4A1E-B38A-46E0F109411D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.Kernel", "source\Cosmos.Debug.Kernel\Cosmos.Debug.Kernel.csproj", "{94DBCFC7-B5D2-4148-BE18-D76654C379E2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2CPU.API", "..\IL2CPU\source\IL2CPU.API\IL2CPU.API.csproj", "{31D48401-77B2-44AF-B6D3-27AB67C10759}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Debug.Kernel.Plugs.Asm", "source\Cosmos.Debug.Kernel.Plugs.Asm\Cosmos.Debug.Kernel.Plugs.Asm.csproj", "{6C770E55-8EED-444C-AD4E-017E823E5BA3}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core.DebugStub", "..\IL2CPU\source\Cosmos.Core.DebugStub\Cosmos.Core.DebugStub.csproj", "{9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp\XSharp.csproj", "{F785B091-7E4D-4D2E-A310-B18690623F74}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.IL2CPU", "..\IL2CPU\source\Cosmos.IL2CPU\Cosmos.IL2CPU.csproj", "{47F9D446-ACD4-489A-AD6D-A46A19247E2F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Build.Common", "..\Common\source\Cosmos.Build.Common\Cosmos.Build.Common.csproj", "{67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2CPU.Debug.Symbols", "..\IL2CPU\source\IL2CPU.Debug.Symbols\IL2CPU.Debug.Symbols.csproj", "{4E9B8F31-AEA0-402D-9B3A-223100F2156D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spruce", "..\XSharp\source\Spruce\Spruce.csproj", "{0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.Plugs", "source\Cosmos.Plugs\Cosmos.Plugs.csproj", "{F2948368-61B6-4653-BAEC-C7152CE4980E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|x86.Build.0 = Debug|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|x86.ActiveCfg = Release|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|x86.Build.0 = Release|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Debug|x86.Build.0 = Debug|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Release|Any CPU.Build.0 = Release|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Release|x86.ActiveCfg = Release|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.Release|x86.Build.0 = Release|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|x86.Build.0 = Debug|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|x86.ActiveCfg = Release|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|x86.Build.0 = Release|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|x86.Build.0 = Debug|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|x86.ActiveCfg = Release|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|x86.Build.0 = Release|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Debug|x86.Build.0 = Debug|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Release|x86.ActiveCfg = Release|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.Release|x86.Build.0 = Release|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Debug|x86.Build.0 = Debug|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|x86.ActiveCfg = Release|Any CPU
+ {3C186D37-21C3-417C-95F1-19BE538AF88A}.Release|x86.Build.0 = Release|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|x86.Build.0 = Debug|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|x86.ActiveCfg = Release|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|x86.Build.0 = Release|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Debug|x86.Build.0 = Debug|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|x86.ActiveCfg = Release|Any CPU
+ {94DBCFC7-B5D2-4148-BE18-D76654C379E2}.Release|x86.Build.0 = Release|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Debug|x86.Build.0 = Debug|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|Any CPU.Build.0 = Release|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|x86.ActiveCfg = Release|Any CPU
+ {31D48401-77B2-44AF-B6D3-27AB67C10759}.Release|x86.Build.0 = Release|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Debug|x86.Build.0 = Debug|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|x86.ActiveCfg = Release|Any CPU
+ {6C770E55-8EED-444C-AD4E-017E823E5BA3}.Release|x86.Build.0 = Release|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Debug|x86.Build.0 = Debug|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|x86.ActiveCfg = Release|Any CPU
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82}.Release|x86.Build.0 = Release|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Debug|x86.Build.0 = Debug|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|x86.ActiveCfg = Release|Any CPU
+ {F785B091-7E4D-4D2E-A310-B18690623F74}.Release|x86.Build.0 = Release|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Debug|x86.Build.0 = Debug|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|x86.ActiveCfg = Release|Any CPU
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F}.Release|x86.Build.0 = Release|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Debug|x86.Build.0 = Debug|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|x86.ActiveCfg = Release|Any CPU
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA}.Release|x86.Build.0 = Release|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Debug|x86.Build.0 = Debug|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|x86.ActiveCfg = Release|Any CPU
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D}.Release|x86.Build.0 = Release|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Debug|x86.Build.0 = Debug|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|x86.ActiveCfg = Release|Any CPU
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2}.Release|x86.Build.0 = Release|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Debug|x86.Build.0 = Debug|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Release|x86.ActiveCfg = Release|Any CPU
+ {F2948368-61B6-4653-BAEC-C7152CE4980E}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
+ {D651C346-95CF-4AE9-B309-DB2A1A512811} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
+ {0259702E-9575-4852-A641-5F9714A9C740} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
+ {1425715D-1C93-44C7-8BB5-F124F195A41A} = {D651C346-95CF-4AE9-B309-DB2A1A512811}
+ {09099C80-8262-486A-94A5-492F51B08823} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4} = {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF} = {0259702E-9575-4852-A641-5F9714A9C740}
+ {1132E689-18B0-4D87-94E8-934D4802C540} = {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}
+ {3C186D37-21C3-417C-95F1-19BE538AF88A} = {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D} = {0259702E-9575-4852-A641-5F9714A9C740}
+ {31D48401-77B2-44AF-B6D3-27AB67C10759} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
+ {9BDA0399-0CFD-42E8-8CF4-3DDE16122A82} = {00F0CA9C-51B2-4E99-B4D9-DD24D488D3FC}
+ {F785B091-7E4D-4D2E-A310-B18690623F74} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
+ {47F9D446-ACD4-489A-AD6D-A46A19247E2F} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
+ {67FD9912-CE63-4EB2-880C-F4F0D9AED7CA} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
+ {4E9B8F31-AEA0-402D-9B3A-223100F2156D} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
+ {0812DD0A-4CEE-4376-B78A-02EBCBAA14C2} = {3CD3D9A5-9BC5-4FEB-8D63-4D535C0ABB78}
+ {F2948368-61B6-4653-BAEC-C7152CE4980E} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1A1E8F1D-82B3-471F-9B59-0350DEA9203D}
+ EndGlobalSection
+EndGlobal
diff --git a/LICENSE.txt b/LICENSE.txt
index 2a2ee990b8..590d32bee5 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,21 +1,21 @@
BSD 3-Clause License
-Copyright (c) 2018, COSMOS Project
+Copyright (c) 2007-2025, CosmosOS, COSMOS Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
-* Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..1db0ffe870
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,160 @@
+THISDIR := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
+DESTDIR ?= /opt/cosmos
+
+IL2CPU_URL = https://github.com/CosmosOS/IL2CPU
+XSHARP_URL = https://github.com/CosmosOS/XSharp
+COMMON_URL = https://github.com/CosmosOS/Common
+
+IL2CPU_BRANCH = master
+XSHARP_BRANCH = master
+COMMON_BRANCH = master
+
+IL2CPU_DIR = $(THISDIR)/../IL2CPU
+XSHARP_DIR = $(THISDIR)/../XSharp
+COMMON_DIR = $(THISDIR)/../Common
+
+GIT = git
+DOTNET = dotnet
+
+BUILDMODE=Release
+GITFLAGS = clone --depth=1
+DOTNETFLAGS = -nologo -v:q -c:$(BUILDMODE)
+GREEN = \033[0;32m
+YELLOW = \033[1;33m
+DEFAULT = \033[0m
+
+.PHONY: all
+all: $(IL2CPU_DIR) $(XSHARP_DIR) $(COMMON_DIR)
+ @printf "${YELLOW}Cosmos${DEFAULT} DevKit Installer\n"
+ @# Elapsed time is stored in a temporary file, deleted post-install.
+ @date +%s > _time_$@.txt
+ @$(MAKE) build
+ @$(MAKE) publish
+ @sudo $(MAKE) install
+ @$(MAKE) nuget-install
+ @$(MAKE) template-install
+ @printf "To create a Cosmos kernel, run \'dotnet new cosmosCSKernel -n \{name\}\'"
+ @printf "Build log file saved to ${GREEN}$(THISDIR)/build${date}.log${DEFAULT}\n"
+ @printf "============================================\n"
+ @printf "| ${YELLOW}Cosmos${DEFAULT} has been installed successfully! |\n"
+ @printf "============================================\n"
+ @printf "Took ${YELLOW}$$(($$(date +%s)-$$(cat _time_$@.txt)))s${DEFAULT} to build\n"
+ @rm _time_$@.txt
+
+$(IL2CPU_DIR):
+ @printf "Cloning ${GREEN}Cosmos/IL2CPU${DEFAULT}\n"
+ @$(GIT) $(GITFLAGS) --branch=$(IL2CPU_BRANCH) $(IL2CPU_URL) $(IL2CPU_DIR)
+
+$(XSHARP_DIR):
+ @printf "Cloning ${GREEN}Cosmos/XSharp${DEFAULT}\n"
+ @$(GIT) $(GITFLAGS) --branch=$(XSHARP_BRANCH) $(XSHARP_URL) $(XSHARP_DIR)
+
+$(COMMON_DIR):
+ @printf "Cloning ${GREEN}Cosmos/Common${DEFAULT}\n"
+ @$(GIT) $(GITFLAGS) --branch=$(COMMON_BRANCH) $(COMMON_URL) $(COMMON_DIR)
+
+
+.PHONY: build
+build:
+ @printf "Building ${GREEN}IL2CPU${DEFAULT}\n"
+ @$(DOTNET) clean $(IL2CPU_DIR)
+ @$(DOTNET) build $(IL2CPU_DIR) $(DOTNETFLAGS)
+ @$(DOTNET) pack $(IL2CPU_DIR) $(DOTNETFLAGS)
+
+ @printf "Building ${GREEN}Cosmos${DEFAULT}\n"
+
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Common
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Debug.Kernel
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Debug.Kernel.Plugs.Asm
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Core
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Core_Asm
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Core_Plugs
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.HAL2
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.System2
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.System2_Plugs
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Build.Tasks
+ @$(DOTNET) clean $(THISDIR)/source/Cosmos.Plugs
+
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Common $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Debug.Kernel $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Debug.Kernel.Plugs.Asm $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Core $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Core_Asm $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Core_Plugs $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.HAL2 $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.System2 $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.System2_Plugs $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Build.Tasks $(DOTNETFLAGS)
+ @$(DOTNET) pack $(THISDIR)/source/Cosmos.Plugs $(DOTNETFLAGS)
+
+ @printf "Building ${GREEN}X#${DEFAULT}\n"
+ @$(DOTNET) clean $(XSHARP_DIR)/source/XSharp/XSharp
+ @$(DOTNET) clean $(XSHARP_DIR)/source/Spruce
+
+ $(DOTNET) pack $(XSHARP_DIR)/source/XSharp/XSharp $(DOTNETFLAGS)
+ $(DOTNET) pack $(XSHARP_DIR)/source/Spruce $(DOTNETFLAGS)
+
+
+.PHONY: publish
+publish:
+ @printf "Publishing ${GREEN}IL2CPU${DEFAULT}\n"
+ $(DOTNET) publish $(IL2CPU_DIR)/source/IL2CPU -r linux-x64 --self-contained $(DOTNETFLAGS)
+
+ @printf "Publishing ${GREEN}Cosmos${DEFAULT}\n"
+ @$(DOTNET) publish $(THISDIR)/source/Cosmos.Core_Plugs $(DOTNETFLAGS)
+ @$(DOTNET) publish $(THISDIR)/source/Cosmos.Debug.Kernel.Plugs.Asm $(DOTNETFLAGS)
+ @$(DOTNET) publish $(THISDIR)/source/Cosmos.HAL2 $(DOTNETFLAGS)
+ @$(DOTNET) publish $(THISDIR)/source/Cosmos.System2_Plugs $(DOTNETFLAGS)
+ @$(DOTNET) publish $(THISDIR)/source/Cosmos.Plugs $(DOTNETFLAGS)
+
+ @printf "Publishing ${GREEN}X#${DEFAULT}\n"
+ @$(DOTNET) publish $(XSHARP_DIR)/source/XSharp/XSharp $(DOTNETFLAGS)
+ @$(DOTNET) publish $(XSHARP_DIR)/source/Spruce $(DOTNETFLAGS)
+
+.PHONY: install
+install:
+ @printf "Installing to ${YELLOW}$(DESTDIR)${DEFAULT}\n"
+ @mkdir -p $(DESTDIR)/Cosmos
+ @mkdir -p $(DESTDIR)/XSharp/DebugStub
+ @mkdir -p $(DESTDIR)/Build/ISO
+ @mkdir -p $(DESTDIR)/Build/IL2CPU
+ @mkdir -p $(DESTDIR)/Build/HyperV
+ @mkdir -p $(DESTDIR)/Build/VMware/Workstation
+ @mkdir -p $(DESTDIR)/Packages
+ @mkdir -p $(DESTDIR)/Kernel
+ @cp -r $(IL2CPU_DIR)/artifacts/$(BUILDMODE)/nupkg/*.nupkg $(DESTDIR)/Packages/
+ @cp -r $(THISDIR)/artifacts/$(BUILDMODE)/nupkg/*.nupkg $(DESTDIR)/Packages/
+ @cp -r $(XSHARP_DIR)/artifacts/$(BUILDMODE)/nupkg/*.nupkg $(DESTDIR)/Packages/
+ @cp -r $(IL2CPU_DIR)/source/Cosmos.Core.DebugStub/*.xs $(DESTDIR)/XSharp/DebugStub/
+
+ @cp -r $(THISDIR)/Artwork/XSharp/XSharp.ico $(DESTDIR)/XSharp/
+ @cp -r $(THISDIR)/Artwork/Cosmos.ico $(DESTDIR)/
+
+ @cp -r $(IL2CPU_DIR)/source/IL2CPU/bin/$(BUILDMODE)/*/linux-x64/publish/* $(DESTDIR)/Build/IL2CPU/
+ @cp -r $(THISDIR)/source/Cosmos.Core_Plugs/bin/$(BUILDMODE)/*/publish/*.dll $(DESTDIR)/Kernel/
+ @cp -r $(THISDIR)/source/Cosmos.System2_Plugs/bin/$(BUILDMODE)/*/publish/*.dll $(DESTDIR)/Kernel/
+ @cp -r $(THISDIR)/source/Cosmos.HAL2/bin/$(BUILDMODE)/*/publish/*.dll $(DESTDIR)/Kernel/
+ @cp -r $(THISDIR)/source/Cosmos.Debug.Kernel.Plugs.Asm/bin/$(BUILDMODE)/netstandard2.0/publish/*.dll $(DESTDIR)/Kernel/
+
+ @cp -r $(THISDIR)/Build/HyperV/*.vhdx $(DESTDIR)/Build/HyperV/
+ @cp -r $(THISDIR)/Build/VMWare/Workstation/* $(DESTDIR)/Build/VMware/Workstation/
+ @cp -r $(THISDIR)/Build/syslinux/* $(DESTDIR)/Build/ISO/
+ @printf $(DESTDIR) > /etc/CosmosUserKit.cfg
+
+.PHONY: nuget-install
+nuget-install:
+ @printf "Installing ${GREEN}Nuget packages${DEFAULT}\n"
+
+ @rm -r -f ~/.nuget/packages/cosmos.*/
+ @rm -r -f ~/.nuget/packages/il2cpu.*/
+
+ @$(DOTNET) nuget remove source "Cosmos Local Package Feed" || true
+ @$(DOTNET) nuget add source $(DESTDIR)/Packages/ -n "Cosmos Local Package Feed"
+
+.PHONY: template-install
+template-install:
+ @printf "Installing ${GREEN}C# Template packages${DEFAULT}\n"
+ @-dotnet new uninstall $(THISDIR)/source/templates/csharp/
+ @printf "If the template was not installed, you can ignore this\n"
+ @dotnet new -i $(THISDIR)/source/templates/csharp/
+#TODO: Uninstall
diff --git a/README.md b/README.md
index bb9acbd7a5..c87f35182e 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,65 @@
-# Cosmos
+
-[](https://ci.appveyor.com/project/CosmosOS/cosmos/branch/master)
+
-Cosmos is an operating system "construction kit". Build your own OS using managed languages such as C#, VB.NET, and more!
+
-For instructions on how to install and use Cosmos, please visit the [Cosmos website](http://www.gocosmos.org).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cosmos (C# Open Source Managed Operating System) is an operating system development kit which uses .NET, alongside the custom IL2CPU compiler to convert (most) C# code into a working bare-metal OS.
+Despite C# in the name, any .NET-based language can be used, which includes: VB.NET, IronPython, F# and more. Cosmos itself and its kernel routines are primarily written in C#, and thus the Cosmos name.
+
+In a project, Cosmos can be thought of as a compiler and a sort-of standard library for a project. It gives the user access to often hard to find or otherwise difficult to understand tools.
+
+
+
+## Features
+
+The following is a non-exhaustive list of features that Cosmos offers:
+
+- Low level assembly access and pointer memory control
+- A basic filesystem
+- Most features found in the .NET core library
+- A CPU/FPU accelerated math library
+- A basic graphics interface
+- A basic network interface
+- A basic audio interface
+
+## Setting it up
+
+Cosmos has an article [here](https://cosmosos.github.io/install.html) on how to do that.
+
+## Documentation
+
+The Cosmos documentation can be found [here](https://cosmosos.github.io/index.html).
+
+If you still have any questions on how to use Cosmos, you can open a [discussion](https://github.com/CosmosOS/Cosmos/discussions) or you can join the [Discord server](https://discord.com/invite/kwtBwv6jhD)!
+
+The devkit changelog can be found [here](https://cosmosos.github.io/articles/Changelog.html).
+
+## Reporting an issue
+
+If you think you found a bug in Cosmos, please check existing [issues](https://github.com/CosmosOS/Cosmos/issues) first before opening a new one. Do **not** open an issue if you need help with something in Cosmos that is not a bug, if you don't know how to code it's not a Cosmos issue for example.
diff --git a/ReadMe - Solutions.txt b/ReadMe - Solutions.txt
deleted file mode 100644
index ada4c8606f..0000000000
--- a/ReadMe - Solutions.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-================ Solution File ReadMe ================
-
---------------------------------------------
-Cosmos
--Old monolithic solution.
--Will be removed after all smaller parts split out.
--Use of this solution is necessary for some users until all parts are split out.
-
---------------------------------------------
-Build
--Used by the build process (Builder).
--Not meant for direct end user use.
--Do not change unless you know what you are doing.
-
---------------------------------------------
-Builder
-
-Projects used to build Cosmos itself. Essentially this is what makes User Kit go.
-
--C.B.Builder - Essentially the user kit. A C# program which automates the building and installation of Cosmos wtih a GUI.
-
--C.B.Insaller - This is the UAC workaround task?
-
-******* Add C.B.Common & C.B.MSBuild or to compiler??
-
---------------------------------------------
-Compiler
-
-Parts:
--Assembler
--Compiler
--XSharp (Compiler Parts)
--Tools (Compiler Parts)
-
-Notes:
--In future XSharp may be separated or a SLN with only XSharp parts in it. But it is needed often when using compiler.
-
-Bin Cache Dependencies:
-
-
---------------------------------------------
-IDE
-
-TODO Exists, but needs cleaned up still a lot.
-
-Debug, Deploy, Visual Studio, XSharp (IDE Parts), Tools (IDE Parts)
-
---------------------------------------------
-Kernel
-
--Kernel, Demos (not �User), Tests
-
---------------------------------------------
-Test
-
--All unit tests
-
---------------------------------------------
-Tools
-
--Misc Tools
-
---------------------------------------------
-
diff --git a/Resources/Dependencies/ApprovalTests.3.0.10/ApprovalTests.dll b/Resources/Dependencies/ApprovalTests.3.0.10/ApprovalTests.dll
deleted file mode 100644
index 438879265e..0000000000
Binary files a/Resources/Dependencies/ApprovalTests.3.0.10/ApprovalTests.dll and /dev/null differ
diff --git a/Resources/Dependencies/ApprovalUtilities.3.0.10/ApprovalUtilities.Net45.dll b/Resources/Dependencies/ApprovalUtilities.3.0.10/ApprovalUtilities.Net45.dll
deleted file mode 100644
index 884938e049..0000000000
Binary files a/Resources/Dependencies/ApprovalUtilities.3.0.10/ApprovalUtilities.Net45.dll and /dev/null differ
diff --git a/Resources/Dependencies/ApprovalUtilities.3.0.10/ApprovalUtilities.dll b/Resources/Dependencies/ApprovalUtilities.3.0.10/ApprovalUtilities.dll
deleted file mode 100644
index 1da0a8b178..0000000000
Binary files a/Resources/Dependencies/ApprovalUtilities.3.0.10/ApprovalUtilities.dll and /dev/null differ
diff --git a/Resources/Dependencies/Dapper/Dapper.dll b/Resources/Dependencies/Dapper/Dapper.dll
deleted file mode 100644
index f38612ac16..0000000000
Binary files a/Resources/Dependencies/Dapper/Dapper.dll and /dev/null differ
diff --git a/Resources/Dependencies/Dapper/Dapper.xml b/Resources/Dependencies/Dapper/Dapper.xml
deleted file mode 100644
index cc0c42ab54..0000000000
--- a/Resources/Dependencies/Dapper/Dapper.xml
+++ /dev/null
@@ -1,703 +0,0 @@
-
-
-
- Dapper
-
-
-
-
- Dapper, a light weight object mapper for ADO.NET
-
-
-
-
- Purge the query cache
-
-
-
-
- Return a count of all the cached queries by dapper
-
-
-
-
-
- Return a list of all the queries cached by dapper
-
-
-
-
-
-
- Deep diagnostics only: find any hash collisions in the cache
-
-
-
-
-
- Configire the specified type to be mapped to a given db-type
-
-
-
-
- Execute parameterized SQL
-
- Number of rows affected
-
-
-
- Return a list of dynamic objects, reader is closed after the call
-
-
-
-
- Executes a query, returning the data typed as per T
-
- the dynamic param may seem a bit odd, but this works around a major usability issue in vs, if it is Object vs completion gets annoying. Eg type new [space] get new object
- A sequence of data of the supplied type; if a basic type (int, string, etc) is queried then the data from the first column in assumed, otherwise an instance is
- created per row, and a direct column-name===member-name mapping is assumed (case insensitive).
-
-
-
-
- Execute a command that returns multiple result sets, and access each in turn
-
-
-
-
- Return a typed list of objects, reader is closed after the call
-
-
-
-
- Maps a query to objects
-
- The first type in the recordset
- The second type in the recordset
- The return type
-
-
-
-
-
-
- The Field we should split and read the second object from (default: id)
- Number of seconds before command execution timeout
- Is it a stored proc or a batch?
-
-
-
-
- Maps a query to objects
-
-
-
-
-
-
-
-
-
-
-
- The Field we should split and read the second object from (default: id)
- Number of seconds before command execution timeout
-
-
-
-
-
- Perform a multi mapping query with 4 input parameters
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Perform a multi mapping query with 5 input parameters
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Perform a multi mapping query with 6 input parameters
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Perform a multi mapping query with 7 input parameters
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Internal use only
-
-
-
-
-
-
- Internal use only
-
-
-
-
- Internal use only
-
-
-
-
- Internal use only
-
-
-
-
- Internal use only
-
-
-
-
- Gets type-map for the given type
-
- Type map implementation, DefaultTypeMap instance if no override present
-
-
-
- Set custom mapping for type deserializers
-
- Entity type to override
- Mapping rules impementation, null to remove custom map
-
-
-
- Internal use only
-
-
-
-
-
-
-
-
-
-
- Throws a data exception, only used internally
-
-
-
-
-
-
-
- Called if the query cache is purged via PurgeQueryCache
-
-
-
-
- How should connection strings be compared for equivalence? Defaults to StringComparer.Ordinal.
- Providing a custom implementation can be useful for allowing multi-tenancy databases with identical
- schema to share startegies. Note that usual equivalence rules apply: any equivalent connection strings
- MUST yield the same hash-code.
-
-
-
-
- Implement this interface to pass an arbitrary db specific set of parameters to Dapper
-
-
-
-
- Add all the parameters needed to the command just before it executes
-
- The raw command prior to execution
- Information about the query
-
-
-
- Implement this interface to pass an arbitrary db specific parameter to Dapper
-
-
-
-
- Add the parameter needed to the command before it executes
-
- The raw command prior to execution
- Parameter name
-
-
-
- Implement this interface to change default mapping of reader columns to type memebers
-
-
-
-
- Finds best constructor
-
- DataReader column names
- DataReader column types
- Matching constructor or default one
-
-
-
- Gets mapping for constructor parameter
-
- Constructor to resolve
- DataReader column name
- Mapping implementation
-
-
-
- Gets member mapping for column
-
- DataReader column name
- Mapping implementation
-
-
-
- Implements this interface to provide custom member mapping
-
-
-
-
- Source DataReader column name
-
-
-
-
- Target member type
-
-
-
-
- Target property
-
-
-
-
- Target field
-
-
-
-
- Target constructor parameter
-
-
-
-
- This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
- and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
- equality. The type is fully thread-safe.
-
-
-
-
- Identity of a cached query in Dapper, used for extensability
-
-
-
-
- Create an identity for use with DynamicParameters, internal use only
-
-
-
-
-
-
-
-
-
-
-
-
-
- The sql
-
-
-
-
- The command type
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Compare 2 Identity objects
-
-
-
-
-
-
- The grid reader provides interfaces for reading multiple result sets from a Dapper query
-
-
-
-
- Read the next grid of results, returned as a dynamic object
-
-
-
-
- Read the next grid of results
-
-
-
-
- Read multiple objects from a single recordset on the grid
-
-
-
-
- Read multiple objects from a single recordset on the grid
-
-
-
-
- Read multiple objects from a single record set on the grid
-
-
-
-
- Read multiple objects from a single record set on the grid
-
-
-
-
- Read multiple objects from a single record set on the grid
-
-
-
-
- Read multiple objects from a single record set on the grid
-
-
-
-
- Dispose the grid, closing and disposing both the underlying reader and command.
-
-
-
-
- A bag of parameters that can be passed to the Dapper Query and Execute methods
-
-
-
-
- construct a dynamic parameter bag
-
-
-
-
- construct a dynamic parameter bag
-
- can be an anonymous type or a DynamicParameters bag
-
-
-
- Append a whole object full of params to the dynamic
- EG: AddDynamicParams(new {A = 1, B = 2}) // will add property A and B to the dynamic
-
-
-
-
-
- Add a parameter to this dynamic parameter list
-
-
-
-
-
-
-
-
-
- Add all the parameters needed to the command just before it executes
-
- The raw command prior to execution
- Information about the query
-
-
-
- Get the value of a parameter
-
-
-
- The value, note DBNull.Value is not returned, instead the value is returned as null
-
-
-
- All the names of the param in the bag, use Get to yank them out
-
-
-
-
- This class represents a SQL string, it can be used if you need to denote your parameter is a Char vs VarChar vs nVarChar vs nChar
-
-
-
-
- Create a new DbString
-
-
-
-
- Add the parameter to the command... internal use only
-
-
-
-
-
-
- Ansi vs Unicode
-
-
-
-
- Fixed length
-
-
-
-
- Length of the string -1 for max
-
-
-
-
- The value of the string
-
-
-
-
- Handles variances in features per DBMS
-
-
-
-
- Dictionary of supported features index by connection type name
-
-
-
-
- Gets the featureset based on the passed connection
-
-
-
-
- True if the db supports array columns e.g. Postgresql
-
-
-
-
- Represents simple memeber map for one of target parameter or property or field to source DataReader column
-
-
-
-
- Creates instance for simple property mapping
-
- DataReader column name
- Target property
-
-
-
- Creates instance for simple field mapping
-
- DataReader column name
- Target property
-
-
-
- Creates instance for simple constructor parameter mapping
-
- DataReader column name
- Target constructor parameter
-
-
-
- DataReader column name
-
-
-
-
- Target member type
-
-
-
-
- Target property
-
-
-
-
- Target field
-
-
-
-
- Target constructor parameter
-
-
-
-
- Represents default type mapping strategy used by Dapper
-
-
-
-
- Creates default type map
-
- Entity type
-
-
-
- Finds best constructor
-
- DataReader column names
- DataReader column types
- Matching constructor or default one
-
-
-
- Gets mapping for constructor parameter
-
- Constructor to resolve
- DataReader column name
- Mapping implementation
-
-
-
- Gets member mapping for column
-
- DataReader column name
- Mapping implementation
-
-
-
- Implements custom property mapping by user provided criteria (usually presence of some custom attribute with column to member mapping)
-
-
-
-
- Creates custom property mapping
-
- Target entity type
- Property selector based on target type and DataReader column name
-
-
-
- Always returns default constructor
-
- DataReader column names
- DataReader column types
- Default constructor
-
-
-
- Not impelmeneted as far as default constructor used for all cases
-
-
-
-
-
-
-
- Returns property based on selector strategy
-
- DataReader column name
- Poperty member map
-
-
-
diff --git a/Resources/Dependencies/Dapper/DapperExtensions.dll b/Resources/Dependencies/Dapper/DapperExtensions.dll
deleted file mode 100644
index 7ed89ca493..0000000000
Binary files a/Resources/Dependencies/Dapper/DapperExtensions.dll and /dev/null differ
diff --git a/Resources/Dependencies/Dapper/SQLinq.Dapper.dll b/Resources/Dependencies/Dapper/SQLinq.Dapper.dll
deleted file mode 100644
index f7cf32e159..0000000000
Binary files a/Resources/Dependencies/Dapper/SQLinq.Dapper.dll and /dev/null differ
diff --git a/Resources/Dependencies/Dapper/SQLinq.dll b/Resources/Dependencies/Dapper/SQLinq.dll
deleted file mode 100644
index e895b5c1d1..0000000000
Binary files a/Resources/Dependencies/Dapper/SQLinq.dll and /dev/null differ
diff --git a/Resources/Dependencies/DapperExtensions.StrongName/DapperExtensions.StrongName.csproj b/Resources/Dependencies/DapperExtensions.StrongName/DapperExtensions.StrongName.csproj
index f92b908aac..25c28ab60f 100644
--- a/Resources/Dependencies/DapperExtensions.StrongName/DapperExtensions.StrongName.csproj
+++ b/Resources/Dependencies/DapperExtensions.StrongName/DapperExtensions.StrongName.csproj
@@ -3,7 +3,7 @@
DapperExtensions.StrongName
Rafael.Carvalho
- netstandard1.3
+ net48
DapperExtensions.StrongName
True
1.50.2
@@ -12,8 +12,8 @@
-
-
+
+
diff --git a/Resources/Dependencies/DapperExtensions.StrongName/DapperImplementor.cs b/Resources/Dependencies/DapperExtensions.StrongName/DapperImplementor.cs
index 3b99a1008a..14e3b5528c 100644
--- a/Resources/Dependencies/DapperExtensions.StrongName/DapperImplementor.cs
+++ b/Resources/Dependencies/DapperExtensions.StrongName/DapperImplementor.cs
@@ -160,7 +160,7 @@ public IEnumerable GetList(DbConnection connection, object predicate, ILis
{
IClassMapper classMap = SqlGenerator.Configuration.GetMap();
IPredicate wherePredicate = GetPredicate(classMap, predicate);
- return GetList(connection, classMap, wherePredicate, sort, transaction, commandTimeout, true);
+ return GetList(connection, classMap, wherePredicate, sort, transaction, commandTimeout, buffered);
}
public IEnumerable GetPage(DbConnection connection, object predicate, IList sort, int page, int resultsPerPage, DbTransaction transaction, int? commandTimeout, bool buffered) where T : class
diff --git a/Resources/Dependencies/DapperExtensions.StrongName/Database.cs b/Resources/Dependencies/DapperExtensions.StrongName/Database.cs
index 0bb9c7a642..71a4c5b070 100644
--- a/Resources/Dependencies/DapperExtensions.StrongName/Database.cs
+++ b/Resources/Dependencies/DapperExtensions.StrongName/Database.cs
@@ -110,14 +110,14 @@ public void RunInTransaction(Action action)
action();
Commit();
}
- catch (Exception ex)
+ catch
{
if (HasActiveTransaction)
{
Rollback();
}
- throw ex;
+ throw;
}
}
@@ -130,14 +130,14 @@ public T RunInTransaction(Func func)
Commit();
return result;
}
- catch (Exception ex)
+ catch
{
if (HasActiveTransaction)
{
Rollback();
}
- throw ex;
+ throw;
}
}
@@ -266,4 +266,4 @@ public IClassMapper GetMap() where T : class
return _dapper.SqlGenerator.Configuration.GetMap();
}
}
-}
\ No newline at end of file
+}
diff --git a/Resources/Dependencies/DapperExtensions.StrongName/packages.lock.json b/Resources/Dependencies/DapperExtensions.StrongName/packages.lock.json
new file mode 100644
index 0000000000..b243223560
--- /dev/null
+++ b/Resources/Dependencies/DapperExtensions.StrongName/packages.lock.json
@@ -0,0 +1,33 @@
+{
+ "version": 1,
+ "dependencies": {
+ ".NETFramework,Version=v4.8": {
+ "Dapper.StrongName": {
+ "type": "Direct",
+ "requested": "[2.0.90, )",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Direct",
+ "requested": "[4.7.0, )",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.NETFramework.ReferenceAssemblies": {
+ "type": "Direct",
+ "requested": "[1.0.3, )",
+ "resolved": "1.0.3",
+ "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==",
+ "dependencies": {
+ "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3"
+ }
+ },
+ "Microsoft.NETFramework.ReferenceAssemblies.net48": {
+ "type": "Transitive",
+ "resolved": "1.0.3",
+ "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Resources/Dependencies/ILSpy/ICSharpCode.AvalonEdit.dll b/Resources/Dependencies/ILSpy/ICSharpCode.AvalonEdit.dll
index b0788cd60c..6fc337bd8e 100644
Binary files a/Resources/Dependencies/ILSpy/ICSharpCode.AvalonEdit.dll and b/Resources/Dependencies/ILSpy/ICSharpCode.AvalonEdit.dll differ
diff --git a/Resources/Dependencies/ILSpy/ICSharpCode.Decompiler.dll b/Resources/Dependencies/ILSpy/ICSharpCode.Decompiler.dll
index a2c848d7c2..f7f858c111 100644
Binary files a/Resources/Dependencies/ILSpy/ICSharpCode.Decompiler.dll and b/Resources/Dependencies/ILSpy/ICSharpCode.Decompiler.dll differ
diff --git a/Resources/Dependencies/ILSpy/ICSharpCode.TreeView.dll b/Resources/Dependencies/ILSpy/ICSharpCode.TreeView.dll
index 7767c5abba..37602a5b76 100644
Binary files a/Resources/Dependencies/ILSpy/ICSharpCode.TreeView.dll and b/Resources/Dependencies/ILSpy/ICSharpCode.TreeView.dll differ
diff --git a/Resources/Dependencies/ILSpy/ILSpy.BamlDecompiler.Plugin.dll b/Resources/Dependencies/ILSpy/ILSpy.BamlDecompiler.Plugin.dll
index 6ee1b165b2..b539eb2274 100644
Binary files a/Resources/Dependencies/ILSpy/ILSpy.BamlDecompiler.Plugin.dll and b/Resources/Dependencies/ILSpy/ILSpy.BamlDecompiler.Plugin.dll differ
diff --git a/Resources/Dependencies/ILSpy/ILSpy.exe b/Resources/Dependencies/ILSpy/ILSpy.exe
index 9435de4825..cdcf4559c6 100644
Binary files a/Resources/Dependencies/ILSpy/ILSpy.exe and b/Resources/Dependencies/ILSpy/ILSpy.exe differ
diff --git a/Resources/Dependencies/ILSpy/ILSpy.exe.config b/Resources/Dependencies/ILSpy/ILSpy.exe.config
index 344a3375d9..9e9603cee4 100644
--- a/Resources/Dependencies/ILSpy/ILSpy.exe.config
+++ b/Resources/Dependencies/ILSpy/ILSpy.exe.config
@@ -1,10 +1,10 @@
-
+
-
+
@@ -14,41 +14,340 @@
-
+
-
-
+
+
-
-
+
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/Dependencies/ILSpy/Microsoft.Win32.Primitives.dll b/Resources/Dependencies/ILSpy/Microsoft.Win32.Primitives.dll
new file mode 100644
index 0000000000..8b69a69bc7
Binary files /dev/null and b/Resources/Dependencies/ILSpy/Microsoft.Win32.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/Mono.Cecil.Mdb.dll b/Resources/Dependencies/ILSpy/Mono.Cecil.Mdb.dll
index b446953863..bd1924b56e 100644
Binary files a/Resources/Dependencies/ILSpy/Mono.Cecil.Mdb.dll and b/Resources/Dependencies/ILSpy/Mono.Cecil.Mdb.dll differ
diff --git a/Resources/Dependencies/ILSpy/Mono.Cecil.Pdb.dll b/Resources/Dependencies/ILSpy/Mono.Cecil.Pdb.dll
index bff1a30e1f..48b7f40629 100644
Binary files a/Resources/Dependencies/ILSpy/Mono.Cecil.Pdb.dll and b/Resources/Dependencies/ILSpy/Mono.Cecil.Pdb.dll differ
diff --git a/Resources/Dependencies/ILSpy/Mono.Cecil.Rocks.dll b/Resources/Dependencies/ILSpy/Mono.Cecil.Rocks.dll
index 8e3e779b32..3e4643cb4b 100644
Binary files a/Resources/Dependencies/ILSpy/Mono.Cecil.Rocks.dll and b/Resources/Dependencies/ILSpy/Mono.Cecil.Rocks.dll differ
diff --git a/Resources/Dependencies/ILSpy/Mono.Cecil.dll b/Resources/Dependencies/ILSpy/Mono.Cecil.dll
index 8275c7bb22..4484f7829f 100644
Binary files a/Resources/Dependencies/ILSpy/Mono.Cecil.dll and b/Resources/Dependencies/ILSpy/Mono.Cecil.dll differ
diff --git a/Resources/Dependencies/ILSpy/OSVersionHelper.dll b/Resources/Dependencies/ILSpy/OSVersionHelper.dll
new file mode 100644
index 0000000000..940eacbfe7
Binary files /dev/null and b/Resources/Dependencies/ILSpy/OSVersionHelper.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.AppContext.dll b/Resources/Dependencies/ILSpy/System.AppContext.dll
new file mode 100644
index 0000000000..4ccc058f39
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.AppContext.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Collections.Concurrent.dll b/Resources/Dependencies/ILSpy/System.Collections.Concurrent.dll
new file mode 100644
index 0000000000..26f10d1747
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Collections.Concurrent.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Collections.Immutable.dll b/Resources/Dependencies/ILSpy/System.Collections.Immutable.dll
index ce6fc0e8d0..049149f179 100644
Binary files a/Resources/Dependencies/ILSpy/System.Collections.Immutable.dll and b/Resources/Dependencies/ILSpy/System.Collections.Immutable.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Collections.NonGeneric.dll b/Resources/Dependencies/ILSpy/System.Collections.NonGeneric.dll
new file mode 100644
index 0000000000..9da235aef1
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Collections.NonGeneric.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Collections.Specialized.dll b/Resources/Dependencies/ILSpy/System.Collections.Specialized.dll
new file mode 100644
index 0000000000..fbd4fc7a25
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Collections.Specialized.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Collections.dll b/Resources/Dependencies/ILSpy/System.Collections.dll
new file mode 100644
index 0000000000..72ac2059f7
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Collections.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.ComponentModel.EventBasedAsync.dll b/Resources/Dependencies/ILSpy/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 0000000000..37742d4752
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.ComponentModel.Primitives.dll b/Resources/Dependencies/ILSpy/System.ComponentModel.Primitives.dll
new file mode 100644
index 0000000000..b0c4b683ac
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.ComponentModel.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.ComponentModel.TypeConverter.dll b/Resources/Dependencies/ILSpy/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 0000000000..fb42b4494e
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.ComponentModel.TypeConverter.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.ComponentModel.dll b/Resources/Dependencies/ILSpy/System.ComponentModel.dll
new file mode 100644
index 0000000000..8e2d829752
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.ComponentModel.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Console.dll b/Resources/Dependencies/ILSpy/System.Console.dll
new file mode 100644
index 0000000000..fe61bccd8d
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Console.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Data.Common.dll b/Resources/Dependencies/ILSpy/System.Data.Common.dll
new file mode 100644
index 0000000000..05e3481bb7
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Data.Common.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.Contracts.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.Contracts.dll
new file mode 100644
index 0000000000..98f40ebc67
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.Contracts.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.Debug.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.Debug.dll
new file mode 100644
index 0000000000..a51c0cfa46
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.Debug.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.FileVersionInfo.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 0000000000..3c203b00ca
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.Process.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.Process.dll
new file mode 100644
index 0000000000..b537e62c1c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.Process.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.StackTrace.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.StackTrace.dll
new file mode 100644
index 0000000000..5dfaad67e4
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.StackTrace.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.TextWriterTraceListener.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.TextWriterTraceListener.dll
new file mode 100644
index 0000000000..a5720da26b
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.TextWriterTraceListener.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.Tools.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.Tools.dll
new file mode 100644
index 0000000000..bd9deaed07
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.Tools.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.TraceSource.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.TraceSource.dll
new file mode 100644
index 0000000000..5474eb2a63
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.TraceSource.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Diagnostics.Tracing.dll b/Resources/Dependencies/ILSpy/System.Diagnostics.Tracing.dll
new file mode 100644
index 0000000000..5b8b2b42db
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Diagnostics.Tracing.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Drawing.Primitives.dll b/Resources/Dependencies/ILSpy/System.Drawing.Primitives.dll
new file mode 100644
index 0000000000..1eeacc4c69
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Drawing.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Dynamic.Runtime.dll b/Resources/Dependencies/ILSpy/System.Dynamic.Runtime.dll
new file mode 100644
index 0000000000..d34b388c03
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Dynamic.Runtime.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Globalization.Calendars.dll b/Resources/Dependencies/ILSpy/System.Globalization.Calendars.dll
new file mode 100644
index 0000000000..4a198bc14d
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Globalization.Calendars.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Globalization.Extensions.dll b/Resources/Dependencies/ILSpy/System.Globalization.Extensions.dll
new file mode 100644
index 0000000000..99f9e4afe7
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Globalization.Extensions.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Globalization.dll b/Resources/Dependencies/ILSpy/System.Globalization.dll
new file mode 100644
index 0000000000..dd3d2e303a
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Globalization.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.Compression.ZipFile.dll b/Resources/Dependencies/ILSpy/System.IO.Compression.ZipFile.dll
new file mode 100644
index 0000000000..345acbddb5
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.Compression.ZipFile.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.Compression.dll b/Resources/Dependencies/ILSpy/System.IO.Compression.dll
new file mode 100644
index 0000000000..ebbb503e8f
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.Compression.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.FileSystem.DriveInfo.dll b/Resources/Dependencies/ILSpy/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 0000000000..5c59398920
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.FileSystem.Primitives.dll b/Resources/Dependencies/ILSpy/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 0000000000..de4c49fc9f
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.FileSystem.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.FileSystem.Watcher.dll b/Resources/Dependencies/ILSpy/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 0000000000..228d60be71
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.FileSystem.Watcher.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.FileSystem.dll b/Resources/Dependencies/ILSpy/System.IO.FileSystem.dll
new file mode 100644
index 0000000000..6934080d37
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.FileSystem.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.IsolatedStorage.dll b/Resources/Dependencies/ILSpy/System.IO.IsolatedStorage.dll
new file mode 100644
index 0000000000..356e123c91
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.IsolatedStorage.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.MemoryMappedFiles.dll b/Resources/Dependencies/ILSpy/System.IO.MemoryMappedFiles.dll
new file mode 100644
index 0000000000..add3b2965a
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.MemoryMappedFiles.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.Pipes.dll b/Resources/Dependencies/ILSpy/System.IO.Pipes.dll
new file mode 100644
index 0000000000..e5690c468b
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.Pipes.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.UnmanagedMemoryStream.dll b/Resources/Dependencies/ILSpy/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 0000000000..cdd7427dc9
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.IO.dll b/Resources/Dependencies/ILSpy/System.IO.dll
new file mode 100644
index 0000000000..e9eb534a33
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.IO.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Linq.Expressions.dll b/Resources/Dependencies/ILSpy/System.Linq.Expressions.dll
new file mode 100644
index 0000000000..63b570c890
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Linq.Expressions.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Linq.Parallel.dll b/Resources/Dependencies/ILSpy/System.Linq.Parallel.dll
new file mode 100644
index 0000000000..d8d097ee02
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Linq.Parallel.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Linq.Queryable.dll b/Resources/Dependencies/ILSpy/System.Linq.Queryable.dll
new file mode 100644
index 0000000000..404bbe2162
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Linq.Queryable.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Linq.dll b/Resources/Dependencies/ILSpy/System.Linq.dll
new file mode 100644
index 0000000000..42cd93b460
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Linq.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.Http.dll b/Resources/Dependencies/ILSpy/System.Net.Http.dll
new file mode 100644
index 0000000000..1c5c6fd374
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.Http.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.NameResolution.dll b/Resources/Dependencies/ILSpy/System.Net.NameResolution.dll
new file mode 100644
index 0000000000..e8a65c06b3
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.NameResolution.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.NetworkInformation.dll b/Resources/Dependencies/ILSpy/System.Net.NetworkInformation.dll
new file mode 100644
index 0000000000..543a6cfebd
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.NetworkInformation.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.Ping.dll b/Resources/Dependencies/ILSpy/System.Net.Ping.dll
new file mode 100644
index 0000000000..eeb4666c20
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.Ping.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.Primitives.dll b/Resources/Dependencies/ILSpy/System.Net.Primitives.dll
new file mode 100644
index 0000000000..8a929ae801
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.Requests.dll b/Resources/Dependencies/ILSpy/System.Net.Requests.dll
new file mode 100644
index 0000000000..5cf38f84d4
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.Requests.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.Security.dll b/Resources/Dependencies/ILSpy/System.Net.Security.dll
new file mode 100644
index 0000000000..eacb8a18fc
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.Security.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.Sockets.dll b/Resources/Dependencies/ILSpy/System.Net.Sockets.dll
new file mode 100644
index 0000000000..9716795eeb
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.Sockets.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.WebHeaderCollection.dll b/Resources/Dependencies/ILSpy/System.Net.WebHeaderCollection.dll
new file mode 100644
index 0000000000..0238e69013
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.WebHeaderCollection.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.WebSockets.Client.dll b/Resources/Dependencies/ILSpy/System.Net.WebSockets.Client.dll
new file mode 100644
index 0000000000..3275912c8c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.WebSockets.Client.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Net.WebSockets.dll b/Resources/Dependencies/ILSpy/System.Net.WebSockets.dll
new file mode 100644
index 0000000000..7a74189753
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Net.WebSockets.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.ObjectModel.dll b/Resources/Dependencies/ILSpy/System.ObjectModel.dll
new file mode 100644
index 0000000000..37e11894e6
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.ObjectModel.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Reflection.Extensions.dll b/Resources/Dependencies/ILSpy/System.Reflection.Extensions.dll
new file mode 100644
index 0000000000..6d12687c90
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Reflection.Extensions.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Reflection.Metadata.dll b/Resources/Dependencies/ILSpy/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000..52082366b0
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Reflection.Metadata.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Reflection.Primitives.dll b/Resources/Dependencies/ILSpy/System.Reflection.Primitives.dll
new file mode 100644
index 0000000000..2c160e9f6e
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Reflection.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Reflection.dll b/Resources/Dependencies/ILSpy/System.Reflection.dll
new file mode 100644
index 0000000000..ec0b3d230b
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Reflection.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Resources.Reader.dll b/Resources/Dependencies/ILSpy/System.Resources.Reader.dll
new file mode 100644
index 0000000000..a34c6936d2
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Resources.Reader.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Resources.ResourceManager.dll b/Resources/Dependencies/ILSpy/System.Resources.ResourceManager.dll
new file mode 100644
index 0000000000..c4a14ceea0
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Resources.ResourceManager.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Resources.Writer.dll b/Resources/Dependencies/ILSpy/System.Resources.Writer.dll
new file mode 100644
index 0000000000..0ce294688c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Resources.Writer.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.CompilerServices.VisualC.dll b/Resources/Dependencies/ILSpy/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 0000000000..30a2f814f3
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.Extensions.dll b/Resources/Dependencies/ILSpy/System.Runtime.Extensions.dll
new file mode 100644
index 0000000000..eb0e80b14c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.Extensions.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.Handles.dll b/Resources/Dependencies/ILSpy/System.Runtime.Handles.dll
new file mode 100644
index 0000000000..37f15ff035
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.Handles.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.InteropServices.RuntimeInformation.dll b/Resources/Dependencies/ILSpy/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000000..c8d62f4f92
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.InteropServices.dll b/Resources/Dependencies/ILSpy/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000000..ab5442952c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.InteropServices.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.Numerics.dll b/Resources/Dependencies/ILSpy/System.Runtime.Numerics.dll
new file mode 100644
index 0000000000..3202cd9b1f
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.Numerics.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Formatters.dll b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Formatters.dll
new file mode 100644
index 0000000000..06b548054f
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Formatters.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Json.dll b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Json.dll
new file mode 100644
index 0000000000..1f30098f05
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Json.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Primitives.dll b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Primitives.dll
new file mode 100644
index 0000000000..19a6dd21d0
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Xml.dll b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 0000000000..3a839e2440
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.Serialization.Xml.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Runtime.dll b/Resources/Dependencies/ILSpy/System.Runtime.dll
new file mode 100644
index 0000000000..344ee77a8e
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Runtime.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.Claims.dll b/Resources/Dependencies/ILSpy/System.Security.Claims.dll
new file mode 100644
index 0000000000..9cb6423355
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.Claims.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.Cryptography.Algorithms.dll b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Algorithms.dll
new file mode 100644
index 0000000000..01b7bb5b3c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Algorithms.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.Cryptography.Csp.dll b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Csp.dll
new file mode 100644
index 0000000000..d7721e716e
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Csp.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.Cryptography.Encoding.dll b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Encoding.dll
new file mode 100644
index 0000000000..f588614108
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Encoding.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.Cryptography.Primitives.dll b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 0000000000..35a21ef6e9
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.Cryptography.Primitives.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.Cryptography.X509Certificates.dll b/Resources/Dependencies/ILSpy/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 0000000000..53d05b2204
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.Principal.dll b/Resources/Dependencies/ILSpy/System.Security.Principal.dll
new file mode 100644
index 0000000000..6d7c2ba7c1
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.Principal.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Security.SecureString.dll b/Resources/Dependencies/ILSpy/System.Security.SecureString.dll
new file mode 100644
index 0000000000..355a050dd1
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Security.SecureString.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Text.Encoding.Extensions.dll b/Resources/Dependencies/ILSpy/System.Text.Encoding.Extensions.dll
new file mode 100644
index 0000000000..4f2b83dce8
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Text.Encoding.Extensions.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Text.Encoding.dll b/Resources/Dependencies/ILSpy/System.Text.Encoding.dll
new file mode 100644
index 0000000000..557551f37c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Text.Encoding.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Text.RegularExpressions.dll b/Resources/Dependencies/ILSpy/System.Text.RegularExpressions.dll
new file mode 100644
index 0000000000..1a64a17cc6
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Text.RegularExpressions.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Threading.Overlapped.dll b/Resources/Dependencies/ILSpy/System.Threading.Overlapped.dll
new file mode 100644
index 0000000000..5d7e7b7cdb
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Threading.Overlapped.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Threading.Tasks.Parallel.dll b/Resources/Dependencies/ILSpy/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 0000000000..c4df330cc9
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Threading.Tasks.Parallel.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Threading.Tasks.dll b/Resources/Dependencies/ILSpy/System.Threading.Tasks.dll
new file mode 100644
index 0000000000..25999be8cb
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Threading.Tasks.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Threading.Thread.dll b/Resources/Dependencies/ILSpy/System.Threading.Thread.dll
new file mode 100644
index 0000000000..9b7da65e52
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Threading.Thread.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Threading.ThreadPool.dll b/Resources/Dependencies/ILSpy/System.Threading.ThreadPool.dll
new file mode 100644
index 0000000000..9405b8fcaf
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Threading.ThreadPool.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Threading.Timer.dll b/Resources/Dependencies/ILSpy/System.Threading.Timer.dll
new file mode 100644
index 0000000000..c9eae71c8e
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Threading.Timer.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Threading.dll b/Resources/Dependencies/ILSpy/System.Threading.dll
new file mode 100644
index 0000000000..deae2be716
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Threading.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.ValueTuple.dll b/Resources/Dependencies/ILSpy/System.ValueTuple.dll
index 78a185143e..502f8cd477 100644
Binary files a/Resources/Dependencies/ILSpy/System.ValueTuple.dll and b/Resources/Dependencies/ILSpy/System.ValueTuple.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Xml.ReaderWriter.dll b/Resources/Dependencies/ILSpy/System.Xml.ReaderWriter.dll
new file mode 100644
index 0000000000..24df9a0fba
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Xml.ReaderWriter.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Xml.XDocument.dll b/Resources/Dependencies/ILSpy/System.Xml.XDocument.dll
new file mode 100644
index 0000000000..cbbc4f0b64
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Xml.XDocument.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Xml.XPath.XDocument.dll b/Resources/Dependencies/ILSpy/System.Xml.XPath.XDocument.dll
new file mode 100644
index 0000000000..0830ed180c
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Xml.XPath.XDocument.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Xml.XPath.dll b/Resources/Dependencies/ILSpy/System.Xml.XPath.dll
new file mode 100644
index 0000000000..8327f2e834
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Xml.XPath.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Xml.XmlDocument.dll b/Resources/Dependencies/ILSpy/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000000..4f044b1d4f
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Xml.XmlDocument.dll differ
diff --git a/Resources/Dependencies/ILSpy/System.Xml.XmlSerializer.dll b/Resources/Dependencies/ILSpy/System.Xml.XmlSerializer.dll
new file mode 100644
index 0000000000..7b47de889a
Binary files /dev/null and b/Resources/Dependencies/ILSpy/System.Xml.XmlSerializer.dll differ
diff --git a/Resources/Dependencies/ILSpy/netstandard.dll b/Resources/Dependencies/ILSpy/netstandard.dll
new file mode 100644
index 0000000000..1f1ab22caa
Binary files /dev/null and b/Resources/Dependencies/ILSpy/netstandard.dll differ
diff --git a/Resources/Dependencies/ILSpy/zh-Hans/ILSpy.resources.dll b/Resources/Dependencies/ILSpy/zh-Hans/ILSpy.resources.dll
new file mode 100644
index 0000000000..d12efc9d22
Binary files /dev/null and b/Resources/Dependencies/ILSpy/zh-Hans/ILSpy.resources.dll differ
diff --git a/Resources/Dependencies/versions.txt b/Resources/Dependencies/versions.txt
deleted file mode 100644
index bdce4505e1..0000000000
--- a/Resources/Dependencies/versions.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-mono.cecil 0.9.4 built from source for .net 4
-SQLite 1.0.84.0
\ No newline at end of file
diff --git a/SOLUTIONS.md b/SOLUTIONS.md
new file mode 100644
index 0000000000..d92db07f5b
--- /dev/null
+++ b/SOLUTIONS.md
@@ -0,0 +1,39 @@
+# Visual Studio Solutions
+
+## `Build.sln`
+Currently contains every used Cosmos component for
+using by Cosmos Builder to compile and pack code.
+Do not use it in Visual Studio directly and do not
+modify it, unless you know what you're doing.
+
+## `Builder.sln`
+Currently contains only Cosmos Builder app project
+that used to compile, pack and install Cosmos.
+
+## `IDE.sln`
+Currently contains Visual Studio extensions for VS
+integration. Do not confuse with `Kernel.sln`.
+
+## `Kernel.sln`
+Currently contains the main Cosmos code that runs on
+target virtual machines. If you want to modify OS
+behavior more percisely, contribute to this solution.
+### Cosmos.System2
+Contains the highest library, that controls entire
+system abstractly, as another manage mostly hardware.
+### Cosmos.HAL2
+Contains Hardware Abstraction Layer and most of
+system drivers used by Cosmos. These include PS/2,
+PCI, PIT, etc.
+### Cosmos.Core
+Contains the most basic things that used by NET BCL
+and Cosmos, such as Plugs and XSharp snippets.
+
+## `Demos.sln`
+Currently contains user-made Cosmos project examples.
+Also, it can be used as test solution
+
+## `Test.sln`
+Currently contains all unit tests that Cosmos uses
+to ensure that there are no bugs. You can use it while
+development of new features of DevKit to test new changes
diff --git a/Setup/Cosmos.iss b/Setup/Cosmos.iss
index 15ec8a35bb..51ac78c87f 100644
--- a/Setup/Cosmos.iss
+++ b/Setup/Cosmos.iss
@@ -12,31 +12,38 @@
#endif
#ifndef VSVersion
- #define VSVersion "vs2017"
+ #define VSVersion "vs2022"
+#endif
+
+#ifndef RealPath
+ #define RealPath "{userappdata}"
#endif
#if BuildConfiguration == "DevKit"
; devkit releases are not compressed
#pragma warning "Building Dev Kit release"
+ #define VerName "Cosmos Dev Kit"
#else
; userkit releases get compressed, and get languages included
#pragma message "Building User Kit release"
+ #define VerName "Cosmos User Kit"
#define Compress true
#define IncludeUILanguages true
#endif
[Setup]
AppId=CosmosUserKit
-AppName=Cosmos User Kit
-AppVerName=Cosmos User Kit v{#ChangeSetVersion}
-AppCopyright=Copyright (c) 2007-2017 The Cosmos Project
+AppName={#VerName}
+AppVerName={#VerName} v{#ChangeSetVersion}
+AppCopyright=Copyright (c) 2007-2025 The Cosmos Project
AppPublisher=Cosmos Project
-AppPublisherURL=http://www.goCosmos.org/
-AppSupportURL=http://www.goCosmos.org/
-AppUpdatesURL=http://www.goCosmos.org/
+AppPublisherURL=http://www.gocosmos.org/
+AppSupportURL=http://www.gocosmos.org/
+AppUpdatesURL=http://www.gocosmos.org/
AppVersion={#ChangeSetVersion}
SetupMutex=CosmosSetupMutexName,Global\CosmoSetupMutexName
-DefaultDirName={userappdata}\Cosmos User Kit
+UsePreviousAppDir=false
+DefaultDirName={#RealPath}\Cosmos User Kit
DefaultGroupName=Cosmos User Kit
OutputDir=.\Setup\Output
OutputBaseFilename=CosmosUserKit-{#ChangeSetVersion}-{#VSVersion}
@@ -64,9 +71,10 @@ AlwaysShowComponentsList=False
ShowComponentSizes=False
LicenseFile=LICENSE.txt
DisableDirPage=no
+WizardStyle=modern
[Messages]
-SelectDirDesc=If the user installing the Cosmos User Kit is not the admin. Please choose the corresponding AppData/Roaming directory.
+SelectDirDesc=If the user installing the Cosmos User Kit is not the admin, please choose the users AppData/Roaming directory
[Dirs]
Name: {app}; Flags: uninsalwaysuninstall
@@ -77,10 +85,10 @@ Type: filesandordirs; Name: "{app}"
[Files]
; Tools
Source: ".\Build\Tools\*.exe"; DestDir: "{app}\Build\Tools"; Flags: ignoreversion uninsremovereadonly
-Source: ".\Build\Tools\NAsm\*.exe"; DestDir: "{app}\Build\Tools\NAsm"; Flags: ignoreversion uninsremovereadonly
+Source: ".\Build\Tools\Yasm\*.exe"; DestDir: "{app}\Build\Tools\Yasm"; Flags: ignoreversion uninsremovereadonly
Source: ".\Build\Tools\Cygwin\*"; DestDir: "{app}\Build\Tools\cygwin"; Flags: ignoreversion uninsremovereadonly overwritereadonly
-Source: ".\Build\Tools\mkisofs\*"; DestDir: "{app}\Build\Tools\mkisofs"; Flags: ignoreversion uninsremovereadonly overwritereadonly
-Source: ".\Build\VSIP\IL2CPU\*"; DestDir: "{app}\Build\IL2CPU"; Flags: ignoreversion uninsremovereadonly
+Source: ".\source\Cosmos.Build.Tasks\tools\xorriso\win\*"; DestDir: "{app}\Build\Tools\xorriso"; Flags: ignoreversion uninsremovereadonly overwritereadonly
+Source: ".\Build\VSIP\IL2CPU\*"; DestDir: "{app}\Build\IL2CPU"; Flags: ignoreversion uninsremovereadonly recursesubdirs
;Source: ".\Build\VSIP\XSharp\*"; DestDir: "{app}\Build\XSharp"; Flags: ignoreversion uninsremovereadonly
Source: ".\Build\VSIP\Cosmos.Deploy.USB.exe"; DestDir: "{app}\Build\Tools"; Flags: ignoreversion uninsremovereadonly
Source: ".\Build\VSIP\Cosmos.Deploy.Pixie.exe"; DestDir: "{app}\Build\Tools"; Flags: ignoreversion uninsremovereadonly
@@ -100,27 +108,17 @@ Source: ".\Artwork\Cosmos.ico"; DestDir: "{app}"; Flags: ignoreversion uninsremo
; XSharp
Source: ".\Artwork\XSharp\XSharp.ico"; DestDir: "{app}\XSharp\"; Flags: ignoreversion uninsremovereadonly
Source: "..\IL2CPU\source\Cosmos.Core.DebugStub\*.xs"; DestDir: "{app}\XSharp\DebugStub\"; Flags: ignoreversion uninsremovereadonly
-; VMware
+; HyperV
Source: ".\Build\HyperV\*"; DestDir: "{app}\Build\HyperV"; Flags: ignoreversion uninsremovereadonly overwritereadonly recursesubdirs
; VMware
Source: ".\Build\VMware\*"; DestDir: "{app}\Build\VMware"; Flags: ignoreversion uninsremovereadonly overwritereadonly recursesubdirs
; ISO
-Source: ".\Build\syslinux\isolinux.bin"; DestDir: "{app}\Build\ISO\"
-Source: ".\Build\syslinux\ldlinux.c32"; DestDir: "{app}\Build\ISO\"
-Source: ".\Build\syslinux\libcom32.c32"; DestDir: "{app}\Build\ISO\"
-Source: ".\Build\syslinux\mboot.c32"; DestDir: "{app}\Build\ISO\"
-Source: ".\Build\syslinux\syslinux.cfg"; DestDir: "{app}\Build\ISO\"
+Source: ".\Build\limine\boot\limine.cfg"; DestDir: "{app}\Build\ISO\boot\limine\"
+Source: ".\source\Cosmos.Build.Tasks\tools\limine\boot\*"; DestDir: "{app}\Build\ISO\boot\limine\"
; USB
-Source: ".\Build\syslinux\ldlinux.c32"; DestDir: "{app}\Build\USB\"
-Source: ".\Build\syslinux\libcom32.c32"; DestDir: "{app}\Build\USB\"
-Source: ".\Build\syslinux\mboot.c32"; DestDir: "{app}\Build\USB\"
-Source: ".\Build\syslinux\syslinux.cfg"; DestDir: "{app}\Build\USB\"
+Source: ".\Build\limine\boot\limine.cfg"; DestDir: "{app}\Build\USB\boot\limine\"
; PXE
-Source: ".\Build\syslinux\pxelinux.0"; DestDir: "{app}\Build\PXE"
-Source: ".\Build\syslinux\mboot.c32"; DestDir: "{app}\Build\PXE\"
-Source: ".\Build\syslinux\ldlinux.c32"; DestDir: "{app}\Build\PXE\"
-Source: ".\Build\syslinux\libcom32.c32"; DestDir: "{app}\Build\PXE\"
-Source: ".\Build\syslinux\syslinux.cfg"; DestDir: "{app}\Build\PXE\pxelinux.cfg"; DestName: "default"
+Source: ".\Build\limine\boot\limine.cfg"; DestDir: "{app}\Build\PXE\boot\limine\"
; VSIP
Source: ".\Build\Tools\VSIXBootstrapper.exe"; DestDir: "{app}\Build\Tools"; Flags: ignoreversion uninsremovereadonly
Source: ".\Build\VSIP\Cosmos.VS.DebugEngine.vsix"; DestDir: "{app}\VSIX\"; Flags: ignoreversion uninsremovereadonly
@@ -145,12 +143,14 @@ UseRelativePaths=True
[Run]
Filename: "{app}\Build\Tools\nuget.exe"; Parameters: "sources Remove -Name ""Cosmos Local Package Feed"""; WorkingDir: "{app}"; Description: "Uninstall Kernel Packages"; StatusMsg: "Uninstalling Kernel Packages"
Filename: "{app}\Build\Tools\nuget.exe"; Parameters: "sources Add -Name ""Cosmos Local Package Feed"" -Source ""{app}\packages\\"""; WorkingDir: "{app}"; Description: "Install Kernel Packages"; StatusMsg: "Installing Kernel Packages"
-
+Filename: "{app}\Build\Tools\nuget.exe"; Parameters: "nuget locals all -Clear"; WorkingDir: "{app}"; Description: "Install Kernel Packages"; StatusMsg: "Clearing nuget cache"
+#ifndef DoNotInstallExtensions
Filename: "{app}\Build\Tools\VSIXBootstrapper.exe"; Parameters: "/q /u:Cosmos.VS.ProjectSystem"; Description: "Remove Cosmos Project System"; StatusMsg: "Removing Visual Studio Extension: Cosmos Project System"
Filename: "{app}\Build\Tools\VSIXBootstrapper.exe"; Parameters: "/q /u:Cosmos.VS.DebugEngine"; Description: "Remove Cosmos Debug Engine"; StatusMsg: "Removing Visual Studio Extension: Cosmos Debug Engine"
Filename: "{app}\Build\Tools\VSIXBootstrapper.exe"; Parameters: "/q Cosmos.VS.DebugEngine.vsix"; WorkingDir: "{app}\VSIX\"; Description: "Install Cosmos Debug Engine"; StatusMsg: "Installing Visual Studio Extension: Cosmos Debug Engine"
Filename: "{app}\Build\Tools\VSIXBootstrapper.exe"; Parameters: "/q Cosmos.VS.ProjectSystem.vsix"; WorkingDir: "{app}\VSIX\"; Description: "Install Cosmos Project System"; StatusMsg: "Installing Visual Studio Extension: Cosmos Project System"
+#endif
[UninstallRun]
Filename: "{app}\Build\Tools\nuget.exe"; Parameters: "sources Remove -Name ""Cosmos Local Package Feed"""; WorkingDir: "{app}"; StatusMsg: "Uninstalling Kernel Packages"
@@ -274,7 +274,7 @@ var
ResultText: AnsiString;
begin
Command := ExpandConstant('{app}\Build\Tools\vswhere.exe');
- Params := '-latest -version "[15.0,16.0)" -requires Microsoft.Component.MSBuild -property installationPath';
+ Params := '-latest -version "[17.0,18.0)" -requires Microsoft.Component.MSBuild -property installationPath';
Success :=
ExecWithResult(Command, Params, '', SW_HIDE, ewWaitUntilTerminated, ResultCode, ResultText)
or (ResultCode <> 0);
@@ -363,38 +363,38 @@ begin
end;
[Languages]
-Name: en; MessagesFile: compiler:Default.isl; InfoBeforeFile: .\setup\Readme.txt
+Name: en; MessagesFile: compiler:Default.isl; InfoBeforeFile: .\LICENSE.txt
#ifdef IncludeUILanguages
-Name: eu; MessagesFile: .\setup\Languages\Basque-1-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: ca; MessagesFile: .\setup\Languages\Catalan-4-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: cs; MessagesFile: .\setup\Languages\Czech-5-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: da; MessagesFile: .\setup\Languages\Danish-4-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: nl; MessagesFile: .\setup\Languages\Dutch-8-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: fi; MessagesFile: .\setup\Languages\Finnish-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: fr; MessagesFile: .\setup\Languages\French-15-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: de; MessagesFile: .\setup\Languages\German-2-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: hu; MessagesFile: .\setup\Languages\Hungarian-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: it; MessagesFile: .\setup\Languages\Italian-14-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: no; MessagesFile: .\setup\Languages\Norwegian-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: pl; MessagesFile: .\setup\Languages\Polish-8-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: pt; MessagesFile: .\setup\Languages\PortugueseStd-1-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: ru; MessagesFile: .\setup\Languages\Russian-19-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: sk; MessagesFile: .\setup\Languages\Slovak-6-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: sl; MessagesFile: .\setup\Languages\Slovenian-3-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
+Name: eu; MessagesFile: .\setup\Languages\Basque-1-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: ca; MessagesFile: .\setup\Languages\Catalan-4-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: cs; MessagesFile: .\setup\Languages\Czech-5-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: da; MessagesFile: .\setup\Languages\Danish-4-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: nl; MessagesFile: .\setup\Languages\Dutch-8-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: fi; MessagesFile: .\setup\Languages\Finnish-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: fr; MessagesFile: .\setup\Languages\French-15-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: de; MessagesFile: .\setup\Languages\German-2-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: hu; MessagesFile: .\setup\Languages\Hungarian-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: it; MessagesFile: .\setup\Languages\Italian-14-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: no; MessagesFile: .\setup\Languages\Norwegian-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: pl; MessagesFile: .\setup\Languages\Polish-8-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: pt; MessagesFile: .\setup\Languages\PortugueseStd-1-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: ru; MessagesFile: .\setup\Languages\Russian-19-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: sk; MessagesFile: .\setup\Languages\Slovak-6-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: sl; MessagesFile: .\setup\Languages\Slovenian-3-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
;Unofficial:
-Name: bg; MessagesFile: .\setup\Languages\InOfficial\Bulgarian-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: el; MessagesFile: .\setup\Languages\InOfficial\Greek-4-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: is; MessagesFile: .\setup\Languages\InOfficial\Icelandic-1-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: id; MessagesFile: .\setup\Languages\InOfficial\Indonesian-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: ja; MessagesFile: .\setup\Languages\InOfficial\Japanese-5-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: ko; MessagesFile: .\setup\Languages\InOfficial\Korean-5-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: ms; MessagesFile: .\setup\Languages\InOfficial\Malaysian-2-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: es; MessagesFile: .\setup\Languages\InOfficial\SpanishStd-2-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: sv; MessagesFile: .\setup\Languages\InOfficial\Swedish-8-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: tr; MessagesFile: .\setup\Languages\InOfficial\Turkish-3-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: uk; MessagesFile: .\setup\Languages\InOfficial\Ukrainian-5-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: cn; MessagesFile: .\setup\Languages\InOfficial\ChineseSimp-11-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
-Name: tw; MessagesFile: .\setup\Languages\InOfficial\ChineseTrad-2-5.1.0.isl; InfoBeforeFile: .\setup\Readme.txt
+Name: bg; MessagesFile: .\setup\Languages\InOfficial\Bulgarian-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: el; MessagesFile: .\setup\Languages\InOfficial\Greek-4-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: is; MessagesFile: .\setup\Languages\InOfficial\Icelandic-1-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: id; MessagesFile: .\setup\Languages\InOfficial\Indonesian-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: ja; MessagesFile: .\setup\Languages\InOfficial\Japanese-5-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: ko; MessagesFile: .\setup\Languages\InOfficial\Korean-5-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: ms; MessagesFile: .\setup\Languages\InOfficial\Malaysian-2-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: es; MessagesFile: .\setup\Languages\InOfficial\SpanishStd-2-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: sv; MessagesFile: .\setup\Languages\InOfficial\Swedish-8-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: tr; MessagesFile: .\setup\Languages\InOfficial\Turkish-3-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: uk; MessagesFile: .\setup\Languages\InOfficial\Ukrainian-5-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: cn; MessagesFile: .\setup\Languages\InOfficial\ChineseSimp-11-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
+Name: tw; MessagesFile: .\setup\Languages\InOfficial\ChineseTrad-2-5.1.0.isl; InfoBeforeFile: .\LICENSE.txt
#endif
[Messages]
@@ -430,4 +430,4 @@ tr.BeveledLabel=Turkish
uk.BeveledLabel=Ukrainian
cn.BeveledLabel=Chinese Simplified
tw.BeveledLabel=Chinese Traditional
-#endif
+#endif
diff --git a/Setup/ReadMe.txt b/Setup/ReadMe.txt
deleted file mode 100644
index a8fa57ff49..0000000000
--- a/Setup/ReadMe.txt
+++ /dev/null
@@ -1 +0,0 @@
-Copyright © 2007-2018, The Cosmos Project
diff --git a/Setup/images/cosmos.bmp b/Setup/images/cosmos.bmp
index d0220e979f..4b3c2ddae9 100644
Binary files a/Setup/images/cosmos.bmp and b/Setup/images/cosmos.bmp differ
diff --git a/Setup/images/cosmos_small.bmp b/Setup/images/cosmos_small.bmp
index 3097d411c0..0c6a4158ec 100644
Binary files a/Setup/images/cosmos_small.bmp and b/Setup/images/cosmos_small.bmp differ
diff --git a/Test.sln b/Test.sln
index 3c86c12fab..be21518af8 100644
--- a/Test.sln
+++ b/Test.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2010
+# Visual Studio Version 17
+VisualStudioVersion = 17.2.32602.215
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{DAEF99B5-22F0-4885-B45B-9B600B857E1C}"
EndProject
@@ -12,8 +12,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kernel G2", "Kernel G2", "{
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{1A46752C-98F3-4DE3-B1FB-EDCE22E8AF73}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.Assembler", "..\XSharp\source\XSharp.Assembler\XSharp.Assembler.csproj", "{0CDB3F6E-7971-426B-81F8-38B966A54C2B}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Build.Common", "..\Common\source\Cosmos.Build.Common\Cosmos.Build.Common.csproj", "{F74A4B2B-02DA-455A-89FB-803A442B5B2C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.IL2CPU", "..\IL2CPU\source\Cosmos.IL2CPU\Cosmos.IL2CPU.csproj", "{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}"
@@ -44,7 +42,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{CFE37077
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XSharp", "XSharp", "{E9CD521E-C386-466D-B5F7-A5EB19A61625}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp.csproj", "{72EB557A-8A2D-4B0F-823E-C70A791831B5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp", "..\XSharp\source\XSharp\XSharp\XSharp.csproj", "{72EB557A-8A2D-4B0F-823E-C70A791831B5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core_Plugs", "source\Cosmos.Core_Plugs\Cosmos.Core_Plugs.csproj", "{1132E689-18B0-4D87-94E8-934D4802C540}"
EndProject
@@ -108,42 +106,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core.Memory.Test", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Core_Asm", "source\Cosmos.Core_Asm\Cosmos.Core_Asm.csproj", "{B7077A34-D7F0-4422-BE7C-65DF26C65489}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kernel G3", "Kernel G3", "{99192440-2DD7-4E71-B730-D44A73F46533}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "10 CPU", "10 CPU", "{29B893F7-6C0F-4710-A60E-7FB3498BCA63}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "20 Platform", "20 Platform", "{B4CB7BF5-CADF-4056-9C09-EAAC50BC76C0}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "30 HAL", "30 HAL", "{E4299234-8323-43F6-B684-350A1232746B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "40 System", "40 System", "{DE38917F-969B-486C-AF83-C59E5E52400A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "50 Application", "50 Application", "{02FF94AF-6BA3-49ED-A027-A63F591C310D}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "91 Plug", "91 Plug", "{1FC213DE-5033-40E1-9C16-5F1A0CDC9693}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.CPU.x86", "source\Kernel-X86\10-CPU\Cosmos.CPU.x86\Cosmos.CPU.x86.csproj", "{4D219A6D-4528-4622-AF29-96F830C4D076}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Platform.PC", "source\Kernel-X86\20-Platform\Cosmos.Platform.PC\Cosmos.Platform.PC.csproj", "{6CBABA8D-4207-4E1E-8122-63DB51D25F18}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.HAL", "source\Kernel-X86\30-HAL\Cosmos.HAL\Cosmos.HAL.csproj", "{16ECD6DE-6F65-4A5C-8B49-A29782D9D057}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System", "source\Kernel-X86\40-System\Cosmos.System\Cosmos.System.csproj", "{F588033A-6B7D-4ABF-96C4-73D8B2271A6B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Plugs.TapRoot", "source\Kernel-X86\91-Plugs\Cosmos.Plugs.TapRoot\Cosmos.Plugs.TapRoot.csproj", "{756ECECD-B213-42F0-BF58-4A91B4C47FAA}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.CPU_Plugs", "source\Kernel-X86\10-CPU\Cosmos.CPU_Plugs\Cosmos.CPU_Plugs.csproj", "{C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.CPU_Asm", "source\Kernel-X86\10-CPU\Cosmos.CPU_Asm\Cosmos.CPU_Asm.csproj", "{0C7C9F9D-6498-45E8-B77B-FF4D381C3297}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TheRingMaster", "source\TheRingMaster\TheRingMaster.csproj", "{3DD192AF-2D72-449F-936C-ED8734225B18}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "92 CpuPlug", "92 CpuPlug", "{929EE8ED-6AD3-4442-A0C1-EC70665F2DCF}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spruce", "..\XSharp\source\Spruce\Spruce.csproj", "{FF46829E-B612-4D36-80BE-ED04521AD91A}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XSharp.x86", "..\XSharp\source\XSharp.x86\XSharp.x86.csproj", "{D0EABA08-88C9-4F7C-BCA9-361B58B20D67}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Compiler.Tests.TypeSystem", "Tests\Kernels\Cosmos.Compiler.Tests.TypeSystem\Cosmos.Compiler.Tests.TypeSystem.csproj", "{D21A7C6C-A696-4EC3-84EB-70700C1E3B34}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleTest", "Tests\Kernels\ConsoleTest\ConsoleTest.csproj", "{0DF97CAC-220B-4DAD-B397-42E394255763}"
@@ -166,10 +130,19 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.System.Tests", "Test
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Kernel.Tests.DiskManager", "Tests\Kernels\Cosmos.Kernel.Tests.DiskManager\Cosmos.Kernel.Tests.DiskManager.csproj", "{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BECB26F1-8FE4-4C62-B74A-F2292B26CA70}"
- ProjectSection(SolutionItems) = preProject
- Build\Cosmos.ruleset = Build\Cosmos.ruleset
- EndProjectSection
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProcessorTests", "Tests\Kernels\ProcessorTests\ProcessorTests.csproj", "{3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cosmos.Compiler.Tests.BclSystem", "Tests\Kernels\Cosmos.Compiler.Tests.Bcl.System\Cosmos.Compiler.Tests.BclSystem.csproj", "{30D9FA9C-0B4D-40FF-8903-6B9E9C825729}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NetworkTest", "Tests\Kernels\NetworkTest\NetworkTest.csproj", "{96855A39-A96B-4BDB-A6AE-29676DFEF637}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DapperExtensions.StrongName", "Resources\Dependencies\DapperExtensions.StrongName\DapperExtensions.StrongName.csproj", "{AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Resources", "Resources", "{A45F0D24-1AF3-42BC-91A6-0262AFB1234D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AudioTests", "Tests\Kernels\AudioTests\AudioTests.csproj", "{8455DCAE-275E-47B3-B89B-2D9F3AB9977C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cosmos.Plugs", "source\Cosmos.Plugs\Cosmos.Plugs.csproj", "{0C65F6CA-C897-40A3-A36E-0CCCAD01D567}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -177,16 +150,10 @@ Global
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
+ TEST|Any CPU = TEST|Any CPU
+ TEST|x86 = TEST|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Debug|x86.Build.0 = Debug|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|Any CPU.Build.0 = Release|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|x86.ActiveCfg = Release|Any CPU
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B}.Release|x86.Build.0 = Release|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -195,6 +162,10 @@ Global
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Release|Any CPU.Build.0 = Release|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Release|x86.ActiveCfg = Release|Any CPU
{F74A4B2B-02DA-455A-89FB-803A442B5B2C}.Release|x86.Build.0 = Release|Any CPU
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|x86.ActiveCfg = TEST|x86
+ {F74A4B2B-02DA-455A-89FB-803A442B5B2C}.TEST|x86.Build.0 = TEST|x86
{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -203,6 +174,10 @@ Global
{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.Release|Any CPU.Build.0 = Release|Any CPU
{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.Release|x86.ActiveCfg = Release|Any CPU
{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.Release|x86.Build.0 = Release|Any CPU
+ {4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767}.TEST|x86.Build.0 = TEST|Any CPU
{34AEEB7C-FD5D-4B15-A830-B429681844BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{34AEEB7C-FD5D-4B15-A830-B429681844BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34AEEB7C-FD5D-4B15-A830-B429681844BD}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -211,6 +186,10 @@ Global
{34AEEB7C-FD5D-4B15-A830-B429681844BD}.Release|Any CPU.Build.0 = Release|Any CPU
{34AEEB7C-FD5D-4B15-A830-B429681844BD}.Release|x86.ActiveCfg = Release|Any CPU
{34AEEB7C-FD5D-4B15-A830-B429681844BD}.Release|x86.Build.0 = Release|Any CPU
+ {34AEEB7C-FD5D-4B15-A830-B429681844BD}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {34AEEB7C-FD5D-4B15-A830-B429681844BD}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {34AEEB7C-FD5D-4B15-A830-B429681844BD}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {34AEEB7C-FD5D-4B15-A830-B429681844BD}.TEST|x86.Build.0 = TEST|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -219,6 +198,10 @@ Global
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Release|Any CPU.Build.0 = Release|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Release|x86.ActiveCfg = Release|Any CPU
{A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.Release|x86.Build.0 = Release|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {A97A1EF7-AEEC-43F3-8CB0-5C7269DC7E85}.TEST|x86.Build.0 = TEST|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -227,6 +210,10 @@ Global
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Release|Any CPU.Build.0 = Release|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Release|x86.ActiveCfg = Release|Any CPU
{BA661F30-9F3B-4356-B47B-D9C9375A473B}.Release|x86.Build.0 = Release|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {BA661F30-9F3B-4356-B47B-D9C9375A473B}.TEST|x86.Build.0 = TEST|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -235,6 +222,10 @@ Global
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Release|Any CPU.Build.0 = Release|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Release|x86.ActiveCfg = Release|Any CPU
{5049175E-F1EE-4D8F-8354-F547444B8F10}.Release|x86.Build.0 = Release|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {5049175E-F1EE-4D8F-8354-F547444B8F10}.TEST|x86.Build.0 = TEST|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -243,6 +234,10 @@ Global
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release|Any CPU.Build.0 = Release|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release|x86.ActiveCfg = Release|Any CPU
{C9826909-2E5E-4453-93FA-B6BE4503DF02}.Release|x86.Build.0 = Release|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {C9826909-2E5E-4453-93FA-B6BE4503DF02}.TEST|x86.Build.0 = TEST|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -251,6 +246,10 @@ Global
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Release|Any CPU.Build.0 = Release|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Release|x86.ActiveCfg = Release|Any CPU
{ECC4319F-A844-45B8-BF63-2FD04F05E56A}.Release|x86.Build.0 = Release|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {ECC4319F-A844-45B8-BF63-2FD04F05E56A}.TEST|x86.Build.0 = TEST|Any CPU
{1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1425715D-1C93-44C7-8BB5-F124F195A41A}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -259,6 +258,10 @@ Global
{1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|Any CPU.Build.0 = Release|Any CPU
{1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|x86.ActiveCfg = Release|Any CPU
{1425715D-1C93-44C7-8BB5-F124F195A41A}.Release|x86.Build.0 = Release|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {1425715D-1C93-44C7-8BB5-F124F195A41A}.TEST|x86.Build.0 = TEST|Any CPU
{9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -267,6 +270,10 @@ Global
{9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.Release|Any CPU.Build.0 = Release|Any CPU
{9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.Release|x86.ActiveCfg = Release|Any CPU
{9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.Release|x86.Build.0 = Release|Any CPU
+ {9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.TEST|x86.ActiveCfg = TEST|x86
+ {9F5F046A-1BB1-4208-ADBE-C9417F2A8A48}.TEST|x86.Build.0 = TEST|x86
{09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09099C80-8262-486A-94A5-492F51B08823}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
@@ -276,6 +283,10 @@ Global
{09099C80-8262-486A-94A5-492F51B08823}.Release|Any CPU.Build.0 = Release|Any CPU
{09099C80-8262-486A-94A5-492F51B08823}.Release|x86.ActiveCfg = Release|Any CPU
{09099C80-8262-486A-94A5-492F51B08823}.Release|x86.Build.0 = Release|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {09099C80-8262-486A-94A5-492F51B08823}.TEST|x86.Build.0 = TEST|Any CPU
{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -284,6 +295,10 @@ Global
{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|Any CPU.Build.0 = Release|Any CPU
{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|x86.ActiveCfg = Release|Any CPU
{9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.Release|x86.Build.0 = Release|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {9AF5BD03-8A49-49DC-A56E-3AE8DA6B0FF4}.TEST|x86.Build.0 = TEST|Any CPU
{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -292,6 +307,10 @@ Global
{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|Any CPU.Build.0 = Release|Any CPU
{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|x86.ActiveCfg = Release|Any CPU
{4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.Release|x86.Build.0 = Release|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {4AC1AFCE-C8CE-484D-AE22-F9EE27008FAF}.TEST|x86.Build.0 = TEST|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -300,6 +319,10 @@ Global
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Release|Any CPU.Build.0 = Release|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Release|x86.ActiveCfg = Release|Any CPU
{72EB557A-8A2D-4B0F-823E-C70A791831B5}.Release|x86.Build.0 = Release|Any CPU
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|x86.ActiveCfg = TEST|x86
+ {72EB557A-8A2D-4B0F-823E-C70A791831B5}.TEST|x86.Build.0 = TEST|x86
{1132E689-18B0-4D87-94E8-934D4802C540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1132E689-18B0-4D87-94E8-934D4802C540}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1132E689-18B0-4D87-94E8-934D4802C540}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -308,6 +331,10 @@ Global
{1132E689-18B0-4D87-94E8-934D4802C540}.Release|Any CPU.Build.0 = Release|Any CPU
{1132E689-18B0-4D87-94E8-934D4802C540}.Release|x86.ActiveCfg = Release|Any CPU
{1132E689-18B0-4D87-94E8-934D4802C540}.Release|x86.Build.0 = Release|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {1132E689-18B0-4D87-94E8-934D4802C540}.TEST|x86.Build.0 = TEST|Any CPU
{7E450662-B34C-49B0-A826-F45AD3A18891}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7E450662-B34C-49B0-A826-F45AD3A18891}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7E450662-B34C-49B0-A826-F45AD3A18891}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -316,6 +343,10 @@ Global
{7E450662-B34C-49B0-A826-F45AD3A18891}.Release|Any CPU.Build.0 = Release|Any CPU
{7E450662-B34C-49B0-A826-F45AD3A18891}.Release|x86.ActiveCfg = Release|Any CPU
{7E450662-B34C-49B0-A826-F45AD3A18891}.Release|x86.Build.0 = Release|Any CPU
+ {7E450662-B34C-49B0-A826-F45AD3A18891}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {7E450662-B34C-49B0-A826-F45AD3A18891}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {7E450662-B34C-49B0-A826-F45AD3A18891}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {7E450662-B34C-49B0-A826-F45AD3A18891}.TEST|x86.Build.0 = TEST|Any CPU
{9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -324,6 +355,10 @@ Global
{9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|Any CPU.Build.0 = Release|Any CPU
{9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|x86.ActiveCfg = Release|Any CPU
{9431FF1F-AD75-4A1E-B38A-46E0F109411D}.Release|x86.Build.0 = Release|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {9431FF1F-AD75-4A1E-B38A-46E0F109411D}.TEST|x86.Build.0 = TEST|Any CPU
{A2E6978B-FE78-433C-8A17-624579B393DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A2E6978B-FE78-433C-8A17-624579B393DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A2E6978B-FE78-433C-8A17-624579B393DF}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -332,6 +367,10 @@ Global
{A2E6978B-FE78-433C-8A17-624579B393DF}.Release|Any CPU.Build.0 = Release|Any CPU
{A2E6978B-FE78-433C-8A17-624579B393DF}.Release|x86.ActiveCfg = Release|Any CPU
{A2E6978B-FE78-433C-8A17-624579B393DF}.Release|x86.Build.0 = Release|Any CPU
+ {A2E6978B-FE78-433C-8A17-624579B393DF}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {A2E6978B-FE78-433C-8A17-624579B393DF}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {A2E6978B-FE78-433C-8A17-624579B393DF}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {A2E6978B-FE78-433C-8A17-624579B393DF}.TEST|x86.Build.0 = TEST|Any CPU
{295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.Debug|Any CPU.Build.0 = Debug|Any CPU
{295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -340,6 +379,10 @@ Global
{295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.Release|Any CPU.Build.0 = Release|Any CPU
{295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.Release|x86.ActiveCfg = Release|Any CPU
{295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.Release|x86.Build.0 = Release|Any CPU
+ {295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {295AA95F-BEC6-4F9E-A2E1-8205FD06E951}.TEST|x86.Build.0 = TEST|Any CPU
{39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -348,6 +391,10 @@ Global
{39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.Release|Any CPU.Build.0 = Release|Any CPU
{39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.Release|x86.ActiveCfg = Release|Any CPU
{39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.Release|x86.Build.0 = Release|Any CPU
+ {39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {39D2CC10-CD6B-4BC3-B42C-CA26004D38EB}.TEST|x86.Build.0 = TEST|Any CPU
{63C45839-60B2-41BC-973E-C2EF11F33E34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63C45839-60B2-41BC-973E-C2EF11F33E34}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63C45839-60B2-41BC-973E-C2EF11F33E34}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -356,6 +403,10 @@ Global
{63C45839-60B2-41BC-973E-C2EF11F33E34}.Release|Any CPU.Build.0 = Release|Any CPU
{63C45839-60B2-41BC-973E-C2EF11F33E34}.Release|x86.ActiveCfg = Release|Any CPU
{63C45839-60B2-41BC-973E-C2EF11F33E34}.Release|x86.Build.0 = Release|Any CPU
+ {63C45839-60B2-41BC-973E-C2EF11F33E34}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {63C45839-60B2-41BC-973E-C2EF11F33E34}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {63C45839-60B2-41BC-973E-C2EF11F33E34}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {63C45839-60B2-41BC-973E-C2EF11F33E34}.TEST|x86.Build.0 = TEST|Any CPU
{EDDF5700-D198-491B-B94C-D63916F8BA70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDDF5700-D198-491B-B94C-D63916F8BA70}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EDDF5700-D198-491B-B94C-D63916F8BA70}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -364,6 +415,10 @@ Global
{EDDF5700-D198-491B-B94C-D63916F8BA70}.Release|Any CPU.Build.0 = Release|Any CPU
{EDDF5700-D198-491B-B94C-D63916F8BA70}.Release|x86.ActiveCfg = Release|Any CPU
{EDDF5700-D198-491B-B94C-D63916F8BA70}.Release|x86.Build.0 = Release|Any CPU
+ {EDDF5700-D198-491B-B94C-D63916F8BA70}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {EDDF5700-D198-491B-B94C-D63916F8BA70}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {EDDF5700-D198-491B-B94C-D63916F8BA70}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {EDDF5700-D198-491B-B94C-D63916F8BA70}.TEST|x86.Build.0 = TEST|Any CPU
{3402C6D1-4F86-42C4-881E-DA69FD851CD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3402C6D1-4F86-42C4-881E-DA69FD851CD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3402C6D1-4F86-42C4-881E-DA69FD851CD9}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -372,6 +427,10 @@ Global
{3402C6D1-4F86-42C4-881E-DA69FD851CD9}.Release|Any CPU.Build.0 = Release|Any CPU
{3402C6D1-4F86-42C4-881E-DA69FD851CD9}.Release|x86.ActiveCfg = Release|Any CPU
{3402C6D1-4F86-42C4-881E-DA69FD851CD9}.Release|x86.Build.0 = Release|Any CPU
+ {3402C6D1-4F86-42C4-881E-DA69FD851CD9}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {3402C6D1-4F86-42C4-881E-DA69FD851CD9}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {3402C6D1-4F86-42C4-881E-DA69FD851CD9}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {3402C6D1-4F86-42C4-881E-DA69FD851CD9}.TEST|x86.Build.0 = TEST|Any CPU
{8CB21203-0659-473A-8C7E-D5B178F00041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CB21203-0659-473A-8C7E-D5B178F00041}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CB21203-0659-473A-8C7E-D5B178F00041}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -380,6 +439,10 @@ Global
{8CB21203-0659-473A-8C7E-D5B178F00041}.Release|Any CPU.Build.0 = Release|Any CPU
{8CB21203-0659-473A-8C7E-D5B178F00041}.Release|x86.ActiveCfg = Release|Any CPU
{8CB21203-0659-473A-8C7E-D5B178F00041}.Release|x86.Build.0 = Release|Any CPU
+ {8CB21203-0659-473A-8C7E-D5B178F00041}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {8CB21203-0659-473A-8C7E-D5B178F00041}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {8CB21203-0659-473A-8C7E-D5B178F00041}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {8CB21203-0659-473A-8C7E-D5B178F00041}.TEST|x86.Build.0 = TEST|Any CPU
{8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -388,6 +451,10 @@ Global
{8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.Release|Any CPU.Build.0 = Release|Any CPU
{8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.Release|x86.ActiveCfg = Release|Any CPU
{8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.Release|x86.Build.0 = Release|Any CPU
+ {8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {8F2B0616-46D1-4BC2-95EE-AB9533E676D0}.TEST|x86.Build.0 = TEST|Any CPU
{E78BE459-4E5F-4830-911A-9E23B9981410}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E78BE459-4E5F-4830-911A-9E23B9981410}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E78BE459-4E5F-4830-911A-9E23B9981410}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -396,6 +463,10 @@ Global
{E78BE459-4E5F-4830-911A-9E23B9981410}.Release|Any CPU.Build.0 = Release|Any CPU
{E78BE459-4E5F-4830-911A-9E23B9981410}.Release|x86.ActiveCfg = Release|Any CPU
{E78BE459-4E5F-4830-911A-9E23B9981410}.Release|x86.Build.0 = Release|Any CPU
+ {E78BE459-4E5F-4830-911A-9E23B9981410}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {E78BE459-4E5F-4830-911A-9E23B9981410}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {E78BE459-4E5F-4830-911A-9E23B9981410}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {E78BE459-4E5F-4830-911A-9E23B9981410}.TEST|x86.Build.0 = TEST|Any CPU
{73BB6747-106D-44EE-BE78-21238A7510C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{73BB6747-106D-44EE-BE78-21238A7510C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73BB6747-106D-44EE-BE78-21238A7510C1}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -404,6 +475,10 @@ Global
{73BB6747-106D-44EE-BE78-21238A7510C1}.Release|Any CPU.Build.0 = Release|Any CPU
{73BB6747-106D-44EE-BE78-21238A7510C1}.Release|x86.ActiveCfg = Release|Any CPU
{73BB6747-106D-44EE-BE78-21238A7510C1}.Release|x86.Build.0 = Release|Any CPU
+ {73BB6747-106D-44EE-BE78-21238A7510C1}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {73BB6747-106D-44EE-BE78-21238A7510C1}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {73BB6747-106D-44EE-BE78-21238A7510C1}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {73BB6747-106D-44EE-BE78-21238A7510C1}.TEST|x86.Build.0 = TEST|Any CPU
{6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -412,6 +487,10 @@ Global
{6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.Release|Any CPU.Build.0 = Release|Any CPU
{6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.Release|x86.ActiveCfg = Release|Any CPU
{6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.Release|x86.Build.0 = Release|Any CPU
+ {6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {6575A354-AB4D-4BD1-989C-DAD9E725E5EB}.TEST|x86.Build.0 = TEST|Any CPU
{AD34EE2D-9665-402E-A349-554330D1A970}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AD34EE2D-9665-402E-A349-554330D1A970}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AD34EE2D-9665-402E-A349-554330D1A970}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -420,6 +499,10 @@ Global
{AD34EE2D-9665-402E-A349-554330D1A970}.Release|Any CPU.Build.0 = Release|Any CPU
{AD34EE2D-9665-402E-A349-554330D1A970}.Release|x86.ActiveCfg = Release|Any CPU
{AD34EE2D-9665-402E-A349-554330D1A970}.Release|x86.Build.0 = Release|Any CPU
+ {AD34EE2D-9665-402E-A349-554330D1A970}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {AD34EE2D-9665-402E-A349-554330D1A970}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {AD34EE2D-9665-402E-A349-554330D1A970}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {AD34EE2D-9665-402E-A349-554330D1A970}.TEST|x86.Build.0 = TEST|Any CPU
{D42E1F90-D9D5-4882-9103-758840382574}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D42E1F90-D9D5-4882-9103-758840382574}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D42E1F90-D9D5-4882-9103-758840382574}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -428,6 +511,10 @@ Global
{D42E1F90-D9D5-4882-9103-758840382574}.Release|Any CPU.Build.0 = Release|Any CPU
{D42E1F90-D9D5-4882-9103-758840382574}.Release|x86.ActiveCfg = Release|Any CPU
{D42E1F90-D9D5-4882-9103-758840382574}.Release|x86.Build.0 = Release|Any CPU
+ {D42E1F90-D9D5-4882-9103-758840382574}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {D42E1F90-D9D5-4882-9103-758840382574}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {D42E1F90-D9D5-4882-9103-758840382574}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {D42E1F90-D9D5-4882-9103-758840382574}.TEST|x86.Build.0 = TEST|Any CPU
{1B72C465-A0F6-4865-836B-2334E3F3376F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B72C465-A0F6-4865-836B-2334E3F3376F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B72C465-A0F6-4865-836B-2334E3F3376F}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -436,6 +523,10 @@ Global
{1B72C465-A0F6-4865-836B-2334E3F3376F}.Release|Any CPU.Build.0 = Release|Any CPU
{1B72C465-A0F6-4865-836B-2334E3F3376F}.Release|x86.ActiveCfg = Release|Any CPU
{1B72C465-A0F6-4865-836B-2334E3F3376F}.Release|x86.Build.0 = Release|Any CPU
+ {1B72C465-A0F6-4865-836B-2334E3F3376F}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {1B72C465-A0F6-4865-836B-2334E3F3376F}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {1B72C465-A0F6-4865-836B-2334E3F3376F}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {1B72C465-A0F6-4865-836B-2334E3F3376F}.TEST|x86.Build.0 = TEST|Any CPU
{361F9108-91F2-4C9F-BE90-12732DF72B8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{361F9108-91F2-4C9F-BE90-12732DF72B8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{361F9108-91F2-4C9F-BE90-12732DF72B8D}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -444,6 +535,10 @@ Global
{361F9108-91F2-4C9F-BE90-12732DF72B8D}.Release|Any CPU.Build.0 = Release|Any CPU
{361F9108-91F2-4C9F-BE90-12732DF72B8D}.Release|x86.ActiveCfg = Release|Any CPU
{361F9108-91F2-4C9F-BE90-12732DF72B8D}.Release|x86.Build.0 = Release|Any CPU
+ {361F9108-91F2-4C9F-BE90-12732DF72B8D}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {361F9108-91F2-4C9F-BE90-12732DF72B8D}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {361F9108-91F2-4C9F-BE90-12732DF72B8D}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {361F9108-91F2-4C9F-BE90-12732DF72B8D}.TEST|x86.Build.0 = TEST|Any CPU
{6D59FC7A-6F27-4140-BA41-F89126490C4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6D59FC7A-6F27-4140-BA41-F89126490C4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D59FC7A-6F27-4140-BA41-F89126490C4C}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -452,6 +547,10 @@ Global
{6D59FC7A-6F27-4140-BA41-F89126490C4C}.Release|Any CPU.Build.0 = Release|Any CPU
{6D59FC7A-6F27-4140-BA41-F89126490C4C}.Release|x86.ActiveCfg = Release|Any CPU
{6D59FC7A-6F27-4140-BA41-F89126490C4C}.Release|x86.Build.0 = Release|Any CPU
+ {6D59FC7A-6F27-4140-BA41-F89126490C4C}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {6D59FC7A-6F27-4140-BA41-F89126490C4C}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {6D59FC7A-6F27-4140-BA41-F89126490C4C}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {6D59FC7A-6F27-4140-BA41-F89126490C4C}.TEST|x86.Build.0 = TEST|Any CPU
{FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -460,6 +559,10 @@ Global
{FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.Release|Any CPU.Build.0 = Release|Any CPU
{FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.Release|x86.ActiveCfg = Release|Any CPU
{FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.Release|x86.Build.0 = Release|Any CPU
+ {FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B}.TEST|x86.Build.0 = TEST|Any CPU
{408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.Debug|Any CPU.Build.0 = Debug|Any CPU
{408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -468,6 +571,10 @@ Global
{408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.Release|Any CPU.Build.0 = Release|Any CPU
{408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.Release|x86.ActiveCfg = Release|Any CPU
{408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.Release|x86.Build.0 = Release|Any CPU
+ {408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {408E5ACC-EA9A-41E8-AA95-514C5F47BD34}.TEST|x86.Build.0 = TEST|Any CPU
{B7077A34-D7F0-4422-BE7C-65DF26C65489}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B7077A34-D7F0-4422-BE7C-65DF26C65489}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B7077A34-D7F0-4422-BE7C-65DF26C65489}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -476,62 +583,10 @@ Global
{B7077A34-D7F0-4422-BE7C-65DF26C65489}.Release|Any CPU.Build.0 = Release|Any CPU
{B7077A34-D7F0-4422-BE7C-65DF26C65489}.Release|x86.ActiveCfg = Release|Any CPU
{B7077A34-D7F0-4422-BE7C-65DF26C65489}.Release|x86.Build.0 = Release|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Debug|x86.ActiveCfg = Debug|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Debug|x86.Build.0 = Debug|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Release|Any CPU.Build.0 = Release|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Release|x86.ActiveCfg = Release|Any CPU
- {4D219A6D-4528-4622-AF29-96F830C4D076}.Release|x86.Build.0 = Release|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Debug|x86.Build.0 = Debug|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Release|Any CPU.Build.0 = Release|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Release|x86.ActiveCfg = Release|Any CPU
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18}.Release|x86.Build.0 = Release|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Debug|x86.ActiveCfg = Debug|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Debug|x86.Build.0 = Debug|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Release|Any CPU.Build.0 = Release|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Release|x86.ActiveCfg = Release|Any CPU
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057}.Release|x86.Build.0 = Release|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Debug|x86.Build.0 = Debug|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Release|Any CPU.Build.0 = Release|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Release|x86.ActiveCfg = Release|Any CPU
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B}.Release|x86.Build.0 = Release|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Debug|x86.ActiveCfg = Debug|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Debug|x86.Build.0 = Debug|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Release|Any CPU.Build.0 = Release|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Release|x86.ActiveCfg = Release|Any CPU
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA}.Release|x86.Build.0 = Release|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Debug|x86.ActiveCfg = Debug|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Debug|x86.Build.0 = Debug|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Release|Any CPU.Build.0 = Release|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Release|x86.ActiveCfg = Release|Any CPU
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A}.Release|x86.Build.0 = Release|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Debug|x86.ActiveCfg = Debug|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Debug|x86.Build.0 = Debug|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Release|Any CPU.Build.0 = Release|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Release|x86.ActiveCfg = Release|Any CPU
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297}.Release|x86.Build.0 = Release|Any CPU
+ {B7077A34-D7F0-4422-BE7C-65DF26C65489}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {B7077A34-D7F0-4422-BE7C-65DF26C65489}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {B7077A34-D7F0-4422-BE7C-65DF26C65489}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {B7077A34-D7F0-4422-BE7C-65DF26C65489}.TEST|x86.Build.0 = TEST|Any CPU
{3DD192AF-2D72-449F-936C-ED8734225B18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DD192AF-2D72-449F-936C-ED8734225B18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3DD192AF-2D72-449F-936C-ED8734225B18}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -540,6 +595,10 @@ Global
{3DD192AF-2D72-449F-936C-ED8734225B18}.Release|Any CPU.Build.0 = Release|Any CPU
{3DD192AF-2D72-449F-936C-ED8734225B18}.Release|x86.ActiveCfg = Release|Any CPU
{3DD192AF-2D72-449F-936C-ED8734225B18}.Release|x86.Build.0 = Release|Any CPU
+ {3DD192AF-2D72-449F-936C-ED8734225B18}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {3DD192AF-2D72-449F-936C-ED8734225B18}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {3DD192AF-2D72-449F-936C-ED8734225B18}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {3DD192AF-2D72-449F-936C-ED8734225B18}.TEST|x86.Build.0 = TEST|Any CPU
{FF46829E-B612-4D36-80BE-ED04521AD91A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF46829E-B612-4D36-80BE-ED04521AD91A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF46829E-B612-4D36-80BE-ED04521AD91A}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -548,14 +607,10 @@ Global
{FF46829E-B612-4D36-80BE-ED04521AD91A}.Release|Any CPU.Build.0 = Release|Any CPU
{FF46829E-B612-4D36-80BE-ED04521AD91A}.Release|x86.ActiveCfg = Release|Any CPU
{FF46829E-B612-4D36-80BE-ED04521AD91A}.Release|x86.Build.0 = Release|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Debug|x86.Build.0 = Debug|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Release|Any CPU.Build.0 = Release|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Release|x86.ActiveCfg = Release|Any CPU
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67}.Release|x86.Build.0 = Release|Any CPU
+ {FF46829E-B612-4D36-80BE-ED04521AD91A}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {FF46829E-B612-4D36-80BE-ED04521AD91A}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {FF46829E-B612-4D36-80BE-ED04521AD91A}.TEST|x86.ActiveCfg = TEST|x86
+ {FF46829E-B612-4D36-80BE-ED04521AD91A}.TEST|x86.Build.0 = TEST|x86
{D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -564,6 +619,10 @@ Global
{D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.Release|Any CPU.Build.0 = Release|Any CPU
{D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.Release|x86.ActiveCfg = Release|Any CPU
{D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.Release|x86.Build.0 = Release|Any CPU
+ {D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {D21A7C6C-A696-4EC3-84EB-70700C1E3B34}.TEST|x86.Build.0 = TEST|Any CPU
{0DF97CAC-220B-4DAD-B397-42E394255763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0DF97CAC-220B-4DAD-B397-42E394255763}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0DF97CAC-220B-4DAD-B397-42E394255763}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -572,6 +631,10 @@ Global
{0DF97CAC-220B-4DAD-B397-42E394255763}.Release|Any CPU.Build.0 = Release|Any CPU
{0DF97CAC-220B-4DAD-B397-42E394255763}.Release|x86.ActiveCfg = Release|Any CPU
{0DF97CAC-220B-4DAD-B397-42E394255763}.Release|x86.Build.0 = Release|Any CPU
+ {0DF97CAC-220B-4DAD-B397-42E394255763}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {0DF97CAC-220B-4DAD-B397-42E394255763}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {0DF97CAC-220B-4DAD-B397-42E394255763}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {0DF97CAC-220B-4DAD-B397-42E394255763}.TEST|x86.Build.0 = TEST|Any CPU
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -580,6 +643,10 @@ Global
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Release|Any CPU.Build.0 = Release|Any CPU
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Release|x86.ActiveCfg = Release|Any CPU
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.Release|x86.Build.0 = Release|Any CPU
+ {2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {2992AA07-E126-4EE0-B31C-D0B2ADE3393A}.TEST|x86.Build.0 = TEST|Any CPU
{3421E19D-16C7-4593-9F6B-291ECB86A3EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3421E19D-16C7-4593-9F6B-291ECB86A3EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3421E19D-16C7-4593-9F6B-291ECB86A3EB}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -588,6 +655,10 @@ Global
{3421E19D-16C7-4593-9F6B-291ECB86A3EB}.Release|Any CPU.Build.0 = Release|Any CPU
{3421E19D-16C7-4593-9F6B-291ECB86A3EB}.Release|x86.ActiveCfg = Release|Any CPU
{3421E19D-16C7-4593-9F6B-291ECB86A3EB}.Release|x86.Build.0 = Release|Any CPU
+ {3421E19D-16C7-4593-9F6B-291ECB86A3EB}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {3421E19D-16C7-4593-9F6B-291ECB86A3EB}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {3421E19D-16C7-4593-9F6B-291ECB86A3EB}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {3421E19D-16C7-4593-9F6B-291ECB86A3EB}.TEST|x86.Build.0 = TEST|Any CPU
{FD509DE0-21DA-4C40-A5CE-767311C6F084}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD509DE0-21DA-4C40-A5CE-767311C6F084}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD509DE0-21DA-4C40-A5CE-767311C6F084}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -596,6 +667,10 @@ Global
{FD509DE0-21DA-4C40-A5CE-767311C6F084}.Release|Any CPU.Build.0 = Release|Any CPU
{FD509DE0-21DA-4C40-A5CE-767311C6F084}.Release|x86.ActiveCfg = Release|Any CPU
{FD509DE0-21DA-4C40-A5CE-767311C6F084}.Release|x86.Build.0 = Release|Any CPU
+ {FD509DE0-21DA-4C40-A5CE-767311C6F084}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {FD509DE0-21DA-4C40-A5CE-767311C6F084}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {FD509DE0-21DA-4C40-A5CE-767311C6F084}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {FD509DE0-21DA-4C40-A5CE-767311C6F084}.TEST|x86.Build.0 = TEST|Any CPU
{65EE0B97-D3F0-400D-B432-85FF5553C44E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{65EE0B97-D3F0-400D-B432-85FF5553C44E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{65EE0B97-D3F0-400D-B432-85FF5553C44E}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -604,6 +679,10 @@ Global
{65EE0B97-D3F0-400D-B432-85FF5553C44E}.Release|Any CPU.Build.0 = Release|Any CPU
{65EE0B97-D3F0-400D-B432-85FF5553C44E}.Release|x86.ActiveCfg = Release|Any CPU
{65EE0B97-D3F0-400D-B432-85FF5553C44E}.Release|x86.Build.0 = Release|Any CPU
+ {65EE0B97-D3F0-400D-B432-85FF5553C44E}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {65EE0B97-D3F0-400D-B432-85FF5553C44E}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {65EE0B97-D3F0-400D-B432-85FF5553C44E}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {65EE0B97-D3F0-400D-B432-85FF5553C44E}.TEST|x86.Build.0 = TEST|Any CPU
{8574E797-7C48-4F12-B537-4F927BCBA93B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8574E797-7C48-4F12-B537-4F927BCBA93B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8574E797-7C48-4F12-B537-4F927BCBA93B}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -612,6 +691,10 @@ Global
{8574E797-7C48-4F12-B537-4F927BCBA93B}.Release|Any CPU.Build.0 = Release|Any CPU
{8574E797-7C48-4F12-B537-4F927BCBA93B}.Release|x86.ActiveCfg = Release|Any CPU
{8574E797-7C48-4F12-B537-4F927BCBA93B}.Release|x86.Build.0 = Release|Any CPU
+ {8574E797-7C48-4F12-B537-4F927BCBA93B}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {8574E797-7C48-4F12-B537-4F927BCBA93B}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {8574E797-7C48-4F12-B537-4F927BCBA93B}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {8574E797-7C48-4F12-B537-4F927BCBA93B}.TEST|x86.Build.0 = TEST|Any CPU
{6FD558D2-532B-45EF-AC5D-9163B33C919F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6FD558D2-532B-45EF-AC5D-9163B33C919F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6FD558D2-532B-45EF-AC5D-9163B33C919F}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -620,6 +703,10 @@ Global
{6FD558D2-532B-45EF-AC5D-9163B33C919F}.Release|Any CPU.Build.0 = Release|Any CPU
{6FD558D2-532B-45EF-AC5D-9163B33C919F}.Release|x86.ActiveCfg = Release|Any CPU
{6FD558D2-532B-45EF-AC5D-9163B33C919F}.Release|x86.Build.0 = Release|Any CPU
+ {6FD558D2-532B-45EF-AC5D-9163B33C919F}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {6FD558D2-532B-45EF-AC5D-9163B33C919F}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {6FD558D2-532B-45EF-AC5D-9163B33C919F}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {6FD558D2-532B-45EF-AC5D-9163B33C919F}.TEST|x86.Build.0 = TEST|Any CPU
{99E24E61-0743-47FF-AB0A-55A36C5E184C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99E24E61-0743-47FF-AB0A-55A36C5E184C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99E24E61-0743-47FF-AB0A-55A36C5E184C}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -628,6 +715,10 @@ Global
{99E24E61-0743-47FF-AB0A-55A36C5E184C}.Release|Any CPU.Build.0 = Release|Any CPU
{99E24E61-0743-47FF-AB0A-55A36C5E184C}.Release|x86.ActiveCfg = Release|Any CPU
{99E24E61-0743-47FF-AB0A-55A36C5E184C}.Release|x86.Build.0 = Release|Any CPU
+ {99E24E61-0743-47FF-AB0A-55A36C5E184C}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {99E24E61-0743-47FF-AB0A-55A36C5E184C}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {99E24E61-0743-47FF-AB0A-55A36C5E184C}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {99E24E61-0743-47FF-AB0A-55A36C5E184C}.TEST|x86.Build.0 = TEST|Any CPU
{970C5E07-5D09-4882-949C-A8E876B22732}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{970C5E07-5D09-4882-949C-A8E876B22732}.Debug|Any CPU.Build.0 = Debug|Any CPU
{970C5E07-5D09-4882-949C-A8E876B22732}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -636,6 +727,10 @@ Global
{970C5E07-5D09-4882-949C-A8E876B22732}.Release|Any CPU.Build.0 = Release|Any CPU
{970C5E07-5D09-4882-949C-A8E876B22732}.Release|x86.ActiveCfg = Release|Any CPU
{970C5E07-5D09-4882-949C-A8E876B22732}.Release|x86.Build.0 = Release|Any CPU
+ {970C5E07-5D09-4882-949C-A8E876B22732}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {970C5E07-5D09-4882-949C-A8E876B22732}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {970C5E07-5D09-4882-949C-A8E876B22732}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {970C5E07-5D09-4882-949C-A8E876B22732}.TEST|x86.Build.0 = TEST|Any CPU
{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -644,12 +739,87 @@ Global
{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.Release|Any CPU.Build.0 = Release|Any CPU
{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.Release|x86.ActiveCfg = Release|Any CPU
{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.Release|x86.Build.0 = Release|Any CPU
+ {BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {BB6A5306-4C7A-4973-A48E-9FE3E683EAEC}.TEST|x86.Build.0 = TEST|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Debug|x86.Build.0 = Debug|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Release|x86.ActiveCfg = Release|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.Release|x86.Build.0 = Release|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B}.TEST|x86.Build.0 = TEST|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Debug|x86.Build.0 = Debug|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Release|Any CPU.Build.0 = Release|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Release|x86.ActiveCfg = Release|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.Release|x86.Build.0 = Release|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729}.TEST|x86.Build.0 = TEST|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Debug|x86.Build.0 = Debug|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Release|Any CPU.Build.0 = Release|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Release|x86.ActiveCfg = Release|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.Release|x86.Build.0 = Release|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637}.TEST|x86.Build.0 = TEST|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Debug|x86.Build.0 = Debug|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Release|x86.ActiveCfg = Release|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.Release|x86.Build.0 = Release|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.TEST|Any CPU.ActiveCfg = Debug|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.TEST|Any CPU.Build.0 = Debug|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.TEST|x86.ActiveCfg = Debug|Any CPU
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5}.TEST|x86.Build.0 = Debug|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Debug|x86.Build.0 = Debug|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Release|x86.ActiveCfg = Release|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.Release|x86.Build.0 = Release|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.TEST|Any CPU.ActiveCfg = TEST|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.TEST|Any CPU.Build.0 = TEST|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.TEST|x86.ActiveCfg = TEST|Any CPU
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C}.TEST|x86.Build.0 = TEST|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Debug|x86.Build.0 = Debug|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Release|x86.ActiveCfg = Release|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.Release|x86.Build.0 = Release|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.TEST|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.TEST|Any CPU.Build.0 = Debug|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.TEST|x86.ActiveCfg = Debug|Any CPU
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567}.TEST|x86.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {0CDB3F6E-7971-426B-81F8-38B966A54C2B} = {E9CD521E-C386-466D-B5F7-A5EB19A61625}
{F74A4B2B-02DA-455A-89FB-803A442B5B2C} = {DAEF99B5-22F0-4885-B45B-9B600B857E1C}
{4F903492-CCA6-4FD9-A1B6-5E4CC0CE7767} = {C286932C-3F6D-47F0-BEEF-26843D1BB11B}
{34AEEB7C-FD5D-4B15-A830-B429681844BD} = {C286932C-3F6D-47F0-BEEF-26843D1BB11B}
@@ -687,42 +857,32 @@ Global
{E78BE459-4E5F-4830-911A-9E23B9981410} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
{73BB6747-106D-44EE-BE78-21238A7510C1} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
{6575A354-AB4D-4BD1-989C-DAD9E725E5EB} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
- {AD34EE2D-9665-402E-A349-554330D1A970} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
+ {AD34EE2D-9665-402E-A349-554330D1A970} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
{D42E1F90-D9D5-4882-9103-758840382574} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
{1B72C465-A0F6-4865-836B-2334E3F3376F} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
{361F9108-91F2-4C9F-BE90-12732DF72B8D} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
{6D59FC7A-6F27-4140-BA41-F89126490C4C} = {0E67EFE8-5944-4F6C-8B47-C5E06D4C79F5}
- {FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
+ {FB23BD72-AEC3-485E-B86C-8E7DB0B3BB9B} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
{408E5ACC-EA9A-41E8-AA95-514C5F47BD34} = {52D81759-C7CC-427F-8C96-89CA10C914B5}
{B7077A34-D7F0-4422-BE7C-65DF26C65489} = {04B18FFC-8EA0-4E9F-9E1B-478527B19AFA}
- {29B893F7-6C0F-4710-A60E-7FB3498BCA63} = {99192440-2DD7-4E71-B730-D44A73F46533}
- {B4CB7BF5-CADF-4056-9C09-EAAC50BC76C0} = {99192440-2DD7-4E71-B730-D44A73F46533}
- {E4299234-8323-43F6-B684-350A1232746B} = {99192440-2DD7-4E71-B730-D44A73F46533}
- {DE38917F-969B-486C-AF83-C59E5E52400A} = {99192440-2DD7-4E71-B730-D44A73F46533}
- {02FF94AF-6BA3-49ED-A027-A63F591C310D} = {99192440-2DD7-4E71-B730-D44A73F46533}
- {1FC213DE-5033-40E1-9C16-5F1A0CDC9693} = {99192440-2DD7-4E71-B730-D44A73F46533}
- {4D219A6D-4528-4622-AF29-96F830C4D076} = {29B893F7-6C0F-4710-A60E-7FB3498BCA63}
- {6CBABA8D-4207-4E1E-8122-63DB51D25F18} = {B4CB7BF5-CADF-4056-9C09-EAAC50BC76C0}
- {16ECD6DE-6F65-4A5C-8B49-A29782D9D057} = {E4299234-8323-43F6-B684-350A1232746B}
- {F588033A-6B7D-4ABF-96C4-73D8B2271A6B} = {DE38917F-969B-486C-AF83-C59E5E52400A}
- {756ECECD-B213-42F0-BF58-4A91B4C47FAA} = {1FC213DE-5033-40E1-9C16-5F1A0CDC9693}
- {C000BFB2-DFDE-4B1E-BDA6-988B30370C7A} = {929EE8ED-6AD3-4442-A0C1-EC70665F2DCF}
- {0C7C9F9D-6498-45E8-B77B-FF4D381C3297} = {29B893F7-6C0F-4710-A60E-7FB3498BCA63}
- {3DD192AF-2D72-449F-936C-ED8734225B18} = {C286932C-3F6D-47F0-BEEF-26843D1BB11B}
- {929EE8ED-6AD3-4442-A0C1-EC70665F2DCF} = {99192440-2DD7-4E71-B730-D44A73F46533}
{FF46829E-B612-4D36-80BE-ED04521AD91A} = {E9CD521E-C386-466D-B5F7-A5EB19A61625}
- {D0EABA08-88C9-4F7C-BCA9-361B58B20D67} = {E9CD521E-C386-466D-B5F7-A5EB19A61625}
{D21A7C6C-A696-4EC3-84EB-70700C1E3B34} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
{0DF97CAC-220B-4DAD-B397-42E394255763} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
{2992AA07-E126-4EE0-B31C-D0B2ADE3393A} = {0E67EFE8-5944-4F6C-8B47-C5E06D4C79F5}
{3421E19D-16C7-4593-9F6B-291ECB86A3EB} = {F7C6CA93-1D02-443C-9C8B-A1988DE0306B}
- {FD509DE0-21DA-4C40-A5CE-767311C6F084} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
+ {FD509DE0-21DA-4C40-A5CE-767311C6F084} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
{65EE0B97-D3F0-400D-B432-85FF5553C44E} = {0E67EFE8-5944-4F6C-8B47-C5E06D4C79F5}
{8574E797-7C48-4F12-B537-4F927BCBA93B} = {0E67EFE8-5944-4F6C-8B47-C5E06D4C79F5}
{6FD558D2-532B-45EF-AC5D-9163B33C919F} = {52D81759-C7CC-427F-8C96-89CA10C914B5}
{99E24E61-0743-47FF-AB0A-55A36C5E184C} = {52D81759-C7CC-427F-8C96-89CA10C914B5}
{970C5E07-5D09-4882-949C-A8E876B22732} = {52D81759-C7CC-427F-8C96-89CA10C914B5}
{BB6A5306-4C7A-4973-A48E-9FE3E683EAEC} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
+ {3F28939D-5E06-44AC-8FC6-ADBBB89AC97B} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
+ {30D9FA9C-0B4D-40FF-8903-6B9E9C825729} = {ECEA7778-E786-4317-90B9-A2D4427CB91C}
+ {96855A39-A96B-4BDB-A6AE-29676DFEF637} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
+ {AC45D5B2-0D02-49B8-A88E-EABF34AE62B5} = {A45F0D24-1AF3-42BC-91A6-0262AFB1234D}
+ {8455DCAE-275E-47B3-B89B-2D9F3AB9977C} = {29EEC029-6A2B-478A-B6E5-D63A91388ABA}
+ {0C65F6CA-C897-40A3-A36E-0CCCAD01D567} = {9A923E6F-FF63-4F02-A4EA-C2D44F9323FD}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4418C803-277E-448F-A0A0-52788FA215AD}
diff --git a/Tests/.editorconfig b/Tests/.editorconfig
deleted file mode 100644
index bc94fcf6ba..0000000000
--- a/Tests/.editorconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-# top-most EditorConfig file
-root = true
-
-# Default settings:
-# A newline ending every file
-# Use tabs as indentation
-# Trim trailing whitespace
-[*]
-insert_final_newline = true
-indent_style = space
-indent_size = 4
-trim_trailing_whitespace = true
diff --git a/Tests/Cosmos.Common.Tests/Cosmos.Common.Tests.csproj b/Tests/Cosmos.Common.Tests/Cosmos.Common.Tests.csproj
index 0f92726716..c3c84138f6 100644
--- a/Tests/Cosmos.Common.Tests/Cosmos.Common.Tests.csproj
+++ b/Tests/Cosmos.Common.Tests/Cosmos.Common.Tests.csproj
@@ -1,7 +1,8 @@
- netcoreapp2.0
+ net6.0
+ Debug;Release;TEST
diff --git a/Tests/Cosmos.Common.Tests/packages.lock.json b/Tests/Cosmos.Common.Tests/packages.lock.json
new file mode 100644
index 0000000000..cf224c276a
--- /dev/null
+++ b/Tests/Cosmos.Common.Tests/packages.lock.json
@@ -0,0 +1,1314 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "MSTest.TestAdapter": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "1.1.11",
+ "contentHash": "wDO3wmvkMnPyHv7Gf5SqYvO9Zl15s+15pSizT12YAnh6oorjGWmKk1/h0hsOaJC1/u7Dsho0aA/umapYC1BeoQ=="
+ },
+ "MSTest.TestFramework": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "1.1.11",
+ "contentHash": "HBtCvEqN1TkaWH6Fvt4kZRqdmtcH1HhGWGBlITDshmjRnRYvo0LfJTyW9RWvcmC8TSrajI51EoZCmoBfF4iKog=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "fQnBHO9DgcmkC9dYSJoBqo6sH1VJwJprUHh8F3hbcRlxiQiBUuTntdk8tUwV490OqC2kQUrinGwZyQHTieuXRA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "q+eLtROUAQ3OxYA5mpQrgyFgzLQxIyrfT2eLpYX5IEPlHmIio2nh4F5bgOaQoGOV865kFKZZso9Oq9RlazvXtg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.0",
+ "contentHash": "ypsCvIdCZ4IoYASJHt6tF2fMo7N30NLgV1EbmC+snO490OMl9FvVxmumw14rhReWU3j3g7BYudG6YCrchwHJlA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "System.AppContext": "4.1.0",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Console": "4.0.0",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Calendars": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.Compression": "4.1.0",
+ "System.IO.Compression.ZipFile": "4.0.1",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.Net.Http": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Net.Sockets": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Timer": "4.0.1",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "QfS/nQI7k/BLgmLrw7qm7YBoULEvgWnPI+cYsbfCVFTW8Aj+i8JhccxcFMu1RWms0YZzF+UHguNBK4Qn89e2Sg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "Ob7nvnJBox1aaB222zSVZSkf4WrebPG4qFscfK7vmD7P7NxoSxACQLtO7ytWpqXDn2wcd/+45+EAZ7xjaPip8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Nh0UPZx2Vifh8r+J+H2jxifZUD3sBrmolgiFWJd2yiNrxO0xTa6bAw3YwRn1VOiSen/tUXMS31ttNItCZ6lKuA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.native.System.Security.Cryptography": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "2CQK0jmO6Eu7ZeMgD+LOFbNJSXHFVQbCJJkEyEwowh1SCgYnrn9W9RykMfpeeVGw7h4IBvYikzpGUlmZTUafJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "msXumHfjjURSkvxUjYuq4N2ghHoRi2VpXcKMA7gK6ujQfU3vGpl+B6ld0ATRg+FZFpRyA6PgEPA+VlIkTeNf2w==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "Cma8cBW6di16ZLibL8LYQ+cLjGzoKxpOTu/faZfDcx94ZjAGq6Nv5RO7+T1YZXqEXTZP9rt1wLVEONVpURtUqw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
+ "dependencies": {
+ "System.ComponentModel": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Collections.Specialized": "4.0.1",
+ "System.ComponentModel": "4.0.1",
+ "System.ComponentModel.Primitives": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "qSKUSOIiYA/a0g5XXdxFcUFmv1hNICBD7QZ0QhGYVipPIhvpiydY8VZqr1thmCXvmn8aipMg64zuanB4eotK9A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Runtime": "4.1.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "YKglnq4BMTJxfcr6nuT08g+yJ0UxdePIHxosiLuljuHIUR6t4KhFsyaHOaOc1Ofqp0PUvJ0EmcgiEz6T7vEx3w==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "Microsoft.Win32.Registry": "4.0.0",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Thread": "4.0.0",
+ "System.Threading.ThreadPool": "4.0.10",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "L1c6IqeQ88vuzC1P81JeHmHA8mxq8a18NUBNXnIY/BVb+TCyAaGIFbhpZt60h9FJNmisymoQkHEFSE9Vslja1Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "KKo23iKeOaIg61SSXwjANN7QYDr/3op3OWGGzDzz7mypx0Za0fZSeG0l6cco8Ntp8YMYkIQcAqlk8yhm5/Uhcg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "TjnBS6eztThSzeSib+WyVbLzEdLKUcEHN69VtS3u8aAsSc18FU6xCZlNWWsEd8SKcXAE+y1sOu7VbU8sUeM0sg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.IO.Compression": "4.1.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hBQYJzfTbQURF10nLhd+az2NHxsU6MU7AB8RUf4IolBP5lOAm4Luho851xl+CqslmhI5ZH/el8BlngEk4lBkaQ==",
+ "dependencies": {
+ "System.Buffers": "4.0.0",
+ "System.IO": "4.1.0",
+ "System.IO.Compression": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "IBErlVq5jOggAD69bg1t0pJcHaDbJbWNUZTPI96fkYWzwYbN6D9wRHMULLDd9dHsl7C2YsxXL31LMfPI1SWt8w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "kWkKD203JJKxJeE74p8aF8y4Qc9r9WQx4C0cHzHPrY3fv/L/IhWnyCHaFJ3H1QPOH6A93whlQ2vG5nHlBDvzWQ==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "ULq9g3SOPVuupt+Y3U+A37coXzdNisB1neFCSKzBwo182u0RDddKJF8I5+HfyXqK6OhJPgeoAwWXrbiUXuRDsg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.DiagnosticSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Net.Primitives": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.OpenSsl": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.Net.Http": "4.0.1",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "hVvfl4405DRjA2408luZekbPhplJK03j2Y2lSfMlny7GHXlkByw1iLnc9mgKW0GdQn73vvMcWrWewAhylXA4Nw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "xAz0N3dAV/aR/9g8r0Y5oEqU1JRsz29F5EGb/WVHmX3jVSLqi2/92M5hTad2aNWovruXrJpJtgZ9fccPMG9uSw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Runtime": "4.1.0",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Immutable": "1.2.0",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "nCJvEKguXEvk2ymk1gqj625vVnlK3/xdGzx0vOKicQkoquaTBJTP13AIYkocSUwHCLNBwUbXTqTWGDxBTWpt7g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "+XbKFuzdmLP3d1o9pdHu2nxjNr2OEPqGzKeegPLCUMM71a0t50A/rOcIRmGs9wR7a8KuHX6hYs/7/TymIGLNqg==",
+ "dependencies": {
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.2.0",
+ "contentHash": "8JQFxbLVdrtIOKMDN38Fn0GWnqYZw/oMlwOUG/qz1jqChvyZlnUmu+0s7wLx7JYua/nAXoESpHA3iw11QFWhXg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.2.0",
+ "contentHash": "cUJ2h+ZvONDe28Szw3st5dOHdjndhJzQ2WObDEXAWRPEQBtVItVoxbXM/OEsTthl3cNn2dk2k0I3y45igCQcLw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "/i1Usuo4PgAqgbPNC0NjbO3jPW//BoBlTpcWFD1EHVbidH21y4c1ap5bbEMSGAXjAShhMH4abi/K8fILrnu4BQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "FbKgE5MbxSQMPcSVRgwM6bXN3GtyAh04NkV8E5zKCBE26X0vYW0UtTa2FIgkH33WVqBVxRgxljlVYumWtU+HcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "HUG/zNUJwEiLkoURDixzkzZdB5yGA5pQhDP93ArOpDPQMteURIGERRNzzoJlmTreLBWr5lkFSjjMSk8ySEpQMw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "Wkd7QryWYjkQclX0bngpntW5HSlMzeJU24UaLJQ7YTfI8ydAVAaU2J+HXLLABOVJlKTVvAeL0Aj39VeTe7L+oA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "4HEfsQIKAhA1+ApNn729Gi09zh+lYWwyIuViihoMDWp1vQnEkL2ct7mAbhBlLYm+x/L4Rr/pyGge1lIY635e0w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Calendars": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Cng": "4.2.0",
+ "System.Security.Cryptography.Csp": "4.0.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.OpenSsl": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.Net.Http": "4.0.1",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==",
+ "dependencies": {
+ "System.Runtime": "4.1.0",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Runtime": "4.1.0",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.0.10",
+ "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==",
+ "dependencies": {
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "saGfUV8uqVW6LeURiqxcGhZ24PzuRNaUBtbhVeuUAvky1naH395A/1nY0P2bWvrw/BreRtIB/EzTDkGBpqCwEw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "ZIiLPsf67YZ9zgr31vzrFaYQqxRPX9cVHjtPSnmx4eN6lbS/yEyYNr2vs1doGDEscF0tjCZFsk9yUg1sC9e8tg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Tasks.Extensions": "4.0.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XPath": "4.0.1",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.Core.Memory.Test/Cosmos.Core.Memory.Test.csproj b/Tests/Cosmos.Core.Memory.Test/Cosmos.Core.Memory.Test.csproj
index 155c8dcb99..db2dcdda96 100644
--- a/Tests/Cosmos.Core.Memory.Test/Cosmos.Core.Memory.Test.csproj
+++ b/Tests/Cosmos.Core.Memory.Test/Cosmos.Core.Memory.Test.csproj
@@ -1,8 +1,9 @@
- netcoreapp2.0
+ net6.0
True
+ Debug;Release;TEST
diff --git a/Tests/Cosmos.Core.Memory.Test/Heap.xlsx b/Tests/Cosmos.Core.Memory.Test/Heap.xlsx
deleted file mode 100644
index 81857e4c24..0000000000
Binary files a/Tests/Cosmos.Core.Memory.Test/Heap.xlsx and /dev/null differ
diff --git a/Tests/Cosmos.Core.Memory.Test/RATTest.cs b/Tests/Cosmos.Core.Memory.Test/RATTest.cs
new file mode 100644
index 0000000000..8fae5b4a77
--- /dev/null
+++ b/Tests/Cosmos.Core.Memory.Test/RATTest.cs
@@ -0,0 +1,287 @@
+using System;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Native = System.UInt32;
+
+namespace Cosmos.Core.Memory.Test
+{
+ [TestClass]
+ public class MemoryTests
+ {
+
+
+ [TestMethod]
+ public unsafe void InitTest()
+ {
+ var xRAM = new byte[128 * 1024 * 1024]; // 128 MB
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+ Assert.IsTrue(HeapSmall.mMaxItemSize > 512);
+
+ uint xRatPages = RAT.GetPageCount((byte)RAT.PageType.RAT);
+ Assert.IsTrue(xRatPages > 0);
+
+ var xFreePages = RAT.GetPageCount((byte)RAT.PageType.Empty);
+ Assert.IsTrue(xFreePages > 0);
+
+ Assert.IsTrue(RAT.GetPageCount((byte)RAT.PageType.HeapSmall) > 0);
+
+ Assert.AreEqual(0, HeapSmall.GetAllocatedObjectCount());
+
+ Assert.AreEqual((uint)8, RAT.GetPageCount((byte)RAT.PageType.RAT));
+ }
+ }
+
+ [TestMethod]
+ public unsafe void RATMethods()
+ {
+ var xRAM = new byte[1024 * 1024];
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+ uint freePageCount = RAT.FreePageCount;
+ Assert.IsTrue(freePageCount < RAT.TotalPageCount);
+ Assert.AreEqual(freePageCount, RAT.GetPageCount((byte)RAT.PageType.Empty));
+
+ var largePage = RAT.AllocPages(RAT.PageType.HeapLarge, 3);
+ Assert.AreEqual(RAT.PageType.HeapLarge, RAT.GetPageType(largePage));
+ Assert.AreEqual(RAT.GetFirstRATIndex(largePage), RAT.GetFirstRATIndex((byte*)largePage + 20));
+ Assert.AreEqual(RAT.PageType.HeapLarge, RAT.GetPageType((byte*)largePage + RAT.PageSize));
+
+ Assert.AreEqual(RAT.FreePageCount, freePageCount - 3);
+ }
+ }
+
+ [TestMethod]
+ public unsafe void SmallAllocTest()
+ {
+ var xRAM = new byte[32 * 1024 * 1024]; // 32 MB
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+ uint smallPages = RAT.GetPageCount((byte)RAT.PageType.HeapSmall);
+ uint largePages = RAT.GetPageCount((byte)RAT.PageType.HeapLarge);
+
+ // the following allocations should all go on the same page
+ var ptr1 = Heap.Alloc(8);
+ var ptr2 = Heap.Alloc(3);
+ ptr2[0] = 12;
+ ptr2[1] = 101;
+ var ptr3 = Heap.Alloc(8);
+ var ptr4 = Heap.Alloc(20);
+ var ptr5 = Heap.Alloc(22);
+ Assert.AreNotEqual((uint)ptr1, (uint)ptr2);
+ Assert.AreEqual((uint)ptr2 - (uint)ptr1, (uint)ptr3 - (uint)ptr2);
+ Assert.AreEqual(24 + HeapSmall.PrefixItemBytes, (uint)ptr5 - (uint)ptr4);
+ Assert.AreEqual(RAT.PageSize, (uint)ptr4 - (uint)ptr1);
+ Assert.AreEqual(12, ptr2[0]);
+ Assert.AreEqual(smallPages, RAT.GetPageCount((byte)RAT.PageType.HeapSmall));
+ Assert.AreEqual(largePages, RAT.GetPageCount((byte)RAT.PageType.HeapLarge));
+ Assert.AreEqual(5, HeapSmall.GetAllocatedObjectCount());
+
+ Heap.Free(ptr2);
+ Assert.AreEqual(4, HeapSmall.GetAllocatedObjectCount());
+ Assert.AreEqual(0, ptr2[0]);
+ var nptr2 = Heap.Alloc(10);
+ Heap.Alloc(10);
+ Assert.AreEqual((uint)ptr2, (uint)nptr2); // we use the earliest free position
+ Assert.AreEqual(6, HeapSmall.GetAllocatedObjectCount());
+ }
+ }
+
+ [TestMethod]
+ public unsafe void SmallHeapMultiPageAllocationTest()
+ {
+ var xRAM = new byte[1024 * 1024]; // 4 MB
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+ uint smallPages = RAT.GetPageCount((byte)RAT.PageType.HeapSmall);
+
+
+ var ptr1 = Heap.Alloc(HeapSmall.mMaxItemSize); // 4 of them should fit on one page
+ var ptr2 = Heap.Alloc(HeapSmall.mMaxItemSize);
+ var ptr3 = Heap.Alloc(HeapSmall.mMaxItemSize);
+ var ptr4 = Heap.Alloc(HeapSmall.mMaxItemSize);
+ Assert.AreEqual((uint)ptr2 - (uint)ptr1, (uint)ptr4 - (uint)ptr3);
+ Assert.AreEqual((uint)RAT.GetPagePtr(ptr1), (uint)RAT.GetPagePtr(ptr2));
+ Assert.AreEqual(4, HeapSmall.GetAllocatedObjectCount());
+ Heap.Free(ptr4);
+ var nptr4 = Heap.Alloc(HeapSmall.mMaxItemSize);
+ Assert.AreEqual((uint)RAT.GetPagePtr(ptr1), (uint)RAT.GetPagePtr(ptr4));
+ var ptr5 = Heap.Alloc(HeapSmall.mMaxItemSize); // this should cause a new page to have to be created
+
+ uint largePages = RAT.GetPageCount((byte)RAT.PageType.HeapLarge);
+ Assert.AreEqual((uint)0, largePages);
+ Assert.AreEqual(smallPages + 1, RAT.GetPageCount((byte)RAT.PageType.HeapSmall));
+ Assert.AreNotEqual((uint)ptr1, (uint)ptr5);
+ Assert.IsTrue(((uint)ptr5 - (uint)ptr1) % RAT.PageSize == 0);
+ Assert.AreEqual(5, HeapSmall.GetAllocatedObjectCount());
+
+
+ // now lets force them to allocate 2 more pages
+ for (int i = 0; i < 8; i++)
+ {
+ Heap.Alloc(HeapSmall.mMaxItemSize - 2);
+ }
+ Assert.AreEqual(smallPages + 3, RAT.GetPageCount((byte)RAT.PageType.HeapSmall));
+ Assert.AreEqual(13, HeapSmall.GetAllocatedObjectCount());
+
+ }
+ }
+
+ [TestMethod]
+ public unsafe void SmallHeapTestExpansion()
+ {
+ var xRAM = new byte[1024 * 1024]; // 4 MB
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+ uint smallPages = RAT.GetPageCount((byte)RAT.PageType.HeapSmall);
+
+ for (int i = 0; i < 9; i++)
+ {
+ Heap.Alloc(600);
+ }
+
+ Assert.AreEqual(smallPages + 2, RAT.GetPageCount((byte)RAT.PageType.HeapSmall));
+ }
+ }
+
+ [TestMethod]
+ public unsafe void SmallHeapStressTest() // this test is important since it tests that the SMT table can grow to multiple pages
+ {
+ var xRAM = new byte[1024 * 1024]; // 4 MB
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+
+ Random random = new Random();
+
+ for (int i = 0; i < 1000; i++)
+ {
+ if (Heap.Alloc((uint)random.Next(4, (int)HeapSmall.mMaxItemSize)) == null)
+ {
+ Assert.Fail();
+ }
+ }
+ Assert.AreEqual(1000, HeapSmall.GetAllocatedObjectCount());
+ }
+ }
+
+ [TestMethod]
+ public unsafe void MediumLargeHeapTest() // as long as medium just does the same as the large heap, we can test them together
+ {
+ var xRAM = new byte[1024 * 1024]; // 4 MB
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+ var largeCount = RAT.GetPageCount((byte)RAT.PageType.HeapLarge);
+ var mediumCount = RAT.GetPageCount((byte)RAT.PageType.HeapMedium);
+
+ var ptr1 = Heap.Alloc(HeapMedium.MaxItemSize); // this will allocate two pages,
+ // since we simplify the math by assuming we never want only one full page
+ var ptr2 = Heap.Alloc(HeapMedium.MaxItemSize - 10);
+ var ptr3 = Heap.Alloc(HeapMedium.MaxItemSize + 10);
+
+ Assert.AreEqual(largeCount + 2, RAT.GetPageCount((byte)RAT.PageType.HeapLarge));
+ Assert.AreEqual(mediumCount + 3, RAT.GetPageCount((byte)RAT.PageType.HeapMedium));
+
+ var ptr4 = Heap.Alloc(RAT.PageSize * 5 - HeapLarge.PrefixBytes - 1);
+
+ Assert.AreEqual(largeCount + 7, RAT.GetPageCount((byte)RAT.PageType.HeapLarge));
+ Assert.AreEqual(6, (int)RAT.GetPageCount((byte)RAT.PageType.Extension));
+
+ Heap.Free(ptr4);
+ Assert.AreEqual(largeCount + 2, RAT.GetPageCount((byte)RAT.PageType.HeapLarge));
+ Assert.AreEqual(2, (int)RAT.GetPageCount((byte)RAT.PageType.Extension));
+
+ Heap.Free(ptr1);
+ Heap.Free(ptr2);
+
+ Assert.AreEqual(mediumCount, RAT.GetPageCount((byte)RAT.PageType.HeapMedium));
+ Assert.AreEqual(largeCount + 2, RAT.GetPageCount((byte)RAT.PageType.HeapLarge));
+ }
+ }
+
+ unsafe void FillRandom(byte* ptr, uint aSize) // fake new obj and fill object with something
+ {
+ Random random = new Random();
+ for (int i = 0; i < aSize; i++)
+ {
+ ptr[i] = (byte)random.Next(16, 32);
+ }
+ }
+
+ [TestMethod]
+ public unsafe void TestAllocPages() // ensure that we fail gracefully when memory gets full
+ {
+ var xRAM = new byte[10 * RAT.PageSize]; // 10 Pages - 1 for RAT and 9 for values
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+ RAT.Init(xPtr, (uint)xRAM.Length);
+ Assert.AreEqual((uint)1, RAT.GetPageCount((byte)RAT.PageType.RAT));
+
+ try
+ {
+ for (int i = 0; i < 10000; i++)
+ {
+ byte* ptr = Heap.Alloc(40);
+ FillRandom(ptr, 40);
+ if (ptr == null)
+ {
+ Assert.Fail();
+ }
+ Assert.AreEqual((uint)1, RAT.GetPageCount((byte)RAT.PageType.RAT));
+ }
+
+ }
+ catch (Exception e)
+ {
+ Assert.AreEqual("289", e.Message);
+ }
+
+ }
+ }
+
+ [TestMethod]
+ public unsafe void TestRATHeapMethods()
+ {
+ var xRAM = new byte[10 * RAT.PageSize]; // 10 Pages - 1 for RAT and 9 for values
+ fixed (byte* xPtr = xRAM)
+ {
+ RAT.Debug = true;
+ RAT.Init(xPtr, (uint)xRAM.Length);
+
+ var ptr1 = Heap.Alloc(10);
+ var ptr2 = Heap.Alloc(10);
+ var ptr3 = Heap.Alloc(10);
+ Assert.AreNotEqual((uint)ptr1, (uint)ptr2);
+ Assert.AreNotEqual((uint)ptr1, (uint)ptr3);
+ Assert.AreNotEqual((uint)ptr2, (uint)ptr3);
+ Assert.AreEqual(RAT.GetFirstRATIndex(ptr1), RAT.GetFirstRATIndex(ptr2));
+ Assert.AreEqual(RAT.GetFirstRATIndex(ptr1), RAT.GetFirstRATIndex(ptr3));
+ Assert.AreEqual((uint)RAT.GetPagePtr(ptr1), (uint)RAT.GetPagePtr(ptr2));
+ Assert.AreEqual((uint)RAT.GetPagePtr(ptr1), (uint)RAT.GetPagePtr(ptr3));
+ }
+ }
+ }
+}
diff --git a/Tests/Cosmos.Core.Memory.Test/UnitTest1.cs b/Tests/Cosmos.Core.Memory.Test/UnitTest1.cs
deleted file mode 100644
index b3e19b262c..0000000000
--- a/Tests/Cosmos.Core.Memory.Test/UnitTest1.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using System;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Native = System.UInt32;
-
-namespace Cosmos.Core.Memory.Test
-{
- [TestClass]
- public class MemoryTests
- {
- [TestMethod]
- public unsafe void OldHeapTest()
- {
- var xRAM = new byte[128 * 1024 * 1024]; // 128 MB
- xRAM[0] = 1;
- fixed (byte* xPtr = xRAM)
- {
- }
- Assert.IsTrue(true);
- }
-
- [TestMethod]
- public unsafe void RATTest()
- {
- var xRAM = new byte[128 * 1024 * 1024]; // 128 MB
- xRAM[0] = 1;
- fixed (byte* xPtr = xRAM)
- {
- RAT.Debug = true;
- //RAT.Init(xPtr, (Native)xRAM.LongLength);
- RAT.Init(xPtr, (Native) xRAM.Length);
-
- Native xRatPages = RAT.GetPageCount(RAT.PageType.RAT);
- Assert.IsTrue(xRatPages > 0);
-
- var xFreePages = RAT.GetPageCount(RAT.PageType.Empty);
- Assert.IsTrue(xFreePages > 0);
-
- var x1 = (Int32*) Heap.Alloc(sizeof(Int32));
- var xFreePages2 = RAT.GetPageCount(RAT.PageType.Empty);
- Assert.IsTrue(xFreePages - xFreePages2 == 1);
- //
- Heap.Free(x1);
- var xFreePages3 = RAT.GetPageCount(RAT.PageType.Empty);
- Assert.IsTrue(xFreePages3 == xFreePages2 + 1);
- }
- }
- }
-}
diff --git a/Tests/Cosmos.Core.Memory.Test/packages.lock.json b/Tests/Cosmos.Core.Memory.Test/packages.lock.json
new file mode 100644
index 0000000000..ab0920bc80
--- /dev/null
+++ b/Tests/Cosmos.Core.Memory.Test/packages.lock.json
@@ -0,0 +1,1318 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "MSTest.TestAdapter": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "1.1.11",
+ "contentHash": "wDO3wmvkMnPyHv7Gf5SqYvO9Zl15s+15pSizT12YAnh6oorjGWmKk1/h0hsOaJC1/u7Dsho0aA/umapYC1BeoQ=="
+ },
+ "MSTest.TestFramework": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "1.1.11",
+ "contentHash": "HBtCvEqN1TkaWH6Fvt4kZRqdmtcH1HhGWGBlITDshmjRnRYvo0LfJTyW9RWvcmC8TSrajI51EoZCmoBfF4iKog=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "2G6OjjJzwBfNOO8myRV/nFrbTw5iA+DEm0N+qUqhrOmaVtn4pC77h38I1jsXGw5VH55+dPfQsqHD0We9sCl9FQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "rkn+fKobF/cbWfnnfBOQHKVKIOpxMZBvlSHkqDWgBpwGDcLRduvs3D9OLGeV6GWGvVwNlVi2CBbTjuPmtHvyNw=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "fQnBHO9DgcmkC9dYSJoBqo6sH1VJwJprUHh8F3hbcRlxiQiBUuTntdk8tUwV490OqC2kQUrinGwZyQHTieuXRA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "q+eLtROUAQ3OxYA5mpQrgyFgzLQxIyrfT2eLpYX5IEPlHmIio2nh4F5bgOaQoGOV865kFKZZso9Oq9RlazvXtg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.0",
+ "contentHash": "ypsCvIdCZ4IoYASJHt6tF2fMo7N30NLgV1EbmC+snO490OMl9FvVxmumw14rhReWU3j3g7BYudG6YCrchwHJlA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "System.AppContext": "4.1.0",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Console": "4.0.0",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Calendars": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.Compression": "4.1.0",
+ "System.IO.Compression.ZipFile": "4.0.1",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.Net.Http": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Net.Sockets": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Timer": "4.0.1",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "QfS/nQI7k/BLgmLrw7qm7YBoULEvgWnPI+cYsbfCVFTW8Aj+i8JhccxcFMu1RWms0YZzF+UHguNBK4Qn89e2Sg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "Ob7nvnJBox1aaB222zSVZSkf4WrebPG4qFscfK7vmD7P7NxoSxACQLtO7ytWpqXDn2wcd/+45+EAZ7xjaPip8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Nh0UPZx2Vifh8r+J+H2jxifZUD3sBrmolgiFWJd2yiNrxO0xTa6bAw3YwRn1VOiSen/tUXMS31ttNItCZ6lKuA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.native.System.Security.Cryptography": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "2CQK0jmO6Eu7ZeMgD+LOFbNJSXHFVQbCJJkEyEwowh1SCgYnrn9W9RykMfpeeVGw7h4IBvYikzpGUlmZTUafJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "msXumHfjjURSkvxUjYuq4N2ghHoRi2VpXcKMA7gK6ujQfU3vGpl+B6ld0ATRg+FZFpRyA6PgEPA+VlIkTeNf2w==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "Cma8cBW6di16ZLibL8LYQ+cLjGzoKxpOTu/faZfDcx94ZjAGq6Nv5RO7+T1YZXqEXTZP9rt1wLVEONVpURtUqw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
+ "dependencies": {
+ "System.ComponentModel": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Collections.Specialized": "4.0.1",
+ "System.ComponentModel": "4.0.1",
+ "System.ComponentModel.Primitives": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "qSKUSOIiYA/a0g5XXdxFcUFmv1hNICBD7QZ0QhGYVipPIhvpiydY8VZqr1thmCXvmn8aipMg64zuanB4eotK9A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Runtime": "4.1.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "YKglnq4BMTJxfcr6nuT08g+yJ0UxdePIHxosiLuljuHIUR6t4KhFsyaHOaOc1Ofqp0PUvJ0EmcgiEz6T7vEx3w==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "Microsoft.Win32.Registry": "4.0.0",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Thread": "4.0.0",
+ "System.Threading.ThreadPool": "4.0.10",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "B95h0YLEL2oSnwF/XjqSWKnwKOy/01VWkNlsCeMTFJLLabflpGV26nK164eRs5GiaRSBGpOxQ3pKoSnnyZN5pg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "L1c6IqeQ88vuzC1P81JeHmHA8mxq8a18NUBNXnIY/BVb+TCyAaGIFbhpZt60h9FJNmisymoQkHEFSE9Vslja1Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "KKo23iKeOaIg61SSXwjANN7QYDr/3op3OWGGzDzz7mypx0Za0fZSeG0l6cco8Ntp8YMYkIQcAqlk8yhm5/Uhcg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "3KlTJceQc3gnGIaHZ7UBZO26SHL1SHE4ddrmiwumFnId+CEHP+O8r386tZKaE6zlk5/mF8vifMBzHj9SaXN+mQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "TjnBS6eztThSzeSib+WyVbLzEdLKUcEHN69VtS3u8aAsSc18FU6xCZlNWWsEd8SKcXAE+y1sOu7VbU8sUeM0sg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.IO.Compression": "4.1.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hBQYJzfTbQURF10nLhd+az2NHxsU6MU7AB8RUf4IolBP5lOAm4Luho851xl+CqslmhI5ZH/el8BlngEk4lBkaQ==",
+ "dependencies": {
+ "System.Buffers": "4.0.0",
+ "System.IO": "4.1.0",
+ "System.IO.Compression": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "IBErlVq5jOggAD69bg1t0pJcHaDbJbWNUZTPI96fkYWzwYbN6D9wRHMULLDd9dHsl7C2YsxXL31LMfPI1SWt8w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "kWkKD203JJKxJeE74p8aF8y4Qc9r9WQx4C0cHzHPrY3fv/L/IhWnyCHaFJ3H1QPOH6A93whlQ2vG5nHlBDvzWQ==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "ULq9g3SOPVuupt+Y3U+A37coXzdNisB1neFCSKzBwo182u0RDddKJF8I5+HfyXqK6OhJPgeoAwWXrbiUXuRDsg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.DiagnosticSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Net.Primitives": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.OpenSsl": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.Net.Http": "4.0.1",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "hVvfl4405DRjA2408luZekbPhplJK03j2Y2lSfMlny7GHXlkByw1iLnc9mgKW0GdQn73vvMcWrWewAhylXA4Nw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "xAz0N3dAV/aR/9g8r0Y5oEqU1JRsz29F5EGb/WVHmX3jVSLqi2/92M5hTad2aNWovruXrJpJtgZ9fccPMG9uSw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Runtime": "4.1.0",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "JCKANJ0TI7kzoQzuwB/OoJANy1Lg338B6+JVacPl4TpUwi3cReg3nMLplMq2uqYfHFQpKIlHAUVAJlImZz/4ng==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Immutable": "1.2.0",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "4inTox4wTBaDhB7V3mPvp9XlCbeGYWVEM9/fXALd52vNEAVisc1BoVWQPuUuD0Ga//dNbA/WeMy9u9mzLxGTHQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "TxwVeUNoTgUOdQ09gfTjvW411MF+w9MBYL7AtNVc+HtBCFlutPLhUCdZjNkjbhj3bNQWMdHboF0KIWEOjJssbA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "v6c/4Yaa9uWsq+JMhnOFewrYkgdNHNG2eMKuNqRn8P733rNXeRCGvV5FkkjBXn2dbVkPXOsO0xjsEeM1q2zC0g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "nCJvEKguXEvk2ymk1gqj625vVnlK3/xdGzx0vOKicQkoquaTBJTP13AIYkocSUwHCLNBwUbXTqTWGDxBTWpt7g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "+XbKFuzdmLP3d1o9pdHu2nxjNr2OEPqGzKeegPLCUMM71a0t50A/rOcIRmGs9wR7a8KuHX6hYs/7/TymIGLNqg==",
+ "dependencies": {
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.2.0",
+ "contentHash": "8JQFxbLVdrtIOKMDN38Fn0GWnqYZw/oMlwOUG/qz1jqChvyZlnUmu+0s7wLx7JYua/nAXoESpHA3iw11QFWhXg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.2.0",
+ "contentHash": "cUJ2h+ZvONDe28Szw3st5dOHdjndhJzQ2WObDEXAWRPEQBtVItVoxbXM/OEsTthl3cNn2dk2k0I3y45igCQcLw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "/i1Usuo4PgAqgbPNC0NjbO3jPW//BoBlTpcWFD1EHVbidH21y4c1ap5bbEMSGAXjAShhMH4abi/K8fILrnu4BQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "FbKgE5MbxSQMPcSVRgwM6bXN3GtyAh04NkV8E5zKCBE26X0vYW0UtTa2FIgkH33WVqBVxRgxljlVYumWtU+HcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "HUG/zNUJwEiLkoURDixzkzZdB5yGA5pQhDP93ArOpDPQMteURIGERRNzzoJlmTreLBWr5lkFSjjMSk8ySEpQMw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "Wkd7QryWYjkQclX0bngpntW5HSlMzeJU24UaLJQ7YTfI8ydAVAaU2J+HXLLABOVJlKTVvAeL0Aj39VeTe7L+oA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "4HEfsQIKAhA1+ApNn729Gi09zh+lYWwyIuViihoMDWp1vQnEkL2ct7mAbhBlLYm+x/L4Rr/pyGge1lIY635e0w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Calendars": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Cng": "4.2.0",
+ "System.Security.Cryptography.Csp": "4.0.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.OpenSsl": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.Net.Http": "4.0.1",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "U3gGeMlDZXxCEiY4DwVLSacg+DFWCvoiX+JThA/rvw37Sqrku7sEFeVBBBMBnfB6FeZHsyDx85HlKL19x0HtZA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Text.Encoding": "4.0.11"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "N+3xqIcg3VDKyjwwCGaZ9HawG9aC6cSDI+s7ROma310GQo8vilFZa86hqKppwTHleR/G0sfOzhvgnUxWCR/DrQ==",
+ "dependencies": {
+ "System.Runtime": "4.1.0",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "k1S4Gc6IGwtHGT8188RSeGaX86Qw/wnrgNLshJvsdNUOPP9etMmo8S07c+UlOAx4K/xLuN9ivA1bD0LVurtIxQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Runtime": "4.1.0",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.0.10",
+ "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==",
+ "dependencies": {
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Handles": "4.0.1"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "saGfUV8uqVW6LeURiqxcGhZ24PzuRNaUBtbhVeuUAvky1naH395A/1nY0P2bWvrw/BreRtIB/EzTDkGBpqCwEw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "ZIiLPsf67YZ9zgr31vzrFaYQqxRPX9cVHjtPSnmx4eN6lbS/yEyYNr2vs1doGDEscF0tjCZFsk9yUg1sC9e8tg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Tasks.Extensions": "4.0.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XPath": "4.0.1",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.Core.Tests/CPUTests.cs b/Tests/Cosmos.Core.Tests/CPUTests.cs
new file mode 100644
index 0000000000..4f82aaa966
--- /dev/null
+++ b/Tests/Cosmos.Core.Tests/CPUTests.cs
@@ -0,0 +1,19 @@
+using NUnit.Framework;
+using Cosmos.Core;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Cosmos.Core.Tests
+{
+ [TestFixture()]
+ public class CPUTests
+ {
+ [Test()]
+ public void EstimateCPUSpeedFromNameTest()
+ {
+ Assert.AreEqual((long)2.8e9, CPU.EstimateCPUSpeedFromName(" Intel(R) Celeron(R) CPU 2.80GHz"));
+ Assert.AreEqual((long)2.8e9, CPU.EstimateCPUSpeedFromName("Intel(R) Celeron(R) CPU 2.80GHz"));
+ }
+ }
+}
diff --git a/Tests/Cosmos.Core.Tests/Cosmos.Core.Tests.csproj b/Tests/Cosmos.Core.Tests/Cosmos.Core.Tests.csproj
index 13c2314d5c..d89cc40889 100644
--- a/Tests/Cosmos.Core.Tests/Cosmos.Core.Tests.csproj
+++ b/Tests/Cosmos.Core.Tests/Cosmos.Core.Tests.csproj
@@ -1,8 +1,9 @@
- netcoreapp2.0
+ net6.0
True
+ Debug;Release;TEST
diff --git a/Tests/Cosmos.Core.Tests/packages.lock.json b/Tests/Cosmos.Core.Tests/packages.lock.json
new file mode 100644
index 0000000000..d97ac7cb42
--- /dev/null
+++ b/Tests/Cosmos.Core.Tests/packages.lock.json
@@ -0,0 +1,1284 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "NUnit": {
+ "type": "Direct",
+ "requested": "[3.11.0, )",
+ "resolved": "3.11.0",
+ "contentHash": "BzGk+u02RCrysmLlSzD+okxzMQ8JRF4eFC/qijDJ8Y/FBdTrTkxkQyTFsYkG1o++pr7QpFAE4VDXDqIfZ/gBAg==",
+ "dependencies": {
+ "NETStandard.Library": "2.0.0"
+ }
+ },
+ "NUnit3TestAdapter": {
+ "type": "Direct",
+ "requested": "[3.12.0, )",
+ "resolved": "3.12.0",
+ "contentHash": "uN7IiBCNxLHVXobqyCZvtRwkbnVclA01cNOrHV3noGOhAG5fX8zCjy053U77hILpX/b9eGRgzdZDj4Xm0TnlGw==",
+ "dependencies": {
+ "Microsoft.DotNet.InternalAbstractions": "1.0.0",
+ "System.ComponentModel.EventBasedAsync": "4.3.0",
+ "System.ComponentModel.TypeConverter": "4.3.0",
+ "System.Diagnostics.Process": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Xml.XPath.XmlDocument": "4.3.0",
+ "System.Xml.XmlDocument": "4.3.0"
+ }
+ },
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.DotNet.InternalAbstractions": {
+ "type": "Transitive",
+ "resolved": "1.0.0",
+ "contentHash": "AAguUq7YyKk3yDWPoWA8DrLZvURxB/LrDdTn1h5lmPeznkFUpfC3p459w5mQYQE0qpquf/CkSQZ0etiV5vRHFA==",
+ "dependencies": {
+ "System.AppContext": "4.1.0",
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "2CQK0jmO6Eu7ZeMgD+LOFbNJSXHFVQbCJJkEyEwowh1SCgYnrn9W9RykMfpeeVGw7h4IBvYikzpGUlmZTUafJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fCFl8f0XdwA/BuoNrVBB5D0Y48/hv2J+w4xSDdXQitXZsR6UCSOrDVE7TCUraY802ENwcHUnUCv4En8CupDU1g==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==",
+ "dependencies": {
+ "System.ComponentModel": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.NonGeneric": "4.3.0",
+ "System.Collections.Specialized": "4.3.0",
+ "System.ComponentModel": "4.3.0",
+ "System.ComponentModel.Primitives": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "+XbKFuzdmLP3d1o9pdHu2nxjNr2OEPqGzKeegPLCUMM71a0t50A/rOcIRmGs9wR7a8KuHX6hYs/7/TymIGLNqg==",
+ "dependencies": {
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.2.0",
+ "contentHash": "8JQFxbLVdrtIOKMDN38Fn0GWnqYZw/oMlwOUG/qz1jqChvyZlnUmu+0s7wLx7JYua/nAXoESpHA3iw11QFWhXg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "FbKgE5MbxSQMPcSVRgwM6bXN3GtyAh04NkV8E5zKCBE26X0vYW0UtTa2FIgkH33WVqBVxRgxljlVYumWtU+HcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "Wkd7QryWYjkQclX0bngpntW5HSlMzeJU24UaLJQ7YTfI8ydAVAaU2J+HXLLABOVJlKTVvAeL0Aj39VeTe7L+oA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XPath": "4.3.0",
+ "System.Xml.XmlDocument": "4.3.0"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.System.Tests/ARPRequestTests.EnsureEncodedCorrectly.approved.bin b/Tests/Cosmos.System.Tests/ARPRequestTests.EnsureEncodedCorrectly.approved.bin
deleted file mode 100644
index 6c5fddf851..0000000000
Binary files a/Tests/Cosmos.System.Tests/ARPRequestTests.EnsureEncodedCorrectly.approved.bin and /dev/null differ
diff --git a/Tests/Cosmos.System.Tests/ARPRequestTests.EnsureEncodedCorrectly.approved.txt b/Tests/Cosmos.System.Tests/ARPRequestTests.EnsureEncodedCorrectly.approved.txt
deleted file mode 100644
index 0b84a56e06..0000000000
--- a/Tests/Cosmos.System.Tests/ARPRequestTests.EnsureEncodedCorrectly.approved.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-FF FF FF FF FF FF 00 50
-56 C0 00 01 08 06 00 01
-08 00 06 04 00 01 00 50
-56 C0 00 01 C0 A8 11 01
-00 00 00 00 00 00 C0 A8
-11 66
\ No newline at end of file
diff --git a/Tests/Cosmos.System.Tests/ARPRequestTests.cs b/Tests/Cosmos.System.Tests/ARPRequestTests.cs
deleted file mode 100644
index 9eaf7fa201..0000000000
--- a/Tests/Cosmos.System.Tests/ARPRequestTests.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-using ApprovalTests;
-using ApprovalTests.Reporters;
-
-using Cosmos.HAL.Network;
-using Cosmos.System.Network.IPv4;
-
-namespace Cosmos.System.Tests
-{
- [TestClass]
- public class ARPRequestTests
- {
- [TestMethod]
- [UseReporter(typeof(DiffReporter))]
- public void EnsureEncodedCorrectly()
- {
- var xMacSender = new MACAddress(
- new byte[]
- {
- 00,
- 0x50,
- 0x56,
- 0xc0,
- 0x00,
- 0x01
- });
-
- var xIPSender = new Address(192, 168, 17, 1);
- var xMacTarget = MACAddress.Broadcast;
- var xIPTarget = new Address(192, 168, 17, 102);
- var xArpTargetMac = new MACAddress(new byte[6]);
-
- var xPacket = new ARPRequest_Ethernet(xMacSender, xIPSender, xMacTarget, xIPTarget, xArpTargetMac);
-
- var xExpectedPacket =
- "FF FF FF FF FF FF 00 50 " + Environment.NewLine +
- "56 C0 00 01 08 06 00 01 " + Environment.NewLine +
- "08 00 06 04 00 01 00 50 " + Environment.NewLine +
- "56 C0 00 01 C0 A8 11 01 " + Environment.NewLine +
- "00 00 00 00 00 00 C0 A8 " + Environment.NewLine +
- "11 66";
-
- Approvals.Verify(Utilities.PrettyPrint(xPacket.RawData));
- Approvals.VerifyBinaryFile(xPacket.RawData, "bin");
- Assert.AreEqual(xExpectedPacket, Utilities.PrettyPrint(xPacket.RawData));
- }
- }
-}
diff --git a/Tests/Cosmos.System.Tests/Cosmos.System.Tests.csproj b/Tests/Cosmos.System.Tests/Cosmos.System.Tests.csproj
index 001809eef9..c00f9f1c66 100644
--- a/Tests/Cosmos.System.Tests/Cosmos.System.Tests.csproj
+++ b/Tests/Cosmos.System.Tests/Cosmos.System.Tests.csproj
@@ -1,20 +1,30 @@
- netcoreapp2.0
+ net6.0
+ ..\..\build\Cosmos.snk
+ UNIT_TEST
+ Debug;Release;TEST
+
+
+
+ TRACE;
-
-
+
+
+
+
+
diff --git a/Tests/Cosmos.System.Tests/DiskManagerTest.cs b/Tests/Cosmos.System.Tests/DiskManagerTest.cs
new file mode 100644
index 0000000000..41e5c9de23
--- /dev/null
+++ b/Tests/Cosmos.System.Tests/DiskManagerTest.cs
@@ -0,0 +1,82 @@
+using Cosmos.Debug.Kernel;
+using Cosmos.HAL.BlockDevice;
+using Cosmos.System.FileSystem;
+using Cosmos.System.FileSystem.FAT;
+using Cosmos.System.FileSystem.Listing;
+using Cosmos.System.FileSystem.VFS;
+using Cosmos.System_Plugs.System.IO;
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace Cosmos.System.Tests
+{
+ public class DiskManagerTest
+ {
+ static ManagedPartition ourPart;
+ static Disk ourDisk;
+ [SetUp]
+ public void Setup()
+ {
+ DebuggerFactory.WriteToConsole = true;
+ var xDevice = new TestBlockDevice();
+ var xPartition = new Partition(xDevice, 0, xDevice.BlockCount);
+ BlockDevice.Devices.Clear();
+ Partition.Partitions.Clear();
+
+ BlockDevice.Devices.Add(xDevice);
+ Partition.Partitions.Add(xPartition);
+ CosmosVFS cosmosVFS = new CosmosVFS();
+ VFSManager.RegisterVFS(cosmosVFS, true, true);
+
+ foreach (var disk in VFSManager.GetDisks())
+ {
+ foreach (var part in disk.Partitions)
+ {
+ if (part.RootPath == @"0:\")
+ {
+ ourDisk = disk;
+ ourPart = part;
+ break;
+ }
+ }
+ }
+ if (ourDisk == null)
+ {
+ throw new Exception("Failed to find our disk.");
+ }
+ }
+
+ [TearDown]
+ public void CleanUp()
+ {
+ VFSManager.Reset();
+ }
+
+ [Test]
+ public void Execute()
+ {
+ string driveName = @"0:\";
+
+ Assert.IsTrue(ourPart.RootPath == driveName, "ManagedPartition.RootPath failed drive has wrong name");
+
+ ourDisk.FormatPartition(0, "FAT32", true);
+
+ var xDi = new DriveInfo(driveName);
+
+ //If the drive is empty all Space should be free
+ Assert.IsTrue(xDi.TotalSize == xDi.TotalFreeSpace, "DiskManager.Format (quick) failed TotalFreeSpace is not the same of TotalSize");
+
+ //Let's try to create a new file on the Root Directory
+ File.Create(@"0:\newFile.txt");
+
+ Assert.IsTrue(File.Exists(@"0:\newFile.txt") == true, "Failed to create new file after disk format");
+
+ Directory.CreateDirectory(@"0:\SYS\");
+
+ Assert.IsTrue(Directory.GetDirectories(@"0:\SYS\").Length == 0, "Can create a directory and its content is emtpy");
+ }
+ }
+}
diff --git a/Tests/Cosmos.System.Tests/FatFileSystem_Should.cs b/Tests/Cosmos.System.Tests/FatFileSystem_Should.cs
new file mode 100644
index 0000000000..b2b2c304f4
--- /dev/null
+++ b/Tests/Cosmos.System.Tests/FatFileSystem_Should.cs
@@ -0,0 +1,91 @@
+using System.Collections.Generic;
+using System.Text;
+using Cosmos.Debug.Kernel;
+using Cosmos.HAL.BlockDevice;
+using Cosmos.System.FileSystem;
+using Cosmos.System.FileSystem.FAT;
+using Cosmos.System.FileSystem.VFS;
+using NUnit.Framework;
+
+namespace Cosmos.System.Tests
+{
+ public class FatFileSystem_Should
+ {
+ private FatFileSystem mFS;
+
+ [SetUp]
+ public void Setup()
+ {
+ DebuggerFactory.WriteToConsole = true;
+ var xDevice = new TestBlockDevice();
+ var xPartition = new Partition(xDevice, 0, xDevice.BlockCount);
+ var xFactory = new FatFileSystemFactory();
+ mFS = (FatFileSystem)xFactory.Create(xPartition, "0:\\", (long)(xPartition.BlockSize * xPartition.BlockCount));
+ }
+
+ [Test]
+ public void Load_Root_Directory_Entry()
+ {
+ var xRootDirectory = mFS.GetRootDirectory();
+ Assert.NotNull(xRootDirectory);
+ }
+
+ [Test]
+ public void Create_A_Directory_Entry()
+ {
+ string xNewDirectoryEntryName = "NEW";
+
+ var xRootDirectory = mFS.GetRootDirectory();
+ Assert.NotNull(xRootDirectory);
+
+ var xRootDirectoryListing = mFS.GetDirectoryListing(xRootDirectory);
+ Assert.AreEqual(xRootDirectoryListing.Count, 0);
+
+ mFS.CreateDirectory(xRootDirectory, xNewDirectoryEntryName);
+
+ xRootDirectoryListing = mFS.GetDirectoryListing(xRootDirectory);
+ Assert.AreEqual(xRootDirectoryListing.Count, 1);
+
+ var xNewDirectoryEntry = xRootDirectoryListing[0];
+ Assert.AreEqual(xNewDirectoryEntry.mName, xNewDirectoryEntryName);
+
+ var dirDirectoryListing = mFS.GetDirectoryListing(xNewDirectoryEntry);
+ Assert.AreEqual(0, dirDirectoryListing.Count); //the . and .. directories should not be included
+ }
+
+ [Test]
+ public void DirectoryOperationTest()
+ {
+ //var xEntry = VFSManager.CreateDirectory(@"0:\TestDir1");
+
+ }
+
+ [Test]
+ public void Create_A_Subdirectory_Entry()
+ {
+ var xRootDirectory = mFS.GetRootDirectory();
+ mFS.CreateDirectory(xRootDirectory, "First");
+ var root = mFS.GetDirectoryListing(xRootDirectory);
+ mFS.CreateDirectory(root[0], "Sub");
+ Assert.AreEqual(mFS.GetDirectoryListing(root[0]).Count, 1);
+ }
+
+ [Test]
+ public void Create_A_Subdirectory_Entry_With_Files()
+ {
+ var xRootDirectory = mFS.GetRootDirectory();
+ mFS.CreateDirectory(xRootDirectory, "First");
+ var root = mFS.GetDirectoryListing(xRootDirectory);
+ mFS.CreateDirectory(root[0], "Sub");
+ Assert.AreEqual(mFS.GetDirectoryListing(root[0]).Count, 1);
+ var dir = root[0];
+ Assert.AreEqual("First", dir.mName);
+ mFS.CreateFile(dir, "test.txt");
+ Assert.AreEqual(mFS.GetDirectoryListing(dir).Count, 2);
+ mFS.CreateFile(dir, "test2.txt");
+ Assert.AreEqual(mFS.GetDirectoryListing(dir).Count, 3);
+ Assert.AreEqual("test.txt", mFS.GetDirectoryListing(dir)[1].mName);
+ Assert.AreEqual(@"0:\First\test.txt", mFS.GetDirectoryListing(dir)[1].mFullPath);
+ }
+ }
+}
diff --git a/Tests/Cosmos.System.Tests/Fat_Should.cs b/Tests/Cosmos.System.Tests/Fat_Should.cs
new file mode 100644
index 0000000000..a051caab34
--- /dev/null
+++ b/Tests/Cosmos.System.Tests/Fat_Should.cs
@@ -0,0 +1,51 @@
+using Cosmos.Debug.Kernel;
+using Cosmos.HAL.BlockDevice;
+using Cosmos.System.FileSystem;
+using Cosmos.System.FileSystem.FAT;
+using NUnit.Framework;
+
+namespace Cosmos.System.Tests
+{
+ public class Fat_Should
+ {
+ private FatFileSystem mFS;
+ private FatFileSystem.Fat mFat;
+
+ [SetUp]
+ public void Setup()
+ {
+ DebuggerFactory.WriteToConsole = true;
+ var xDevice = new TestBlockDevice();
+ var xPartition = new Partition(xDevice, 0, xDevice.BlockCount);
+ var xFactory = new FatFileSystemFactory();
+ mFS = (FatFileSystem)xFactory.Create(xPartition, "0:\\", (long)(xPartition.BlockSize * xPartition.BlockCount));
+ mFat = mFS.GetFat(0);
+ }
+
+ [Test]
+ public void Add_New_Clusters_To_Chain_When_Needed()
+ {
+ uint xStartCluster = mFS.RootCluster;
+ mFat.SetFatEntry(xStartCluster, mFat.FatEntryEofValue());
+ mFat.SetFatEntry(xStartCluster + 2, mFat.FatEntryEofValue());
+ mFat.SetFatEntry(xStartCluster + 5, mFat.FatEntryEofValue());
+
+ uint[] xChain = mFat.GetFatChain(xStartCluster, mFS.BytesPerCluster);
+ Assert.AreEqual(xChain.Length, 1);
+
+ xChain = mFat.GetFatChain(xStartCluster, mFS.BytesPerCluster * 3);
+ Assert.AreEqual(3, xChain.Length);
+ Assert.AreEqual(2, xChain[0]);
+ Assert.AreEqual(3, xChain[1]);
+ Assert.AreEqual(5, xChain[2]);
+
+ xChain = mFat.GetFatChain(xStartCluster, mFS.BytesPerCluster * 5);
+ Assert.AreEqual(5, xChain.Length);
+ Assert.AreEqual(2, xChain[0]);
+ Assert.AreEqual(3, xChain[1]);
+ Assert.AreEqual(5, xChain[2]);
+ Assert.AreEqual(6, xChain[3]);
+ Assert.AreEqual(8, xChain[4]);
+ }
+ }
+}
diff --git a/Tests/Cosmos.System.Tests/ManagedMemoryBlockTest.cs b/Tests/Cosmos.System.Tests/ManagedMemoryBlockTest.cs
new file mode 100644
index 0000000000..aef9a80507
--- /dev/null
+++ b/Tests/Cosmos.System.Tests/ManagedMemoryBlockTest.cs
@@ -0,0 +1,46 @@
+using Cosmos.Core;
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cosmos.System.Tests
+{
+ class ManagedMemoryBlockTest
+ {
+ [Test]
+ public void TestBlock()
+ {
+ var memoryBlock = new ManagedMemoryBlock(128);
+ memoryBlock.Write32(0, 1);
+ Assert.AreEqual(1, memoryBlock[0]);
+ Assert.AreEqual(1, memoryBlock.Read32(0), "ManagedMemoryBlock read/write at index 0 works");
+ memoryBlock.Write32(1, 101);
+ Assert.AreEqual(101, memoryBlock[1], "ManagedMemoryBlock read/write at index 1 works");
+ Assert.AreEqual(25857, memoryBlock.Read32(0), "ManagedMemoryBlock read int at index 0 works");
+ memoryBlock.Write32(2, 2 ^ 16 + 2);
+ Assert.AreEqual(16, memoryBlock[2], "ManagedMemoryBlock write int at index 2 works");
+ Assert.AreEqual(0, memoryBlock[3], "ManagedMemoryBlock write int at index 2 works");
+ Assert.AreEqual(1074433, memoryBlock.Read32(0), "ManagedMemoryBlock read int at index 0 works");
+ memoryBlock.Write32(3, int.MaxValue);
+ Assert.AreEqual(255, memoryBlock[3], "ManagedMemoryBlock write int at index 3 works");
+ Assert.AreEqual(0xFF106501, memoryBlock.Read32(0), "ManagedMemoryBlock read int at index 0 works");
+ Assert.AreEqual(0xFFFF1065, memoryBlock.Read32(1), "ManagedMemoryBlock read int at index 1 works");
+ Assert.AreEqual(0xFFFFFF10, memoryBlock.Read32(2), "ManagedMemoryBlock read int at index 2 works");
+ Assert.AreEqual(int.MaxValue, memoryBlock.Read32(3), "ManagedMemoryBlock read/write at index 3 works");
+
+ memoryBlock.Fill(101);
+ Assert.AreEqual(101, memoryBlock.Read32(0), "ManagedMemoryBlock fill works at index 0");
+ Assert.AreEqual(0, memoryBlock[1], "ManagedMemoryBlock fill fills entire ints");
+ Assert.AreEqual(6619136, memoryBlock.Read32(10), "ManagedMemoryBlock fill works at index 10");
+
+ memoryBlock.Write8(0, 101);
+ Assert.AreEqual(101, memoryBlock[0], "ManagedMemoryBlock write byte works at index 0");
+ memoryBlock.Fill(1, 1, 987893745);
+ Assert.AreEqual(101, memoryBlock[0], "ManagedMemoryBlock Fill(1, int, int) skips index 0");
+ Assert.AreEqual(987893745, memoryBlock.Read32(1), "ManagedMemoryBlock Fill(int, int, int) works at index 1");
+ }
+ }
+}
diff --git a/Tests/Cosmos.System.Tests/TestBlockDevice.cs b/Tests/Cosmos.System.Tests/TestBlockDevice.cs
new file mode 100644
index 0000000000..3b18cd248d
--- /dev/null
+++ b/Tests/Cosmos.System.Tests/TestBlockDevice.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Cosmos.HAL.BlockDevice;
+
+namespace Cosmos.System.Tests
+{
+ class TestBlockDevice : BlockDevice
+ {
+ private byte[] mData;
+ public override BlockDeviceType Type => BlockDeviceType.HardDrive;
+
+ public TestBlockDevice()
+ {
+ LoadTestData();
+
+ mBlockSize = 512;
+ mBlockCount = (ulong) (mData.Length / (int) mBlockSize);
+ }
+
+ private void LoadTestData()
+ {
+ var xList = new List();
+
+ using (var xReader = new StreamReader("../../../../Data/disk.txt"))
+ {
+ while (!xReader.EndOfStream)
+ {
+ string xLine = xReader.ReadLine();
+ if (!string.IsNullOrWhiteSpace(xLine))
+ {
+ xLine = xLine.Replace(" ", "");
+ xList.AddRange(StringToByteArray(xLine));
+ }
+ }
+ xReader.Close();
+ }
+
+ for (int i = 0; i < 534610432 - xList.Count; i++)
+ {
+ xList.Add(0x00);
+ }
+
+ mData = xList.ToArray();
+ }
+
+ private static byte[] StringToByteArray(string hex)
+ {
+ int NumberChars = hex.Length;
+ byte[] bytes = new byte[NumberChars / 2];
+ for (int i = 0; i < NumberChars; i += 2)
+ {
+ bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
+ }
+
+ return bytes;
+ }
+
+ public override void ReadBlock(ulong aBlockNo, ulong aBlockCount, ref byte[] aData)
+ {
+ aData = NewBlockArray((uint) aBlockCount);
+ Array.Copy(mData, (long) (aBlockNo * BlockSize), aData, 0, (long) (aBlockCount * BlockSize));
+ }
+
+ public override void WriteBlock(ulong aBlockNo, ulong aBlockCount, ref byte[] aData)
+ {
+ Array.Copy(aData, 0, mData, (long)(aBlockNo * BlockSize), (long)(aBlockCount * BlockSize));
+ }
+ }
+}
diff --git a/Tests/Cosmos.System.Tests/VFSManagerTest.cs b/Tests/Cosmos.System.Tests/VFSManagerTest.cs
new file mode 100644
index 0000000000..1ef7c34369
--- /dev/null
+++ b/Tests/Cosmos.System.Tests/VFSManagerTest.cs
@@ -0,0 +1,126 @@
+using Cosmos.Debug.Kernel;
+using Cosmos.HAL.BlockDevice;
+using Cosmos.System.FileSystem;
+using Cosmos.System.FileSystem.FAT;
+using Cosmos.System.FileSystem.Listing;
+using Cosmos.System.FileSystem.VFS;
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Cosmos.System.Tests
+{
+ class VFSManagerTest
+ {
+ private ManagedPartition ourPart;
+ private Disk ourDisk;
+ [SetUp]
+ public void Setup()
+ {
+ DebuggerFactory.WriteToConsole = true;
+ var xDevice = new TestBlockDevice();
+ var xPartition = new Partition(xDevice, 0, xDevice.BlockCount);
+ BlockDevice.Devices.Clear();
+ Partition.Partitions.Clear();
+
+ BlockDevice.Devices.Add(xDevice);
+ Partition.Partitions.Add(xPartition);
+ CosmosVFS cosmosVFS = new CosmosVFS();
+ VFSManager.RegisterVFS(cosmosVFS, true);
+
+ foreach (var disk in VFSManager.GetDisks())
+ {
+ foreach (var part in disk.Partitions)
+ {
+ if (part.RootPath == @"0:\")
+ {
+ ourDisk = disk;
+ ourPart = part;
+ break;
+ }
+ }
+ }
+ if (ourDisk == null)
+ {
+ throw new Exception("Failed to find our drive.");
+ }
+ }
+
+ [TearDown]
+ public void CleanUp()
+ {
+ VFSManager.Reset();
+ }
+
+ [Test]
+ public void Test_Disk_Manager()
+ {
+ var disks = VFSManager.GetDisks();
+ Assert.IsTrue(disks.Count != 0);
+ foreach (var item in disks)
+ {
+ Assert.IsTrue(item.Size != 0);
+ Assert.IsTrue(item.Partitions.Count != 0);
+ }
+
+ const string root = @"0:\";
+ long initialSize = VFSManager.GetTotalSize(root);
+ ourDisk.FormatPartition(0, "FAT32", true);
+ Assert.AreEqual(initialSize, VFSManager.GetAvailableFreeSpace(root));
+ Assert.AreEqual(0, VFSManager.GetDirectoryListing(root).Count);
+ VFSManager.CreateFile(root + "test.txt");
+ Assert.IsNotNull(VFSManager.GetFile(root + "test.txt"));
+ }
+
+ [Test]
+ public void Test_Disk_Manager_Reformating()
+ {
+ const string root = @"0:\";
+ long initialSize = VFSManager.GetTotalSize(root);
+ ourDisk.FormatPartition(0, "FAT32", true);
+ Assert.AreEqual(initialSize, VFSManager.GetAvailableFreeSpace(root));
+ Assert.AreEqual(0, VFSManager.GetDirectoryListing(root).Count);
+ VFSManager.CreateFile(root + "test.txt");
+ VFSManager.CreateFile(root + "test1.txt");
+ VFSManager.CreateFile(root + "test2.txt");
+ VFSManager.CreateFile(root + "test3.txt");
+ VFSManager.CreateFile(root + "test4.txt");
+ VFSManager.CreateFile(root + "newfile.txt");
+ VFSManager.CreateDirectory(root + "SubDir");
+ VFSManager.CreateFile(root + "SubDir\\file.txt");
+ Assert.IsNotNull(VFSManager.GetFile(root + "SubDir\\file.txt"));
+ List lists = VFSManager.GetDirectoryListing(root);
+ Assert.AreEqual(7, lists.Count);
+ Assert.AreEqual(DirectoryEntryTypeEnum.File, lists[0].mEntryType);
+ Assert.AreEqual(DirectoryEntryTypeEnum.File, lists[5].mEntryType);
+ Assert.AreEqual(DirectoryEntryTypeEnum.Directory, lists[6].mEntryType);
+ ourDisk.FormatPartition(0, "FAT32", true);
+ Assert.AreEqual(0, VFSManager.GetDirectoryListing(root).Count);
+ VFSManager.CreateDirectory(root + "dir");
+ Assert.IsNull(VFSManager.GetFile(root + "newfile.txt"));
+ VFSManager.CreateFile(root + "newfile.txt");
+ Assert.IsNotNull(VFSManager.GetFile(root + "newfile.txt"));
+ Assert.AreEqual(2, VFSManager.GetDirectoryListing(root).Count);
+ }
+
+ [Test]
+ public void Test_Disk_Manager_Reformating_First_Directories()
+ {
+ const string root = @"0:\";
+ long initialSize = VFSManager.GetTotalSize(root);
+ ourDisk.FormatPartition(0, "FAT32", true);
+ Assert.AreEqual(initialSize, VFSManager.GetAvailableFreeSpace(root));
+ Assert.AreEqual(0, VFSManager.GetDirectoryListing(root).Count);
+ VFSManager.CreateDirectory(root + "SubDir");
+ VFSManager.CreateFile(root + "SubDir\\filet.txt");
+ Assert.IsNotNull(VFSManager.GetFile(root + "SubDir\\filet.txt"));
+ Assert.AreEqual(1, VFSManager.GetDirectoryListing(root).Count);
+ ourDisk.FormatPartition(0, "FAT32", true);
+ Assert.AreEqual(0, VFSManager.GetDirectoryListing(root).Count);
+ VFSManager.CreateDirectory(root + "dir");
+ Assert.AreEqual(1, VFSManager.GetDirectoryListing(root).Count);
+ Assert.AreEqual(0, VFSManager.GetDirectoryListing(root + "dir").Count);
+ }
+ }
+}
diff --git a/Tests/Cosmos.System.Tests/packages.lock.json b/Tests/Cosmos.System.Tests/packages.lock.json
new file mode 100644
index 0000000000..c30f7d454d
--- /dev/null
+++ b/Tests/Cosmos.System.Tests/packages.lock.json
@@ -0,0 +1,1231 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "ApprovalTests": {
+ "type": "Direct",
+ "requested": "[3.0.18, )",
+ "resolved": "3.0.18",
+ "contentHash": "8gBzmUNFYHyGrvIbhJ6T9sqebY+tj5r9exPiIQ455dHW5wtJpREHDEyUGuVxzVxvAwpI2m4+chcNuqy7jr/e0A==",
+ "dependencies": {
+ "ApprovalUtilities": "3.0.18",
+ "Microsoft.Win32.Registry": "4.5.0",
+ "System.Drawing.Common": "4.5.0",
+ "TextCopy": "1.3.0"
+ }
+ },
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "MSTest.TestAdapter": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "1.1.11",
+ "contentHash": "wDO3wmvkMnPyHv7Gf5SqYvO9Zl15s+15pSizT12YAnh6oorjGWmKk1/h0hsOaJC1/u7Dsho0aA/umapYC1BeoQ=="
+ },
+ "MSTest.TestFramework": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "1.1.11",
+ "contentHash": "HBtCvEqN1TkaWH6Fvt4kZRqdmtcH1HhGWGBlITDshmjRnRYvo0LfJTyW9RWvcmC8TSrajI51EoZCmoBfF4iKog=="
+ },
+ "NSubstitute": {
+ "type": "Direct",
+ "requested": "[4.0.0, )",
+ "resolved": "4.0.0",
+ "contentHash": "CgRn/pPzB341/axAUCf+p7ZptiN1C0KJW1C412Y1OofTzEqBhV/uQBlXCzZ/XqhZF79YFpvwn2vMmZ1P3ls6kA==",
+ "dependencies": {
+ "Castle.Core": "4.3.1",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "NUnit": {
+ "type": "Direct",
+ "requested": "[3.11.0, )",
+ "resolved": "3.11.0",
+ "contentHash": "BzGk+u02RCrysmLlSzD+okxzMQ8JRF4eFC/qijDJ8Y/FBdTrTkxkQyTFsYkG1o++pr7QpFAE4VDXDqIfZ/gBAg==",
+ "dependencies": {
+ "NETStandard.Library": "2.0.0"
+ }
+ },
+ "NUnit3TestAdapter": {
+ "type": "Direct",
+ "requested": "[3.12.0, )",
+ "resolved": "3.12.0",
+ "contentHash": "uN7IiBCNxLHVXobqyCZvtRwkbnVclA01cNOrHV3noGOhAG5fX8zCjy053U77hILpX/b9eGRgzdZDj4Xm0TnlGw==",
+ "dependencies": {
+ "Microsoft.DotNet.InternalAbstractions": "1.0.0",
+ "System.ComponentModel.EventBasedAsync": "4.3.0",
+ "System.ComponentModel.TypeConverter": "4.3.0",
+ "System.Diagnostics.Process": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Xml.XPath.XmlDocument": "4.3.0",
+ "System.Xml.XmlDocument": "4.3.0"
+ }
+ },
+ "ApprovalUtilities": {
+ "type": "Transitive",
+ "resolved": "3.0.18",
+ "contentHash": "2Kj055MusEBEhoQDlsoSLXkJ4MhSEqw0MKObMwY8H/Tna7kqz+1rMGX8bXA1GyaWmR08gYjaDPGkoSS7HaHsYA==",
+ "dependencies": {
+ "System.Data.SqlClient": "4.5.1",
+ "System.Management": "4.5.0"
+ }
+ },
+ "Castle.Core": {
+ "type": "Transitive",
+ "resolved": "4.3.1",
+ "contentHash": "8Y/eTr6GTElAGV7eAmJuhfLhGdFpNvaNrQ9UQYDScziLmX+/BLGM+9eQr0IcdNDcPN0ADmbtwT6MgecGKy4obw==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1",
+ "System.Collections.Specialized": "4.3.0",
+ "System.ComponentModel": "4.3.0",
+ "System.ComponentModel.TypeConverter": "4.3.0",
+ "System.Diagnostics.TraceSource": "4.3.0",
+ "System.Dynamic.Runtime": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Xml.XmlDocument": "4.3.0"
+ }
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "Microsoft.DotNet.InternalAbstractions": {
+ "type": "Transitive",
+ "resolved": "1.0.0",
+ "contentHash": "AAguUq7YyKk3yDWPoWA8DrLZvURxB/LrDdTn1h5lmPeznkFUpfC3p459w5mQYQE0qpquf/CkSQZ0etiV5vRHFA==",
+ "dependencies": {
+ "System.AppContext": "4.1.0",
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==",
+ "dependencies": {
+ "System.Security.AccessControl": "4.5.0",
+ "System.Security.Principal.Windows": "4.5.0"
+ }
+ },
+ "Microsoft.Win32.SystemEvents": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "LuI1oG+24TUj1ZRQQjM5Ew73BKnZE5NZ/7eAdh1o8ST5dPhUnJvIkiIn2re3MwnkRy6ELRnvEbBxHP8uALKhJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "A8v6PGmk+UGbfWo5Ixup0lPM4swuSwOiayJExZwKIOjTlFFQIsu3QnDXECosBEyrWSPryxBVrdqtJyhK3BaupQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "2CQK0jmO6Eu7ZeMgD+LOFbNJSXHFVQbCJJkEyEwowh1SCgYnrn9W9RykMfpeeVGw7h4IBvYikzpGUlmZTUafJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "gqpR1EeXOuzNQWL7rOzmtdIz3CaXVjSQCiaGOs2ivjPwynKSJYm39X81fdlp7WuojZs/Z5t1k5ni7HtKQurhjw=="
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "Cma8cBW6di16ZLibL8LYQ+cLjGzoKxpOTu/faZfDcx94ZjAGq6Nv5RO7+T1YZXqEXTZP9rt1wLVEONVpURtUqw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fCFl8f0XdwA/BuoNrVBB5D0Y48/hv2J+w4xSDdXQitXZsR6UCSOrDVE7TCUraY802ENwcHUnUCv4En8CupDU1g==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==",
+ "dependencies": {
+ "System.ComponentModel": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.NonGeneric": "4.3.0",
+ "System.Collections.Specialized": "4.3.0",
+ "System.ComponentModel": "4.3.0",
+ "System.ComponentModel.Primitives": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.5.1",
+ "contentHash": "HV8pqcYlH7bNnX1n4i6F5RG7r6+WVErE2jUMNjXRrrkLFVIWLoerXtXDFs80pHvDBjxoG4rG0p2BUH3iXRs7hQ==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.5.0",
+ "System.Security.Principal.Windows": "4.5.0",
+ "System.Text.Encoding.CodePages": "4.5.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VnYp1NxGx8Ww731y2LJ1vpfb/DKVNKEZ8Jsh5SgQTZREL/YpWRArgh9pI8CDLmgHspZmLL697CaLvH85qQpRiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Drawing.Common": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "AiJFxxVPdeITstiRS5aAu8+8Dpf5NawTMoapZ53Gfirml24p7HIfhjmCRxdXnmmf3IUA3AX3CcW7G73CjWxW/Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "Microsoft.Win32.SystemEvents": "4.5.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Management": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "Z6ac0qPGr3yJtwZEX1SRkhwWa0Kf5NJxx7smLboYsGrApQFECNFdqhGy252T4lrZ5Nwzhd9VQiaifndR3bfHdg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "Microsoft.Win32.Registry": "4.5.0",
+ "System.CodeDom": "4.5.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Immutable": "1.2.0",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "YrzNWduCDHhUaSRBxHxL11UkM2fD6y8hITHis4/LbQZ6vj3vdRjoH3IoPWWC9uDXK2wHIqn+b5gv1Np/VKyM1g=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "+XbKFuzdmLP3d1o9pdHu2nxjNr2OEPqGzKeegPLCUMM71a0t50A/rOcIRmGs9wR7a8KuHX6hYs/7/TymIGLNqg==",
+ "dependencies": {
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Security.Principal.Windows": "4.5.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.2.0",
+ "contentHash": "8JQFxbLVdrtIOKMDN38Fn0GWnqYZw/oMlwOUG/qz1jqChvyZlnUmu+0s7wLx7JYua/nAXoESpHA3iw11QFWhXg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "FbKgE5MbxSQMPcSVRgwM6bXN3GtyAh04NkV8E5zKCBE26X0vYW0UtTa2FIgkH33WVqBVxRgxljlVYumWtU+HcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Text.Encoding": "4.0.11",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "Wkd7QryWYjkQclX0bngpntW5HSlMzeJU24UaLJQ7YTfI8ydAVAaU2J+HXLLABOVJlKTVvAeL0Aj39VeTe7L+oA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "S0wEUiKcLvRlkFUXca8uio1UQ5bYQzYgOmOKtCqaBQC3GR9AJjh43otcM32IGsAyvadFTaAMw9Irm6dS4Evfng==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "4.5.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XPath": "4.3.0",
+ "System.Xml.XmlDocument": "4.3.0"
+ }
+ },
+ "TextCopy": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "8aW9kUVZhpbqPTHOlRoTBcpqf0PE3rGYMi+BU6Wh/hdYJnV8WHalYFDSX0hpasQAl0BJwyomJ4nckGZTV7lKRg=="
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner.Core/Cosmos.TestRunner.Core.csproj b/Tests/Cosmos.TestRunner.Core/Cosmos.TestRunner.Core.csproj
index 25c698813f..3ad94459a7 100644
--- a/Tests/Cosmos.TestRunner.Core/Cosmos.TestRunner.Core.csproj
+++ b/Tests/Cosmos.TestRunner.Core/Cosmos.TestRunner.Core.csproj
@@ -1,16 +1,17 @@
- netstandard2.0
+ net6.0
+ Debug;Release;TEST
-
-
-
+
+
+
diff --git a/Tests/Cosmos.TestRunner.Core/Engine.Helpers.cs b/Tests/Cosmos.TestRunner.Core/Engine.Helpers.cs
index 4a74a7df1d..df188615fa 100644
--- a/Tests/Cosmos.TestRunner.Core/Engine.Helpers.cs
+++ b/Tests/Cosmos.TestRunner.Core/Engine.Helpers.cs
@@ -107,7 +107,7 @@ private void RunProcess(string aProcess, string aWorkingDirectory, string aArgum
}
else
{
- xErrorReceived($"Error invoking '{aProcess}'.");
+ xErrorReceived($"Error invoking '{aProcess}'.");
}
}
}
@@ -216,14 +216,15 @@ private void RunIL2CPU(string kernelFileName, string outputFile)
"EnableDebug:True",
"EnableStackCorruptionDetection:" + EnableStackCorruptionChecks,
"StackCorruptionDetectionLevel:" + StackCorruptionDetectionLevel,
- "DebugMode:Source",
+ "DebugMode:" + DebugMode,
"TraceAssemblies:" + TraceAssembliesLevel,
"DebugCom:1",
"TargetAssembly:" + kernelFileName,
"OutputFilename:" + outputFile,
"EnableLogging:True",
"EmitDebugSymbols:True",
- "IgnoreDebugStubAttribute:False"
+ "IgnoreDebugStubAttribute:False",
+ "AllowComments:True"
};
xArgs.AddRange(xReferences.Select(r => "References:" + r));
@@ -250,6 +251,8 @@ private void RunIL2CPU(string kernelFileName, string outputFile)
throw new Exception("Cannot run multiple kernels with in-process compilation!");
}
+ //xArgs.Add("AllowComments:true"); // enable this line when debugging cosmos
+
RunIL2CPUInProc(xArgs.ToArray(), OutputHandler.LogMessage, OutputHandler.LogError);
}
else
@@ -265,11 +268,12 @@ private void RunIL2CPU(string kernelFileName, string outputFile)
private void RunNasm(string inputFile, string outputFile, bool isElf)
{
bool xUsingUserkit = false;
- string xNasmPath = Path.Combine(FindCosmosRoot(), "Tools", "NASM");
+ //Path to nasm starter
+ string xNasmPath = Path.Combine(FindCosmosRoot(), "Tools", "Nasm");
if (!Directory.Exists(xNasmPath))
{
xUsingUserkit = true;
- xNasmPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "NASM");
+ xNasmPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "Nasm");
}
if (!Directory.Exists(xNasmPath))
{
@@ -278,7 +282,7 @@ private void RunNasm(string inputFile, string outputFile, bool isElf)
var xArgs = new List
{
- $"ExePath:{Path.Combine(xUsingUserkit ? GetCosmosUserkitFolder() : FindCosmosRoot(), "Build", "Tools", "NAsm", "nasm.exe")}",
+ $"ExePath:{Path.Combine(xUsingUserkit ? GetCosmosUserkitFolder() : FindCosmosRoot(), "Build", "Tools", "Yasm", "yasm.exe")}",
$"InputFile:{inputFile}",
$"OutputFile:{outputFile}",
$"IsELF:{isElf}"
@@ -309,7 +313,7 @@ private void RunLd(string inputFile, string outputFile)
var xArgsString = arguments.Aggregate("", (a, b) => a + " \"" + b + "\"");
- var xProcess = Process.Start(Path.Combine(GetCosmosUserkitFolder(), "build", "tools", "cygwin", "ld.exe"), xArgsString);
+ var xProcess = Process.Start(Path.Combine(GetCosmosUserkitFolder(), "Build", "tools", "cygwin", "ld.exe"), xArgsString);
xProcess.WaitForExit(10000);
@@ -333,10 +337,10 @@ private static string GetCosmosUserkitFolder()
private void MakeIso(string objectFile, string isoFile)
{
- IsoMaker.Generate(objectFile, isoFile);
+ string response = IsoMaker.Generate(objectFile, isoFile);
if (!File.Exists(isoFile))
{
- throw new Exception("Error building iso");
+ throw new Exception($"Error building iso: {response}");
}
}
}
diff --git a/Tests/Cosmos.TestRunner.Core/Engine.Qemu.cs b/Tests/Cosmos.TestRunner.Core/Engine.Qemu.cs
new file mode 100644
index 0000000000..91681cfa28
--- /dev/null
+++ b/Tests/Cosmos.TestRunner.Core/Engine.Qemu.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using Cosmos.Build.Common;
+using Cosmos.Debug.DebugConnectors;
+using Cosmos.Debug.Hosts;
+
+namespace Cosmos.TestRunner.Core
+{
+ partial class Engine
+ {
+ private void RunIsoInQemu(string iso, string harddisk, string workingDir)
+ {
+ if (!File.Exists(harddisk))
+ {
+ throw new FileNotFoundException("Harddisk file not found!", harddisk);
+ }
+
+ var xParams = new Dictionary
+ {
+ {BuildPropertyNames.IsoFileString, iso}
+ };
+
+ var xDebugConnector = new DebugConnectorPipeClient("Cosmos\\Serial");
+ InitializeDebugConnector(xDebugConnector);
+
+ var xQemu = new Qemu(xParams, RunWithGDB, harddisk)
+ {
+ OnShutDown = (a, b) => { mKernelRunning = false; },
+ RedirectOutput = false,
+ LogError = s => OutputHandler.LogDebugMessage(s),
+ LogOutput = s => OutputHandler.LogDebugMessage(s)
+ };
+
+ HandleRunning(xDebugConnector, xQemu);
+ }
+ }
+}
diff --git a/Tests/Cosmos.TestRunner.Core/Engine.Run.cs b/Tests/Cosmos.TestRunner.Core/Engine.Run.cs
index 1e5b651f0d..42955d92f5 100644
--- a/Tests/Cosmos.TestRunner.Core/Engine.Run.cs
+++ b/Tests/Cosmos.TestRunner.Core/Engine.Run.cs
@@ -1,6 +1,10 @@
using System;
using System.Collections.Generic;
using System.IO;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
namespace Cosmos.TestRunner.Core
{
@@ -43,25 +47,40 @@ private bool ExecuteKernel(
else
{
xHarddiskPath = Path.Combine(workingDirectory, "Harddisk.vmdk");
- var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "VMware", "Workstation", "Filesystem.vmdk");
+ var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "VMware", "Workstation", "FilesystemTest.vmdk");
File.Copy(xOriginalHarddiskPath, xHarddiskPath);
}
RunTask("MakeISO", () => MakeIso(xObjectFile, xIsoFile));
- switch (configuration.RunTarget)
+ Console.WriteLine("assemblyFileName=" + assemblyFileName);
+
+ if (assemblyFileName.EndsWith("NetworkTest.dll"))
+ {
+ var serverThread = new Thread(StartTcpServer);
+ serverThread.Start();
+
+ RunTask("RunISO", () => RunIsoInVMware(xIsoFile, xHarddiskPath));
+ }
+ else
{
- case RunTargetEnum.Bochs:
- RunTask("RunISO", () => RunIsoInBochs(xIsoFile, xHarddiskPath, workingDirectory));
- break;
- case RunTargetEnum.VMware:
- RunTask("RunISO", () => RunIsoInVMware(xIsoFile, xHarddiskPath));
- break;
- case RunTargetEnum.HyperV:
- RunTask("RunISO", () => RunIsoInHyperV(xIsoFile, xHarddiskPath));
- break;
- default:
- throw new ArgumentOutOfRangeException("RunTarget " + configuration.RunTarget + " not implemented!");
+ switch (configuration.RunTarget)
+ {
+ case RunTargetEnum.Bochs:
+ RunTask("RunISO", () => RunIsoInBochs(xIsoFile, xHarddiskPath, workingDirectory));
+ break;
+ case RunTargetEnum.Qemu:
+ RunTask("RunISO", () => RunIsoInQemu(xIsoFile, xHarddiskPath, workingDirectory));
+ break;
+ case RunTargetEnum.VMware:
+ RunTask("RunISO", () => RunIsoInVMware(xIsoFile, xHarddiskPath));
+ break;
+ case RunTargetEnum.HyperV:
+ RunTask("RunISO", () => RunIsoInHyperV(xIsoFile, xHarddiskPath));
+ break;
+ default:
+ throw new ArgumentOutOfRangeException("RunTarget " + configuration.RunTarget + " not implemented!");
+ }
}
OutputHandler.ExecuteKernelEnd(assemblyFileName);
@@ -82,10 +101,111 @@ private void RunTask(string aTaskName, Action aAction)
{
aAction();
}
+ catch(Exception e)
+ {
+ OutputHandler.LogError(e.ToString());
+ }
finally
{
OutputHandler.TaskEnd(aTaskName);
}
}
+
+ private void StartTcpServer()
+ {
+ var listener = new TcpListener(IPAddress.Loopback, 12345);
+ listener.Start();
+
+ Console.WriteLine("TCP server started in a new thread, waiting connection from test kernel...");
+
+ IPEndPoint localEndPoint = listener.LocalEndpoint as IPEndPoint;
+ Console.WriteLine($"IP: {localEndPoint.Address}, Port: {localEndPoint.Port}");
+
+ var client = listener.AcceptTcpClient();
+ var remoteEndPoint = client.Client.RemoteEndPoint as IPEndPoint;
+ var clientIPAddress = remoteEndPoint.Address;
+ Console.WriteLine("Test kernel connected! Beginning tests...");
+
+ IPAddress remoteIPAddress = null;
+
+ using (NetworkStream stream = client.GetStream())
+ {
+ // Test 1: Send simple message
+ string testMessage = "Hello from the testrunner!";
+ byte[] messageBytes = Encoding.ASCII.GetBytes(testMessage);
+ stream.Write(messageBytes, 0, messageBytes.Length);
+ Console.WriteLine($"Sent: {testMessage}");
+
+ // Test 2: Receive a message from kernel
+ byte[] bufferIp = new byte[1024];
+ int bytesIpRead = stream.Read(bufferIp, 0, bufferIp.Length);
+ string ip = Encoding.ASCII.GetString(bufferIp, 0, bytesIpRead);
+ remoteIPAddress = IPAddress.Parse(ip);
+ Console.WriteLine($"Received: {ip}");
+
+ // Test 2.2: Receive a message from kernel
+ byte[] buffer = new byte[1024];
+ int bytesRead = stream.Read(buffer, 0, buffer.Length);
+ string receivedMessage = Encoding.ASCII.GetString(buffer, 0, bytesRead);
+ Console.WriteLine($"Received: {receivedMessage}");
+
+ // Test 3: Send back the received message, capitalized
+ string replyMessage = receivedMessage.ToUpper();
+ byte[] replyBytes = Encoding.ASCII.GetBytes(replyMessage);
+ stream.Write(replyBytes, 0, replyBytes.Length);
+ Console.WriteLine($"Sent: {replyMessage}");
+
+ // Test 4: Receive a big packet from kernel to test TCP sequencing
+ byte[] buffer2 = new byte[6000];
+ int totalBytesRead = 0;
+
+ while (totalBytesRead < 6000)
+ {
+ totalBytesRead += stream.Read(buffer2, totalBytesRead, 6000 - totalBytesRead);
+ }
+
+ // Test 5: Send back the received message
+ stream.Write(buffer2, 0, buffer2.Length);
+ Console.WriteLine($"Sent: {replyMessage}");
+ }
+
+ client.Close();
+ listener.Stop();
+
+ ConnectToTcpServer(remoteIPAddress);
+ }
+
+ private void ConnectToTcpServer(IPAddress ip)
+ {
+ var xClient = new TcpClient();
+
+ Console.WriteLine("Attempting to connect to the kernel...");
+
+ try
+ {
+ // Test 6: Test TCPListener implementation
+ xClient.Connect(ip, 4343);
+ Console.WriteLine("Connected to the kernel!");
+
+ using (NetworkStream stream = xClient.GetStream())
+ {
+ byte[] buffer = new byte[1024];
+ int bytesRead = stream.Read(buffer, 0, buffer.Length);
+ string receivedMessage = Encoding.ASCII.GetString(buffer, 0, bytesRead);
+ Console.WriteLine($"Received: {receivedMessage}");
+
+ string testMessage = "Hello from the testrunner again!";
+ byte[] messageBytes = Encoding.ASCII.GetBytes(testMessage);
+ stream.Write(messageBytes, 0, messageBytes.Length);
+ Console.WriteLine($"Sent: {testMessage}");
+ }
+
+ xClient.Close();
+ }
+ catch (SocketException ex)
+ {
+ Console.WriteLine($"Failed to connect to the kernel. Error: {ex.Message}");
+ }
+ }
}
}
diff --git a/Tests/Cosmos.TestRunner.Core/Engine.Running.cs b/Tests/Cosmos.TestRunner.Core/Engine.Running.cs
index 635ef0a06a..0da5ce989f 100644
--- a/Tests/Cosmos.TestRunner.Core/Engine.Running.cs
+++ b/Tests/Cosmos.TestRunner.Core/Engine.Running.cs
@@ -60,9 +60,18 @@ void AbortTestAndLogException(Exception aException, string aMessage)
aDebugConnector.CmdSimpleLongNumber += n => LogMessage(
"Number from kernel: 0x" + n.ToString("X16").ToUpper());
- aDebugConnector.CmdComplexNumber += f => LogMessage(
- "Number from kernel: 0x" + f.ToString("X8").ToUpper());
+ aDebugConnector.CmdComplexNumber += f =>
+ {
+ try
+ {
+ LogMessage(
+ "Number from kernel: 0x" + f.ToString("X8").ToUpper());
+ }
+ catch(Exception e)
+ {
+ }
+ };
aDebugConnector.CmdComplexLongNumber += d => LogMessage(
"Number from kernel: 0x" + d.ToString("X16").ToUpper());
@@ -90,6 +99,11 @@ void AbortTestAndLogException(Exception aException, string aMessage)
aDebugConnector.CmdCoreDump = dump =>
{
+ if(dump == null)
+ {
+ OutputHandler.LogMessage("Attempted to dump core but didnt get enough data;");
+ return;
+ }
OutputHandler.LogMessage("Core dump:");
string eax = "EAX = 0x" + dump.EAX.ToString("X8");
@@ -191,7 +205,7 @@ private void ChannelPacketReceived(byte arg1, byte arg2, byte[] arg3)
}
else
{
- OutputHandler.LogMessage($"ChannelPacketReceived, Channel = {arg1}, Command = {arg2}");
+ OutputHandler.LogMessage($"ChannelPacketReceived, Channel = {arg1}, Command = {arg2}, Args = {BitConverter.ToString(arg3)}");
}
}
diff --git a/Tests/Cosmos.TestRunner.Core/Engine.cs b/Tests/Cosmos.TestRunner.Core/Engine.cs
index 815c6ec045..68bb6d035c 100644
--- a/Tests/Cosmos.TestRunner.Core/Engine.cs
+++ b/Tests/Cosmos.TestRunner.Core/Engine.cs
@@ -19,6 +19,7 @@ public partial class Engine
protected TraceAssemblies TraceAssembliesLevel => mConfiguration.TraceAssembliesLevel;
protected bool EnableStackCorruptionChecks => mConfiguration.EnableStackCorruptionChecks;
protected StackCorruptionDetectionLevel StackCorruptionDetectionLevel => mConfiguration.StackCorruptionDetectionLevel;
+ protected DebugMode DebugMode => mConfiguration.DebugMode;
protected bool RunWithGDB => mConfiguration.RunWithGDB;
protected bool StartBochsDebugGui => mConfiguration.StartBochsDebugGUI;
@@ -105,7 +106,6 @@ private IEnumerable GetRunConfigurations()
foreach (var xTarget in RunTargets)
{
yield return new RunConfiguration(isElf: true, runTarget: xTarget);
- //yield return new RunConfiguration(isElf: false, runTarget: xTarget);
}
}
}
diff --git a/Tests/Cosmos.TestRunner.Core/Enums.cs b/Tests/Cosmos.TestRunner.Core/Enums.cs
index 30d8a1c05f..9e6d6fdcc2 100644
--- a/Tests/Cosmos.TestRunner.Core/Enums.cs
+++ b/Tests/Cosmos.TestRunner.Core/Enums.cs
@@ -4,6 +4,7 @@ public enum RunTargetEnum
{
Bochs,
VMware,
- HyperV
+ HyperV,
+ Qemu
}
}
diff --git a/Tests/Cosmos.TestRunner.Core/IEngineConfiguration.cs b/Tests/Cosmos.TestRunner.Core/IEngineConfiguration.cs
index 050283bb44..ca4ad8ddd9 100644
--- a/Tests/Cosmos.TestRunner.Core/IEngineConfiguration.cs
+++ b/Tests/Cosmos.TestRunner.Core/IEngineConfiguration.cs
@@ -28,6 +28,7 @@ public interface IEngineConfiguration
TraceAssemblies TraceAssembliesLevel { get; }
bool EnableStackCorruptionChecks { get; }
StackCorruptionDetectionLevel StackCorruptionDetectionLevel { get; }
+ DebugMode DebugMode { get; }
///
/// An enumerable of kernel assemblies which will be run.
diff --git a/Tests/Cosmos.TestRunner.Core/OutputHandlerFullTextBase.cs b/Tests/Cosmos.TestRunner.Core/OutputHandlerFullTextBase.cs
index 8aa9c1ed4c..675d448843 100644
--- a/Tests/Cosmos.TestRunner.Core/OutputHandlerFullTextBase.cs
+++ b/Tests/Cosmos.TestRunner.Core/OutputHandlerFullTextBase.cs
@@ -26,7 +26,7 @@ protected override void OnTaskEnd(string taskName)
protected override void OnUnhandledException(Exception exception)
{
- Log("Unhandled exception: " + exception.ToString());
+ Log("Unhandled exception: " + exception?.ToString() ?? "Unable to get exception: Exception was null!");
}
protected override void OnExecutionEnd()
diff --git a/Tests/Cosmos.TestRunner.Core/RunConfiguration.cs b/Tests/Cosmos.TestRunner.Core/RunConfiguration.cs
index 5331b9baee..e01656b8f4 100644
--- a/Tests/Cosmos.TestRunner.Core/RunConfiguration.cs
+++ b/Tests/Cosmos.TestRunner.Core/RunConfiguration.cs
@@ -9,6 +9,11 @@ public RunConfiguration(bool isElf, RunTargetEnum runTarget)
{
IsELF = isElf;
RunTarget = runTarget;
+
+ if (runTarget == RunTargetEnum.Qemu)
+ {
+ IsELF = false;
+ }
}
}
}
diff --git a/Tests/Cosmos.TestRunner.Core/TestResultExtensions.cs b/Tests/Cosmos.TestRunner.Core/TestResultExtensions.cs
index 7cfe9f1f04..b0a055dad0 100644
--- a/Tests/Cosmos.TestRunner.Core/TestResultExtensions.cs
+++ b/Tests/Cosmos.TestRunner.Core/TestResultExtensions.cs
@@ -55,7 +55,8 @@ public static void SaveXmlToFile(this ITestResult aTestResult, string aFilePath)
{
Encoding = Encoding.UTF8,
Indent = true,
- OmitXmlDeclaration = true
+ OmitXmlDeclaration = true,
+ CheckCharacters =false
};
using (var xWriter = XmlWriter.Create(aFilePath, xWriterSettings))
diff --git a/Tests/Cosmos.TestRunner.Core/packages.lock.json b/Tests/Cosmos.TestRunner.Core/packages.lock.json
new file mode 100644
index 0000000000..b3c2ec78e2
--- /dev/null
+++ b/Tests/Cosmos.TestRunner.Core/packages.lock.json
@@ -0,0 +1,458 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner.Full/Cosmos.TestRunner.Full.csproj b/Tests/Cosmos.TestRunner.Full/Cosmos.TestRunner.Full.csproj
index 420536e315..6246b420ed 100644
--- a/Tests/Cosmos.TestRunner.Full/Cosmos.TestRunner.Full.csproj
+++ b/Tests/Cosmos.TestRunner.Full/Cosmos.TestRunner.Full.csproj
@@ -1,8 +1,9 @@
- netcoreapp2.0
+ net6.0
True
+ Debug;Release;TEST
@@ -11,13 +12,14 @@
-
+
+
@@ -28,6 +30,8 @@
+
+
diff --git a/Tests/Cosmos.TestRunner.Full/DefaultEngineConfiguration.cs b/Tests/Cosmos.TestRunner.Full/DefaultEngineConfiguration.cs
index 34eac84ed5..3f834033ce 100644
--- a/Tests/Cosmos.TestRunner.Full/DefaultEngineConfiguration.cs
+++ b/Tests/Cosmos.TestRunner.Full/DefaultEngineConfiguration.cs
@@ -17,6 +17,7 @@ public virtual IEnumerable RunTargets
yield return RunTargetEnum.Bochs;
//yield return RunTargetEnum.VMware;
//yield return RunTargetEnum.HyperV;
+ //yield return RunTargetEnum.Qemu;
}
}
@@ -27,7 +28,8 @@ public virtual IEnumerable RunTargets
public virtual string KernelPkg => String.Empty;
public virtual TraceAssemblies TraceAssembliesLevel => TraceAssemblies.User;
public virtual bool EnableStackCorruptionChecks => true;
- public virtual StackCorruptionDetectionLevel StackCorruptionDetectionLevel => StackCorruptionDetectionLevel.AllInstructions;
+ public virtual StackCorruptionDetectionLevel StackCorruptionDetectionLevel => StackCorruptionDetectionLevel.MethodFooters;
+ public virtual DebugMode DebugMode => DebugMode.Source;
public virtual IEnumerable KernelAssembliesToRun
{
diff --git a/Tests/Cosmos.TestRunner.Full/TestKernelSets.cs b/Tests/Cosmos.TestRunner.Full/TestKernelSets.cs
index af462a9678..6e2f0e1c35 100644
--- a/Tests/Cosmos.TestRunner.Full/TestKernelSets.cs
+++ b/Tests/Cosmos.TestRunner.Full/TestKernelSets.cs
@@ -16,25 +16,28 @@ public static IEnumerable GetKernelTypesToRun()
public static IEnumerable GetStableKernelTypes()
{
yield return typeof(BoxingTests.Kernel);
- yield return typeof(Cosmos.Compiler.Tests.TypeSystem.Kernel);
- yield return typeof(Cosmos.Compiler.Tests.Bcl.Kernel);
+ yield return typeof(Compiler.Tests.TypeSystem.Kernel);
+ yield return typeof(Compiler.Tests.Bcl.Kernel);
+ yield return typeof(Compiler.Tests.Bcl.System.Kernel);
//yield return typeof(Cosmos.Compiler.Tests.Encryption.Kernel);
- yield return typeof(Cosmos.Compiler.Tests.Exceptions.Kernel);
- yield return typeof(Cosmos.Compiler.Tests.MethodTests.Kernel);
- yield return typeof(Cosmos.Compiler.Tests.SingleEchoTest.Kernel);
- yield return typeof(Cosmos.Kernel.Tests.Fat.Kernel);
- yield return typeof(Cosmos.Kernel.Tests.IO.Kernel);
+ yield return typeof(Compiler.Tests.Exceptions.Kernel);
+ yield return typeof(Compiler.Tests.MethodTests.Kernel);
+ yield return typeof(Compiler.Tests.SingleEchoTest.Kernel);
+ yield return typeof(Kernel.Tests.Fat.Kernel);
+ yield return typeof(Kernel.Tests.IO.Kernel);
yield return typeof(SimpleStructsAndArraysTest.Kernel);
- yield return typeof(Cosmos.Kernel.Tests.DiskManager.Kernel);
+ yield return typeof(Kernel.Tests.DiskManager.Kernel);
//yield return typeof(KernelGen3.Boot);
+ yield return typeof(GraphicTest.Kernel);
- /* Please see the notes on the kernel itself before enabling it */
- //yield return typeof(GraphicTest.Kernel);
- /* Please see the notes on the kernel itself before enabling it */
+ // Disable network tests due to our self hosted CI/CD limitations (VPS currently doesn't support VMWare with its CPU)
+ //yield return typeof(NetworkTest.Kernel);
+ yield return typeof(AudioTests.Kernel);
+ // Please see the notes on the kernel itself before enabling it
//yield return typeof(ConsoleTest.Kernel);
- /* This is a bit slow and works only because ring check is disabled to decide if leave it enabled */
yield return typeof(MemoryOperationsTest.Kernel);
+ yield return typeof(ProcessorTests.Kernel);
}
}
}
diff --git a/Tests/Cosmos.TestRunner.Full/packages.lock.json b/Tests/Cosmos.TestRunner.Full/packages.lock.json
new file mode 100644
index 0000000000..0acb01a769
--- /dev/null
+++ b/Tests/Cosmos.TestRunner.Full/packages.lock.json
@@ -0,0 +1,1659 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "audiotests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "boxingtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "consoletest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bcl": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bclsystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.encryption": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.exceptions": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.interfaces": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.methodtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.singleechotest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.typesystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.diskmanager": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.fat": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.io": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "graphictest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "memoryoperationstest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "networktest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "processortests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "simplestructsandarraystest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner.TestAdapter/Cosmos.TestRunner.TestAdapter.csproj b/Tests/Cosmos.TestRunner.TestAdapter/Cosmos.TestRunner.TestAdapter.csproj
index a0f1d17907..3a272fb07a 100644
--- a/Tests/Cosmos.TestRunner.TestAdapter/Cosmos.TestRunner.TestAdapter.csproj
+++ b/Tests/Cosmos.TestRunner.TestAdapter/Cosmos.TestRunner.TestAdapter.csproj
@@ -1,42 +1,20 @@
- netcoreapp2.0
+ net6.0
Test adapter for Cosmos kernels.
- True
+ True
+ False
NU5111;$(NoWarn)
+ Debug;Release;TEST
-
+
-
- False
-
- True
- $(TargetsForTfmSpecificContentInPackage);PackTestAdapter
-
-
-
-
-
- <_GeneratedFiles Include="$(PublishDepsFilePath)" />
-
-
-
-
- tools\%(_GeneratedFiles.RecursiveDir)%(_GeneratedFiles.Filename)%(_GeneratedFiles.Extension)
-
-
- tools\%(ResolvedFileToPublish.RelativePath)
-
-
-
-
-
diff --git a/Tests/Cosmos.TestRunner.TestAdapter/EngineConfiguration.cs b/Tests/Cosmos.TestRunner.TestAdapter/EngineConfiguration.cs
index 31cfceff62..4d01c37632 100644
--- a/Tests/Cosmos.TestRunner.TestAdapter/EngineConfiguration.cs
+++ b/Tests/Cosmos.TestRunner.TestAdapter/EngineConfiguration.cs
@@ -20,6 +20,7 @@ internal sealed class EngineConfiguration : IEngineConfiguration
public TraceAssemblies TraceAssembliesLevel { get; }
public bool EnableStackCorruptionChecks { get; }
public StackCorruptionDetectionLevel StackCorruptionDetectionLevel { get; }
+ public DebugMode DebugMode { get; }
public IEnumerable KernelAssembliesToRun { get; }
diff --git a/Tests/Cosmos.TestRunner.TestAdapter/packages.lock.json b/Tests/Cosmos.TestRunner.TestAdapter/packages.lock.json
new file mode 100644
index 0000000000..aa3e7be982
--- /dev/null
+++ b/Tests/Cosmos.TestRunner.TestAdapter/packages.lock.json
@@ -0,0 +1,487 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Direct",
+ "requested": "[17.0.0, )",
+ "resolved": "17.0.0",
+ "contentHash": "WMugCdPkA8U/BsSRc+3RN+DXcaYSDvp/s0MofVld08iF1O5fek4iKecygk6NruNf1rgJsv4LK71mrwbyeqhzHA==",
+ "dependencies": {
+ "NuGet.Frameworks": "5.0.0",
+ "System.Reflection.Metadata": "1.6.0"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NuGet.Frameworks": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "c5JVjuVAm4f7E9Vj+v09Z9s2ZsqFDjBpcsyS3M9xRo0bEdm/LVZSzLxxNvfvAwRiiE8nwe1h2G4OwiwlzFKXlA=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "1.6.0",
+ "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner.TestController/Assert.cs b/Tests/Cosmos.TestRunner.TestController/Assert.cs
index 3206295f3d..e27e05f672 100644
--- a/Tests/Cosmos.TestRunner.TestController/Assert.cs
+++ b/Tests/Cosmos.TestRunner.TestController/Assert.cs
@@ -5,22 +5,31 @@ namespace Cosmos.TestRunner
{
public static class Assert
{
+ public static void Succeed(string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ TestController.Debugger.Send("Assertion succeeded:");
+ TestController.Debugger.Send(message);
+ TestController.AssertionSucceeded();
+ }
+ public static void Fail(string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ TestController.Debugger.Send("Assertion failed:");
+ TestController.Debugger.Send("File: " + file);
+ TestController.Debugger.Send("Line number: " + line);
+ TestController.Debugger.Send(message);
+ TestController.Failed();
+ throw new Exception("Assertion failed!");
+ }
+
public static void IsTrue(bool condition, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
{
if (condition)
{
- TestController.Debugger.Send("Assertion succeeded:");
- TestController.Debugger.Send(message);
- TestController.AssertionSucceeded();
+ Succeed(message, file, line);
}
else
{
- TestController.Debugger.Send("Assertion failed:");
- TestController.Debugger.Send("File: " + file);
- TestController.Debugger.Send("Line number: " + line);
- TestController.Debugger.Send(message);
- TestController.Failed();
- throw new Exception("Assertion failed!");
+ Fail(message, file, line);
}
}
@@ -35,16 +44,169 @@ public static void AreEqual(int expected, int actual, string message, [CallerFil
if (!xResult)
{
TestController.Debugger.Send("Expected value");
- TestController.Debugger.SendNumber((uint) expected);
+ TestController.Debugger.SendNumber(expected);
+ TestController.Debugger.Send("Actual value");
+ TestController.Debugger.SendNumber(actual);
+
+ TestController.Debugger.Send("Expected value");
+ TestController.Debugger.SendNumber(expected);
+ TestController.Debugger.Send("Actual value");
+ TestController.Debugger.SendNumber(actual);
+
+ TestController.Debugger.Send("Numbers sent!");
+ }
+ IsTrue(xResult, message, file, line);
+ }
+
+ public static void AreEqual(string expected, string actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ var xResult = expected == actual;
+ if (!xResult)
+ {
+ TestController.Debugger.Send($"Expected value: '{expected}'");
+ TestController.Debugger.Send($"Actual value: '{actual}'");
+ }
+ IsTrue(xResult, message, file, line);
+ }
+
+ public static void AreEqual(long expected, long actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ var xResult = expected == actual;
+ if (!xResult)
+ {
+ TestController.Debugger.Send($"Expected value: '{expected}'");
+ TestController.Debugger.Send($"Actual value: '{actual}'");
+ }
+ IsTrue(xResult, message, file, line);
+ }
+
+ public static void AreEqual(double expected, double actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ var xResult = Math.Abs(expected - actual) < 0.0001;
+ if (!xResult)
+ {
+ TestController.Debugger.Send($"Expected value: '{expected}' " + BitConverter.ToString(BitConverter.GetBytes(expected)));
+ TestController.Debugger.Send($"Actual value: '{actual}' " + BitConverter.ToString(BitConverter.GetBytes(actual)));
+ TestController.Debugger.Send($"Diff: {xResult}");
+ }
+ IsTrue(xResult, message, file, line);
+ }
+
+ public static void AreEqual(string[] expected, string[] actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ if(expected.Length != actual.Length)
+ {
+ TestController.Debugger.Send($"Array lengths differ: Expected: {expected.Length} Actual: {actual.Length}");
+ if(actual.Length < 32)
+ {
+ TestController.Debugger.Send("Actual Content:");
+ for (int i = 0; i < actual.Length; i++)
+ {
+ TestController.Debugger.Send(actual[i]);
+ }
+ }
+ Fail(message, file, line);
+ return;
+ }
+ for (int i = 0; i < expected.Length; i++)
+ {
+ if(expected[i] != actual[i])
+ {
+ TestController.Debugger.Send($"Values differ in row {i}");
+ TestController.Debugger.Send($"Expected value: '{expected[i]}'");
+ TestController.Debugger.Send($"Actual value: '{actual[i]}'");
+ Fail(message, file, line);
+ return;
+ }
+ }
+ Succeed(message, file, line);
+ }
+
+ public static void AreNotEqual(uint expected, uint actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ var xResult = expected != actual;
+ if (!xResult)
+ {
+ TestController.Debugger.Send("Expected value");
+ TestController.Debugger.SendNumber((uint)expected);
TestController.Debugger.Send("Actual value");
TestController.Debugger.SendNumber((uint)actual);
- TestController.Debugger.SendNumber("TestAssertion", "Expected", (uint)expected, 32);
- TestController.Debugger.SendNumber("TestAssertion", "Actual", (uint)actual, 32);
+ TestController.Debugger.Send("Expected value");
+ TestController.Debugger.SendNumber(expected);
+ TestController.Debugger.Send("Actual value");
+ TestController.Debugger.SendNumber(actual);
TestController.Debugger.Send("Numbers sent!");
}
IsTrue(xResult, message, file, line);
}
+
+ public static void AreEqual(byte[] expected, byte[] actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ if (expected.Length != actual.Length)
+ {
+ TestController.Debugger.Send($"Array lengths differ: Expected: {expected.Length} Actual: {actual.Length}");
+ Fail(message, file, line);
+ return;
+ }
+ for (int i = 0; i < expected.Length; i++)
+ {
+ if (expected[i] != actual[i])
+ {
+ TestController.Debugger.Send($"Values differ in row {i}");
+ TestController.Debugger.Send($"Expected value: '{expected[i]}'");
+ TestController.Debugger.Send($"Actual value: '{actual[i]}'");
+ TestController.Debugger.Send(BitConverter.ToString(actual));
+ Fail(message, file, line);
+ return;
+ }
+ }
+ Succeed(message, file, line);
+ }
+
+ public static void AreEqual(uint[] expected, uint[] actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ if (expected.Length != actual.Length)
+ {
+ TestController.Debugger.Send($"Array lengths differ: Expected: {expected.Length} Actual: {actual.Length}");
+ Fail(message, file, line);
+ return;
+ }
+ for (int i = 0; i < expected.Length; i++)
+ {
+ if (expected[i] != actual[i])
+ {
+ TestController.Debugger.Send($"Values differ in row {i}");
+ TestController.Debugger.Send($"Expected value: '{expected[i]}'");
+ TestController.Debugger.Send($"Actual value: '{actual[i]}'");
+ Fail(message, file, line);
+ return;
+ }
+ }
+ Succeed(message, file, line);
+ }
+
+ public static void AreEqual(int[] expected, int[] actual, string message, [CallerFilePath] string file = null, [CallerLineNumber] int line = 0)
+ {
+ if (expected.Length != actual.Length)
+ {
+ TestController.Debugger.Send($"Array lengths differ: Expected: {expected.Length} Actual: {actual.Length}");
+ Fail(message, file, line);
+ return;
+ }
+ for (int i = 0; i < expected.Length; i++)
+ {
+ if (expected[i] != actual[i])
+ {
+ TestController.Debugger.Send($"Values differ in row {i}");
+ TestController.Debugger.Send($"Expected value: '{expected[i]}'");
+ TestController.Debugger.Send($"Actual value: '{actual[i]}'");
+ Fail(message, file, line);
+ return;
+ }
+ }
+ Succeed(message, file, line);
+ }
}
}
diff --git a/Tests/Cosmos.TestRunner.TestController/Cosmos.TestRunner.TestController.csproj b/Tests/Cosmos.TestRunner.TestController/Cosmos.TestRunner.TestController.csproj
index 5039f4c372..8f5e662b0c 100644
--- a/Tests/Cosmos.TestRunner.TestController/Cosmos.TestRunner.TestController.csproj
+++ b/Tests/Cosmos.TestRunner.TestController/Cosmos.TestRunner.TestController.csproj
@@ -1,7 +1,8 @@
- netstandard2.0
+ net6.0
+ Debug;Release;TEST
diff --git a/Tests/Cosmos.TestRunner.TestController/TestController.cs b/Tests/Cosmos.TestRunner.TestController/TestController.cs
index 5e9cc60e63..b363e42d7c 100644
--- a/Tests/Cosmos.TestRunner.TestController/TestController.cs
+++ b/Tests/Cosmos.TestRunner.TestController/TestController.cs
@@ -1,19 +1,18 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+
using Cosmos.Debug.Kernel;
+using System;
namespace Cosmos.TestRunner
{
public static class TestController
{
+ static readonly Debugger debugger = new("TestController");
+
internal static Debugger Debugger
{
get
{
- return new Debugger("Tests", "TestController");
+ return debugger;
}
}
@@ -24,16 +23,15 @@ public static void Completed()
Debugger.SendChannelCommand(TestChannel, (byte)TestChannelCommandEnum.TestCompleted);
Debugger.Send("Test completed");
Console.WriteLine("Test completed");
- while (true)
- ;
+ while (true) ;
}
public static void Failed()
{
Debugger.Send("Failed");
Debugger.SendChannelCommand(TestChannel, (byte)TestChannelCommandEnum.TestFailed);
- while (true)
- ;
+ Debugger.DoBochsBreak();
+ while (true) ;
}
internal static void AssertionSucceeded()
diff --git a/Tests/Cosmos.TestRunner.TestController/packages.lock.json b/Tests/Cosmos.TestRunner.TestController/packages.lock.json
new file mode 100644
index 0000000000..dd80f8cbae
--- /dev/null
+++ b/Tests/Cosmos.TestRunner.TestController/packages.lock.json
@@ -0,0 +1,10 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner.UI/App.xaml.cs b/Tests/Cosmos.TestRunner.UI/App.xaml.cs
index fa19e5ecad..7706e41fae 100644
--- a/Tests/Cosmos.TestRunner.UI/App.xaml.cs
+++ b/Tests/Cosmos.TestRunner.UI/App.xaml.cs
@@ -15,16 +15,18 @@ internal class App : Application
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
- base.Initialize();
}
- static void Main(string[] args)
+ private static void Main(string[] args)
{
InitializeLogging();
+ BuildAvaloniaApp().Start();
+ }
+
+ private static AppBuilder BuildAvaloniaApp() =>
AppBuilder.Configure()
.UsePlatformDetect()
- .Start();
- }
+ .UseReactiveUI();
[Conditional("DEBUG")]
private static void InitializeLogging()
diff --git a/Tests/Cosmos.TestRunner.UI/Cosmos.TestRunner.UI.csproj b/Tests/Cosmos.TestRunner.UI/Cosmos.TestRunner.UI.csproj
index b4c50744ba..8498e468e5 100644
--- a/Tests/Cosmos.TestRunner.UI/Cosmos.TestRunner.UI.csproj
+++ b/Tests/Cosmos.TestRunner.UI/Cosmos.TestRunner.UI.csproj
@@ -1,10 +1,11 @@
- netcoreapp2.0
+ net6.0
Exe
- win7-x86
+ win10-x86
False
+ Debug;Release;TEST
@@ -13,8 +14,10 @@
-
-
+
+
+
+
diff --git a/Tests/Cosmos.TestRunner.UI/ViewModels/MainWindowViewModel.cs b/Tests/Cosmos.TestRunner.UI/ViewModels/MainWindowViewModel.cs
index ea08020d18..447160c44e 100644
--- a/Tests/Cosmos.TestRunner.UI/ViewModels/MainWindowViewModel.cs
+++ b/Tests/Cosmos.TestRunner.UI/ViewModels/MainWindowViewModel.cs
@@ -1,15 +1,16 @@
using System;
-using System.ComponentModel;
using System.Threading;
+using ReactiveUI;
+
using Cosmos.TestRunner.Core;
using Cosmos.TestRunner.Full;
namespace Cosmos.TestRunner.UI.ViewModels
{
- internal class MainWindowViewModel : INotifyPropertyChanged
+ internal class MainWindowViewModel : ReactiveObject
{
- public event PropertyChangedEventHandler PropertyChanged;
+ private string _log;
public MainWindowViewModel(IEngineConfiguration aEngineConfiguration)
{
@@ -17,20 +18,17 @@ public MainWindowViewModel(IEngineConfiguration aEngineConfiguration)
xEngine.SetOutputHandler(
new OutputHandler(
- m =>
- {
- TestRunnerLog += m + Environment.NewLine;
- OnPropertyChanged(nameof(TestRunnerLog));
- }));
+ m => TestRunnerLog += m + Environment.NewLine));
new Thread(() => xEngine.Execute()).Start();
}
- public string TestRunnerLog { get; set; }
-
- private void OnPropertyChanged(string aPropertyName) =>
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(aPropertyName));
-
+ public string TestRunnerLog
+ {
+ get => _log;
+ set => this.RaiseAndSetIfChanged(ref _log, value);
+ }
+
internal class OutputHandler : OutputHandlerFullTextBase
{
private Action mLog;
diff --git a/Tests/Cosmos.TestRunner.UI/ViewModels/SettingsDialogViewModel.cs b/Tests/Cosmos.TestRunner.UI/ViewModels/SettingsDialogViewModel.cs
index a5af0b8c52..6a5d712b00 100644
--- a/Tests/Cosmos.TestRunner.UI/ViewModels/SettingsDialogViewModel.cs
+++ b/Tests/Cosmos.TestRunner.UI/ViewModels/SettingsDialogViewModel.cs
@@ -2,32 +2,32 @@
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
-using System.Collections.Specialized;
-using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Windows.Input;
-using PropertyChangedEventArgs = System.ComponentModel.PropertyChangedEventArgs;
using Avalonia.Controls;
+using ReactiveUI;
+
using Cosmos.Build.Common;
using Cosmos.TestRunner.Core;
using Cosmos.TestRunner.Full;
namespace Cosmos.TestRunner.UI.ViewModels
{
- internal class SettingsDialogViewModel : IEngineConfiguration, INotifyPropertyChanged
+ internal class SettingsDialogViewModel : ReactiveObject, IEngineConfiguration
{
private static IEngineConfiguration defaultEngineConfiguration = new DefaultEngineConfiguration();
private static IEnumerable stableKernelTypes = TestKernelSets.GetStableKernelTypes();
- public event PropertyChangedEventHandler PropertyChanged;
-
public SettingsDialogViewModel(Window aWindow)
{
KernelTypesToRun = new ObservableCollection(stableKernelTypes);
- RunTests = new RunTestsCommand(aWindow, this);
+
+ RunTestsCommand = ReactiveCommand.Create(
+ () => RunTests(aWindow),
+ this.WhenAny(v => v.KernelTypesToRun, c => c.Value.Any()));
}
#region Engine Configuration
@@ -97,6 +97,13 @@ public StackCorruptionDetectionLevel StackCorruptionDetectionLevel
set => SetProperty(ref mStackCorruptionDetectionLevel, value);
}
+ private DebugMode mDebugMode = defaultEngineConfiguration.DebugMode;
+ public DebugMode DebugMode
+ {
+ get => mDebugMode;
+ set => SetProperty(ref mDebugMode, value);
+ }
+
public IEnumerable KernelAssembliesToRun
{
get
@@ -128,41 +135,17 @@ public RunTargetEnum RunTarget
#endregion
- public ICommand RunTests { get; set; }
+ public ICommand RunTestsCommand { get; set; }
+
+ private void RunTests(Window aWindow) => aWindow.Close(this);
private void SetProperty(ref T aProperty, T aValue, [CallerMemberName]string aPropertyName = null)
{
if (!EqualityComparer.Default.Equals(aProperty, aValue))
{
aProperty = aValue;
- OnPropertyChanged(aPropertyName);
+ this.RaisePropertyChanged(aPropertyName);
}
}
-
- private void OnPropertyChanged(string aPropertyName) =>
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(aPropertyName));
-
- internal class RunTestsCommand : ICommand
- {
- private Window mWindow;
- private SettingsDialogViewModel mViewModel;
-
- public RunTestsCommand(Window aWindow, SettingsDialogViewModel aViewModel)
- {
- mWindow = aWindow;
- mViewModel = aViewModel;
-
- mViewModel.KernelTypesToRun.CollectionChanged += KernelTypesToRun_CollectionChanged;
- }
-
- public event EventHandler CanExecuteChanged;
-
- public bool CanExecute(object parameter) => mViewModel.KernelTypesToRun.Any();
-
- public void Execute(object parameter) => mWindow.Close(mViewModel);
-
- private void KernelTypesToRun_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) =>
- CanExecuteChanged?.Invoke(this, EventArgs.Empty);
- }
}
}
diff --git a/Tests/Cosmos.TestRunner.UI/Views/SettingsDialog.xaml b/Tests/Cosmos.TestRunner.UI/Views/SettingsDialog.xaml
index 001cad0bcc..26371b6a0d 100644
--- a/Tests/Cosmos.TestRunner.UI/Views/SettingsDialog.xaml
+++ b/Tests/Cosmos.TestRunner.UI/Views/SettingsDialog.xaml
@@ -2,13 +2,13 @@
Title="Cosmos Test Runner Settings"
SizeToContent="WidthAndHeight">
-
+ Spacing="16">
-
+
Allowed seconds in kernel:
@@ -20,7 +20,7 @@
-
+
Debug IL2CPU
Kernel package:
@@ -42,7 +42,7 @@
SelectedItems="{Binding KernelTypesToRun}"
SelectionMode="Multiple" />
- Run Tests
+ Run Tests
diff --git a/Tests/Cosmos.TestRunner.UI/packages.lock.json b/Tests/Cosmos.TestRunner.UI/packages.lock.json
new file mode 100644
index 0000000000..6cc7d6286d
--- /dev/null
+++ b/Tests/Cosmos.TestRunner.UI/packages.lock.json
@@ -0,0 +1,3873 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Avalonia": {
+ "type": "Direct",
+ "requested": "[0.7.0, )",
+ "resolved": "0.7.0",
+ "contentHash": "9DCE4qcFfapGgQvdbJ2cOIGfxvwdBmG1N50P1xcZSne0B1vHbJ4YFU4jhKboQpKou1FOan/EvKucQfBT7N9IVA==",
+ "dependencies": {
+ "Avalonia.Remote.Protocol": "0.7.0",
+ "JetBrains.Annotations": "10.3.0",
+ "Serilog": "2.5.0",
+ "Serilog.Sinks.Debug": "1.0.0",
+ "Serilog.Sinks.Trace": "2.1.0",
+ "System.ComponentModel.Annotations": "4.5.0",
+ "System.Memory": "4.5.1",
+ "System.Reactive": "4.0.0",
+ "System.ValueTuple": "4.5.0"
+ }
+ },
+ "Avalonia.Desktop": {
+ "type": "Direct",
+ "requested": "[0.7.0, )",
+ "resolved": "0.7.0",
+ "contentHash": "94jinKrx0Srn7Ixn6fhqbz8QKr9meeogex2mvbUdQrXeq+ZKAkxiFDTaxksxomGAx5lES2pEbCu/cXy+a+OrqQ==",
+ "dependencies": {
+ "Avalonia": "0.7.0",
+ "Avalonia.Direct2D1": "0.7.0",
+ "Avalonia.Gtk3": "0.7.0",
+ "Avalonia.Native": "0.7.0",
+ "Avalonia.Skia": "0.7.0",
+ "Avalonia.Win32": "0.7.0"
+ }
+ },
+ "Avalonia.ReactiveUI": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "0.6.0",
+ "contentHash": "zgV8PCnF8HoV9/2J+0/Up5qF4Pq830bgeYl/nWwI7yIvfQBVeExCTaFwsPTYbnww0YrHce4l0zyazoULTe7uzQ==",
+ "dependencies": {
+ "Avalonia": "0.6.0",
+ "reactiveui": "8.0.0-alpha0073"
+ }
+ },
+ "ReactiveUI": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "1.0.0",
+ "contentHash": "qbAZmC7xLYVtkw2r5lMC1n/oAWPuyY26aeDpz+x3anMKY/vVwSJHdBR+y+3lTACAKAG0jlRyAad9mJ2/ne98Dw==",
+ "dependencies": {
+ "DynamicData": "6.7.1.2534",
+ "Splat": "5.1.4",
+ "System.Reactive": "4.0.0",
+ "System.Reactive.Compatibility": "4.0.0",
+ "System.Runtime.Serialization.Primitives": "4.3.0"
+ }
+ },
+ "Avalonia.Direct2D1": {
+ "type": "Transitive",
+ "resolved": "0.7.0",
+ "contentHash": "Xt6eEtM7krJD6GWNLwALs0CHdYr4t8cpbj/seMaNO/hMsQAzxeVeH7t6s63MWas26lx/Dl7U+SUWTem2WbTHOA==",
+ "dependencies": {
+ "Avalonia": "0.7.0",
+ "JetBrains.Annotations": "10.3.0",
+ "SharpDX": "4.0.1",
+ "SharpDX.DXGI": "4.0.1",
+ "SharpDX.Direct2D1": "4.0.1",
+ "SharpDX.Direct3D11": "4.0.1",
+ "System.Reactive": "4.0.0"
+ }
+ },
+ "Avalonia.Gtk3": {
+ "type": "Transitive",
+ "resolved": "0.7.0",
+ "contentHash": "l4RFSWKtU6v2uza+EWdKERX0cMtT55oQK+/PSR7S+otjeDl5CTm8P3300dr4LsKAe+NjqH6MGIbWSUXbjiYl4A==",
+ "dependencies": {
+ "Avalonia": "0.7.0"
+ }
+ },
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "0.7.0",
+ "contentHash": "jzAL+e4XCHAnl6yOwF5K8tvGHWkPoTtbrulgDsUbDUxz4XUtbkxyov66uZFgOQVdjl4yyq9Xtl6V1cUCQibmxA==",
+ "dependencies": {
+ "Avalonia": "0.7.0",
+ "SharpGen.Runtime.COM": "1.1.0"
+ }
+ },
+ "Avalonia.Remote.Protocol": {
+ "type": "Transitive",
+ "resolved": "0.7.0",
+ "contentHash": "M+r3isxT+Ib8fjpuJ4IVNG20AQDbSNA+BHun40yU5AHTecy9+7ChFKMUqVt69WLgZiQgxop7P6J6pJgOwpy8CA=="
+ },
+ "Avalonia.Skia": {
+ "type": "Transitive",
+ "resolved": "0.7.0",
+ "contentHash": "uAjNmIljKKTIswKu5zwxL4vlyaQLRXAAgBu0hu2/JKC45G1D91DDwn6OmN1Hv283EKDhb0T6q8zawHk2pbR9hQ==",
+ "dependencies": {
+ "Avalonia": "0.7.0",
+ "Avalonia.Skia.Linux.Natives": "1.60.0.1",
+ "SkiaSharp": "1.60.0"
+ }
+ },
+ "Avalonia.Skia.Linux.Natives": {
+ "type": "Transitive",
+ "resolved": "1.60.0.1",
+ "contentHash": "a6Qa9qCGMImwtD2fmio39OsJ2BqZlQuHvRWlSXP+wovDcuMRB0JjN981j0tfYlvJjvCtCAo8Z7piytjnWtJTuw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "SkiaSharp": "[1.60.0]"
+ }
+ },
+ "Avalonia.Win32": {
+ "type": "Transitive",
+ "resolved": "0.7.0",
+ "contentHash": "j/Rknika/XzNFCOey7vc7t4sn5tdzU+zEepvmV3J09/uYiDie1+ZSddgoq9kSzbbAUmRnQ4ixrjFnvnnglwa1Q==",
+ "dependencies": {
+ "Avalonia": "0.7.0",
+ "System.Drawing.Common": "4.5.0"
+ }
+ },
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "DynamicData": {
+ "type": "Transitive",
+ "resolved": "6.7.1.2534",
+ "contentHash": "0hxwufGlJxLI79B9n94rkl2SXCyhAHHXLXaVJF6MyrdLCqkV3Xg3x+dIp37fXJIhrV3jj0o3bdqYos/BqWAS5g==",
+ "dependencies": {
+ "System.Reactive": "4.0.0"
+ }
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "JetBrains.Annotations": {
+ "type": "Transitive",
+ "resolved": "10.3.0",
+ "contentHash": "0GLU9lwGVXjUNlr9ZIdAgjqLI2Zm/XFGJFaqJ1T1sU+kwfeMLhm68+rblUrNUP9psRl4i8yM7Ghb4ia4oI2E5g==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "Libuv": {
+ "type": "Transitive",
+ "resolved": "1.9.1",
+ "contentHash": "uqX2Frwf9PW8MaY7PRNY6HM5BpW1D8oj1EdqzrmbEFD5nH63Yat3aEjN/tws6Tw6Fk7LwmLBvtUh32tTeTaHiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1"
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "HS3iRWZKcUw/8eZ/08GXKY2Bn7xNzQPzf8gRPHGSowX7u7XXu9i9YEaBeBNKUXWfI7qjvT2zXtLUvbN0hds8vg=="
+ },
+ "Microsoft.CodeAnalysis.Common": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "V09G35cs0CT1C4Dr1IEOh8IGfnWALEVAOO5JXsqagxXwmYR012TlorQ+vx2eXxfZRKs3gAS/r92gN9kRBLba5A==",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "1.1.0",
+ "System.AppContext": "4.1.0",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Collections.Immutable": "1.2.0",
+ "System.Console": "4.0.0",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.FileVersionInfo": "4.0.0",
+ "System.Diagnostics.StackTrace": "4.0.1",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.Numerics": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.CodePages": "4.0.1",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Tasks.Parallel": "4.0.1",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11",
+ "System.Xml.XPath.XDocument": "4.0.1",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "BgWDIAbSFsHuGeLSn/rljLi51nXqkSo4DZ0qEIrHyPVasrhxEVq7aV8KKZ3HEfSFB+GIhBmOogE+mlOLYg19eg==",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "[1.3.0]"
+ }
+ },
+ "Microsoft.CodeAnalysis.VisualBasic": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "Sf3k8PkTkWqBmXnnblJbvb7ewO6mJzX6WO2t7m04BmOY5qBq6yhhyXnn/BMM+QCec3Arw3X35Zd8f9eBql0qgg==",
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "1.3.0"
+ }
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.NETCore.App": {
+ "type": "Transitive",
+ "resolved": "1.0.5",
+ "contentHash": "rqd+4QNUIdrauKaP8KVo2Ut5OeEGoyOsAMZr7u1IEtSRx5LeA1omVCLpY0TJ5Z47jfMm/MRuD/RG5Ahg8WwX2w==",
+ "dependencies": {
+ "Libuv": "1.9.1",
+ "Microsoft.CSharp": "4.0.1",
+ "Microsoft.CodeAnalysis.CSharp": "1.3.0",
+ "Microsoft.CodeAnalysis.VisualBasic": "1.3.0",
+ "Microsoft.NETCore.DotNetHostPolicy": "1.0.5",
+ "Microsoft.NETCore.Platforms": "1.0.2",
+ "Microsoft.NETCore.Runtime.CoreCLR": "1.0.7",
+ "Microsoft.VisualBasic": "10.0.1",
+ "NETStandard.Library": "1.6.0",
+ "System.Buffers": "4.0.0",
+ "System.Collections.Immutable": "1.2.0",
+ "System.ComponentModel": "4.0.1",
+ "System.ComponentModel.Annotations": "4.1.0",
+ "System.Diagnostics.DiagnosticSource": "4.0.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.IO.FileSystem.Watcher": "4.0.0",
+ "System.IO.MemoryMappedFiles": "4.0.0",
+ "System.IO.UnmanagedMemoryStream": "4.0.1",
+ "System.Linq.Expressions": "4.1.1",
+ "System.Linq.Parallel": "4.0.1",
+ "System.Linq.Queryable": "4.0.1",
+ "System.Net.Http": "4.1.2",
+ "System.Net.NameResolution": "4.0.0",
+ "System.Net.Requests": "4.0.11",
+ "System.Net.Security": "4.0.1",
+ "System.Net.WebHeaderCollection": "4.0.1",
+ "System.Numerics.Vectors": "4.1.1",
+ "System.Reflection.DispatchProxy": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.Reader": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Threading.Tasks.Dataflow": "4.6.0",
+ "System.Threading.Tasks.Extensions": "4.0.0",
+ "System.Threading.Tasks.Parallel": "4.0.1",
+ "System.Threading.Thread": "4.0.0",
+ "System.Threading.ThreadPool": "4.0.10",
+ "runtime.native.System.Security.Cryptography": "4.0.1"
+ }
+ },
+ "Microsoft.NETCore.DotNetHost": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "uaMgykq6AckP3hZW4dsD6zjocxyXPz0tcTl8OX7mlSUWsyFXdtf45sjdwI0JIHxt3gnI6GihAlOAwYK8HE4niQ=="
+ },
+ "Microsoft.NETCore.DotNetHostPolicy": {
+ "type": "Transitive",
+ "resolved": "1.0.5",
+ "contentHash": "KR8e8+lh/YnhD0wDCMBRUjn0/VnryxHbu6I61U6m7PAyz9HbRr+iX3BYL925OHMFuFmk1atc/RRGjGtVOVrvrg==",
+ "dependencies": {
+ "Microsoft.NETCore.DotNetHostResolver": "1.0.1"
+ }
+ },
+ "Microsoft.NETCore.DotNetHostResolver": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "GEXgpAHB9E0OhfcmNJ664Xcd2bJkz2qkGIAFmCgEI5ANlQy4qEEmBVfUqA+Z9HB85ZwWxZc1eIJ6fxdxcjrctg==",
+ "dependencies": {
+ "Microsoft.NETCore.DotNetHost": "1.0.1"
+ }
+ },
+ "Microsoft.NETCore.Jit": {
+ "type": "Transitive",
+ "resolved": "1.0.7",
+ "contentHash": "pNYSZFvX14x4ubToTLxj9O9xNIEg1kHaL6gkMr8urWKIY65cu8272KRlT3cgJCKLbzFO0XZDjvPlRBCFrbJm7Q=="
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Runtime.CoreCLR": {
+ "type": "Transitive",
+ "resolved": "1.0.7",
+ "contentHash": "t81co+R1xDubSQDDYP+zddd1Eya7xGeN2XlJMSsNFUCKRm35/5u8knnXOQTdfE1nf6bYqPROt18WlhdZui1FLA==",
+ "dependencies": {
+ "Microsoft.NETCore.Jit": "1.0.7",
+ "Microsoft.NETCore.Windows.ApiSets": "1.0.1"
+ }
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.NETCore.Windows.ApiSets": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "SaToCvvsGMxTgtLv/BrFQ5IFMPRE1zpWbnqbpwykJa8W5XiX82CXI6K2o7yf5xS7EP6t/JzFLV0SIDuWpvBZVw=="
+ },
+ "Microsoft.VisualBasic": {
+ "type": "Transitive",
+ "resolved": "10.0.1",
+ "contentHash": "HpNyOf/4Tp2lh4FyywB55VITk0SqVxEjDzsVDDyF1yafDN6Bq18xcHowzCPINyYHUTgGcEtmpYiRsFdSo0KKdQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "Microsoft.Win32.SystemEvents": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "LuI1oG+24TUj1ZRQQjM5Ew73BKnZE5NZ/7eAdh1o8ST5dPhUnJvIkiIn2re3MwnkRy6ELRnvEbBxHP8uALKhJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Net.Security": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Az6Ff6rZFb8nYGAaejFR6jr8ktt9f3e1Q/yKdw0pwHNTLaO/1eCAC9vzBoR9YAb0QeZD6fZXl1A9tRB5stpzXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1"
+ }
+ },
+ "runtime.native.System.Security.Cryptography": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "6Z4SIheH5ziCRoMnLBE+fmcAPfyewKbteJQGTT86+dsBRSYZNuUmLS3Qg+rzo1nPdiK19VmOBne54j9kI7sI4Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.2",
+ "Microsoft.NETCore.Targets": "1.0.3"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "Serilog": {
+ "type": "Transitive",
+ "resolved": "2.5.0",
+ "contentHash": "JwwkgNYNFKT4kQZ3qBV3VqPgchUg1A6FnlFa9hgyanylwBhJ7eTFl3pgLVxijFEb+oHLImRcMaTsMzBt2AG0aQ==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "Serilog.Sinks.Debug": {
+ "type": "Transitive",
+ "resolved": "1.0.0",
+ "contentHash": "WNWAAaEbUm/kMc6bxI0HWGKQpKeeIRqI4mQAf9sg276ICa872aY5AAUe7XDv1I5JZZBq6a28x2PlR5jQT2vUUw==",
+ "dependencies": {
+ "Serilog": "2.5.0",
+ "System.Diagnostics.Debug": "4.3.0"
+ }
+ },
+ "Serilog.Sinks.Trace": {
+ "type": "Transitive",
+ "resolved": "2.1.0",
+ "contentHash": "VgJNH1F3UOrmI8m32WFS9x5cxmYOrSfc+mLxXFmgN3bG1zg0jRf7jgbBB15NoJjfAn0nJMZgP0Hqx/w0bxKGvQ==",
+ "dependencies": {
+ "Serilog": "2.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0"
+ }
+ },
+ "SharpDX": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "8YA1VFg1/K8Emb8FEZDobojcv1BLuppVo7CRJQEgA1V748VIMPBru0i0OnsCjLSThzTn7juOvH85qjFL9Grl1w==",
+ "dependencies": {
+ "Microsoft.NETCore.App": "1.0.5"
+ }
+ },
+ "SharpDX.Direct2D1": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "EDBYa9kAG+gaMB4cCH7WNpxS8WijSCejNz/SERs2P1sWEPZZdUiUIruQMjPCdW3lXxT508aYiH2UXHAaZtk00g==",
+ "dependencies": {
+ "Microsoft.NETCore.App": "1.0.5",
+ "SharpDX": "4.0.1",
+ "SharpDX.DXGI": "4.0.1"
+ }
+ },
+ "SharpDX.Direct3D11": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "7xIfeAhxPhbPgSiREfFbOOwIWonUt2GHR7XZN5p2DJMWuqjl0+h1oo2/sF+SH/c6D6APjdbt0J+dYSzoV0PA/w==",
+ "dependencies": {
+ "Microsoft.NETCore.App": "1.0.5",
+ "SharpDX": "4.0.1",
+ "SharpDX.DXGI": "4.0.1"
+ }
+ },
+ "SharpDX.DXGI": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Av/kToUkVR1tDtIP9zmDGwCuCtyL04+PP7kes6aABzky1Y9vT03kR7mDeE83gl+E8GUmMMbVXbQ4AG2CVb66sg==",
+ "dependencies": {
+ "Microsoft.NETCore.App": "1.0.5",
+ "SharpDX": "4.0.1"
+ }
+ },
+ "SharpGen.Runtime": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aho/QykKT1o0MLuxQX3pIJbsBKYW7OGsk7APo3Ne+CGtRvJRbXJBlyxUOqUj34Bznmcbxcdlhl4odnHDNot7HA==",
+ "dependencies": {
+ "System.Memory": "4.5.0",
+ "System.Runtime.CompilerServices.Unsafe": "4.5.0"
+ }
+ },
+ "SharpGen.Runtime.COM": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "XYpT6WX4QWinQ+82Ei+w+d0PDPyJUygyC+g8nRjXi53+Aa2OLh4NzCGYR8pUqta1COYCksOen45g6+VO82PZqQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1",
+ "SharpGen.Runtime": "1.1.0",
+ "System.Memory": "4.5.0"
+ }
+ },
+ "SkiaSharp": {
+ "type": "Transitive",
+ "resolved": "1.60.0",
+ "contentHash": "HoSNIZH54rinevEhLUWdeclr+H/QdmOp252+Tt07HTXwQyvRl9eW32ga/X7T56wsR855SKprb0RcnBPRCzlqSA=="
+ },
+ "Splat": {
+ "type": "Transitive",
+ "resolved": "5.1.4",
+ "contentHash": "dHFaV5D+EnATR2PB8dgFvgsQz1NEaFmxoBX5fOOWlYx3PuXxVW7O78V41k4PfvwL6EOxfU7wCo1YMZPiuKjlHQ==",
+ "dependencies": {
+ "System.Diagnostics.Contracts": "4.3.0",
+ "System.Drawing.Primitives": "4.3.0",
+ "System.Runtime.Serialization.Primitives": "4.3.0"
+ }
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.Immutable": {
+ "type": "Transitive",
+ "resolved": "1.2.0",
+ "contentHash": "Cma8cBW6di16ZLibL8LYQ+cLjGzoKxpOTu/faZfDcx94ZjAGq6Nv5RO7+T1YZXqEXTZP9rt1wLVEONVpURtUqw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Contracts": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "eelRRbnm+OloiQvp9CXS0ixjNQldjjkHO4iIkR5XH2VIP8sUB/SIpa1TdUW6/+HDcQ+MlhP3pNa1u5SbzYuWGA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.FileVersionInfo": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "qjF74OTAU+mRhLaL4YSfiWy3vj6T3AOz8AW37l5zCwfbBfj0k7E94XnEsRaf2TnhE/7QaV6Hvqakoy2LoV8MVg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.StackTrace": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "6i2EbRq0lgGfiZ+FDf0gVaw9qeEU+7IS2+wbZJmFVpvVzVOgZEt0ScZtyenuBvs6iDYbGiF51bMAa0oDP/tujQ==",
+ "dependencies": {
+ "System.Collections.Immutable": "1.2.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Drawing.Common": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "AiJFxxVPdeITstiRS5aAu8+8Dpf5NawTMoapZ53Gfirml24p7HIfhjmCRxdXnmmf3IUA3AX3CcW7G73CjWxW/Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "Microsoft.Win32.SystemEvents": "4.5.0"
+ }
+ },
+ "System.Drawing.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1QU/c35gwdhvj77fkScXQQbjiVAqIL3fEYn/19NE0CV/ic5TN5PyWAft8HsrbRd4SBLEoErNCkWSzMDc0MmbRw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Watcher": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "qM4Wr3La+RYb/03B0mZZjbA7tHsGzDffnuXP8Sl48HW2JwCjn3kfD5qdw0sqyNNowUipcJMi9/q6sMUrOIJ6UQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Overlapped": "4.0.1",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Thread": "4.0.0",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Linq.Parallel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "J7XCa7n2cFn32uLbtceXfBFhgCk5M++50lylHKNbqTiJkw5y4Tglpi6amuJNPCvj9bLzNSI7rs1fi4joLMNRgg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Linq.Queryable": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Yn/WfYe9RoRfmSLvUt2JerP0BTGGykCZkQPgojaxgzF2N0oPo+/AhB8TXOpdCcNlrG3VRtsamtK2uzsp3cqRVw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.NameResolution": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "JdqRdM1Qym3YehqdKIi5LHrpypP4JMfxKQSNCJ2z4WawkG0il+N3XfNeJOxll2XrTnG7WgYYPoeiu/KOwg0DQw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Net.Primitives": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Principal.Windows": "4.0.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Requests": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "vxGt7C0cZixN+VqoSW4Yakc1Y9WknmxauDqzxgpw/FnBdz4kQNN51l4wxdXX5VY1xjqy//+G+4CvJWp1+f+y6Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Net.Http": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Net.WebHeaderCollection": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Net.Security": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "nMs9dUDrJFr18+wgUB3lUpaMcJDqutsuO1C4g3OTuQYZJdnszgmHtjvBAI6eNXK0ZPLIA6sp8axMkd2T2dlzgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.2",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Claims": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.OpenSsl": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Security.Principal": "4.0.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.ThreadPool": "4.0.10",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.Net.Security": "4.0.1",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Net.WebHeaderCollection": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "XX2TIAN+wBSAIV51BU2FvvXMdstUa8b0FBSZmDWjZdwUMmggQSifpTOZ5fNH20z9ZCg2fkV1L5SsZnpO2RQDRQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.Numerics.Vectors": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "Ex1NSKycC2wi5XBMWUGWPc3lumh6OQWFFmmpZFZz0oLht5lQ+wWPHVZumOrMJuckfUiVMd4p67BrkBos8lcF+Q==",
+ "dependencies": {
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reactive": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "yaVAxT2Yl28p9+DupGwj2oPbIOYZUQimOQ+n7N7vML2oofIRj9BmcfD7DHc6FLrNah65EigOgG6U9VnwWEyz5g==",
+ "dependencies": {
+ "System.Runtime.InteropServices.WindowsRuntime": "4.3.0"
+ }
+ },
+ "System.Reactive.Compatibility": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "WYPmO+OtaDs+cVt5BVzYnnK+HrS7QtyuWymtfVexvpeNCWFoLoYJWizeatsT6urvLKcAPMtSmnu8ZvOZJWU5YA==",
+ "dependencies": {
+ "System.Reactive.Core": "4.0.0",
+ "System.Reactive.Interfaces": "4.0.0",
+ "System.Reactive.Linq": "4.0.0",
+ "System.Reactive.PlatformServices": "4.0.0",
+ "System.Reactive.Providers": "4.0.0"
+ }
+ },
+ "System.Reactive.Core": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "J5wpR+wKt5xbkIaklarzdkfRxMwIU8+CUz2D5WvWeB3t4opI0VbbvLklXY8KT4TvSRzaQuNIZs65cV2Mu7H0pw==",
+ "dependencies": {
+ "System.Reactive": "4.0.0"
+ }
+ },
+ "System.Reactive.Interfaces": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "3xsrz5YOxdy5wjlzvoCu6CFOU/36Ah/ZuyiLoOLEZ3Deo0YrMADCEnBuDvfyeJhIMDjwbsieotvjSWedWY4OVA==",
+ "dependencies": {
+ "System.Reactive": "4.0.0"
+ }
+ },
+ "System.Reactive.Linq": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "LaYTtUoOtQJ7SBb1/tfM/kcIHy0dsA7E+31/739HyTyGg9uSGzP/fV4VFI3/Atg7MQiks+JbEAwcoTDJY0pJoA==",
+ "dependencies": {
+ "System.Reactive": "4.0.0"
+ }
+ },
+ "System.Reactive.PlatformServices": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "2GSG7xQ/8su2vii+ZZ/4/CPemfKIRz9xwfjTdDPk6+7aXy403KjoEQRLZG8P9OMuetoxVDs6BU0vIkKMZity6A==",
+ "dependencies": {
+ "System.Reactive": "4.0.0"
+ }
+ },
+ "System.Reactive.Providers": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "eGMVF4LPNAtvd0pftoDcxurhVUBmO3pOYNArE7ZyQmv5UZSJeuNWwXxQjvgHHvOazaBzNTv6EGKpSqt8sV+8Gw==",
+ "dependencies": {
+ "System.Reactive": "4.0.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.DispatchProxy": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "GPPgWoSxQEU3aCKSOvsAc1dhTTi4iq92PUVEVfnGPGwqCf6synaAJGYLKMs5E3CuRfel8ufACWUijXqDpOlGrA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.Reader": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "VX1iHAoHxgrLZv+nq/9drCZI6Q4SSCzSVyUm1e0U60sqWdj6XhY7wvKmy3RvsSal9h+/vqSWwxxJsm0J4vn/jA==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.WindowsRuntime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J4GUi3xZQLUBasNwZnjrffN8i5wpHrBtZoLG+OhRyGo/+YunMRWWtwoMDlUAIdmX0uRfpHIBDSV6zyr3yf00TA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Claims": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "4Jlp0OgJLS/Voj1kyFP6MJlIYp3crgfH8kNQk2p7+4JYfc1aAmh9PZyAMMbDhuoolGNtux9HqSOazsioRiDvCw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Security.Principal": "4.0.1"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "h4z6rrA/hxWf4655D18IIZ0eaLRa3tQC/j+e26W+VinIHY0l07iEXaAvO0YSYq3MvCjMYy8Zs5AdC1sxNQOB7Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Dataflow": {
+ "type": "Transitive",
+ "resolved": "4.6.0",
+ "contentHash": "2hRjGu2r2jxRZ55wmcHO/WbdX+YAOz9x6FE8xqkHZgPaoFMKQZRe9dk8xTZIas8fRjxRmzawnTEWIrhlM+Un7w==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Parallel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "7Pc9t25bcynT9FpMvkUw4ZjYwUiGup/5cJFW72/5MgCG+np2cfVUMdh29u8d7onxX7d8PS3J+wL73zQRqkdrSA==",
+ "dependencies": {
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ValueTuple": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ=="
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "FLhdYJx4331oGovQypQ8JIw2kEmNzCsjVOVYY/16kZTUoquZG85oVn7yUhBE2OZt1yGPSXAL0HTEfzjlbNpM7Q==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11",
+ "System.Xml.XPath": "4.0.1"
+ }
+ },
+ "audiotests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "boxingtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "consoletest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bcl": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bclsystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.encryption": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.exceptions": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.interfaces": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.methodtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.singleechotest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.typesystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.diskmanager": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.fat": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.io": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.full": {
+ "type": "Project",
+ "dependencies": {
+ "AudioTests": "[0.1.0-localbuild, )",
+ "BoxingTests": "[0.1.0-localbuild, )",
+ "ConsoleTest": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.BclSystem": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Encryption": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Exceptions": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Interfaces": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.MethodTests": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.SingleEchoTest": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.TypeSystem": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.DiskManager": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.Fat": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.IO": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.Core": "[0.1.0-localbuild, )",
+ "GraphicTest": "[0.1.0-localbuild, )",
+ "MemoryOperationsTest": "[0.1.0-localbuild, )",
+ "NetworkTest": "[0.1.0-localbuild, )",
+ "ProcessorTests": "[0.1.0-localbuild, )",
+ "SimpleStructsAndArraysTest": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "graphictest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "memoryoperationstest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "networktest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "processortests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "simplestructsandarraystest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ },
+ "net6.0/win10-x86": {
+ "Avalonia.Native": {
+ "type": "Transitive",
+ "resolved": "0.7.0",
+ "contentHash": "jzAL+e4XCHAnl6yOwF5K8tvGHWkPoTtbrulgDsUbDUxz4XUtbkxyov66uZFgOQVdjl4yyq9Xtl6V1cUCQibmxA==",
+ "dependencies": {
+ "Avalonia": "0.7.0",
+ "SharpGen.Runtime.COM": "1.1.0"
+ }
+ },
+ "Avalonia.Skia.Linux.Natives": {
+ "type": "Transitive",
+ "resolved": "1.60.0.1",
+ "contentHash": "a6Qa9qCGMImwtD2fmio39OsJ2BqZlQuHvRWlSXP+wovDcuMRB0JjN981j0tfYlvJjvCtCAo8Z7piytjnWtJTuw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "SkiaSharp": "[1.60.0]"
+ }
+ },
+ "Libuv": {
+ "type": "Transitive",
+ "resolved": "1.9.1",
+ "contentHash": "uqX2Frwf9PW8MaY7PRNY6HM5BpW1D8oj1EdqzrmbEFD5nH63Yat3aEjN/tws6Tw6Fk7LwmLBvtUh32tTeTaHiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1"
+ }
+ },
+ "Microsoft.NETCore.DotNetHost": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "uaMgykq6AckP3hZW4dsD6zjocxyXPz0tcTl8OX7mlSUWsyFXdtf45sjdwI0JIHxt3gnI6GihAlOAwYK8HE4niQ==",
+ "dependencies": {
+ "runtime.win7-x86.Microsoft.NETCore.DotNetHost": "1.0.1"
+ }
+ },
+ "Microsoft.NETCore.DotNetHostPolicy": {
+ "type": "Transitive",
+ "resolved": "1.0.5",
+ "contentHash": "KR8e8+lh/YnhD0wDCMBRUjn0/VnryxHbu6I61U6m7PAyz9HbRr+iX3BYL925OHMFuFmk1atc/RRGjGtVOVrvrg==",
+ "dependencies": {
+ "Microsoft.NETCore.DotNetHostResolver": "1.0.1",
+ "runtime.win7-x86.Microsoft.NETCore.DotNetHostPolicy": "1.0.5"
+ }
+ },
+ "Microsoft.NETCore.DotNetHostResolver": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "GEXgpAHB9E0OhfcmNJ664Xcd2bJkz2qkGIAFmCgEI5ANlQy4qEEmBVfUqA+Z9HB85ZwWxZc1eIJ6fxdxcjrctg==",
+ "dependencies": {
+ "Microsoft.NETCore.DotNetHost": "1.0.1",
+ "runtime.win7-x86.Microsoft.NETCore.DotNetHostResolver": "1.0.1"
+ }
+ },
+ "Microsoft.NETCore.Jit": {
+ "type": "Transitive",
+ "resolved": "1.0.7",
+ "contentHash": "pNYSZFvX14x4ubToTLxj9O9xNIEg1kHaL6gkMr8urWKIY65cu8272KRlT3cgJCKLbzFO0XZDjvPlRBCFrbJm7Q==",
+ "dependencies": {
+ "runtime.win7-x86.Microsoft.NETCore.Jit": "1.0.7"
+ }
+ },
+ "Microsoft.NETCore.Runtime.CoreCLR": {
+ "type": "Transitive",
+ "resolved": "1.0.7",
+ "contentHash": "t81co+R1xDubSQDDYP+zddd1Eya7xGeN2XlJMSsNFUCKRm35/5u8knnXOQTdfE1nf6bYqPROt18WlhdZui1FLA==",
+ "dependencies": {
+ "Microsoft.NETCore.Jit": "1.0.7",
+ "Microsoft.NETCore.Windows.ApiSets": "1.0.1",
+ "runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR": "1.0.7"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.Microsoft.Win32.Primitives": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "Microsoft.Win32.SystemEvents": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "LuI1oG+24TUj1ZRQQjM5Ew73BKnZE5NZ/7eAdh1o8ST5dPhUnJvIkiIn2re3MwnkRy6ELRnvEbBxHP8uALKhJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "runtime.any.System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "23g6rqftKmovn2cLeGsuHUYm0FD7pdutb0uQMJpZ3qTvq+zHkgmt6J65VtRry4WDGYlmkMa4xDACtaQ94alNag==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "runtime.any.System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "S/GPBmfPBB48ZghLxdDR7kDAJVAqgAuThyDJho3OLP5OS4tWD2ydyL8LKm8lhiBxce10OKe9X2zZ6DUjAqEbPg=="
+ },
+ "runtime.any.System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1lpifymjGDzoYIaam6/Hyqf8GhBI3xXYLK2TgEvTtuZMorG3Kb9QnMTIKhLjJYXIiu1JvxjngHvtVFQQlpQ3HQ=="
+ },
+ "runtime.any.System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sMDBnad4rp4t7GY442Jux0MCUuKL4otn5BK6Ni0ARTXTSpRNBzZ7hpMfKSvnVSED5kYJm96YOWsqV0JH0d2uuw=="
+ },
+ "runtime.any.System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "M1r+760j1CNA6M/ZaW6KX8gOS8nxPRqloqDcJYVidRG566Ykwcs29AweZs2JF+nMOCgWDiMfPSTMfvwOI9F77w=="
+ },
+ "runtime.any.System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ=="
+ },
+ "runtime.any.System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hLC3A3rI8jipR5d9k7+f0MgRCW6texsAp0MWkN/ci18FMtQ9KH7E2vDn/DH2LkxsszlpJpOn9qy6Z6/69rH6eQ=="
+ },
+ "runtime.any.System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cPhT+Vqu52+cQQrDai/V91gubXUnDKNRvlBnH+hOgtGyHdC17aQIU64EaehwAQymd7kJA5rSrVRNfDYrbhnzyA=="
+ },
+ "runtime.any.System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Nrm1p3armp6TTf2xuvaa+jGTTmncALWFq22CpmwRvhDf6dE9ZmH40EbOswD4GnFLrMRS0Ki6Kx5aUPmKK/hZBg=="
+ },
+ "runtime.any.System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Lxb89SMvf8w9p9+keBLyL6H6x/TEmc6QVsIIA0T36IuyOY3kNvIdyGddA2qt35cRamzxF8K5p0Opq4G4HjNbhQ=="
+ },
+ "runtime.any.System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "runtime.any.System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GG84X6vufoEzqx8PbeBKheE4srOhimv+yLtGb/JkR3Y2FmoqmueLNFU4Xx8Y67plFpltQSdK74x0qlEhIpv/CQ=="
+ },
+ "runtime.any.System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw=="
+ },
+ "runtime.any.System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+ihI5VaXFCMVPJNstG4O4eo1CfbrByLxRrQQTqOTp1ttK0kUKDqOdBSTaCB2IBk/QtjDrs6+x4xuezyMXdm0HQ=="
+ },
+ "runtime.any.System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NLrxmLsfRrOuVqPWG+2lrQZnE53MLVeo+w9c54EV+TUo4c8rILpsDXfY8pPiOy9kHpUHHP07ugKmtsU3vVW5Jg=="
+ },
+ "runtime.any.System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OhBAVBQG5kFj1S+hCEQ3TUHBAEtZ3fbEMgZMRNdN8A0Pj4x+5nTELEqL59DU0TjKVE6II3dqKw4Dklb3szT65w=="
+ },
+ "runtime.any.System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "w4ehZJ+AwXYmGwYu+rMvym6RvMaRiUEQR1u6dwcyuKHxz8Heu/mO9AG1MquEgTyucnhv3M43X0iKpDOoN17C0w=="
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.win7-x86.runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "runtime.win.Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "runtime.win.System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RRACWygml5dnmfgC1SW6tLGsFgwsUAKFtvhdyHnIEz4EhWyrd7pacDdY95CacQJy7BMXRDRCejC9aCRC0Y1sQA==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hHHP0WCStene2jjeYcuDkETozUYF/3sHVRHAEOgS3L15hlip24ssqCTnJC28Z03Wpo078oMcJd0H4egD2aJI8g=="
+ },
+ "runtime.win.System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z37zcSCpXuGCYtFbqYO0TwOVXxS2d+BXgSoDFZmRg8BC4Cuy54edjyIvhhcfCrDQA9nl+EPFTgHN54dRAK7mNA==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lkXXykakvXUU+Zq2j0pC6EO20lEhijjqMc01XXpp1CJN+DeCwl3nsj4t5Xbpz3kA7yQyTqw6d9SyIzsyLsV3zA==",
+ "dependencies": {
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FK/2gX6MmuLIKNCGsV59Fe4IYrLrI5n9pQ1jh477wiivEM/NCXDT2dRetH5FSfY0bQ+VgTLcS3zcmjQ8my3nxQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.NameResolution": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RkgHVhUPvzZxuUubiZe8yr/6CypRVXj0VBzaR8hsqQ8f+rUo7e4PWrHTLOCjd8fBMGWCrY//fi7Ku3qXD7oHRw==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "runtime.win7-x86.Microsoft.NETCore.DotNetHost": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "3+kwgwIlQaTygjP8MV1AYvxJSRGQH40OtDzt40p9GSWGDnsanS7zOfXtMhJcS5Wp5u7ZwCAd2wjvKRkWGdadjA=="
+ },
+ "runtime.win7-x86.Microsoft.NETCore.DotNetHostPolicy": {
+ "type": "Transitive",
+ "resolved": "1.0.5",
+ "contentHash": "bRK/P9Biahoty2+Wt3yscatZT1S06vcyzm5XivWrbHZqQHFTLWhVrWabzFuBMv4asf72kniYCZ0wMXyPO+1dNg==",
+ "dependencies": {
+ "Microsoft.NETCore.DotNetHostResolver": "1.0.1"
+ }
+ },
+ "runtime.win7-x86.Microsoft.NETCore.DotNetHostResolver": {
+ "type": "Transitive",
+ "resolved": "1.0.1",
+ "contentHash": "hZ+7TYB1UBWXE3XreX9ZR3/mKkmy5rMcwvKObYaZmYgKX82nFEpgLzJnio0yTEJAwGkmc+JFpwwQaHMDsyTsmQ==",
+ "dependencies": {
+ "Microsoft.NETCore.DotNetHost": "1.0.1"
+ }
+ },
+ "runtime.win7-x86.Microsoft.NETCore.Jit": {
+ "type": "Transitive",
+ "resolved": "1.0.7",
+ "contentHash": "ymuXdyB00051kFKWoEzCOro5syHSXIgMJA/T8NfTk8ftw4+OBU+YUxAC8xnYsyEorxaSz67R8vj595rKtChNnQ=="
+ },
+ "runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR": {
+ "type": "Transitive",
+ "resolved": "1.0.7",
+ "contentHash": "q4ORbNN3TOgGVgX8b56LmuM+rl0FjplsBx0zksuxAqEc3aYsanVw/u9pyXnFHRT0Il9oYYWZZPXflmSqG4CcbA=="
+ },
+ "runtime.win7-x86.runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "99pM1ZhX7dPNnr/dOxuAxnVl/2XNWRh1WAUfesV3ZKwbR6mnEzpfbz2GX69zrpGvKbEytsjMKCD+auvvH6f7kA=="
+ },
+ "runtime.win7.System.Private.Uri": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Q+IBgaPYicSQs2tBlmXqbS25c/JLIthWrgrpMwxKSOobW/OqIMVFruUGfuaz4QABVzV8iKdCAbN7APY7Tclbnw=="
+ },
+ "SkiaSharp": {
+ "type": "Transitive",
+ "resolved": "1.60.0",
+ "contentHash": "HoSNIZH54rinevEhLUWdeclr+H/QdmOp252+Tt07HTXwQyvRl9eW32ga/X7T56wsR855SKprb0RcnBPRCzlqSA=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Collections": "4.3.0"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.win.System.Console": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Diagnostics.Debug": "4.3.0"
+ }
+ },
+ "System.Diagnostics.FileVersionInfo": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "qjF74OTAU+mRhLaL4YSfiWy3vj6T3AOz8AW37l5zCwfbBfj0k7E94XnEsRaf2TnhE/7QaV6Hvqakoy2LoV8MVg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tools": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tracing": "4.3.0"
+ }
+ },
+ "System.Drawing.Common": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "AiJFxxVPdeITstiRS5aAu8+8Dpf5NawTMoapZ53Gfirml24p7HIfhjmCRxdXnmmf3IUA3AX3CcW7G73CjWxW/Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "Microsoft.Win32.SystemEvents": "4.5.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization.Calendars": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.any.System.IO": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.IO.FileSystem": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Watcher": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "qM4Wr3La+RYb/03B0mZZjbA7tHsGzDffnuXP8Sl48HW2JwCjn3kfD5qdw0sqyNNowUipcJMi9/q6sMUrOIJ6UQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.IO.FileSystem": "4.0.1",
+ "System.IO.FileSystem.Primitives": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Overlapped": "4.0.1",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.Thread": "4.0.0",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.NameResolution": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.win.System.Net.Primitives": "4.3.0"
+ }
+ },
+ "System.Net.Requests": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "vxGt7C0cZixN+VqoSW4Yakc1Y9WknmxauDqzxgpw/FnBdz4kQNN51l4wxdXX5VY1xjqy//+G+4CvJWp1+f+y6Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Net.Http": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Net.WebHeaderCollection": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.Net.Security": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "nMs9dUDrJFr18+wgUB3lUpaMcJDqutsuO1C4g3OTuQYZJdnszgmHtjvBAI6eNXK0ZPLIA6sp8axMkd2T2dlzgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.2",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.IO": "4.1.0",
+ "System.Net.Primitives": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Security.Claims": "4.0.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Security.Cryptography.Encoding": "4.0.0",
+ "System.Security.Cryptography.OpenSsl": "4.0.0",
+ "System.Security.Cryptography.Primitives": "4.0.0",
+ "System.Security.Cryptography.X509Certificates": "4.1.0",
+ "System.Security.Principal": "4.0.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Threading.ThreadPool": "4.0.10",
+ "runtime.native.System": "4.0.0",
+ "runtime.native.System.Net.Security": "4.0.1",
+ "runtime.native.System.Security.Cryptography": "4.0.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.Net.Sockets": "4.3.0"
+ }
+ },
+ "System.Private.Uri": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I4SwANiUGho1esj4V4oSlPllXjzCZDE+5XXso2P03LW2vOda2Enzh8DWOxwN6hnrJyp314c7KuVu31QYhRzOGg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.win7.System.Private.Uri": "4.3.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Extensions": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Primitives": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Resources.ResourceManager": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.any.System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.any.System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "h4z6rrA/hxWf4655D18IIZ0eaLRa3tQC/j+e26W+VinIHY0l07iEXaAvO0YSYq3MvCjMYy8Zs5AdC1sxNQOB7Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Handles": "4.0.1",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.any.System.Text.Encoding.Extensions": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Timer": "4.3.0"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner.UnitTest/Cosmos.TestRunner.UnitTest.csproj b/Tests/Cosmos.TestRunner.UnitTest/Cosmos.TestRunner.UnitTest.csproj
index bc0874f217..6df88c694c 100644
--- a/Tests/Cosmos.TestRunner.UnitTest/Cosmos.TestRunner.UnitTest.csproj
+++ b/Tests/Cosmos.TestRunner.UnitTest/Cosmos.TestRunner.UnitTest.csproj
@@ -1,13 +1,15 @@
- netcoreapp2.0
+ net6.0
+ x86
+ Debug;Release;TEST
-
-
-
+
+
+
diff --git a/Tests/Cosmos.TestRunner.UnitTest/packages.lock.json b/Tests/Cosmos.TestRunner.UnitTest/packages.lock.json
new file mode 100644
index 0000000000..f308e0bac1
--- /dev/null
+++ b/Tests/Cosmos.TestRunner.UnitTest/packages.lock.json
@@ -0,0 +1,1523 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.0.0, )",
+ "resolved": "17.0.0",
+ "contentHash": "fJcnMY3jX1MzJvhGvUWauRhU5eQsOaHdwlrcnI3NabBhbi8WLAkMFI8d0YnewA/+b9q/U7vbhp8Xmh1vJ05FYQ==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.0.0",
+ "Microsoft.TestPlatform.TestHost": "17.0.0"
+ }
+ },
+ "NUnit": {
+ "type": "Direct",
+ "requested": "[3.11.0, )",
+ "resolved": "3.11.0",
+ "contentHash": "BzGk+u02RCrysmLlSzD+okxzMQ8JRF4eFC/qijDJ8Y/FBdTrTkxkQyTFsYkG1o++pr7QpFAE4VDXDqIfZ/gBAg==",
+ "dependencies": {
+ "NETStandard.Library": "2.0.0"
+ }
+ },
+ "NUnit3TestAdapter": {
+ "type": "Direct",
+ "requested": "[3.12.0, )",
+ "resolved": "3.12.0",
+ "contentHash": "uN7IiBCNxLHVXobqyCZvtRwkbnVclA01cNOrHV3noGOhAG5fX8zCjy053U77hILpX/b9eGRgzdZDj4Xm0TnlGw==",
+ "dependencies": {
+ "Microsoft.DotNet.InternalAbstractions": "1.0.0",
+ "System.ComponentModel.EventBasedAsync": "4.3.0",
+ "System.ComponentModel.TypeConverter": "4.3.0",
+ "System.Diagnostics.Process": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Xml.XPath.XmlDocument": "4.3.0",
+ "System.Xml.XmlDocument": "4.3.0"
+ }
+ },
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.0.0",
+ "contentHash": "+B+09FPYBtf+cXfZOPIgpnP5mzLq5QdlBo+JEFy9CdqBaWHWE/YMY0Mos9uDsZhcgFegJm9GigAgMyqBZyfq+Q=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.DotNet.InternalAbstractions": {
+ "type": "Transitive",
+ "resolved": "1.0.0",
+ "contentHash": "AAguUq7YyKk3yDWPoWA8DrLZvURxB/LrDdTn1h5lmPeznkFUpfC3p459w5mQYQE0qpquf/CkSQZ0etiV5vRHFA==",
+ "dependencies": {
+ "System.AppContext": "4.1.0",
+ "System.Collections": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.0.0",
+ "contentHash": "WMugCdPkA8U/BsSRc+3RN+DXcaYSDvp/s0MofVld08iF1O5fek4iKecygk6NruNf1rgJsv4LK71mrwbyeqhzHA==",
+ "dependencies": {
+ "NuGet.Frameworks": "5.0.0",
+ "System.Reflection.Metadata": "1.6.0"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.0.0",
+ "contentHash": "xkKFzm0hylHF0SlDj78ACYMJC/i8fQ3i16sDDNYoKnjTsstGSQfuSBJ+QT4nqRXk/fOiYTh+iY0KIX5N7HTLuQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "7jnbRU+L08FXKMxqUflxEXtVymWvNOrS8yHgu9s6EM8Anr6T/wIX4nZ08j/u3Asz+tCufp3YVwFSEvFTPYmBPA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "NuGet.Frameworks": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "c5JVjuVAm4f7E9Vj+v09Z9s2ZsqFDjBpcsyS3M9xRo0bEdm/LVZSzLxxNvfvAwRiiE8nwe1h2G4OwiwlzFKXlA=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fCFl8f0XdwA/BuoNrVBB5D0Y48/hv2J+w4xSDdXQitXZsR6UCSOrDVE7TCUraY802ENwcHUnUCv4En8CupDU1g==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==",
+ "dependencies": {
+ "System.ComponentModel": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Collections.NonGeneric": "4.3.0",
+ "System.Collections.Specialized": "4.3.0",
+ "System.ComponentModel": "4.3.0",
+ "System.ComponentModel.Primitives": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "Microsoft.NETCore.Targets": "1.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.0.12",
+ "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
+ "dependencies": {
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Diagnostics.Tools": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XPath": "4.3.0",
+ "System.Xml.XmlDocument": "4.3.0"
+ }
+ },
+ "audiotests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "boxingtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "consoletest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bcl": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bclsystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.encryption": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.exceptions": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.interfaces": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.methodtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.singleechotest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.typesystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.diskmanager": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.fat": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.io": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.full": {
+ "type": "Project",
+ "dependencies": {
+ "AudioTests": "[0.1.0-localbuild, )",
+ "BoxingTests": "[0.1.0-localbuild, )",
+ "ConsoleTest": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.BclSystem": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Encryption": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Exceptions": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Interfaces": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.MethodTests": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.SingleEchoTest": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.TypeSystem": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.DiskManager": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.Fat": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.IO": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.Core": "[0.1.0-localbuild, )",
+ "GraphicTest": "[0.1.0-localbuild, )",
+ "MemoryOperationsTest": "[0.1.0-localbuild, )",
+ "NetworkTest": "[0.1.0-localbuild, )",
+ "ProcessorTests": "[0.1.0-localbuild, )",
+ "SimpleStructsAndArraysTest": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "graphictest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "memoryoperationstest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "networktest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "processortests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "simplestructsandarraystest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner/Cosmos.TestRunner.csproj b/Tests/Cosmos.TestRunner/Cosmos.TestRunner.csproj
index a9b5d122f8..e9436d57b8 100644
--- a/Tests/Cosmos.TestRunner/Cosmos.TestRunner.csproj
+++ b/Tests/Cosmos.TestRunner/Cosmos.TestRunner.csproj
@@ -1,10 +1,21 @@
- netcoreapp2.0
+ net6.0
Exe
- win7-x86
+ win-x86
Full
+ Debug;Release;TEST
+
+
+
+ AnyCPU
+ true
+
+
+
+ AnyCPU
+ true
diff --git a/Tests/Cosmos.TestRunner/Properties/launchSettings.json b/Tests/Cosmos.TestRunner/Properties/launchSettings.json
new file mode 100644
index 0000000000..23811ebcac
--- /dev/null
+++ b/Tests/Cosmos.TestRunner/Properties/launchSettings.json
@@ -0,0 +1,10 @@
+{
+ "profiles": {
+ "Cosmos.TestRunner": {
+ "commandName": "Project",
+ "environmentVariables": {
+ "BochsPath": "C:\\Program Files\\Bochs-2.7\\Bochs.exe"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.TestRunner/packages.lock.json b/Tests/Cosmos.TestRunner/packages.lock.json
new file mode 100644
index 0000000000..154891b327
--- /dev/null
+++ b/Tests/Cosmos.TestRunner/packages.lock.json
@@ -0,0 +1,2647 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "audiotests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "boxingtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "consoletest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bcl": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bclsystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.encryption": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.exceptions": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.interfaces": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.methodtests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.singleechotest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.typesystem": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.diskmanager": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.fat": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.kernel.tests.io": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.full": {
+ "type": "Project",
+ "dependencies": {
+ "AudioTests": "[0.1.0-localbuild, )",
+ "BoxingTests": "[0.1.0-localbuild, )",
+ "ConsoleTest": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.BclSystem": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Encryption": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Exceptions": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.Interfaces": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.MethodTests": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.SingleEchoTest": "[0.1.0-localbuild, )",
+ "Cosmos.Compiler.Tests.TypeSystem": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.DiskManager": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.Fat": "[0.1.0-localbuild, )",
+ "Cosmos.Kernel.Tests.IO": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.Core": "[0.1.0-localbuild, )",
+ "GraphicTest": "[0.1.0-localbuild, )",
+ "MemoryOperationsTest": "[0.1.0-localbuild, )",
+ "NetworkTest": "[0.1.0-localbuild, )",
+ "ProcessorTests": "[0.1.0-localbuild, )",
+ "SimpleStructsAndArraysTest": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "graphictest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Compiler.Tests.Bcl": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "memoryoperationstest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "networktest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "processortests": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "simplestructsandarraystest": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ },
+ "net6.0/win-x86": {
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.Microsoft.Win32.Primitives": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "runtime.any.System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "23g6rqftKmovn2cLeGsuHUYm0FD7pdutb0uQMJpZ3qTvq+zHkgmt6J65VtRry4WDGYlmkMa4xDACtaQ94alNag==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "runtime.any.System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "S/GPBmfPBB48ZghLxdDR7kDAJVAqgAuThyDJho3OLP5OS4tWD2ydyL8LKm8lhiBxce10OKe9X2zZ6DUjAqEbPg=="
+ },
+ "runtime.any.System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1lpifymjGDzoYIaam6/Hyqf8GhBI3xXYLK2TgEvTtuZMorG3Kb9QnMTIKhLjJYXIiu1JvxjngHvtVFQQlpQ3HQ=="
+ },
+ "runtime.any.System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sMDBnad4rp4t7GY442Jux0MCUuKL4otn5BK6Ni0ARTXTSpRNBzZ7hpMfKSvnVSED5kYJm96YOWsqV0JH0d2uuw=="
+ },
+ "runtime.any.System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "M1r+760j1CNA6M/ZaW6KX8gOS8nxPRqloqDcJYVidRG566Ykwcs29AweZs2JF+nMOCgWDiMfPSTMfvwOI9F77w=="
+ },
+ "runtime.any.System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ=="
+ },
+ "runtime.any.System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hLC3A3rI8jipR5d9k7+f0MgRCW6texsAp0MWkN/ci18FMtQ9KH7E2vDn/DH2LkxsszlpJpOn9qy6Z6/69rH6eQ=="
+ },
+ "runtime.any.System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cPhT+Vqu52+cQQrDai/V91gubXUnDKNRvlBnH+hOgtGyHdC17aQIU64EaehwAQymd7kJA5rSrVRNfDYrbhnzyA=="
+ },
+ "runtime.any.System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Nrm1p3armp6TTf2xuvaa+jGTTmncALWFq22CpmwRvhDf6dE9ZmH40EbOswD4GnFLrMRS0Ki6Kx5aUPmKK/hZBg=="
+ },
+ "runtime.any.System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Lxb89SMvf8w9p9+keBLyL6H6x/TEmc6QVsIIA0T36IuyOY3kNvIdyGddA2qt35cRamzxF8K5p0Opq4G4HjNbhQ=="
+ },
+ "runtime.any.System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "runtime.any.System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GG84X6vufoEzqx8PbeBKheE4srOhimv+yLtGb/JkR3Y2FmoqmueLNFU4Xx8Y67plFpltQSdK74x0qlEhIpv/CQ=="
+ },
+ "runtime.any.System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw=="
+ },
+ "runtime.any.System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+ihI5VaXFCMVPJNstG4O4eo1CfbrByLxRrQQTqOTp1ttK0kUKDqOdBSTaCB2IBk/QtjDrs6+x4xuezyMXdm0HQ=="
+ },
+ "runtime.any.System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NLrxmLsfRrOuVqPWG+2lrQZnE53MLVeo+w9c54EV+TUo4c8rILpsDXfY8pPiOy9kHpUHHP07ugKmtsU3vVW5Jg=="
+ },
+ "runtime.any.System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OhBAVBQG5kFj1S+hCEQ3TUHBAEtZ3fbEMgZMRNdN8A0Pj4x+5nTELEqL59DU0TjKVE6II3dqKw4Dklb3szT65w=="
+ },
+ "runtime.any.System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "w4ehZJ+AwXYmGwYu+rMvym6RvMaRiUEQR1u6dwcyuKHxz8Heu/mO9AG1MquEgTyucnhv3M43X0iKpDOoN17C0w=="
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "runtime.win.Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "runtime.win.System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RRACWygml5dnmfgC1SW6tLGsFgwsUAKFtvhdyHnIEz4EhWyrd7pacDdY95CacQJy7BMXRDRCejC9aCRC0Y1sQA==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hHHP0WCStene2jjeYcuDkETozUYF/3sHVRHAEOgS3L15hlip24ssqCTnJC28Z03Wpo078oMcJd0H4egD2aJI8g=="
+ },
+ "runtime.win.System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z37zcSCpXuGCYtFbqYO0TwOVXxS2d+BXgSoDFZmRg8BC4Cuy54edjyIvhhcfCrDQA9nl+EPFTgHN54dRAK7mNA==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lkXXykakvXUU+Zq2j0pC6EO20lEhijjqMc01XXpp1CJN+DeCwl3nsj4t5Xbpz3kA7yQyTqw6d9SyIzsyLsV3zA==",
+ "dependencies": {
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FK/2gX6MmuLIKNCGsV59Fe4IYrLrI5n9pQ1jh477wiivEM/NCXDT2dRetH5FSfY0bQ+VgTLcS3zcmjQ8my3nxQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.NameResolution": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RkgHVhUPvzZxuUubiZe8yr/6CypRVXj0VBzaR8hsqQ8f+rUo7e4PWrHTLOCjd8fBMGWCrY//fi7Ku3qXD7oHRw==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Collections": "4.3.0"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.win.System.Console": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Diagnostics.Debug": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tools": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tracing": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization.Calendars": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.any.System.IO": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.IO.FileSystem": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.NameResolution": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.win.System.Net.Primitives": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.Net.Sockets": "4.3.0"
+ }
+ },
+ "System.Private.Uri": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I4SwANiUGho1esj4V4oSlPllXjzCZDE+5XXso2P03LW2vOda2Enzh8DWOxwN6hnrJyp314c7KuVu31QYhRzOGg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Extensions": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Primitives": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Resources.ResourceManager": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.any.System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.any.System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.any.System.Text.Encoding.Extensions": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Timer": "4.3.0"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Cosmos.VS.Windows.Test/Cosmos.VS.Windows.Test.csproj b/Tests/Cosmos.VS.Windows.Test/Cosmos.VS.Windows.Test.csproj
index d7fbfb47cd..047beb8f8e 100644
--- a/Tests/Cosmos.VS.Windows.Test/Cosmos.VS.Windows.Test.csproj
+++ b/Tests/Cosmos.VS.Windows.Test/Cosmos.VS.Windows.Test.csproj
@@ -21,7 +21,6 @@
full
AnyCPU
prompt
- MinimumRecommendedRules.ruleset
bin\Release\
@@ -30,7 +29,6 @@
pdbonly
AnyCPU
prompt
- MinimumRecommendedRules.ruleset
diff --git a/Tests/Data/disk.txt b/Tests/Data/disk.txt
new file mode 100644
index 0000000000..397fc0698f
--- /dev/null
+++ b/Tests/Data/disk.txt
@@ -0,0 +1,32 @@
+EB 58 90 4D 53 44 4F 53 35 2E 30 00 02 08 18 18
+02 00 00 00 00 F8 00 00 3F 00 10 00 3F 00 00 00
+C2 EE 0F 00 F4 03 00 00 00 00 00 00 02 00 00 00
+01 00 06 00 00 00 00 00 00 00 00 00 00 00 00 00
+80 00 29 79 5D 0F 04 4E 4F 20 4E 41 4D 45 20 20
+20 20 46 41 54 33 32 20 20 20 33 C9 8E D1 BC F4
+7B 8E C1 8E D9 BD 00 7C 88 4E 02 8A 56 40 B4 41
+BB AA 55 CD 13 72 10 81 FB 55 AA 75 0A F6 C1 01
+74 05 FE 46 02 EB 2D 8A 56 40 B4 08 CD 13 73 05
+B9 FF FF 8A F1 66 0F B6 C6 40 66 0F B6 D1 80 E2
+3F F7 E2 86 CD C0 ED 06 41 66 0F B7 C9 66 F7 E1
+66 89 46 F8 83 7E 16 00 75 38 83 7E 2A 00 77 32
+66 8B 46 1C 66 83 C0 0C BB 00 80 B9 01 00 E8 2B
+00 E9 2C 03 A0 FA 7D B4 7D 8B F0 AC 84 C0 74 17
+3C FF 74 09 B4 0E BB 07 00 CD 10 EB EE A0 FB 7D
+EB E5 A0 F9 7D EB E0 98 CD 16 CD 19 66 60 80 7E
+02 00 0F 84 20 00 66 6A 00 66 50 06 53 66 68 10
+00 01 00 B4 42 8A 56 40 8B F4 CD 13 66 58 66 58
+66 58 66 58 EB 33 66 3B 46 F8 72 03 F9 EB 2A 66
+33 D2 66 0F B7 4E 18 66 F7 F1 FE C2 8A CA 66 8B
+D0 66 C1 EA 10 F7 76 1A 86 D6 8A 56 40 8A E8 C0
+E4 06 0A CC B8 01 02 CD 13 66 61 0F 82 75 FF 81
+C3 00 02 66 40 49 75 94 C3 42 4F 4F 54 4D 47 52
+20 20 20 20 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 0D 0A 52 65
+6D 6F 76 65 20 64 69 73 6B 73 20 6F 72 20 6F 74
+68 65 72 20 6D 65 64 69 61 2E FF 0D 0A 44 69 73
+6B 20 65 72 72 6F 72 FF 0D 0A 50 72 65 73 73 20
+61 6E 79 20 6B 65 79 20 74 6F 20 72 65 73 74 61
+72 74 0D 0A 00 00 00 00 00 AC CB D8 00 00 55 AA
diff --git a/Tests/Dockerfile b/Tests/Dockerfile
new file mode 100644
index 0000000000..b6e423d9eb
--- /dev/null
+++ b/Tests/Dockerfile
@@ -0,0 +1,2 @@
+FROM mcr.microsoft.com/dotnet/sdk:6.0
+
diff --git a/Tests/Kernels/AudioTests/AudioTests.csproj b/Tests/Kernels/AudioTests/AudioTests.csproj
new file mode 100644
index 0000000000..ce6e5e6d1b
--- /dev/null
+++ b/Tests/Kernels/AudioTests/AudioTests.csproj
@@ -0,0 +1,18 @@
+
+
+
+ net6.0
+ False
+ Debug;Release;TEST
+ true
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/Kernels/AudioTests/Kernel.cs b/Tests/Kernels/AudioTests/Kernel.cs
new file mode 100644
index 0000000000..896a89d1c8
--- /dev/null
+++ b/Tests/Kernels/AudioTests/Kernel.cs
@@ -0,0 +1,221 @@
+using System;
+using Sys = Cosmos.System;
+using Cosmos.TestRunner;
+using Cosmos.Core;
+using Cosmos.HAL.Audio;
+using Cosmos.System.Audio.IO;
+
+namespace AudioTests
+{
+ public class Kernel : Sys.Kernel
+ {
+ const int AMT_OF_SAMPLES = 22050; // 0.5secs at 44100hz
+
+ #region Test Sample Data
+ static readonly byte[] MonoSine8Bit
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] MonoSine16Bit
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] MonoSine24Bit
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] MonoSine32Bit
+ = Convert.FromBase64String(@"AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37AAAAAEDvAgRA3AQI8MQEDOCnARAghPoTQFruF4Ar3Bsg+8IfwM2hI4CqdycAmkMrAKgEL8DiuTLAW2I2QCf9OYBdiT2AGQZBAHtyRACmzUcAwhZLgPtMToCDb1GAkH1UAF52V4AsWVqAQSVdAOrZXwB3dmIAQfpkgKVkZwAJtWkA1+prAIEFboB/BHAAUudxgH6tcwCUVnWAJuJ2ANNPeIA9n3mAEdB6gALie4DL1HwAL6h9APlbfoD7734AEWR/AB24fwAK7H8Ay/9/gFrzf4C8xn8A/Hl/ACwNf4BogH4A1NN9AJoHfYDuG3yADBF7gDfneYC5nniA5Td3ABazdYCsEHSAElFygLh0cIAWfG6AqmdsgPs3aoCV7WeADIllgPoKY4D/c2CAwsRdgPD9WoA8IFgAXixVgBQjUgAiBU+AUNNLAG2OSABKN0WAvs5BQKZVPsDgzDqAUTU3wN+PM0B23S9AAx8sQHdVKMDGgSSA56QgwNK/HACD0xjA9OAUYCbpECAX7Qywx+0IcDnsBDNu6QBEaOb86Cnk+EC14/TwC+bw4C7s7AAe9+hA2Afl4Fof4YChPt3ApWbZQF+Y1cDC1NHAwhzOwE5xygBT08ZAuEPDAGTDvwA3U7yAD/S4gMamtQAwbLIAHEWvAFYyrACjNKmAxEymAHV7o4BqwaAAVB+eANuVmwCjJZkASc+WgGOTlACCcpKALm2QAOqDjgAwt4yAdAeLACR1iYCjAIgAUaqGgIJyhQCGWYSAol+DABeFgoAayoGA2y6BgIGzgIArWICA8ByAAN8BgAD+BoCATCyAAMFxgIBJ14AAzVyBACoCggA3x4KAwauDgJGvhABk0oWA8ROHAOhziADv8YmAp42LgKhGjQCEHI8AxA6RgOock4BzRpWA04qXgHnpmYDLYZwALPOeAPScoYB5XqSACjengO8lqgBsKq0AvkOwAB1xs4C9sbaAzQS6AHdpvQDg3sBAKWTEQHD4x8DOmsuAWkrPQCYG0wBCzdYAup7agJh53qDlXOLgpkfmIOA46mCTL+6gwSrygGop9siMKvqiJi3+6DUwAki4MgagqzMKIA4yDqDeLBIAHSMWIMoTGmDo/R2Ae+AhgIm6JYAaiykAOVEtgPELMYBUujSAdFs4QGjuO0BJcj+ANeZCgE5JRgC6mkkAo9lMADgFUACtHFMAOx9WACAMWYCg4luABKJeAJxJYYC72GMAv05mgAeraAD97GqADhRtALEfbwBhD3GAoeJyAP6YdAAHMnaAVq13AI0KeQBSSXqAVml7AFFqfAABTH0ALg5+gKewfgBEM3+A45V/AGzYf4DN+n+A//x/AAHffwDaoH8AmkJ/AFjEfgA1Jn6AV2h9gPCKfIA2jnsAanJ6gNE3eQC93ncAg2d2gIHSdIAeIHOAx1BxAPFkb4AWXW0AuzlrgGf7aACtomYAIzBkAGakYQAbAF+A60NcgIdwWQClhlYAAIdTAFlyUIB2SU0AJA1KADK+RoB1XUPAx+s/gAZqPIAT2TiA1Dk1wDKNMYAa1C0AfA8qQElAJsB3ZyJg/4UeoNmcGqACrRagd7cSkDe9DpBCvwqgmb4GeD68AjIzuf4gerb6cBW19hAHtvJAULrugPHC6iDq0OZAOOXiANgA34DEJNvA9VHXAGKJ00D9y8/AtxrMgH92yMA+4MTA3FjBgDzhvYA9eroAuiS3AIrhswB+sbCAZJWtgAWOqgAjnKcAfMCkgMf7oQC4Tp8A+rmcgDM+moAE3JeABpSVAMxmk4DhVJGAzF6PgAqFjYATyIuAViiKAD2miIAnQocAcPyFAGjVhIBZzYOAh+SCgCwbgoB6cYEAneeAALZ9gIDgM4CALwqAgKwAgIBaF4CAM06AACqlgAAoHIGAD7OBALtpgoD7P4OAnDWEAF9KhYD+fYaALNCHAJVAiYDazooAmXqMgGVDjoDMKJCAVCqSgHtHlIC6f5aAgdKYgDs/m4BMxZ2AEWSggOIaowAQ6aUA5s2oAKrIqwCc2K4A9/yxgPA0tYC5f7gAfty7AGVKv8CSyMLAJVbGQDnyyQDlm80APVLRQFIU1QAz4dhA6rfcIIGX4ED+fuQgZm3ooLth7EAAW/AgNFj0aFZY+IhlWvxzX10A6EFgBKAKYgiQt2EMYEdeEGC5VhTgDUoYgEY3HIBmHSAAc/sjwHLQJwBvmyvAc1svwI8PMwDUtjbAVVA6AC3bPYB1VkGAT8FEAN8aSABMYksAxJZOgHe3UYCew1SAc7pXgDibWgA0ZV2AshdgAAayYoCHM2UAlZtngJTpaYDwHGwAHDVuAJAxcIDMEXIAWdVzgMN7dYCiBHeAkm94gDi8eYBA6noAX/l7AFDpfIDWuX2Avmp+ANv7foAIbX+AKb5/ACrvfwD+/3+AoPB/ABbBf4BqcX+AsQF/AAhyfgCRwn2AefN8APUEfIA/93qAncp5AFp/eIDIFXcARI51AC/pcwDzJnKAAUhwgNNMboDnNWwAxQNqgPi2Z4AWUGUAus9igIM2YIAahV2ALLxaAG3cVwCU5lSAYdtRgJi7ToACiEuAbUFIgKzoRICWfkFACAQ+QOF5OkAF4TbAWzozQNCGLwBRxysAz/wnQD4oJMCVSiBgzmQcwOJ3GODPhBTgk4wQcC6QDCCgkAhY6o4EHQ+MAKgQifxA8Yb4ALOG9HBXifCA34/sAEub6KCYrOSgxcTgQM3k3ECpDdkAUUDVwLh90QDTxs3AjhzKANh/xkCX8cKAsXK/AAgEvIB3priA2Fq1gP8hsgC8/K4A2OurgBnwqIBACqYABzujgCKDoABC450ADlybgCnumAAxmpaAumCUAFVCkgCJP5AA2FiOALyOjACp4YoAClKJgETgh4C0jIYAsFeFgIRBhAB4SoMAyXKCAK26gQBTIoEA4amAAHVRgAAmGYCAAQGAAA4JgABJMYCAqHmAABvigICFaoGAxRKCgLHagoAWwoOAusiEgFvuhQCwMocAZpWIgCQWioCKtIsAMHCNgKVIj4BzPZEAHU6TgBx6lYDmwJcA6CGaAIicnAAnMJ8AH9yhgMSfpIBkeqcASGuqgLFxrQDejLAABryzgFz+tgAPU7qAR7m9wCowwYDatsQAc0zIwA3wy4DAoM+AnV3TQLQl10AR+NqAvtPegMO34qAlo+bg6JTqAA+M7tCYh/LghYb28NSH+iSEiv5IkY0CEPqPBlC8kApQ1o4OIEeJEmAOfxZgLW8aYKZYHoB9OiIAuRMmAGHjKQCAqC2AI2IxgFsPNUA7rzjA2UA8wFDDP4C+NUMARZdGgArnSQA6JE0AA05QAJpjUwA4ZFaAG09ZgIkjXADL4F4AMIZhAA4TZADBhmYAq+BogDQgawDNRG2A6k1vgAk7cQCvC3MAZb90gL5VdoBVzncAyyh5gMdkeoD8gXsAIYB8APZefYBDHn4A2b1+AI49f4BDnX+A4Nx/gFX8fwCa+38Ar9p/AJyZf4BxOH+ASLd+AEEWfgCEVX0AQXV8gLF1ewAVV3oAtBl5AN69dwDrQ3aAOax0ADD3cgA9JXEA1TZvAHUsbQCgBmsA4MVogMZqZoDr9WOA7GdhAG7BXgAbA1wApC1ZAL9BVgApQFMAoylQgPP+TIDnwEmATnBGgP4NQ0DRmj8ApRc8wFuFOIDb5DTADTcxgN98LYBAtynAI+clwH4NImBJKx6AfUEaQBdRFiAUWxIwc2AOsDRiCphZYQbA414CRtVb/ngwWfqQ91f2UCxZ8gDQXe4A42bqoGR15qBSiuJAqabeQGPL2oB4+dYA3zHTQIp1z8BqxcsAbiLIwH2NxECBB8EAW5G9gOkrugAI2LaAjJazAElosIAJTq0AlkiqgLFYpwAZf6SAg7yhAKMRnwAjf5wAqgWaANallwBBYJWAfDWTgBQmkQCNMo+AZFuNABGhiwACBIoAn4SIgEgjhwBY4IWAHbyEAOS2g4Dr0IKAbwqCAKFjgYCp3ICArHWAAMIugID9B4CAZwGAgAIbgADIVIAAqa6AAI8ogYBbwoGA53uCAAVVgwB9TYQAEWWFgHqbhgBs8IcAj2OJAIf0ioDuooyAWW6OgFRWkIBkWpIACHqUALa0loDfCZmA7XibgEQBngBAoqAAOFujgHwrpoBYEqmAEQ+sgOYgr4ASR7KAyoC1gD7NuACbK7yABpu/wKMaw4CRqcZA60bKgMfxzcA6qdFAVWzVACU62UC1Ed1ADvLgoDba5AAzyejgBb7soLC38GAztfQYjbX4PLy3/LW+ugA4kr0EgDS/CKCjvgxA3roQwOOyFIC0pRiAUpIcwMB3IAAFVSTAJSkoAC3zK4Amsi9AIWUzAC8LNwBlozqA2yw+AK+mQYD/D0UA8mdIgK6tS4Bi4E6AQP9RAH8JVYBa/leAFN1aAPWkXQBIVWAAYe1igJhsZQBO0mcA5x1qgNBObAB8ZG6AZF5wgAo8coD1/HMAtaB1AN8md4ARj3iA8th5gC4EewB6EHwAkv18gDrLfYBAeX6Adwd/ALx1fwDyw38ABvJ/AO3/f4Ci7X+AK7t/AJVof4Dz9X4AZGN+AAuxfQAW33wAue17ADHdegDDrXmAul94gGzzdoAzaXWAc8FzgJb8cQAPG3AAVh1uAOsDbABWz2kAJIBnAOsWZQBFlGKA1PhfAEFFXYA4elqAbphXAJ2gVACDk1EA5XFOAIw8S4BH9EcA6plEAEwuQUBJsj1AwiY6gJuMNsC85DIAETAvQIdvK0ARpCfAos4jADPwH+C6CRygNRwYIKAoFKD4LxAQPzMM8HMzCNiYMQS9ry4A4Lor/JC8KfjQtin0MKss8GCaM+xghD/ogGdR5OBAauDAC4vcwMG02EBZ6NRAxybRwP1wzUDrx8lAeyzGwJafwoAhIr8A/bS7AAVZuAASD7WA+NexAIe0rgCHpasAvquoAOzHpYDK+qKADUWgAGSnnYB2IpsA57aYgFFllgBLLpSAYhKSAB8SkIACLo6AhWaMgBu8ioAvL4kAJcCHgFhvhoAePYUAxSmEAJA1g4C9YIIAg6uBAA4WgQCEoIAAA0uAgJ8VgIBoAIAAYguAgIk2gIDUgYAAMO2AgIB4gQCkI4KAbu6CAK3Yg4Al4oQAlAqGAK9RhwAkt4iAmDqKgKvbi4D0mY2AAnWPgF5skYCJf5OA/q2VgDD3l4CMWpoAedecAFZtnwB8G6KAP+GkgO29pwDOsKqAIrmtACnWsIAXB7QAIku3AHWhuoA6Cb4Al4HBAKsJxUCToMiAaEXMQED3z4AstdOAPH7XgHxR2wD2Ld/AsBLj4LH+5gD98Orgk+juEHfk8kCm4/YAIOX6buLn/kzr6gJQOO0GYMftCtCW6w6gpeUSwPPaFoCCyhpAVLMegG2UIkDUbCZAkTsqAK//LUA7uDGARmQ1AOQCOQArkzwANhRAgCOFQwAW5UYANDNKgKhuTQCkllCAWqpTgAapVoDnkVkAQWRcgF4fX4CPwmEAK01kAIy+ZoAWFmkAM1NrgFF1bYDoe2+AdmZxAH80cwCO5XSAN3l2gBTvd4DIRnkA/H96gGCaewCvlXyAqHF9gBUufoDGyn6AlEd/AGCkfwAR4X8Amf1/gPD5f4AY1n8AGpJ/AAYuf4D1qX6ACgZ+gG1CfQBQX3yA6lx7AH87egBW+3iAv5x3ABQgdgCzhXQABM5yAHb5cAB+CG8AmftsAEzTagAhkGiAqTJmgH67Y4A+K2GAjoJegBnCWwCR6liAq/xVACb5UoDC4E8ASLRMAIN0SQBFIkaAY75CwLhJP4AjxTvAhTE4QMaPNMDO4DBAjCUtAO9eKUDqjSXAc7MhQIPQHWAT5hngH/UV4Kb+ETCnAw5AIQUKKBYEBsSHAQI8eP792On7+cDe+vXQWPzxIFkB7iDgCuqg7BnmwHwv4kCMTN7AFXLaABGh1sBz2tJAMR/PwDlwy0B6zseA3DrEQEe2wICcQb0Au925AH2LtgC4S7OAPR+wANoGrYBUA6oAbxWngOY9pIBxfaGAwdSegIFEnIBWzZkA32+XALQslQBnBJMAgveQAIoGjwD8MY0ATXqLAOzfiYBAY4gAqgSHAIHEhYAVo4QAsKCDgJK9goD1+YGAClaBAPrRgADmbYCA5ymAgA8GgABnAoAA7x6AAKBbgIBruICAOTWBgOrRgYBXjoIAUWqDgJ9lhAAEgIWAN7mGgOsQiIDIhokAchqLAIHLjICJmY6AF4SQgK6KkgDNrJSA6emWAHRBmQDVspuAcD2egKHgoAC/m6OAGG6mgPlWqYClVawAXGmvgFeRsgDMzLUA6hq5gNx6vADK678A1WzDABz9xoC5m8rAxEfOAFEA0sBuxNXAK5PZgJJr3cCrTOGAfTXlQAwl6WBaGu0waRTxoDgS9bDHEvm0FBX9kh0YAQDgGgXAWRwJ8IgbDSBsFxEAAw8VIE4BGUBP7RwACtIggIOuJIDDgSiA00oswL8IMICXujPAbF83AFX2OgBpfj6AxfZBAIteRQDetEiA6PhLANcpT4DdRlIAMk9VgBJCWIDAHlsAhORdAKqSYACHKGOAc6VlgM8IaIABUmqAdoBsgKGTboD9inCAC2ZygFQkdIBnxXUA3Eh3AFGueABs9XmA2h17AFMnfICREX0AXNx9gH+HfgDQEn+AK35/gHbJfwCe9H+Al/9/gGDqfwD9tH8AfF9/APLpfgB9VH6AQp99AHDKfAA71nuA4cJ6gKeQeQDbP3iA0NB2gORDdYB6mXOA/dFxAOHtb4Cd7W0AtdFrgK6aaQAZSWeAid1kAJxYYoDyul+ANQVdABQ4WgBCVFcAeVpUAHlLUYAHKE4A7vBKAPumRwADS0SA3t1AQGlgPcCE0znAFDg2QAKPMsA42S7AphcrQD5LJ0D0dCMgv5UfgJiuG6B7wBegZcwT0FTTDzBJ1gtwQ9YHIEXUA0NQ0f8oZ877EIzM9/DAzPNgB9Dv4F/X62DK4+cgRfbjAM0P4EBdMdzA7lvYwHiQ1ADvz9BAQxvNgGRzycA92cXAtk3CALTRvgAWZruAuAu4AHTDtAAbjrEAfWyuAGNfq4CRZ6iAx4WlAL+6ooArB6AAu2udABXpmgDcf5gAqjCWABX8kwCq4pEA8eSPgGkDjoCMPoyAzJaKgJMMiYBFoIcAPVKGAM8ihQBHEoQA6iCDAPVOggCcnIGADAqBAGuXgIDURICAXRKAABMAgAD6DYAADjyAAESKgICI+ICAv4aBgMU0ggBuAoMAhu+DgNH7hIANJ4aA7nCHACHZiABLX4qACgOMgPXDjYCboY8AhJuRgC+xkwAZ4pUAsi2YgGeTmgCfEp0AuKqfAAtbooDrIqWApQGoAIH2qoC/AK6AnR+xgFFStAAOmLeAAPC6AFFZvoAk08EAm1zFANH0yMDemsyA2U3QANMM1EDa1tcA+6rbQD+I34CtbeOAS1rnQBxN68AhRe9gXEHzgMtA98htQvtLQUX/xENIA+hySgegzEoLYE9IDyD6QRMAzTYXYMklG8DxDR/ASu4iANvFJsCqkypAxVYugDgOMsAUuTWAblY5QFzlPID5ZEAAZdRDgMEyR4A1f0qA7bhNgBnfUIDu8FOAp+1WgIPUWQDIpFwAwF1fgLv+YYASh2SAIPZmAEpLaQD4hWuAm6VtgKupb4CmkXGAEV1zAHkLdQBxnHYAlA94gIVkeQDvmnoAg7J7APuqfIAYhH2ApD1+AHHXfgBXUX8AOKt/gP3kf4CY/n+AAvh/AD7Rf4BTin+AViN/AF+cfoCQ9X2AFC99ABxJfIDiQ3sAqB96gLfceABhe3cA/vt1AO9edICbpHIAc81wgOvZboCDymwAv59qACpaaABW+mUA3YBjAF3uYIB8Q14A54BbgE6nWABqt1WA9rFSALeXT4BzaUwA+CdJgBbURQClbkLAfvg+QIJyOwCS3TdAlTo0wHWKMAAhziyAhwYpwJw0JcBWWSFgrXUdYJuKGQAdmRUAMKIRsNOmDXAIqAmIz6YFuiqkAUAcof1opp75UMud9dCMn/Hg66TtwOiu6YCCvuWgttThQIHy3UDcGNqAv0jWgCCD0kDyyM6AJBvLQKR6xwBb6MPALmXAgAHyvICxj7mAGD+2gAwBswBd1q8A17+sAEG+qQBc0qYA5fyjAJI+oYATmJ6AFAqcgDmVmQAgOpcAYPmUAIvTkgAryZAAw9qOANAIjYDGU4sAFbyJACJCiABM5oYA66iFgE6KhAC/ioMAfKqCAL/pgYC3SIGAjseAAGRmgABRJYAAZgSAgKoDgIAfI4CAvGKAAHLCgAAnQoGAvOGBAAqhggDff4OAA36EgDibhQA114aAqjGIgEGqiQCbQIsAUfSMgPbEjoAVspAAM7uSgMvflABVH5cAP3mZAPLsmwDQeZ4ANR+hgHbco4DksKYAyJupAGacrAD9sa8AxtuygPUYtgC7aLmAQcq8QK88wEAmv8PAxFDHgKTwyoDcnc4AgFfSAJ8c1gBH7NmAgsXdoFmn4aDSkOWg8YDp4Lh27bApcfGwQ2/18AVw+bhucv3ce3UBECt4BSB6eQkwZ3gNAPFzESAXaxVg2lwZgDxIHYBBLCHA7gclwEvaKIBioiyAP18wQPIPNACNszeAJUk7QNXPPoC4RkIA8axFgKMBSQD6Q0wAInNPgE6OUgC4lFWAm4VYgDtgWwDhI14A2c9gAHhjYwAY3mWAGT9ogOOFagDjsWyAjMJugFq3cADQj3KAdUt0gNvpdQCaancAUM14gKQReoBFN3uA6T18gE4lfYA67X2AepV+AOUdf4BXhn8At85/APL2f4D+/n8A2uZ/AIuufwAfVn8Ard1+AFNFfgA3jX0AiLV8gHu+ewBQqHqAS3N5gLsfeAD2rXYAVx51AERxcwAop3EAd8BvAKu9bYBFn2sAz2VpgNYRZwDyo2QAvhxigN18XwD5xFyAv/VZgOYPVwAoFFQARANRgADeTYAnpUqAiFlHAPj7Q4BOjUDAaA49ACiAOUBx4zUALTkyQEeCLgCvvyrAVvImwDIbI2A6Ox9gZ1MbALVkF4AgcBOQqHYPAE15C8AOeQdY73YD4/Bz/6gVcfvgX2/3kNFv8yBsc+8gMHvrQB2I56Axm+NAarXfwMHX2wAxA9gArzjUwC950ECkxczA+h7JwB6GxcD3+8GAaYG+gFMXu4CSvreA/Xe0gGdEsYCeJK4AbBmrAJMjqIDTQ6WA5XqigHzJnwBGMJ2A6a+agAdJmAA7/JWAGMqTgCyzkYD+t48ADdmNANEWjAC8cYqAN+qIAKaAh4BiNYaAwAiFAAv7g4CGDIMAbz2CAPiNgYBO/oCAlY6AAOo+gIBfD4AAAgCAANYQgIDWQYCA95KAACUEgYBBlYGAKUaCALAWgwChBoSAvxWFgMdDhoBtkIeAXfuIgDyEigCnKoyAM+6NAHDOjwDkypGAD+OTgGsWlgBrZJiAeMyaAPpNnYBN6J8AzJqigMdkpYCMRaiAYTyrgIhIrgA8abEAtJ20ACHlt4CwPruAiqm+ANMkwkCqr8UALEnJQHDwzECMpNAAkWTUQI0v2ACNBNyAmeLfgLnI4yDyteegRqnroLih73BInvNg9Z33GL6f+42gov94mqUDmKmnB+DLpwvA/6QPYESeE+CZkhfAAYEb4H5oH8AVSCMAzR4nwK3rKgDDrS4AG2QywMYNNkDaqTlAbTc9AJu1QACCI0SARoBHgA/LSgAJA04AZCdRAFY3VAAaMlcA8BZagB3lXIDum1+AszpigMTAZIB+LWeARYBpgIS4a4Cr1W2AM9dvgJq8cQBnhXOAJTF1AGu/doDTL3iAAYJ5AKG1eoBjynuABMB8AEWWfYDwTH4A2ON+ANZaf4DMsX+Apeh/gFP/f4DQ9X+AH8x/AEqCfwBjGH+AhY5+gNPkfYB4G32ApjJ8AJgqewCQA3qA2L14AMNZd4Cp13WA7Dd0gPV6coAzoXCAHqtuADSZbID5a2qA+yNogMzBZQAGRmMASLFggDgEXgCEP1sA3WNYgPpxVYCbalIAgk5PAHYeTABG20iAwoVFgMMeQkAjpz5AwR87gICJN0BI5TPAAjQwAJ52LEAKriiAO9skACj/IMDHGh3gFS8ZgA49FcCvRRHw+EkNkOpKCeCFSQXOzEYBiMFD/WBmQflwvUD1cMhC8WCISO1g/VLpYCZj5aAAeuFAiJjdwLa/2QCE8NWA5SvSQM1yzoArxsqA7CbHgPmVw0A4FMCAiqK8AM5BuQDc8rWAibayAKeNrwAAeawAW3mpgHiPpoAUvKMA5f+gAJpbngDdz5sAU12ZgJgElwBFxpSA6aKSAA+bkIA4r46A4d+MgH4tiwB9mIkAQyGIgC7IhgCWjYWAyXGEgA91g4Col4IAy9mBAKg7gQBmvYAAJl+AAP8ggIAAA4CAMgWAAJQngIAcaoAAvMyAgFhPgQDS8YEA/7OCAK+Vg4CploQArraFAHP1hoCpUogA+c2JAAJni4BeHY0An/COAE/gkIDx65IAAxOVgPhUlwBBsZmARCecAGS2noD7XaGAXx2kAODzpgDF4KkAU+OsAMj6rwBdJrMARmW2gLG2uYDKGb3Ato3AwJcRxICLpMeAq0XLgA70zgDHrtKA5XTWgHZF2oCEH96gFwLi4DXs5QDj3OlgIdPt4PHN8WBUzPW4R835GMrP/V7Z0gE4c9UFgJXWCWA+1Q2gbNAR4B/HFSBZuBlgGqMdgGeGIQBGYSUAvjIpwNn5LICltTBAMWU0wI8HOMDWmzsAICE/AImWQoAy+0WAQk5JAOOOTABCvE8AlNVSgBDaVYD1yFiAhqFbAAxjXgDUDGGANJ5jgIYWZoAsdWiAjLlqgBXjbAA88W4AfONwgFe5coBYcnQAEQ52ABiMd4AO7HgAnC16gG5Qe4A+VHwAyTh9ANb9fQAzo36Atih/AD+Of4Cz038AAvl/ACH+f4AP43+A1Kd/gH5Mf4Ak0X6A5TV+AOl6fYBdoHwAeqZ7gH2NegCvVXmAXP93ANyKdoCL+HQA0EhzABZ8cYDRkm8Afo1tgJxsawC3MGkAXdpmACVqZACs4GGAlT5fAIuEXIA7s1kAXctWAKrNUwDkulAA0JNNgDlZSoDwC0cAyaxDAJw8QMBHvDwArSw5QLGONUA94zFAPSsuwKBnKkBamSaAXsEiIKXgHsAn+BoA4ggXINETExD0GQ/AShwLGNYbB7yXGQPNkRb/kMYT+1A4Evfg6BLzoNkW70ALH+sAfSznQC1A44AYW99AOX7bwIiq18D84NPAiSLQQCBwzICuyshAHzPFwFmqwYBBMb4Atsi6AJNxt4CvLLQA3vqwgOvcrQCi06qAw9+ngA8CpYA9O6KAAIyfgAX1nIDzdpqAahKYgATIlYBVmJOA6YORgEeLj4Dtro2AU++LAOpMioAayIiARmGHgMgYhoDz7oSAEeSDAGb4ggAsLIKAl3+BANTygAAEhoCAQzmAgKUMgAA1AIAA9hOAAONHgADvm4CABBCBAAekgQDRV4KANCuDgP0dhIDuL4WAwmCGAC2wh4DZHYkAbKmKgIFSjACuGI6AgPuPAH/6kQApFZQA90qWgFqbmAC/BZsAiYmdABYmoIC+2qKA06alAKKJqIBvgquAfJCugASzsQA+6bQAWjK4AIWNu4Dm+b6AonbCwNgCxkCknclAHUbNAFj70ABmvNSAVYjYQDJe3OAEPeCA1CPkwKUR6OB7BewgWP7vEDv788Aj+/fAEP37");
+
+ static readonly byte[] StereoSine8Bit
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] StereoSine32Bit
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] StereoUnsignedSine8Bit
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] Mono16BitWAVFile
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] Mono16BitWAVRawSampleData
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] MonoSine8BitTo16BitResult
+ = Convert.FromBase64String(@"AAAABAAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADoAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAiACGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXgBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN8A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCxALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAE0ASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBRAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOYA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC0AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABIADgAKAAYAAgD9APkA9QDxAO0A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABkAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCnAKoArQCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGEAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALMArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwgC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACEAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMYAyQDNANAA1ADYANwA4ADkAOgA7ADvAPMA9wD7AAAABAAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXgBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN4A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCyALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAE0ASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBRAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHoAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOYA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC0AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABWAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABEADgAKAAYAAQD+APkA9QDxAO4A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMcAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABkAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArQCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGEAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALIArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACAAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB3AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKQAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMUAyQDNANAA1ADYANwA4ADkAOgA7ADvAPMA9wD7AP8ABAAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXwBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN8A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCxALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAE0ASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBSAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHIAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOYA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC4AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABWAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABIADQAKAAYAAgD9APkA9QDxAO4A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABgAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArgCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGEAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALMArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACEAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDhAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB3AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMYAyQDNANAA1ADYANwA4ADkAOgA7ADvAPMA9wD7AAAAAwAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAiACGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXwBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN8A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCxALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALcAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAE0ASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ0AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBRAFUAWABaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOcA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC4AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABEADgAKAAYAAgD9APkA9QDxAO0A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABkAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArgCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGEAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALIArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACEAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMUAyQDNANAA1ADYANwA4ADkAOgA7ADvAPMA9wD7AAAABAAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADoAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXwBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN8A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCxALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAoACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALcAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAEwASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBSAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOcA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC4AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABEADgAKAAYAAQD+APkA9QDxAO4A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANEA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABkAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI0AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArQCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGIAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALMArwCsAKkApgCkAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABQAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgQCAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATQBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACAAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKQAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMUAyQDNANAA1ADYANwA4ADkAOgA7ADwAPMA9wD7AP8ABAAIAAwADwATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFsAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAiACGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXgBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN4A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCxALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAEwASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ0AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBSAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOYA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC0AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABIADgAKAAYAAgD9APkA9QDxAO0A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABgAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArgCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGEAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALMArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEgATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACEAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB3AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMYAyQDNANAA1ADYANwA4ADkAOgA7ADvAPMA9wD7AAAABAAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFsAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXgBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN8A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCxALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAE0ASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBSAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOcA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC4AMQA1ADgAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABEADgAKAAYAAgD9APkA9QDxAO4A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABkAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArgCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGEAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALIArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEgATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABQAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgQCAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACAAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowCgAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB3AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMYAyQDNANAA1ADYANwA4ADkAOgA7ADwAPMA9wD8AP8ABAAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAiACGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHQAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXwBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN8A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCyALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAE0ASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBRAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOYA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC0AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABEADgAKAAYAAgD9APkA9QDxAO4A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABkAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArgCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGIAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB1AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALIArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA1wDUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACAAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB3AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMYAyQDNANAA1ADYANwA4ADkAOgA7ADwAPMA9wD7AAAABAAIAAwAEAATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHgAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXwBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN8A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCyALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAEwASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBSAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAcwB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOYA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC0AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABIADgAKAAUAAgD9APkA9QDxAO4A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMYAygDOANEA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABgAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArgCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGIAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB2AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALMArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwgC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIMAgwCCAIEAgQCAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACAAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB3AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMYAyQDNANAA1ADYANwA4ADkAOgA7ADvAPMA9wD7AAAABAAIAAwADwATABcAGwAfACMAJwArAC8AMgA2ADkAPQBBAEQARwBLAE4AUQBUAFcAWgBdAF8AYgBkAGcAaQBrAG4AcABxAHMAdQB2AHgAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB9AH0AfAB7AHkAeAB3AHUAdAByAHAAbgBsAGoAZwBlAGMAYABdAFoAWABVAFIATwBLAEgARQBBAD4AOgA3ADMALwAsACgAJAAgABwAGAAUABAADAAIAAQAAAD8APgA9ADwAOwA6ADlAOEA3QDZANUA0QDOAMoAxgDDAL8AvAC4ALUAsgCvAKwAqQCmAKMAoACeAJsAmQCWAJQAkgCQAI4AjACLAIkAiACGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAggCDAIQAhQCHAIgAiQCLAI0AjwCRAJMAlQCXAJkAnACeAKEApACnAKoArQCwALMAtgC6AL0AwADEAMcAywDPANMA1gDaAN4A4gDmAOoA7gDyAPYA+gD+AAIABgAKAA4AEgAWABoAHgAhACUAKQAtADEANAA4ADsAPwBCAEYASQBMAFAAUwBWAFkAWwBeAGEAYwBmAGgAagBtAG8AcQByAHQAdgB3AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAdwB2AHQAcwBxAG8AbQBrAGgAZgBkAGEAXgBcAFkAVgBTAFAATQBKAEYAQwA/ADwAOAA1ADEALQAqACYAIgAeABoAFgASAA4ACgAGAAIA/gD6APYA8gDuAOoA5gDiAN4A2wDXANMAzwDMAMgAxADBAL0AugC3ALMAsACtAKoApwCkAKEAnwCcAJoAlwCVAJMAkQCPAI0AiwCKAIgAhwCFAIQAgwCCAIIAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCHAIkAigCMAI4AkACSAJQAlgCYAJsAnQCgAKMApQCoAKsArgCxALUAuAC7AL8AwgDGAMkAzQDRANUA2ADcAOAA5ADoAOwA8AD0APgA/AAAAAQACAAMABAAFAAYABwAIAAjACcAKwAvADMANgA6AD0AQQBEAEgASwBOAFEAVABXAFoAXQBgAGIAZQBnAGkAbABuAHAAcgBzAHUAdwB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB8AHwAegB5AHgAdwB1AHMAcgBwAG4AbABqAGcAZQBiAGAAXQBaAFcAVABRAE4ASwBIAEQAQQA+ADoANgAzAC8AKwAnACQAIAAcABgAFAAQAAwACAAEAAAA/AD4APQA8ADsAOgA5ADgANwA2QDVANEAzQDKAMYAwgC/ALwAuAC1ALIArgCrAKgApgCjAKAAnQCbAJgAlgCUAJIAkACOAIwAigCJAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCCAIIAgwCEAIUAhwCIAIoAiwCNAI8AkQCTAJUAlwCaAJwAnwChAKQApwCqAK0AsACzALYAugC9AMEAxADIAMsAzwDTANcA2gDeAOIA5gDqAO4A8gD2APoA/gACAAYACgAOABIAFgAaAB4AIgAmACkALQAxADUAOAA8AD8AQwBGAEkATQBQAFMAVgBZAFwAXgBhAGQAZgBoAGsAbQBvAHEAcwB0AHYAdwB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHcAdgB0AHIAcQBvAG0AawBoAGYAYwBhAF4AXABZAFYAUwBQAE0ASQBGAEMAPwA8ADgANAAxAC0AKQAlACIAHgAaABYAEgAOAAoABgACAP4A+gD2APIA7gDqAOYA4gDeANoA1gDTAM8AywDIAMQAwQC9ALoAtgCzALAArQCqAKcApAChAJ8AnACaAJcAlQCTAJEAjwCNAIsAigCIAIcAhQCEAIMAggCCAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCJAIoAjACOAJAAkgCUAJYAmQCbAJ4AoACjAKYAqQCsAK8AsgC1ALgAvAC/AMMAxgDKAM0A0QDVANkA3QDgAOQA6ADsAPAA9AD4APwAAAAEAAgADAAQABQAGAAcACAAJAAoACsALwAzADcAOgA+AEEARQBIAEsATgBRAFUAVwBaAF0AYABiAGUAZwBqAGwAbgBwAHIAdAB1AHcAeAB5AHsAfAB8AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdQBzAHEAcABuAGwAaQBnAGUAYgBfAF0AWgBXAFQAUQBOAEsARwBEAEEAPQA6ADYAMgAvACsAJwAjAB8AHAAYABQAEAAMAAgABAAAAPwA+AD0APAA7ADoAOQA4ADcANgA1ADRAM0AyQDGAMIAvwC7ALgAtQCxAK4AqwCoAKUAogCgAJ0AmwCYAJYAlACSAJAAjgCMAIoAiQCHAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAggCCAIMAhACGAIcAiACKAIsAjQCPAJEAkwCVAJcAmgCcAJ8AogCkAKcAqgCtALAAtAC3ALoAvgDBAMUAyADMAM8A0wDXANsA3wDjAOcA6gDuAPIA9gD6AP4AAgAGAAoADgASABYAGgAeACIAJgAqAC4AMQA1ADkAPABAAEMARgBKAE0AUABTAFYAWQBcAF8AYQBkAGYAaQBrAG0AbwBxAHMAdAB2AHcAeQB6AHsAfAB9AH4AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeAB3AHYAdAByAHAAbwBsAGoAaABmAGMAYQBeAFsAWABVAFIATwBMAEkARgBCAD8AOwA4ADQAMAAtACkAJQAhAB0AGQAVABIADgAKAAYAAgD+APkA9QDxAO4A6gDmAOIA3gDaANYA0gDPAMsAxwDEAMAAvQC5ALYAswCwAK0AqgCnAKQAoQCeAJwAmQCXAJUAkwCQAI8AjQCLAIkAiACHAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIgAiQCLAIwAjgCQAJIAlACWAJkAmwCeAKAAowCmAKkArACvALIAtQC5ALwAvwDDAMcAygDOANIA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AAEABQAJAA0AEQAVABkAHAAgACQAKAAsADAAMwA3ADoAPgBBAEUASABLAE8AUgBVAFgAWwBdAGAAYwBlAGgAagBsAG4AcAByAHQAdQB3AHgAeQB7AHwAfQB9AH4AfwB/AH8AfwB/AH8AfwB/AH4AfgB9AHwAewB6AHkAeAB2AHUAcwBxAG8AbQBrAGkAZwBkAGIAXwBdAFoAVwBUAFEATgBKAEcARABAAD0AOQA2ADIALgArACcAIwAfABsAFwATAA8ACwAHAAMA/wD7APcA8wDvAOsA5wDjAOAA3ADYANQA0ADNAMkAxQDCAL4AuwC4ALQAsQCuAKsAqAClAKIAoACdAJoAmACWAJMAkQCPAI4AjACKAIkAhwCGAIUAhACDAIIAgQCBAIAAgACAAIAAgACAAIAAgACBAIIAgwCDAIQAhgCHAIgAigCMAI0AjwCRAJMAlQCYAJoAnQCfAKIApQCoAKoArgCxALQAtwC6AL4AwQDFAMgAzADQANQA1wDbAN8A4wDnAOsA7wDzAPcA+wD/AAMABwALAA8AEwAXABsAHwAiACYAKgAuADIANQA5ADwAQABDAEcASgBNAFAAUwBWAFkAXABfAGEAZABmAGkAawBtAG8AcQBzAHUAdgB4AHkAegB7AHwAfQB+AH4AfwB/AH8AfwB/AH8AfwB/AH4AfQB9AHwAewB6AHgAdwB2AHQAcgBwAG4AbABqAGgAZQBjAGAAXgBbAFgAVQBSAE8ATABJAEUAQgA+ADsANwA0ADAALAApACUAIQAdABkAFQARAA0ACQAFAAEA/QD5APUA8QDtAOkA5QDhAN0A2gDWANIAzgDLAMcAwwDAALwAuQC2ALIArwCsAKkApgCjAKEAngCcAJkAlwCUAJIAkACOAI0AiwCJAIgAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIAAgQCBAIIAgwCEAIUAhgCIAIkAiwCMAI4AkACSAJQAlwCZAJsAngChAKMApgCpAKwArwCyALYAuQC8AMAAwwDHAMoAzgDSANYA2QDdAOEA5QDpAO0A8QD1APkA/QABAAUACQANABEAFQAZAB0AIQAlACgALAAwADQANwA7AD4AQgBFAEkATABPAFIAVQBYAFsAXgBgAGMAZQBoAGoAbABuAHAAcgB0AHUAdwB4AHoAewB8AH0AfQB+AH8AfwB/AH8AfwB/AH8AfwB+AH4AfQB8AHsAegB5AHgAdgB1AHMAcQBvAG0AawBpAGcAZABiAF8AXABZAFcAVABRAE0ASgBHAEMAQAA9ADkANQAyAC4AKgAmACMAHwAbABcAEwAPAAsABwADAP8A+wD3APMA7wDrAOcA4wDfANsA2ADUANAAzADJAMUAwQC+ALsAtwC0ALEArgCrAKgApQCiAJ8AnQCaAJgAlQCTAJEAjwCNAIwAigCIAIcAhgCFAIQAgwCCAIEAgQCAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAhwCIAIoAjACNAI8AkQCTAJYAmACaAJ0AnwCiAKUAqACrAK4AsQC0ALcAuwC+AMIAxQDJAMwA0ADUANgA3ADfAOMA5wDrAO8A8wD3APsA/wADAAcACwAPABMAFwAbAB8AIwAnACoALgAyADYAOQA9AEAARABHAEoATgBRAFQAVwBaAFwAXwBiAGQAZwBpAGsAbQBvAHEAcwB1AHYAeAB5AHoAewB8AH0AfgB+AH8AfwB/AH8AfwB/AH8AfwB+AH0AfQB8AHsAegB4AHcAdQB0AHIAcABuAGwAagBoAGUAYwBgAF4AWwBYAFUAUgBPAEwASABFAEIAPgA7ADcAMwAwACwAKAAkACAAHQAZABUAEQANAAkABQABAP0A+QD1APEA7QDpAOUA4QDdANkA1QDSAM4AygDHAMMAwAC8ALkAtQCyAK8ArACpAKYAowChAJ4AmwCZAJcAlACSAJAAjgCMAIsAiQCIAIYAhQCEAIMAggCBAIEAgACAAIAAgACAAIAAgACAAIEAgQCCAIMAhACFAIYAiACJAIsAjQCOAJAAkgCVAJcAmQCcAJ4AoQCkAKYAqQCsAK8AswC2ALkAvQDAAMQAxwDLAM4A0gDWANoA3gDiAOUA6QDtAPEA9QD5AP0AAQAFAAkADQARABUAGQAdACEAJQApACwAMAA0ADgAOwA/AEIARQBJAEwATwBSAFUAWABbAF4AYQBjAGYAaABqAGwAbgBwAHIAdAB2AHcAeAB6AHsAfAB9AH0AfgB/AH8AfwB/AH8AfwB/AH8AfgB+AH0AfAB7AHoAeQB4AHYAdABzAHEAbwBtAGsAaQBmAGQAYQBfAFwAWQBWAFMAUABNAEoARwBDAEAAPAA5ADUAMQAuACoAJgAiAB4AGgAXABMADwALAAcAAwD/APsA9wDzAO8A6wDnAOMA3wDbANcA0wDQAMwAyADFAMEAvgC6ALcAtACwAK0AqgCnAKUAogCfAJwAmgCYAJUAkwCRAI8AjQCLAIoAiACHAIYAhACDAIIAggCBAIAAgACAAIAAgACAAIAAgACBAIEAggCDAIQAhQCGAIcAiQCKAIwAjgCPAJEAlACWAJgAmwCdAKAAogClAKgAqwCuALEAtAC4ALsAvgDCAMYAyQDNANAA1ADYANwA4ADkAOgA7ADwAPMA9wD7");
+
+ static readonly byte[] MonoSine16BitTo8BitResult
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] MonoSine32BitTo24BitResult
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] MonoSine24BitTo32BitResult
+ = Convert.FromBase64String(@"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");
+
+ static readonly byte[] StereoUnsigned8BitToSignedResult
+ = Convert.FromBase64String(@"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");
+ #endregion
+
+ protected override void BeforeRun()
+ {
+ }
+
+ private void Print(string str)
+ {
+ mDebugger.Send(str);
+ Console.WriteLine(str);
+ }
+
+ private void Success(string str, string indent = "")
+ {
+ mDebugger.Send(str);
+
+ Console.ForegroundColor = ConsoleColor.Green;
+ Console.WriteLine(indent + str);
+ Console.ForegroundColor = ConsoleColor.White;
+ }
+
+ protected override void Run()
+ {
+ Print("Cosmos Audio Infrastructure (CAI) tests started.");
+
+ Print("Testing .WAV file decoding...");
+ WaveFileTests();
+ Print(".WAV tests complete.");
+
+ Console.WriteLine();
+
+ Print("Testing audio format conversions...");
+ ConversionTests();
+ Print("Audio format conversion tests complete.");
+
+ Success("CAI tests fully completed!");
+ TestController.Completed();
+ }
+
+ void WaveFileTests()
+ {
+ var memStream = MemoryAudioStream.FromWave(Mono16BitWAVFile);
+
+ Assert.AreEqual(1, memStream.Format.Channels, $"Channel amount parsing (parsed: {memStream.Format.Channels} channels)");
+ Assert.IsTrue(memStream.Format.Signed, "Signed/unsigned parsing");
+ Assert.IsTrue(memStream.Format.BitDepth == AudioBitDepth.Bits16, $"Bit-depth parsing (parsed: ID {(int)memStream.Format.BitDepth})");
+
+ Success("Format check correct!", " ");
+
+ var fullBuffer = new AudioBuffer(AMT_OF_SAMPLES, new SampleFormat(AudioBitDepth.Bits16, 1, true));
+ memStream.Read(fullBuffer);
+ Assert.AreEqual(Mono16BitWAVRawSampleData, fullBuffer.RawData, ".WAV sample data");
+ Success("Data check correct!", " ");
+ }
+
+ void ConversionTests()
+ {
+ // Test no change
+ TestConverting(
+ GetTestBuffer(StereoSine32Bit, AudioBitDepth.Bits32, 2, true),
+ new SampleFormat(AudioBitDepth.Bits32, 2, true),
+ StereoSine32Bit
+ );
+
+ // Test mono -> stereo
+ TestConverting(
+ GetTestBuffer(MonoSine8Bit, AudioBitDepth.Bits8, 1, true),
+ new SampleFormat(AudioBitDepth.Bits8, 2, true),
+ StereoSine8Bit
+ );
+
+ // Test stereo -> mono
+ TestConverting(
+ GetTestBuffer(StereoSine8Bit, AudioBitDepth.Bits8, 2, true),
+ new SampleFormat(AudioBitDepth.Bits8, 1, true),
+ MonoSine8Bit
+ );
+
+ // Test bit-depth upsampling, 8-bit -> 16-bit
+ TestConverting(
+ GetTestBuffer(MonoSine8Bit, AudioBitDepth.Bits8, 1, true),
+ new SampleFormat(AudioBitDepth.Bits16, 1, true),
+ MonoSine8BitTo16BitResult
+ );
+
+ // Test bit-depth downsampling, 16-bit -> 8-bit
+ TestConverting(
+ GetTestBuffer(MonoSine16Bit, AudioBitDepth.Bits16, 1, true),
+ new SampleFormat(AudioBitDepth.Bits8, 1, true),
+ MonoSine16BitTo8BitResult
+ );
+
+ // Test sign changing
+ TestConverting(
+ GetTestBuffer(StereoUnsignedSine8Bit, AudioBitDepth.Bits8, 2, false),
+ new SampleFormat(AudioBitDepth.Bits8, 2, true),
+ StereoUnsigned8BitToSignedResult
+ );
+
+ // Test 24-bit audio support
+ TestConverting(
+ GetTestBuffer(MonoSine24Bit, AudioBitDepth.Bits24, 1, true),
+ new SampleFormat(AudioBitDepth.Bits32, 1, true),
+ MonoSine24BitTo32BitResult
+ );
+
+ TestConverting(
+ GetTestBuffer(MonoSine32Bit, AudioBitDepth.Bits32, 1, true),
+ new SampleFormat(AudioBitDepth.Bits24, 1, true),
+ MonoSine32BitTo24BitResult
+ );
+ }
+
+ static AudioBuffer GetTestBuffer(byte[] array, AudioBitDepth bitDepth, byte channels, bool signed)
+ {
+ var buffer = new AudioBuffer(AMT_OF_SAMPLES, new SampleFormat(bitDepth, channels, signed));
+ MemoryOperations.Copy(buffer.RawData, array);
+ return buffer;
+ }
+
+ static string ByteArrayToString(byte[] bytes)
+ {
+ string s = "0x";
+ for (int i = 0; i < 16; i++)
+ {
+ s += $"{bytes[i]:X2}";
+ }
+
+ return s;
+ }
+
+ unsafe void TestConverting(AudioBuffer from, SampleFormat to, byte[] shouldBe)
+ {
+ Console.ForegroundColor = ConsoleColor.DarkGray;
+ Console.WriteLine("Converting " + from.Format.ToString() + " -> " + to.ToString());
+
+ var convertBuffer = new AudioBuffer(from.Size, to);
+ var writer = new AudioBufferWriter(convertBuffer, new SampleFormat(AudioBitDepth.Bits32, from.Format.Channels, true));
+ var reader = new AudioBufferReader(from);
+
+ int[] normalized = new int[from.Format.Channels];
+
+ fixed(int* normalizedPtr = normalized)
+ {
+ byte* normBytePtr = (byte*)normalizedPtr;
+ for (int i = 0; i < from.Size; i++)
+ {
+ for (int channel = 0; channel < from.Format.Channels; channel++)
+ {
+ normalized[channel] = reader.ReadChannelInt32(i, channel);
+ }
+
+ writer.Write(normBytePtr, i);
+ }
+ }
+
+ Console.WriteLine($"Converted: {ByteArrayToString(convertBuffer.RawData)}");
+ Console.WriteLine($"Expected: {ByteArrayToString(shouldBe)}");
+
+ Assert.AreEqual(shouldBe, convertBuffer.RawData, $"Conversion from format " + from.Format.ToString() + " to " + to.ToString());
+
+ Success("Data check correct!", " ");
+ Console.WriteLine();
+ }
+ }
+}
diff --git a/Tests/Kernels/AudioTests/packages.lock.json b/Tests/Kernels/AudioTests/packages.lock.json
new file mode 100644
index 0000000000..e81a7756fb
--- /dev/null
+++ b/Tests/Kernels/AudioTests/packages.lock.json
@@ -0,0 +1,2729 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
+ "dependencies": {
+ "System.ComponentModel": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Collections.Specialized": "4.0.1",
+ "System.ComponentModel": "4.0.1",
+ "System.ComponentModel.Primitives": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XPath": "4.0.1",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bcl": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testadapter": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.TestRunner.Core": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ },
+ "net6.0/win-x86": {
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.Microsoft.Win32.Primitives": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "runtime.any.System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "23g6rqftKmovn2cLeGsuHUYm0FD7pdutb0uQMJpZ3qTvq+zHkgmt6J65VtRry4WDGYlmkMa4xDACtaQ94alNag==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "runtime.any.System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "S/GPBmfPBB48ZghLxdDR7kDAJVAqgAuThyDJho3OLP5OS4tWD2ydyL8LKm8lhiBxce10OKe9X2zZ6DUjAqEbPg=="
+ },
+ "runtime.any.System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1lpifymjGDzoYIaam6/Hyqf8GhBI3xXYLK2TgEvTtuZMorG3Kb9QnMTIKhLjJYXIiu1JvxjngHvtVFQQlpQ3HQ=="
+ },
+ "runtime.any.System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sMDBnad4rp4t7GY442Jux0MCUuKL4otn5BK6Ni0ARTXTSpRNBzZ7hpMfKSvnVSED5kYJm96YOWsqV0JH0d2uuw=="
+ },
+ "runtime.any.System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "M1r+760j1CNA6M/ZaW6KX8gOS8nxPRqloqDcJYVidRG566Ykwcs29AweZs2JF+nMOCgWDiMfPSTMfvwOI9F77w=="
+ },
+ "runtime.any.System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ=="
+ },
+ "runtime.any.System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hLC3A3rI8jipR5d9k7+f0MgRCW6texsAp0MWkN/ci18FMtQ9KH7E2vDn/DH2LkxsszlpJpOn9qy6Z6/69rH6eQ=="
+ },
+ "runtime.any.System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cPhT+Vqu52+cQQrDai/V91gubXUnDKNRvlBnH+hOgtGyHdC17aQIU64EaehwAQymd7kJA5rSrVRNfDYrbhnzyA=="
+ },
+ "runtime.any.System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Nrm1p3armp6TTf2xuvaa+jGTTmncALWFq22CpmwRvhDf6dE9ZmH40EbOswD4GnFLrMRS0Ki6Kx5aUPmKK/hZBg=="
+ },
+ "runtime.any.System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Lxb89SMvf8w9p9+keBLyL6H6x/TEmc6QVsIIA0T36IuyOY3kNvIdyGddA2qt35cRamzxF8K5p0Opq4G4HjNbhQ=="
+ },
+ "runtime.any.System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "runtime.any.System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GG84X6vufoEzqx8PbeBKheE4srOhimv+yLtGb/JkR3Y2FmoqmueLNFU4Xx8Y67plFpltQSdK74x0qlEhIpv/CQ=="
+ },
+ "runtime.any.System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw=="
+ },
+ "runtime.any.System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+ihI5VaXFCMVPJNstG4O4eo1CfbrByLxRrQQTqOTp1ttK0kUKDqOdBSTaCB2IBk/QtjDrs6+x4xuezyMXdm0HQ=="
+ },
+ "runtime.any.System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NLrxmLsfRrOuVqPWG+2lrQZnE53MLVeo+w9c54EV+TUo4c8rILpsDXfY8pPiOy9kHpUHHP07ugKmtsU3vVW5Jg=="
+ },
+ "runtime.any.System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OhBAVBQG5kFj1S+hCEQ3TUHBAEtZ3fbEMgZMRNdN8A0Pj4x+5nTELEqL59DU0TjKVE6II3dqKw4Dklb3szT65w=="
+ },
+ "runtime.any.System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "w4ehZJ+AwXYmGwYu+rMvym6RvMaRiUEQR1u6dwcyuKHxz8Heu/mO9AG1MquEgTyucnhv3M43X0iKpDOoN17C0w=="
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "runtime.win.Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "runtime.win.System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RRACWygml5dnmfgC1SW6tLGsFgwsUAKFtvhdyHnIEz4EhWyrd7pacDdY95CacQJy7BMXRDRCejC9aCRC0Y1sQA==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hHHP0WCStene2jjeYcuDkETozUYF/3sHVRHAEOgS3L15hlip24ssqCTnJC28Z03Wpo078oMcJd0H4egD2aJI8g=="
+ },
+ "runtime.win.System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z37zcSCpXuGCYtFbqYO0TwOVXxS2d+BXgSoDFZmRg8BC4Cuy54edjyIvhhcfCrDQA9nl+EPFTgHN54dRAK7mNA==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lkXXykakvXUU+Zq2j0pC6EO20lEhijjqMc01XXpp1CJN+DeCwl3nsj4t5Xbpz3kA7yQyTqw6d9SyIzsyLsV3zA==",
+ "dependencies": {
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FK/2gX6MmuLIKNCGsV59Fe4IYrLrI5n9pQ1jh477wiivEM/NCXDT2dRetH5FSfY0bQ+VgTLcS3zcmjQ8my3nxQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.NameResolution": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RkgHVhUPvzZxuUubiZe8yr/6CypRVXj0VBzaR8hsqQ8f+rUo7e4PWrHTLOCjd8fBMGWCrY//fi7Ku3qXD7oHRw==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Collections": "4.3.0"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.win.System.Console": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Diagnostics.Debug": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tools": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tracing": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization.Calendars": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.any.System.IO": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.IO.FileSystem": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.NameResolution": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.win.System.Net.Primitives": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.Net.Sockets": "4.3.0"
+ }
+ },
+ "System.Private.Uri": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I4SwANiUGho1esj4V4oSlPllXjzCZDE+5XXso2P03LW2vOda2Enzh8DWOxwN6hnrJyp314c7KuVu31QYhRzOGg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Extensions": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Primitives": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Resources.ResourceManager": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.any.System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.any.System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.any.System.Text.Encoding.Extensions": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Timer": "4.3.0"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Kernels/BoxingTests/BoxingTests.csproj b/Tests/Kernels/BoxingTests/BoxingTests.csproj
index b0e862e6fb..50fbe61be4 100644
--- a/Tests/Kernels/BoxingTests/BoxingTests.csproj
+++ b/Tests/Kernels/BoxingTests/BoxingTests.csproj
@@ -1,12 +1,13 @@
- netcoreapp2.0
+ net6.0
+ Debug;Release;TEST
-
+
diff --git a/Tests/Kernels/BoxingTests/Kernel.cs b/Tests/Kernels/BoxingTests/Kernel.cs
index 3db74a995f..45a74ce9fa 100644
--- a/Tests/Kernels/BoxingTests/Kernel.cs
+++ b/Tests/Kernels/BoxingTests/Kernel.cs
@@ -1,6 +1,7 @@
using System;
using System.Drawing;
-
+using System.Text;
+using Cosmos.Debug.Kernel;
using Cosmos.TestRunner;
using Sys = Cosmos.System;
@@ -18,6 +19,7 @@ protected override void Run()
TestBoxingChar();
TestBoxingInt32();
TestBoxingColorToString();
+ TestBoxingStruct();
TestController.Completed();
}
@@ -26,17 +28,17 @@ private void TestBoxingChar()
{
object xChar = 'c';
- Assert.IsTrue(xChar.ToString() == "c", "Char.ToString on boxed Char doesn't work!");
+ Assert.AreEqual("c", xChar.ToString(), "Char.ToString on boxed Char doesn't work!");
// 'c' == 0x63, and the hash code is ('c' | ('c' << 16));
- Assert.IsTrue(xChar.GetHashCode() == 0x00630063, "Char.GetHashCode on boxed Char doesn't work!");
+ Assert.AreEqual(0x00630063, xChar.GetHashCode(), "Char.GetHashCode on boxed Char doesn't work!");
}
private void TestBoxingInt32()
{
object xNumber = 42;
- Assert.IsTrue(xNumber.ToString() == "42", "Int32.ToString on boxed Int32 doesn't work!");
- Assert.IsTrue(xNumber.GetHashCode() == 42, "Int32.GetHashCode on boxed Int32 doesn't work!");
+ Assert.AreEqual("42", xNumber.ToString(), "Int32.ToString on boxed Int32 doesn't work!");
+ Assert.AreEqual(42, xNumber.GetHashCode(), "Int32.GetHashCode on boxed Int32 doesn't work!");
Assert.IsTrue(xNumber.Equals(42), "Int32.Equals on boxed int doesn't work!");
Assert.IsFalse(xNumber.Equals(5), "Int32.Equals on boxed int doesn't work!");
@@ -64,5 +66,28 @@ private void TestBoxingColorToString()
object xColor = Color.Blue;
Assert.IsTrue(xColor.ToString() == "Color [Blue]", "Color.ToString doesn't work on boxed Color!");
}
+
+
+ // Taken from https://github.com/CosmosOS/Cosmos/issues/1082
+ private void TestBoxingStruct()
+ {
+ UTF8Encoding encoding = new UTF8Encoding();
+ mDebugger.Send("Testing boxing on structs!");
+ object xValBoxed = new Values("UTF-8", encoding);
+ bool condition = xValBoxed.Equals(xValBoxed);
+ Assert.IsTrue(condition, "Equality works for boxed structs");
+ }
+ }
+
+ struct Values
+ {
+ public string desc;
+ public Encoding encoding;
+
+ public Values(string desc, Encoding encoding)
+ {
+ this.desc = desc;
+ this.encoding = encoding;
+ }
}
}
diff --git a/Tests/Kernels/BoxingTests/packages.lock.json b/Tests/Kernels/BoxingTests/packages.lock.json
new file mode 100644
index 0000000000..b51ac8055e
--- /dev/null
+++ b/Tests/Kernels/BoxingTests/packages.lock.json
@@ -0,0 +1,2716 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
+ "dependencies": {
+ "System.ComponentModel": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Collections.Specialized": "4.0.1",
+ "System.ComponentModel": "4.0.1",
+ "System.ComponentModel.Primitives": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XPath": "4.0.1",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testadapter": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.TestRunner.Core": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ },
+ "net6.0/win-x86": {
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.Microsoft.Win32.Primitives": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "runtime.any.System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "23g6rqftKmovn2cLeGsuHUYm0FD7pdutb0uQMJpZ3qTvq+zHkgmt6J65VtRry4WDGYlmkMa4xDACtaQ94alNag==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "runtime.any.System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "S/GPBmfPBB48ZghLxdDR7kDAJVAqgAuThyDJho3OLP5OS4tWD2ydyL8LKm8lhiBxce10OKe9X2zZ6DUjAqEbPg=="
+ },
+ "runtime.any.System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1lpifymjGDzoYIaam6/Hyqf8GhBI3xXYLK2TgEvTtuZMorG3Kb9QnMTIKhLjJYXIiu1JvxjngHvtVFQQlpQ3HQ=="
+ },
+ "runtime.any.System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sMDBnad4rp4t7GY442Jux0MCUuKL4otn5BK6Ni0ARTXTSpRNBzZ7hpMfKSvnVSED5kYJm96YOWsqV0JH0d2uuw=="
+ },
+ "runtime.any.System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "M1r+760j1CNA6M/ZaW6KX8gOS8nxPRqloqDcJYVidRG566Ykwcs29AweZs2JF+nMOCgWDiMfPSTMfvwOI9F77w=="
+ },
+ "runtime.any.System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ=="
+ },
+ "runtime.any.System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hLC3A3rI8jipR5d9k7+f0MgRCW6texsAp0MWkN/ci18FMtQ9KH7E2vDn/DH2LkxsszlpJpOn9qy6Z6/69rH6eQ=="
+ },
+ "runtime.any.System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cPhT+Vqu52+cQQrDai/V91gubXUnDKNRvlBnH+hOgtGyHdC17aQIU64EaehwAQymd7kJA5rSrVRNfDYrbhnzyA=="
+ },
+ "runtime.any.System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Nrm1p3armp6TTf2xuvaa+jGTTmncALWFq22CpmwRvhDf6dE9ZmH40EbOswD4GnFLrMRS0Ki6Kx5aUPmKK/hZBg=="
+ },
+ "runtime.any.System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Lxb89SMvf8w9p9+keBLyL6H6x/TEmc6QVsIIA0T36IuyOY3kNvIdyGddA2qt35cRamzxF8K5p0Opq4G4HjNbhQ=="
+ },
+ "runtime.any.System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "runtime.any.System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GG84X6vufoEzqx8PbeBKheE4srOhimv+yLtGb/JkR3Y2FmoqmueLNFU4Xx8Y67plFpltQSdK74x0qlEhIpv/CQ=="
+ },
+ "runtime.any.System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw=="
+ },
+ "runtime.any.System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+ihI5VaXFCMVPJNstG4O4eo1CfbrByLxRrQQTqOTp1ttK0kUKDqOdBSTaCB2IBk/QtjDrs6+x4xuezyMXdm0HQ=="
+ },
+ "runtime.any.System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NLrxmLsfRrOuVqPWG+2lrQZnE53MLVeo+w9c54EV+TUo4c8rILpsDXfY8pPiOy9kHpUHHP07ugKmtsU3vVW5Jg=="
+ },
+ "runtime.any.System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OhBAVBQG5kFj1S+hCEQ3TUHBAEtZ3fbEMgZMRNdN8A0Pj4x+5nTELEqL59DU0TjKVE6II3dqKw4Dklb3szT65w=="
+ },
+ "runtime.any.System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "w4ehZJ+AwXYmGwYu+rMvym6RvMaRiUEQR1u6dwcyuKHxz8Heu/mO9AG1MquEgTyucnhv3M43X0iKpDOoN17C0w=="
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "runtime.win.Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "runtime.win.System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RRACWygml5dnmfgC1SW6tLGsFgwsUAKFtvhdyHnIEz4EhWyrd7pacDdY95CacQJy7BMXRDRCejC9aCRC0Y1sQA==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hHHP0WCStene2jjeYcuDkETozUYF/3sHVRHAEOgS3L15hlip24ssqCTnJC28Z03Wpo078oMcJd0H4egD2aJI8g=="
+ },
+ "runtime.win.System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z37zcSCpXuGCYtFbqYO0TwOVXxS2d+BXgSoDFZmRg8BC4Cuy54edjyIvhhcfCrDQA9nl+EPFTgHN54dRAK7mNA==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lkXXykakvXUU+Zq2j0pC6EO20lEhijjqMc01XXpp1CJN+DeCwl3nsj4t5Xbpz3kA7yQyTqw6d9SyIzsyLsV3zA==",
+ "dependencies": {
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FK/2gX6MmuLIKNCGsV59Fe4IYrLrI5n9pQ1jh477wiivEM/NCXDT2dRetH5FSfY0bQ+VgTLcS3zcmjQ8my3nxQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.NameResolution": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RkgHVhUPvzZxuUubiZe8yr/6CypRVXj0VBzaR8hsqQ8f+rUo7e4PWrHTLOCjd8fBMGWCrY//fi7Ku3qXD7oHRw==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Collections": "4.3.0"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.win.System.Console": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Diagnostics.Debug": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tools": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tracing": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization.Calendars": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.any.System.IO": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.IO.FileSystem": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.NameResolution": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.win.System.Net.Primitives": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.Net.Sockets": "4.3.0"
+ }
+ },
+ "System.Private.Uri": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I4SwANiUGho1esj4V4oSlPllXjzCZDE+5XXso2P03LW2vOda2Enzh8DWOxwN6hnrJyp314c7KuVu31QYhRzOGg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Extensions": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Primitives": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Resources.ResourceManager": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.any.System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.any.System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.any.System.Text.Encoding.Extensions": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Timer": "4.3.0"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Kernels/ConsoleTest/ConsoleTest.csproj b/Tests/Kernels/ConsoleTest/ConsoleTest.csproj
index b0e862e6fb..85c17d91ba 100644
--- a/Tests/Kernels/ConsoleTest/ConsoleTest.csproj
+++ b/Tests/Kernels/ConsoleTest/ConsoleTest.csproj
@@ -1,12 +1,15 @@
- netcoreapp2.0
+ net6.0
+ Debug;Release;TEST
+ True
+
diff --git a/Tests/Kernels/ConsoleTest/Kernel.cs b/Tests/Kernels/ConsoleTest/Kernel.cs
index f3b2d49fba..776f0c465f 100644
--- a/Tests/Kernels/ConsoleTest/Kernel.cs
+++ b/Tests/Kernels/ConsoleTest/Kernel.cs
@@ -5,6 +5,7 @@
using System.Text;
using Cosmos.System.ExtendedASCII;
using Cosmos.System.ScanMaps;
+using System.IO;
/*
* Please note this is an atypical TestRunner:
@@ -32,92 +33,12 @@ protected override void Run()
{
try
{
- Console.Clear();
-
- Console.WriteLine("Testing Console Enconding");
-
- Console.WriteLine($"ConsoleInputEncoding {Console.InputEncoding.BodyName}");
-
- Console.WriteLine($"ConsoleOutputEncoding {Console.OutputEncoding.BodyName}");
-
- /* Let's change it in the legacy IBM437 encoding */
- Console.InputEncoding = Encoding.GetEncoding(437);
- Console.OutputEncoding = Encoding.GetEncoding(437);
-
- Console.WriteLine($"ConsoleInputEncoding in now {Console.InputEncoding.BodyName}");
- Console.WriteLine($"ConsoleOutputEncoding in now {Console.OutputEncoding.BodyName}");
-
- Console.WriteLine("Let's write some accented characters: èòàùì");
- Console.WriteLine("Let's print all the CP437 codepage");
-
- Sys.Global.mDebugger.SendInternal("");
-
- Console.Write("Ç ü é â ä à å ç ê ë è ï î ì Ä Å\n" +
- "É æ Æ ô ö ò û ù ÿ Ö Ü ¢ £ ¥ ₧ ƒ\n" +
- "á í ó ú ñ Ñ ª º ¿ ⌐ ¬ ½ ¼ ¡ « »\n" +
- "░ ▒ ▓ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐\n" +
- "└ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧\n" +
- "╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀\n" +
- "α ß Γ π Σ σ µ τ Φ Θ Ω δ ∞ φ ε ∩\n" +
- "≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■ \u00A0\n");
- //Console.WriteLine();
-
- Console.WriteLine("The following line should appear as a continuos line of '─'");
- Console.WriteLine("──────────────────────────────────────────────────────────");
-
- Console.ReadKey();
- Console.WriteLine("The next line should be empty");
- Console.WriteLine();
- Console.WriteLine("True follows...");
- Console.WriteLine(true);
- Console.WriteLine("The letter 'A'");
- Console.WriteLine('A');
- char[] charBuffer = new char[] { 'A', 'B', 'C' };
- Console.WriteLine("Then ABC");
- Console.WriteLine(charBuffer);
- Console.WriteLine("...42.42");
- Console.WriteLine(42.42);
- Console.WriteLine("...42.42 (float)");
- Console.WriteLine(42.42f);
- Console.WriteLine("...42");
- Console.WriteLine(42);
- Console.WriteLine("...42 (long)");
- Console.WriteLine(42L);
- Console.ReadKey();
- object test = "Test";
- Console.WriteLine("...Test (as object)");
- Console.WriteLine(test);
- Console.WriteLine("The next line should be empty (null object)");
- object s = null;
- Console.WriteLine(s);
- Console.WriteLine("...42 (uint)");
- Console.WriteLine(42U);
- Console.WriteLine("...42 (ulong)");
- Console.WriteLine(42UL);
- Console.WriteLine("...BC");
- Console.WriteLine(charBuffer, 1, 2);
-
- Console.WriteLine("Test Format arg0 {0}", "test");
- Console.WriteLine("Test Format arg0 {0} arg1 {1}", "test", 42);
- Console.WriteLine("Test Format arg0 {0} arg1 {1} arg2 {2}", "test", 42, 69.69);
- Console.WriteLine("Test Format arg0 {0} arg1 {1} arg2 {2} arg3 {3}", "test", 42, 69.69, 25000L);
- /* String.Format does not support x or X and probably neither the rest of "special" formatting */
- //Console.WriteLine("Test Format (hex) {0:x}", 42);
-
- Console.WriteLine("Layout switched to DE...");
- SetKeyboardScanMap(new DE_Standard());
- Console.WriteLine("Write in germanic now I'll read it with Console.ReadLine()...");
-
- var str = Console.ReadLine();
- Console.WriteLine($"You have written: {str}");
-
- Console.WriteLine("Write in germanic now I'll read it with Console.ReadKey()...");
- var character = Console.ReadKey();
- Console.WriteLine($"You have written: {character.KeyChar}");
-
- Console.WriteLine("Press any key to terminate this test...");
-
- Console.ReadKey();
+ TestStandardInOutError();
+
+ TestConsoleEncoding();
+
+ TestVGAResolutions();
+
TestController.Completed();
}
catch (Exception e)
@@ -125,7 +46,257 @@ protected override void Run()
mDebugger.Send("Exception occurred: " + e.Message);
mDebugger.Send(e.Message);
TestController.Failed();
- }
+ }
+ }
+
+ public void TestConsoleEncoding()
+ {
+ Console.Clear();
+
+ Console.WriteLine("Testing Console Enconding");
+
+ Console.WriteLine($"ConsoleInputEncoding {Console.InputEncoding.BodyName}");
+
+ Console.WriteLine($"ConsoleOutputEncoding {Console.OutputEncoding.BodyName}");
+
+ /* Let's change it in the legacy IBM437 encoding */
+ Console.InputEncoding = Cosmos.System.ExtendedASCII.CosmosEncodingProvider.Instance.GetEncoding(437);
+ Console.OutputEncoding = Cosmos.System.ExtendedASCII.CosmosEncodingProvider.Instance.GetEncoding(437);
+
+ Console.WriteLine($"ConsoleInputEncoding in now {Console.InputEncoding.BodyName}");
+ Console.WriteLine($"ConsoleOutputEncoding in now {Console.OutputEncoding.BodyName}");
+
+ Console.WriteLine("Let's write some accented characters: èòàùì");
+ Console.WriteLine("Let's print all the CP437 codepage");
+
+ Sys.Global.Debugger.SendInternal("");
+
+ Console.Write("Ç ü é â ä à å ç ê ë è ï î ì Ä Å\n" +
+ "É æ Æ ô ö ò û ù ÿ Ö Ü ¢ £ ¥ ₧ ƒ\n" +
+ "á í ó ú ñ Ñ ª º ¿ ⌐ ¬ ½ ¼ ¡ « »\n" +
+ "░ ▒ ▓ │ ┤ ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛ ┐\n" +
+ "└ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧\n" +
+ "╨ ╤ ╥ ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄ ▌ ▐ ▀\n" +
+ "α ß Γ π Σ σ µ τ Φ Θ Ω δ ∞ φ ε ∩\n" +
+ "≡ ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙ · √ ⁿ ² ■ \u00A0\n");
+ //Console.WriteLine();
+
+ Console.WriteLine("The following line should appear as a continuos line of '─'");
+ Console.WriteLine("──────────────────────────────────────────────────────────");
+
+ Console.ReadKey();
+ Console.WriteLine("The next line should be empty");
+ Console.WriteLine();
+ Console.WriteLine("True follows...");
+ Console.WriteLine(true);
+ Console.WriteLine("The letter 'A'");
+ Console.WriteLine('A');
+ char[] charBuffer = new char[] { 'A', 'B', 'C' };
+ Console.WriteLine("Then ABC");
+ Console.WriteLine(charBuffer);
+ Console.WriteLine("...42.42");
+ Console.WriteLine(42.42);
+ Console.WriteLine("...42.42 (float)");
+ Console.WriteLine(42.42f);
+ Console.WriteLine("...42");
+ Console.WriteLine(42);
+ Console.WriteLine("...42 (long)");
+ Console.WriteLine(42L);
+ Console.ReadKey();
+ object test = "Test";
+ Console.WriteLine("...Test (as object)");
+ Console.WriteLine(test);
+ Console.WriteLine("The next line should be empty (null object)");
+ object s = null;
+ Console.WriteLine(s);
+ Console.WriteLine("...42 (uint)");
+ Console.WriteLine(42U);
+ Console.WriteLine("...42 (ulong)");
+ Console.WriteLine(42UL);
+ Console.WriteLine("...BC");
+ Console.WriteLine(charBuffer, 1, 2);
+
+ Console.WriteLine("Test Format arg0 {0}", "test");
+ Console.WriteLine("Test Format arg0 {0} arg1 {1}", "test", 42);
+ Console.WriteLine("Test Format arg0 {0} arg1 {1} arg2 {2}", "test", 42, 69.69);
+ Console.WriteLine("Test Format arg0 {0} arg1 {1} arg2 {2} arg3 {3}", "test", 42, 69.69, 25000L);
+ /* String.Format does not support x or X and probably neither the rest of "special" formatting */
+ //Console.WriteLine("Test Format (hex) {0:x}", 42);
+
+ Console.WriteLine("Layout switched to DE...");
+ Sys.KeyboardManager.SetKeyLayout(new DEStandardLayout());
+ Console.WriteLine("Write in german now I'll read it with Console.ReadLine()...");
+
+ var str = Console.ReadLine();
+ Console.WriteLine($"You have written: {str}");
+
+ Console.WriteLine("Write in german now I'll read it with Console.ReadKey()...");
+ var character = Console.ReadKey();
+ Console.WriteLine($"You have written: {character.KeyChar}");
+
+ Console.WriteLine("Press any key to terminate this test...");
+
+ Console.ReadKey();
+
+
+ }
+
+ public void TestVGAResolutions()
+ {
+ Console.SetWindowSize(40, 25);
+ TestVariousConsoleFunctions();
+ Console.SetWindowSize(40, 50);
+ TestVariousConsoleFunctions();
+ Console.SetWindowSize(80, 25);
+ TestVariousConsoleFunctions();
+ Console.SetWindowSize(80, 50);
+ TestVariousConsoleFunctions();
+ Console.SetWindowSize(90, 30);
+ TestVariousConsoleFunctions();
+ Console.SetWindowSize(90, 60);
+ TestVariousConsoleFunctions();
+ }
+
+ public void TestVariousConsoleFunctions()
+ {
+ Console.Clear();
+ Console.WriteLine("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
+ Console.Write("Reading input: ");
+ Console.ReadLine();
+ Console.ForegroundColor = ConsoleColor.Green; Console.BackgroundColor = ConsoleColor.Blue;
+ Console.WriteLine("Colored text :)");
+ Console.ResetColor();
+ Console.Write("Press enter to continue to the next step: "); Console.ReadLine();
+ Console.WriteLine("Press a key to move the cursor up");
+ Console.ReadKey();
+ var cursor = Console.GetCursorPosition();
+ Console.SetCursorPosition(cursor.Left, cursor.Top - 1);
+ }
+
+ public void TestStandardInOutError()
+ {
+ TestInstantiation();
+ TestRedirection();
+
+ Console.WriteLine("Let's put the StdOutput on a variable.");
+ Console.WriteLine("Hello World from Console!");
+ var stdout = Console.Out;
+ stdout.WriteLine("Hello World from variable!");
+
+ Console.Error.WriteLine("Hellow World from Console.Error!");
+ var stderr = Console.Error;
+ Console.WriteLine("Now the StdError");
+ stderr.WriteLine("Hellow World from stderr variable!");
+
+ Console.WriteLine("Now let's test reading.");
+ var line = Console.ReadLine();
+ Console.WriteLine($"You wrote {line}");
+ var stdin = Console.In;
+
+ Console.Write("Type Something Again: ");
+ line = stdin.ReadLine();
+ Console.WriteLine($"You wrote {line}");
+ }
+
+ public void TestInstantiation()
+ {
+ TextWriter stdout, stderror;
+ TextReader stdin;
+ stdout = new StreamWriter(
+ stream: Console.OpenStandardOutput(),
+ encoding: Console.OutputEncoding)
+ { AutoFlush = true };
+ stderror = new StreamWriter(
+ stream: Console.OpenStandardError(),
+ encoding: Console.OutputEncoding)
+ { AutoFlush = true };
+
+ stdin = new StreamReader(
+ stream: Console.OpenStandardInput(),
+ encoding: Console.InputEncoding
+ );
+
+ stdout.WriteLine("Hellow this test is to show that you can make standalone reference to StdIn/Out/Error");
+ stderror.WriteLine("This two messages were writed from a standalone StdOut");
+ stderror.WriteLine("This is from StdError");
+
+ stdout.WriteLine("Now let's try reading from a standalone StdIn variable");
+ string line = stdin.ReadLine();
+ stdout.WriteLine($"You wrote {line}");
+ }
+ public void TestRedirection()
+ {
+ TextWriter redStdOut, redStdError;
+ TextReader redStdIn;
+ string expectedValue = "This is a redirected string";
+
+ Assert.IsFalse(Console.IsInputRedirected, "Standard Input was wrongly detected as redirected");
+ Assert.IsFalse(Console.IsErrorRedirected, "Standard Error was wrongly detected as redirected");
+ Assert.IsFalse(Console.IsOutputRedirected, "Standard Output was wrongly detected as redirected");
+
+ redStdOut = new StringWriter();
+ redStdError = StreamWriter.Null; // Empty Stream Writer.
+ redStdIn = new StringReader(expectedValue);
+
+ Console.SetIn(redStdIn);
+ Console.SetOut(redStdOut);
+ Console.SetError(redStdError);
+
+ Assert.IsTrue(Console.IsInputRedirected, "Standard Input was wrongly detected as NOT redirected");
+ Assert.IsTrue(Console.IsErrorRedirected, "Standard Error was wrongly detected as NOT redirected");
+ Assert.IsTrue(Console.IsOutputRedirected, "Standard Output was wrongly detected as NOT redirected");
+
+ // Now let's test that we can use the redirected versions.
+ Console.WriteLine("Hello world to redirected Out!");
+ Console.Error.WriteLine("Hellow world to redirected Error!");
+
+ string line = Console.ReadLine();
+
+ Assert.IsTrue(line == expectedValue, "Console.ReadLine brought unexpected Result.");
+
+ // Now Let's return to the true values;
+
+ // For StdOut and StdIn you can make a StreamWriter on your own or use the method on the System.Cosmos.Global.Console public field;
+ Console.SetOut(new StreamWriter(
+ stream: Console.OpenStandardOutput(),
+ encoding: Console.OutputEncoding)
+ { AutoFlush = true } // if you want the content to be writed inmediatly on the console, then AutoFlush should be true.
+ );
+ Assert.IsFalse(Console.IsOutputRedirected, "Standard Output was wrongly detected as redirected");
+ Console.SetOut(
+ Sys.Global.Console.CreateOutputWriter(
+ Console.OpenStandardOutput())
+ );
+ Assert.IsFalse(Console.IsOutputRedirected, "Standard Output was wrongly detected as redirected");
+
+ // Now with Error
+ Console.SetError(new StreamWriter(
+ stream: Console.OpenStandardError(),
+ encoding: Console.OutputEncoding)
+ { AutoFlush = true } // if you want the content to be writed inmediatly on the console, then AutoFlush should be true.
+ );
+ Assert.IsFalse(Console.IsErrorRedirected, "Standard Error was wrongly detected as redirected");
+ Console.SetError(
+ Sys.Global.Console.CreateOutputWriter(
+ Console.OpenStandardError())
+ );
+ Assert.IsFalse(Console.IsErrorRedirected, "Standard Error was wrongly detected as redirected");
+
+ // Different to Out and Error StdIn is never overrided by the methods SetIn and SetOut
+ // , SetIn will be considered as redirected if you use StreamReader (even if the stream is the console Stream)
+ // This is because the ReadKey comes from the internal implementation.
+ Console.SetIn(new StreamReader(
+ stream: Console.OpenStandardInput(),
+ encoding: Console.InputEncoding
+ ));
+ Assert.IsTrue(Console.IsInputRedirected, "Standard Input was wrongly detected as NOT redirected");
+
+ // If you want to get the orginal TextReader, you can do it by using this method.
+ Console.SetIn(Sys.Global.Console.GetOrCreateReader()); // Get or create the original Console Reader.
+ Assert.IsFalse(Console.IsInputRedirected, "Standard Input was wrongly detected as redirected");
+
+ // The field can actually be set to null, but it would be filled againg the next time that a read method from the console is called.
+ Sys.Global.Console.ResetInternalStdIn(); // This method is called when InputEncoding is changed.
}
}
-}
+}
\ No newline at end of file
diff --git a/Tests/Kernels/ConsoleTest/packages.lock.json b/Tests/Kernels/ConsoleTest/packages.lock.json
new file mode 100644
index 0000000000..b51ac8055e
--- /dev/null
+++ b/Tests/Kernels/ConsoleTest/packages.lock.json
@@ -0,0 +1,2716 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
+ "dependencies": {
+ "System.ComponentModel": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Collections.Specialized": "4.0.1",
+ "System.ComponentModel": "4.0.1",
+ "System.ComponentModel.Primitives": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XPath": "4.0.1",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testadapter": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.TestRunner.Core": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ },
+ "net6.0/win-x86": {
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.Microsoft.Win32.Primitives": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "runtime.any.System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "23g6rqftKmovn2cLeGsuHUYm0FD7pdutb0uQMJpZ3qTvq+zHkgmt6J65VtRry4WDGYlmkMa4xDACtaQ94alNag==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "runtime.any.System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "S/GPBmfPBB48ZghLxdDR7kDAJVAqgAuThyDJho3OLP5OS4tWD2ydyL8LKm8lhiBxce10OKe9X2zZ6DUjAqEbPg=="
+ },
+ "runtime.any.System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1lpifymjGDzoYIaam6/Hyqf8GhBI3xXYLK2TgEvTtuZMorG3Kb9QnMTIKhLjJYXIiu1JvxjngHvtVFQQlpQ3HQ=="
+ },
+ "runtime.any.System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sMDBnad4rp4t7GY442Jux0MCUuKL4otn5BK6Ni0ARTXTSpRNBzZ7hpMfKSvnVSED5kYJm96YOWsqV0JH0d2uuw=="
+ },
+ "runtime.any.System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "M1r+760j1CNA6M/ZaW6KX8gOS8nxPRqloqDcJYVidRG566Ykwcs29AweZs2JF+nMOCgWDiMfPSTMfvwOI9F77w=="
+ },
+ "runtime.any.System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ=="
+ },
+ "runtime.any.System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hLC3A3rI8jipR5d9k7+f0MgRCW6texsAp0MWkN/ci18FMtQ9KH7E2vDn/DH2LkxsszlpJpOn9qy6Z6/69rH6eQ=="
+ },
+ "runtime.any.System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cPhT+Vqu52+cQQrDai/V91gubXUnDKNRvlBnH+hOgtGyHdC17aQIU64EaehwAQymd7kJA5rSrVRNfDYrbhnzyA=="
+ },
+ "runtime.any.System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Nrm1p3armp6TTf2xuvaa+jGTTmncALWFq22CpmwRvhDf6dE9ZmH40EbOswD4GnFLrMRS0Ki6Kx5aUPmKK/hZBg=="
+ },
+ "runtime.any.System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Lxb89SMvf8w9p9+keBLyL6H6x/TEmc6QVsIIA0T36IuyOY3kNvIdyGddA2qt35cRamzxF8K5p0Opq4G4HjNbhQ=="
+ },
+ "runtime.any.System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "runtime.any.System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GG84X6vufoEzqx8PbeBKheE4srOhimv+yLtGb/JkR3Y2FmoqmueLNFU4Xx8Y67plFpltQSdK74x0qlEhIpv/CQ=="
+ },
+ "runtime.any.System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw=="
+ },
+ "runtime.any.System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+ihI5VaXFCMVPJNstG4O4eo1CfbrByLxRrQQTqOTp1ttK0kUKDqOdBSTaCB2IBk/QtjDrs6+x4xuezyMXdm0HQ=="
+ },
+ "runtime.any.System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NLrxmLsfRrOuVqPWG+2lrQZnE53MLVeo+w9c54EV+TUo4c8rILpsDXfY8pPiOy9kHpUHHP07ugKmtsU3vVW5Jg=="
+ },
+ "runtime.any.System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OhBAVBQG5kFj1S+hCEQ3TUHBAEtZ3fbEMgZMRNdN8A0Pj4x+5nTELEqL59DU0TjKVE6II3dqKw4Dklb3szT65w=="
+ },
+ "runtime.any.System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "w4ehZJ+AwXYmGwYu+rMvym6RvMaRiUEQR1u6dwcyuKHxz8Heu/mO9AG1MquEgTyucnhv3M43X0iKpDOoN17C0w=="
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "runtime.win.Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "runtime.win.System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RRACWygml5dnmfgC1SW6tLGsFgwsUAKFtvhdyHnIEz4EhWyrd7pacDdY95CacQJy7BMXRDRCejC9aCRC0Y1sQA==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hHHP0WCStene2jjeYcuDkETozUYF/3sHVRHAEOgS3L15hlip24ssqCTnJC28Z03Wpo078oMcJd0H4egD2aJI8g=="
+ },
+ "runtime.win.System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z37zcSCpXuGCYtFbqYO0TwOVXxS2d+BXgSoDFZmRg8BC4Cuy54edjyIvhhcfCrDQA9nl+EPFTgHN54dRAK7mNA==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lkXXykakvXUU+Zq2j0pC6EO20lEhijjqMc01XXpp1CJN+DeCwl3nsj4t5Xbpz3kA7yQyTqw6d9SyIzsyLsV3zA==",
+ "dependencies": {
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FK/2gX6MmuLIKNCGsV59Fe4IYrLrI5n9pQ1jh477wiivEM/NCXDT2dRetH5FSfY0bQ+VgTLcS3zcmjQ8my3nxQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.NameResolution": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RkgHVhUPvzZxuUubiZe8yr/6CypRVXj0VBzaR8hsqQ8f+rUo7e4PWrHTLOCjd8fBMGWCrY//fi7Ku3qXD7oHRw==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Collections": "4.3.0"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.win.System.Console": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Diagnostics.Debug": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tools": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tracing": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization.Calendars": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.any.System.IO": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.IO.FileSystem": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.NameResolution": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.win.System.Net.Primitives": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.Net.Sockets": "4.3.0"
+ }
+ },
+ "System.Private.Uri": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I4SwANiUGho1esj4V4oSlPllXjzCZDE+5XXso2P03LW2vOda2Enzh8DWOxwN6hnrJyp314c7KuVu31QYhRzOGg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Extensions": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Primitives": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Resources.ResourceManager": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.any.System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.any.System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.any.System.Text.Encoding.Extensions": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Timer": "4.3.0"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/Cosmos.Compiler.Tests.BclSystem.csproj b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/Cosmos.Compiler.Tests.BclSystem.csproj
new file mode 100644
index 0000000000..9213f5c32c
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/Cosmos.Compiler.Tests.BclSystem.csproj
@@ -0,0 +1,19 @@
+
+
+
+ net6.0
+ True
+ CA2242;$(NoWarn)
+ true
+ Debug;Release;TEST
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/Kernel.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/Kernel.cs
new file mode 100644
index 0000000000..c35949aa67
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/Kernel.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections;
+using Cosmos.Core.Memory;
+using Cosmos.TestRunner;
+using Sys = Cosmos.System;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ public class Kernel : Sys.Kernel
+ {
+ protected override void BeforeRun()
+ {
+ Console.WriteLine("Cosmos booted successfully. Starting BCL System tests now please wait...");
+ }
+
+ protected override void Run()
+ {
+ try
+ {
+ mDebugger.Send("Run");
+
+
+ // System
+ ArrayTests.Execute();
+ StringTest.Execute();
+ ObjectTests.Execute();
+ ByteTest.Execute();
+ SByteTest.Execute();
+ Int16Test.Execute();
+ UInt16Test.Execute();
+ Int32Test.Execute();
+ UInt32Test.Execute();
+ Int64Test.Execute();
+ UInt64Test.Execute();
+ CharTest.Execute();
+ BooleanTest.Execute();
+ SingleTest.Execute();
+ DoubleTest.Execute();
+ MathTest.Execute();
+ ConvertTests.Execute();
+ DateTimeTests.Execute();
+ TimeSpanTests.Execute();
+ ActivatorTests.Execute();
+
+ int count = Heap.Collect();
+ mDebugger.Send("Free");
+ mDebugger.Send(count.ToString());
+
+ TestController.Completed();
+ }
+ catch (Exception e)
+ {
+ mDebugger.Send("Exception occurred: " + e.Message);
+ mDebugger.Send(e.Message);
+ Console.WriteLine("Exception occurred");
+ Console.WriteLine(e.Message);
+ TestController.Failed();
+ }
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ActivatorTests.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ActivatorTests.cs
new file mode 100644
index 0000000000..2bc1b05d95
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ActivatorTests.cs
@@ -0,0 +1,100 @@
+using System;
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ class ActivatorTests
+ {
+ public static unsafe void Execute()
+ {
+ // Till this moment (04/09/2024) the constructors, as any other method, are not included on the compilation result if never called,
+ // so we need to call them before.
+ Artesa dummy = new Artesa();
+ WrappedLogger dummy2 = new WrappedLogger();
+ ConsoleLogger dummy3 = new ConsoleLogger();
+
+
+ // Generic method test
+ ILogger logger = GetLogger();
+ // Null checks are just for clarification, a ctor would throw if the object/struct was null.
+ Assert.IsTrue(logger is not null, "Object incorrectly set.");
+ Assert.IsTrue(typeof(ConsoleLogger).Equals(logger.GetType()), "Type Incorrectly set");
+ logger.Log("Interface method Call works!");
+
+ // Generic method test (with different type)
+ logger = GetLogger();
+ Assert.IsTrue(logger is not null, "Object incorrectly set.");
+ Assert.IsTrue(typeof(WrappedLogger).Equals(logger.GetType()), "Type Incorrectly set");
+ logger.Log("Interface method call really really works!");
+ ((WrappedLogger)logger).Logger.Log("property get works!");
+ ((WrappedLogger)logger).Success("Type's specific methods work too.");
+
+ // Struct Test
+ var artesa = Activator.CreateInstance(typeof(Artesa));
+ Assert.IsTrue(artesa is not null, "Struct incorrectly set.");
+ Assert.IsTrue(typeof(Artesa).Equals(artesa.GetType()), "Type Incorrectly set");
+
+ // Unboxing
+ Artesa art = (Artesa)artesa;
+ Assert.IsTrue(typeof(Artesa).Equals(art.GetType()), "Type Incorrectly set");
+
+ // Check property
+ Assert.IsTrue(art.Name is not null, "Property not set");
+
+ // Test method overrides
+ Assert.IsTrue(art.ToString() == $"{art.Name}-{art.LastName}", "Property not set");
+ }
+
+ public static T GetLogger() where T : ILogger, new()
+ {
+ return new T();
+ }
+ }
+
+ struct Artesa
+ {
+ public Artesa()
+ {
+ Console.WriteLine("LOL");
+ Name = "Artesa";
+ LastName = "Apple";
+ }
+ public string Name { get; }
+ public string LastName { get; }
+
+ public override string ToString()
+ {
+ return $"{Name}-{LastName}";
+ }
+ }
+
+ class WrappedLogger : ILogger
+ {
+ private ILogger logger;
+
+ public WrappedLogger() : this(ActivatorTests.GetLogger())
+ {
+
+ }
+
+ public WrappedLogger(ILogger logger)
+ {
+ this.logger = logger;
+ }
+
+ internal ILogger Logger => logger;
+
+ public void Log(string message) => logger.Log(message);
+ public void Success(string message) => Assert.Succeed(message);
+ }
+
+ class ConsoleLogger : ILogger
+ {
+ public void Log(string message) => Console.WriteLine(message);
+ }
+
+ interface ILogger
+ {
+ void Log(string message);
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ArrayTests.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ArrayTests.cs
new file mode 100644
index 0000000000..fbea45c885
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ArrayTests.cs
@@ -0,0 +1,180 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Cosmos.Debug.Kernel;
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ class ArrayTests
+ {
+ public static unsafe void Execute()
+ {
+ byte[] xEmptyByteArray = Array.Empty();
+ object[] xEmptyObjectArray = Array.Empty();
+
+ Assert.IsTrue(xEmptyByteArray.Length == 0, "Array.Empty should return an empty array!");
+ Assert.IsTrue(xEmptyObjectArray.Length == 0, "Array.Empty should return an empty array!");
+
+ byte[] xByteResult = { 1, 2, 3, 4, 5, 6, 7, 8 };
+ byte[] xByteExpectedResult = { 1, 2, 3, 4, 5, 6, 7, 1 };
+ byte[] xByteSource = { 1 };
+
+ Assert.IsTrue(xByteExpectedResult.Length == 8, "Array length is stored correctly");
+ Assert.IsTrue(xByteResult.GetLowerBound(0) == 0, "Array.GetLowerBound works");
+ //xByteResult.SetValue(1, 0);
+ Assert.IsTrue((int)xByteResult.GetValue(0) == 1, "Array.GetValue works for first element");
+ Assert.IsTrue((int)xByteResult.GetValue(1) == 2, "Array.GetValue works for element in middle");
+ Assert.IsTrue((int)xByteResult.GetValue(7) == 8, "Array.GetValue works at end");
+
+ Array.Copy(xByteSource, 0, xByteResult, 7, 1);
+
+ Assert.IsTrue((xByteResult[7] == xByteExpectedResult[7]), "Array.Copy doesn't work: xResult[7] = " + (uint)xByteResult[7] + " != " + (uint)xByteExpectedResult[7]);
+ Array.Clear(xByteResult, 0, xByteResult.Length);
+ for (int i = 0; i < 8; i++)
+ {
+ Assert.IsTrue(xByteResult[i] == 0, "Array.Clear(byte[], int, int) works");
+ }
+ xByteResult[1] = 1;
+ Assert.IsTrue(xByteResult[1] == 1, "Array.Clear does not break the array");
+
+ xByteResult = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
+ Assert.AreEqual(2, xByteResult[1], "Setting byte array to new array object works");
+ Array.Clear(xByteResult);
+ for (int i = 0; i < 8; i++)
+ {
+ Assert.AreEqual(0, xByteResult[i], "Array.Clear(byte[]) works");
+ }
+
+ // Single[] Test
+ float[] xSingleResult = { 1.25f, 2.50f, 3.51f, 4.31f, 9.28f, 18.56f };
+ float[] xSingleExpectedResult = { 1.25f, 2.598f, 5.39f, 4.31f, 9.28f, 18.56f };
+ float[] xSingleSource = { 0.49382f, 1.59034f, 2.598f, 5.39f, 7.48392f, 4.2839f };
+
+ xSingleResult[1] = xSingleSource[2];
+ xSingleResult[2] = xSingleSource[3];
+
+ Assert.IsTrue(((xSingleResult[1] + xSingleResult[2]) == (xSingleExpectedResult[1] + xSingleExpectedResult[2])), "Assinging values to single array elements doesn't work: xResult[1] = " + (uint)xSingleResult[1] + " != " + (uint)xSingleExpectedResult[1] + " and xResult[2] = " + (uint)xSingleResult[2] + " != " + (uint)xSingleExpectedResult[2]);
+
+ // Double[] Test
+ double[] xDoubleResult = { 0.384, 1.5823, 2.5894, 2.9328539, 3.9201, 4.295 };
+ double[] xDoubleExpectedResult = { 0.384, 1.5823, 2.5894, 95.32815, 3.9201, 4.295 };
+ double[] xDoubleSource = { 95.32815 };
+
+ xDoubleResult[3] = xDoubleSource[0];
+
+ Assert.IsTrue(xDoubleResult[3] == xDoubleExpectedResult[3], "Assinging values to double array elements doesn't work: xResult[1] = " + (uint)xDoubleResult[3] + " != " + (uint)xDoubleExpectedResult[3]);
+
+ //Test array indexes
+ int y = 0;
+ int[] x = new int[5] { 1, 2, 3, 4, 5 };
+ bool error = false;
+ try
+ {
+ y = x[1];
+ y = x[7];
+ }
+ catch (IndexOutOfRangeException)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error && y == 2, "Index out of range exception works correctly for too large positions.");
+ error = false;
+ try
+ {
+ y = x[-1];
+ }
+ catch (IndexOutOfRangeException)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error && y == 2, "Index out of range exception works correctly for too small positions.");
+
+ fixed (int* val = x)
+ {
+ Assert.AreEqual(1, val[0], "Accessing values using pointer works at offset 0");
+ Assert.AreEqual(2, val[1], "Accessing values using pointer works at offset 1");
+ Assert.AreEqual(4, val[3], "Accessing values using pointer works at offset 3");
+ Assert.AreEqual(5, val[4], "Accessing values using pointer works at offset 4");
+ }
+ int[] arr = new int[] { 0, 1, 2, 3, 4 };
+
+ arr[2] = 6;
+
+ // Try reading the values from the array via a pointer
+ fixed (int* val = arr)
+ {
+ Assert.AreEqual(0, val[0], "Accessing values using pointer works at offset 0");
+ Assert.AreEqual(1, val[1], "Accessing values using pointer works at offset 1");
+ Assert.AreEqual(3, val[3], "Accessing values using pointer works at offset 3");
+ Assert.AreEqual(4, val[4], "Accessing values using pointer works at offset 4");
+ }
+
+
+ char[] charArray = new char[] { 'A', 'a', 'Z', 'z', 'l' };
+ charArray[2] = 'k';
+ fixed (char* val = charArray)
+ {
+ Assert.AreEqual('A', val[0], "Accessing values using pointer works at offset 0");
+ Assert.AreEqual('a', val[1], "Accessing values using pointer works at offset 1");
+ Assert.AreEqual('z', val[3], "Accessing values using pointer works at offset 3");
+ Assert.AreEqual('l', val[4], "Accessing values using pointer works at offset 4");
+ }
+
+ string[] stringArray = new string[] { "ABC", "BAB", "TAT", "A", "", "LA" };
+ Array.Resize(ref stringArray, 3);
+ Assert.AreEqual(new string[] { "ABC", "BAB", "TAT" }, stringArray, "Array.Resize works");
+
+ stringArray = new string[10];
+ stringArray[0] += "asd";
+ Assert.AreEqual(stringArray[0], "asd", "Adding directly to array works");
+
+ // Lets test the normal interface methods
+ Assert.AreEqual(5, x.Length, "Length of array is correct");
+ var objEnumerator = x.GetEnumerator();
+ bool moved = objEnumerator.MoveNext();
+ Assert.IsTrue(moved, "Enumerator can move into first state");
+ int current = (int)objEnumerator.Current;
+ Assert.AreEqual(x[0], current, "Getting enumerator directly from array works");
+
+ // Lets test the generic interface methods implemented via SZArrayImpl and callvirt + vmtable trickery
+
+ IEnumerator enumerator = (x as IEnumerable).GetEnumerator();
+ Assert.IsTrue(enumerator.MoveNext(), "Getting enumerator from array as IEnumerable works");
+ Assert.AreEqual(x[0], enumerator.Current, "Getting enumerator from array as enumerable works");
+ enumerator.MoveNext();
+ Assert.AreEqual(x[1], enumerator.Current, "Getting enumerator from array as enumerable works after second move");
+
+ IList list = x;
+ //Assert.AreEqual(0, list.IndexOf(1), "Calling IndexOf on array as IList works"); - broken until .Net 5.0 changes fixed
+ //Assert.AreEqual(1, list.IndexOf(2), "Calling IndexOf on array as IList works");
+ Assert.AreEqual(1, list[0], "Getting item from array as IList works");
+ Assert.AreEqual(3, list[2], "Getting item from array as IList works");
+
+ ICollection collection = x;
+ Assert.AreEqual(5, collection.Count, "Getting Count from array as ICollection works");
+ Assert.IsTrue(collection.IsReadOnly, "Getting IsReadOnly from array as ICollection works");
+ //Assert.IsTrue(collection.Contains(2), "Calling Contains on array as ICollection works"); - broken until .Net 5.0 changes fixed
+ //Assert.IsFalse(collection.Contains(6), "Calling Contains on array as ICollection works");
+ int[] newArray = new int[5];
+ collection.CopyTo(newArray, 0);
+ bool areEqual = true;
+ for (int i = 0; i < x.Length; i++)
+ {
+ if(x[i] != newArray[i])
+ {
+ areEqual = false;
+ break;
+ }
+ }
+ Assert.IsTrue(areEqual, "Calling CopyTo on array as ICollection works");
+
+ IReadOnlyList readOnlyList = x;
+ Assert.AreEqual(x[0], readOnlyList[0], "Getting item from array as IReadOnlyList works");
+ Assert.AreEqual(x[3], readOnlyList[3], "Getting item from array as IReadOnlyList works");
+
+ IReadOnlyCollection readOnlyCollection = x;
+ Assert.AreEqual(5, readOnlyCollection.Count, "Getting Count from array as IReadOnlyCollection works");
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/BooleanTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/BooleanTest.cs
similarity index 100%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/BooleanTest.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/BooleanTest.cs
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ByteTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ByteTest.cs
new file mode 100644
index 0000000000..4d72f84b78
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ByteTest.cs
@@ -0,0 +1,210 @@
+using System;
+
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ internal static class ByteTest
+ {
+ public static void Execute()
+ {
+ byte value;
+ string result;
+ string expectedResult;
+
+ value = Byte.MaxValue;
+
+ result = value.ToString();
+ expectedResult = "255";
+
+ Assert.AreEqual(result, expectedResult, "Byte.ToString doesn't work");
+ Assert.AreEqual("ff", value.ToString("x"), "Byte.ToString('x') doesn't work");
+ Assert.AreEqual("FF", value.ToString("X"), "Byte.ToString('X') doesn't work");
+
+ // Now let's try to concat to a String using '+' operator
+ result = "The Maximum value of a Byte is " + value;
+ expectedResult = "The Maximum value of a Byte is 255";
+
+ Assert.IsTrue((result == expectedResult), "String concat (Byte) doesn't work");
+
+ // Now let's try to use '$ instead of '+'
+ result = $"The Maximum value of a Byte is {value}";
+ // Actually 'expectedResult' should be the same so...
+ Assert.IsTrue((result == expectedResult), "String format (Byte) doesn't work");
+
+ // Now let's Get the HashCode of a value
+ int resultAsInt = value.GetHashCode();
+
+ // actually the Hash Code of a Byte is the same value expressed as int
+ Assert.IsTrue((resultAsInt == value), "Byte.GetHashCode() doesn't work");
+
+ // basic bit operations
+
+ int val2;
+
+ value = 0x0C; // low-order bits: 0b0000_1100
+
+ val2 = ~value; // low-order bits: val2 = ~value = 0b1111_0011
+ Assert.IsTrue(val2 == -0x0D, "Byte bitwise not doesn't work got: " + val2);
+
+ val2 = value & 0x06; // low-order bits: val2 = value & 0b0000_0110 = 0b0000_0100
+ Assert.IsTrue(val2 == 0x04, "Byte bitwise and doesn't work got: " + val2);
+
+ val2 = value | 0x06; // low-order bits: val2 = value | 0b0000_0110 = 0b0000_1110
+ Assert.IsTrue(val2 == 0x0E, "Byte bitwise or doesn't work got: " + val2);
+
+ val2 = value ^ 0x06; // low-order bits: val2 = value ^ 0b0000_0110 = 0b0000_1010
+ Assert.IsTrue(val2 == 0x0A, "Byte bitwise xor doesn't work got: " + val2);
+
+ val2 = value >> 0x02; // low-order bits: val2 = value >> 0b0000_0010 = 0b0000_0011
+ Assert.IsTrue(val2 == 0x03, "Byte left shift doesn't work got: " + val2);
+
+ val2 = value << 0x02; // low-order bits: val2 = value << 0b0000_0010 = 0b0011_0000
+ Assert.IsTrue(val2 == 0x30, "Byte right shift doesn't work got: " + val2);
+
+ // basic arithmetic operations
+
+ value = 60;
+
+ val2 = value + 5;
+ Assert.IsTrue(val2 == 65, "Byte addition doesn't work got: " + val2);
+
+ val2 = value - 5;
+ Assert.IsTrue(val2 == 55, "Byte subtraction doesn't work got: " + val2);
+
+ val2 = value * 5;
+ Assert.IsTrue(val2 == 300, "Byte multiplication doesn't work got: " + val2);
+
+ val2 = value / 5;
+ Assert.IsTrue(val2 == 12, "Byte division doesn't work got: " + val2);
+
+ val2 = value % 7;
+ Assert.IsTrue(val2 == 4, "Byte remainder doesn't work got: " + val2);
+
+ // Now test conversions
+
+ byte maxValue = Byte.MaxValue;
+ byte minValue = Byte.MinValue;
+
+ // TODO: some convert instructions aren't being emitted, we should find other ways of getting them emitted
+
+ // Test Conv_I1
+ Assert.IsTrue((sbyte)maxValue == -0x01, "Conv_I1 for Byte doesn't work");
+ Assert.IsTrue((sbyte)minValue == 0x00, "Conv_I1 for Byte doesn't work");
+
+ // Test Conv_U1
+ Assert.IsTrue((byte)maxValue == 0xFF, "Conv_U1 for Byte doesn't work");
+ Assert.IsTrue((byte)minValue == 0x00, "Conv_U1 for Byte doesn't work");
+
+ // Test Conv_I2
+ Assert.IsTrue((short)maxValue == 0x00FF, "Conv_I2 for Byte doesn't work");
+ Assert.IsTrue((short)minValue == 0x0000, "Conv_I2 for Byte doesn't work");
+
+ // Test Conv_U2
+ Assert.IsTrue((ushort)maxValue == 0x00FF, "Conv_U2 for Byte doesn't work");
+ Assert.IsTrue((ushort)minValue == 0x0000, "Conv_U2 for Byte doesn't work");
+
+ // Test Conv_I4
+ Assert.IsTrue((int)maxValue == 0x000000FF, "Conv_I4 for Byte doesn't work");
+ Assert.IsTrue((int)minValue == 0x00000000, "Conv_I4 for Byte doesn't work");
+
+ // Test Conv_U4
+ Assert.IsTrue((uint)maxValue == 0x000000FF, "Conv_U4 for Byte doesn't work");
+ Assert.IsTrue((uint)minValue == 0x00000000, "Conv_U4 for Byte doesn't work");
+
+ // Test Conv_I8
+ Assert.IsTrue((long)maxValue == 0x00000000000000FF, "Conv_I8 for Byte doesn't work");
+ Assert.IsTrue((long)minValue == 0x0000000000000000, "Conv_I8 for Byte doesn't work");
+
+ // Test Conv_U8
+ Assert.IsTrue((ulong)maxValue == 0x00000000000000FF, "Conv_U8 for Byte doesn't work");
+ Assert.IsTrue((ulong)minValue == 0x0000000000000000, "Conv_U8 for Byte doesn't work");
+
+ // Test Conv_R4
+ Assert.IsTrue((float)maxValue == Byte.MaxValue, "Conv_R4 for Byte doesn't work");
+ Assert.IsTrue((float)minValue == Byte.MinValue, "Conv_R4 for Byte doesn't work");
+
+ // Test Conv_R8
+ Assert.IsTrue((double)maxValue == Byte.MaxValue, "Conv_R8 for Byte doesn't work");
+ Assert.IsTrue((double)minValue == Byte.MinValue, "Conv_R8 for Byte doesn't work");
+
+ // Test checked conversions to bytes
+ int val = 1;
+ int test = 125;
+ // Test Conv_Ovf_U1
+ checked
+ {
+ Assert.IsTrue((byte)test == 0x7D, "Conv_Ovf_U1 for Byte doesn't work(throws incorrectly)");
+ byte x = 0;
+ bool error = false;
+ try
+ {
+ x = (byte)(val + 255);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U1 for Byte doesn't work(error was not thrown)");
+ Assert.IsTrue((byte)(long)125 == 0x7D, "Conv_Ovf_U1 for long to Byte doesn't work(throws incorrectly)");
+ error = false;
+ try
+ {
+ x = (byte)(val + 0x8_0000_0000);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U1 for from positive Long to Byte doesn't work(error was not thrown)");
+ error = false;
+ try
+ {
+ x = (byte)(val + -0x8_0000_0001);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U1 for from negative Long to Byte doesn't work(error was not thrown)");
+ }
+
+
+ // Test Conv_Ovf_U1_Un
+ checked
+ {
+ Assert.IsTrue((byte)(uint)125 == 0x7D, "Conv_Ovf_U1_Un for Byte doesn't work(throws incorrectly)");
+ byte x = 0;
+ bool error = false;
+ try
+ {
+ x = (byte)(uint)(val + 300);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U1_Un for Byte doesn't work(error was not thrown): ");
+ }
+
+ // Test Methods
+ val2 = TestMethod(value);
+ Assert.IsTrue(value == 60, "Passing a Byte as a method parameter doesn't work");
+ Assert.IsTrue(val2 == 61, "Returning a Byte value from a method doesn't work");
+
+ ByRefTestMethod(ref value);
+ Assert.IsTrue(value == 61, "Passing a Byte by ref to a method doesn't work");
+ }
+
+ public static byte TestMethod(byte aParam)
+ {
+ aParam++;
+ return aParam;
+ }
+
+ public static void ByRefTestMethod(ref byte aParam)
+ {
+ aParam++;
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/CharTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/CharTest.cs
similarity index 100%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/CharTest.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/CharTest.cs
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ConvertTests.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ConvertTests.cs
new file mode 100644
index 0000000000..656c30f79b
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ConvertTests.cs
@@ -0,0 +1,29 @@
+using System;
+
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ internal static class ConvertTests
+ {
+ public static void Execute()
+ {
+ var number = 5;
+ var numberToString = Convert.ToString(number);
+
+ Assert.IsTrue(numberToString == "5", $"Convert.ToString(Int32) doesn't work. Result: {numberToString}");
+
+ var numberToByte = Convert.ToByte(number);
+
+ Assert.IsTrue(numberToByte == 5, $"Convert.ToByte(Int32) doesn't work. Result: {numberToByte}");
+
+ var byteToSingle = Convert.ToSingle(numberToByte);
+
+ Assert.IsTrue(EqualityHelper.SinglesAreEqual(byteToSingle, 5.0f), $"Convert.ToSingle(Byte) doesn't work. Result: {byteToSingle}");
+
+ var numberToBase64 = Convert.ToBase64String(BitConverter.GetBytes(number));
+
+ Assert.IsTrue(numberToBase64 == "BQAAAA==", $"Convert.ToBase64String(byte[]) doesn't work. Result: {numberToBase64}");
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DateTimeFormatTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DateTimeFormatTest.cs
new file mode 100644
index 0000000000..8df3f26eef
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DateTimeFormatTest.cs
@@ -0,0 +1,19 @@
+using Cosmos.TestRunner;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ class DateTimeFormatTest
+ {
+ public static void Execute()
+ {
+ DateTime date = new DateTime(2011, 6, 10);
+ Assert.AreEqual("06/10/2011 00:00:00", date.ToString(), "Standard DateTime.ToString works");
+ //Assert.AreEqual("June 10, 2011", date.ToString("MMMM dd, yyyy"), "Using DataTimeFormat for custom format works");
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DateTimeTests.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DateTimeTests.cs
new file mode 100644
index 0000000000..226cb00c69
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DateTimeTests.cs
@@ -0,0 +1,43 @@
+using System;
+
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ internal static class DateTimeTests
+ {
+ public static void Execute()
+ {
+ var someDateTime = new DateTime(2017, 4, 7, 16, 47, 32, 462);
+
+ Assert.IsTrue(someDateTime.Year == 2017, "DateTime.Year is not working");
+ Assert.IsTrue(someDateTime.Month == 4, "DateTime.Month is not working");
+ Assert.IsTrue(someDateTime.Day == 7, "DateTime.Day is not working");
+ Assert.IsTrue(someDateTime.Hour == 16, "DateTime.Hour is not working");
+ Assert.IsTrue(someDateTime.Minute == 47, "DateTime.Minute is not working");
+ Assert.IsTrue(someDateTime.Second == 32, "DateTime.Second is not working");
+ Assert.IsTrue(someDateTime.Millisecond == 462, "DateTime.Millisecond is not working");
+ // Not works: DayOfWeek is an Enum and Enum.ToString() is yet not implemented
+ //Assert.IsTrue(someDateTime.DayOfWeek.ToString() == "Friday", "DateTime.DayOfWeek is not working " + someDateTime.DayOfWeek.ToString());
+ Assert.IsTrue(someDateTime.DayOfYear == 97, "DateTime.DayOfYear is not working");
+
+ Assert.IsTrue(DateTime.Now.Year >= 2018, "DateTime.Now is returning an year lower than 2018");
+
+ // We assume that Cosmos uses Invariant Culture to display dates
+ //Assert.IsTrue(someDateTime.ToString() == "2017-04-07 16:47:32", "DateTime.ToString() is not working");
+ Assert.IsTrue(someDateTime.ToString() == "04/07/2017 16:47:32", "DateTime.ToString() is not working");
+ Assert.IsTrue(someDateTime.ToLongDateString() == "Friday, 07 April 2017", "DateTime.ToLongDateString() is not working");
+ Assert.IsTrue(someDateTime.ToShortDateString() == "04/07/2017", "DateTime.ToShortDateString() is not working");
+ Assert.IsTrue(someDateTime.ToLongTimeString() == "16:47:32", "DateTime.ToLongTimeString() is not working");
+ Assert.IsTrue(someDateTime.ToShortTimeString() == "16:47", "DateTime.ToShortTimeString() is not working");
+
+ TimeSpan twoDaysTimeSpan = TimeSpan.FromDays(2);
+
+ someDateTime = someDateTime.Add(twoDaysTimeSpan);
+ Assert.IsTrue(someDateTime.Day == 9, "DateTime.Add() is not working");
+
+ someDateTime = someDateTime.Subtract(twoDaysTimeSpan);
+ Assert.IsTrue(someDateTime.Day == 7, "DateTime.Subtract() is not working");
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/DecimalTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DecimalTest.cs
similarity index 100%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/DecimalTest.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DecimalTest.cs
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/DoubleTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DoubleTest.cs
similarity index 98%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/DoubleTest.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DoubleTest.cs
index 4e5de9f06e..7fe4c197b4 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/DoubleTest.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/DoubleTest.cs
@@ -223,6 +223,11 @@ public static void Execute()
Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, 2.3), "double TryParse returns correct result when it works");
#endregion
+
+ double doubleA = 3;
+ double doubleB = 3;
+
+ Assert.IsTrue(doubleA % doubleB == 0, "Double: 3 % 3 should be equal to 0");
}
}
}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int16Test.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int16Test.cs
new file mode 100644
index 0000000000..02cb5814d0
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int16Test.cs
@@ -0,0 +1,216 @@
+using System;
+
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ internal static class Int16Test
+ {
+ public static void Execute()
+ {
+ short value;
+ string result;
+ string expectedResult;
+
+ value = Int16.MaxValue;
+
+ result = value.ToString();
+ expectedResult = "32767";
+
+ Assert.IsTrue((result == expectedResult), "Int16.ToString doesn't work");
+
+ // Now let's try to concat to a String using '+' operator
+ result = "The Maximum value of an Int16 is " + value;
+ expectedResult = "The Maximum value of an Int16 is 32767";
+
+ Assert.IsTrue((result == expectedResult), "String concat (Int16) doesn't work");
+
+ // Now let's try to use '$ instead of '+'
+ result = $"The Maximum value of an Int16 is {value}";
+ // Actually 'expectedResult' should be the same so...
+ Assert.IsTrue((result == expectedResult), "String format (Int16) doesn't work");
+
+ // Now let's Get the HashCode of a value
+ int resultAsInt = value.GetHashCode();
+
+ Assert.IsTrue((resultAsInt == value), "Int16.GetHashCode() doesn't work");
+
+#if false
+ // Now let's try ToString() again but printed in hex (this test fails for now!)
+ result = value.ToString("X2");
+ expectedResult = "7FFF";
+
+ Assert.IsTrue((result == expectedResult), "Int16.ToString(X2) doesn't work");
+#endif
+
+ // basic bit operations
+
+ int val2;
+
+ value = 0x0C; // low-order bits: 0b0000_1100
+
+ val2 = ~value; // low-order bits: val2 = ~value = 0b1111_0011
+ Assert.IsTrue(val2 == -0x0D, "Int16 bitwise not doesn't work got: " + val2);
+
+ val2 = value & 0x06; // low-order bits: val2 = value & 0b0000_0110 = 0b0000_0100
+ Assert.IsTrue(val2 == 0x04, "Int16 bitwise and doesn't work got: " + val2);
+
+ val2 = value | 0x06; // low-order bits: val2 = value | 0b0000_0110 = 0b0000_1110
+ Assert.IsTrue(val2 == 0x0E, "Int16 bitwise or doesn't work got: " + val2);
+
+ val2 = value ^ 0x06; // low-order bits: val2 = value ^ 0b0000_0110 = 0b0000_1010
+ Assert.IsTrue(val2 == 0x0A, "Int16 bitwise xor doesn't work got: " + val2);
+
+ val2 = value >> 0x02; // low-order bits: val2 = value >> 0b0000_0010 = 0b0000_0011
+ Assert.IsTrue(val2 == 0x03, "Int16 left shift doesn't work got: " + val2);
+
+ val2 = value << 0x02; // low-order bits: val2 = value << 0b0000_0010 = 0b0011_0000
+ Assert.IsTrue(val2 == 0x30, "Int16 right shift doesn't work got: " + val2);
+
+ // basic arithmetic operations
+
+ value = 60;
+
+ val2 = value + 5;
+ Assert.IsTrue(val2 == 65, "Int16 addition doesn't work got: " + val2);
+
+ val2 = value - 5;
+ Assert.IsTrue(val2 == 55, "Int16 subtraction doesn't work got: " + val2);
+
+ val2 = value * 5;
+ Assert.IsTrue(val2 == 300, "Int16 multiplication doesn't work got: " + val2);
+
+ val2 = value / 5;
+ Assert.IsTrue(val2 == 12, "Int16 division doesn't work got: " + val2);
+
+ val2 = value % 7;
+ Assert.IsTrue(val2 == 4, "Int16 remainder doesn't work got: " + val2);
+
+ // Now test conversions
+
+ short maxValue = Int16.MaxValue;
+ short minValue = Int16.MinValue;
+
+ // TODO: some convert instructions aren't being emitted, we should find other ways of getting them emitted
+
+ // Test Conv_I1
+ Assert.IsTrue((sbyte)maxValue == -0x01, "Conv_I1 for Int16 doesn't work");
+ Assert.IsTrue((sbyte)minValue == 0x00, "Conv_I1 for Int16 doesn't work");
+
+ // Test Conv_U1
+ Assert.IsTrue((byte)maxValue == 0xFF, "Conv_U1 for Int16 doesn't work");
+ Assert.IsTrue((byte)minValue == 0x00, "Conv_U1 for Int16 doesn't work");
+
+ // Test Conv_I2
+ Assert.IsTrue((short)maxValue == 0x7FFF, "Conv_I2 for Int16 doesn't work");
+ Assert.IsTrue((short)minValue == -0x8000, "Conv_I2 for Int16 doesn't work");
+
+ // Test Conv_U2
+ Assert.IsTrue((ushort)maxValue == 0x7FFF, "Conv_U2 for Int16 doesn't work");
+ Assert.IsTrue((ushort)minValue == 0x8000, "Conv_U2 for Int16 doesn't work");
+
+ // Test Conv_I4
+ Assert.IsTrue((int)maxValue == 0x00007FFF, "Conv_I4 for Int16 doesn't work");
+ Assert.IsTrue((int)minValue == -0x00008000, "Conv_I4 for Int16 doesn't work");
+
+ // Test Conv_U4
+ Assert.IsTrue((uint)maxValue == 0x00007FFF, "Conv_U4 for Int16 doesn't work");
+ Assert.IsTrue((uint)minValue == 0xFFFF8000, "Conv_U4 for Int16 doesn't work");
+
+ // Test Conv_I8
+ Assert.IsTrue((long)maxValue == 0x0000000000007FFF, "Conv_I8 for Int16 doesn't work");
+ Assert.IsTrue((long)minValue == -0x0000000000008000, "Conv_I8 for Int16 doesn't work");
+
+ // Test Conv_U8
+ Assert.IsTrue((ulong)maxValue == 0x0000000000007FFF, "Conv_U8 for Int16 doesn't work");
+ Assert.IsTrue((ulong)minValue == 0xFFFFFFFFFFFF8000, "Conv_U8 for Int16 doesn't work");
+
+ // Test Conv_R4
+ Assert.IsTrue((float)maxValue == Int16.MaxValue, "Conv_R4 for Int16 doesn't work");
+ Assert.IsTrue((float)minValue == Int16.MinValue, "Conv_R4 for Int16 doesn't work");
+
+ // Test Conv_R8
+ Assert.IsTrue((double)maxValue == Int16.MaxValue, "Conv_R8 for Int16 doesn't work");
+ Assert.IsTrue((double)minValue == Int16.MinValue, "Conv_R8 for Int16 doesn't work");
+
+ //Test checked conversions
+ int val = 1;
+ long test = 125;
+
+ // Test Conv_Ovf_I2
+ checked
+ {
+ Assert.IsTrue((short)val == 1, "Conv_Ovf_I2 doesn't work(throws incorrectly)");
+ short x = 0;
+ bool error = false;
+ try
+ {
+ x = (short)(val + short.MaxValue);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I2 doesn't work(error was not thrown): " + x);
+ Assert.IsTrue((short)test == 0x7D, "Conv_Ovf_I2 for long to short doesn't work(throws incorrectly)");
+ error = false;
+ try
+ {
+ x = (short)(val + 0x8_0000_0000);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I2 for from positive long to short doesn't work(error was not thrown): " + x);
+ error = false;
+ try
+ {
+ x = (short)(val + -0x8_0000_0001);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I2 for from negative long to short doesn't work(error was not thrown): " + x);
+ }
+
+
+ // Test Conv_Ovf_I2_Un
+ checked
+ {
+ Assert.IsTrue((short)(uint)125 == 0x7D, "Conv_Ovf_I2_Un doesn't work(throws incorrectly)");
+ short x = 0;
+ bool error = false;
+ try
+ {
+ x = (short)(uint)(val + short.MaxValue);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I2_Un doesn't work(error was not thrown): " + x);
+ }
+
+ // Test Methods
+ val2 = TestMethod(value);
+ Assert.IsTrue(value == 60, "Passing an Int16 as a method parameter doesn't work");
+ Assert.IsTrue(val2 == 61, "Returning an Int16 value from a method doesn't work");
+
+ ByRefTestMethod(ref value);
+ Assert.IsTrue(value == 61, "Passing an Int16 by ref to a method doesn't work");
+ }
+
+ public static short TestMethod(short aParam)
+ {
+ aParam++;
+ return aParam;
+ }
+
+ public static void ByRefTestMethod(ref short aParam)
+ {
+ aParam++;
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int32Test.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int32Test.cs
new file mode 100644
index 0000000000..1ab1d4a7a8
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int32Test.cs
@@ -0,0 +1,253 @@
+using System;
+using System.Linq;
+using Cosmos.Common.Extensions;
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ internal static class Int32Test
+ {
+ public static void Execute()
+ {
+ bool efuse;
+ int value;
+ string result;
+ string expectedResult;
+
+ value = Int32.MaxValue;
+
+ result = value.ToString();
+ expectedResult = "2147483647";
+
+ Assert.IsTrue((result == expectedResult), "Int32.ToString doesn't work");
+
+ // Now let's try to concat to a String using '+' operator
+ result = "The Maximum value of an Int32 is " + value;
+ expectedResult = "The Maximum value of an Int32 is 2147483647";
+
+ Assert.IsTrue((result == expectedResult), "String concat (Int32) doesn't work");
+
+ // Now let's try to use '$ instead of '+'
+ result = $"The Maximum value of an Int32 is {value}";
+ // Actually 'expectedResult' should be the same so...
+ Assert.IsTrue((result == expectedResult), "String format (Int32) doesn't work");
+
+ // Now let's Get the HashCode of a value
+ int resultAsInt = value.GetHashCode();
+
+ // actually the Hash Code of an Int32 is the same value
+ Assert.IsTrue((resultAsInt == value), "Int32.GetHashCode() doesn't work");
+
+ // Now let's try ToString() again but printed in hex
+ result = value.ToString("X");
+ expectedResult = "7FFFFFFF";
+
+ Assert.IsTrue((result == expectedResult), "Int32.ToString(X) brings incorrect result.");
+
+ // Ensure value is not overrided
+ Assert.IsTrue((value != 0), "Int32.ToString(X) overrides the value of the variable.");
+
+ // Hex with padding
+ value = 255;
+ result = value.ToString("X4");
+ expectedResult = "00FF";
+ Assert.IsTrue((result == expectedResult), "Int32.ToString(X4) brings incorrect result.");
+
+ // Test Decimal format wit padding
+ value = 10;
+ expectedResult = "0010";
+ result = value.ToString("D4");
+ Assert.IsTrue((result == expectedResult), "Int32.ToString(D4) brings incorrect result.");
+
+ // basic bit operations
+
+ int val2;
+
+ value = 0x0C; // low-order bits: 0b0000_1100
+
+ val2 = ~value; // low-order bits: val2 = ~value = 0b1111_0011
+ Assert.IsTrue(val2 == -0x0D, "Int32 bitwise not doesn't work got: " + val2);
+
+ val2 = value & 0x06; // low-order bits: val2 = value & 0b0000_0110 = 0b0000_0100
+ Assert.IsTrue(val2 == 0x04, "Int32 bitwise and doesn't work got: " + val2);
+
+ val2 = value | 0x06; // low-order bits: val2 = value | 0b0000_0110 = 0b0000_1110
+ Assert.IsTrue(val2 == 0x0E, "Int32 bitwise or doesn't work got: " + val2);
+
+ val2 = value ^ 0x06; // low-order bits: val2 = value ^ 0b0000_0110 = 0b0000_1010
+ Assert.IsTrue(val2 == 0x0A, "Int32 bitwise xor doesn't work got: " + val2);
+
+ val2 = value >> 0x02; // low-order bits: val2 = value >> 0b0000_0010 = 0b0000_0011
+ Assert.IsTrue(val2 == 0x03, "Int32 left shift doesn't work got: " + val2);
+
+ val2 = value << 0x02; // low-order bits: val2 = value << 0b0000_0010 = 0b0011_0000
+ Assert.IsTrue(val2 == 0x30, "Int32 right shift doesn't work got: " + val2);
+
+ // basic arithmetic operations
+
+ value = 60;
+
+ val2 = value + 5;
+ Assert.IsTrue(val2 == 65, "Int32 addition doesn't work got: " + val2);
+
+ val2 = value - 5;
+ Assert.IsTrue(val2 == 55, "Int32 subtraction doesn't work got: " + val2);
+
+ val2 = value * 5;
+ Assert.IsTrue(val2 == 300, "Int32 multiplication doesn't work got: " + val2);
+
+ val2 = value / 5;
+ Assert.IsTrue(val2 == 12, "Int32 division doesn't work got: " + val2);
+
+ val2 = value % 7;
+ Assert.IsTrue(val2 == 4, "Int32 remainder doesn't work got: " + val2);
+
+ // Now test conversions
+
+ int maxValue = Int32.MaxValue;
+ int minValue = Int32.MinValue;
+
+ // TODO: some convert instructions aren't being emitted, we should find other ways of getting them emitted
+
+ // Test Conv_I1
+ Assert.IsTrue((sbyte)maxValue == -0x01, "Conv_I1 for Int32 doesn't work");
+ Assert.IsTrue((sbyte)minValue == 0x00, "Conv_I1 for Int32 doesn't work");
+
+ // Test Conv_U1
+ Assert.IsTrue((byte)maxValue == 0xFF, "Conv_U1 for Int32 doesn't work");
+ Assert.IsTrue((byte)minValue == 0x00, "Conv_U1 for Int32 doesn't work");
+
+ // Test Conv_I2
+ Assert.IsTrue((short)maxValue == -0x0001, "Conv_I2 for Int32 doesn't work");
+ Assert.IsTrue((short)minValue == 0x0000, "Conv_I2 for Int32 doesn't work");
+
+ // Test Conv_U2
+ Assert.IsTrue((ushort)maxValue == 0xFFFF, "Conv_U2 for Int32 doesn't work");
+ Assert.IsTrue((ushort)minValue == 0x0000, "Conv_U2 for Int32 doesn't work");
+
+ // Test Conv_I4
+ Assert.IsTrue((int)maxValue == 0x7FFFFFFF, "Conv_I4 for Int32 doesn't work");
+ Assert.IsTrue((int)minValue == -0x80000000, "Conv_I4 for Int32 doesn't work");
+
+ // Test Conv_U4
+ Assert.IsTrue((uint)maxValue == 0x7FFFFFFF, "Conv_U4 for Int32 doesn't work");
+ Assert.IsTrue((uint)minValue == 0x80000000, "Conv_U4 for Int32 doesn't work");
+
+ // Test Conv_I8
+ Assert.IsTrue((long)maxValue == 0x000000007FFFFFFF, "Conv_I8 for Int32 doesn't work");
+ Assert.IsTrue((long)minValue == -0x0000000080000000, "Conv_I8 for Int32 doesn't work");
+
+ // Test Conv_U8
+ Assert.IsTrue((ulong)maxValue == 0x00000007FFFFFFF, "Conv_U8 for Int32 doesn't work");
+ Assert.IsTrue((ulong)minValue == 0xFFFFFFFF80000000, "Conv_U8 for Int32 doesn't work");
+
+ // Test Conv_R4
+ Assert.IsTrue((float)maxValue == Int32.MaxValue, "Conv_R4 for Int32 doesn't work");
+ Assert.IsTrue((float)minValue == Int32.MinValue, "Conv_R4 for Int32 doesn't work");
+
+ // Test Conv_R8
+ Assert.IsTrue((double)maxValue == Int32.MaxValue, "Conv_R8 for Int32 doesn't work");
+ Assert.IsTrue((double)minValue == Int32.MinValue, "Conv_R8 for Int32 doesn't work");
+
+ //Test checked conversions
+ long val = 1;
+ long test = 125;
+ // Test Conv_Ovf_I4
+ checked
+ {
+ Assert.IsTrue((int)test == 0x7D, "Conv_Ovf_I4 doesn't work(throws incorrectly)");
+ Assert.IsTrue((int)(test - 1) == 124, "Conv_Ovf_I4 doesn't work(throws incorrectly)");
+ Assert.IsTrue((int)val == 1, "Conv_Ovf_I4 doesn't work(throws incorrectly)");
+ Assert.IsTrue((int)(2 * val) == 2, "Conv_Ovf_I4 doesn't work(throws incorrectly)");
+ long x = 0;
+ bool error = false;
+ try
+ {
+ x = (int)(val + int.MaxValue);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I4 doesn't work(error was not thrown): " + x);
+ try
+ {
+ x = (int)(val + int.MinValue - 2);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I4 doesn't work(error was not thrown): " + x);
+ }
+
+
+ // Test Conv_Ovf_I4_Un
+ checked
+ {
+ Assert.IsTrue((int)(uint)test == 0x7D, "Conv_Ovf_I4_Un doesn't work(throws incorrectly)");
+ int x = 0;
+ bool error = false;
+ try
+ {
+ x = (int)(uint)(val + int.MaxValue);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I4_Un doesn't work(error was not thrown): " + x);
+ }
+
+ // Test Methods
+ val2 = TestMethod(value);
+ Assert.IsTrue(value == 60, "Passing an Int32 as a method parameter doesn't work");
+ Assert.IsTrue(val2 == 61, "Returning an Int32 value from a method doesn't work");
+
+ ByRefTestMethod(ref value);
+ Assert.IsTrue(value == 61, "Passing an Int32 by ref to a method doesn't work");
+
+ //Test Overflow Exceptions
+ int val3o = 10000;
+ efuse = false;
+ try
+ {
+ checked
+ {
+ val3o += 2147483647;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Add_Ovf for Int32 doesn't work: " + val3o);
+
+ efuse = false;
+ val3o = -10000;
+ try
+ {
+ checked
+ {
+ val3o -= 2147483647;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Sub_Ovf for Int32 doesn't work: " + val3o);
+ }
+
+ public static int TestMethod(int aParam)
+ {
+ aParam++;
+ return aParam;
+ }
+
+ public static void ByRefTestMethod(ref int aParam)
+ {
+ aParam++;
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int64Test.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int64Test.cs
new file mode 100644
index 0000000000..b8dc081237
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/Int64Test.cs
@@ -0,0 +1,255 @@
+using System;
+
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ internal static class Int64Test
+ {
+ public static void Execute()
+ {
+ bool efuse;
+ long value;
+ string result;
+ string expectedResult;
+
+ value = long.MaxValue;
+
+ result = value.ToString();
+ expectedResult = "9223372036854775807";
+ Assert.IsTrue((result == expectedResult), "Int64.ToString doesn't work");
+
+ // Now let's try to concat to a String using '+' operator
+ result = "The Maximum value of an Int64 is " + value;
+ expectedResult = "The Maximum value of an Int64 is 9223372036854775807";
+
+ Assert.IsTrue((result == expectedResult), "String concat (Int64) doesn't work");
+
+ // Now let's try to use '$ instead of '+'
+ result = $"The Maximum value of an Int64 is {value}";
+
+ // Actually 'expectedResult' should be the same so...
+ Assert.IsTrue((result == expectedResult), "String format (Int64) doesn't work");
+
+ // Now let's Get the HashCode of a value
+ int resultAsInt = value.GetHashCode();
+ // actually the Hash Code of a Int64 is the value interpolated with XOR to obtain an Int32... so not the same of 'value'!
+ int expectedResultAsInt = (unchecked((int)((long)value)) ^ (int)(value >> 32));
+
+ Assert.IsTrue((resultAsInt == expectedResultAsInt), "Int64.GetHashCode() doesn't work");
+
+ value = long.Parse("42");
+ Assert.IsTrue(value == 42, "Parsing Int64 doesn't work.");
+
+#if false
+
+ // Now let's try ToString() again but printed in hex (this test fails for now!)
+ result = value.ToString("X2");
+ expectedResult = "0x7FFFFFFFFFFFFFFF";
+
+ Assert.IsTrue((result == expectedResult), "Int64.ToString(X2) doesn't work");
+#endif
+
+ // basic bit operations
+
+ long val2;
+
+ value = 0x0C; // low-order bits: 0b0000_1100
+
+ val2 = ~value; // low-order bits: val2 = ~value = 0b1111_0011
+ Assert.IsTrue(val2 == -0x0D, "Int64 bitwise not doesn't work got: " + val2);
+
+ val2 = value & 0x06; // low-order bits: val2 = value & 0b0000_0110 = 0b0000_0100
+ Assert.IsTrue(val2 == 0x04, "Int64 bitwise and doesn't work got: " + val2);
+
+ val2 = value | 0x06; // low-order bits: val2 = value | 0b0000_0110 = 0b0000_1110
+ Assert.IsTrue(val2 == 0x0E, "Int64 bitwise or doesn't work got: " + val2);
+
+ val2 = value ^ 0x06; // low-order bits: val2 = value ^ 0b0000_0110 = 0b0000_1010
+ Assert.IsTrue(val2 == 0x0A, "Int64 bitwise xor doesn't work got: " + val2);
+
+ val2 = value >> 0x02; // low-order bits: val2 = value >> 0b0000_0010 = 0b0000_0011
+ Assert.IsTrue(val2 == 0x03, "Int64 left shift doesn't work got: " + val2);
+
+ val2 = value << 0x02; // low-order bits: val2 = value << 0b0000_0010 = 0b0011_0000
+ Assert.IsTrue(val2 == 0x30, "Int64 right shift doesn't work got: " + val2);
+
+ // basic arithmetic operations
+
+ value = 60;
+
+ val2 = value + 5;
+ Assert.IsTrue(val2 == 65, "Int64 addition doesn't work got: " + val2);
+
+ val2 = value - 5;
+ Assert.IsTrue(val2 == 55, "Int64 subtraction doesn't work got: " + val2);
+
+ val2 = value * 5;
+ Assert.IsTrue(val2 == 300, "Int64 multiplication doesn't work got: " + val2);
+
+ val2 = value / 5;
+ Assert.IsTrue(val2 == 12, "Int64 division doesn't work got: " + val2);
+
+ val2 = value % 7;
+ Assert.IsTrue(val2 == 4, "Int64 remainder doesn't work got: " + val2);
+
+ value = 1728000000000;
+
+ val2 = value + 36000000000;
+ Assert.IsTrue(val2 == 1764000000000, "Int64 addition doesn't work got " + val2);
+
+ val2 = value - 36000000000;
+ Assert.IsTrue(val2 == 1692000000000, "Int64 subtraction doesn't work got " + val2);
+
+ val2 = value * 36000000000;
+ Assert.IsTrue(val2 == 5578983451391950848, "Int64 multiplication doesn't work got " + val2);
+
+ val2 = value / 36000000000;
+ Assert.IsTrue(val2 == 48, "Int64 division doesn't work got " + val2);
+
+ val2 = value / -36000000000;
+ Assert.IsTrue(val2 == -48, "Int64 division doesn't work got " + val2);
+
+ val2 = -value / 36000000000;
+ Assert.IsTrue(val2 == -48, "Int64 division doesn't work got " + val2);
+
+ val2 = -value / -36000000000;
+ Assert.IsTrue(val2 == 48, "Int64 division doesn't work got " + val2);
+
+ value = 3200000000000;
+
+ val2 = value % 1300000000000;
+ Assert.IsTrue(val2 == 600000000000, "Int64 remainder doesn't work got " + val2);
+
+ val2 = value % -1300000000000;
+ Assert.IsTrue(val2 == 600000000000, "Int64 remainder doesn't work got " + val2);
+
+ val2 = -value % 1300000000000;
+ Assert.IsTrue(val2 == -600000000000, "Int64 remainder doesn't work got " + val2);
+
+ val2 = -value % -1300000000000;
+ Assert.IsTrue(val2 == -600000000000, "Int64 remainder doesn't work got " + val2);
+
+ // Now test conversions
+
+ long maxValue = Int64.MaxValue;
+ long minValue = Int64.MinValue;
+
+ // TODO: some convert instructions aren't being emitted, we should find other ways of getting them emitted
+
+ // Test Conv_I1
+ Assert.IsTrue((sbyte)maxValue == -0x01, "Conv_I1 for Int64 doesn't work");
+ Assert.IsTrue((sbyte)minValue == 0x00, "Conv_I1 for Int64 doesn't work");
+
+ // Test Conv_U1
+ Assert.IsTrue((byte)maxValue == 0xFF, "Conv_U1 for Int64 doesn't work");
+ Assert.IsTrue((byte)minValue == 0x00, "Conv_U1 for Int64 doesn't work");
+
+ // Test Conv_I2
+ Assert.IsTrue((short)maxValue == -0x0001, "Conv_I2 for Int64 doesn't work");
+ Assert.IsTrue((short)minValue == 0x0000, "Conv_I2 for Int64 doesn't work");
+
+ // Test Conv_U2
+ Assert.IsTrue((ushort)maxValue == 0xFFFF, "Conv_U2 for Int64 doesn't work");
+ Assert.IsTrue((ushort)minValue == 0x0000, "Conv_U2 for Int64 doesn't work");
+
+ // Test Conv_I4
+ Assert.IsTrue((int)maxValue == -0x00000001, "Conv_I4 for Int64 doesn't work");
+ Assert.IsTrue((int)minValue == 0x00000000, "Conv_I4 for Int64 doesn't work");
+
+ // Test Conv_U4
+ Assert.IsTrue((uint)maxValue == 0xFFFFFFFF, "Conv_U4 for Int64 doesn't work");
+ Assert.IsTrue((uint)minValue == 0x00000000, "Conv_U4 for Int64 doesn't work");
+
+ // Test Conv_I8
+ Assert.IsTrue((long)maxValue == 0x7FFFFFFFFFFFFFFF, "Conv_I8 for Int64 doesn't work");
+ Assert.IsTrue((long)minValue == -0x8000000000000000, "Conv_I8 for Int64 doesn't work");
+
+ // Test Conv_U8
+ Assert.IsTrue((ulong)maxValue == 0x7FFFFFFFFFFFFFFF, "Conv_U8 for Int64 doesn't work");
+ Assert.IsTrue((ulong)minValue == 0x8000000000000000, "Conv_U8 for Int64 doesn't work");
+
+ // Test Conv_R4
+ Assert.IsTrue((float)maxValue == Int64.MaxValue, "Conv_R4 for Int64 doesn't work");
+ Assert.IsTrue((float)minValue == Int64.MinValue, "Conv_R4 for Int64 doesn't work");
+
+ // Test Conv_R8
+ Assert.IsTrue((double)maxValue == Int64.MaxValue, "Conv_R8 for Int64 doesn't work");
+ Assert.IsTrue((double)minValue == Int64.MinValue, "Conv_R8 for Int64 doesn't work");
+
+ //Test checked conversions
+ long val = 1;
+
+ // Test Conv_Ovf_I8_Un
+ checked
+ {
+ Assert.IsTrue((long)(ulong)125 == 0x7D, "Conv_Ovf_I8_Un doesn't work(throws incorrectly)");
+ long x = 0;
+ bool error = false;
+ try
+ {
+ x = (long)((ulong)val + ulong.MaxValue - 1);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I8_Un doesn't work(error was not thrown): " + x);
+ }
+
+
+ // Test Methods
+
+ value = 60;
+
+ val2 = TestMethod(value);
+ Assert.IsTrue(value == 60, "Passing an Int64 as a method parameter doesn't work");
+ Assert.IsTrue(val2 == 61, "Returning an Int64 value from a method doesn't work");
+
+ ByRefTestMethod(ref value);
+ Assert.IsTrue(value == 61, "Passing an Int64 by ref to a method doesn't work");
+
+ //Test Overflow Exceptions
+ long val3o = 1000000;
+ efuse = false;
+ try
+ {
+ checked
+ {
+ val3o += long.MaxValue;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Add_Ovf for Int64 doesn't work");
+
+ efuse = false;
+ val3o = -10000;
+ try
+ {
+ checked
+ {
+ val3o -= long.MaxValue;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Sub_Ovf for Int64 doesn't work");
+ }
+
+ public static long TestMethod(long aParam)
+ {
+ aParam++;
+ return aParam;
+ }
+
+ public static void ByRefTestMethod(ref long aParam)
+ {
+ aParam++;
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/MathTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/MathTest.cs
similarity index 94%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/MathTest.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/MathTest.cs
index a570865549..718945c1b2 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/MathTest.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/MathTest.cs
@@ -1,5 +1,5 @@
using System;
-
+using Cosmos.Debug.Kernel;
using Cosmos.TestRunner;
namespace Cosmos.Compiler.Tests.Bcl.System
@@ -89,6 +89,9 @@ public static void Execute()
result = Math.Ceiling((double)int.MaxValue + 2.5);
Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, (double)int.MaxValue + 3), "Ceiling works for values larger than an int can hold. " + result + " expected " + (double)int.MaxValue + 3);
+ result = Math.Ceiling(-0.90308998699194354);
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, 0), "Ceiling works for random float (-0.90308998699194354)");
+
#endregion Ceiling
#region Floor
@@ -159,9 +162,9 @@ public static void Execute()
result = Math.Cos(Math.PI);
Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, -1), "Cos gives correct answer for PI");
-
+
result = Math.Cos(Math.PI / 2);
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, 6.12323399573677E-17), "Cos gives correct answer for PI / 2");
+ Assert.AreEqual(0.0, result, "Cos gives correct answer for PI / 2");
result = Math.Cos(Math.PI / 3);
Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, 0.5), "Cos gives correct answer for PI / 3");
@@ -235,10 +238,10 @@ public static void Execute()
Assert.IsTrue(double.IsNaN(result), "Sin works with -INF");
result = Math.Sin(Math.PI);
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, 1.22464679914735E-16), "Sin gives correct answer for PI");
+ Assert.AreEqual(0.0, result, "Sin gives correct answer for PI");
result = Math.Sin(Math.PI / 2);
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, 1), "Sin gives correct answer for PI / 2");
+ Assert.AreEqual(1.0, result, "Sin gives correct answer for PI / 2");
result = Math.Sin(Math.PI / 3);
Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, 0.866025403784439), "Sin gives correct answer for PI / 3");
@@ -416,12 +419,6 @@ public static void Execute()
result = Math.Tan(-0.5);
Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, -0.54630248984379), "Tan works with negative doubles");
- result = Math.Tan(Math.PI);
- Assert.IsTrue(result <= -.22464679914735E-16, "Tan gives matching result for Pi but mathematically inaccurate result. " + result);
-
- result = Math.Tan(Math.PI / 2);
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, 1.63312393531954E+16), "Tan gives result matching normal Math function but incorrect in mathematical sense");
-
result = Math.Tan(Math.PI / 3);
Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, Math.Sqrt(3)), "Tan gives correct value for PI / 3");
@@ -466,6 +463,18 @@ public static void Execute()
Assert.IsTrue(EqualityHelper.DoublesAreEqual(result, -1.5707963267949), "Atan works with -INF");
#endregion Math.Atan
+
+ #region Math.Round
+
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(1, Math.Round(0.8)), "Math.Round works for 0.8");
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(0, Math.Round(0.2)), "Math.Round works for 0.2");
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(99, Math.Round(99.2)), "Math.Round works for 99.2");
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(99, Math.Round(99d)), "Math.Round works for 99");
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(0, Math.Round(-0.2)), "Math.Round works for -0.2");
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(-1, Math.Round(-0.8)), "Math.Round works for -0.8");
+ Assert.IsTrue(EqualityHelper.DoublesAreEqual(0, Math.Round(-0.000000006494348)), "Math.Round works for very small values");
+
+ #endregion
}
}
}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ObjectTests.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ObjectTests.cs
similarity index 100%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ObjectTests.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/ObjectTests.cs
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/SByteTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/SByteTest.cs
similarity index 75%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/SByteTest.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/SByteTest.cs
index 2f668dcef2..c51ffef6bb 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/SByteTest.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/SByteTest.cs
@@ -32,10 +32,8 @@ public static void Execute()
// Now let's Get the HashCode of a value
int resultAsInt = value.GetHashCode();
- // The Hash Code of a SByte is not the same value expressed as int but some XOR tricks are done in the value
- int expectedResultAsInt = ((int)value ^ (int)value << 8);
- Assert.IsTrue((resultAsInt == expectedResultAsInt), "SByte.GetHashCode() doesn't work");
+ Assert.IsTrue((resultAsInt == value), "SByte.GetHashCode() doesn't work" + resultAsInt + " vs " + value);
#if false
// Now let's try ToString() again but printed in hex (this test fails for now!)
@@ -137,6 +135,64 @@ public static void Execute()
Assert.IsTrue((double)maxValue == SByte.MaxValue, "Conv_R8 for SByte doesn't work");
Assert.IsTrue((double)minValue == SByte.MinValue, "Conv_R8 for SByte doesn't work");
+ //Now test checked conversions
+ int val = 1;
+ int test = 125;
+
+ // Test Conv_Ovf_I1
+ checked
+ {
+ Assert.IsTrue((sbyte)test == 0x7D, "Conv_Ovf_I1 for SByte doesn't work(throws incorrectly)");
+ sbyte x = 0;
+ bool error = false;
+ try
+ {
+ x = (sbyte)(val + 127);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I1 for SByte doesn't work(error was not thrown)");
+ error = false;
+ try
+ {
+ x = (sbyte)(val + 0x8_0000_0000);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I1 for from positive Long to SByte doesn't work(error was not thrown)");
+ error = false;
+ try
+ {
+ x = (sbyte)(val + -0x8_0000_0001);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I1 for from negative Long to SByte doesn't work(error was not thrown)");
+ }
+
+ // Test Conv_Ovf_I1_Un
+ checked
+ {
+ Assert.IsTrue((sbyte)(uint)125 == 0x7D, "Conv_Ovf_I1_Un for SByte doesn't work(throws incorrectly)");
+ sbyte x = 0;
+ bool error = false;
+ try
+ {
+ x = (sbyte)(uint)(val + 127);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_I1_Un for SByte doesn't work(error was not thrown)");
+ }
+
// Test Methods
val2 = TestMethod(value);
Assert.IsTrue(value == 60, "Passing an SByte as a method parameter doesn't work");
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/SingleTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/SingleTest.cs
similarity index 86%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/SingleTest.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/SingleTest.cs
index 9fd6bf961b..3ac2f1e29e 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/SingleTest.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/SingleTest.cs
@@ -1,5 +1,4 @@
using System;
-
using Cosmos.TestRunner;
namespace Cosmos.Compiler.Tests.Bcl.System
@@ -8,9 +7,9 @@ internal static class SingleTest
{
public static void Execute()
{
- Single value;
- String result;
- String expectedResult;
+ float value;
+ string result;
+ string expectedResult;
/* First start with some weird value (not really numbers) that the IEEE standard has */
value = Single.PositiveInfinity;
@@ -207,32 +206,7 @@ public static void Execute()
valueNegated = -value;
Assert.IsTrue((EqualityHelper.SinglesAreEqual(valueNegated, -42.0f)), "(float) negation of positive float doesn't work");
- #region Parsing
-
- value = Single.Parse("0.4");
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, 0.4), "simple parsing of float works");
-
- value = Single.Parse("+0.3");
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, 0.3), "parsing of float with positive sign works!");
-
- value = Single.Parse("-0.4");
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, -0.4), "parsing of negative float works!");
-
- value = Single.Parse(" 0.7 ");
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, 0.7), "float parsing ignores leading and trailing whitespaces");
-
- value = Single.Parse("0.4E1");
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, 4), "float parsing takes in account E");
-
- value = Single.Parse("0.4E-1");
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, 0.04), "float parsing works with negative E");
-
- Assert.IsFalse(Single.TryParse("asd4", out value), "float TryParse returns false when it fails");
-
- Assert.IsTrue(Single.TryParse("2.3", out value), " float TryParse returns true when it works");
- Assert.IsTrue(EqualityHelper.DoublesAreEqual(value, 2.3), "float TryParse returns correct result when it works");
- #endregion Parsing
}
}
}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/StandardMethodTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/StandardMethodTest.cs
new file mode 100644
index 0000000000..c708093a0d
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/StandardMethodTest.cs
@@ -0,0 +1,35 @@
+using Cosmos.TestRunner;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ static class StandardMethodTest
+ {
+ static class HexConverter
+ {
+ public static char ToCharUpper(int value)
+ {
+ value &= 0xF;
+ value += 48;
+ if (value > 57)
+ {
+ value += 7;
+ }
+ return (char)value;
+ }
+ }
+
+ public static void Execute()
+ {
+ char[] numbers = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
+ for (int i = 0; i < 16; i++)
+ {
+ Assert.AreEqual(numbers[i], HexConverter.ToCharUpper(i), "ToCharUpper works: " + HexConverter.ToCharUpper(i));
+ }
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/StringTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/StringTest.cs
new file mode 100644
index 0000000000..235206faf3
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/StringTest.cs
@@ -0,0 +1,232 @@
+using System;
+using System.Buffers;
+using Cosmos.Debug.Kernel;
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ class StringTest
+ {
+
+ public static unsafe void Execute()
+ {
+ #region ctors
+
+ char[] charArray = { 'h', 'e', 'l', 'l', 'o' };
+ string aString = new string(charArray);
+ Assert.AreEqual("hello", aString, "String can be created from char array");
+ Assert.AreEqual(5, aString.Length, "Length of string from char array is correct");
+
+ fixed (char* ptr = charArray)
+ {
+ aString = new string(ptr);
+ Assert.AreEqual("hello", aString, "String can be created from char ptr");
+ Assert.AreEqual(5, aString.Length, "Length of string from char ptr is correct");
+ }
+
+ charArray = new []{ 'h', 'e', 'l', 'l', 'o'};
+ ReadOnlySpan span = new ReadOnlySpan(charArray);
+ Assert.AreEqual(charArray.Length, span.Length, "Array and Span have the same length");
+ Assert.AreEqual(charArray[0], span[0], "Array and span have same value at index 0");
+ Assert.AreEqual(charArray[2], charArray[2], "Array and span have same value at index 2");
+
+ Assert.AreEqual("hello", new string(span), "Creating string from span works");
+
+ string spanString = span.ToString();
+ Assert.AreEqual("hello", spanString, "span.ToString works");
+
+
+
+ string test = "123456";
+ span = test.AsSpan(0, 2);
+ Assert.AreEqual("12", span.ToString(), "AsSpan works 0-2");
+
+ span = test.AsSpan(0, 6);
+ Assert.AreEqual("123456", span.ToString(), "AsSpan works 0-6");
+
+ span = test.AsSpan(1, 3);
+ Assert.AreEqual("234", span.ToString(), "AsSpan works 1-3");
+
+ span = test.AsSpan(1, 5);
+ Assert.AreEqual("23456", span.ToString(), "AsSpan works 1-5");
+
+ span = test.AsSpan(2);
+ Assert.AreEqual("3456", span.ToString(), "AsSpan works 2-");
+
+ span = "AAABACADADBCA".AsSpan(0, 3);
+ Assert.AreEqual("AAA", span.ToString(), "What breaks for Split, works directly...");
+
+ string whiteSpaceText = " 1 2 ";
+ span = whiteSpaceText.AsSpan();
+ Assert.AreEqual("1 2", span.Trim().ToString(), "Span.Trim works");
+ Assert.IsFalse(span.IsEmpty, "span.IsEmpty works");
+
+ #endregion
+
+ string xTestStr = "Test";
+ int xExpectedLength = 4;
+ int xLength = xTestStr.Length;
+ Assert.IsTrue(xLength == xExpectedLength, "String.Length is not returning the correct value.");
+
+ Assert.IsTrue(("a" + "b") == "ab", "concatting 2 string using + doesn't work");
+ Assert.IsTrue(("a" + 'b') == "ab", "concatting 1 string and 1 character doesn't work");
+
+ string a = "a";
+ string b = "b";
+ string result = a + b;
+ Assert.IsTrue(result == "ab", "concatting 2 string (not optimizable) using + doesn't work"); // Fails
+
+ char x = 'a';
+ string y = "a";
+ Assert.IsTrue(x.ToString() == y, "String == operator ");
+
+ string str = "Cosmos is awesome!";
+ string expected = "Cosmos";
+ string substr = str.Substring(0, 6);
+ Assert.IsTrue((substr == expected), "Substring is not equal to the expected result, result should be \"Cosmos\". Substrings are broken or MichaelTheShifter made an off-by-one error.");
+
+ int value1 = 1;
+ string value2 = "4";
+ string expected_res = "1 + 3 = 4";
+ Assert.IsTrue(($"{value1} + 3 = {value2}" == expected_res), "String $ operator does not work.");
+
+ string split_in = "ABC";
+ var xResultArray = split_in.Split('B');
+ Assert.IsTrue(xResultArray.Length == 2, "String.Split(char[]) doesn't work.");
+
+ xResultArray = split_in.Split(new[] { "B" }, StringSplitOptions.None);
+ Assert.IsTrue(xResultArray.Length == 2, "String.Split(string[], StringSplitOptions) doesn't work.");
+
+ string to_split = "AAABACADADBCA";
+
+ xResultArray = to_split.Split(new[] { "B", "C" }, StringSplitOptions.None);
+ Assert.AreEqual(new[] { "AAA", "A", "ADAD", "", "A" }, xResultArray, "Splitting works with multiple things to split by");
+ xResultArray = to_split.Split(new[] { "B", "C" }, StringSplitOptions.RemoveEmptyEntries);
+ for (int i = 0; i < xResultArray.Length; i++)
+ {
+ Assert.IsTrue(true, xResultArray[i]);
+ }
+ Assert.AreEqual(new[] { "AAA", "A", "ADAD", "A" }, xResultArray, "Splitting works with RemoveEmptyEntries");
+
+ test = "This is a test string.";
+ Assert.IsTrue(test.Contains("test"), "String.Contains(string) doesn't find a substring that actually exists.");
+ Assert.IsTrue(test.Contains("ing"), "String.Contains(string) doesn't find a substring that actually exists.");
+ Assert.IsFalse(test.Contains("cosmos"), "String.Contains(string) found a substring that didn't actually exist in a string.");
+
+ Assert.IsTrue(test.StartsWith("This"), "string.StartsWith(string) is reporting false even though the string does start with the supplied substring.");
+ Assert.IsFalse(test.StartsWith("That"), "string.StartsWith(string) is reporting true even though the string doesn't start with the supplied substring.");
+
+ Assert.IsTrue(test.EndsWith("string."), "string.EndsWith(string) is not reporting false even though the string actually does end with the substring.");
+ Assert.IsFalse(test.EndsWith("sentence."), "string.EndsWith(string) is not reporting true even though the string actually doesn't end with the substring.");
+
+ Assert.IsTrue(test.IndexOf(string.Empty, 10) == 10, "string.IndexOf currectly returns for empty string with start index");
+ Assert.IsTrue(test.IndexOf(string.Empty, 10, 10) == 10, "string.IndexOf currectly returns for empty string with start index and count");
+ Assert.IsTrue(test.IndexOf('T') == 0, "string.IndexOf finds the only occurance of a letter");
+ Assert.IsTrue(test.IndexOf('A') == -1, "string.IndexOf correctly returns when it does not find something");
+ Assert.IsTrue(test.IndexOf("ABCDE") == -1, "string.IndexOf correctly returns when it does not find something");
+ Assert.IsTrue(test.IndexOf('.') == test.Length - 1, "string.IndexOf finds the only occurance of a letter at the end of the string");
+ Assert.IsTrue(test.IndexOf('i') == 2, "string.IndexOf finds the first of multiple occurances of a letter");
+ Assert.IsTrue(test.IndexOf('i', 8) == 18, "string.IndexOf with start point finds the first of multiple occurances of a letter");
+ Assert.IsTrue(test.IndexOf("is") == 2, "string.IndexOf finds the first of multiple occurances of a string");
+ Assert.IsTrue(test.IndexOf("is", 3) == 5, "string.IndexOf with start point finds the first of multiple occurances of a string");
+ Assert.IsTrue(test.IndexOf("is", 3, 5) == 5, "string.IndexOf with start point and count finds the first of multiple occurances of a string");
+ Assert.IsTrue(test.IndexOf("is", 3, 1) == -1, "string.IndexOf with start point and count correctly returns if it does not find something");
+
+ Assert.IsTrue(test.IndexOfAny(new[] { 'T', 'h', 'i', 's' }) == 0, "string.IndexOfAny finds the first one");
+ Assert.IsTrue(test.IndexOfAny(new[] { 'A', 'B', 'C' }) == -1, "string.IndexOfAny finds none if none are present");
+
+ Assert.AreEqual(0, test.LastIndexOf("T"), "string.LastIndexOf works for char as string");
+ Assert.AreEqual(0, test.LastIndexOf("This"), "string.LastIndexOf works for existing string");
+ Assert.AreEqual(-1, test.LastIndexOf("Test"), "string.LastIndexOf works for existing string");
+ Assert.IsTrue(test.LastIndexOf(string.Empty, 100) == test.Length, "string.LastIndexOf handles empty correctly");
+ Assert.IsTrue(test.LastIndexOf('T') == 0, "string.LastIndexOf finds the only occurance of a letter");
+ Assert.IsTrue(test.LastIndexOf('.') == test.Length - 1, "string.LastIndexOf finds the only occurance of a letter at the end of the string");
+ Assert.IsTrue(test.LastIndexOf('i') == test.Length - 4, "string.IndexOf finds the last of multiple occurances of a letter");
+
+ Assert.IsTrue(test.LastIndexOfAny(new[] { 'T', 'h', 'i', 's' }) == 18, "string.LastIndexOfAny finds the first one");
+ Assert.IsTrue(test.LastIndexOfAny(new[] { 'A', 'B', 'C' }) == -1, "string.LastIndexOfAny finds none if none are present");
+
+
+ Assert.IsTrue(test.Insert(0, "A") != test, "string.Insert creates a new instance");
+ Assert.IsTrue(test.Insert(1, "A") == "TAhis is a test string.", "string.Insert correctly inserts a single character");
+ Assert.IsTrue(test.Insert(2, "ABCDE F") == "ThABCDE Fis is a test string.", "string.Insert correctly adds multiple characters");
+ Assert.IsTrue(test.Insert(test.Length, "END") == "This is a test string.END", "string.Insert correctly inserts at the end of the string");
+
+ Assert.IsTrue(test.Remove(1) == "T", "string.Remove correctly removes all other characters");
+ Assert.IsTrue(test.Remove(0) == "", "string.Remove correctly removes all characters");
+ Assert.IsTrue(test.Remove(0, 2) == "is is a test string.", "string.Remove works with count");
+
+ Assert.IsTrue(" a ".Trim() == "a", "string.Trim trims both front and back");
+ Assert.IsTrue("abababababa".Trim(new[] { 'a', 'b' }) == "", "string.Trim works with custom chars");
+ Assert.IsTrue("abCababababa".Trim(new[] { 'a', 'b' }) == "C", "string.Trim works with custom chars");
+ Assert.IsTrue("a".Trim() == "a", "string.Trim trims both front and back");
+ Assert.IsTrue(" a ".TrimStart() == "a ", "string.TrimStart trims front");
+ Assert.IsTrue("a".TrimStart() == "a", "string.Trim trims front");
+ Assert.IsTrue(" a ".TrimEnd() == " a", "string.TrimEnd trims back");
+ Assert.IsTrue("a".TrimEnd() == "a", "string.TrimEnd trims back");
+
+
+ string lower_expected = "this is a test string.";
+ string upper_expected = "THIS IS A TEST STRING.";
+ Assert.IsTrue((test.ToLower() == lower_expected), "string.ToLower() does not work.");
+ Assert.IsTrue((test.ToUpper() == upper_expected), "string.ToUpper() does not work.");
+
+ string replace_test = "That is a test string.";
+ Assert.IsTrue((test.Replace("This", "That") == replace_test), "string.Replace(string, string) does not work.");
+
+ test = "000";
+ replace_test = "000000000000";
+ Assert.IsTrue((test.Replace("0", "0000") == replace_test), "string.Replace(string, string) is recursive.");
+
+ string char_array_test = "char";
+ char[] char_array_expected = { 'c', 'h', 'a', 'r' };
+ Assert.IsTrue((char_array_test.ToCharArray().Length == 4), "string.ToCharArray() does not work.");
+
+ string strA;
+ string strB;
+ int comparisionResult;
+
+ strA = "Test";
+ strB = "Test";
+
+ comparisionResult = String.Compare(strA, 0, strB, 0, strA.Length, StringComparison.Ordinal);
+ Assert.IsTrue(comparisionResult == 0, "String.Compare (same string) not working!");
+
+ strA = "\x0041\x0042\x0043";
+ strB = "\x0061\x0062\x0063";
+
+ comparisionResult = String.Compare(strA, 0, strB, 0, strA.Length, StringComparison.Ordinal);
+ Assert.IsTrue(comparisionResult == -32, "String.Compare (uppercase vs lowercase) not working!");
+
+ strA = "\x0041\x0042\x0043";
+ strB = "\x0041\x0062\x0063";
+
+ comparisionResult = String.Compare(strA, 0, strB, 0, strA.Length, StringComparison.Ordinal);
+ Assert.IsTrue(comparisionResult == -32, "String.Compare (first letter same) not working!");
+
+ strA = "Horse";
+ strB = "Morse"; /* . _ . */
+
+ comparisionResult = String.Compare(strA, 1, strB, 1, strA.Length, StringComparison.Ordinal);
+ Assert.IsTrue(comparisionResult == 0, "String.Compare (first letter different skipped) not working!");
+
+ strA = "\x0041\x0042\x0043";
+ strB = "\x0061\x0062\x0063";
+
+ comparisionResult = String.Compare(strA, 0, strB, 0, strA.Length, StringComparison.OrdinalIgnoreCase);
+ Assert.IsTrue(comparisionResult == 0, "String.Compare (uppercase vs lowercase ignoring case) not working!");
+
+ // we can't test hash code, it's based on a random seed
+
+ //string stringToHash = "test";
+ //int hashCode = stringToHash.GetHashCode();
+
+ //Assert.IsTrue(hashCode == -871206010, "String.GetHashCode() not working!");
+
+ // we test if the strigns allocted at the beginning are still correct to ensure that the memory they were allocated in was not incorrectly overwritten
+ // we need to test all of the ctors since we have custom code in the NewObj.cs to calculate the correct length for the string to be allocated
+ Assert.AreEqual("hello", aString, "aString is still correct");
+ Assert.AreEqual("hello", spanString, "spanString is still correct");
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/TimeSpanTests.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/TimeSpanTests.cs
similarity index 100%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/TimeSpanTests.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/TimeSpanTests.cs
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/UInt16Test.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt16Test.cs
similarity index 75%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/UInt16Test.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt16Test.cs
index 7aa76b3e3d..9af1b0e963 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/UInt16Test.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt16Test.cs
@@ -134,6 +134,66 @@ public static void Execute()
Assert.IsTrue((double)maxValue == UInt16.MaxValue, "Conv_R8 for UInt16 doesn't work");
Assert.IsTrue((double)minValue == UInt16.MinValue, "Conv_R8 for UInt16 doesn't work");
+ //Test checked conversions
+ int val = 1;
+ int test = 125;
+
+ // Test Conv_Ovf_U2
+ checked
+ {
+ Assert.IsTrue((ushort)test == 0x7D, "Conv_Ovf_U2 doesn't work(throws incorrectly)");
+ ushort x = 0;
+ bool error = false;
+ try
+ {
+ x = (ushort)(ushort.MaxValue + val);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U2 doesn't work(error was not thrown): " + x);
+ Assert.IsTrue((uint)(long)125 == 0x7D, "Conv_Ovf_U2 for long to ushort doesn't work(throws incorrectly)");
+ error = false;
+ try
+ {
+ x = (ushort)(val + 0x8_0000_0000);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U2 for from positive long to ushort doesn't work(error was not thrown): " + x);
+ error = false;
+ try
+ {
+ x = (ushort)(val + -0x8_0000_0001);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U2 for from negative long to ushort doesn't work(error was not thrown): " + x);
+ }
+
+
+ // Test Conv_Ovf_U2_Un
+ checked
+ {
+ Assert.IsTrue((ushort)(uint)125 == 0x7D, "Conv_Ovf_U2_Un doesn't work(throws incorrectly)");
+ ushort x = 0;
+ bool error = false;
+ try
+ {
+ x = (ushort)(uint)(val + ushort.MaxValue);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U2_Un doesn't work(error was not thrown): " + x);
+ }
+
// Test Methods
val2 = TestMethod(value);
Assert.IsTrue(value == 60, "Passing an UInt16 as a method parameter doesn't work");
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt32Test.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt32Test.cs
new file mode 100644
index 0000000000..066f387624
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt32Test.cs
@@ -0,0 +1,236 @@
+using System;
+
+using Cosmos.TestRunner;
+
+namespace Cosmos.Compiler.Tests.Bcl.System
+{
+ internal static class UInt32Test
+ {
+ public static void Execute()
+ {
+ uint value;
+ string result;
+ string expectedResult;
+
+ value = UInt32.MaxValue;
+
+ result = value.ToString();
+ expectedResult = "4294967295";
+
+ //Assert.IsTrue((result == expectedResult), "UInt32.ToString doesn't work");
+
+ // Now let's try to concat to a String using '+' operator
+ result = "The Maximum value of an UInt32 is " + value;
+ expectedResult = "The Maximum value of an UInt32 is 4294967295";
+
+ Assert.IsTrue((result == expectedResult), "String concat (UInt32) doesn't work");
+
+ // Now let's try to use '$ instead of '+'
+ result = $"The Maximum value of an UInt32 is {value}";
+ // Actually 'expectedResult' should be the same so...
+ Assert.IsTrue((result == expectedResult), "String format (UInt32) doesn't work");
+
+ // Now let's Get the HashCode of a value
+ int resultAsInt = value.GetHashCode();
+
+ // actually the Hash Code of a Int32 is the same value (but expressed as Int32 so could have sign!)
+ Assert.IsTrue((resultAsInt == (int)value), "UInt32.GetHashCode() doesn't work");
+
+#if false
+ // Now let's try ToString() again but printed in hex (this test fails for now!)
+ result = value.ToString("X2");
+ expectedResult = "0x7FFFFFFF";
+
+ Assert.IsTrue((result == expectedResult), "Int32.ToString(X2) doesn't work");
+#endif
+
+ // basic bit operations
+
+ uint val2;
+
+ value = 0x0C; // low-order bits: 0b0000_1100
+
+ val2 = ~value; // val2 = ~value = low-order bits: 0b1111_0011
+ Assert.IsTrue(val2 == 0xFFFFFFF3, "UInt32 bitwise not doesn't work got: " + val2);
+
+ val2 = value & 0x06; // low-order bits: val2 = value & 0b0000_0110 = 0b0000_0100
+ Assert.IsTrue(val2 == 0x04, "UInt32 bitwise and doesn't work got: " + val2);
+
+ val2 = value | 0x06; // low-order bits: val2 = value | 0b0000_0110 = 0b0000_1110
+ Assert.IsTrue(val2 == 0x0E, "UInt32 bitwise or doesn't work got: " + val2);
+
+ val2 = value ^ 0x06; // low-order bits: val2 = value ^ 0b0000_0110 = 0b0000_1010
+ Assert.IsTrue(val2 == 0x0A, "UInt32 bitwise xor doesn't work got: " + val2);
+
+ val2 = value >> 0x02; // low-order bits: val2 = value >> 0b0000_0010 = 0b0000_0011
+ Assert.IsTrue(val2 == 0x03, "UInt32 left shift doesn't work got: " + val2);
+
+ val2 = value << 0x02; // low-order bits: val2 = value << 0b0000_0010 = 0b0011_0000
+ Assert.IsTrue(val2 == 0x30, "UInt32 right shift doesn't work got: " + val2);
+
+ // basic arithmetic operations
+
+ value = 60;
+
+ val2 = value + 5;
+ Assert.IsTrue(val2 == 65, "UInt32 addition doesn't work got: " + val2);
+
+ val2 = value - 5;
+ Assert.IsTrue(val2 == 55, "UInt32 subtraction doesn't work got: " + val2);
+
+ val2 = value * 5;
+ Assert.IsTrue(val2 == 300, "UInt32 multiplication doesn't work got: " + val2);
+
+ val2 = value / 5;
+ Assert.IsTrue(val2 == 12, "UInt32 division doesn't work got: " + val2);
+
+ val2 = value % 7;
+ Assert.IsTrue(val2 == 4, "UInt32 remainder doesn't work got: " + val2);
+
+ // Now test conversions
+
+ uint maxValue = UInt32.MaxValue;
+ uint minValue = UInt32.MinValue;
+
+ // TODO: some convert instructions aren't being emitted, we should find other ways of getting them emitted
+
+ // Test Conv_I1
+ Assert.IsTrue((sbyte)maxValue == -1, "Conv_I1 for UInt32 doesn't work");
+ Assert.IsTrue((sbyte)minValue == 0, "Conv_I1 for UInt32 doesn't work");
+
+ // Test Conv_U1
+ Assert.IsTrue((byte)maxValue == 0xFF, "Conv_U1 for UInt32 doesn't work");
+ Assert.IsTrue((byte)minValue == 0x00, "Conv_U1 for UInt32 doesn't work");
+
+ // Test Conv_I2
+ Assert.IsTrue((short)maxValue == -0x0001, "Conv_I2 for UInt32 doesn't work");
+ Assert.IsTrue((short)minValue == 0x0000, "Conv_I2 for UInt32 doesn't work");
+
+ // Test Conv_U2
+ Assert.IsTrue((ushort)maxValue == 0xFFFF, "Conv_U2 for UInt32 doesn't work");
+ Assert.IsTrue((ushort)minValue == 0x0000, "Conv_U2 for UInt32 doesn't work");
+
+ // Test Conv_I4
+ Assert.IsTrue((int)maxValue == -0x00000001, "Conv_I4 for UInt32 doesn't work");
+ Assert.IsTrue((int)minValue == 0x00000000, "Conv_I4 for UInt32 doesn't work");
+
+ // Test Conv_U4
+ Assert.IsTrue((uint)maxValue == 0xFFFFFFFF, "Conv_U4 for UInt32 doesn't work");
+ Assert.IsTrue((uint)minValue == 0x00000000, "Conv_U4 for UInt32 doesn't work");
+
+ // Test Conv_I8
+ Assert.IsTrue((long)maxValue == 0x00000000FFFFFFFF, "Conv_I8 for UInt32 doesn't work");
+ Assert.IsTrue((long)minValue == 0x0000000000000000, "Conv_I8 for UInt32 doesn't work");
+
+ // Test Conv_U8
+ Assert.IsTrue((ulong)maxValue == 0x00000000FFFFFFFF, "Conv_U8 for UInt32 doesn't work");
+ Assert.IsTrue((ulong)minValue == 0x0000000000000000, "Conv_U8 for UInt32 doesn't work");
+
+ // Test Conv_R4
+ Assert.IsTrue((float)maxValue == uint.MaxValue, "Conv_R4 for UInt32 doesn't work");
+ Assert.IsTrue((float)minValue == uint.MinValue, "Conv_R4 for UInt32 doesn't work");
+
+ // Test Conv_R8
+ Assert.IsTrue((double)maxValue == uint.MaxValue, "Conv_R8 for UInt32 doesn't work");
+ Assert.IsTrue((double)minValue == uint.MinValue, "Conv_R8 for UInt32 doesn't work");
+
+ //Test checked conversions
+ long val = 1;
+
+ // Test Conv_Ovf_U4
+ checked
+ {
+ Assert.IsTrue((uint)(long)125 == 0x7D, "Conv_Ovf_U4 doesn't work(throws incorrectly)");
+ uint x = 0;
+ bool error = false;
+ try
+ {
+ x = (uint)(uint.MaxValue + val);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U4 doesn't work(error was not thrown): " + x);
+ try
+ {
+ int y = 1;
+ x = (uint)(-80 + y);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U4 doesn't work for negative integers(error was not thrown): " + x);
+ }
+
+
+ // Test Conv_Ovf_U4_Un
+ checked
+ {
+ Assert.IsTrue((uint)(ulong)125 == 0x7D, "Conv_Ovf_U4_Un doesn't work(throws incorrectly)");
+ long max = uint.MaxValue;
+ Assert.IsTrue((uint)(ulong)max == uint.MaxValue, "Conv_Ovf_U4_Un doesn't work(throws incorrectly)");
+ uint x = 0;
+ bool error = false;
+ try
+ {
+ x = (uint)(ulong)(val + uint.MaxValue);
+ }
+ catch (Exception)
+ {
+ error = true;
+ }
+ Assert.IsTrue(error, "Conv_Ovf_U4_Un doesn't work(error was not thrown): " + x);
+ }
+
+ //Test Methods
+ val2 = TestMethod(value);
+ Assert.IsTrue(value == 60, "Passing an UInt32 as a method parameter doesn't work");
+ Assert.IsTrue(val2 == 61, "Returning an UInt32 value from a method doesn't work");
+
+ ByRefTestMethod(ref value);
+ Assert.IsTrue(value == 61, "Passing an UInt32 by ref to a method doesn't work");
+ uint val3o = 10000;
+ bool efuse = false;
+ try
+ {
+ checked
+ {
+ val3o += uint.MaxValue;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Add_Ovf for UInt32 doesn't work: " + val3o);
+
+ efuse = false;
+ val3o = 10000;
+ try
+ {
+ checked
+ {
+ val3o -= 2147483647;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Sub_Ovf for UInt32 doesn't work: " + val3o);
+ }
+
+ public static uint TestMethod(uint aParam)
+ {
+ aParam++;
+ return aParam;
+ }
+
+ public static void ByRefTestMethod(ref uint aParam)
+ {
+ aParam++;
+ }
+ }
+}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/UInt64Test.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt64Test.cs
similarity index 83%
rename from Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/UInt64Test.cs
rename to Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt64Test.cs
index c171f1eab4..3b90380bc1 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/UInt64Test.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/System/UInt64Test.cs
@@ -18,6 +18,8 @@ public static void Execute()
expectedResult = "18446744073709551615";
Assert.IsTrue((result == expectedResult), "UInt64.ToString doesn't work");
+ Assert.IsTrue(value.ToString("X") == "FFFFFFFFFFFFFFFF", "UInt64.ToString(X) doesn't work");
+ Assert.IsTrue(((ulong)0x121411443).ToString("X") == "121411443", "UInt64.ToString(X) doesn't work");
// Now let's try to concat to a String using '+' operator
result = "The Maximum value of an UInt64 is " + value;
@@ -159,6 +161,21 @@ public static void Execute()
Assert.IsTrue((double)maxValue == UInt64.MaxValue, "Conv_R8 for UInt64 doesn't work");
Assert.IsTrue((double)minValue == UInt64.MinValue, "Conv_R8 for UInt64 doesn't work");
+ //Test checked conversions
+
+ // Test for Conv_Ovf_U8
+ checked
+ {
+ Assert.IsTrue((ulong)125 == 0x7D, "Conv_Ovf_U8 doesn't work(throws incorrectly)");
+ }
+
+ checked
+ {
+ uint t = 125;
+ Assert.IsTrue((ulong)t == 0x7D, "Conv_Ovf_U8 doesn't work(throws incorrectly)");
+ }
+ // TODO: If possible, somehow add tests for Conv_Ovf_I8_Un
+
// Test Methods
value = 60;
@@ -169,6 +186,37 @@ public static void Execute()
ByRefTestMethod(ref value);
Assert.IsTrue(value == 61, "Passing an UInt64 by ref to a method doesn't work");
+
+ //Test Overflow Exceptions
+ ulong val3o = 10000;
+ bool efuse = false;
+ try
+ {
+ checked
+ {
+ val3o += ulong.MaxValue;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Add_Ovf for UInt64 doesn't work: " + val3o);
+
+ efuse = false;
+ val3o = 10000;
+ try
+ {
+ checked
+ {
+ val3o -= 2147483647;
+ }
+ }
+ catch (OverflowException)
+ {
+ efuse = true;
+ }
+ Assert.IsTrue(efuse, "Sub_Ovf for UInt64 doesn't work: " + val3o);
}
public static ulong TestMethod(ulong aParam)
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/packages.lock.json b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/packages.lock.json
new file mode 100644
index 0000000000..e81a7756fb
--- /dev/null
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl.System/packages.lock.json
@@ -0,0 +1,2729 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net6.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "(, )",
+ "resolved": "15.0.0",
+ "contentHash": "fiOrr+qc9NUc7T8am9Kz9TlXVDa+tQcVP3WFXyeZQA1vrbgsA578wcmGhSbc7KxMcWCu2GG4i0DKK1c5pLRdpQ==",
+ "dependencies": {
+ "Microsoft.TestPlatform.TestHost": "15.0.0"
+ }
+ },
+ "Dapper.StrongName": {
+ "type": "Transitive",
+ "resolved": "2.0.90",
+ "contentHash": "oYmC8zT97TBlmNcU/xM54CJC6sgG+VUmUhRN5tg05P1Y3H4wx7vU+xBM6MgEJ21aXAXsTctchPs5TCsbRdIxJw=="
+ },
+ "IgnoresAccessChecksToGenerator": {
+ "type": "Transitive",
+ "resolved": "0.5.0",
+ "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ=="
+ },
+ "Microsoft.CSharp": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA=="
+ },
+ "Microsoft.Data.Sqlite.Core": {
+ "type": "Transitive",
+ "resolved": "6.0.5",
+ "contentHash": "NDvPAsJZSptFxB5B5t3a/7UUihO2nPm8nsEG3s2EtnccIotMsQqSkDdak/T/tWQUivzdiy1Q/0jXk97zQgD75Q==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "Microsoft.DiaSymReader": {
+ "type": "Transitive",
+ "resolved": "1.3.0",
+ "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.1"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ=="
+ },
+ "Microsoft.NETCore.Targets": {
+ "type": "Transitive",
+ "resolved": "1.1.0",
+ "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "cmnwtae/q/DKcWT6aF3fvexPhQ/rhr0twc+2VLEhzDBfE0khtBGrlDvnCfcWktGjShtTCB0OO204JdS3QtAByQ==",
+ "dependencies": {
+ "NETStandard.Library": "1.6.0",
+ "System.ComponentModel.EventBasedAsync": "4.0.11",
+ "System.ComponentModel.TypeConverter": "4.1.0",
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Diagnostics.Tracing": "4.1.0",
+ "System.IO.FileSystem": "4.0.1",
+ "System.Reflection.Metadata": "1.3.0",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.InteropServices": "4.1.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Runtime.Serialization.Json": "4.0.2",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Security.Cryptography.Algorithms": "4.2.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Xml.XPath.XmlDocument": "4.0.1"
+ }
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "15.0.0",
+ "contentHash": "OIQilyR5xljftuD2UcKoXANGrHESt/MN7DVfzEdpF7Lg7CtL6NMADidHjZU+iwHCdvpyqBJ+TE7aI01qYVWsaw==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "15.0.0",
+ "Newtonsoft.Json": "9.0.1"
+ }
+ },
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "NETStandard.Library": {
+ "type": "Transitive",
+ "resolved": "1.6.1",
+ "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.AppContext": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Console": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.Compression.ZipFile": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Linq.Expressions": "4.3.0",
+ "System.Net.Http": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Timer": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0",
+ "System.Xml.XDocument": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "9.0.1",
+ "contentHash": "U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
+ "dependencies": {
+ "Microsoft.CSharp": "4.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Dynamic.Runtime": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XDocument": "4.0.11"
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.native.System": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.native.System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ME+/evR+UxVlWyGHUlLBoNTnsTdaylMbnvVwOp0Nl6XIZGGyXdqJqjlEew7e6TcKkJAA0lljhjKi3Kie+vzQ7g==",
+ "dependencies": {
+ "runtime.linux-arm.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.linux-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4",
+ "runtime.osx-x64.runtime.native.System.IO.Ports": "5.0.0-rtm.20519.4"
+ }
+ },
+ "runtime.native.System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "SQLitePCLRaw.bundle_e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "zssYqiaucyGArZfg74rJuzK0ewgZiidsRVrZTmP7JLNvK806gXg6PGA46XzoJGpNPPA5uRcumwvVp6YTYxtQ5w==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6",
+ "SQLitePCLRaw.lib.e_sqlite3": "2.0.6",
+ "SQLitePCLRaw.provider.e_sqlite3": "2.0.6"
+ }
+ },
+ "SQLitePCLRaw.core": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "Vh8n0dTvwXkCGur2WqQTITvk4BUO8i8h9ucSx3wwuaej3s2S6ZC0R7vqCTf9TfS/I4QkXO6g3W2YQIRFkOcijA==",
+ "dependencies": {
+ "System.Memory": "4.5.3"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "SQLitePCLRaw.provider.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "peXLJbhU+0clVBIPirihM1NoTBqw8ouBpcUsVMlcZ4k6fcL2hwgkctVB2Nt5VsbnOJcPspQL5xQK7QvLpxkMgg==",
+ "dependencies": {
+ "SQLitePCLRaw.core": "2.0.6"
+ }
+ },
+ "System.AppContext": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Collections.NonGeneric": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Collections.Specialized": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
+ "dependencies": {
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Globalization": "4.0.11",
+ "System.Globalization.Extensions": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.ComponentModel": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
+ "dependencies": {
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
+ },
+ "System.ComponentModel.EventBasedAsync": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11"
+ }
+ },
+ "System.ComponentModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
+ "dependencies": {
+ "System.ComponentModel": "4.0.1",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.ComponentModel.TypeConverter": {
+ "type": "Transitive",
+ "resolved": "4.1.0",
+ "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.NonGeneric": "4.0.1",
+ "System.Collections.Specialized": "4.0.1",
+ "System.ComponentModel": "4.0.1",
+ "System.ComponentModel.Primitives": "4.1.0",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Dynamic.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Linq": "4.1.0",
+ "System.Linq.Expressions": "4.1.0",
+ "System.ObjectModel": "4.0.12",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.Compression.ZipFile": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.Compression": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.IO.UnmanagedMemoryStream": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "tS89nK7pw8ebkkEfWujA05+ZReHKzz39W+bcX1okVR0GJCJuzPyfYfQZyiLSrjp121BB5J4uewZQiUTKri2pSQ==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Linq": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Linq.Expressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.ObjectModel": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Emit.Lightweight": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Reflection.TypeExtensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Memory": {
+ "type": "Transitive",
+ "resolved": "4.5.4",
+ "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw=="
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Private.DataContractSerialization": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Collections.Concurrent": "4.0.12",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Emit.Lightweight": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Runtime.Serialization.Primitives": "4.1.1",
+ "System.Text.Encoding": "4.0.11",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Threading.Tasks": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1",
+ "System.Xml.XmlSerializer": "4.0.11"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.ILGeneration": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Emit.Lightweight": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Emit.ILGeneration": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.TypeExtensions": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA=="
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Serialization.Json": {
+ "type": "Transitive",
+ "resolved": "4.0.2",
+ "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
+ "dependencies": {
+ "System.IO": "4.1.0",
+ "System.Private.DataContractSerialization": "4.1.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Runtime.Serialization.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.1.1",
+ "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
+ "dependencies": {
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I1tkfQlAoMM2URscUtpcRo/hX0jinXx6a/KUtEQoz3owaYwl3qwsO8cbzYVVnjxrzxjHo3nJC+62uolgeGIS9A==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.RegularExpressions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Thread": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Xml.ReaderWriter": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Text.RegularExpressions": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Tasks.Extensions": "4.3.0"
+ }
+ },
+ "System.Xml.XDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tools": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Xml.ReaderWriter": "4.3.0"
+ }
+ },
+ "System.Xml.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.Encoding": "4.0.11",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XmlSerializer": {
+ "type": "Transitive",
+ "resolved": "4.0.11",
+ "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Linq": "4.1.0",
+ "System.Reflection": "4.1.0",
+ "System.Reflection.Emit": "4.0.1",
+ "System.Reflection.Emit.ILGeneration": "4.0.1",
+ "System.Reflection.Extensions": "4.0.1",
+ "System.Reflection.Primitives": "4.0.1",
+ "System.Reflection.TypeExtensions": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Text.RegularExpressions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "System.Xml.XPath": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11"
+ }
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.0.1",
+ "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==",
+ "dependencies": {
+ "System.Collections": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.IO": "4.1.0",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "System.Xml.ReaderWriter": "4.0.11",
+ "System.Xml.XPath": "4.0.1",
+ "System.Xml.XmlDocument": "4.0.1"
+ }
+ },
+ "cosmos.build.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )"
+ }
+ },
+ "cosmos.common": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.compiler.tests.bcl": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core.debugstub": {
+ "type": "Project"
+ },
+ "cosmos.core_asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.IL2CPU": "[0.1.0-localbuild, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.core_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IgnoresAccessChecksToGenerator": "[0.5.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.debug.common": {
+ "type": "Project",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "[5.0.0, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.debugconnectors": {
+ "type": "Project",
+ "dependencies": {
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Pipes": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )",
+ "System.Threading.Thread": "[4.3.0, )"
+ }
+ },
+ "cosmos.debug.hosts": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Common": "[0.1.0-localbuild, )",
+ "System.Diagnostics.Process": "[4.3.0, )",
+ "System.IO.Ports": "[5.0.0, )"
+ }
+ },
+ "cosmos.debug.kernel": {
+ "type": "Project"
+ },
+ "cosmos.debug.kernel.plugs.asm": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.hal2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.il2cpu": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Core.DebugStub": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )",
+ "IL2CPU.Debug.Symbols": "[0.1.0-localbuild, )",
+ "System.Memory": "[4.5.4, )",
+ "System.Reflection.Metadata": "[5.0.0, )",
+ "System.Reflection.TypeExtensions": "[4.7.0, )",
+ "System.Runtime.CompilerServices.Unsafe": "[5.0.0, )",
+ "System.Runtime.Loader": "[4.3.0, )",
+ "XSharp": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Core_Asm": "[0.1.0-localbuild, )",
+ "Cosmos.Core_Plugs": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel.Plugs.Asm": "[0.1.0-localbuild, )",
+ "Cosmos.System2_Plugs": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.system2_plugs": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )",
+ "Cosmos.HAL2": "[0.1.0-localbuild, )",
+ "Cosmos.System2": "[0.1.0-localbuild, )",
+ "IL2CPU.API": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.core": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Build.Common": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.DebugConnectors": "[0.1.0-localbuild, )",
+ "Cosmos.Debug.Hosts": "[0.1.0-localbuild, )",
+ "Cosmos.TestRunner.TestController": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testadapter": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.TestRunner.Core": "[0.1.0-localbuild, )"
+ }
+ },
+ "cosmos.testrunner.testcontroller": {
+ "type": "Project",
+ "dependencies": {
+ "Cosmos.Debug.Kernel": "[0.1.0-localbuild, )"
+ }
+ },
+ "dapperextensions.strongname": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "Microsoft.CSharp": "[4.7.0, )"
+ }
+ },
+ "il2cpu.api": {
+ "type": "Project"
+ },
+ "il2cpu.debug.symbols": {
+ "type": "Project",
+ "dependencies": {
+ "Dapper.StrongName": "[2.0.90, )",
+ "DapperExtensions.StrongName": "[0.1.0-localbuild, )",
+ "Microsoft.Data.Sqlite.Core": "[6.0.5, )",
+ "Microsoft.DiaSymReader": "[1.3.0, )",
+ "SQLitePCLRaw.bundle_e_sqlite3": "[2.0.6, )",
+ "SQLitePCLRaw.core": "[2.0.6, )",
+ "SQLitePCLRaw.lib.e_sqlite3.linux": "[1.1.14, )",
+ "System.ComponentModel.Annotations": "[5.0.0, )",
+ "System.Data.SqlClient": "[4.8.5, )",
+ "System.IO.MemoryMappedFiles": "[4.3.0, )",
+ "System.Reflection.Metadata": "[5.0.0, )"
+ }
+ },
+ "spruce": {
+ "type": "Project"
+ },
+ "xsharp": {
+ "type": "Project",
+ "dependencies": {
+ "Spruce": "[0.1.0-localbuild, )"
+ }
+ }
+ },
+ "net6.0/win-x86": {
+ "Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.Microsoft.Win32.Primitives": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
+ "dependencies": {
+ "System.Security.AccessControl": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "runtime.any.System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "23g6rqftKmovn2cLeGsuHUYm0FD7pdutb0uQMJpZ3qTvq+zHkgmt6J65VtRry4WDGYlmkMa4xDACtaQ94alNag==",
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "runtime.any.System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "S/GPBmfPBB48ZghLxdDR7kDAJVAqgAuThyDJho3OLP5OS4tWD2ydyL8LKm8lhiBxce10OKe9X2zZ6DUjAqEbPg=="
+ },
+ "runtime.any.System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1lpifymjGDzoYIaam6/Hyqf8GhBI3xXYLK2TgEvTtuZMorG3Kb9QnMTIKhLjJYXIiu1JvxjngHvtVFQQlpQ3HQ=="
+ },
+ "runtime.any.System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sMDBnad4rp4t7GY442Jux0MCUuKL4otn5BK6Ni0ARTXTSpRNBzZ7hpMfKSvnVSED5kYJm96YOWsqV0JH0d2uuw=="
+ },
+ "runtime.any.System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "M1r+760j1CNA6M/ZaW6KX8gOS8nxPRqloqDcJYVidRG566Ykwcs29AweZs2JF+nMOCgWDiMfPSTMfvwOI9F77w=="
+ },
+ "runtime.any.System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ=="
+ },
+ "runtime.any.System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hLC3A3rI8jipR5d9k7+f0MgRCW6texsAp0MWkN/ci18FMtQ9KH7E2vDn/DH2LkxsszlpJpOn9qy6Z6/69rH6eQ=="
+ },
+ "runtime.any.System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cPhT+Vqu52+cQQrDai/V91gubXUnDKNRvlBnH+hOgtGyHdC17aQIU64EaehwAQymd7kJA5rSrVRNfDYrbhnzyA=="
+ },
+ "runtime.any.System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Nrm1p3armp6TTf2xuvaa+jGTTmncALWFq22CpmwRvhDf6dE9ZmH40EbOswD4GnFLrMRS0Ki6Kx5aUPmKK/hZBg=="
+ },
+ "runtime.any.System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Lxb89SMvf8w9p9+keBLyL6H6x/TEmc6QVsIIA0T36IuyOY3kNvIdyGddA2qt35cRamzxF8K5p0Opq4G4HjNbhQ=="
+ },
+ "runtime.any.System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "runtime.any.System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GG84X6vufoEzqx8PbeBKheE4srOhimv+yLtGb/JkR3Y2FmoqmueLNFU4Xx8Y67plFpltQSdK74x0qlEhIpv/CQ=="
+ },
+ "runtime.any.System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw=="
+ },
+ "runtime.any.System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+ihI5VaXFCMVPJNstG4O4eo1CfbrByLxRrQQTqOTp1ttK0kUKDqOdBSTaCB2IBk/QtjDrs6+x4xuezyMXdm0HQ=="
+ },
+ "runtime.any.System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NLrxmLsfRrOuVqPWG+2lrQZnE53MLVeo+w9c54EV+TUo4c8rILpsDXfY8pPiOy9kHpUHHP07ugKmtsU3vVW5Jg=="
+ },
+ "runtime.any.System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OhBAVBQG5kFj1S+hCEQ3TUHBAEtZ3fbEMgZMRNdN8A0Pj4x+5nTELEqL59DU0TjKVE6II3dqKw4Dklb3szT65w=="
+ },
+ "runtime.any.System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "w4ehZJ+AwXYmGwYu+rMvym6RvMaRiUEQR1u6dwcyuKHxz8Heu/mO9AG1MquEgTyucnhv3M43X0iKpDOoN17C0w=="
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
+ },
+ "runtime.linux-arm.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "Np6w3r1dSFB930GGZHIKCc5ZClRXZIqOrCAT0pzcd/zXnsZPvGqLZB1MnxAbVhvriJl71B0N0tJaaT1ICWXsyg=="
+ },
+ "runtime.linux-arm64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "VnGZmQ7pzMNkcTVdmGtXUQIbytK4Xk8F4/mxm0I+n7zbrsW/WNgLrWMTv9pb2Uyq09azXazNDQhZao4R4ebWcw=="
+ },
+ "runtime.linux-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "kvMZgZjtcC6cA8Y8imKpjCpiOJKDtwlNekS86GzUol4Jmzh0FWiRwAj4E9ZKO8R7rTBGIA4rkmra9Ko8j7l6AA=="
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
+ },
+ "runtime.osx-x64.runtime.native.System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0-rtm.20519.4",
+ "contentHash": "N+dbbqhT7JBnPVHa7n2+Z5fHYO4a4UUhm7cQkbuQQoNkjbxLpxYnQ4lpRjr1RuQptqYkPmunKvN5etdFOObaiw=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "runtime.win.Microsoft.Win32.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==",
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "runtime.win.System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RRACWygml5dnmfgC1SW6tLGsFgwsUAKFtvhdyHnIEz4EhWyrd7pacDdY95CacQJy7BMXRDRCejC9aCRC0Y1sQA==",
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "hHHP0WCStene2jjeYcuDkETozUYF/3sHVRHAEOgS3L15hlip24ssqCTnJC28Z03Wpo078oMcJd0H4egD2aJI8g=="
+ },
+ "runtime.win.System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z37zcSCpXuGCYtFbqYO0TwOVXxS2d+BXgSoDFZmRg8BC4Cuy54edjyIvhhcfCrDQA9nl+EPFTgHN54dRAK7mNA==",
+ "dependencies": {
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "lkXXykakvXUU+Zq2j0pC6EO20lEhijjqMc01XXpp1CJN+DeCwl3nsj4t5Xbpz3kA7yQyTqw6d9SyIzsyLsV3zA==",
+ "dependencies": {
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "runtime.win.System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FK/2gX6MmuLIKNCGsV59Fe4IYrLrI5n9pQ1jh477wiivEM/NCXDT2dRetH5FSfY0bQ+VgTLcS3zcmjQ8my3nxQ==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.NameResolution": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "runtime.win.System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "RkgHVhUPvzZxuUubiZe8yr/6CypRVXj0VBzaR8hsqQ8f+rUo7e4PWrHTLOCjd8fBMGWCrY//fi7Ku3qXD7oHRw==",
+ "dependencies": {
+ "System.Private.Uri": "4.3.0"
+ }
+ },
+ "SQLitePCLRaw.lib.e_sqlite3": {
+ "type": "Transitive",
+ "resolved": "2.0.6",
+ "contentHash": "xlstskMKalKQl0H2uLNe0viBM6fvAGLWqKZUQ3twX5y1tSOZKe0+EbXopQKYdbjJytNGI6y5WSKjpI+kVr2Ckg=="
+ },
+ "SQLitePCLRaw.lib.e_sqlite3.linux": {
+ "type": "Transitive",
+ "resolved": "1.1.14",
+ "contentHash": "1v/otrtQTWNTRBx9mmZly9AOR5OFzSDlHEuBSYrewTWI/jvUReYrE/YlpTwvgLFXkJizUii/Vao7K48WJEPjng=="
+ },
+ "System.Buffers": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Collections": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Collections": "4.3.0"
+ }
+ },
+ "System.Console": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.win.System.Console": "4.3.0"
+ }
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.8.5",
+ "contentHash": "fRqxut4lrndPHrXD+ht1XRmCL3obuKldm4XjCRYS9p5f7FSR7shBxAwTkDrpFMsHC9BhNgjjmUtiIjvehn5zkg==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "4.7.0",
+ "System.Security.Principal.Windows": "4.7.0",
+ "runtime.native.System.Data.SqlClient.sni": "4.7.0"
+ }
+ },
+ "System.Diagnostics.Debug": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Diagnostics.Debug": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.Win32.Primitives": "4.3.0",
+ "Microsoft.Win32.Registry": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.3.0",
+ "System.Threading.ThreadPool": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tools": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tools": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource": {
+ "type": "Transitive",
+ "resolved": "4.0.0",
+ "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1",
+ "System.Collections": "4.0.11",
+ "System.Diagnostics.Debug": "4.0.11",
+ "System.Globalization": "4.0.11",
+ "System.Resources.ResourceManager": "4.0.1",
+ "System.Runtime": "4.1.0",
+ "System.Runtime.Extensions": "4.1.0",
+ "System.Threading": "4.0.11",
+ "runtime.native.System": "4.0.0"
+ }
+ },
+ "System.Diagnostics.Tracing": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Diagnostics.Tracing": "4.3.0"
+ }
+ },
+ "System.Globalization": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Globalization.Calendars": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.any.System.IO": "4.3.0"
+ }
+ },
+ "System.IO.Compression": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.IO.FileSystem": "4.3.0"
+ }
+ },
+ "System.IO.MemoryMappedFiles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "mz2JJFxCQLdMzXVOPyVibDKDKFZey66YHgQy8M1/vUCQzMSrbiXhpsyV04vSlBeqQUdM7wTL2WG+X3GZALKsIQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.IO.UnmanagedMemoryStream": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Pipes": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "wpGJuACA6r8+KRckXoI6ghGTwgPRiICI6T7kgHI/m7S5eMqV/8jH37fzAUhTwIe9RwlH/j1sWwm2Q2zyXwZGHw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Net.Sockets": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Overlapped": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "MZY/0cgRg5bcuvHR4LKHqWnlxWV7GkoTgBaOdwIoWGZKsfSBC1twDz+BzG0o1Rk46WdRhhV30E2qzsBABHwGUA==",
+ "dependencies": {
+ "Microsoft.Win32.Registry": "5.0.0",
+ "runtime.native.System.IO.Ports": "5.0.0"
+ }
+ },
+ "System.Net.Http": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Net.NameResolution": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "AFYl08R7MrsrEjqpQWTZWBadqXyTzNDaWpMqyxhb0d6sGhV6xMDKueuBXlLL30gz+DIRY6MpdgnHWlCh5wmq9w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Principal.Windows": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Net.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.win.System.Net.Primitives": "4.3.0"
+ }
+ },
+ "System.Net.Sockets": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.win.System.Net.Sockets": "4.3.0"
+ }
+ },
+ "System.Private.Uri": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "I4SwANiUGho1esj4V4oSlPllXjzCZDE+5XXso2P03LW2vOda2Enzh8DWOxwN6hnrJyp314c7KuVu31QYhRzOGg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Reflection": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection": "4.3.0"
+ }
+ },
+ "System.Reflection.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Extensions": "4.3.0"
+ }
+ },
+ "System.Reflection.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Reflection.Primitives": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Resources.ResourceManager": "4.3.0"
+ }
+ },
+ "System.Runtime": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "runtime.any.System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.win.System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "runtime.any.System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
+ "dependencies": {
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Extensions": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Security.AccessControl": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "5.0.0",
+ "System.Security.Principal.Windows": "5.0.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Cng": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
+ }
+ },
+ "System.Security.Principal.Windows": {
+ "type": "Transitive",
+ "resolved": "5.0.0",
+ "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA=="
+ },
+ "System.Text.Encoding": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.any.System.Text.Encoding.Extensions": "4.3.0"
+ }
+ },
+ "System.Threading.Overlapped": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "m3HQ2dPiX/DSTpf+yJt8B0c+SRvzfqAJKx+QDWi+VLhz8svLT23MVjEOHPF/KiSLeArKU/iHescrbLd3yVgyNg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Timer": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "runtime.any.System.Threading.Timer": "4.3.0"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Cosmos.Compiler.Tests.Bcl.csproj b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Cosmos.Compiler.Tests.Bcl.csproj
index d6fb90ea57..f352f28624 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Cosmos.Compiler.Tests.Bcl.csproj
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Cosmos.Compiler.Tests.Bcl.csproj
@@ -1,14 +1,19 @@
- netcoreapp2.0
+ net6.0
+ cosmos
+ false
True
CA2242;$(NoWarn)
+ true
+ Debug;Release;TEST
+
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Helpers/EqualityHelper.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Helpers/EqualityHelper.cs
index d0b252e4d2..0c9e366f77 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Helpers/EqualityHelper.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Helpers/EqualityHelper.cs
@@ -2,7 +2,7 @@
namespace Cosmos.Compiler.Tests.Bcl
{
- internal static class EqualityHelper
+ public static class EqualityHelper
{
public static bool SinglesAreEqual(float left, float right)
{
@@ -55,5 +55,43 @@ public static bool ByteArrayAreEquals(byte[] a1, byte[] a2)
return true;
}
+
+ ///
+ /// Utility method to test int[] equality.
+ ///
+ /// int array.
+ /// int array.
+ /// True if the elements in the arrays are equal otherwise false.
+ public static bool IntArrayAreEquals(int[] a1, int[] a2)
+ {
+ if (ReferenceEquals(a1, a2))
+ {
+ //mDebugger.Send("a1 and a2 are the same Object");
+ return true;
+ }
+
+ if (a1 == null || a2 == null)
+ {
+ //mDebugger.Send("a1 or a2 is null so are different");
+ return false;
+ }
+
+ if (a1.Length != a2.Length)
+ {
+ //mDebugger.Send("a1.Length != a2.Length so are different");
+ return false;
+ }
+
+ for (int i = 0; i < a1.Length; i++)
+ {
+ if (a1[i] != a2[i])
+ {
+ //mDebugger.Send("In position " + i + " a byte is different");
+ return false;
+ }
+ }
+
+ return true;
+ }
}
}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Kernel.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Kernel.cs
index a20aa466d9..8858f24a12 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Kernel.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/Kernel.cs
@@ -25,31 +25,11 @@ protected override void Run()
{
mDebugger.Send("Run");
- // C#
+ //// C#
+ ObjectTest.Execute();
WhileLoopTests.Execute();
ForeachLoopTests.Execute();
- // System
- ObjectTests.Execute();
- ArrayTests.Execute();
- StringTest.Execute();
- ByteTest.Execute();
- SByteTest.Execute();
- Int16Test.Execute();
- UInt16Test.Execute();
- Int32Test.Execute();
- UInt32Test.Execute();
- Int64Test.Execute();
- UInt64Test.Execute();
- CharTest.Execute();
- BooleanTest.Execute();
- SingleTest.Execute();
- DoubleTest.Execute();
- MathTest.Execute();
- ConvertTests.Execute();
- DateTimeTests.Execute();
- TimeSpanTests.Execute();
-
//mDebugger.Send("Thread test start of 500 ms");
//ThreadTest.Execute();
//mDebugger.Send("Thread test end");
@@ -57,20 +37,23 @@ protected override void Run()
//DecimalTest.Execute();
BitConverterTest.Execute();
UnsafeCodeTest.Execute();
- DelegatesTest.Execute();
+ EventsTest.Execute();
RandomTests.Execute();
+ ConvertTests.Execute();
// System.Collections
HashtableTest.Execute();
// System.Collections.Generic
ListTest.Execute();
- QueueTest.Execute();
+ QueueTest.Execute();
DictionaryTest.Execute();
// System.Text
StringBuilderTest.Execute();
EncodingTest.Execute();
+
+ GuidTest.Execute();
TestController.Completed();
}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ArrayTests.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ArrayTests.cs
deleted file mode 100644
index 2335e10011..0000000000
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ArrayTests.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Cosmos.TestRunner;
-
-namespace Cosmos.Compiler.Tests.Bcl.System
-{
- class ArrayTests
- {
- public static void Execute()
- {
- byte[] xByteResult = { 1, 2, 3, 4, 5, 6, 7, 8 };
- byte[] xByteExpectedResult = { 1, 2, 3, 4, 5, 6, 7, 1 };
- byte[] xByteSource = { 1 };
-
- Array.Copy(xByteSource, 0, xByteResult, 7, 1);
-
- Assert.IsTrue((xByteResult[7] == xByteExpectedResult[7]), "Array.Copy doesn't work: xResult[7] = " + (uint)xByteResult[7] + " != " + (uint)xByteExpectedResult[7]);
-
- // Single[] Test
- float[] xSingleResult = { 1.25f, 2.50f, 3.51f, 4.31f, 9.28f, 18.56f };
- float[] xSingleExpectedResult = { 1.25f, 2.598f, 5.39f, 4.31f, 9.28f, 18.56f };
- float[] xSingleSource = { 0.49382f, 1.59034f, 2.598f, 5.39f, 7.48392f, 4.2839f };
-
- xSingleResult[1] = xSingleSource[2];
- xSingleResult[2] = xSingleSource[3];
-
- Assert.IsTrue(((xSingleResult[1] + xSingleResult[2]) == (xSingleExpectedResult[1] + xSingleExpectedResult[2])), "Assinging values to single array elements doesn't work: xResult[1] = " + (uint)xSingleResult[1] + " != " + (uint)xSingleExpectedResult[1] + " and xResult[2] = " + (uint)xSingleResult[2] + " != " + (uint)xSingleExpectedResult[2]);
-
- // Double[] Test
- double[] xDoubleResult = { 0.384, 1.5823, 2.5894, 2.9328539, 3.9201, 4.295 };
- double[] xDoubleExpectedResult = { 0.384, 1.5823, 2.5894, 95.32815, 3.9201, 4.295 };
- double[] xDoubleSource = { 95.32815 };
-
- xDoubleResult[3] = xDoubleSource[0];
-
- Assert.IsTrue(xDoubleResult[3] == xDoubleExpectedResult[3], "Assinging values to double array elements doesn't work: xResult[1] = " + (uint)xDoubleResult[3] + " != " + (uint)xDoubleExpectedResult[3]);
- }
- }
-}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ByteTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ByteTest.cs
deleted file mode 100644
index b4ac0d35c9..0000000000
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/ByteTest.cs
+++ /dev/null
@@ -1,157 +0,0 @@
-using System;
-
-using Cosmos.TestRunner;
-
-namespace Cosmos.Compiler.Tests.Bcl.System
-{
- internal static class ByteTest
- {
- public static void Execute()
- {
- byte value;
- string result;
- string expectedResult;
-
- value = Byte.MaxValue;
-
- result = value.ToString();
- expectedResult = "255";
-
- Assert.IsTrue((result == expectedResult), "Byte.ToString doesn't work");
-
- // Now let's try to concat to a String using '+' operator
- result = "The Maximum value of a Byte is " + value;
- expectedResult = "The Maximum value of a Byte is 255";
-
- Assert.IsTrue((result == expectedResult), "String concat (Byte) doesn't work");
-
- // Now let's try to use '$ instead of '+'
- result = $"The Maximum value of a Byte is {value}";
- // Actually 'expectedResult' should be the same so...
- Assert.IsTrue((result == expectedResult), "String format (Byte) doesn't work");
-
- // Now let's Get the HashCode of a value
- int resultAsInt = value.GetHashCode();
-
- // actually the Hash Code of a Byte is the same value expressed as int
- Assert.IsTrue((resultAsInt == value), "Byte.GetHashCode() doesn't work");
-
-#if false
- // Now let's try ToString() again but printed in hex (this test fails for now!)
- result = value.ToString("X2");
- expectedResult = "FF";
-
- Assert.IsTrue((result == expectedResult), "Byte.ToString(X2) doesn't work");
-#endif
-
- // basic bit operations
-
- int val2;
-
- value = 0x0C; // low-order bits: 0b0000_1100
-
- val2 = ~value; // low-order bits: val2 = ~value = 0b1111_0011
- Assert.IsTrue(val2 == -0x0D, "Byte bitwise not doesn't work got: " + val2);
-
- val2 = value & 0x06; // low-order bits: val2 = value & 0b0000_0110 = 0b0000_0100
- Assert.IsTrue(val2 == 0x04, "Byte bitwise and doesn't work got: " + val2);
-
- val2 = value | 0x06; // low-order bits: val2 = value | 0b0000_0110 = 0b0000_1110
- Assert.IsTrue(val2 == 0x0E, "Byte bitwise or doesn't work got: " + val2);
-
- val2 = value ^ 0x06; // low-order bits: val2 = value ^ 0b0000_0110 = 0b0000_1010
- Assert.IsTrue(val2 == 0x0A, "Byte bitwise xor doesn't work got: " + val2);
-
- val2 = value >> 0x02; // low-order bits: val2 = value >> 0b0000_0010 = 0b0000_0011
- Assert.IsTrue(val2 == 0x03, "Byte left shift doesn't work got: " + val2);
-
- val2 = value << 0x02; // low-order bits: val2 = value << 0b0000_0010 = 0b0011_0000
- Assert.IsTrue(val2 == 0x30, "Byte right shift doesn't work got: " + val2);
-
- // basic arithmetic operations
-
- value = 60;
-
- val2 = value + 5;
- Assert.IsTrue(val2 == 65, "Byte addition doesn't work got: " + val2);
-
- val2 = value - 5;
- Assert.IsTrue(val2 == 55, "Byte subtraction doesn't work got: " + val2);
-
- val2 = value * 5;
- Assert.IsTrue(val2 == 300, "Byte multiplication doesn't work got: " + val2);
-
- val2 = value / 5;
- Assert.IsTrue(val2 == 12, "Byte division doesn't work got: " + val2);
-
- val2 = value % 7;
- Assert.IsTrue(val2 == 4, "Byte remainder doesn't work got: " + val2);
-
- // Now test conversions
-
- byte maxValue = Byte.MaxValue;
- byte minValue = Byte.MinValue;
-
- // TODO: some convert instructions aren't being emitted, we should find other ways of getting them emitted
-
- // Test Conv_I1
- Assert.IsTrue((sbyte)maxValue == -0x01, "Conv_I1 for Byte doesn't work");
- Assert.IsTrue((sbyte)minValue == 0x00, "Conv_I1 for Byte doesn't work");
-
- // Test Conv_U1
- Assert.IsTrue((byte)maxValue == 0xFF, "Conv_U1 for Byte doesn't work");
- Assert.IsTrue((byte)minValue == 0x00, "Conv_U1 for Byte doesn't work");
-
- // Test Conv_I2
- Assert.IsTrue((short)maxValue == 0x00FF, "Conv_I2 for Byte doesn't work");
- Assert.IsTrue((short)minValue == 0x0000, "Conv_I2 for Byte doesn't work");
-
- // Test Conv_U2
- Assert.IsTrue((ushort)maxValue == 0x00FF, "Conv_U2 for Byte doesn't work");
- Assert.IsTrue((ushort)minValue == 0x0000, "Conv_U2 for Byte doesn't work");
-
- // Test Conv_I4
- Assert.IsTrue((int)maxValue == 0x000000FF, "Conv_I4 for Byte doesn't work");
- Assert.IsTrue((int)minValue == 0x00000000, "Conv_I4 for Byte doesn't work");
-
- // Test Conv_U4
- Assert.IsTrue((uint)maxValue == 0x000000FF, "Conv_U4 for Byte doesn't work");
- Assert.IsTrue((uint)minValue == 0x00000000, "Conv_U4 for Byte doesn't work");
-
- // Test Conv_I8
- Assert.IsTrue((long)maxValue == 0x00000000000000FF, "Conv_I8 for Byte doesn't work");
- Assert.IsTrue((long)minValue == 0x0000000000000000, "Conv_I8 for Byte doesn't work");
-
- // Test Conv_U8
- Assert.IsTrue((ulong)maxValue == 0x00000000000000FF, "Conv_U8 for Byte doesn't work");
- Assert.IsTrue((ulong)minValue == 0x0000000000000000, "Conv_U8 for Byte doesn't work");
-
- // Test Conv_R4
- Assert.IsTrue((float)maxValue == Byte.MaxValue, "Conv_R4 for Byte doesn't work" + (float)maxValue);
- Assert.IsTrue((float)minValue == Byte.MinValue, "Conv_R4 for Byte doesn't work");
-
- // Test Conv_R8
- Assert.IsTrue((double)maxValue == Byte.MaxValue, "Conv_R8 for Byte doesn't work");
- Assert.IsTrue((double)minValue == Byte.MinValue, "Conv_R8 for Byte doesn't work");
-
- // Test Methods
- val2 = TestMethod(value);
- Assert.IsTrue(value == 60, "Passing a Byte as a method parameter doesn't work");
- Assert.IsTrue(val2 == 61, "Returning a Byte value from a method doesn't work");
-
- ByRefTestMethod(ref value);
- Assert.IsTrue(value == 61, "Passing a Byte by ref to a method doesn't work");
- }
-
- public static byte TestMethod(byte aParam)
- {
- aParam++;
- return aParam;
- }
-
- public static void ByRefTestMethod(ref byte aParam)
- {
- aParam++;
- }
- }
-}
diff --git a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/Collections/Generic/DictionaryTest.cs b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/Collections/Generic/DictionaryTest.cs
index 997682958a..38e08e20fe 100644
--- a/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/Collections/Generic/DictionaryTest.cs
+++ b/Tests/Kernels/Cosmos.Compiler.Tests.Bcl/System/Collections/Generic/DictionaryTest.cs
@@ -1,113 +1,603 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using Cosmos.TestRunner;
-
-
-namespace Cosmos.Compiler.Tests.Bcl.System.Collections.Generic
-{
- public static class DictionaryTest
- {
- public static void Execute()
- {
- var dictionary = new Dictionary
- {
- {"a", "a"},
- {"b", "b" },
- {"c", "c"}
- };
-
- Assert.IsTrue(dictionary.ContainsKey("a"), "Dictionary ContainsKey does not work1");
- Assert.IsFalse(dictionary.ContainsKey("d"), "Dictionary ContainsKey does not work 2");
-
- //String test
- Assert.IsTrue(dictionary["a"] == "a", "Dictionary [] operator (get) does not work");
- dictionary["b"] = "d";
- Assert.IsTrue(dictionary["b"] == "d", "Dictionary [] operator (set existing) does not work");
-
- Assert.IsTrue(dictionary.Count == 3, "Dictionary.Count does not work");
- dictionary["d"] = "d";
- Assert.IsTrue(dictionary["d"] == "d", "Dictionary [] operator (set not existing) does not work");
-
- /* We added another key so now Count should be 4 */
- Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after new key) does not work");
-
- Dictionary.KeyCollection keyColl = dictionary.Keys;
-
- foreach (string key in keyColl)
- {
- Assert.IsTrue(key == "a" || key == "b" || key == "c" || key == "d", "Dictionary.Keys returns invalid key");
- }
-
- dictionary.Add("e", "e");
- /* We added another key so now Count should be 5 */
- Assert.IsTrue(dictionary.Count == 5, "Dictionary.Count (after Added key) does not work");
-
- /* Now we remove "e" key, the operation should succeed and Count should be 4 again */
- Assert.IsTrue(dictionary.Remove("e"), "Dictionary.Remove() of existing key does not work");
- Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after Removed key) does not work");
-
- /* Now we remove "f" key, the operation should fail as there is not "f" key */
- Assert.IsFalse(dictionary.Remove("f"), "Dictionary.Remove() of not existing key does not work");
-
- Assert.IsTrue(dictionary.TryGetValue("a", out string val), "Dictionary.TryGetValue() of existing key does not work");
- Assert.IsFalse(dictionary.TryGetValue("f", out string val2), "Dictionary.TryGetValue() of not existing key does not work");
-
- var dictionary2 = new Dictionary
- {
- { "One", 1 },
- { "Two", 2},
- { "Three", 3 },
- };
-
- Assert.IsTrue(dictionary2.ContainsKey("One"), "Dictionary ContainsKey does not work1");
- Assert.IsFalse(dictionary2.ContainsKey("Four"), "Dictionary ContainsKey does not work2");
-
- Assert.IsTrue(dictionary2["One"] == 1, "Dictionary operator [] does not work");
- dictionary2["Two"] = 22;
- Assert.IsTrue(dictionary2["Two"] == 22, "Dictionary [] operator (set existing) does not work");
-
- Assert.IsTrue(dictionary2.Count == 3, "Dictionary.Count does not work");
- dictionary2["Four"] = 4;
- Assert.IsTrue(dictionary2["Four"] == 4, "Dictionary [] operator (set not existing) does not work");
-
- /* We added another key so now Count should be 4 */
- Assert.IsTrue(dictionary2.Count == 4, "Dictionary.Count (after new key) does not work");
-
- Dictionary.KeyCollection keyColl2 = dictionary2.Keys;
-
- foreach (string key in keyColl2)
- {
- Assert.IsTrue(key == "One" || key == "Two" || key == "Three" || key == "Four", "Dictionary.Keys returns invalid key");
- }
-
- dictionary2.Add("Five", 5);
- /* We added another key so now Count should be 5 */
- Assert.IsTrue(dictionary2.Count == 5, "Dictionary.Count (after Added key) does not work");
-
- /* Now we remove "Five" key, the operation should succeed and Count should be 4 again */
- Assert.IsTrue(dictionary2.Remove("Five"), "Dictionary.Remove() of existing key does not work");
- Assert.IsTrue(dictionary2.Count == 4, "Dictionary.Count (after Removed key) does not work");
-
- /* Now we remove "Six" key, the operation should fail as there is not "Six" key */
- Assert.IsFalse(dictionary2.Remove("Six"), "Dictionary.Remove() of not existing key does not work");
-
- Assert.IsTrue(dictionary2.TryGetValue("One", out int val3), "Dictionary.TryGetValue() of existing key does not work");
- Assert.IsFalse(dictionary2.TryGetValue("Six", out int val4), "Dictionary.TryGetValue() of not existing key does not work");
-#if false
- var dictionary3 = new Dictionary
- {
- { 1, "One"},
- { 2, "Two"},
- { 3, "Three"},
- };
-
- Assert.IsTrue(dictionary3.ContainsKey(1), "Dictionary ContainsKey does not work1");
- Assert.IsFalse(dictionary3.ContainsKey(4), "Dictionary ContainsKey does not work2");
-
- Assert.IsTrue(dictionary3[1] == "One", "Dictionary operator [] does not work");
-#endif
- }
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Numerics;
+using System.Threading.Tasks;
+using Cosmos.TestRunner;
+
+
+namespace Cosmos.Compiler.Tests.Bcl.System.Collections.Generic
+{
+ public static class DictionaryTest
+ {
+ public static void Execute()
+ {
+ {
+ var dictionary = new Dictionary
+ {
+ {"a", "a"},
+ {"b", "b" },
+ {"c", "c"}
+ };
+
+ Assert.IsTrue(dictionary.ContainsKey("a"), "Dictionary ContainsKey does not work1");
+ Assert.IsFalse(dictionary.ContainsKey("d"), "Dictionary ContainsKey does not work 2");
+
+ //String test
+ Assert.IsTrue(dictionary["a"] == "a", "Dictionary [] operator (get) does not work");
+ dictionary["b"] = "d";
+ Assert.IsTrue(dictionary["b"] == "d", "Dictionary [] operator (set existing) does not work");
+
+ Assert.IsTrue(dictionary.Count == 3, "Dictionary.Count does not work");
+ dictionary["d"] = "d";
+ Assert.IsTrue(dictionary["d"] == "d", "Dictionary [] operator (set not existing) does not work");
+
+ /* We added another key so now Count should be 4 */
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after new key) does not work");
+
+ Dictionary.KeyCollection keyColl = dictionary.Keys;
+
+ foreach (string key in keyColl)
+ {
+ Assert.IsTrue(key == "a" || key == "b" || key == "c" || key == "d", "Dictionary.Keys returns invalid key");
+ }
+
+ dictionary.Add("e", "e");
+ /* We added another key so now Count should be 5 */
+ Assert.IsTrue(dictionary.Count == 5, "Dictionary.Count (after Added key) does not work");
+
+ /* Now we remove "e" key, the operation should succeed and Count should be 4 again */
+ Assert.IsTrue(dictionary.Remove("e"), "Dictionary.Remove() of existing key does not work");
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after Removed key) does not work");
+
+ /* Now we remove "f" key, the operation should fail as there is not "f" key */
+ Assert.IsFalse(dictionary.Remove("f"), "Dictionary.Remove() of not existing key does not work");
+
+ Assert.IsTrue(dictionary.TryGetValue("a", out string val), "Dictionary.TryGetValue() of existing key does not work");
+ Assert.IsFalse(dictionary.TryGetValue("f", out string val2), "Dictionary.TryGetValue() of not existing key does not work");
+
+ dictionary.Clear();
+
+ Assert.IsTrue(dictionary.Count == 0, "Dictionary().Clear does not work");
+ Assert.IsFalse(dictionary.ContainsKey("a"), "Dictionary().Clear does not work");
+
+ dictionary.Add("b", "basds");
+ Assert.IsTrue(dictionary.Count == 1, "Dictionary().Clear prevents correctly adding values again");
+ Assert.IsTrue(dictionary["b"] == "basds", "Dictionary().Clear prevents correctly adding values again");
+
+ dictionary.Add("", "1234");
+
+ Assert.AreEqual("1234", (string)dictionary[""], "key of \"\" failed");
+
+
+ }
+
+ {
+ var dictionary2 = new Dictionary
+ {
+ { "One", 1 },
+ { "Two", 2},
+ { "Three", 3 },
+ };
+
+ Assert.IsTrue(dictionary2.ContainsKey("One"), "Dictionary ContainsKey does not work1");
+ Assert.IsFalse(dictionary2.ContainsKey("Four"), "Dictionary ContainsKey does not work2");
+
+ Assert.IsTrue(dictionary2["One"] == 1, "Dictionary operator [] does not work");
+ dictionary2["Two"] = 22;
+ Assert.IsTrue(dictionary2["Two"] == 22, "Dictionary [] operator (set existing) does not work");
+
+ Assert.IsTrue(dictionary2.Count == 3, "Dictionary.Count does not work");
+ dictionary2["Four"] = 4;
+ Assert.IsTrue(dictionary2["Four"] == 4, "Dictionary [] operator (set not existing) does not work");
+
+ /* We added another key so now Count should be 4 */
+ Assert.IsTrue(dictionary2.Count == 4, "Dictionary.Count (after new key) does not work");
+
+ Dictionary.KeyCollection keyColl2 = dictionary2.Keys;
+
+ foreach (string key in keyColl2)
+ {
+ Assert.IsTrue(key == "One" || key == "Two" || key == "Three" || key == "Four", "Dictionary.Keys returns invalid key");
+ }
+
+ dictionary2.Add("Five", 5);
+ /* We added another key so now Count should be 5 */
+ Assert.IsTrue(dictionary2.Count == 5, "Dictionary.Count (after Added key) does not work");
+
+ /* Now we remove "Five" key, the operation should succeed and Count should be 4 again */
+ Assert.IsTrue(dictionary2.Remove("Five"), "Dictionary.Remove() of existing key does not work");
+ Assert.IsTrue(dictionary2.Count == 4, "Dictionary.Count (after Removed key) does not work");
+
+ /* Now we remove "Six" key, the operation should fail as there is not "Six" key */
+ Assert.IsFalse(dictionary2.Remove("Six"), "Dictionary.Remove() of not existing key does not work");
+
+ Assert.IsTrue(dictionary2.TryGetValue("One", out int val3), "Dictionary.TryGetValue() of existing key does not work");
+ Assert.IsFalse(dictionary2.TryGetValue("Six", out int val4), "Dictionary.TryGetValue() of not existing key does not work");
+
+ dictionary2.Clear();
+
+ Assert.IsTrue(dictionary2.Count == 0, "Dictionary().Clear does not work");
+ Assert.IsFalse(dictionary2.ContainsKey("Five"), "Dictionary().Clear does not work");
+
+ dictionary2.Add("b", 9);
+ Assert.IsTrue(dictionary2.Count == 1, "Dictionary().Clear prevents correctly adding values again");
+ Assert.IsTrue(dictionary2["b"] == 9, "Dictionary().Clear prevents correctly adding values again");
+
+ }
+
+ //#region "Dictionary Tests"
+ //{
+ // var dictionary = new Dictionary
+ // {
+ // { 'a', 'a' },
+ // { 'b', 'b' },
+ // { 'c', 'c' },
+ // };
+
+ // Assert.IsTrue(dictionary.ContainsKey('a'), "Dictionary ContainsKey does not work1");
+ // Assert.IsFalse(dictionary.ContainsKey('d'), "Dictionary ContainsKey does not work2");
+
+ // Assert.IsTrue(dictionary['a'] == 'a', "Dictionary operator [] does not work");
+ // dictionary['b'] = 'v';
+ // Assert.IsTrue(dictionary['b'] == 'v', "Dictionary [] operator (set existing) does not work");
+
+ // Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count does not work");
+ // dictionary['d'] = 'd';
+ // Assert.IsTrue(dictionary['d'] == 'd', "Dictionary [] operator (set not existing) does not work");
+
+ // /* We added another key so now Count should be 4 */
+ // Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after new key) does not work");
+
+ // Dictionary.KeyCollection keyColl = dictionary.Keys;
+
+ // foreach (var key in keyColl)
+ // {
+ // Assert.IsTrue(key == 'a' || key == 'b' || key == 'c' || key == 'd', "Dictionary.Keys returns invalid key");
+ // }
+
+ // dictionary.Add('e', 'e');
+ // /* We added another key so now Count should be 5 */
+ // Assert.IsTrue(dictionary.Count == 5, "Dictionary.Count (after Added key) does not work");
+
+ // /* Now we remove "5" key, the operation should succeed and Count should be 4 again */
+ // Assert.IsTrue(dictionary.Remove('e'), "Dictionary.Remove() of existing key does not work");
+ // Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after Removed key) does not work");
+
+ // /* Now we remove "6" key, the operation should fail as there is not "6" key */
+ // Assert.IsFalse(dictionary.Remove('f'), "Dictionary.Remove() of not existing key does not work");
+
+ // Assert.IsTrue(dictionary.TryGetValue('a', out char val1), "Dictionary.TryGetValue() of existing key does not work");
+ // Assert.IsFalse(dictionary.TryGetValue('f', out char val2), "Dictionary.TryGetValue() of not existing key does not work");
+ //}
+ //#endregion
+
+ #region "Dictionary Tests"
+ {
+ var dictionary = new Dictionary
+ {
+ { 1, 1 },
+ { 2, 2 },
+ { 3, 3 },
+ };
+
+ Assert.IsTrue(dictionary.ContainsKey(1), "Dictionary ContainsKey does not work1");
+ Assert.IsFalse(dictionary.ContainsKey(4), "Dictionary ContainsKey does not work2");
+
+ Assert.IsTrue(dictionary[1] == 1, "Dictionary operator [] does not work");
+ dictionary[2] = 22;
+ Assert.IsTrue(dictionary[2] == 22, "Dictionary [] operator (set existing) does not work");
+
+ Assert.IsTrue(dictionary.Count == 3, "Dictionary.Count does not work");
+ dictionary[4] = 4;
+ Assert.IsTrue(dictionary[4] == 4, "Dictionary [] operator (set not existing) does not work");
+
+ /* We added another key so now Count should be 4 */
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after new key) does not work");
+
+ Dictionary.KeyCollection keyColl = dictionary.Keys;
+
+ foreach (var key in keyColl)
+ {
+ Assert.IsTrue(key == 1 || key == 2 || key == 3 || key == 4, "Dictionary.Keys returns invalid key");
+ }
+
+ dictionary.Add(5, 5);
+ /* We added another key so now Count should be 5 */
+ Assert.IsTrue(dictionary.Count == 5, "Dictionary.Count (after Added key) does not work");
+
+ /* Now we remove "5" key, the operation should succeed and Count should be 4 again */
+ Assert.IsTrue(dictionary.Remove(5), "Dictionary.Remove() of existing key does not work");
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after Removed key) does not work");
+
+ /* Now we remove "6" key, the operation should fail as there is not "6" key */
+ Assert.IsFalse(dictionary.Remove(6), "Dictionary.Remove() of not existing key does not work");
+
+ Assert.IsTrue(dictionary.TryGetValue(1, out sbyte val1), "Dictionary.TryGetValue() of existing key does not work");
+ Assert.IsFalse(dictionary.TryGetValue(6, out sbyte val2), "Dictionary.TryGetValue() of not existing key does not work");
+
+ dictionary.Clear();
+
+ Assert.IsTrue(dictionary.Count == 0, "Dictionary().Clear does not work");
+ }
+ #endregion
+
+ #region "Dictionary Tests"
+ {
+ var dictionary = new Dictionary
+ {
+ { 1, 1 },
+ { 2, 2 },
+ { 3, 3 },
+ };
+
+ Assert.IsTrue(dictionary.ContainsKey(1), "Dictionary ContainsKey does not work1");
+ Assert.IsFalse(dictionary.ContainsKey(4), "Dictionary ContainsKey does not work2");
+
+ Assert.IsTrue(dictionary[1] == 1, "Dictionary operator [] does not work");
+ dictionary[2] = 22;
+ Assert.IsTrue(dictionary[2] == 22, "Dictionary [] operator (set existing) does not work");
+
+ Assert.IsTrue(dictionary.Count == 3, "Dictionary.Count does not work");
+ dictionary[4] = 4;
+ Assert.IsTrue(dictionary[4] == 4, "Dictionary [] operator (set not existing) does not work");
+
+ /* We added another key so now Count should be 4 */
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after new key) does not work");
+
+ Dictionary.KeyCollection keyColl = dictionary.Keys;
+
+ foreach (var key in keyColl)
+ {
+ Assert.IsTrue(key == 1 || key == 2 || key == 3 || key == 4, "Dictionary.Keys returns invalid key");
+ }
+
+ dictionary.Add(5, 5);
+ /* We added another key so now Count should be 5 */
+ Assert.IsTrue(dictionary.Count == 5, "Dictionary.Count (after Added key) does not work");
+
+ /* Now we remove "5" key, the operation should succeed and Count should be 4 again */
+ Assert.IsTrue(dictionary.Remove(5), "Dictionary.Remove() of existing key does not work");
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after Removed key) does not work");
+
+ /* Now we remove "6" key, the operation should fail as there is not "6" key */
+ Assert.IsFalse(dictionary.Remove(6), "Dictionary.Remove() of not existing key does not work");
+
+ Assert.IsTrue(dictionary.TryGetValue(1, out byte val1), "Dictionary.TryGetValue() of existing key does not work");
+ Assert.IsFalse(dictionary.TryGetValue(6, out byte val2), "Dictionary.TryGetValue() of not existing key does not work");
+
+ dictionary.Clear();
+
+ Assert.IsTrue(dictionary.Count == 0, "Dictionary().Clear does not work");
+ }
+ #endregion
+
+ #region "Dictionary Tests"
+ {
+ var dictionary = new Dictionary
+ {
+ { 1, 1 },
+ { 2, 2 },
+ { 3, 3 },
+ };
+
+ Assert.IsTrue(dictionary.ContainsKey(1), "Dictionary ContainsKey does not work1");
+ Assert.IsFalse(dictionary.ContainsKey(4), "Dictionary ContainsKey does not work2");
+
+ Assert.IsTrue(dictionary[1] == 1, "Dictionary operator [] does not work");
+ dictionary[2] = 22;
+ Assert.IsTrue(dictionary[2] == 22, "Dictionary [] operator (set existing) does not work");
+
+ Assert.IsTrue(dictionary.Count == 3, "Dictionary.Count does not work");
+ dictionary[4] = 4;
+ Assert.IsTrue(dictionary[4] == 4, "Dictionary [] operator (set not existing) does not work");
+
+ /* We added another key so now Count should be 4 */
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after new key) does not work");
+
+ Dictionary.KeyCollection keyColl = dictionary.Keys;
+
+ foreach (var key in keyColl)
+ {
+ Assert.IsTrue(key == 1 || key == 2 || key == 3 || key == 4, "Dictionary.Keys returns invalid key");
+ }
+
+ dictionary.Add(5, 5);
+ /* We added another key so now Count should be 5 */
+ Assert.IsTrue(dictionary.Count == 5, "Dictionary.Count (after Added key) does not work");
+
+ /* Now we remove "5" key, the operation should succeed and Count should be 4 again */
+ Assert.IsTrue(dictionary.Remove(5), "Dictionary.Remove() of existing key does not work");
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after Removed key) does not work");
+
+ /* Now we remove "6" key, the operation should fail as there is not "6" key */
+ Assert.IsFalse(dictionary.Remove(6), "Dictionary.Remove() of not existing key does not work");
+
+ Assert.IsTrue(dictionary.TryGetValue(1, out short val1), "Dictionary.TryGetValue() of existing key does not work");
+ Assert.IsFalse(dictionary.TryGetValue(6, out short val2), "Dictionary.TryGetValue() of not existing key does not work");
+
+ dictionary.Clear();
+
+ Assert.IsTrue(dictionary.Count == 0, "Dictionary().Clear does not work");
+ }
+ #endregion
+
+ #region "Dictionary Tests"
+ {
+ var dictionary = new Dictionary
+ {
+ { 1, 1 },
+ { 2, 2 },
+ { 3, 3 },
+ };
+
+ Assert.IsTrue(dictionary.ContainsKey(1), "Dictionary ContainsKey does not work1");
+ Assert.IsFalse(dictionary.ContainsKey(4), "Dictionary ContainsKey does not work2");
+
+ Assert.IsTrue(dictionary[1] == 1, "Dictionary operator [] does not work");
+ dictionary[2] = 22;
+ Assert.IsTrue(dictionary[2] == 22, "Dictionary [] operator (set existing) does not work");
+
+ Assert.IsTrue(dictionary.Count == 3, "Dictionary.Count does not work");
+ dictionary[4] = 4;
+ Assert.IsTrue(dictionary[4] == 4, "Dictionary [] operator (set not existing) does not work");
+
+ /* We added another key so now Count should be 4 */
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after new key) does not work");
+
+ Dictionary.KeyCollection keyColl = dictionary.Keys;
+
+ foreach (var key in keyColl)
+ {
+ Assert.IsTrue(key == 1 || key == 2 || key == 3 || key == 4, "Dictionary.Keys returns invalid key");
+ }
+
+ dictionary.Add(5, 5);
+ /* We added another key so now Count should be 5 */
+ Assert.IsTrue(dictionary.Count == 5, "Dictionary.Count (after Added key) does not work");
+
+ /* Now we remove "5" key, the operation should succeed and Count should be 4 again */
+ Assert.IsTrue(dictionary.Remove(5), "Dictionary.Remove() of existing key does not work");
+ Assert.IsTrue(dictionary.Count == 4, "Dictionary.Count (after Removed key) does not work");
+
+ /* Now we remove "6" key, the operation should fail as there is not "6" key */
+ Assert.IsFalse(dictionary.Remove(6), "Dictionary.Remove() of not existing key does not work");
+
+ Assert.IsTrue(dictionary.TryGetValue(1, out ushort val1), "Dictionary.TryGetValue() of existing key does not work");
+ Assert.IsFalse(dictionary.TryGetValue(6, out ushort val2), "Dictionary