diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index bc18f0082..7fbd6baa4 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -4,3 +4,8 @@ updates:
directory: "/"
schedule:
interval: "daily"
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ # Check for updates to GitHub Actions every week
+ interval: "weekly"
diff --git a/.github/workflows/deploy_gh_pages.yaml b/.github/workflows/deploy_gh_pages.yaml
index a11b9f606..89c314518 100644
--- a/.github/workflows/deploy_gh_pages.yaml
+++ b/.github/workflows/deploy_gh_pages.yaml
@@ -67,7 +67,7 @@ jobs:
- name: Copy GraphQL Schema to deploy
run: cp schema.graphql public/schema.graphql
- name: Deploy
- uses: peaceiris/actions-gh-pages@v3
+ uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
diff --git a/.github/workflows/push_docker_image.yml b/.github/workflows/push_docker_image.yml
index bd0911e71..b58e6b7ae 100644
--- a/.github/workflows/push_docker_image.yml
+++ b/.github/workflows/push_docker_image.yml
@@ -43,33 +43,22 @@ jobs:
docker login \
--username '${{ secrets.DOCKER_USERNAME }}' \
--password '${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}'
- - name: setup-qemu
- run: |
- docker run --rm --privileged multiarch/qemu-user-static \
- --reset \
- -p yes
- - name: build-and-push-amd64
- run: |
- docker build . \
- -f ${{ matrix.docker.dockerfile }}.amd64 \
- -t ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 \
- --build-arg COMMIT=git-${{ github.sha }} \
- --build-arg TARGETPLATFORM=linux/amd64
- docker push ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64
- - name: build-and-push-arm64v8
- run: |
- docker build . \
- -f ${{ matrix.docker.dockerfile }}.arm64v8 \
- -t ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8 \
- --build-arg COMMIT=git-${{ github.sha }} \
- --build-arg TARGETPLATFORM=linux/arm64
- docker push ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8
- - name: merge-manifest-and-push
- run: |
- docker manifest create ${{ matrix.docker.repo }}:git-${{ github.sha }} \
- --amend ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 \
- --amend ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8
- docker manifest push ${{ matrix.docker.repo }}:git-${{ github.sha }}
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ with:
+ platforms: linux/arm/v8,linux/amd64
+ - name: Build and push
+ uses: docker/build-push-action@v6
+ with:
+ push: ${{ github.event_name != 'pull_request' }}
+ platforms: linux/arm64,linux/amd64
+ tags: ${{ matrix.docker.repo }}:git-${{ github.sha }}
+ file: ${{ matrix.docker.dockerfile }}
+ build-args: COMMIT=git-${{ github.sha }}
+ env:
+ BUILDKIT_PROGRESS: 'plain'
tag:
name: tag (${{ matrix.docker.repo }})
@@ -87,7 +76,7 @@ jobs:
--password '${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}'
- name: push git tagged version
run: |
- docker pull ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64
+ docker pull ${{ matrix.docker.repo }}:git-${{ github.sha }}
if [[ -z "${{ github.event.inputs.imageTag }}" ]]; then
export IMAGE_TAG=${{ github.ref_name }}
else
@@ -95,15 +84,6 @@ jobs:
fi
docker tag \
- ${{ matrix.docker.repo }}:git-${{ github.sha }}-amd64 \
- ${{ matrix.docker.repo }}:$IMAGE_TAG-amd64
- docker push ${{ matrix.docker.repo }}:$IMAGE_TAG-amd64
- docker pull ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8
- docker tag \
- ${{ matrix.docker.repo }}:git-${{ github.sha }}-arm64v8 \
- ${{ matrix.docker.repo }}:$IMAGE_TAG-arm64v8
- docker push ${{ matrix.docker.repo }}:$IMAGE_TAG-arm64v8
- docker manifest create ${{ matrix.docker.repo }}:$IMAGE_TAG \
- --amend ${{ matrix.docker.repo }}:$IMAGE_TAG-amd64 \
- --amend ${{ matrix.docker.repo }}:$IMAGE_TAG-arm64v8
- docker manifest push ${{ matrix.docker.repo }}:$IMAGE_TAG
+ ${{ matrix.docker.repo }}:git-${{ github.sha }} \
+ ${{ matrix.docker.repo }}:$IMAGE_TAG
+ docker push ${{ matrix.docker.repo }}:$IMAGE_TAG
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 000000000..c95b6df16
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,5 @@
+
+
+ 5.4.1
+
+
diff --git a/Dockerfile b/Dockerfile
index cea86d51d..0626f3b60 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,20 +1,8 @@
-FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
+FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
WORKDIR /app
ARG COMMIT
ARG TARGETPLATFORM
-# Copy csproj and restore as distinct layers
-COPY ./Lib9c/Lib9c/Lib9c.csproj ./Lib9c/
-COPY ./Libplanet.Headless/Libplanet.Headless.csproj ./Libplanet.Headless/
-COPY ./NineChronicles.RPC.Shared/NineChronicles.RPC.Shared/NineChronicles.RPC.Shared.csproj ./NineChronicles.RPC.Shared/
-COPY ./NineChronicles.Headless/NineChronicles.Headless.csproj ./NineChronicles.Headless/
-COPY ./NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj ./NineChronicles.Headless.Executable/
-RUN dotnet restore Lib9c
-RUN dotnet restore Libplanet.Headless
-RUN dotnet restore NineChronicles.RPC.Shared
-RUN dotnet restore NineChronicles.Headless
-RUN dotnet restore NineChronicles.Headless.Executable
-
# Copy everything else and build
COPY . ./
RUN <all
-
+
-
diff --git a/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj b/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj
index db1c4f310..43532bf6c 100644
--- a/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj
+++ b/Libplanet.Extensions.ForkableActionEvaluator/Libplanet.Extensions.ForkableActionEvaluator.csproj
@@ -5,9 +5,8 @@
enable
enable
-
+
-
+
-
diff --git a/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj b/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj
index a0db16957..c09aef0f8 100644
--- a/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj
+++ b/Libplanet.Extensions.PluggedActionEvaluator/Libplanet.Extensions.PluggedActionEvaluator.csproj
@@ -7,9 +7,12 @@
-
-
+
+
+
+
+
diff --git a/Libplanet.Headless/Libplanet.Headless.csproj b/Libplanet.Headless/Libplanet.Headless.csproj
index 5a3a2b286..ca287875e 100644
--- a/Libplanet.Headless/Libplanet.Headless.csproj
+++ b/Libplanet.Headless/Libplanet.Headless.csproj
@@ -7,6 +7,9 @@
+
+
+
all
@@ -19,9 +22,6 @@
-
-
-
diff --git a/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj b/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj
index 60b2742bb..f9af67302 100644
--- a/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj
+++ b/NineChronicles.Headless.Executable.Tests/NineChronicles.Headless.Executable.Tests.csproj
@@ -26,7 +26,6 @@
-
diff --git a/NineChronicles.Headless.Executable.sln b/NineChronicles.Headless.Executable.sln
index 0ebb97b87..2a48c5446 100644
--- a/NineChronicles.Headless.Executable.sln
+++ b/NineChronicles.Headless.Executable.sln
@@ -7,8 +7,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Headless", "Libpl
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Headless.Tests", "Libplanet.Headless.Tests\Libplanet.Headless.Tests.csproj", "{0B82AB6A-32B1-4F76-B965-B56B052057D4}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Analyzers", "Lib9c\.Libplanet\tools\Libplanet.Analyzers\Libplanet.Analyzers.csproj", "{AACC51F4-D38A-4094-BF50-BDC981848517}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless", "NineChronicles.Headless\NineChronicles.Headless.csproj", "{AE6FE611-BB8E-4E85-8623-34608EC868CD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless.Executable", "NineChronicles.Headless.Executable\NineChronicles.Headless.Executable.csproj", "{81584733-D9C7-4D83-ABBF-0B289A26E807}"
@@ -19,18 +17,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c", "Lib9c\Lib9c\Lib9c.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.RPC.Shared", "NineChronicles.RPC.Shared\NineChronicles.RPC.Shared\NineChronicles.RPC.Shared.csproj", "{106573F6-F9C1-41B7-8F02-40E76F177C24}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet", "Lib9c\.Libplanet\src\Libplanet\Libplanet.csproj", "{E18779D4-103C-42D2-A94F-EEB801B32750}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.RocksDBStore", "Lib9c\.Libplanet\src\Libplanet.RocksDBStore\Libplanet.RocksDBStore.csproj", "{2C079592-8EDC-4911-AFF9-828419E0FDC1}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Stun", "Lib9c\.Libplanet\src\Libplanet.Stun\Libplanet.Stun.csproj", "{3B2875B4-B6C6-4929-B885-18A922110ED2}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless.Executable.Tests", "NineChronicles.Headless.Executable.Tests\NineChronicles.Headless.Executable.Tests.csproj", "{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.Cocona", "Lib9c\.Libplanet\tools\Libplanet.Extensions.Cocona\Libplanet.Extensions.Cocona.csproj", "{B1C7C07A-2394-4778-A328-D536C7FC3CDD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Explorer", "Lib9c\.Libplanet\tools\Libplanet.Explorer\Libplanet.Explorer.csproj", "{D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4D8FC180-CD64-4774-B9BF-BF290C01BB1A}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
@@ -38,8 +26,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c.DevExtensions", "Lib9c\Lib9c.DevExtensions\Lib9c.DevExtensions.csproj", "{8411BF58-22E7-4174-AEE6-7332FE690906}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Net", "Lib9c\.Libplanet\src\Libplanet.Net\Libplanet.Net.csproj", "{858AEAB3-CC9C-41C4-9727-4243708FD803}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c.MessagePack", "Lib9c\Lib9c.MessagePack\Lib9c.MessagePack.csproj", "{A9513460-EE7A-455F-A823-5005DB6BA8FC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Crypto.Secp256k1", "Lib9c\Libplanet.Crypto.Secp256k1\Libplanet.Crypto.Secp256k1.csproj", "{84EBA886-FAD6-4167-9857-36BA1B394EBB}"
@@ -58,18 +44,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.Forkab
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.ForkableActionEvaluator.Tests", "Libplanet.Extensions.ForkableActionEvaluator.Tests\Libplanet.Extensions.ForkableActionEvaluator.Tests.csproj", "{490D20B6-FC0C-4459-8412-17777DB95931}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Libplanet", ".Libplanet", "{69F04D28-2B2E-454D-9B15-4D708EEEA8B5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Action", "Lib9c\.Libplanet\src\Libplanet.Action\Libplanet.Action.csproj", "{EB464A50-9976-4DEA-B170-F72C4FB73A9C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Common", "Lib9c\.Libplanet\src\Libplanet.Common\Libplanet.Common.csproj", "{95FB2620-540C-4498-9DAE-65198E89680C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Types", "Lib9c\.Libplanet\src\Libplanet.Types\Libplanet.Types.csproj", "{FC65B031-F6EE-4561-A365-47B6FDD1C114}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Store", "Lib9c\.Libplanet\src\Libplanet.Store\Libplanet.Store.csproj", "{2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Crypto", "Lib9c\.Libplanet\src\Libplanet.Crypto\Libplanet.Crypto.csproj", "{2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.ActionEvaluatorCommonComponents", "Lib9c\.Libplanet.Extensions.ActionEvaluatorCommonComponents\Libplanet.Extensions.ActionEvaluatorCommonComponents.csproj", "{A6922395-36E5-4B0A-BEBD-9BCE34D08722}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NineChronicles.Headless.AccessControlCenter", "NineChronicles.Headless.AccessControlCenter\NineChronicles.Headless.AccessControlCenter.csproj", "{162C0F4B-A1D9-4132-BC34-31F1247BC26B}"
@@ -78,10 +52,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Libplanet.Extensions.Plugge
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lib9c.Plugin.Shared", "Lib9c\.Lib9c.Plugin.Shared\Lib9c.Plugin.Shared.csproj", "{3D32DA34-E619-429F-8421-848FF4F14417}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Libplanet.Mocks", "Lib9c\.Libplanet\test\Libplanet.Mocks\Libplanet.Mocks.csproj", "{F79B695B-6FCC-43F5-AEE4-88E484382B9B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Libplanet.Store.Remote", "Lib9c\.Libplanet\src\Libplanet.Store.Remote\Libplanet.Store.Remote.csproj", "{D1E15F81-8765-4DCA-9299-675415686C23}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NineChronicles.Headless.Executor", "NineChronicles.Headless.Executor\NineChronicles.Headless.Executor.csproj", "{59AD477A-B23C-4E0B-AA26-A528B3BC5234}"
EndProject
Global
@@ -133,24 +103,6 @@ Global
{0B82AB6A-32B1-4F76-B965-B56B052057D4}.Release|x64.Build.0 = Release|Any CPU
{0B82AB6A-32B1-4F76-B965-B56B052057D4}.Release|x86.ActiveCfg = Release|Any CPU
{0B82AB6A-32B1-4F76-B965-B56B052057D4}.Release|x86.Build.0 = Release|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x64.ActiveCfg = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x64.Build.0 = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x86.ActiveCfg = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Debug|x86.Build.0 = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x64.Build.0 = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.DevEx|x86.Build.0 = Debug|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|Any CPU.Build.0 = Release|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x64.ActiveCfg = Release|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x64.Build.0 = Release|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x86.ActiveCfg = Release|Any CPU
- {AACC51F4-D38A-4094-BF50-BDC981848517}.Release|x86.Build.0 = Release|Any CPU
{AE6FE611-BB8E-4E85-8623-34608EC868CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AE6FE611-BB8E-4E85-8623-34608EC868CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AE6FE611-BB8E-4E85-8623-34608EC868CD}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -241,60 +193,6 @@ Global
{106573F6-F9C1-41B7-8F02-40E76F177C24}.Release|x64.Build.0 = Release|Any CPU
{106573F6-F9C1-41B7-8F02-40E76F177C24}.Release|x86.ActiveCfg = Release|Any CPU
{106573F6-F9C1-41B7-8F02-40E76F177C24}.Release|x86.Build.0 = Release|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x64.Build.0 = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Debug|x86.Build.0 = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x64.Build.0 = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.DevEx|x86.Build.0 = Debug|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|Any CPU.Build.0 = Release|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x64.ActiveCfg = Release|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x64.Build.0 = Release|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x86.ActiveCfg = Release|Any CPU
- {E18779D4-103C-42D2-A94F-EEB801B32750}.Release|x86.Build.0 = Release|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x64.ActiveCfg = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x64.Build.0 = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Debug|x86.Build.0 = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x64.Build.0 = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.DevEx|x86.Build.0 = Debug|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x64.ActiveCfg = Release|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x64.Build.0 = Release|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x86.ActiveCfg = Release|Any CPU
- {2C079592-8EDC-4911-AFF9-828419E0FDC1}.Release|x86.Build.0 = Release|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x64.ActiveCfg = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x64.Build.0 = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Debug|x86.Build.0 = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x64.Build.0 = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.DevEx|x86.Build.0 = Debug|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|Any CPU.Build.0 = Release|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x64.ActiveCfg = Release|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x64.Build.0 = Release|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x86.ActiveCfg = Release|Any CPU
- {3B2875B4-B6C6-4929-B885-18A922110ED2}.Release|x86.Build.0 = Release|Any CPU
{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -313,42 +211,6 @@ Global
{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Release|x64.Build.0 = Release|Any CPU
{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Release|x86.ActiveCfg = Release|Any CPU
{6E38A2CF-B93F-4CD5-9CAC-DE121998FF18}.Release|x86.Build.0 = Release|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x64.ActiveCfg = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x64.Build.0 = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Debug|x86.Build.0 = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x64.Build.0 = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.DevEx|x86.Build.0 = Debug|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|Any CPU.Build.0 = Release|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x64.ActiveCfg = Release|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x64.Build.0 = Release|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x86.ActiveCfg = Release|Any CPU
- {B1C7C07A-2394-4778-A328-D536C7FC3CDD}.Release|x86.Build.0 = Release|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x64.Build.0 = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Debug|x86.Build.0 = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x64.Build.0 = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.DevEx|x86.Build.0 = Debug|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|Any CPU.Build.0 = Release|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x64.ActiveCfg = Release|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x64.Build.0 = Release|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x86.ActiveCfg = Release|Any CPU
- {D1AAC8D1-742F-4E71-A3B3-651069B6C0F7}.Release|x86.Build.0 = Release|Any CPU
{8411BF58-22E7-4174-AEE6-7332FE690906}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8411BF58-22E7-4174-AEE6-7332FE690906}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8411BF58-22E7-4174-AEE6-7332FE690906}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -367,24 +229,6 @@ Global
{8411BF58-22E7-4174-AEE6-7332FE690906}.Release|x64.Build.0 = Release|Any CPU
{8411BF58-22E7-4174-AEE6-7332FE690906}.Release|x86.ActiveCfg = Release|Any CPU
{8411BF58-22E7-4174-AEE6-7332FE690906}.Release|x86.Build.0 = Release|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x64.ActiveCfg = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x64.Build.0 = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x86.ActiveCfg = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Debug|x86.Build.0 = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x64.Build.0 = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.DevEx|x86.Build.0 = Debug|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|Any CPU.Build.0 = Release|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x64.ActiveCfg = Release|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x64.Build.0 = Release|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x86.ActiveCfg = Release|Any CPU
- {858AEAB3-CC9C-41C4-9727-4243708FD803}.Release|x86.Build.0 = Release|Any CPU
{A9513460-EE7A-455F-A823-5005DB6BA8FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A9513460-EE7A-455F-A823-5005DB6BA8FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A9513460-EE7A-455F-A823-5005DB6BA8FC}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -547,96 +391,6 @@ Global
{490D20B6-FC0C-4459-8412-17777DB95931}.Release|x64.Build.0 = Release|Any CPU
{490D20B6-FC0C-4459-8412-17777DB95931}.Release|x86.ActiveCfg = Release|Any CPU
{490D20B6-FC0C-4459-8412-17777DB95931}.Release|x86.Build.0 = Release|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x64.Build.0 = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Debug|x86.Build.0 = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x64.Build.0 = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.DevEx|x86.Build.0 = Debug|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|Any CPU.Build.0 = Release|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x64.ActiveCfg = Release|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x64.Build.0 = Release|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x86.ActiveCfg = Release|Any CPU
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C}.Release|x86.Build.0 = Release|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x64.ActiveCfg = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x64.Build.0 = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Debug|x86.Build.0 = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x64.Build.0 = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.DevEx|x86.Build.0 = Debug|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Release|Any CPU.Build.0 = Release|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x64.ActiveCfg = Release|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x64.Build.0 = Release|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x86.ActiveCfg = Release|Any CPU
- {95FB2620-540C-4498-9DAE-65198E89680C}.Release|x86.Build.0 = Release|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x64.ActiveCfg = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x64.Build.0 = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x86.ActiveCfg = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Debug|x86.Build.0 = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x64.Build.0 = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.DevEx|x86.Build.0 = Debug|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|Any CPU.Build.0 = Release|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x64.ActiveCfg = Release|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x64.Build.0 = Release|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x86.ActiveCfg = Release|Any CPU
- {FC65B031-F6EE-4561-A365-47B6FDD1C114}.Release|x86.Build.0 = Release|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x64.ActiveCfg = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x64.Build.0 = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Debug|x86.Build.0 = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x64.Build.0 = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.DevEx|x86.Build.0 = Debug|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|Any CPU.Build.0 = Release|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x64.ActiveCfg = Release|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x64.Build.0 = Release|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x86.ActiveCfg = Release|Any CPU
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29}.Release|x86.Build.0 = Release|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x64.ActiveCfg = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x64.Build.0 = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Debug|x86.Build.0 = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x64.Build.0 = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.DevEx|x86.Build.0 = Debug|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|Any CPU.Build.0 = Release|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x64.ActiveCfg = Release|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x64.Build.0 = Release|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x86.ActiveCfg = Release|Any CPU
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0}.Release|x86.Build.0 = Release|Any CPU
{A6922395-36E5-4B0A-BEBD-9BCE34D08722}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A6922395-36E5-4B0A-BEBD-9BCE34D08722}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A6922395-36E5-4B0A-BEBD-9BCE34D08722}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -709,42 +463,6 @@ Global
{3D32DA34-E619-429F-8421-848FF4F14417}.Release|x64.Build.0 = Release|Any CPU
{3D32DA34-E619-429F-8421-848FF4F14417}.Release|x86.ActiveCfg = Release|Any CPU
{3D32DA34-E619-429F-8421-848FF4F14417}.Release|x86.Build.0 = Release|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x64.ActiveCfg = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x64.Build.0 = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Debug|x86.Build.0 = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x64.Build.0 = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.DevEx|x86.Build.0 = Debug|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|Any CPU.Build.0 = Release|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x64.ActiveCfg = Release|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x64.Build.0 = Release|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x86.ActiveCfg = Release|Any CPU
- {F79B695B-6FCC-43F5-AEE4-88E484382B9B}.Release|x86.Build.0 = Release|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x64.Build.0 = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Debug|x86.Build.0 = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|Any CPU.ActiveCfg = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|Any CPU.Build.0 = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x64.ActiveCfg = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x64.Build.0 = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x86.ActiveCfg = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.DevEx|x86.Build.0 = Debug|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Release|Any CPU.Build.0 = Release|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x64.ActiveCfg = Release|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x64.Build.0 = Release|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x86.ActiveCfg = Release|Any CPU
- {D1E15F81-8765-4DCA-9299-675415686C23}.Release|x86.Build.0 = Release|Any CPU
{59AD477A-B23C-4E0B-AA26-A528B3BC5234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59AD477A-B23C-4E0B-AA26-A528B3BC5234}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59AD477A-B23C-4E0B-AA26-A528B3BC5234}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -768,12 +486,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {AACC51F4-D38A-4094-BF50-BDC981848517} = {71CBCF83-FE87-4D84-A20C-FD328855E445}
- {EB464A50-9976-4DEA-B170-F72C4FB73A9C} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5}
- {95FB2620-540C-4498-9DAE-65198E89680C} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5}
- {FC65B031-F6EE-4561-A365-47B6FDD1C114} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5}
- {2FF6DADC-5E7A-4F03-94D5-2CF50DED8C29} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5}
- {2C3AD392-38A1-4E07-B1F9-694EE4A1E0C0} = {69F04D28-2B2E-454D-9B15-4D708EEEA8B5}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B4A2DD82-CCC1-4D74-88FF-91BBEBB5A47F}
diff --git a/NineChronicles.Headless.Executable.sln.DotSettings b/NineChronicles.Headless.Executable.sln.DotSettings
index 61ddddd89..e1205f7ac 100644
--- a/NineChronicles.Headless.Executable.sln.DotSettings
+++ b/NineChronicles.Headless.Executable.sln.DotSettings
@@ -1,3 +1,107 @@
+ DO_NOT_SHOW
+ SUGGESTION
+ SUGGESTION
+ SUGGESTION
+ SUGGESTION
+ SUGGESTION
+ SUGGESTION
+ SUGGESTION
+ SUGGESTION
+ Required
+ Required
+ Required
+ Required
+ False
+ BlockScoped
+ True
+ True
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ True
+ False
+ True
+ NEVER
+ NEVER
+ ALWAYS
+ True
+ False
+ 300
+ True
+ True
+ AI
+ CRYSTAL
+ GARAGE
+ GO
+ HTTP
NCG
- True
\ No newline at end of file
+ PACKAGE
+ SINGLE
+ VFX
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
+ True
\ No newline at end of file
diff --git a/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs b/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs
index 9f9483d3a..369751616 100644
--- a/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs
+++ b/NineChronicles.Headless.Executable/Commands/GenesisCommand.cs
@@ -169,7 +169,8 @@ private void ProcessValidator(List? config, PrivateKey initialValidat
initialValidatorSet.Add(new Validator
{
PublicKey = initialValidator.PublicKey.ToString(),
- Power = 1,
+ // To act as a validator, you need at least 10 GuildGold, and since the DecimalPlaces of GuildGold are 18 digits, it is recommended to specify a value around 10^20.
+ Power = "10000000000000000000",
}
);
}
@@ -264,6 +265,16 @@ public void Mine(
ProcessInitialPledgeConfigs(genesisConfig.InitialPledgeConfigs, out var initialPledges);
+ ISet? assetMinters = null;
+ if (genesisConfig.AssetMinters is not null)
+ {
+ foreach (var address in genesisConfig.AssetMinters)
+ {
+ _console.Out.WriteLine($"Preparing asset minter address {address}...");
+ }
+ assetMinters = genesisConfig.AssetMinters.ToHashSet();
+ }
+
// Mine genesis block
_console.Out.WriteLine("\nMining genesis block...\n");
Block block = BlockHelper.ProposeGenesisBlock(
@@ -271,7 +282,7 @@ public void Mine(
initialValidatorSet.Select(
v => new Libplanet.Types.Consensus.Validator(
new PublicKey(ByteUtil.ParseHex(v.PublicKey)),
- new BigInteger(v.Power))).ToList()),
+ BigInteger.Parse(v.Power))).ToList()),
tableSheets: tableSheets,
goldDistributions: initialDepositList.ToArray(),
pendingActivationStates: Array.Empty(),
@@ -279,7 +290,8 @@ public void Mine(
adminState: adminState ?? new AdminState(default, 0L),
privateKey: initialMinter,
actionBases: adminMeads.Concat(initialMeads).Concat(initialPledges).Concat(GetAdditionalActionBases()),
- goldCurrency: currency
+ goldCurrency: currency,
+ assetMinters: assetMinters
);
Lib9cUtils.ExportBlock(block, "genesis-block");
@@ -400,7 +412,7 @@ private struct Validator
{
public string PublicKey { get; set; }
- public long Power { get; set; }
+ public string Power { get; set; }
}
[Serializable]
@@ -457,6 +469,8 @@ private struct GenesisConfig
public List? InitialMeadConfigs { get; set; }
public List? InitialPledgeConfigs { get; set; }
+
+ public List? AssetMinters { get; set; }
}
#pragma warning restore S3459
}
diff --git a/NineChronicles.Headless.Executable/Configuration.cs b/NineChronicles.Headless.Executable/Configuration.cs
index 2543b2c23..0f0d9c6f2 100644
--- a/NineChronicles.Headless.Executable/Configuration.cs
+++ b/NineChronicles.Headless.Executable/Configuration.cs
@@ -93,8 +93,6 @@ public class Configuration
public AccessControlServiceOptions? AccessControlService { get; set; }
- public int ArenaParticipantsSyncInterval { get; set; } = 1000;
-
public void Overwrite(
string? appProtocolVersionString,
string[]? trustedAppProtocolVersionSignerStrings,
@@ -143,7 +141,6 @@ public void Overwrite(
double? consensusTargetBlockIntervalMilliseconds,
int? consensusProposeSecondBase,
int? maxTransactionPerBlock,
- int? arenaParticipantsSyncInterval,
bool? remoteKeyValueService
)
{
@@ -195,7 +192,6 @@ public void Overwrite(
ConsensusTargetBlockIntervalMilliseconds = consensusTargetBlockIntervalMilliseconds ?? ConsensusTargetBlockIntervalMilliseconds;
ConsensusProposeSecondBase = consensusProposeSecondBase ?? ConsensusProposeSecondBase;
MaxTransactionPerBlock = maxTransactionPerBlock ?? MaxTransactionPerBlock;
- ArenaParticipantsSyncInterval = arenaParticipantsSyncInterval ?? ArenaParticipantsSyncInterval;
RemoteKeyValueService = remoteKeyValueService ?? RemoteKeyValueService;
}
}
diff --git a/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj b/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj
index 538a29a47..7ad5a09ec 100644
--- a/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj
+++ b/NineChronicles.Headless.Executable/NineChronicles.Headless.Executable.csproj
@@ -23,6 +23,7 @@
+
@@ -47,7 +48,6 @@
-
diff --git a/NineChronicles.Headless.Executable/Program.cs b/NineChronicles.Headless.Executable/Program.cs
index db5821b8f..fcf00694f 100644
--- a/NineChronicles.Headless.Executable/Program.cs
+++ b/NineChronicles.Headless.Executable/Program.cs
@@ -215,10 +215,6 @@ public async Task Run(
[Option("config", new[] { 'C' },
Description = "Absolute path of \"appsettings.json\" file to provide headless configurations.")]
string? configPath = "appsettings.json",
- [Option(Description = "arena participants list sync interval time")]
- int? arenaParticipantsSyncInterval = null,
- [Option(Description = "arena participants list sync enable")]
- bool arenaParticipantsSync = true,
[Option(Description = "[DANGER] Turn on RemoteKeyValueService to debug.")]
bool remoteKeyValueService = false,
[Ignore] CancellationToken? cancellationToken = null
@@ -303,7 +299,7 @@ public async Task Run(
txLifeTime, messageTimeout, tipTimeout, demandBuffer, skipPreload,
minimumBroadcastTarget, bucketSize, chainTipStaleBehaviorType, txQuotaPerSigner, maximumPollPeers,
consensusPort, consensusPrivateKeyString, consensusSeedStrings, consensusTargetBlockIntervalMilliseconds, consensusProposeSecondBase,
- maxTransactionPerBlock, arenaParticipantsSyncInterval, remoteKeyValueService
+ maxTransactionPerBlock, remoteKeyValueService
);
// Clean-up previous temporary log files.
diff --git a/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj b/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj
index 379a5edfe..30cc8d8ce 100644
--- a/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj
+++ b/NineChronicles.Headless.Tests/NineChronicles.Headless.Tests.csproj
@@ -25,6 +25,7 @@
+
diff --git a/NineChronicles.Headless/GraphTypes/ActionMutation.cs b/NineChronicles.Headless/GraphTypes/ActionMutation.cs
index 03cef46de..053b6ed9c 100644
--- a/NineChronicles.Headless/GraphTypes/ActionMutation.cs
+++ b/NineChronicles.Headless/GraphTypes/ActionMutation.cs
@@ -24,8 +24,11 @@ public class ActionMutation : ObjectGraphType
{
public ActionMutation(NineChroniclesNodeService service)
{
+ DeprecationReason = "This API is insecure and must not be used.";
+
Field>("createAvatar",
description: "Create new avatar.",
+ deprecationReason: DeprecationReason,
arguments: new QueryArguments(
new QueryArgument>
{
@@ -103,6 +106,7 @@ public ActionMutation(NineChroniclesNodeService service)
Field>("hackAndSlash",
description: "Start stage to get material.",
+ deprecationReason: DeprecationReason,
arguments: new QueryArguments(
new QueryArgument>
{
@@ -186,6 +190,7 @@ public ActionMutation(NineChroniclesNodeService service)
Field>("combinationEquipment",
description: "Combine new equipment.",
+ deprecationReason: DeprecationReason,
arguments: new QueryArguments(
new QueryArgument>
{
@@ -246,6 +251,7 @@ public ActionMutation(NineChroniclesNodeService service)
Field>("itemEnhancement",
description: "Upgrade equipment.",
+ deprecationReason: DeprecationReason,
arguments: new QueryArguments(
new QueryArgument>
{
@@ -310,6 +316,7 @@ public ActionMutation(NineChroniclesNodeService service)
Field>("dailyReward",
description: "Get daily reward.",
+ deprecationReason: DeprecationReason,
arguments: new QueryArguments(
new QueryArgument>
{
@@ -352,6 +359,7 @@ public ActionMutation(NineChroniclesNodeService service)
});
Field>("chargeActionPoint",
description: "Charge Action Points using Material.",
+ deprecationReason: DeprecationReason,
arguments: new QueryArguments(
new QueryArgument>
{
@@ -395,6 +403,7 @@ public ActionMutation(NineChroniclesNodeService service)
Field>("combinationConsumable",
description: "Combine new Consumable.",
+ deprecationReason: DeprecationReason,
arguments: new QueryArguments(
new QueryArgument>
{
diff --git a/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs b/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs
index ef6745ea3..84f467599 100644
--- a/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs
+++ b/NineChronicles.Headless/GraphTypes/CurrencyEnumType.cs
@@ -9,7 +9,13 @@ public enum CurrencyEnum
CRYSTAL,
NCG,
GARAGE,
- MEAD
+ MEAD,
+ RUNE_GOLDENLEAF,
+ RUNE_ADVENTURER,
+ RUNESTONE_FREYA_LIBERATION,
+ RUNESTONE_FREYA_BLESSING,
+ RUNESTONE_ODIN_WEAKNESS,
+ RUNESTONE_ODIN_WISDOM
}
public class CurrencyEnumType : EnumerationGraphType
diff --git a/NineChronicles.Headless/GraphTypes/States/Models/World/ClearedStageType.cs b/NineChronicles.Headless/GraphTypes/States/Models/World/ClearedStageType.cs
new file mode 100644
index 000000000..24b8a58e8
--- /dev/null
+++ b/NineChronicles.Headless/GraphTypes/States/Models/World/ClearedStageType.cs
@@ -0,0 +1,12 @@
+using GraphQL.Types;
+
+namespace NineChronicles.Headless.GraphTypes.States.Models.World;
+
+public class ClearedStageType : ObjectGraphType<(int WorldId, int StageId)>
+{
+ public ClearedStageType()
+ {
+ Field>("worldId", resolve: context => context.Source.WorldId);
+ Field>("stageId", resolve: context => context.Source.StageId);
+ }
+}
diff --git a/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs b/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs
index 23f6b0196..d6cdd7f0d 100644
--- a/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs
+++ b/NineChronicles.Headless/GraphTypes/States/Models/World/WorldInformationType.cs
@@ -40,6 +40,21 @@ public WorldInformationType()
? world
: throw new ExecutionError($"Failed to fetch world {worldId}.");
});
+
+ Field>(
+ "lastClearedStage",
+ resolve: context =>
+ {
+ var found = context.Source.TryGetLastClearedStageId(out var stageId);
+ if (!found)
+ {
+ stageId = 0;
+ }
+
+ var worldFound = context.Source.TryGetWorldByStageId(stageId, out var world);
+ return (worldFound ? world.Id : 0, stageId);
+ }
+ );
}
}
}
diff --git a/NineChronicles.Headless/NineChronicles.Headless.csproj b/NineChronicles.Headless/NineChronicles.Headless.csproj
index 68b93d2dd..1cde5a628 100644
--- a/NineChronicles.Headless/NineChronicles.Headless.csproj
+++ b/NineChronicles.Headless/NineChronicles.Headless.csproj
@@ -21,8 +21,6 @@
-
-
@@ -36,6 +34,7 @@
+