diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index d0a1f14..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-obj
-.vs
-*.png
-.idea
-/.contest
diff --git a/.idea/.idea.lilo-stitcher-console/.idea/.gitignore b/.idea/.idea.lilo-stitcher-console/.idea/.gitignore
new file mode 100644
index 0000000..4be9211
--- /dev/null
+++ b/.idea/.idea.lilo-stitcher-console/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/modules.xml
+/contentModel.xml
+/projectSettingsUpdater.xml
+/.idea.lilo-stitcher-console.iml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.lilo-stitcher-console/.idea/encodings.xml b/.idea/.idea.lilo-stitcher-console/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.lilo-stitcher-console/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/LiloController.cs b/LiloController.cs
index 989b972..ce39378 100644
--- a/LiloController.cs
+++ b/LiloController.cs
@@ -1,18 +1,17 @@
-using lilos_stitcher;
using Microsoft.AspNetCore.Mvc;
namespace LiloStitcher;
[ApiController]
[Route( "api/image" )]
-public sealed class LiloController( lilos_stitcher.LiloStitcher stitcher ) : ControllerBase
+public sealed class LiloController( LiloStitcher stitcher ) : ControllerBase
{
- [HttpPost]
- [Route( "generate" )]
- [Produces( "image/png" )]
- public async Task Generate( [FromBody] GenerateRequest payload, CancellationToken ct )
- {
- string path = await stitcher.CreateImageAsync( payload, ct );
- return PhysicalFile(path, "image/png", enableRangeProcessing: false);
- }
+ [HttpPost]
+ [Route( "generate" )]
+ [Produces( "image/png" )]
+ public async Task Generate( [FromBody] GenerateRequest payload, CancellationToken ct )
+ {
+ var png = await stitcher.CreateImageAsync( payload, ct );
+ return File( png, "image/png" );
+ }
}
\ No newline at end of file
diff --git a/LiloStitcher.cs b/LiloStitcher.cs
index afee0dd..64e3a52 100644
--- a/LiloStitcher.cs
+++ b/LiloStitcher.cs
@@ -1,7 +1,7 @@
using Microsoft.Extensions.Caching.Memory;
using NetVips;
-namespace lilos_stitcher;
+namespace LiloStitcher;
public sealed record GenerateRequest(
string Canvas_Rect,
@@ -60,12 +60,10 @@ public class TileLoader( TileCache cache, string assetDir )
public class LiloStitcher( TileLoader loader )
{
- public async Task CreateImageAsync( GenerateRequest req, CancellationToken ct )
+ public async Task CreateImageAsync( GenerateRequest req, CancellationToken ct )
{
(int rowMin, int colMin, int rows, int cols) = ParseCanvas( req.Canvas_Rect );
- Validate(req.Crop_Offset, nameof(req.Crop_Offset));
- Validate(req.Crop_Size, nameof(req.Crop_Size));
double scale = req.Output_Scale;
if( scale <= 0 || scale > 1 )
throw new ArgumentOutOfRangeException( nameof( req.Output_Scale ) );
@@ -84,8 +82,8 @@ public class LiloStitcher( TileLoader loader )
var mosaic = Image.Arrayjoin( tiles.ToArray(), across: cols );
- int offsetX = (int)Math.Truncate( req.Crop_Offset[0] * mosaic.Width );
- int offsetY = (int)Math.Truncate( req.Crop_Offset[1] * mosaic.Height );
+ int offsetX = (int)Math.Truncate( req.Output_Scale * mosaic.Width );
+ int offsetY = (int)Math.Truncate( req.Output_Scale * mosaic.Height );
int restWidth = mosaic.Width - offsetX;
int restHeight = mosaic.Height - offsetY;
@@ -98,9 +96,13 @@ public class LiloStitcher( TileLoader loader )
var cropped = mosaic.Crop( cropX, cropY, cropWidth, cropHeight );
- string path = Path.Combine(Path.GetTempPath(), $"mosaic-{Guid.NewGuid():N}.png");
- cropped.WriteToFile(path);
- return path;
+ var finalImg = scale < 1.0 ? cropped.Resize( scale ) : cropped;
+
+ string tmp = Path.GetTempFileName() + ".png";
+ finalImg.WriteToFile( tmp );
+ byte[] result = await File.ReadAllBytesAsync( tmp, ct );
+ File.Delete( tmp );
+ return result;
}
private static (int rowMin, int colMin, int rows, int cols) ParseCanvas( string rect )
diff --git a/Program.cs b/Program.cs
index 5b60d67..05492df 100644
--- a/Program.cs
+++ b/Program.cs
@@ -1,20 +1,19 @@
-using lilos_stitcher;
-
var builder = WebApplication.CreateBuilder(args);
-NetVips.NetVips.Init();
-NetVips.NetVips.Concurrency = 3;
+// Add services to the container.
+// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
+// builder.Services.AddOpenApi();
-builder.Services.AddControllers().AddJsonOptions(o => o.JsonSerializerOptions.PropertyNameCaseInsensitive = true);
+builder.Services.AddControllers().AddJsonOptions(options => options.JsonSerializerOptions.PropertyNameCaseInsensitive = true);
-builder.Services.AddMemoryCache(o => o.SizeLimit = 128L * 1024 * 1024);
+builder.Services.AddMemoryCache(o => o.SizeLimit = 256 * 1024 * 1024);
-string assetDir = Environment.GetEnvironmentVariable("ASSET_PATH_RO") ?? throw new InvalidOperationException("dir not found");
-
-builder.Services.AddSingleton();
-builder.Services.AddSingleton(provider => new TileLoader(provider.GetRequiredService(), assetDir));
-builder.Services.AddSingleton();
+builder.Services.AddSingleton();
+builder.Services.AddSingleton();
+builder.Services.AddSingleton();
var app = builder.Build();
+
app.MapControllers();
+
app.Run();
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 1980fc5..0000000
--- a/README.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Lilo Stitcher API
-
-An ASP.NET Core Web API for stitching, cropping, and scaling tiled images (720×720).
-
-## Prerequisites
-
-* .NET 9.0 SDK
-* `ASSET_PATH_RO` environment variable containing the path to tiles directory (1,705 PNGs named A1.png…AE55.png)
-
-## Build & Run
-
-```bash
-cd lilo-stitcher
-dotnet clean
-dotnet run
-```
-
-By default, the API listens on `http://localhost:5243` and `https://localhost:7121` (see [`launchSettings.json`](https://null.formulatrix.dev/fikribahru/lilo-stitcher/src/branch/main/Properties/launchSettings.json)).
-
-## Usage
-
-**Endpoint:** `POST /api/image/generate`
-
-**Request Body (JSON):**
-
-```json
-{
- "canvas_rect": "A1:H12",
- "crop_offset": [0.25, 0.25],
- "crop_size": [0.5, 0.5],
- "output_scale": 1.0
-}
-```
-
-**Example (using `curl`):**
-
-```bash
-curl -X POST http://localhost:5243/api/image/generate \
- -H "Content-Type: application/json" \
- -o output.png \
- -d '{"canvas_rect":"A1:H12","crop_offset":[0.25,0.25],"crop_size":[0.5,0.5],"output_scale":1.0}'
-```
-
-The API will return a `image/png` containing the stitched, cropped, and scaled result.
diff --git a/lilos-stitcher.csproj b/lilos-stitcher.csproj
index 2ced848..c86ded4 100644
--- a/lilos-stitcher.csproj
+++ b/lilos-stitcher.csproj
@@ -5,15 +5,13 @@
enable
enable
lilos_stitcher
- preview
-
-
-
+
+
\ No newline at end of file
diff --git a/mise.toml b/mise.toml
deleted file mode 100644
index dca4d7a..0000000
--- a/mise.toml
+++ /dev/null
@@ -1,92 +0,0 @@
-# Quick Guide
-# - install mise
-# - download the asset and extract them to ASSET_PATH_RO
-# - mise trust mise.toml
-# - mise run verify-asset
-# - require hashdeep
-# `hashdeep` package in debian
-# or `md5deep` package in fedora
-# or uncomment `tools."http:hashdeep"` below in windows
-# - mise run serve
-# - mise run arrange
-# - mise run action
-# - mise run assert
-# - mise run bench
-
-[env]
-ASSET_PATH_RO = "{{ [xdg_cache_home, 'stitch-a-ton', 'asset'] | join_path }}"
-CONTEST_HOST = "http://localhost:7007"
-CONTEST_API = "/api/image/generate"
-CONTEST_OUTPUT = "{{ [cwd, '.contest'] | join_path }}"
-DOTNET_ENVIRONMENT = "Production"
-ANSWER_COMMIT_HASH = "89a07b40bf0414212c96945671a012035d375a25"
-
-[tools]
-dotnet = "9"
-xh = "latest"
-uv = "latest"
-k6 = "latest"
-
-# uncomment these if you're on windows
-#[tools."http:hashdeep"]
-#version = "4.4"
-
-#[tools."http:hashdeep".platforms]
-#windows-x64 = {url = "https://github.com/jessek/hashdeep/releases/download/v4.4/md5deep-4.4.zip"}
-
-[tasks.setup]
-run = '''
-{% if env.CONTEST_OUTPUT is not exists %}
-mkdir .contest
-{% endif %}
-'''
-
-[tasks.verify-asset]
-dir = "{{ env.ASSET_PATH_RO }}"
-run = '''
-xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/asset.txt -o ../asset.txt
-hashdeep -arbvk ../asset.txt .
-'''
-
-[tasks.arrange]
-depends = ['setup']
-dir = "{{ env.CONTEST_OUTPUT }}"
-outputs = ['answer.json', 'action.py', 'assert.py', 'bench.js', 'fuzzy.json']
-run = '''
-xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/answer.json -o answer.json
-xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/action.py -o action.py
-xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/assert.py -o assert.py
-xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/bench.js -o bench.js
-xh get https://null.formulatrix.dev/Contest/stitch-a-ton-answer/raw/commit/{{ env.ANSWER_COMMIT_HASH }}/fuzzy.json -o fuzzy.json
-'''
-
-[tasks.serve]
-run = "dotnet run -c Release --no-launch-profile --urls {{env.CONTEST_HOST}}"
-
-[tasks.quick]
-depends = ['arrange']
-dir = "{{ env.CONTEST_OUTPUT }}"
-run = '''
-xh post {{env.CONTEST_HOST}}{{env.CONTEST_ENDPOINT}} canvas_rect=A1:H12 crop_offset:=[0,0] crop_size:=[1,1] output_scale:=0.25 -o quick.png
-'''
-
-[tasks.action]
-depends = ['arrange']
-dir = "{{ env.CONTEST_OUTPUT }}"
-run = '''
-uv run --no-config --script {{ [env.CONTEST_OUTPUT, 'action.py'] | join_path }}
-'''
-
-[tasks.assert]
-depends = ['arrange']
-dir = "{{ env.CONTEST_OUTPUT }}"
-run = '''
-uvx --no-config --with-requirements assert.py pytest assert.py
-'''
-
-[tasks.bench]
-depends = ['arrange']
-dir = "{{ env.CONTEST_OUTPUT }}"
-run = '''
-k6 run -e TARGET_URL="{{ env.CONTEST_HOST }}{{ env.CONTEST_API }}" bench.js
-'''
diff --git a/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs
new file mode 100644
index 0000000..feda5e9
--- /dev/null
+++ b/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]
diff --git a/obj/Debug/net9.0/lilos-stitcher.AssemblyInfo.cs b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfo.cs
new file mode 100644
index 0000000..ad099f6
--- /dev/null
+++ b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfo.cs
@@ -0,0 +1,22 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("lilos-stitcher")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
+[assembly: System.Reflection.AssemblyProductAttribute("lilos-stitcher")]
+[assembly: System.Reflection.AssemblyTitleAttribute("lilos-stitcher")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// Generated by the MSBuild WriteCodeFragment class.
+
diff --git a/obj/Debug/net9.0/lilos-stitcher.AssemblyInfoInputs.cache b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfoInputs.cache
new file mode 100644
index 0000000..55bfa87
--- /dev/null
+++ b/obj/Debug/net9.0/lilos-stitcher.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+b9648f35d08e6094ba68410eef2ef1b321e87149ab6afaeef61e60bd1216d6d3
diff --git a/obj/Debug/net9.0/lilos-stitcher.GeneratedMSBuildEditorConfig.editorconfig b/obj/Debug/net9.0/lilos-stitcher.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 0000000..14eb60c
--- /dev/null
+++ b/obj/Debug/net9.0/lilos-stitcher.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,21 @@
+is_global = true
+build_property.TargetFramework = net9.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb = true
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = lilos_stitcher
+build_property.RootNamespace = lilos_stitcher
+build_property.ProjectDir = /home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
+build_property.RazorLangVersion = 9.0
+build_property.SupportLocalizedComponentNames =
+build_property.GenerateRazorMetadataSourceChecksumAttributes =
+build_property.MSBuildProjectDirectory = /home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet
+build_property._RazorSourceGeneratorDebug =
+build_property.EffectiveAnalysisLevelStyle = 9.0
+build_property.EnableCodeStyleSeverity =
diff --git a/obj/Debug/net9.0/lilos-stitcher.GlobalUsings.g.cs b/obj/Debug/net9.0/lilos-stitcher.GlobalUsings.g.cs
new file mode 100644
index 0000000..025530a
--- /dev/null
+++ b/obj/Debug/net9.0/lilos-stitcher.GlobalUsings.g.cs
@@ -0,0 +1,17 @@
+//
+global using global::Microsoft.AspNetCore.Builder;
+global using global::Microsoft.AspNetCore.Hosting;
+global using global::Microsoft.AspNetCore.Http;
+global using global::Microsoft.AspNetCore.Routing;
+global using global::Microsoft.Extensions.Configuration;
+global using global::Microsoft.Extensions.DependencyInjection;
+global using global::Microsoft.Extensions.Hosting;
+global using global::Microsoft.Extensions.Logging;
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Net.Http.Json;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/obj/Debug/net9.0/lilos-stitcher.assets.cache b/obj/Debug/net9.0/lilos-stitcher.assets.cache
new file mode 100644
index 0000000..ddf522c
Binary files /dev/null and b/obj/Debug/net9.0/lilos-stitcher.assets.cache differ
diff --git a/obj/Debug/net9.0/lilos-stitcher.csproj.AssemblyReference.cache b/obj/Debug/net9.0/lilos-stitcher.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..a2fb20e
Binary files /dev/null and b/obj/Debug/net9.0/lilos-stitcher.csproj.AssemblyReference.cache differ
diff --git a/obj/lilos-stitcher.csproj.nuget.dgspec.json b/obj/lilos-stitcher.csproj.nuget.dgspec.json
new file mode 100644
index 0000000..4f7b5ab
--- /dev/null
+++ b/obj/lilos-stitcher.csproj.nuget.dgspec.json
@@ -0,0 +1,86 @@
+{
+ "format": 1,
+ "restore": {
+ "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj": {}
+ },
+ "projects": {
+ "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj",
+ "projectName": "lilos-stitcher",
+ "projectPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj",
+ "packagesPath": "/home/mbsbahru/.nuget/packages/",
+ "outputPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/obj/",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "/home/mbsbahru/.nuget/NuGet/NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net9.0"
+ ],
+ "sources": {
+ "/home/mbsbahru/nuget-local": {},
+ "/usr/lib/dotnet/library-packs": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net9.0": {
+ "targetAlias": "net9.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "9.0.100"
+ },
+ "frameworks": {
+ "net9.0": {
+ "targetAlias": "net9.0",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": {
+ "target": "Package",
+ "version": "[10.0.0-preview.6.25358.103, )"
+ },
+ "NetVips": {
+ "target": "Package",
+ "version": "[3.1.0, )"
+ },
+ "NetVips.Native.linux-x64": {
+ "target": "Package",
+ "version": "[8.17.1, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.AspNetCore.App": {
+ "privateAssets": "none"
+ },
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/9.0.108/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/obj/lilos-stitcher.csproj.nuget.g.props b/obj/lilos-stitcher.csproj.nuget.g.props
new file mode 100644
index 0000000..beeabf2
--- /dev/null
+++ b/obj/lilos-stitcher.csproj.nuget.g.props
@@ -0,0 +1,15 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ /home/mbsbahru/.nuget/packages/
+ /home/mbsbahru/.nuget/packages/
+ PackageReference
+ 6.12.4
+
+
+
+
+
\ No newline at end of file
diff --git a/obj/lilos-stitcher.csproj.nuget.g.targets b/obj/lilos-stitcher.csproj.nuget.g.targets
new file mode 100644
index 0000000..f34860e
--- /dev/null
+++ b/obj/lilos-stitcher.csproj.nuget.g.targets
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/obj/project.assets.json b/obj/project.assets.json
new file mode 100644
index 0000000..b5b766b
--- /dev/null
+++ b/obj/project.assets.json
@@ -0,0 +1,549 @@
+{
+ "version": 3,
+ "targets": {
+ "net9.0": {
+ "Microsoft.Extensions.Caching.Abstractions/10.0.0-preview.6.25358.103": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "10.0.0-preview.6.25358.103"
+ },
+ "compile": {
+ "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/_._": {}
+ }
+ },
+ "Microsoft.Extensions.Caching.Memory/10.0.0-preview.6.25358.103": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Abstractions": "10.0.0-preview.6.25358.103",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-preview.6.25358.103",
+ "Microsoft.Extensions.Logging.Abstractions": "10.0.0-preview.6.25358.103",
+ "Microsoft.Extensions.Options": "10.0.0-preview.6.25358.103",
+ "Microsoft.Extensions.Primitives": "10.0.0-preview.6.25358.103"
+ },
+ "compile": {
+ "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/_._": {}
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0-preview.6.25358.103": {
+ "type": "package",
+ "compile": {
+ "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/_._": {}
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions/10.0.0-preview.6.25358.103": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-preview.6.25358.103",
+ "System.Diagnostics.DiagnosticSource": "10.0.0-preview.6.25358.103"
+ },
+ "compile": {
+ "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets": {}
+ }
+ },
+ "Microsoft.Extensions.Options/10.0.0-preview.6.25358.103": {
+ "type": "package",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0-preview.6.25358.103",
+ "Microsoft.Extensions.Primitives": "10.0.0-preview.6.25358.103"
+ },
+ "compile": {
+ "lib/net9.0/Microsoft.Extensions.Options.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/Microsoft.Extensions.Options.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/Microsoft.Extensions.Options.targets": {}
+ }
+ },
+ "Microsoft.Extensions.Primitives/10.0.0-preview.6.25358.103": {
+ "type": "package",
+ "compile": {
+ "lib/net9.0/Microsoft.Extensions.Primitives.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/Microsoft.Extensions.Primitives.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/_._": {}
+ }
+ },
+ "NetVips/3.1.0": {
+ "type": "package",
+ "compile": {
+ "lib/net6.0/NetVips.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/NetVips.dll": {
+ "related": ".xml"
+ }
+ }
+ },
+ "NetVips.Native.linux-x64/8.17.1": {
+ "type": "package",
+ "compile": {
+ "lib/net6.0/_._": {}
+ },
+ "runtime": {
+ "lib/net6.0/_._": {}
+ },
+ "runtimeTargets": {
+ "runtimes/linux-x64/native/libvips.so.42": {
+ "assetType": "native",
+ "rid": "linux-x64"
+ }
+ }
+ },
+ "System.Diagnostics.DiagnosticSource/10.0.0-preview.6.25358.103": {
+ "type": "package",
+ "compile": {
+ "lib/net9.0/System.Diagnostics.DiagnosticSource.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net9.0/System.Diagnostics.DiagnosticSource.dll": {
+ "related": ".xml"
+ }
+ },
+ "build": {
+ "buildTransitive/net8.0/_._": {}
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.Extensions.Caching.Abstractions/10.0.0-preview.6.25358.103": {
+ "sha512": "XueBRYerg0fC13swErWCHB8zJ7feYt5R5Und/CjDy45DIccK7MvGJ2aSrtg+OUvPCUinJYphBaLiarfrLuIWfw==",
+ "type": "package",
+ "path": "microsoft.extensions.caching.abstractions/10.0.0-preview.6.25358.103",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/Microsoft.Extensions.Caching.Abstractions.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net8.0/_._",
+ "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Abstractions.targets",
+ "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.dll",
+ "lib/net10.0/Microsoft.Extensions.Caching.Abstractions.xml",
+ "lib/net462/Microsoft.Extensions.Caching.Abstractions.dll",
+ "lib/net462/Microsoft.Extensions.Caching.Abstractions.xml",
+ "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.dll",
+ "lib/net8.0/Microsoft.Extensions.Caching.Abstractions.xml",
+ "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.dll",
+ "lib/net9.0/Microsoft.Extensions.Caching.Abstractions.xml",
+ "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.dll",
+ "lib/netstandard2.0/Microsoft.Extensions.Caching.Abstractions.xml",
+ "microsoft.extensions.caching.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "microsoft.extensions.caching.abstractions.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "Microsoft.Extensions.Caching.Memory/10.0.0-preview.6.25358.103": {
+ "sha512": "TnEV0E/xlGsAX2zXwdmBVyHcKCAXm7zlOXavdFF7HyHWf0qiReM1ZAvnCDGMERippHxqqUtXC3koZ2uz28UvhQ==",
+ "type": "package",
+ "path": "microsoft.extensions.caching.memory/10.0.0-preview.6.25358.103",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/Microsoft.Extensions.Caching.Memory.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net8.0/_._",
+ "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Caching.Memory.targets",
+ "lib/net10.0/Microsoft.Extensions.Caching.Memory.dll",
+ "lib/net10.0/Microsoft.Extensions.Caching.Memory.xml",
+ "lib/net462/Microsoft.Extensions.Caching.Memory.dll",
+ "lib/net462/Microsoft.Extensions.Caching.Memory.xml",
+ "lib/net8.0/Microsoft.Extensions.Caching.Memory.dll",
+ "lib/net8.0/Microsoft.Extensions.Caching.Memory.xml",
+ "lib/net9.0/Microsoft.Extensions.Caching.Memory.dll",
+ "lib/net9.0/Microsoft.Extensions.Caching.Memory.xml",
+ "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.dll",
+ "lib/netstandard2.0/Microsoft.Extensions.Caching.Memory.xml",
+ "microsoft.extensions.caching.memory.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "microsoft.extensions.caching.memory.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions/10.0.0-preview.6.25358.103": {
+ "sha512": "XrX5CQwI6dnGvmPJJxf/X1JxhPzRwdKKUf9onJKN+qyqP+wwH9floTgkckGdJxVV+jvnWeUgSJ6MZvQM6WmwSg==",
+ "type": "package",
+ "path": "microsoft.extensions.dependencyinjection.abstractions/10.0.0-preview.6.25358.103",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net8.0/_._",
+ "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets",
+ "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
+ "lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
+ "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
+ "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
+ "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
+ "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
+ "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
+ "lib/net9.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
+ "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
+ "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
+ "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll",
+ "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml",
+ "microsoft.extensions.dependencyinjection.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "microsoft.extensions.dependencyinjection.abstractions.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "Microsoft.Extensions.Logging.Abstractions/10.0.0-preview.6.25358.103": {
+ "sha512": "ktG/8xOcrtBL176cYv6mzOL+YRSPySE8hcppHonAXYa8jf3lW/WmxfAUwK0WtUEl7MdYR8mbuEAbSg81crBq5Q==",
+ "type": "package",
+ "path": "microsoft.extensions.logging.abstractions/10.0.0-preview.6.25358.103",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll",
+ "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll",
+ "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll",
+ "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll",
+ "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets",
+ "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets",
+ "buildTransitive/net8.0/Microsoft.Extensions.Logging.Abstractions.targets",
+ "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets",
+ "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets",
+ "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll",
+ "lib/net10.0/Microsoft.Extensions.Logging.Abstractions.xml",
+ "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll",
+ "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml",
+ "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll",
+ "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml",
+ "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.dll",
+ "lib/net9.0/Microsoft.Extensions.Logging.Abstractions.xml",
+ "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
+ "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
+ "microsoft.extensions.logging.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "microsoft.extensions.logging.abstractions.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "Microsoft.Extensions.Options/10.0.0-preview.6.25358.103": {
+ "sha512": "V3IaV1wPAVpVfDrOK0b4xKZVEHMFlYSL0Wfx6/Tm8bt4ovodorVqHe/EvsogWmsbcj1XhJvFuWXVDuG479i2vw==",
+ "type": "package",
+ "path": "microsoft.extensions.options/10.0.0-preview.6.25358.103",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll",
+ "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll",
+ "buildTransitive/net461/Microsoft.Extensions.Options.targets",
+ "buildTransitive/net462/Microsoft.Extensions.Options.targets",
+ "buildTransitive/net8.0/Microsoft.Extensions.Options.targets",
+ "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Options.targets",
+ "buildTransitive/netstandard2.0/Microsoft.Extensions.Options.targets",
+ "lib/net10.0/Microsoft.Extensions.Options.dll",
+ "lib/net10.0/Microsoft.Extensions.Options.xml",
+ "lib/net462/Microsoft.Extensions.Options.dll",
+ "lib/net462/Microsoft.Extensions.Options.xml",
+ "lib/net8.0/Microsoft.Extensions.Options.dll",
+ "lib/net8.0/Microsoft.Extensions.Options.xml",
+ "lib/net9.0/Microsoft.Extensions.Options.dll",
+ "lib/net9.0/Microsoft.Extensions.Options.xml",
+ "lib/netstandard2.0/Microsoft.Extensions.Options.dll",
+ "lib/netstandard2.0/Microsoft.Extensions.Options.xml",
+ "lib/netstandard2.1/Microsoft.Extensions.Options.dll",
+ "lib/netstandard2.1/Microsoft.Extensions.Options.xml",
+ "microsoft.extensions.options.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "microsoft.extensions.options.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "Microsoft.Extensions.Primitives/10.0.0-preview.6.25358.103": {
+ "sha512": "iSpD+A130hPiq20tbqKGujXtFY1Zc3q/R/AlN3qPpUYwmxEZbybykQ+YpiDzdyoGvo0gp/4vtk/Hqcvkwt53Gw==",
+ "type": "package",
+ "path": "microsoft.extensions.primitives/10.0.0-preview.6.25358.103",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "PACKAGE.md",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/Microsoft.Extensions.Primitives.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net8.0/_._",
+ "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Primitives.targets",
+ "lib/net10.0/Microsoft.Extensions.Primitives.dll",
+ "lib/net10.0/Microsoft.Extensions.Primitives.xml",
+ "lib/net462/Microsoft.Extensions.Primitives.dll",
+ "lib/net462/Microsoft.Extensions.Primitives.xml",
+ "lib/net8.0/Microsoft.Extensions.Primitives.dll",
+ "lib/net8.0/Microsoft.Extensions.Primitives.xml",
+ "lib/net9.0/Microsoft.Extensions.Primitives.dll",
+ "lib/net9.0/Microsoft.Extensions.Primitives.xml",
+ "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll",
+ "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml",
+ "microsoft.extensions.primitives.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "microsoft.extensions.primitives.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ },
+ "NetVips/3.1.0": {
+ "sha512": "/8vwrHjZYO8ec2hXtHxzoreA8TGeSUlcbM+EBc951jlhNQ3n6KfjmZSDQ4T3Is2YS/+FPQrAEUnMIXV2IhxRfg==",
+ "type": "package",
+ "path": "netvips/3.1.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "lib/net452/NetVips.dll",
+ "lib/net452/NetVips.xml",
+ "lib/net6.0/NetVips.dll",
+ "lib/net6.0/NetVips.xml",
+ "netvips.3.1.0.nupkg.sha512",
+ "netvips.nuspec"
+ ]
+ },
+ "NetVips.Native.linux-x64/8.17.1": {
+ "sha512": "i5enEqi0SDWKoinxP/cyjq7T4Vo8bDCfvv5Nf5smBdynAj6EuyNxDaZ54inRjcRD2pA8hZV7mW9gI5H/v/Ls2w==",
+ "type": "package",
+ "path": "netvips.native.linux-x64/8.17.1",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "THIRD-PARTY-NOTICES.md",
+ "lib/net6.0/_._",
+ "netvips.native.linux-x64.8.17.1.nupkg.sha512",
+ "netvips.native.linux-x64.nuspec",
+ "runtimes/linux-x64/native/libvips.so.42",
+ "versions.json"
+ ]
+ },
+ "System.Diagnostics.DiagnosticSource/10.0.0-preview.6.25358.103": {
+ "sha512": "SmleXl7WsR4hURxBWoTqeCVt8B+doEKMJRev9fxbqdSi5r18kTX/wYqsNePbq/eJeoq3x8UlngVwxwXplYXXfg==",
+ "type": "package",
+ "path": "system.diagnostics.diagnosticsource/10.0.0-preview.6.25358.103",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "Icon.png",
+ "THIRD-PARTY-NOTICES.TXT",
+ "buildTransitive/net461/System.Diagnostics.DiagnosticSource.targets",
+ "buildTransitive/net462/_._",
+ "buildTransitive/net8.0/_._",
+ "buildTransitive/netcoreapp2.0/System.Diagnostics.DiagnosticSource.targets",
+ "lib/net10.0/System.Diagnostics.DiagnosticSource.dll",
+ "lib/net10.0/System.Diagnostics.DiagnosticSource.xml",
+ "lib/net462/System.Diagnostics.DiagnosticSource.dll",
+ "lib/net462/System.Diagnostics.DiagnosticSource.xml",
+ "lib/net8.0/System.Diagnostics.DiagnosticSource.dll",
+ "lib/net8.0/System.Diagnostics.DiagnosticSource.xml",
+ "lib/net9.0/System.Diagnostics.DiagnosticSource.dll",
+ "lib/net9.0/System.Diagnostics.DiagnosticSource.xml",
+ "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.dll",
+ "lib/netstandard2.0/System.Diagnostics.DiagnosticSource.xml",
+ "system.diagnostics.diagnosticsource.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "system.diagnostics.diagnosticsource.nuspec",
+ "useSharedDesignerContext.txt"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ "net9.0": [
+ "Microsoft.Extensions.Caching.Memory >= 10.0.0-preview.6.25358.103",
+ "NetVips >= 3.1.0",
+ "NetVips.Native.linux-x64 >= 8.17.1"
+ ]
+ },
+ "packageFolders": {
+ "/home/mbsbahru/.nuget/packages/": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj",
+ "projectName": "lilos-stitcher",
+ "projectPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj",
+ "packagesPath": "/home/mbsbahru/.nuget/packages/",
+ "outputPath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/obj/",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "/home/mbsbahru/.nuget/NuGet/NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net9.0"
+ ],
+ "sources": {
+ "/home/mbsbahru/nuget-local": {},
+ "/usr/lib/dotnet/library-packs": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net9.0": {
+ "targetAlias": "net9.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "direct"
+ },
+ "SdkAnalysisLevel": "9.0.100"
+ },
+ "frameworks": {
+ "net9.0": {
+ "targetAlias": "net9.0",
+ "dependencies": {
+ "Microsoft.Extensions.Caching.Memory": {
+ "target": "Package",
+ "version": "[10.0.0-preview.6.25358.103, )"
+ },
+ "NetVips": {
+ "target": "Package",
+ "version": "[3.1.0, )"
+ },
+ "NetVips.Native.linux-x64": {
+ "target": "Package",
+ "version": "[8.17.1, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.AspNetCore.App": {
+ "privateAssets": "none"
+ },
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "/usr/lib/dotnet/sdk/9.0.108/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/obj/project.nuget.cache b/obj/project.nuget.cache
new file mode 100644
index 0000000..d39e319
--- /dev/null
+++ b/obj/project.nuget.cache
@@ -0,0 +1,18 @@
+{
+ "version": 2,
+ "dgSpecHash": "ND5vzXBabtw=",
+ "success": true,
+ "projectFilePath": "/home/mbsbahru/Documents/Formulatrix Trivia/stitch-a-ton challenge/lilos-stitcher-aspnet/lilos-stitcher.csproj",
+ "expectedPackageFiles": [
+ "/home/mbsbahru/.nuget/packages/microsoft.extensions.caching.abstractions/10.0.0-preview.6.25358.103/microsoft.extensions.caching.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/microsoft.extensions.caching.memory/10.0.0-preview.6.25358.103/microsoft.extensions.caching.memory.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/microsoft.extensions.dependencyinjection.abstractions/10.0.0-preview.6.25358.103/microsoft.extensions.dependencyinjection.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/microsoft.extensions.logging.abstractions/10.0.0-preview.6.25358.103/microsoft.extensions.logging.abstractions.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/microsoft.extensions.options/10.0.0-preview.6.25358.103/microsoft.extensions.options.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/microsoft.extensions.primitives/10.0.0-preview.6.25358.103/microsoft.extensions.primitives.10.0.0-preview.6.25358.103.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/netvips/3.1.0/netvips.3.1.0.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/netvips.native.linux-x64/8.17.1/netvips.native.linux-x64.8.17.1.nupkg.sha512",
+ "/home/mbsbahru/.nuget/packages/system.diagnostics.diagnosticsource/10.0.0-preview.6.25358.103/system.diagnostics.diagnosticsource.10.0.0-preview.6.25358.103.nupkg.sha512"
+ ],
+ "logs": []
+}
\ No newline at end of file