diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07b4269 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +bin/ +obj/ +TestResults/ +*.user +*.suo +*.dxf +*.tracecad.json diff --git a/TraceCad.sln b/TraceCad.sln new file mode 100644 index 0000000..6ed9cfb --- /dev/null +++ b/TraceCad.sln @@ -0,0 +1,42 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TraceCad.Core", "src\TraceCad.Core\TraceCad.Core.csproj", "{2D91D9E6-8C2E-4D16-8C2A-723E20D23921}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TraceCad.Dxf", "src\TraceCad.Dxf\TraceCad.Dxf.csproj", "{EBF76348-4A82-4A39-A72D-3F79D76EC4F5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TraceCad.Vision", "src\TraceCad.Vision\TraceCad.Vision.csproj", "{90132542-642E-4E72-A4A3-23D7D7D6D7A9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TraceCad.App", "src\TraceCad.App\TraceCad.App.csproj", "{410FE9B5-2C1A-4149-AF3C-9100A45FE6C5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TraceCad.Tests", "tests\TraceCad.Tests\TraceCad.Tests.csproj", "{8E121333-04BD-4E95-BB2F-A5073C3819DE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2D91D9E6-8C2E-4D16-8C2A-723E20D23921}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2D91D9E6-8C2E-4D16-8C2A-723E20D23921}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2D91D9E6-8C2E-4D16-8C2A-723E20D23921}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2D91D9E6-8C2E-4D16-8C2A-723E20D23921}.Release|Any CPU.Build.0 = Release|Any CPU + {EBF76348-4A82-4A39-A72D-3F79D76EC4F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EBF76348-4A82-4A39-A72D-3F79D76EC4F5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EBF76348-4A82-4A39-A72D-3F79D76EC4F5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EBF76348-4A82-4A39-A72D-3F79D76EC4F5}.Release|Any CPU.Build.0 = Release|Any CPU + {90132542-642E-4E72-A4A3-23D7D7D6D7A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {90132542-642E-4E72-A4A3-23D7D7D6D7A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {90132542-642E-4E72-A4A3-23D7D7D6D7A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {90132542-642E-4E72-A4A3-23D7D7D6D7A9}.Release|Any CPU.Build.0 = Release|Any CPU + {410FE9B5-2C1A-4149-AF3C-9100A45FE6C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {410FE9B5-2C1A-4149-AF3C-9100A45FE6C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {410FE9B5-2C1A-4149-AF3C-9100A45FE6C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {410FE9B5-2C1A-4149-AF3C-9100A45FE6C5}.Release|Any CPU.Build.0 = Release|Any CPU + {8E121333-04BD-4E95-BB2F-A5073C3819DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E121333-04BD-4E95-BB2F-A5073C3819DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E121333-04BD-4E95-BB2F-A5073C3819DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E121333-04BD-4E95-BB2F-A5073C3819DE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/docs/UI-Inspo/0_8o2T4T-H4gKFQ9yT.png b/docs/UI-Inspo/0_8o2T4T-H4gKFQ9yT.png new file mode 100644 index 0000000..df55f1e Binary files /dev/null and b/docs/UI-Inspo/0_8o2T4T-H4gKFQ9yT.png differ diff --git a/docs/UI-Inspo/1749624727927.png b/docs/UI-Inspo/1749624727927.png new file mode 100644 index 0000000..d8c911a Binary files /dev/null and b/docs/UI-Inspo/1749624727927.png differ diff --git a/docs/UI-Inspo/1761671283-image4.png b/docs/UI-Inspo/1761671283-image4.png new file mode 100644 index 0000000..0ec959a Binary files /dev/null and b/docs/UI-Inspo/1761671283-image4.png differ diff --git a/docs/UI-Inspo/liquid-glass-featured.jpg b/docs/UI-Inspo/liquid-glass-featured.jpg new file mode 100644 index 0000000..cb982d8 Binary files /dev/null and b/docs/UI-Inspo/liquid-glass-featured.jpg differ diff --git a/docs/architecture.md b/docs/architecture.md new file mode 100644 index 0000000..04ebc14 --- /dev/null +++ b/docs/architecture.md @@ -0,0 +1,21 @@ +# TraceCad Architecture + +TraceCad is split into small .NET projects with one-way dependencies. + +```text +TraceCad.App -> TraceCad.Core, TraceCad.Dxf +TraceCad.Dxf -> TraceCad.Core +TraceCad.Vision -> TraceCad.Core +TraceCad.Core -> no UI, OpenCV, or DXF package dependencies +``` + +## Coordinate Spaces + +- Model space: millimetres, used for all stored CAD geometry. +- View space: screen pixels, used only by the Avalonia canvas. +- Export space: millimetres, mapped directly to DXF output. +- Reference space: reserved for calibrated background images in later phases. + +## MVP Boundaries + +MVP 0.1 intentionally excludes OpenCV, marker detection, automatic tracing, constraints, and dimensions. The first implementation proves deterministic CAD entity creation and DXF export. diff --git a/docs/dxf-export.md b/docs/dxf-export.md new file mode 100644 index 0000000..031f423 --- /dev/null +++ b/docs/dxf-export.md @@ -0,0 +1,15 @@ +# DXF Export + +DXF is an export format, not TraceCad's internal document format. + +The MVP exporter uses `netDxf` behind `IDxfExporter` so the implementation can be replaced without changing core or UI code. + +## Current Mapping + +| TraceCad entity | DXF entity | +| --- | --- | +| `LineEntity` | `LINE` | +| `CircleEntity` | `CIRCLE` | +| `ArcEntity` | `ARC` | + +All exported geometry is written in millimetres. Non-exportable layers such as `CONSTRUCTION`, `REFERENCE`, `DIMENSIONS`, and `DEBUG` are skipped by default. diff --git a/docs/mvp.md b/docs/mvp.md new file mode 100644 index 0000000..1fe5c36 --- /dev/null +++ b/docs/mvp.md @@ -0,0 +1,29 @@ +# MVP 0.1 + +MVP 0.1 focuses on the editor core: + +- Start the Avalonia desktop app. +- Pan and zoom a millimetre canvas. +- Draw lines from two points. +- Draw circles from three circumference points. +- Draw arcs from start, through, and end points. +- Select and delete entities. +- Undo and redo document mutations. +- Save and load the native JSON project format. +- Export LINE, CIRCLE, and ARC entities to DXF. + +MVP 0.2 adds the manual reference-image layer: + +- Import a raster image as a locked background reference. +- Display the reference below CAD entities. +- Adjust opacity independently of geometry. +- Lock and unlock the reference. +- Edit reference X/Y origin, scale, and rotation manually. +- Save and reload reference metadata in the native JSON project file. + +Deferred work: + +- Calibration sheet generation. +- OpenCV marker detection. +- Assisted fitting tools. +- Constraint and dimension systems. diff --git a/docs/project_scope.md b/docs/project_scope.md new file mode 100644 index 0000000..e52e30b --- /dev/null +++ b/docs/project_scope.md @@ -0,0 +1,1044 @@ +# Project Scope: Calibrated Trace CAD + +## 1. Purpose + +This document defines the initial product scope, technical architecture, development priorities, and implementation rules for a desktop application that converts manually traced real-world outlines into clean, scale-accurate 2D CAD geometry and DXF exports. + +The application is not an AI-based image-to-vector tool. It is a deterministic, user-controlled 2D tracing and sketching application that uses a calibrated printed sheet and photo reference as a scale-accurate background layer. The user manually reconstructs clean CAD geometry over the reference image using lines, arcs, circles, and assisted fitting tools. + +The goal is to produce technically valid 2D DXF drawings suitable for laser cutting, CNC routing, milling preparation, or further editing in CAD software. + +--- + +## 2. Product Concept + +The product should allow a user to: + +1. Print a calibrated marker sheet. +2. Place or trace a real object on the sheet using a pencil, fineliner, or marker. +3. Photograph or scan the sheet. +4. Import the image into the application. +5. Let the software detect the sheet, correct perspective, and establish a real-world millimetre coordinate system. +6. Manually trace the visible sketch using precise CAD-style tools. +7. Optionally refine the geometry with dimensions or constraints. +8. Export a clean DXF file using real CAD entities. + +The standard workflow must not require manual dimensioning. Dimensioning and constraints are optional advanced features. + +The core UX principle is: + +> The physical sheet provides scale. The photo provides visual reference. The user creates clean geometry manually. + +--- + +## 3. Non-Goals + +The application must not be designed as: + +- A fully automatic AI image-to-DXF converter. +- A raster autotracing tool that blindly converts pixels into vector paths. +- A general-purpose 3D CAD application. +- A parametric CAD clone in the first MVP. +- A web-only prototype. +- A Python application. + +Automatic detection of pencil lines may be added later as an assistive feature, but it must never become the source of final geometry without explicit user confirmation. + +--- + +## 4. Target Platform and Technology Stack + +### 4.1 Primary Stack + +Use: + +- Language: C# +- Runtime: .NET 8 or newer +- UI framework: Avalonia UI +- Rendering: Avalonia custom controls / SkiaSharp where useful +- Computer vision: OpenCvSharp / OpenCV +- DXF export: netDxf initially, with an abstraction layer to allow replacement later +- Project format: custom JSON +- Unit tests: xUnit + +### 4.2 Release Target + +The first release target is: + +- Windows x64 +- Portable executable or portable application folder +- No forced installer +- No Python runtime dependency +- No external CAD dependency + +Preferred initial packaging: + +```bash +# Portable folder build, preferred while native OpenCV DLLs are involved +dotnet publish src/TraceCad.App \ + -c Release \ + -r win-x64 \ + --self-contained true +``` + +Single-file publishing may be evaluated later: + +```bash +dotnet publish src/TraceCad.App \ + -c Release \ + -r win-x64 \ + --self-contained true \ + /p:PublishSingleFile=true \ + /p:IncludeNativeLibrariesForSelfExtract=true +``` + +### 4.3 Future Platforms + +The architecture should not block later builds for: + +- Linux x64 +- macOS x64 +- macOS arm64 + +However, Windows x64 is the first-class MVP target. + +--- + +## 5. Recommended Solution Structure + +Use a clean multi-project .NET solution. + +```text +TraceCad/ + src/ + TraceCad.App/ # Avalonia UI application + TraceCad.Core/ # Geometry, document model, tools, snapping, validation + TraceCad.Dxf/ # DXF export/import abstraction + TraceCad.Vision/ # OpenCV, marker detection, homography, calibration + tests/ + TraceCad.Tests/ # Unit tests for geometry, export, transforms, validation + docs/ + project_scope.md + architecture.md + mvp.md + dxf-export.md + samples/ + reference-images/ + exports/ +``` + +### 5.1 Dependency Rules + +The dependencies must flow in one direction: + +```text +TraceCad.App + -> TraceCad.Core + -> TraceCad.Dxf + -> TraceCad.Vision + +TraceCad.Dxf + -> TraceCad.Core + +TraceCad.Vision + -> TraceCad.Core where needed for coordinate data only + +TraceCad.Core + -> no UI framework dependency + -> no Avalonia dependency + -> no OpenCV dependency + -> no DXF library dependency +``` + +The `TraceCad.Core` project must remain UI-independent and testable. + +--- + +## 6. Core Design Principles + +### 6.1 Millimetres as Internal Units + +All model-space geometry must be stored in millimetres. + +Pixels may only be used in the view/rendering layer. + +Required coordinate spaces: + +```text +Model Space real geometry in mm +View Space screen pixels +Reference Space calibrated image/background +Export Space DXF coordinate output in mm +``` + +Never store final CAD geometry in pixels. + +### 6.2 Deterministic Geometry + +Final geometry must consist of explicit CAD entities: + +- Lines +- Circles +- Arcs +- Polylines where appropriate +- Optional dimensions later +- Optional construction entities + +Do not export raw traced raster contours as the main workflow. + +### 6.3 Reference Image Is Not Geometry + +The imported photo or scan is a locked background/reference layer. + +It provides: + +- visual guidance +- scale +- orientation +- real-world coordinate alignment + +It does not directly define final CAD geometry unless the user explicitly creates geometry from it. + +### 6.4 Optional Precision, Low Friction by Default + +The default workflow should require no manual bemaßung/dimensioning. + +Advanced users may later add: + +- exact length +- exact radius/diameter +- exact angle +- horizontal/vertical constraints +- parallel/perpendicular constraints +- tangency +- equality constraints + +But the primary workflow is visual tracing over a scale-accurate reference. + +--- + +## 7. User Workflow + +### 7.1 Standard Workflow + +1. Start new project. +2. Import a photo/scan of a traced calibration sheet. +3. The application detects the printed sheet and sets the document scale. +4. The reference image is displayed on the canvas as a locked, semi-transparent layer. +5. The user manually traces the outline with CAD tools. +6. The application displays endpoint snaps, grid, and geometry previews. +7. The user validates the sketch. +8. The application exports a clean DXF. + +### 7.2 Early MVP Workflow Before Marker Detection + +For MVP staging, marker detection may be delayed. + +Initial workflow: + +1. Start app. +2. Work on an empty millimetre canvas. +3. Draw lines, circles, and arcs. +4. Export DXF. + +Then add: + +1. Import reference image. +2. Manually scale/position the reference image. +3. Trace over it. + +Then add: + +1. Marker sheet detection. +2. Automatic calibration. + +--- + +## 8. MVP Phases + +### 8.1 Version 0.1 — Editor Core + +Goal: prove that the application can create clean 2D CAD geometry and export valid DXF. + +Required features: + +- Avalonia desktop app starts reliably. +- Custom drawing canvas. +- Model-space coordinate system in mm. +- Pan and zoom. +- Grid display. +- Basic snapping to existing endpoints. +- Draw line. +- Draw circle through 3 points. +- Draw arc through 3 points. +- Select entity. +- Delete selected entity. +- Undo/redo. +- Save/load custom JSON project file. +- Export DXF containing LINE, CIRCLE, and ARC entities. + +Not required in 0.1: + +- OpenCV +- marker detection +- camera input +- real-time calibration +- constraints +- automatic image tracing +- dimensions + +### 8.2 Version 0.2 — Reference Image Layer + +Goal: allow manual tracing over an imported background image. + +Required features: + +- Import image as reference. +- Display reference below CAD entities. +- Adjust image opacity. +- Lock/unlock reference image. +- Move/scale/rotate reference image manually if needed. +- Continue drawing geometry over image. + +### 8.3 Version 0.3 — Calibration Sheet + +Goal: automatically convert a photographed sheet into a scale-accurate reference layer. + +Required features: + +- Generate printable A4 calibration sheet. +- Sheet contains machine-readable markers and known geometry. +- Detect markers in imported photo. +- Compute perspective transform/homography. +- Warp image into orthographic top-down view. +- Place image into model space using millimetres. +- Show calibration status. + +Preferred marker types: + +- ArUco +- ChArUco +- AprilTag if practical + +### 8.4 Version 0.4 — Assisted Tracing + +Goal: make manual tracing faster and cleaner without automatic black-box vectorisation. + +Required features: + +- Fit line from multiple user-selected points. +- Fit circle from multiple user-selected points. +- Fit arc from multiple user-selected points. +- Snap endpoints together. +- Close contour command. +- Highlight open endpoints. +- Detect duplicate or near-duplicate segments. +- Detect very short unwanted segments. + +### 8.5 Version 0.5 — Optional Precision and Export Profiles + +Goal: add CAD-like refinement and production checks. + +Required features: + +- Optional length correction. +- Optional radius/diameter correction. +- Optional angle correction. +- Horizontal/vertical constraints. +- Parallel/perpendicular constraints. +- Simple layer system UI. +- Export profiles for CAD and laser/CAM. +- Export validation report. + +--- + +## 9. Calibration Sheet Requirements + +The printed sheet should be designed for reliable detection and practical tracing. + +### 9.1 Initial Sheet Size + +Start with: + +- A4 portrait +- Units: millimetres +- Printed at 100 percent scale + +Future options: + +- A3 +- Letter +- custom sheet sizes + +### 9.2 Sheet Elements + +The sheet should include: + +- Four corner markers outside the main drawing area. +- Known marker positions in millimetres. +- A visible outer reference frame. +- A light drawing grid, e.g. 5 mm or 10 mm. +- A 100 mm printed control line. +- Template ID/version. +- Instruction text: print at 100 percent / actual size / no scaling. + +### 9.3 Drawing Area + +Markers must not overlap with the main tracing area. + +The drawing area should be visually clean and not interfere with pencil lines. + +Recommended: + +- light grey grid +- high contrast markers +- dark outer frame +- reserved margins for markers + +--- + +## 10. Geometry Model + +### 10.1 Required Primitive Types + +The core model must support at least: + +- Point2 +- Vector2 +- LineEntity +- CircleEntity +- ArcEntity +- PolylineEntity later +- Layer +- SketchDocument +- ReferenceImage + +Example conceptual model: + +```csharp +public readonly record struct Point2(double X, double Y); + +public abstract record Entity(Guid Id, string Layer); + +public record LineEntity( + Guid Id, + string Layer, + Point2 Start, + Point2 End +) : Entity(Id, Layer); + +public record CircleEntity( + Guid Id, + string Layer, + Point2 Center, + double Radius +) : Entity(Id, Layer); + +public record ArcEntity( + Guid Id, + string Layer, + Point2 Center, + double Radius, + double StartAngleDeg, + double EndAngleDeg +) : Entity(Id, Layer); +``` + +### 10.2 Three-Point Circle + +The application must allow a circle to be defined by three user-selected points on its circumference. + +Implementation must compute: + +- centre point +- radius +- validity check for collinear or near-collinear points + +### 10.3 Three-Point Arc + +The application must allow an arc to be defined by: + +- start point +- point on arc +- end point + +Implementation must compute: + +- centre point +- radius +- start angle +- end angle +- direction/orientation +- validity check for collinear or near-collinear points + +### 10.4 Entity Editing + +At minimum: + +- select +- delete +- move later +- edit via properties later + +Do not overbuild editing in the first iteration. + +--- + +## 11. Tool System + +The canvas must use a tool-state model. Do not hard-code all interactions into the canvas control. + +Recommended interface concept: + +```csharp +public interface ISketchTool +{ + string Name { get; } + void PointerDown(ToolContext context, Point2 modelPoint); + void PointerMove(ToolContext context, Point2 modelPoint); + void PointerUp(ToolContext context, Point2 modelPoint); + void KeyDown(ToolContext context, Key key); + void RenderOverlay(DrawingContext context, ToolRenderContext renderContext); +} +``` + +Initial tools: + +- SelectTool +- LineTool +- Circle3PointTool +- Arc3PointTool +- PanTool or integrated middle-mouse pan +- Delete command + +Later tools: + +- CircleCenterRadiusTool +- PolylineTool +- FitLineTool +- FitCircleTool +- FitArcTool +- TrimTool +- OffsetTool +- FilletTool +- DimensionTool + +--- + +## 12. Snapping + +### 12.1 MVP Snaps + +Required initially: + +- snap to entity endpoints +- snap to grid optionally + +### 12.2 Later Snaps + +Add later: + +- midpoint +- circle centre +- arc centre +- intersection +- tangent +- perpendicular foot +- nearest point on entity +- reference-image assisted snap, if implemented + +### 12.3 Snap Behaviour + +Snapping must happen in model space. + +The view may display snap indicators in screen space, but the resulting point must be stored in millimetres. + +--- + +## 13. Rendering Requirements + +The custom canvas should render: + +- background +- grid +- reference image +- geometry entities +- selected entities +- hover highlights +- snap indicators +- active tool preview +- optional axes/origin + +The canvas must support: + +- zoom around cursor +- pan by middle mouse button or equivalent +- smooth redraw +- precise hit testing + +Rendering must not mutate the document model. + +--- + +## 14. Project File Format + +Use a custom JSON format as the native document format. + +DXF is an export format, not the internal source of truth. + +Example conceptual structure: + +```json +{ + "version": 1, + "units": "mm", + "document": { + "width": 210.0, + "height": 297.0 + }, + "reference": { + "imagePath": "reference.png", + "opacity": 0.55, + "locked": true, + "transform": { + "originX": 0.0, + "originY": 0.0, + "scaleX": 1.0, + "scaleY": 1.0, + "rotationDeg": 0.0 + } + }, + "layers": [ + { "name": "CUT", "visible": true, "locked": false }, + { "name": "CONSTRUCTION", "visible": true, "locked": false }, + { "name": "DIMENSIONS", "visible": true, "locked": false } + ], + "entities": [ + { + "type": "line", + "id": "00000000-0000-0000-0000-000000000001", + "layer": "CUT", + "start": [10.0, 20.0], + "end": [80.0, 20.0] + } + ] +} +``` + +--- + +## 15. Layer Model + +Initial layers: + +- CUT +- CONSTRUCTION +- REFERENCE +- DIMENSIONS +- DEBUG + +### 15.1 CUT + +Final production geometry intended for DXF export. + +### 15.2 CONSTRUCTION + +Helper geometry. Should not be exported by default. + +### 15.3 REFERENCE + +Imported or calibrated reference information. + +### 15.4 DIMENSIONS + +Optional dimension annotations later. + +### 15.5 DEBUG + +Internal generated geometry or diagnostics. Hidden by default in production builds unless debug mode is enabled. + +--- + +## 16. DXF Export Requirements + +### 16.1 General + +The DXF export must use millimetres. + +Final entities should export as native CAD geometry where possible: + +| Internal Entity | DXF Entity | +|---|---| +| LineEntity | LINE | +| CircleEntity | CIRCLE | +| ArcEntity | ARC | +| PolylineEntity | LWPOLYLINE | + +### 16.2 Export Profiles + +Support at least two conceptual profiles eventually. + +#### CAD Profile + +- Preserve LINE, CIRCLE, ARC. +- Use real geometry. +- Keep layers. +- Suitable for FreeCAD, Fusion, AutoCAD-like systems. + +#### Laser/CAM Profile + +- Prefer closed contours. +- Optionally preserve arcs. +- Optionally flatten arcs/circles to polylines. +- Configurable tolerance, e.g. 0.05 mm. +- Avoid duplicate line cuts. + +### 16.3 Validation Before Export + +The app should eventually report: + +- open endpoints +- duplicate segments +- very short segments +- self-intersections +- invalid arcs +- zero-length lines +- non-mm units + +For MVP 0.1, basic DXF export without full validation is acceptable, but the architecture must leave room for validation. + +--- + +## 17. Validation and Quality Checks + +The application should later include a “drawing health” check. + +Important checks: + +- outer contour closed +- inner contours closed +- no duplicate segments +- no tiny accidental segments below tolerance +- no self-intersections +- arcs have valid radius +- circles have positive radius +- all exportable geometry is on exportable layers + +Validation results should be user-facing but not block saving. + +Export may warn before writing problematic DXF files. + +--- + +## 18. Computer Vision Scope + +### 18.1 Responsibility + +The vision module is responsible for: + +- marker detection +- perspective correction +- coordinate calibration +- optional lens/camera calibration later +- generating a corrected reference image + +The vision module is not responsible for producing final CAD entities. + +### 18.2 Initial Marker Workflow + +1. Load image. +2. Detect marker corners. +3. Match detected marker IDs to template definition. +4. Compute homography from image points to sheet mm points. +5. Warp image to orthographic top-down sheet view. +6. Store corrected image as reference. +7. Attach image to document at known mm dimensions. + +### 18.3 Calibration Result + +The result should include: + +- success/failure +- detected marker count +- template ID +- sheet size in mm +- homography matrix +- warped image +- quality score later + +### 18.4 Quality Feedback Later + +The UI should later show: + +- sheet detected: yes/no +- marker count +- blur/sharpness estimate +- perspective severity +- estimated calibration quality +- warning if image is too skewed or low resolution + +--- + +## 19. User Interface Requirements + +### 19.1 Main Window Layout + +Recommended layout: + +```text +┌──────────────────────────────────────────────┐ +│ Menu / Toolbar │ +├────────────┬───────────────────────┬─────────┤ +│ Tools │ Canvas │ Props │ +│ │ │ Panel │ +├────────────┴───────────────────────┴─────────┤ +│ Status bar / command hints │ +└──────────────────────────────────────────────┘ +``` + +### 19.2 Main Toolbar + +Initial buttons: + +- New +- Open +- Save +- Import Reference +- Export DXF +- Select +- Line +- Circle 3P +- Arc 3P +- Undo +- Redo + +### 19.3 Canvas UX + +The canvas should feel closer to a lightweight CAD/sketch tool than a paint program. + +Required controls: + +- left click for tool actions +- mouse wheel zoom +- middle mouse drag pan +- Esc cancels current operation +- Delete deletes selection +- Ctrl+Z undo +- Ctrl+Y or Ctrl+Shift+Z redo +- Ctrl+S save + +### 19.4 Status Bar + +Show context-specific prompts, e.g.: + +```text +Line Tool: choose start point +Line Tool: choose end point +Circle 3P: choose first point on circle +Arc 3P: choose point on arc +``` + +This reduces the need for documentation. + +--- + +## 20. Undo/Redo + +Implement undo/redo early. + +Preferred model: + +- command pattern +- each document change is a command +- commands can apply and revert + +Initial commands: + +- AddEntityCommand +- DeleteEntityCommand +- AddLayerCommand later +- SetReferenceImageCommand later + +Avoid editing the document directly from tools without command tracking. + +--- + +## 21. Testing Requirements + +### 21.1 Geometry Tests + +Test: + +- line length +- circle from three points +- arc from three points +- collinear failure cases +- angle normalization +- coordinate transforms + +### 21.2 DXF Tests + +Test: + +- export line +- export circle +- export arc +- units are mm +- layer names preserved + +### 21.3 Document Tests + +Test: + +- save/load JSON roundtrip +- entity IDs preserved +- layers preserved +- document version handled + +### 21.4 Vision Tests Later + +Use sample images for: + +- marker detection +- homography +- failed detection +- distorted/skewed sheet + +--- + +## 22. Implementation Priorities + +### Highest Priority + +1. Clean Core model. +2. Custom canvas with model/view transform. +3. Tool system. +4. Line/Circle/Arc creation. +5. DXF export. +6. JSON project file. +7. Undo/redo. + +### Medium Priority + +1. Reference image layer. +2. Manual scaling/rotation of reference image. +3. Layers UI. +4. Basic validation. +5. Export profiles. + +### Later Priority + +1. Marker sheet generation. +2. OpenCV marker detection. +3. Homography correction. +4. Fit tools. +5. Optional dimensions. +6. Optional constraints. +7. Camera live mode. + +--- + +## 23. Development Rules for the Agent + +When implementing, follow these rules: + +1. Do not implement automatic AI tracing as a core feature. +2. Do not store geometry in pixels. +3. Do not put CAD logic inside Avalonia UI controls. +4. Do not make DXF the internal document format. +5. Do not build a monolithic canvas class containing all tools. +6. Do not add OpenCV before the basic editor and DXF export work. +7. Keep `TraceCad.Core` independent from Avalonia and OpenCV. +8. Prefer small testable geometry functions. +9. Use explicit entity classes instead of generic loosely typed objects. +10. Keep the first MVP narrow and working. +11. Implement robust error handling for invalid circle/arc definitions. +12. Maintain millimetre units across the model and export layers. +13. Every tool should have clear interaction state. +14. Every document mutation should eventually go through undoable commands. + +--- + +## 24. First Development Task + +Create the initial .NET solution with this structure: + +```text +TraceCad/ + src/ + TraceCad.App/ + TraceCad.Core/ + TraceCad.Dxf/ + TraceCad.Vision/ + tests/ + TraceCad.Tests/ +``` + +Then implement MVP 0.1 skeleton: + +1. `TraceCad.Core` + - `Point2` + - `Vector2` + - `Entity` + - `LineEntity` + - `CircleEntity` + - `ArcEntity` + - `SketchDocument` + - `Layer` + - basic geometry helpers + +2. `TraceCad.App` + - Avalonia main window + - custom canvas control + - pan/zoom view transform + - grid rendering + - render lines/circles/arcs from document + - toolbar for select/line/circle3p/arc3p + +3. `TraceCad.Dxf` + - exporter interface + - initial netDxf-based exporter + - export LINE/CIRCLE/ARC in mm + +4. `TraceCad.Tests` + - circle from 3 points tests + - arc from 3 points tests + - JSON document roundtrip test + - basic DXF export smoke test + +Do not implement marker detection yet. + +--- + +## 25. Acceptance Criteria for MVP 0.1 + +MVP 0.1 is acceptable when: + +1. The app launches as a Windows desktop application. +2. The user can pan and zoom the canvas. +3. The user can draw a line by clicking two points. +4. The user can create a circle from three clicked points. +5. The user can create an arc from three clicked points. +6. The user can select and delete entities. +7. The user can save and reload a project file. +8. The user can export a DXF. +9. The exported DXF opens in at least one external CAD/CAM program with correct millimetre scale. +10. The core geometry calculations are covered by unit tests. + +--- + +## 26. Product Positioning Summary + +The application should be developed as: + +> A calibrated 2D tracing CAD tool that helps users turn real-world traced outlines into clean, scale-accurate DXF geometry without forcing them into traditional CAD dimensioning workflows. + +Primary value: + +- approachable workflow +- real-world scale from printed sheet +- deterministic geometry +- clean CAD export +- no AI/autotrace slop +- optional precision tools for advanced users + diff --git a/publish/TraceCad-win-x64/Avalonia.Base.dll b/publish/TraceCad-win-x64/Avalonia.Base.dll new file mode 100644 index 0000000..1090d48 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Base.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Controls.dll b/publish/TraceCad-win-x64/Avalonia.Controls.dll new file mode 100644 index 0000000..fc18f9d Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Controls.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.DesignerSupport.dll b/publish/TraceCad-win-x64/Avalonia.DesignerSupport.dll new file mode 100644 index 0000000..fe28a01 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.DesignerSupport.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Desktop.dll b/publish/TraceCad-win-x64/Avalonia.Desktop.dll new file mode 100644 index 0000000..4559516 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Desktop.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Dialogs.dll b/publish/TraceCad-win-x64/Avalonia.Dialogs.dll new file mode 100644 index 0000000..dcdeb0e Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Dialogs.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.FreeDesktop.dll b/publish/TraceCad-win-x64/Avalonia.FreeDesktop.dll new file mode 100644 index 0000000..4ebb713 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.FreeDesktop.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Markup.Xaml.dll b/publish/TraceCad-win-x64/Avalonia.Markup.Xaml.dll new file mode 100644 index 0000000..6ad7500 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Markup.Xaml.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Markup.dll b/publish/TraceCad-win-x64/Avalonia.Markup.dll new file mode 100644 index 0000000..d9fa96a Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Markup.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Metal.dll b/publish/TraceCad-win-x64/Avalonia.Metal.dll new file mode 100644 index 0000000..481bc23 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Metal.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.MicroCom.dll b/publish/TraceCad-win-x64/Avalonia.MicroCom.dll new file mode 100644 index 0000000..b430aa7 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.MicroCom.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Native.dll b/publish/TraceCad-win-x64/Avalonia.Native.dll new file mode 100644 index 0000000..d7a6e99 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Native.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.OpenGL.dll b/publish/TraceCad-win-x64/Avalonia.OpenGL.dll new file mode 100644 index 0000000..93c0ab5 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.OpenGL.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Remote.Protocol.dll b/publish/TraceCad-win-x64/Avalonia.Remote.Protocol.dll new file mode 100644 index 0000000..9272f5a Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Remote.Protocol.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Skia.dll b/publish/TraceCad-win-x64/Avalonia.Skia.dll new file mode 100644 index 0000000..5daa590 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Skia.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Themes.Fluent.dll b/publish/TraceCad-win-x64/Avalonia.Themes.Fluent.dll new file mode 100644 index 0000000..cae081e Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Themes.Fluent.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Vulkan.dll b/publish/TraceCad-win-x64/Avalonia.Vulkan.dll new file mode 100644 index 0000000..cee9d5b Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Vulkan.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.Win32.dll b/publish/TraceCad-win-x64/Avalonia.Win32.dll new file mode 100644 index 0000000..c63fbe5 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.Win32.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.X11.dll b/publish/TraceCad-win-x64/Avalonia.X11.dll new file mode 100644 index 0000000..f463e54 Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.X11.dll differ diff --git a/publish/TraceCad-win-x64/Avalonia.dll b/publish/TraceCad-win-x64/Avalonia.dll new file mode 100644 index 0000000..f10fc6a Binary files /dev/null and b/publish/TraceCad-win-x64/Avalonia.dll differ diff --git a/publish/TraceCad-win-x64/HarfBuzzSharp.dll b/publish/TraceCad-win-x64/HarfBuzzSharp.dll new file mode 100644 index 0000000..f4e2c2e Binary files /dev/null and b/publish/TraceCad-win-x64/HarfBuzzSharp.dll differ diff --git a/publish/TraceCad-win-x64/MicroCom.Runtime.dll b/publish/TraceCad-win-x64/MicroCom.Runtime.dll new file mode 100644 index 0000000..f6cf008 Binary files /dev/null and b/publish/TraceCad-win-x64/MicroCom.Runtime.dll differ diff --git a/publish/TraceCad-win-x64/Microsoft.CSharp.dll b/publish/TraceCad-win-x64/Microsoft.CSharp.dll new file mode 100644 index 0000000..f72860f Binary files /dev/null and b/publish/TraceCad-win-x64/Microsoft.CSharp.dll differ diff --git a/publish/TraceCad-win-x64/Microsoft.DiaSymReader.Native.amd64.dll b/publish/TraceCad-win-x64/Microsoft.DiaSymReader.Native.amd64.dll new file mode 100644 index 0000000..92b355b Binary files /dev/null and b/publish/TraceCad-win-x64/Microsoft.DiaSymReader.Native.amd64.dll differ diff --git a/publish/TraceCad-win-x64/Microsoft.VisualBasic.Core.dll b/publish/TraceCad-win-x64/Microsoft.VisualBasic.Core.dll new file mode 100644 index 0000000..84ca190 Binary files /dev/null and b/publish/TraceCad-win-x64/Microsoft.VisualBasic.Core.dll differ diff --git a/publish/TraceCad-win-x64/Microsoft.VisualBasic.dll b/publish/TraceCad-win-x64/Microsoft.VisualBasic.dll new file mode 100644 index 0000000..b945ad6 Binary files /dev/null and b/publish/TraceCad-win-x64/Microsoft.VisualBasic.dll differ diff --git a/publish/TraceCad-win-x64/Microsoft.Win32.Primitives.dll b/publish/TraceCad-win-x64/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..aa166a8 Binary files /dev/null and b/publish/TraceCad-win-x64/Microsoft.Win32.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/Microsoft.Win32.Registry.dll b/publish/TraceCad-win-x64/Microsoft.Win32.Registry.dll new file mode 100644 index 0000000..8320ca8 Binary files /dev/null and b/publish/TraceCad-win-x64/Microsoft.Win32.Registry.dll differ diff --git a/publish/TraceCad-win-x64/SkiaSharp.dll b/publish/TraceCad-win-x64/SkiaSharp.dll new file mode 100644 index 0000000..5d7e9cd Binary files /dev/null and b/publish/TraceCad-win-x64/SkiaSharp.dll differ diff --git a/publish/TraceCad-win-x64/System.AppContext.dll b/publish/TraceCad-win-x64/System.AppContext.dll new file mode 100644 index 0000000..89866cc Binary files /dev/null and b/publish/TraceCad-win-x64/System.AppContext.dll differ diff --git a/publish/TraceCad-win-x64/System.Buffers.dll b/publish/TraceCad-win-x64/System.Buffers.dll new file mode 100644 index 0000000..fe58702 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Buffers.dll differ diff --git a/publish/TraceCad-win-x64/System.Collections.Concurrent.dll b/publish/TraceCad-win-x64/System.Collections.Concurrent.dll new file mode 100644 index 0000000..46182a1 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Collections.Concurrent.dll differ diff --git a/publish/TraceCad-win-x64/System.Collections.Immutable.dll b/publish/TraceCad-win-x64/System.Collections.Immutable.dll new file mode 100644 index 0000000..575b27e Binary files /dev/null and b/publish/TraceCad-win-x64/System.Collections.Immutable.dll differ diff --git a/publish/TraceCad-win-x64/System.Collections.NonGeneric.dll b/publish/TraceCad-win-x64/System.Collections.NonGeneric.dll new file mode 100644 index 0000000..81361a3 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Collections.NonGeneric.dll differ diff --git a/publish/TraceCad-win-x64/System.Collections.Specialized.dll b/publish/TraceCad-win-x64/System.Collections.Specialized.dll new file mode 100644 index 0000000..2ca2dbc Binary files /dev/null and b/publish/TraceCad-win-x64/System.Collections.Specialized.dll differ diff --git a/publish/TraceCad-win-x64/System.Collections.dll b/publish/TraceCad-win-x64/System.Collections.dll new file mode 100644 index 0000000..55ba95b Binary files /dev/null and b/publish/TraceCad-win-x64/System.Collections.dll differ diff --git a/publish/TraceCad-win-x64/System.ComponentModel.Annotations.dll b/publish/TraceCad-win-x64/System.ComponentModel.Annotations.dll new file mode 100644 index 0000000..7dd704d Binary files /dev/null and b/publish/TraceCad-win-x64/System.ComponentModel.Annotations.dll differ diff --git a/publish/TraceCad-win-x64/System.ComponentModel.DataAnnotations.dll b/publish/TraceCad-win-x64/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 0000000..c349ead Binary files /dev/null and b/publish/TraceCad-win-x64/System.ComponentModel.DataAnnotations.dll differ diff --git a/publish/TraceCad-win-x64/System.ComponentModel.EventBasedAsync.dll b/publish/TraceCad-win-x64/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 0000000..72e6dbe Binary files /dev/null and b/publish/TraceCad-win-x64/System.ComponentModel.EventBasedAsync.dll differ diff --git a/publish/TraceCad-win-x64/System.ComponentModel.Primitives.dll b/publish/TraceCad-win-x64/System.ComponentModel.Primitives.dll new file mode 100644 index 0000000..aa05b44 Binary files /dev/null and b/publish/TraceCad-win-x64/System.ComponentModel.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/System.ComponentModel.TypeConverter.dll b/publish/TraceCad-win-x64/System.ComponentModel.TypeConverter.dll new file mode 100644 index 0000000..145d53f Binary files /dev/null and b/publish/TraceCad-win-x64/System.ComponentModel.TypeConverter.dll differ diff --git a/publish/TraceCad-win-x64/System.ComponentModel.dll b/publish/TraceCad-win-x64/System.ComponentModel.dll new file mode 100644 index 0000000..c39bc4d Binary files /dev/null and b/publish/TraceCad-win-x64/System.ComponentModel.dll differ diff --git a/publish/TraceCad-win-x64/System.Configuration.dll b/publish/TraceCad-win-x64/System.Configuration.dll new file mode 100644 index 0000000..fe8ac7a Binary files /dev/null and b/publish/TraceCad-win-x64/System.Configuration.dll differ diff --git a/publish/TraceCad-win-x64/System.Console.dll b/publish/TraceCad-win-x64/System.Console.dll new file mode 100644 index 0000000..50ceecf Binary files /dev/null and b/publish/TraceCad-win-x64/System.Console.dll differ diff --git a/publish/TraceCad-win-x64/System.Core.dll b/publish/TraceCad-win-x64/System.Core.dll new file mode 100644 index 0000000..b3bc751 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Core.dll differ diff --git a/publish/TraceCad-win-x64/System.Data.Common.dll b/publish/TraceCad-win-x64/System.Data.Common.dll new file mode 100644 index 0000000..f307142 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Data.Common.dll differ diff --git a/publish/TraceCad-win-x64/System.Data.DataSetExtensions.dll b/publish/TraceCad-win-x64/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..89aa76e Binary files /dev/null and b/publish/TraceCad-win-x64/System.Data.DataSetExtensions.dll differ diff --git a/publish/TraceCad-win-x64/System.Data.dll b/publish/TraceCad-win-x64/System.Data.dll new file mode 100644 index 0000000..d557ffa Binary files /dev/null and b/publish/TraceCad-win-x64/System.Data.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.Contracts.dll b/publish/TraceCad-win-x64/System.Diagnostics.Contracts.dll new file mode 100644 index 0000000..0bb2553 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.Contracts.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.Debug.dll b/publish/TraceCad-win-x64/System.Diagnostics.Debug.dll new file mode 100644 index 0000000..060c9d1 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.Debug.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.DiagnosticSource.dll b/publish/TraceCad-win-x64/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 0000000..82e2278 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.DiagnosticSource.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.FileVersionInfo.dll b/publish/TraceCad-win-x64/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..1fdecbe Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.FileVersionInfo.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.Process.dll b/publish/TraceCad-win-x64/System.Diagnostics.Process.dll new file mode 100644 index 0000000..ebfc805 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.Process.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.StackTrace.dll b/publish/TraceCad-win-x64/System.Diagnostics.StackTrace.dll new file mode 100644 index 0000000..ada2c66 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.StackTrace.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.TextWriterTraceListener.dll b/publish/TraceCad-win-x64/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 0000000..b9d5570 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.Tools.dll b/publish/TraceCad-win-x64/System.Diagnostics.Tools.dll new file mode 100644 index 0000000..b1759fd Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.Tools.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.TraceSource.dll b/publish/TraceCad-win-x64/System.Diagnostics.TraceSource.dll new file mode 100644 index 0000000..a0b77ea Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.TraceSource.dll differ diff --git a/publish/TraceCad-win-x64/System.Diagnostics.Tracing.dll b/publish/TraceCad-win-x64/System.Diagnostics.Tracing.dll new file mode 100644 index 0000000..4084713 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Diagnostics.Tracing.dll differ diff --git a/publish/TraceCad-win-x64/System.Drawing.Primitives.dll b/publish/TraceCad-win-x64/System.Drawing.Primitives.dll new file mode 100644 index 0000000..0269f11 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Drawing.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/System.Drawing.dll b/publish/TraceCad-win-x64/System.Drawing.dll new file mode 100644 index 0000000..11502d0 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Drawing.dll differ diff --git a/publish/TraceCad-win-x64/System.Dynamic.Runtime.dll b/publish/TraceCad-win-x64/System.Dynamic.Runtime.dll new file mode 100644 index 0000000..96ad505 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Dynamic.Runtime.dll differ diff --git a/publish/TraceCad-win-x64/System.Formats.Asn1.dll b/publish/TraceCad-win-x64/System.Formats.Asn1.dll new file mode 100644 index 0000000..99877a8 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Formats.Asn1.dll differ diff --git a/publish/TraceCad-win-x64/System.Formats.Tar.dll b/publish/TraceCad-win-x64/System.Formats.Tar.dll new file mode 100644 index 0000000..217c589 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Formats.Tar.dll differ diff --git a/publish/TraceCad-win-x64/System.Globalization.Calendars.dll b/publish/TraceCad-win-x64/System.Globalization.Calendars.dll new file mode 100644 index 0000000..ffec271 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Globalization.Calendars.dll differ diff --git a/publish/TraceCad-win-x64/System.Globalization.Extensions.dll b/publish/TraceCad-win-x64/System.Globalization.Extensions.dll new file mode 100644 index 0000000..fa423ec Binary files /dev/null and b/publish/TraceCad-win-x64/System.Globalization.Extensions.dll differ diff --git a/publish/TraceCad-win-x64/System.Globalization.dll b/publish/TraceCad-win-x64/System.Globalization.dll new file mode 100644 index 0000000..d336db8 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Globalization.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Compression.Brotli.dll b/publish/TraceCad-win-x64/System.IO.Compression.Brotli.dll new file mode 100644 index 0000000..15822a3 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Compression.Brotli.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Compression.FileSystem.dll b/publish/TraceCad-win-x64/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..563c9ee Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Compression.FileSystem.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Compression.Native.dll b/publish/TraceCad-win-x64/System.IO.Compression.Native.dll new file mode 100644 index 0000000..68c40d8 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Compression.Native.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Compression.ZipFile.dll b/publish/TraceCad-win-x64/System.IO.Compression.ZipFile.dll new file mode 100644 index 0000000..cdcf679 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Compression.ZipFile.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Compression.dll b/publish/TraceCad-win-x64/System.IO.Compression.dll new file mode 100644 index 0000000..82fe657 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Compression.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.FileSystem.AccessControl.dll b/publish/TraceCad-win-x64/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 0000000..298925a Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.FileSystem.AccessControl.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.FileSystem.DriveInfo.dll b/publish/TraceCad-win-x64/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..76e3341 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.FileSystem.DriveInfo.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.FileSystem.Primitives.dll b/publish/TraceCad-win-x64/System.IO.FileSystem.Primitives.dll new file mode 100644 index 0000000..7eed68c Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.FileSystem.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.FileSystem.Watcher.dll b/publish/TraceCad-win-x64/System.IO.FileSystem.Watcher.dll new file mode 100644 index 0000000..1dce24e Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.FileSystem.Watcher.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.FileSystem.dll b/publish/TraceCad-win-x64/System.IO.FileSystem.dll new file mode 100644 index 0000000..270fe22 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.FileSystem.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.IsolatedStorage.dll b/publish/TraceCad-win-x64/System.IO.IsolatedStorage.dll new file mode 100644 index 0000000..5b786d2 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.IsolatedStorage.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.MemoryMappedFiles.dll b/publish/TraceCad-win-x64/System.IO.MemoryMappedFiles.dll new file mode 100644 index 0000000..ada60be Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.MemoryMappedFiles.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Pipelines.dll b/publish/TraceCad-win-x64/System.IO.Pipelines.dll new file mode 100644 index 0000000..83a1b24 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Pipelines.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Pipes.AccessControl.dll b/publish/TraceCad-win-x64/System.IO.Pipes.AccessControl.dll new file mode 100644 index 0000000..370b9aa Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Pipes.AccessControl.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.Pipes.dll b/publish/TraceCad-win-x64/System.IO.Pipes.dll new file mode 100644 index 0000000..7e26b67 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.Pipes.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.UnmanagedMemoryStream.dll b/publish/TraceCad-win-x64/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 0000000..db3bff9 Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.UnmanagedMemoryStream.dll differ diff --git a/publish/TraceCad-win-x64/System.IO.dll b/publish/TraceCad-win-x64/System.IO.dll new file mode 100644 index 0000000..b76268b Binary files /dev/null and b/publish/TraceCad-win-x64/System.IO.dll differ diff --git a/publish/TraceCad-win-x64/System.Linq.Expressions.dll b/publish/TraceCad-win-x64/System.Linq.Expressions.dll new file mode 100644 index 0000000..cb45a35 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Linq.Expressions.dll differ diff --git a/publish/TraceCad-win-x64/System.Linq.Parallel.dll b/publish/TraceCad-win-x64/System.Linq.Parallel.dll new file mode 100644 index 0000000..461778d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Linq.Parallel.dll differ diff --git a/publish/TraceCad-win-x64/System.Linq.Queryable.dll b/publish/TraceCad-win-x64/System.Linq.Queryable.dll new file mode 100644 index 0000000..562fcb6 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Linq.Queryable.dll differ diff --git a/publish/TraceCad-win-x64/System.Linq.dll b/publish/TraceCad-win-x64/System.Linq.dll new file mode 100644 index 0000000..f0382d7 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Linq.dll differ diff --git a/publish/TraceCad-win-x64/System.Memory.dll b/publish/TraceCad-win-x64/System.Memory.dll new file mode 100644 index 0000000..422311d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Memory.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Http.Json.dll b/publish/TraceCad-win-x64/System.Net.Http.Json.dll new file mode 100644 index 0000000..de21979 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Http.Json.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Http.dll b/publish/TraceCad-win-x64/System.Net.Http.dll new file mode 100644 index 0000000..6a10eb5 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Http.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.HttpListener.dll b/publish/TraceCad-win-x64/System.Net.HttpListener.dll new file mode 100644 index 0000000..4eab574 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.HttpListener.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Mail.dll b/publish/TraceCad-win-x64/System.Net.Mail.dll new file mode 100644 index 0000000..5b2e014 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Mail.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.NameResolution.dll b/publish/TraceCad-win-x64/System.Net.NameResolution.dll new file mode 100644 index 0000000..00798b4 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.NameResolution.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.NetworkInformation.dll b/publish/TraceCad-win-x64/System.Net.NetworkInformation.dll new file mode 100644 index 0000000..3e90429 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.NetworkInformation.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Ping.dll b/publish/TraceCad-win-x64/System.Net.Ping.dll new file mode 100644 index 0000000..34ec01f Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Ping.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Primitives.dll b/publish/TraceCad-win-x64/System.Net.Primitives.dll new file mode 100644 index 0000000..a49bbe7 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Quic.dll b/publish/TraceCad-win-x64/System.Net.Quic.dll new file mode 100644 index 0000000..1a5ce12 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Quic.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Requests.dll b/publish/TraceCad-win-x64/System.Net.Requests.dll new file mode 100644 index 0000000..2d32814 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Requests.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Security.dll b/publish/TraceCad-win-x64/System.Net.Security.dll new file mode 100644 index 0000000..e90937d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Security.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.ServicePoint.dll b/publish/TraceCad-win-x64/System.Net.ServicePoint.dll new file mode 100644 index 0000000..1c0461f Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.ServicePoint.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.Sockets.dll b/publish/TraceCad-win-x64/System.Net.Sockets.dll new file mode 100644 index 0000000..4d62afa Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.Sockets.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.WebClient.dll b/publish/TraceCad-win-x64/System.Net.WebClient.dll new file mode 100644 index 0000000..5380f2d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.WebClient.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.WebHeaderCollection.dll b/publish/TraceCad-win-x64/System.Net.WebHeaderCollection.dll new file mode 100644 index 0000000..58f389c Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.WebHeaderCollection.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.WebProxy.dll b/publish/TraceCad-win-x64/System.Net.WebProxy.dll new file mode 100644 index 0000000..4a87a44 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.WebProxy.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.WebSockets.Client.dll b/publish/TraceCad-win-x64/System.Net.WebSockets.Client.dll new file mode 100644 index 0000000..6879697 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.WebSockets.Client.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.WebSockets.dll b/publish/TraceCad-win-x64/System.Net.WebSockets.dll new file mode 100644 index 0000000..17f3310 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.WebSockets.dll differ diff --git a/publish/TraceCad-win-x64/System.Net.dll b/publish/TraceCad-win-x64/System.Net.dll new file mode 100644 index 0000000..50e06c6 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Net.dll differ diff --git a/publish/TraceCad-win-x64/System.Numerics.Vectors.dll b/publish/TraceCad-win-x64/System.Numerics.Vectors.dll new file mode 100644 index 0000000..1b33e15 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Numerics.Vectors.dll differ diff --git a/publish/TraceCad-win-x64/System.Numerics.dll b/publish/TraceCad-win-x64/System.Numerics.dll new file mode 100644 index 0000000..a34d085 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Numerics.dll differ diff --git a/publish/TraceCad-win-x64/System.ObjectModel.dll b/publish/TraceCad-win-x64/System.ObjectModel.dll new file mode 100644 index 0000000..a430c6a Binary files /dev/null and b/publish/TraceCad-win-x64/System.ObjectModel.dll differ diff --git a/publish/TraceCad-win-x64/System.Private.CoreLib.dll b/publish/TraceCad-win-x64/System.Private.CoreLib.dll new file mode 100644 index 0000000..ba26a43 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Private.CoreLib.dll differ diff --git a/publish/TraceCad-win-x64/System.Private.DataContractSerialization.dll b/publish/TraceCad-win-x64/System.Private.DataContractSerialization.dll new file mode 100644 index 0000000..96e9a73 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Private.DataContractSerialization.dll differ diff --git a/publish/TraceCad-win-x64/System.Private.Uri.dll b/publish/TraceCad-win-x64/System.Private.Uri.dll new file mode 100644 index 0000000..4346c54 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Private.Uri.dll differ diff --git a/publish/TraceCad-win-x64/System.Private.Xml.Linq.dll b/publish/TraceCad-win-x64/System.Private.Xml.Linq.dll new file mode 100644 index 0000000..0890dcb Binary files /dev/null and b/publish/TraceCad-win-x64/System.Private.Xml.Linq.dll differ diff --git a/publish/TraceCad-win-x64/System.Private.Xml.dll b/publish/TraceCad-win-x64/System.Private.Xml.dll new file mode 100644 index 0000000..598bf06 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Private.Xml.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.DispatchProxy.dll b/publish/TraceCad-win-x64/System.Reflection.DispatchProxy.dll new file mode 100644 index 0000000..72650cc Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.DispatchProxy.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.Emit.ILGeneration.dll b/publish/TraceCad-win-x64/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 0000000..2d36784 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.Emit.ILGeneration.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.Emit.Lightweight.dll b/publish/TraceCad-win-x64/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 0000000..f0c382f Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.Emit.Lightweight.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.Emit.dll b/publish/TraceCad-win-x64/System.Reflection.Emit.dll new file mode 100644 index 0000000..7aa93ea Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.Emit.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.Extensions.dll b/publish/TraceCad-win-x64/System.Reflection.Extensions.dll new file mode 100644 index 0000000..3a9c36e Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.Extensions.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.Metadata.dll b/publish/TraceCad-win-x64/System.Reflection.Metadata.dll new file mode 100644 index 0000000..7320d81 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.Metadata.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.Primitives.dll b/publish/TraceCad-win-x64/System.Reflection.Primitives.dll new file mode 100644 index 0000000..030f2ee Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.TypeExtensions.dll b/publish/TraceCad-win-x64/System.Reflection.TypeExtensions.dll new file mode 100644 index 0000000..0ea1496 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.TypeExtensions.dll differ diff --git a/publish/TraceCad-win-x64/System.Reflection.dll b/publish/TraceCad-win-x64/System.Reflection.dll new file mode 100644 index 0000000..bd671b6 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Reflection.dll differ diff --git a/publish/TraceCad-win-x64/System.Resources.Reader.dll b/publish/TraceCad-win-x64/System.Resources.Reader.dll new file mode 100644 index 0000000..097298b Binary files /dev/null and b/publish/TraceCad-win-x64/System.Resources.Reader.dll differ diff --git a/publish/TraceCad-win-x64/System.Resources.ResourceManager.dll b/publish/TraceCad-win-x64/System.Resources.ResourceManager.dll new file mode 100644 index 0000000..d3c7469 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Resources.ResourceManager.dll differ diff --git a/publish/TraceCad-win-x64/System.Resources.Writer.dll b/publish/TraceCad-win-x64/System.Resources.Writer.dll new file mode 100644 index 0000000..bd5c43e Binary files /dev/null and b/publish/TraceCad-win-x64/System.Resources.Writer.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.CompilerServices.Unsafe.dll b/publish/TraceCad-win-x64/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..52de463 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.CompilerServices.VisualC.dll b/publish/TraceCad-win-x64/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 0000000..27c1711 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Extensions.dll b/publish/TraceCad-win-x64/System.Runtime.Extensions.dll new file mode 100644 index 0000000..67608e0 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Extensions.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Handles.dll b/publish/TraceCad-win-x64/System.Runtime.Handles.dll new file mode 100644 index 0000000..60f54e4 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Handles.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.InteropServices.JavaScript.dll b/publish/TraceCad-win-x64/System.Runtime.InteropServices.JavaScript.dll new file mode 100644 index 0000000..3d923be Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.InteropServices.JavaScript.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.InteropServices.RuntimeInformation.dll b/publish/TraceCad-win-x64/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 0000000..0ad4630 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.InteropServices.dll b/publish/TraceCad-win-x64/System.Runtime.InteropServices.dll new file mode 100644 index 0000000..12411c8 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.InteropServices.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Intrinsics.dll b/publish/TraceCad-win-x64/System.Runtime.Intrinsics.dll new file mode 100644 index 0000000..e34702e Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Intrinsics.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Loader.dll b/publish/TraceCad-win-x64/System.Runtime.Loader.dll new file mode 100644 index 0000000..2f5d69b Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Loader.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Numerics.dll b/publish/TraceCad-win-x64/System.Runtime.Numerics.dll new file mode 100644 index 0000000..e13947a Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Numerics.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Serialization.Formatters.dll b/publish/TraceCad-win-x64/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 0000000..4a870c4 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Serialization.Formatters.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Serialization.Json.dll b/publish/TraceCad-win-x64/System.Runtime.Serialization.Json.dll new file mode 100644 index 0000000..433f67f Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Serialization.Json.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Serialization.Primitives.dll b/publish/TraceCad-win-x64/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 0000000..e460746 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Serialization.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Serialization.Xml.dll b/publish/TraceCad-win-x64/System.Runtime.Serialization.Xml.dll new file mode 100644 index 0000000..9f50b84 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Serialization.Xml.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.Serialization.dll b/publish/TraceCad-win-x64/System.Runtime.Serialization.dll new file mode 100644 index 0000000..cdf1e11 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.Serialization.dll differ diff --git a/publish/TraceCad-win-x64/System.Runtime.dll b/publish/TraceCad-win-x64/System.Runtime.dll new file mode 100644 index 0000000..a3b64a9 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Runtime.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.AccessControl.dll b/publish/TraceCad-win-x64/System.Security.AccessControl.dll new file mode 100644 index 0000000..f2e6343 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.AccessControl.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Claims.dll b/publish/TraceCad-win-x64/System.Security.Claims.dll new file mode 100644 index 0000000..16647a0 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Claims.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.Algorithms.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..792ee68 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.Algorithms.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.Cng.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.Cng.dll new file mode 100644 index 0000000..8a895eb Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.Cng.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.Csp.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.Csp.dll new file mode 100644 index 0000000..c53e9f4 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.Csp.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.Encoding.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..b319c3a Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.Encoding.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.OpenSsl.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 0000000..f0e2ad2 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.OpenSsl.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.Primitives.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..ec37b77 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.Primitives.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.X509Certificates.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..512766e Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.X509Certificates.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Cryptography.dll b/publish/TraceCad-win-x64/System.Security.Cryptography.dll new file mode 100644 index 0000000..7196051 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Cryptography.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Principal.Windows.dll b/publish/TraceCad-win-x64/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..0c1c464 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Principal.Windows.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.Principal.dll b/publish/TraceCad-win-x64/System.Security.Principal.dll new file mode 100644 index 0000000..72a1682 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.Principal.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.SecureString.dll b/publish/TraceCad-win-x64/System.Security.SecureString.dll new file mode 100644 index 0000000..5483611 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.SecureString.dll differ diff --git a/publish/TraceCad-win-x64/System.Security.dll b/publish/TraceCad-win-x64/System.Security.dll new file mode 100644 index 0000000..ad58983 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Security.dll differ diff --git a/publish/TraceCad-win-x64/System.ServiceModel.Web.dll b/publish/TraceCad-win-x64/System.ServiceModel.Web.dll new file mode 100644 index 0000000..02916cc Binary files /dev/null and b/publish/TraceCad-win-x64/System.ServiceModel.Web.dll differ diff --git a/publish/TraceCad-win-x64/System.ServiceProcess.dll b/publish/TraceCad-win-x64/System.ServiceProcess.dll new file mode 100644 index 0000000..9fc9563 Binary files /dev/null and b/publish/TraceCad-win-x64/System.ServiceProcess.dll differ diff --git a/publish/TraceCad-win-x64/System.Text.Encoding.CodePages.dll b/publish/TraceCad-win-x64/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..c83198c Binary files /dev/null and b/publish/TraceCad-win-x64/System.Text.Encoding.CodePages.dll differ diff --git a/publish/TraceCad-win-x64/System.Text.Encoding.Extensions.dll b/publish/TraceCad-win-x64/System.Text.Encoding.Extensions.dll new file mode 100644 index 0000000..25ed707 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Text.Encoding.Extensions.dll differ diff --git a/publish/TraceCad-win-x64/System.Text.Encoding.dll b/publish/TraceCad-win-x64/System.Text.Encoding.dll new file mode 100644 index 0000000..3a72c9d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Text.Encoding.dll differ diff --git a/publish/TraceCad-win-x64/System.Text.Encodings.Web.dll b/publish/TraceCad-win-x64/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..ff34dfe Binary files /dev/null and b/publish/TraceCad-win-x64/System.Text.Encodings.Web.dll differ diff --git a/publish/TraceCad-win-x64/System.Text.Json.dll b/publish/TraceCad-win-x64/System.Text.Json.dll new file mode 100644 index 0000000..1ca0f81 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Text.Json.dll differ diff --git a/publish/TraceCad-win-x64/System.Text.RegularExpressions.dll b/publish/TraceCad-win-x64/System.Text.RegularExpressions.dll new file mode 100644 index 0000000..91629a7 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Text.RegularExpressions.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Channels.dll b/publish/TraceCad-win-x64/System.Threading.Channels.dll new file mode 100644 index 0000000..79fad24 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Channels.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Overlapped.dll b/publish/TraceCad-win-x64/System.Threading.Overlapped.dll new file mode 100644 index 0000000..2b0e30f Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Overlapped.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Tasks.Dataflow.dll b/publish/TraceCad-win-x64/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 0000000..133c3f8 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Tasks.Dataflow.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Tasks.Extensions.dll b/publish/TraceCad-win-x64/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..c3b9a1d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Tasks.Extensions.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Tasks.Parallel.dll b/publish/TraceCad-win-x64/System.Threading.Tasks.Parallel.dll new file mode 100644 index 0000000..4a6ec86 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Tasks.Parallel.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Tasks.dll b/publish/TraceCad-win-x64/System.Threading.Tasks.dll new file mode 100644 index 0000000..7f813df Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Tasks.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Thread.dll b/publish/TraceCad-win-x64/System.Threading.Thread.dll new file mode 100644 index 0000000..baa0ed7 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Thread.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.ThreadPool.dll b/publish/TraceCad-win-x64/System.Threading.ThreadPool.dll new file mode 100644 index 0000000..c34b61d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.ThreadPool.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.Timer.dll b/publish/TraceCad-win-x64/System.Threading.Timer.dll new file mode 100644 index 0000000..cc547d4 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.Timer.dll differ diff --git a/publish/TraceCad-win-x64/System.Threading.dll b/publish/TraceCad-win-x64/System.Threading.dll new file mode 100644 index 0000000..a4aa7a3 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Threading.dll differ diff --git a/publish/TraceCad-win-x64/System.Transactions.Local.dll b/publish/TraceCad-win-x64/System.Transactions.Local.dll new file mode 100644 index 0000000..0222cd5 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Transactions.Local.dll differ diff --git a/publish/TraceCad-win-x64/System.Transactions.dll b/publish/TraceCad-win-x64/System.Transactions.dll new file mode 100644 index 0000000..93fc0b1 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Transactions.dll differ diff --git a/publish/TraceCad-win-x64/System.ValueTuple.dll b/publish/TraceCad-win-x64/System.ValueTuple.dll new file mode 100644 index 0000000..1694c3d Binary files /dev/null and b/publish/TraceCad-win-x64/System.ValueTuple.dll differ diff --git a/publish/TraceCad-win-x64/System.Web.HttpUtility.dll b/publish/TraceCad-win-x64/System.Web.HttpUtility.dll new file mode 100644 index 0000000..0a3d655 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Web.HttpUtility.dll differ diff --git a/publish/TraceCad-win-x64/System.Web.dll b/publish/TraceCad-win-x64/System.Web.dll new file mode 100644 index 0000000..7118fef Binary files /dev/null and b/publish/TraceCad-win-x64/System.Web.dll differ diff --git a/publish/TraceCad-win-x64/System.Windows.dll b/publish/TraceCad-win-x64/System.Windows.dll new file mode 100644 index 0000000..4d6a203 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Windows.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.Linq.dll b/publish/TraceCad-win-x64/System.Xml.Linq.dll new file mode 100644 index 0000000..da0a5e5 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.Linq.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.ReaderWriter.dll b/publish/TraceCad-win-x64/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..3bbff90 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.ReaderWriter.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.Serialization.dll b/publish/TraceCad-win-x64/System.Xml.Serialization.dll new file mode 100644 index 0000000..40de827 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.Serialization.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.XDocument.dll b/publish/TraceCad-win-x64/System.Xml.XDocument.dll new file mode 100644 index 0000000..4d2508e Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.XDocument.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.XPath.XDocument.dll b/publish/TraceCad-win-x64/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..127cb90 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.XPath.XDocument.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.XPath.dll b/publish/TraceCad-win-x64/System.Xml.XPath.dll new file mode 100644 index 0000000..95985c9 Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.XPath.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.XmlDocument.dll b/publish/TraceCad-win-x64/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..d312eec Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.XmlDocument.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.XmlSerializer.dll b/publish/TraceCad-win-x64/System.Xml.XmlSerializer.dll new file mode 100644 index 0000000..b39ebea Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.XmlSerializer.dll differ diff --git a/publish/TraceCad-win-x64/System.Xml.dll b/publish/TraceCad-win-x64/System.Xml.dll new file mode 100644 index 0000000..883b80d Binary files /dev/null and b/publish/TraceCad-win-x64/System.Xml.dll differ diff --git a/publish/TraceCad-win-x64/System.dll b/publish/TraceCad-win-x64/System.dll new file mode 100644 index 0000000..0666ad0 Binary files /dev/null and b/publish/TraceCad-win-x64/System.dll differ diff --git a/publish/TraceCad-win-x64/Tmds.DBus.Protocol.dll b/publish/TraceCad-win-x64/Tmds.DBus.Protocol.dll new file mode 100644 index 0000000..8f42654 Binary files /dev/null and b/publish/TraceCad-win-x64/Tmds.DBus.Protocol.dll differ diff --git a/publish/TraceCad-win-x64/TraceCad.App.deps.json b/publish/TraceCad-win-x64/TraceCad.App.deps.json new file mode 100644 index 0000000..808e582 --- /dev/null +++ b/publish/TraceCad-win-x64/TraceCad.App.deps.json @@ -0,0 +1,1145 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0/win-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": {}, + ".NETCoreApp,Version=v8.0/win-x64": { + "TraceCad.App/1.0.0": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Desktop": "11.2.3", + "Avalonia.Themes.Fluent": "11.2.3", + "TraceCad.Core": "1.0.0", + "TraceCad.Dxf": "1.0.0", + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.26" + }, + "runtime": { + "TraceCad.App.dll": {} + } + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "runtime": { + "Microsoft.CSharp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.2626.16921" + }, + "Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Registry.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.AppContext.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Buffers.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Concurrent.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Immutable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.NonGeneric.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Specialized.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Annotations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Console.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.DataSetExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Contracts.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Debug.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Process.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tools.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tracing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Dynamic.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Asn1.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Tar.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Calendars.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.Brotli.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.IsolatedStorage.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Expressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Queryable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.HttpListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Mail.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NameResolution.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NetworkInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Ping.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Quic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Requests.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Security.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.ServicePoint.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Sockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.Client.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.Vectors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ObjectModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.CoreLib.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.DataContractSerialization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Uri.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Metadata.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Reader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.ResourceManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Writer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Handles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.JavaScript.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Intrinsics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Loader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Numerics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Claims.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.Windows.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.SecureString.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encodings.Web.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.RegularExpressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Channels.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Overlapped.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Thread.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.ThreadPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Timer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.Local.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ValueTuple.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.HttpUtility.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.ReaderWriter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlSerializer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "8.0.2626.16921" + } + }, + "native": { + "Microsoft.DiaSymReader.Native.amd64.dll": { + "fileVersion": "14.42.34436.0" + }, + "System.IO.Compression.Native.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clretwrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrgc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrjit.dll": { + "fileVersion": "8.0.2626.16921" + }, + "coreclr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "createdump.exe": { + "fileVersion": "8.0.2626.16921" + }, + "hostfxr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "hostpolicy.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore_amd64_amd64_8.0.2626.16921.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordbi.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscorrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "msquic.dll": { + "fileVersion": "2.4.17.0" + } + } + }, + "Avalonia/11.2.3": { + "dependencies": { + "Avalonia.Remote.Protocol": "11.2.3", + "MicroCom.Runtime": "0.11.0" + }, + "runtime": { + "lib/net8.0/Avalonia.Base.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Controls.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.DesignerSupport.dll": { + "assemblyVersion": "0.7.0.0", + "fileVersion": "0.7.0.0" + }, + "lib/net8.0/Avalonia.Dialogs.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.Xaml.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Metal.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.MicroCom.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.OpenGL.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Vulkan.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "native": { + "runtimes/win-x64/native/av_libglesv2.dll": { + "fileVersion": "2.1.22045.0" + } + } + }, + "Avalonia.Desktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Native": "11.2.3", + "Avalonia.Skia": "11.2.3", + "Avalonia.Win32": "11.2.3", + "Avalonia.X11": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Desktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.FreeDesktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Tmds.DBus.Protocol": "0.20.0" + }, + "runtime": { + "lib/net8.0/Avalonia.FreeDesktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Native/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Native.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Remote.Protocol/11.2.3": { + "runtime": { + "lib/net8.0/Avalonia.Remote.Protocol.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Skia/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "HarfBuzzSharp": "7.3.0.3", + "SkiaSharp": "2.88.9" + }, + "runtime": { + "lib/net8.0/Avalonia.Skia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Themes.Fluent/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Themes.Fluent.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Win32/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Angle.Windows.Natives": "2.1.22045.20230930" + }, + "runtime": { + "lib/net8.0/Avalonia.Win32.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.X11/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.FreeDesktop": "11.2.3", + "Avalonia.Skia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.X11.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "HarfBuzzSharp/7.3.0.3": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "7.3.0.3" + }, + "runtime": { + "lib/net6.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "7.3.0.3" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "native": { + "runtimes/win-x64/native/libHarfBuzzSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "MicroCom.Runtime/0.11.0": { + "runtime": { + "lib/net5.0/MicroCom.Runtime.dll": { + "assemblyVersion": "0.11.0.0", + "fileVersion": "0.11.0.0" + } + } + }, + "netDxf/2022.11.2": { + "runtime": { + "lib/net6.0/netDxf.dll": { + "assemblyVersion": "2022.11.2.0", + "fileVersion": "2022.11.2.0" + } + } + }, + "SkiaSharp/2.88.9": { + "dependencies": { + "SkiaSharp.NativeAssets.Win32": "2.88.9" + }, + "runtime": { + "lib/net6.0/SkiaSharp.dll": { + "assemblyVersion": "2.88.0.0", + "fileVersion": "2.88.9.0" + } + } + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "native": { + "runtimes/win-x64/native/libSkiaSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Tmds.DBus.Protocol/0.20.0": { + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "runtime": { + "lib/net8.0/Tmds.DBus.Protocol.dll": { + "assemblyVersion": "0.20.0.0", + "fileVersion": "0.20.0.0" + } + } + }, + "TraceCad.Core/1.0.0": { + "runtime": { + "TraceCad.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "TraceCad.Dxf/1.0.0": { + "dependencies": { + "TraceCad.Core": "1.0.0", + "netDxf": "2022.11.2" + }, + "runtime": { + "TraceCad.Dxf.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "TraceCad.App/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "Avalonia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pD6woFAUfGcyEvMmrpctntU4jv4fT8752pfx1J5iRORVX3Ob0oQi8PWo0TXVaAJZiSfH0cdKTeKx0w0DzD0/mg==", + "path": "avalonia/11.2.3", + "hashPath": "avalonia.11.2.3.nupkg.sha512" + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Bo3qOhKC1b84BIhiogndMdAzB3UrrESKK7hS769f5HWeoMw/pcd42US5KFYW2JJ4ZSTrXnP8mXwLTMzh+S+9Lg==", + "path": "avalonia.angle.windows.natives/2.1.22045.20230930", + "hashPath": "avalonia.angle.windows.natives.2.1.22045.20230930.nupkg.sha512" + }, + "Avalonia.Desktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dX3zfgWplLqcgwQJLeC2ciqxE/GM3iw9HUNI22c8KgAAWMWl52NWCmjW228EPZG+4YbHwq8T40YARO2aQF+yqA==", + "path": "avalonia.desktop/11.2.3", + "hashPath": "avalonia.desktop.11.2.3.nupkg.sha512" + }, + "Avalonia.FreeDesktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BOivcAE3yYFKyYg5CztnTeIFX7ZHNaFiMrQ9WO4MgKyMwbPdH6jy6Mpfu+LY5FiYpleZdmXLJXZzzPon52DUVg==", + "path": "avalonia.freedesktop/11.2.3", + "hashPath": "avalonia.freedesktop.11.2.3.nupkg.sha512" + }, + "Avalonia.Native/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yW9IGfa7kBuEcYP4ni7nGYNI2HjqaBg+cPJXZeiXf8RFptmluMv75hMyyq8FYIZwVcZIEcwEgff81a7b4aNTVQ==", + "path": "avalonia.native/11.2.3", + "hashPath": "avalonia.native.11.2.3.nupkg.sha512" + }, + "Avalonia.Remote.Protocol/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6V0aNtld48WmO8tAlWwlRlUmXYcOWv+1eJUSl1ETF+1blUe5yhcSmuWarPprO0hDk8Ta6wGfdfcrnVl2gITYcA==", + "path": "avalonia.remote.protocol/11.2.3", + "hashPath": "avalonia.remote.protocol.11.2.3.nupkg.sha512" + }, + "Avalonia.Skia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jpzqkkmhzz6DSUy5dIw5T43MoHCdb05pmTvnsmHrbipA8mafI8RrO7tVnv1+ilFNV4516G9/kOpXjTLKjnnYrA==", + "path": "avalonia.skia/11.2.3", + "hashPath": "avalonia.skia.11.2.3.nupkg.sha512" + }, + "Avalonia.Themes.Fluent/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gPJWBWaeocvRhSrB977xsfH0Ame14PxRMIgEfezi2bTjNJ43JWzJtALgDfDZYMpZPDdeWU/mwDigR/kD+rJtlw==", + "path": "avalonia.themes.fluent/11.2.3", + "hashPath": "avalonia.themes.fluent.11.2.3.nupkg.sha512" + }, + "Avalonia.Win32/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VwdaOHvIowTSM2umeXOFIoUx4UydCXkXracwLQZaMlsWXCTJ+WwtlAIv0ZBCwQccAK+WELrdRXucvWWN8+sJCQ==", + "path": "avalonia.win32/11.2.3", + "hashPath": "avalonia.win32.11.2.3.nupkg.sha512" + }, + "Avalonia.X11/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0mr3zu5NEv2cTLsANyc3w51ctiLTWQia6TrlDdWCjfMx2k0VtCzgGBieByPgUl4iNWEDzgBEKek1EwJcGdJ+7g==", + "path": "avalonia.x11/11.2.3", + "hashPath": "avalonia.x11.11.2.3.nupkg.sha512" + }, + "HarfBuzzSharp/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Hq+5+gx10coOvuRgB13KBwiWxJq1QeYuhtVLbA01ZCWaugOnolUahF44KvrQTUUHDNk/C7HB6SMaebsZeOdhgg==", + "path": "harfbuzzsharp/7.3.0.3", + "hashPath": "harfbuzzsharp.7.3.0.3.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RPxRXD16KtSs8Yxr2RK9Qs7AwyN9MlpqZIYs0AvfaJwl7RAtVhC0+u2f2SKwX0uMYYd3O98Z+OBA1sj6aWVKQA==", + "path": "harfbuzzsharp.nativeassets.win32/7.3.0.3", + "hashPath": "harfbuzzsharp.nativeassets.win32.7.3.0.3.nupkg.sha512" + }, + "MicroCom.Runtime/0.11.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MEnrZ3UIiH40hjzMDsxrTyi8dtqB5ziv3iBeeU4bXsL/7NLSal9F1lZKpK+tfBRnUoDSdtcW3KufE4yhATOMCA==", + "path": "microcom.runtime/0.11.0", + "hashPath": "microcom.runtime.0.11.0.nupkg.sha512" + }, + "netDxf/2022.11.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bNiH5EoaRiBsPIQWAVx/Y2PyOUkKaZ89dIHfiJ++B9Kjyph/XevVx11nwAA6oiQ14Kj5pRchY3XfrRnZl6LwlQ==", + "path": "netdxf/2022.11.2", + "hashPath": "netdxf.2022.11.2.nupkg.sha512" + }, + "SkiaSharp/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3MD5VHjXXieSHCleRLuaTXmL2pD0mB7CcOB1x2kA1I4bhptf4e3R27iM93264ZYuAq6mkUyX5XbcxnZvMJYc1Q==", + "path": "skiasharp/2.88.9", + "hashPath": "skiasharp.2.88.9.nupkg.sha512" + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wb2kYgU7iy84nQLYZwMeJXixvK++GoIuECjU4ECaUKNuflyRlJKyiRhN1MAHswvlvzuvkrjRWlK0Za6+kYQK7w==", + "path": "skiasharp.nativeassets.win32/2.88.9", + "hashPath": "skiasharp.nativeassets.win32.2.88.9.nupkg.sha512" + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "path": "system.io.pipelines/8.0.0", + "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" + }, + "Tmds.DBus.Protocol/0.20.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2gkt2kuYPhDKd8gtl34jZSJOnn4nRJfFngCDcTZT/uySbK++ua0YQx2418l9Rn1Y4dE5XNq6zG9ZsE5ltLlNNw==", + "path": "tmds.dbus.protocol/0.20.0", + "hashPath": "tmds.dbus.protocol.0.20.0.nupkg.sha512" + }, + "TraceCad.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "TraceCad.Dxf/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + }, + "runtimes": { + "win-x64": [ + "win", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/publish/TraceCad-win-x64/TraceCad.App.dll b/publish/TraceCad-win-x64/TraceCad.App.dll new file mode 100644 index 0000000..8706792 Binary files /dev/null and b/publish/TraceCad-win-x64/TraceCad.App.dll differ diff --git a/publish/TraceCad-win-x64/TraceCad.App.exe b/publish/TraceCad-win-x64/TraceCad.App.exe new file mode 100644 index 0000000..77086fc Binary files /dev/null and b/publish/TraceCad-win-x64/TraceCad.App.exe differ diff --git a/publish/TraceCad-win-x64/TraceCad.App.pdb b/publish/TraceCad-win-x64/TraceCad.App.pdb new file mode 100644 index 0000000..e8541eb Binary files /dev/null and b/publish/TraceCad-win-x64/TraceCad.App.pdb differ diff --git a/publish/TraceCad-win-x64/TraceCad.App.runtimeconfig.json b/publish/TraceCad-win-x64/TraceCad.App.runtimeconfig.json new file mode 100644 index 0000000..3c8ca56 --- /dev/null +++ b/publish/TraceCad-win-x64/TraceCad.App.runtimeconfig.json @@ -0,0 +1,15 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "includedFrameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.26" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/publish/TraceCad-win-x64/TraceCad.Core.dll b/publish/TraceCad-win-x64/TraceCad.Core.dll new file mode 100644 index 0000000..a2c4f63 Binary files /dev/null and b/publish/TraceCad-win-x64/TraceCad.Core.dll differ diff --git a/publish/TraceCad-win-x64/TraceCad.Core.pdb b/publish/TraceCad-win-x64/TraceCad.Core.pdb new file mode 100644 index 0000000..3c0d0af Binary files /dev/null and b/publish/TraceCad-win-x64/TraceCad.Core.pdb differ diff --git a/publish/TraceCad-win-x64/TraceCad.Dxf.dll b/publish/TraceCad-win-x64/TraceCad.Dxf.dll new file mode 100644 index 0000000..01381f3 Binary files /dev/null and b/publish/TraceCad-win-x64/TraceCad.Dxf.dll differ diff --git a/publish/TraceCad-win-x64/TraceCad.Dxf.pdb b/publish/TraceCad-win-x64/TraceCad.Dxf.pdb new file mode 100644 index 0000000..ab0612d Binary files /dev/null and b/publish/TraceCad-win-x64/TraceCad.Dxf.pdb differ diff --git a/publish/TraceCad-win-x64/WindowsBase.dll b/publish/TraceCad-win-x64/WindowsBase.dll new file mode 100644 index 0000000..2101a65 Binary files /dev/null and b/publish/TraceCad-win-x64/WindowsBase.dll differ diff --git a/publish/TraceCad-win-x64/av_libglesv2.dll b/publish/TraceCad-win-x64/av_libglesv2.dll new file mode 100644 index 0000000..c327f9e Binary files /dev/null and b/publish/TraceCad-win-x64/av_libglesv2.dll differ diff --git a/publish/TraceCad-win-x64/clretwrc.dll b/publish/TraceCad-win-x64/clretwrc.dll new file mode 100644 index 0000000..16c5dd9 Binary files /dev/null and b/publish/TraceCad-win-x64/clretwrc.dll differ diff --git a/publish/TraceCad-win-x64/clrgc.dll b/publish/TraceCad-win-x64/clrgc.dll new file mode 100644 index 0000000..bba81c6 Binary files /dev/null and b/publish/TraceCad-win-x64/clrgc.dll differ diff --git a/publish/TraceCad-win-x64/clrjit.dll b/publish/TraceCad-win-x64/clrjit.dll new file mode 100644 index 0000000..0f3cc4b Binary files /dev/null and b/publish/TraceCad-win-x64/clrjit.dll differ diff --git a/publish/TraceCad-win-x64/coreclr.dll b/publish/TraceCad-win-x64/coreclr.dll new file mode 100644 index 0000000..dbf2e6d Binary files /dev/null and b/publish/TraceCad-win-x64/coreclr.dll differ diff --git a/publish/TraceCad-win-x64/createdump.exe b/publish/TraceCad-win-x64/createdump.exe new file mode 100644 index 0000000..dcfc730 Binary files /dev/null and b/publish/TraceCad-win-x64/createdump.exe differ diff --git a/publish/TraceCad-win-x64/hostfxr.dll b/publish/TraceCad-win-x64/hostfxr.dll new file mode 100644 index 0000000..0b8fde3 Binary files /dev/null and b/publish/TraceCad-win-x64/hostfxr.dll differ diff --git a/publish/TraceCad-win-x64/hostpolicy.dll b/publish/TraceCad-win-x64/hostpolicy.dll new file mode 100644 index 0000000..8929cfa Binary files /dev/null and b/publish/TraceCad-win-x64/hostpolicy.dll differ diff --git a/publish/TraceCad-win-x64/libHarfBuzzSharp.dll b/publish/TraceCad-win-x64/libHarfBuzzSharp.dll new file mode 100644 index 0000000..01deb29 Binary files /dev/null and b/publish/TraceCad-win-x64/libHarfBuzzSharp.dll differ diff --git a/publish/TraceCad-win-x64/libSkiaSharp.dll b/publish/TraceCad-win-x64/libSkiaSharp.dll new file mode 100644 index 0000000..3f8c6f2 Binary files /dev/null and b/publish/TraceCad-win-x64/libSkiaSharp.dll differ diff --git a/publish/TraceCad-win-x64/mscordaccore.dll b/publish/TraceCad-win-x64/mscordaccore.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/TraceCad-win-x64/mscordaccore.dll differ diff --git a/publish/TraceCad-win-x64/mscordaccore_amd64_amd64_8.0.2626.16921.dll b/publish/TraceCad-win-x64/mscordaccore_amd64_amd64_8.0.2626.16921.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/TraceCad-win-x64/mscordaccore_amd64_amd64_8.0.2626.16921.dll differ diff --git a/publish/TraceCad-win-x64/mscordbi.dll b/publish/TraceCad-win-x64/mscordbi.dll new file mode 100644 index 0000000..ee7b2d3 Binary files /dev/null and b/publish/TraceCad-win-x64/mscordbi.dll differ diff --git a/publish/TraceCad-win-x64/mscorlib.dll b/publish/TraceCad-win-x64/mscorlib.dll new file mode 100644 index 0000000..dacea10 Binary files /dev/null and b/publish/TraceCad-win-x64/mscorlib.dll differ diff --git a/publish/TraceCad-win-x64/mscorrc.dll b/publish/TraceCad-win-x64/mscorrc.dll new file mode 100644 index 0000000..e7ac1e0 Binary files /dev/null and b/publish/TraceCad-win-x64/mscorrc.dll differ diff --git a/publish/TraceCad-win-x64/msquic.dll b/publish/TraceCad-win-x64/msquic.dll new file mode 100644 index 0000000..0d619d1 Binary files /dev/null and b/publish/TraceCad-win-x64/msquic.dll differ diff --git a/publish/TraceCad-win-x64/netDxf.dll b/publish/TraceCad-win-x64/netDxf.dll new file mode 100644 index 0000000..fa45826 Binary files /dev/null and b/publish/TraceCad-win-x64/netDxf.dll differ diff --git a/publish/TraceCad-win-x64/netstandard.dll b/publish/TraceCad-win-x64/netstandard.dll new file mode 100644 index 0000000..de2f9e5 Binary files /dev/null and b/publish/TraceCad-win-x64/netstandard.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Base.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Base.dll new file mode 100644 index 0000000..1090d48 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Base.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Controls.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Controls.dll new file mode 100644 index 0000000..fc18f9d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Controls.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.DesignerSupport.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.DesignerSupport.dll new file mode 100644 index 0000000..fe28a01 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.DesignerSupport.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Desktop.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Desktop.dll new file mode 100644 index 0000000..4559516 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Desktop.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Dialogs.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Dialogs.dll new file mode 100644 index 0000000..dcdeb0e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Dialogs.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.FreeDesktop.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.FreeDesktop.dll new file mode 100644 index 0000000..4ebb713 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.FreeDesktop.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Markup.Xaml.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Markup.Xaml.dll new file mode 100644 index 0000000..6ad7500 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Markup.Xaml.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Markup.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Markup.dll new file mode 100644 index 0000000..d9fa96a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Markup.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Metal.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Metal.dll new file mode 100644 index 0000000..481bc23 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Metal.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.MicroCom.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.MicroCom.dll new file mode 100644 index 0000000..b430aa7 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.MicroCom.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Native.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Native.dll new file mode 100644 index 0000000..d7a6e99 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Native.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.OpenGL.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.OpenGL.dll new file mode 100644 index 0000000..93c0ab5 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.OpenGL.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Remote.Protocol.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Remote.Protocol.dll new file mode 100644 index 0000000..9272f5a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Remote.Protocol.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Skia.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Skia.dll new file mode 100644 index 0000000..5daa590 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Skia.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Themes.Fluent.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Themes.Fluent.dll new file mode 100644 index 0000000..cae081e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Themes.Fluent.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Vulkan.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Vulkan.dll new file mode 100644 index 0000000..cee9d5b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Vulkan.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Win32.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Win32.dll new file mode 100644 index 0000000..c63fbe5 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.Win32.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.X11.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.X11.dll new file mode 100644 index 0000000..f463e54 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.X11.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Avalonia.dll b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.dll new file mode 100644 index 0000000..f10fc6a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Avalonia.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/HarfBuzzSharp.dll b/publish/easyTrace-win-x64-accurate-calibration/HarfBuzzSharp.dll new file mode 100644 index 0000000..f4e2c2e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/HarfBuzzSharp.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/MicroCom.Runtime.dll b/publish/easyTrace-win-x64-accurate-calibration/MicroCom.Runtime.dll new file mode 100644 index 0000000..f6cf008 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/MicroCom.Runtime.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Microsoft.CSharp.dll b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.CSharp.dll new file mode 100644 index 0000000..f72860f Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.CSharp.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Microsoft.DiaSymReader.Native.amd64.dll b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.DiaSymReader.Native.amd64.dll new file mode 100644 index 0000000..92b355b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.DiaSymReader.Native.amd64.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Microsoft.VisualBasic.Core.dll b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.VisualBasic.Core.dll new file mode 100644 index 0000000..84ca190 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.VisualBasic.Core.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Microsoft.VisualBasic.dll b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.VisualBasic.dll new file mode 100644 index 0000000..b945ad6 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.VisualBasic.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Microsoft.Win32.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..aa166a8 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.Win32.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Microsoft.Win32.Registry.dll b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.Win32.Registry.dll new file mode 100644 index 0000000..8320ca8 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Microsoft.Win32.Registry.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/OpenCvSharp.dll b/publish/easyTrace-win-x64-accurate-calibration/OpenCvSharp.dll new file mode 100644 index 0000000..854eaad Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/OpenCvSharp.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/OpenCvSharpExtern.dll b/publish/easyTrace-win-x64-accurate-calibration/OpenCvSharpExtern.dll new file mode 100644 index 0000000..0946c33 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/OpenCvSharpExtern.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/SkiaSharp.dll b/publish/easyTrace-win-x64-accurate-calibration/SkiaSharp.dll new file mode 100644 index 0000000..5d7e9cd Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/SkiaSharp.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.AppContext.dll b/publish/easyTrace-win-x64-accurate-calibration/System.AppContext.dll new file mode 100644 index 0000000..89866cc Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.AppContext.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Buffers.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Buffers.dll new file mode 100644 index 0000000..fe58702 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Buffers.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Concurrent.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Concurrent.dll new file mode 100644 index 0000000..46182a1 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Concurrent.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Immutable.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Immutable.dll new file mode 100644 index 0000000..575b27e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Immutable.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Collections.NonGeneric.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.NonGeneric.dll new file mode 100644 index 0000000..81361a3 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.NonGeneric.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Specialized.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Specialized.dll new file mode 100644 index 0000000..2ca2dbc Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.Specialized.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Collections.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.dll new file mode 100644 index 0000000..55ba95b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Collections.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.Annotations.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.Annotations.dll new file mode 100644 index 0000000..7dd704d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.Annotations.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.DataAnnotations.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 0000000..c349ead Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.DataAnnotations.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.EventBasedAsync.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 0000000..72e6dbe Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.EventBasedAsync.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.Primitives.dll new file mode 100644 index 0000000..aa05b44 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.TypeConverter.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.TypeConverter.dll new file mode 100644 index 0000000..145d53f Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.TypeConverter.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.dll new file mode 100644 index 0000000..c39bc4d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ComponentModel.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Configuration.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Configuration.dll new file mode 100644 index 0000000..fe8ac7a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Configuration.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Console.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Console.dll new file mode 100644 index 0000000..50ceecf Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Console.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Core.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Core.dll new file mode 100644 index 0000000..b3bc751 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Core.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Data.Common.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Data.Common.dll new file mode 100644 index 0000000..f307142 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Data.Common.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Data.DataSetExtensions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..89aa76e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Data.DataSetExtensions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Data.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Data.dll new file mode 100644 index 0000000..d557ffa Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Data.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Contracts.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Contracts.dll new file mode 100644 index 0000000..0bb2553 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Contracts.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Debug.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Debug.dll new file mode 100644 index 0000000..060c9d1 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Debug.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.DiagnosticSource.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 0000000..82e2278 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.DiagnosticSource.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.FileVersionInfo.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..1fdecbe Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.FileVersionInfo.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Process.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Process.dll new file mode 100644 index 0000000..ebfc805 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Process.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.StackTrace.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.StackTrace.dll new file mode 100644 index 0000000..ada2c66 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.StackTrace.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.TextWriterTraceListener.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 0000000..b9d5570 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Tools.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Tools.dll new file mode 100644 index 0000000..b1759fd Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Tools.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.TraceSource.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.TraceSource.dll new file mode 100644 index 0000000..a0b77ea Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.TraceSource.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Tracing.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Tracing.dll new file mode 100644 index 0000000..4084713 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Diagnostics.Tracing.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Drawing.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Drawing.Primitives.dll new file mode 100644 index 0000000..0269f11 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Drawing.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Drawing.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Drawing.dll new file mode 100644 index 0000000..11502d0 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Drawing.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Dynamic.Runtime.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Dynamic.Runtime.dll new file mode 100644 index 0000000..96ad505 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Dynamic.Runtime.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Formats.Asn1.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Formats.Asn1.dll new file mode 100644 index 0000000..99877a8 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Formats.Asn1.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Formats.Tar.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Formats.Tar.dll new file mode 100644 index 0000000..217c589 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Formats.Tar.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.Calendars.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.Calendars.dll new file mode 100644 index 0000000..ffec271 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.Calendars.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.Extensions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.Extensions.dll new file mode 100644 index 0000000..fa423ec Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.dll new file mode 100644 index 0000000..d336db8 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Globalization.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.Brotli.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.Brotli.dll new file mode 100644 index 0000000..15822a3 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.Brotli.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.FileSystem.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..563c9ee Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.FileSystem.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.Native.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.Native.dll new file mode 100644 index 0000000..68c40d8 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.Native.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.ZipFile.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.ZipFile.dll new file mode 100644 index 0000000..cdcf679 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.ZipFile.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.dll new file mode 100644 index 0000000..82fe657 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Compression.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.AccessControl.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 0000000..298925a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.DriveInfo.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..76e3341 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.DriveInfo.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.Primitives.dll new file mode 100644 index 0000000..7eed68c Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.Watcher.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.Watcher.dll new file mode 100644 index 0000000..1dce24e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.Watcher.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.dll new file mode 100644 index 0000000..270fe22 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.FileSystem.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.IsolatedStorage.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.IsolatedStorage.dll new file mode 100644 index 0000000..5b786d2 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.IsolatedStorage.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.MemoryMappedFiles.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.MemoryMappedFiles.dll new file mode 100644 index 0000000..ada60be Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.MemoryMappedFiles.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipelines.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipelines.dll new file mode 100644 index 0000000..83a1b24 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipelines.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipes.AccessControl.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipes.AccessControl.dll new file mode 100644 index 0000000..370b9aa Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipes.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipes.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipes.dll new file mode 100644 index 0000000..7e26b67 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.Pipes.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.UnmanagedMemoryStream.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 0000000..db3bff9 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.UnmanagedMemoryStream.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.IO.dll b/publish/easyTrace-win-x64-accurate-calibration/System.IO.dll new file mode 100644 index 0000000..b76268b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.IO.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Expressions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Expressions.dll new file mode 100644 index 0000000..cb45a35 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Expressions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Parallel.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Parallel.dll new file mode 100644 index 0000000..461778d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Parallel.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Queryable.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Queryable.dll new file mode 100644 index 0000000..562fcb6 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.Queryable.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Linq.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.dll new file mode 100644 index 0000000..f0382d7 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Linq.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Memory.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Memory.dll new file mode 100644 index 0000000..422311d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Memory.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Http.Json.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Http.Json.dll new file mode 100644 index 0000000..de21979 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Http.Json.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Http.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Http.dll new file mode 100644 index 0000000..6a10eb5 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Http.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.HttpListener.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.HttpListener.dll new file mode 100644 index 0000000..4eab574 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.HttpListener.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Mail.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Mail.dll new file mode 100644 index 0000000..5b2e014 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Mail.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.NameResolution.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.NameResolution.dll new file mode 100644 index 0000000..00798b4 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.NameResolution.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.NetworkInformation.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.NetworkInformation.dll new file mode 100644 index 0000000..3e90429 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.NetworkInformation.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Ping.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Ping.dll new file mode 100644 index 0000000..34ec01f Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Ping.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Primitives.dll new file mode 100644 index 0000000..a49bbe7 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Quic.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Quic.dll new file mode 100644 index 0000000..1a5ce12 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Quic.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Requests.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Requests.dll new file mode 100644 index 0000000..2d32814 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Requests.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Security.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Security.dll new file mode 100644 index 0000000..e90937d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Security.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.ServicePoint.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.ServicePoint.dll new file mode 100644 index 0000000..1c0461f Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.ServicePoint.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.Sockets.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Sockets.dll new file mode 100644 index 0000000..4d62afa Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.Sockets.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebClient.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebClient.dll new file mode 100644 index 0000000..5380f2d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebClient.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebHeaderCollection.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebHeaderCollection.dll new file mode 100644 index 0000000..58f389c Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebHeaderCollection.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebProxy.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebProxy.dll new file mode 100644 index 0000000..4a87a44 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebProxy.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebSockets.Client.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebSockets.Client.dll new file mode 100644 index 0000000..6879697 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebSockets.Client.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebSockets.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebSockets.dll new file mode 100644 index 0000000..17f3310 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.WebSockets.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Net.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Net.dll new file mode 100644 index 0000000..50e06c6 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Net.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Numerics.Vectors.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Numerics.Vectors.dll new file mode 100644 index 0000000..1b33e15 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Numerics.Vectors.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Numerics.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Numerics.dll new file mode 100644 index 0000000..a34d085 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Numerics.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ObjectModel.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ObjectModel.dll new file mode 100644 index 0000000..a430c6a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ObjectModel.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Private.CoreLib.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Private.CoreLib.dll new file mode 100644 index 0000000..ba26a43 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Private.CoreLib.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Private.DataContractSerialization.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Private.DataContractSerialization.dll new file mode 100644 index 0000000..96e9a73 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Private.DataContractSerialization.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Private.Uri.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Private.Uri.dll new file mode 100644 index 0000000..4346c54 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Private.Uri.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Private.Xml.Linq.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Private.Xml.Linq.dll new file mode 100644 index 0000000..0890dcb Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Private.Xml.Linq.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Private.Xml.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Private.Xml.dll new file mode 100644 index 0000000..598bf06 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Private.Xml.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.DispatchProxy.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.DispatchProxy.dll new file mode 100644 index 0000000..72650cc Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.DispatchProxy.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.ILGeneration.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 0000000..2d36784 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.ILGeneration.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.Lightweight.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 0000000..f0c382f Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.Lightweight.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.dll new file mode 100644 index 0000000..7aa93ea Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Emit.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Extensions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Extensions.dll new file mode 100644 index 0000000..3a9c36e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Metadata.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Metadata.dll new file mode 100644 index 0000000..7320d81 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Metadata.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Primitives.dll new file mode 100644 index 0000000..030f2ee Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.TypeExtensions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.TypeExtensions.dll new file mode 100644 index 0000000..0ea1496 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.TypeExtensions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.dll new file mode 100644 index 0000000..bd671b6 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Reflection.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Resources.Reader.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Resources.Reader.dll new file mode 100644 index 0000000..097298b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Resources.Reader.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Resources.ResourceManager.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Resources.ResourceManager.dll new file mode 100644 index 0000000..d3c7469 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Resources.ResourceManager.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Resources.Writer.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Resources.Writer.dll new file mode 100644 index 0000000..bd5c43e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Resources.Writer.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.CompilerServices.Unsafe.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..52de463 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.CompilerServices.VisualC.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 0000000..27c1711 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Extensions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Extensions.dll new file mode 100644 index 0000000..67608e0 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Handles.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Handles.dll new file mode 100644 index 0000000..60f54e4 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Handles.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.JavaScript.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.JavaScript.dll new file mode 100644 index 0000000..3d923be Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.JavaScript.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.RuntimeInformation.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 0000000..0ad4630 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.dll new file mode 100644 index 0000000..12411c8 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.InteropServices.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Intrinsics.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Intrinsics.dll new file mode 100644 index 0000000..e34702e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Intrinsics.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Loader.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Loader.dll new file mode 100644 index 0000000..2f5d69b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Loader.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Numerics.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Numerics.dll new file mode 100644 index 0000000..e13947a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Numerics.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Formatters.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 0000000..4a870c4 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Formatters.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Json.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Json.dll new file mode 100644 index 0000000..433f67f Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Json.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 0000000..e460746 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Xml.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Xml.dll new file mode 100644 index 0000000..9f50b84 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.Xml.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.dll new file mode 100644 index 0000000..cdf1e11 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.Serialization.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.dll new file mode 100644 index 0000000..a3b64a9 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Runtime.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.AccessControl.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.AccessControl.dll new file mode 100644 index 0000000..f2e6343 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Claims.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Claims.dll new file mode 100644 index 0000000..16647a0 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Claims.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Algorithms.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..792ee68 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Algorithms.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Cng.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Cng.dll new file mode 100644 index 0000000..8a895eb Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Cng.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Csp.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Csp.dll new file mode 100644 index 0000000..c53e9f4 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Csp.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Encoding.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..b319c3a Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Encoding.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.OpenSsl.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 0000000..f0e2ad2 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.OpenSsl.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Primitives.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..ec37b77 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.X509Certificates.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..512766e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.X509Certificates.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.dll new file mode 100644 index 0000000..7196051 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Cryptography.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Principal.Windows.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..0c1c464 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Principal.Windows.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.Principal.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Principal.dll new file mode 100644 index 0000000..72a1682 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.Principal.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.SecureString.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.SecureString.dll new file mode 100644 index 0000000..5483611 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.SecureString.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Security.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Security.dll new file mode 100644 index 0000000..ad58983 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Security.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ServiceModel.Web.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ServiceModel.Web.dll new file mode 100644 index 0000000..02916cc Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ServiceModel.Web.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ServiceProcess.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ServiceProcess.dll new file mode 100644 index 0000000..9fc9563 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ServiceProcess.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.CodePages.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..c83198c Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.CodePages.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.Extensions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.Extensions.dll new file mode 100644 index 0000000..25ed707 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.dll new file mode 100644 index 0000000..3a72c9d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encoding.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encodings.Web.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..ff34dfe Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Encodings.Web.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Text.Json.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Json.dll new file mode 100644 index 0000000..1ca0f81 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Text.Json.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Text.RegularExpressions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Text.RegularExpressions.dll new file mode 100644 index 0000000..91629a7 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Text.RegularExpressions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Channels.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Channels.dll new file mode 100644 index 0000000..79fad24 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Channels.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Overlapped.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Overlapped.dll new file mode 100644 index 0000000..2b0e30f Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Overlapped.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Dataflow.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 0000000..133c3f8 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Dataflow.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Extensions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..c3b9a1d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Parallel.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Parallel.dll new file mode 100644 index 0000000..4a6ec86 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.Parallel.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.dll new file mode 100644 index 0000000..7f813df Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Tasks.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Thread.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Thread.dll new file mode 100644 index 0000000..baa0ed7 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Thread.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.ThreadPool.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.ThreadPool.dll new file mode 100644 index 0000000..c34b61d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.ThreadPool.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Timer.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Timer.dll new file mode 100644 index 0000000..cc547d4 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.Timer.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Threading.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.dll new file mode 100644 index 0000000..a4aa7a3 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Threading.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Transactions.Local.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Transactions.Local.dll new file mode 100644 index 0000000..0222cd5 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Transactions.Local.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Transactions.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Transactions.dll new file mode 100644 index 0000000..93fc0b1 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Transactions.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.ValueTuple.dll b/publish/easyTrace-win-x64-accurate-calibration/System.ValueTuple.dll new file mode 100644 index 0000000..1694c3d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.ValueTuple.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Web.HttpUtility.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Web.HttpUtility.dll new file mode 100644 index 0000000..0a3d655 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Web.HttpUtility.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Web.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Web.dll new file mode 100644 index 0000000..7118fef Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Web.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Windows.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Windows.dll new file mode 100644 index 0000000..4d6a203 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Windows.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.Linq.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.Linq.dll new file mode 100644 index 0000000..da0a5e5 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.Linq.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.ReaderWriter.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..3bbff90 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.ReaderWriter.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.Serialization.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.Serialization.dll new file mode 100644 index 0000000..40de827 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.Serialization.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XDocument.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XDocument.dll new file mode 100644 index 0000000..4d2508e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XDocument.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XPath.XDocument.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..127cb90 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XPath.XDocument.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XPath.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XPath.dll new file mode 100644 index 0000000..95985c9 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XPath.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XmlDocument.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..d312eec Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XmlDocument.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XmlSerializer.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XmlSerializer.dll new file mode 100644 index 0000000..b39ebea Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.XmlSerializer.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.Xml.dll b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.dll new file mode 100644 index 0000000..883b80d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.Xml.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/System.dll b/publish/easyTrace-win-x64-accurate-calibration/System.dll new file mode 100644 index 0000000..0666ad0 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/System.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/Tmds.DBus.Protocol.dll b/publish/easyTrace-win-x64-accurate-calibration/Tmds.DBus.Protocol.dll new file mode 100644 index 0000000..8f42654 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/Tmds.DBus.Protocol.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Core.dll b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Core.dll new file mode 100644 index 0000000..a2c4f63 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Core.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Core.pdb b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Core.pdb new file mode 100644 index 0000000..3c0d0af Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Core.pdb differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Dxf.dll b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Dxf.dll new file mode 100644 index 0000000..01381f3 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Dxf.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Dxf.pdb b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Dxf.pdb new file mode 100644 index 0000000..ab0612d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Dxf.pdb differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Vision.dll b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Vision.dll new file mode 100644 index 0000000..37e195b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Vision.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Vision.pdb b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Vision.pdb new file mode 100644 index 0000000..7613fe0 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/TraceCad.Vision.pdb differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/WindowsBase.dll b/publish/easyTrace-win-x64-accurate-calibration/WindowsBase.dll new file mode 100644 index 0000000..2101a65 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/WindowsBase.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/av_libglesv2.dll b/publish/easyTrace-win-x64-accurate-calibration/av_libglesv2.dll new file mode 100644 index 0000000..c327f9e Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/av_libglesv2.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/clretwrc.dll b/publish/easyTrace-win-x64-accurate-calibration/clretwrc.dll new file mode 100644 index 0000000..16c5dd9 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/clretwrc.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/clrgc.dll b/publish/easyTrace-win-x64-accurate-calibration/clrgc.dll new file mode 100644 index 0000000..bba81c6 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/clrgc.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/clrjit.dll b/publish/easyTrace-win-x64-accurate-calibration/clrjit.dll new file mode 100644 index 0000000..0f3cc4b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/clrjit.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/coreclr.dll b/publish/easyTrace-win-x64-accurate-calibration/coreclr.dll new file mode 100644 index 0000000..dbf2e6d Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/coreclr.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/createdump.exe b/publish/easyTrace-win-x64-accurate-calibration/createdump.exe new file mode 100644 index 0000000..dcfc730 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/createdump.exe differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/easyTrace.deps.json b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.deps.json new file mode 100644 index 0000000..39dfe73 --- /dev/null +++ b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.deps.json @@ -0,0 +1,1196 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0/win-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": {}, + ".NETCoreApp,Version=v8.0/win-x64": { + "easyTrace/1.0.0": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Desktop": "11.2.3", + "Avalonia.Themes.Fluent": "11.2.3", + "TraceCad.Core": "1.0.0", + "TraceCad.Dxf": "1.0.0", + "TraceCad.Vision": "1.0.0", + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.26" + }, + "runtime": { + "easyTrace.dll": {} + } + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "runtime": { + "Microsoft.CSharp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.2626.16921" + }, + "Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Registry.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.AppContext.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Buffers.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Concurrent.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Immutable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.NonGeneric.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Specialized.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Annotations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Console.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.DataSetExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Contracts.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Debug.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Process.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tools.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tracing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Dynamic.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Asn1.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Tar.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Calendars.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.Brotli.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.IsolatedStorage.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Expressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Queryable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.HttpListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Mail.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NameResolution.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NetworkInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Ping.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Quic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Requests.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Security.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.ServicePoint.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Sockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.Client.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.Vectors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ObjectModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.CoreLib.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.DataContractSerialization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Uri.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Metadata.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Reader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.ResourceManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Writer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Handles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.JavaScript.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Intrinsics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Loader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Numerics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Claims.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.Windows.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.SecureString.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encodings.Web.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.RegularExpressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Channels.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Overlapped.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Thread.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.ThreadPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Timer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.Local.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ValueTuple.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.HttpUtility.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.ReaderWriter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlSerializer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "8.0.2626.16921" + } + }, + "native": { + "Microsoft.DiaSymReader.Native.amd64.dll": { + "fileVersion": "14.42.34436.0" + }, + "System.IO.Compression.Native.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clretwrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrgc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrjit.dll": { + "fileVersion": "8.0.2626.16921" + }, + "coreclr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "createdump.exe": { + "fileVersion": "8.0.2626.16921" + }, + "hostfxr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "hostpolicy.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore_amd64_amd64_8.0.2626.16921.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordbi.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscorrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "msquic.dll": { + "fileVersion": "2.4.17.0" + } + } + }, + "Avalonia/11.2.3": { + "dependencies": { + "Avalonia.Remote.Protocol": "11.2.3", + "MicroCom.Runtime": "0.11.0" + }, + "runtime": { + "lib/net8.0/Avalonia.Base.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Controls.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.DesignerSupport.dll": { + "assemblyVersion": "0.7.0.0", + "fileVersion": "0.7.0.0" + }, + "lib/net8.0/Avalonia.Dialogs.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.Xaml.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Metal.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.MicroCom.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.OpenGL.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Vulkan.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "native": { + "runtimes/win-x64/native/av_libglesv2.dll": { + "fileVersion": "2.1.22045.0" + } + } + }, + "Avalonia.Desktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Native": "11.2.3", + "Avalonia.Skia": "11.2.3", + "Avalonia.Win32": "11.2.3", + "Avalonia.X11": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Desktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.FreeDesktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Tmds.DBus.Protocol": "0.20.0" + }, + "runtime": { + "lib/net8.0/Avalonia.FreeDesktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Native/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Native.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Remote.Protocol/11.2.3": { + "runtime": { + "lib/net8.0/Avalonia.Remote.Protocol.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Skia/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "HarfBuzzSharp": "7.3.0.3", + "SkiaSharp": "2.88.9" + }, + "runtime": { + "lib/net8.0/Avalonia.Skia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Themes.Fluent/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Themes.Fluent.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Win32/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Angle.Windows.Natives": "2.1.22045.20230930" + }, + "runtime": { + "lib/net8.0/Avalonia.Win32.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.X11/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.FreeDesktop": "11.2.3", + "Avalonia.Skia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.X11.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "HarfBuzzSharp/7.3.0.3": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "7.3.0.3" + }, + "runtime": { + "lib/net6.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "7.3.0.3" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "native": { + "runtimes/win-x64/native/libHarfBuzzSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "MicroCom.Runtime/0.11.0": { + "runtime": { + "lib/net5.0/MicroCom.Runtime.dll": { + "assemblyVersion": "0.11.0.0", + "fileVersion": "0.11.0.0" + } + } + }, + "netDxf/2022.11.2": { + "runtime": { + "lib/net6.0/netDxf.dll": { + "assemblyVersion": "2022.11.2.0", + "fileVersion": "2022.11.2.0" + } + } + }, + "OpenCvSharp4/4.10.0.20241108": { + "runtime": { + "lib/net6.0/OpenCvSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "OpenCvSharp4.runtime.win/4.10.0.20241108": { + "native": { + "runtimes/win-x64/native/OpenCvSharpExtern.dll": { + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/opencv_videoio_ffmpeg4100_64.dll": { + "fileVersion": "2024.5.0.0" + } + } + }, + "SkiaSharp/2.88.9": { + "dependencies": { + "SkiaSharp.NativeAssets.Win32": "2.88.9" + }, + "runtime": { + "lib/net6.0/SkiaSharp.dll": { + "assemblyVersion": "2.88.0.0", + "fileVersion": "2.88.9.0" + } + } + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "native": { + "runtimes/win-x64/native/libSkiaSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Tmds.DBus.Protocol/0.20.0": { + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "runtime": { + "lib/net8.0/Tmds.DBus.Protocol.dll": { + "assemblyVersion": "0.20.0.0", + "fileVersion": "0.20.0.0" + } + } + }, + "TraceCad.Core/1.0.0": { + "runtime": { + "TraceCad.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "TraceCad.Dxf/1.0.0": { + "dependencies": { + "TraceCad.Core": "1.0.0", + "netDxf": "2022.11.2" + }, + "runtime": { + "TraceCad.Dxf.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "TraceCad.Vision/1.0.0": { + "dependencies": { + "OpenCvSharp4": "4.10.0.20241108", + "OpenCvSharp4.runtime.win": "4.10.0.20241108", + "TraceCad.Core": "1.0.0" + }, + "runtime": { + "TraceCad.Vision.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "easyTrace/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "Avalonia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pD6woFAUfGcyEvMmrpctntU4jv4fT8752pfx1J5iRORVX3Ob0oQi8PWo0TXVaAJZiSfH0cdKTeKx0w0DzD0/mg==", + "path": "avalonia/11.2.3", + "hashPath": "avalonia.11.2.3.nupkg.sha512" + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Bo3qOhKC1b84BIhiogndMdAzB3UrrESKK7hS769f5HWeoMw/pcd42US5KFYW2JJ4ZSTrXnP8mXwLTMzh+S+9Lg==", + "path": "avalonia.angle.windows.natives/2.1.22045.20230930", + "hashPath": "avalonia.angle.windows.natives.2.1.22045.20230930.nupkg.sha512" + }, + "Avalonia.Desktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dX3zfgWplLqcgwQJLeC2ciqxE/GM3iw9HUNI22c8KgAAWMWl52NWCmjW228EPZG+4YbHwq8T40YARO2aQF+yqA==", + "path": "avalonia.desktop/11.2.3", + "hashPath": "avalonia.desktop.11.2.3.nupkg.sha512" + }, + "Avalonia.FreeDesktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BOivcAE3yYFKyYg5CztnTeIFX7ZHNaFiMrQ9WO4MgKyMwbPdH6jy6Mpfu+LY5FiYpleZdmXLJXZzzPon52DUVg==", + "path": "avalonia.freedesktop/11.2.3", + "hashPath": "avalonia.freedesktop.11.2.3.nupkg.sha512" + }, + "Avalonia.Native/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yW9IGfa7kBuEcYP4ni7nGYNI2HjqaBg+cPJXZeiXf8RFptmluMv75hMyyq8FYIZwVcZIEcwEgff81a7b4aNTVQ==", + "path": "avalonia.native/11.2.3", + "hashPath": "avalonia.native.11.2.3.nupkg.sha512" + }, + "Avalonia.Remote.Protocol/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6V0aNtld48WmO8tAlWwlRlUmXYcOWv+1eJUSl1ETF+1blUe5yhcSmuWarPprO0hDk8Ta6wGfdfcrnVl2gITYcA==", + "path": "avalonia.remote.protocol/11.2.3", + "hashPath": "avalonia.remote.protocol.11.2.3.nupkg.sha512" + }, + "Avalonia.Skia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jpzqkkmhzz6DSUy5dIw5T43MoHCdb05pmTvnsmHrbipA8mafI8RrO7tVnv1+ilFNV4516G9/kOpXjTLKjnnYrA==", + "path": "avalonia.skia/11.2.3", + "hashPath": "avalonia.skia.11.2.3.nupkg.sha512" + }, + "Avalonia.Themes.Fluent/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gPJWBWaeocvRhSrB977xsfH0Ame14PxRMIgEfezi2bTjNJ43JWzJtALgDfDZYMpZPDdeWU/mwDigR/kD+rJtlw==", + "path": "avalonia.themes.fluent/11.2.3", + "hashPath": "avalonia.themes.fluent.11.2.3.nupkg.sha512" + }, + "Avalonia.Win32/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VwdaOHvIowTSM2umeXOFIoUx4UydCXkXracwLQZaMlsWXCTJ+WwtlAIv0ZBCwQccAK+WELrdRXucvWWN8+sJCQ==", + "path": "avalonia.win32/11.2.3", + "hashPath": "avalonia.win32.11.2.3.nupkg.sha512" + }, + "Avalonia.X11/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0mr3zu5NEv2cTLsANyc3w51ctiLTWQia6TrlDdWCjfMx2k0VtCzgGBieByPgUl4iNWEDzgBEKek1EwJcGdJ+7g==", + "path": "avalonia.x11/11.2.3", + "hashPath": "avalonia.x11.11.2.3.nupkg.sha512" + }, + "HarfBuzzSharp/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Hq+5+gx10coOvuRgB13KBwiWxJq1QeYuhtVLbA01ZCWaugOnolUahF44KvrQTUUHDNk/C7HB6SMaebsZeOdhgg==", + "path": "harfbuzzsharp/7.3.0.3", + "hashPath": "harfbuzzsharp.7.3.0.3.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RPxRXD16KtSs8Yxr2RK9Qs7AwyN9MlpqZIYs0AvfaJwl7RAtVhC0+u2f2SKwX0uMYYd3O98Z+OBA1sj6aWVKQA==", + "path": "harfbuzzsharp.nativeassets.win32/7.3.0.3", + "hashPath": "harfbuzzsharp.nativeassets.win32.7.3.0.3.nupkg.sha512" + }, + "MicroCom.Runtime/0.11.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MEnrZ3UIiH40hjzMDsxrTyi8dtqB5ziv3iBeeU4bXsL/7NLSal9F1lZKpK+tfBRnUoDSdtcW3KufE4yhATOMCA==", + "path": "microcom.runtime/0.11.0", + "hashPath": "microcom.runtime.0.11.0.nupkg.sha512" + }, + "netDxf/2022.11.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bNiH5EoaRiBsPIQWAVx/Y2PyOUkKaZ89dIHfiJ++B9Kjyph/XevVx11nwAA6oiQ14Kj5pRchY3XfrRnZl6LwlQ==", + "path": "netdxf/2022.11.2", + "hashPath": "netdxf.2022.11.2.nupkg.sha512" + }, + "OpenCvSharp4/4.10.0.20241108": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4Lw57NQzOaR0fi9et7GMWB1rpdGzGuNgXHXy45Gltvt8SizQLOGufUonNF9Z+9mo3dcwGC/mL4w5NBgJCqZdHQ==", + "path": "opencvsharp4/4.10.0.20241108", + "hashPath": "opencvsharp4.4.10.0.20241108.nupkg.sha512" + }, + "OpenCvSharp4.runtime.win/4.10.0.20241108": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0ae2dwel83tqKlAs45D3KYncoJHRzj1ArEESa6wz7FS3tYu37JDIb5yoMIZPzlkx3Gx2S1BjUrClfXbBHmVh5g==", + "path": "opencvsharp4.runtime.win/4.10.0.20241108", + "hashPath": "opencvsharp4.runtime.win.4.10.0.20241108.nupkg.sha512" + }, + "SkiaSharp/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3MD5VHjXXieSHCleRLuaTXmL2pD0mB7CcOB1x2kA1I4bhptf4e3R27iM93264ZYuAq6mkUyX5XbcxnZvMJYc1Q==", + "path": "skiasharp/2.88.9", + "hashPath": "skiasharp.2.88.9.nupkg.sha512" + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wb2kYgU7iy84nQLYZwMeJXixvK++GoIuECjU4ECaUKNuflyRlJKyiRhN1MAHswvlvzuvkrjRWlK0Za6+kYQK7w==", + "path": "skiasharp.nativeassets.win32/2.88.9", + "hashPath": "skiasharp.nativeassets.win32.2.88.9.nupkg.sha512" + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "path": "system.io.pipelines/8.0.0", + "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" + }, + "Tmds.DBus.Protocol/0.20.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2gkt2kuYPhDKd8gtl34jZSJOnn4nRJfFngCDcTZT/uySbK++ua0YQx2418l9Rn1Y4dE5XNq6zG9ZsE5ltLlNNw==", + "path": "tmds.dbus.protocol/0.20.0", + "hashPath": "tmds.dbus.protocol.0.20.0.nupkg.sha512" + }, + "TraceCad.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "TraceCad.Dxf/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "TraceCad.Vision/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + }, + "runtimes": { + "win-x64": [ + "win", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/publish/easyTrace-win-x64-accurate-calibration/easyTrace.dll b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.dll new file mode 100644 index 0000000..caf8dfd Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/easyTrace.exe b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.exe new file mode 100644 index 0000000..c9dbc0b Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.exe differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/easyTrace.pdb b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.pdb new file mode 100644 index 0000000..8904522 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.pdb differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/easyTrace.runtimeconfig.json b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.runtimeconfig.json new file mode 100644 index 0000000..3c8ca56 --- /dev/null +++ b/publish/easyTrace-win-x64-accurate-calibration/easyTrace.runtimeconfig.json @@ -0,0 +1,15 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "includedFrameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.26" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/publish/easyTrace-win-x64-accurate-calibration/hostfxr.dll b/publish/easyTrace-win-x64-accurate-calibration/hostfxr.dll new file mode 100644 index 0000000..0b8fde3 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/hostfxr.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/hostpolicy.dll b/publish/easyTrace-win-x64-accurate-calibration/hostpolicy.dll new file mode 100644 index 0000000..8929cfa Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/hostpolicy.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/libHarfBuzzSharp.dll b/publish/easyTrace-win-x64-accurate-calibration/libHarfBuzzSharp.dll new file mode 100644 index 0000000..01deb29 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/libHarfBuzzSharp.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/libSkiaSharp.dll b/publish/easyTrace-win-x64-accurate-calibration/libSkiaSharp.dll new file mode 100644 index 0000000..3f8c6f2 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/libSkiaSharp.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/mscordaccore.dll b/publish/easyTrace-win-x64-accurate-calibration/mscordaccore.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/mscordaccore.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/mscordaccore_amd64_amd64_8.0.2626.16921.dll b/publish/easyTrace-win-x64-accurate-calibration/mscordaccore_amd64_amd64_8.0.2626.16921.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/mscordaccore_amd64_amd64_8.0.2626.16921.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/mscordbi.dll b/publish/easyTrace-win-x64-accurate-calibration/mscordbi.dll new file mode 100644 index 0000000..ee7b2d3 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/mscordbi.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/mscorlib.dll b/publish/easyTrace-win-x64-accurate-calibration/mscorlib.dll new file mode 100644 index 0000000..dacea10 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/mscorlib.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/mscorrc.dll b/publish/easyTrace-win-x64-accurate-calibration/mscorrc.dll new file mode 100644 index 0000000..e7ac1e0 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/mscorrc.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/msquic.dll b/publish/easyTrace-win-x64-accurate-calibration/msquic.dll new file mode 100644 index 0000000..0d619d1 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/msquic.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/netDxf.dll b/publish/easyTrace-win-x64-accurate-calibration/netDxf.dll new file mode 100644 index 0000000..fa45826 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/netDxf.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/netstandard.dll b/publish/easyTrace-win-x64-accurate-calibration/netstandard.dll new file mode 100644 index 0000000..de2f9e5 Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/netstandard.dll differ diff --git a/publish/easyTrace-win-x64-accurate-calibration/opencv_videoio_ffmpeg4100_64.dll b/publish/easyTrace-win-x64-accurate-calibration/opencv_videoio_ffmpeg4100_64.dll new file mode 100644 index 0000000..b880c1c Binary files /dev/null and b/publish/easyTrace-win-x64-accurate-calibration/opencv_videoio_ffmpeg4100_64.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Base.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Base.dll new file mode 100644 index 0000000..1090d48 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Base.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Controls.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Controls.dll new file mode 100644 index 0000000..fc18f9d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Controls.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.DesignerSupport.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.DesignerSupport.dll new file mode 100644 index 0000000..fe28a01 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.DesignerSupport.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Desktop.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Desktop.dll new file mode 100644 index 0000000..4559516 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Desktop.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Dialogs.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Dialogs.dll new file mode 100644 index 0000000..dcdeb0e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Dialogs.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.FreeDesktop.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.FreeDesktop.dll new file mode 100644 index 0000000..4ebb713 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.FreeDesktop.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Markup.Xaml.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Markup.Xaml.dll new file mode 100644 index 0000000..6ad7500 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Markup.Xaml.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Markup.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Markup.dll new file mode 100644 index 0000000..d9fa96a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Markup.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Metal.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Metal.dll new file mode 100644 index 0000000..481bc23 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Metal.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.MicroCom.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.MicroCom.dll new file mode 100644 index 0000000..b430aa7 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.MicroCom.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Native.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Native.dll new file mode 100644 index 0000000..d7a6e99 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Native.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.OpenGL.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.OpenGL.dll new file mode 100644 index 0000000..93c0ab5 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.OpenGL.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Remote.Protocol.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Remote.Protocol.dll new file mode 100644 index 0000000..9272f5a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Remote.Protocol.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Skia.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Skia.dll new file mode 100644 index 0000000..5daa590 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Skia.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Themes.Fluent.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Themes.Fluent.dll new file mode 100644 index 0000000..cae081e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Themes.Fluent.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Vulkan.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Vulkan.dll new file mode 100644 index 0000000..cee9d5b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Vulkan.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.Win32.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.Win32.dll new file mode 100644 index 0000000..c63fbe5 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.Win32.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.X11.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.X11.dll new file mode 100644 index 0000000..f463e54 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.X11.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Avalonia.dll b/publish/easyTrace-win-x64-pdf-template/Avalonia.dll new file mode 100644 index 0000000..f10fc6a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Avalonia.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/HarfBuzzSharp.dll b/publish/easyTrace-win-x64-pdf-template/HarfBuzzSharp.dll new file mode 100644 index 0000000..f4e2c2e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/HarfBuzzSharp.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/MicroCom.Runtime.dll b/publish/easyTrace-win-x64-pdf-template/MicroCom.Runtime.dll new file mode 100644 index 0000000..f6cf008 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/MicroCom.Runtime.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Microsoft.CSharp.dll b/publish/easyTrace-win-x64-pdf-template/Microsoft.CSharp.dll new file mode 100644 index 0000000..f72860f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Microsoft.CSharp.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Microsoft.DiaSymReader.Native.amd64.dll b/publish/easyTrace-win-x64-pdf-template/Microsoft.DiaSymReader.Native.amd64.dll new file mode 100644 index 0000000..92b355b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Microsoft.DiaSymReader.Native.amd64.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Microsoft.VisualBasic.Core.dll b/publish/easyTrace-win-x64-pdf-template/Microsoft.VisualBasic.Core.dll new file mode 100644 index 0000000..84ca190 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Microsoft.VisualBasic.Core.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Microsoft.VisualBasic.dll b/publish/easyTrace-win-x64-pdf-template/Microsoft.VisualBasic.dll new file mode 100644 index 0000000..b945ad6 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Microsoft.VisualBasic.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Microsoft.Win32.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..aa166a8 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Microsoft.Win32.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Microsoft.Win32.Registry.dll b/publish/easyTrace-win-x64-pdf-template/Microsoft.Win32.Registry.dll new file mode 100644 index 0000000..8320ca8 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Microsoft.Win32.Registry.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/OpenCvSharp.dll b/publish/easyTrace-win-x64-pdf-template/OpenCvSharp.dll new file mode 100644 index 0000000..854eaad Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/OpenCvSharp.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/OpenCvSharpExtern.dll b/publish/easyTrace-win-x64-pdf-template/OpenCvSharpExtern.dll new file mode 100644 index 0000000..0946c33 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/OpenCvSharpExtern.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/SkiaSharp.dll b/publish/easyTrace-win-x64-pdf-template/SkiaSharp.dll new file mode 100644 index 0000000..5d7e9cd Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/SkiaSharp.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.AppContext.dll b/publish/easyTrace-win-x64-pdf-template/System.AppContext.dll new file mode 100644 index 0000000..89866cc Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.AppContext.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Buffers.dll b/publish/easyTrace-win-x64-pdf-template/System.Buffers.dll new file mode 100644 index 0000000..fe58702 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Buffers.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Collections.Concurrent.dll b/publish/easyTrace-win-x64-pdf-template/System.Collections.Concurrent.dll new file mode 100644 index 0000000..46182a1 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Collections.Concurrent.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Collections.Immutable.dll b/publish/easyTrace-win-x64-pdf-template/System.Collections.Immutable.dll new file mode 100644 index 0000000..575b27e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Collections.Immutable.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Collections.NonGeneric.dll b/publish/easyTrace-win-x64-pdf-template/System.Collections.NonGeneric.dll new file mode 100644 index 0000000..81361a3 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Collections.NonGeneric.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Collections.Specialized.dll b/publish/easyTrace-win-x64-pdf-template/System.Collections.Specialized.dll new file mode 100644 index 0000000..2ca2dbc Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Collections.Specialized.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Collections.dll b/publish/easyTrace-win-x64-pdf-template/System.Collections.dll new file mode 100644 index 0000000..55ba95b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Collections.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.Annotations.dll b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.Annotations.dll new file mode 100644 index 0000000..7dd704d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.Annotations.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.DataAnnotations.dll b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 0000000..c349ead Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.DataAnnotations.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.EventBasedAsync.dll b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 0000000..72e6dbe Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.EventBasedAsync.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.Primitives.dll new file mode 100644 index 0000000..aa05b44 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.TypeConverter.dll b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.TypeConverter.dll new file mode 100644 index 0000000..145d53f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.TypeConverter.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.dll b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.dll new file mode 100644 index 0000000..c39bc4d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ComponentModel.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Configuration.dll b/publish/easyTrace-win-x64-pdf-template/System.Configuration.dll new file mode 100644 index 0000000..fe8ac7a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Configuration.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Console.dll b/publish/easyTrace-win-x64-pdf-template/System.Console.dll new file mode 100644 index 0000000..50ceecf Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Console.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Core.dll b/publish/easyTrace-win-x64-pdf-template/System.Core.dll new file mode 100644 index 0000000..b3bc751 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Core.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Data.Common.dll b/publish/easyTrace-win-x64-pdf-template/System.Data.Common.dll new file mode 100644 index 0000000..f307142 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Data.Common.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Data.DataSetExtensions.dll b/publish/easyTrace-win-x64-pdf-template/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..89aa76e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Data.DataSetExtensions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Data.dll b/publish/easyTrace-win-x64-pdf-template/System.Data.dll new file mode 100644 index 0000000..d557ffa Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Data.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Contracts.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Contracts.dll new file mode 100644 index 0000000..0bb2553 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Contracts.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Debug.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Debug.dll new file mode 100644 index 0000000..060c9d1 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Debug.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.DiagnosticSource.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 0000000..82e2278 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.DiagnosticSource.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.FileVersionInfo.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..1fdecbe Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.FileVersionInfo.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Process.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Process.dll new file mode 100644 index 0000000..ebfc805 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Process.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.StackTrace.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.StackTrace.dll new file mode 100644 index 0000000..ada2c66 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.StackTrace.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.TextWriterTraceListener.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 0000000..b9d5570 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Tools.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Tools.dll new file mode 100644 index 0000000..b1759fd Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Tools.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.TraceSource.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.TraceSource.dll new file mode 100644 index 0000000..a0b77ea Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.TraceSource.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Tracing.dll b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Tracing.dll new file mode 100644 index 0000000..4084713 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Diagnostics.Tracing.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Drawing.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/System.Drawing.Primitives.dll new file mode 100644 index 0000000..0269f11 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Drawing.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Drawing.dll b/publish/easyTrace-win-x64-pdf-template/System.Drawing.dll new file mode 100644 index 0000000..11502d0 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Drawing.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Dynamic.Runtime.dll b/publish/easyTrace-win-x64-pdf-template/System.Dynamic.Runtime.dll new file mode 100644 index 0000000..96ad505 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Dynamic.Runtime.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Formats.Asn1.dll b/publish/easyTrace-win-x64-pdf-template/System.Formats.Asn1.dll new file mode 100644 index 0000000..99877a8 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Formats.Asn1.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Formats.Tar.dll b/publish/easyTrace-win-x64-pdf-template/System.Formats.Tar.dll new file mode 100644 index 0000000..217c589 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Formats.Tar.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Globalization.Calendars.dll b/publish/easyTrace-win-x64-pdf-template/System.Globalization.Calendars.dll new file mode 100644 index 0000000..ffec271 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Globalization.Calendars.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Globalization.Extensions.dll b/publish/easyTrace-win-x64-pdf-template/System.Globalization.Extensions.dll new file mode 100644 index 0000000..fa423ec Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Globalization.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Globalization.dll b/publish/easyTrace-win-x64-pdf-template/System.Globalization.dll new file mode 100644 index 0000000..d336db8 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Globalization.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.Brotli.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.Brotli.dll new file mode 100644 index 0000000..15822a3 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.Brotli.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.FileSystem.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..563c9ee Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.FileSystem.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.Native.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.Native.dll new file mode 100644 index 0000000..68c40d8 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.Native.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.ZipFile.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.ZipFile.dll new file mode 100644 index 0000000..cdcf679 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.ZipFile.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.dll new file mode 100644 index 0000000..82fe657 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Compression.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.AccessControl.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 0000000..298925a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.DriveInfo.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..76e3341 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.DriveInfo.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.Primitives.dll new file mode 100644 index 0000000..7eed68c Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.Watcher.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.Watcher.dll new file mode 100644 index 0000000..1dce24e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.Watcher.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.dll new file mode 100644 index 0000000..270fe22 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.FileSystem.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.IsolatedStorage.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.IsolatedStorage.dll new file mode 100644 index 0000000..5b786d2 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.IsolatedStorage.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.MemoryMappedFiles.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.MemoryMappedFiles.dll new file mode 100644 index 0000000..ada60be Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.MemoryMappedFiles.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Pipelines.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Pipelines.dll new file mode 100644 index 0000000..83a1b24 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Pipelines.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Pipes.AccessControl.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Pipes.AccessControl.dll new file mode 100644 index 0000000..370b9aa Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Pipes.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.Pipes.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.Pipes.dll new file mode 100644 index 0000000..7e26b67 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.Pipes.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.UnmanagedMemoryStream.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 0000000..db3bff9 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.UnmanagedMemoryStream.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.IO.dll b/publish/easyTrace-win-x64-pdf-template/System.IO.dll new file mode 100644 index 0000000..b76268b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.IO.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Linq.Expressions.dll b/publish/easyTrace-win-x64-pdf-template/System.Linq.Expressions.dll new file mode 100644 index 0000000..cb45a35 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Linq.Expressions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Linq.Parallel.dll b/publish/easyTrace-win-x64-pdf-template/System.Linq.Parallel.dll new file mode 100644 index 0000000..461778d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Linq.Parallel.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Linq.Queryable.dll b/publish/easyTrace-win-x64-pdf-template/System.Linq.Queryable.dll new file mode 100644 index 0000000..562fcb6 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Linq.Queryable.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Linq.dll b/publish/easyTrace-win-x64-pdf-template/System.Linq.dll new file mode 100644 index 0000000..f0382d7 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Linq.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Memory.dll b/publish/easyTrace-win-x64-pdf-template/System.Memory.dll new file mode 100644 index 0000000..422311d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Memory.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Http.Json.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Http.Json.dll new file mode 100644 index 0000000..de21979 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Http.Json.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Http.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Http.dll new file mode 100644 index 0000000..6a10eb5 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Http.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.HttpListener.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.HttpListener.dll new file mode 100644 index 0000000..4eab574 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.HttpListener.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Mail.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Mail.dll new file mode 100644 index 0000000..5b2e014 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Mail.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.NameResolution.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.NameResolution.dll new file mode 100644 index 0000000..00798b4 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.NameResolution.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.NetworkInformation.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.NetworkInformation.dll new file mode 100644 index 0000000..3e90429 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.NetworkInformation.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Ping.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Ping.dll new file mode 100644 index 0000000..34ec01f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Ping.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Primitives.dll new file mode 100644 index 0000000..a49bbe7 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Quic.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Quic.dll new file mode 100644 index 0000000..1a5ce12 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Quic.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Requests.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Requests.dll new file mode 100644 index 0000000..2d32814 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Requests.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Security.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Security.dll new file mode 100644 index 0000000..e90937d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Security.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.ServicePoint.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.ServicePoint.dll new file mode 100644 index 0000000..1c0461f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.ServicePoint.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.Sockets.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.Sockets.dll new file mode 100644 index 0000000..4d62afa Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.Sockets.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.WebClient.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.WebClient.dll new file mode 100644 index 0000000..5380f2d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.WebClient.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.WebHeaderCollection.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.WebHeaderCollection.dll new file mode 100644 index 0000000..58f389c Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.WebHeaderCollection.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.WebProxy.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.WebProxy.dll new file mode 100644 index 0000000..4a87a44 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.WebProxy.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.WebSockets.Client.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.WebSockets.Client.dll new file mode 100644 index 0000000..6879697 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.WebSockets.Client.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.WebSockets.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.WebSockets.dll new file mode 100644 index 0000000..17f3310 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.WebSockets.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Net.dll b/publish/easyTrace-win-x64-pdf-template/System.Net.dll new file mode 100644 index 0000000..50e06c6 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Net.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Numerics.Vectors.dll b/publish/easyTrace-win-x64-pdf-template/System.Numerics.Vectors.dll new file mode 100644 index 0000000..1b33e15 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Numerics.Vectors.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Numerics.dll b/publish/easyTrace-win-x64-pdf-template/System.Numerics.dll new file mode 100644 index 0000000..a34d085 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Numerics.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ObjectModel.dll b/publish/easyTrace-win-x64-pdf-template/System.ObjectModel.dll new file mode 100644 index 0000000..a430c6a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ObjectModel.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Private.CoreLib.dll b/publish/easyTrace-win-x64-pdf-template/System.Private.CoreLib.dll new file mode 100644 index 0000000..ba26a43 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Private.CoreLib.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Private.DataContractSerialization.dll b/publish/easyTrace-win-x64-pdf-template/System.Private.DataContractSerialization.dll new file mode 100644 index 0000000..96e9a73 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Private.DataContractSerialization.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Private.Uri.dll b/publish/easyTrace-win-x64-pdf-template/System.Private.Uri.dll new file mode 100644 index 0000000..4346c54 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Private.Uri.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Private.Xml.Linq.dll b/publish/easyTrace-win-x64-pdf-template/System.Private.Xml.Linq.dll new file mode 100644 index 0000000..0890dcb Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Private.Xml.Linq.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Private.Xml.dll b/publish/easyTrace-win-x64-pdf-template/System.Private.Xml.dll new file mode 100644 index 0000000..598bf06 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Private.Xml.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.DispatchProxy.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.DispatchProxy.dll new file mode 100644 index 0000000..72650cc Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.DispatchProxy.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.ILGeneration.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 0000000..2d36784 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.ILGeneration.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.Lightweight.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 0000000..f0c382f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.Lightweight.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.dll new file mode 100644 index 0000000..7aa93ea Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Emit.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.Extensions.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Extensions.dll new file mode 100644 index 0000000..3a9c36e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.Metadata.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Metadata.dll new file mode 100644 index 0000000..7320d81 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Metadata.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Primitives.dll new file mode 100644 index 0000000..030f2ee Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.TypeExtensions.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.TypeExtensions.dll new file mode 100644 index 0000000..0ea1496 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.TypeExtensions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Reflection.dll b/publish/easyTrace-win-x64-pdf-template/System.Reflection.dll new file mode 100644 index 0000000..bd671b6 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Reflection.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Resources.Reader.dll b/publish/easyTrace-win-x64-pdf-template/System.Resources.Reader.dll new file mode 100644 index 0000000..097298b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Resources.Reader.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Resources.ResourceManager.dll b/publish/easyTrace-win-x64-pdf-template/System.Resources.ResourceManager.dll new file mode 100644 index 0000000..d3c7469 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Resources.ResourceManager.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Resources.Writer.dll b/publish/easyTrace-win-x64-pdf-template/System.Resources.Writer.dll new file mode 100644 index 0000000..bd5c43e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Resources.Writer.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.CompilerServices.Unsafe.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..52de463 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.CompilerServices.VisualC.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 0000000..27c1711 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Extensions.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Extensions.dll new file mode 100644 index 0000000..67608e0 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Handles.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Handles.dll new file mode 100644 index 0000000..60f54e4 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Handles.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.JavaScript.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.JavaScript.dll new file mode 100644 index 0000000..3d923be Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.JavaScript.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.RuntimeInformation.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 0000000..0ad4630 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.dll new file mode 100644 index 0000000..12411c8 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.InteropServices.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Intrinsics.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Intrinsics.dll new file mode 100644 index 0000000..e34702e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Intrinsics.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Loader.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Loader.dll new file mode 100644 index 0000000..2f5d69b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Loader.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Numerics.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Numerics.dll new file mode 100644 index 0000000..e13947a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Numerics.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Formatters.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 0000000..4a870c4 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Formatters.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Json.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Json.dll new file mode 100644 index 0000000..433f67f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Json.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 0000000..e460746 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Xml.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Xml.dll new file mode 100644 index 0000000..9f50b84 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.Xml.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.dll new file mode 100644 index 0000000..cdf1e11 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.Serialization.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Runtime.dll b/publish/easyTrace-win-x64-pdf-template/System.Runtime.dll new file mode 100644 index 0000000..a3b64a9 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Runtime.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.AccessControl.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.AccessControl.dll new file mode 100644 index 0000000..f2e6343 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Claims.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Claims.dll new file mode 100644 index 0000000..16647a0 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Claims.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Algorithms.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..792ee68 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Algorithms.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Cng.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Cng.dll new file mode 100644 index 0000000..8a895eb Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Cng.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Csp.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Csp.dll new file mode 100644 index 0000000..c53e9f4 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Csp.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Encoding.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..b319c3a Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Encoding.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.OpenSsl.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 0000000..f0e2ad2 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.OpenSsl.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Primitives.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..ec37b77 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.Primitives.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.X509Certificates.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..512766e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.X509Certificates.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.dll new file mode 100644 index 0000000..7196051 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Cryptography.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Principal.Windows.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..0c1c464 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Principal.Windows.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.Principal.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.Principal.dll new file mode 100644 index 0000000..72a1682 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.Principal.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.SecureString.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.SecureString.dll new file mode 100644 index 0000000..5483611 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.SecureString.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Security.dll b/publish/easyTrace-win-x64-pdf-template/System.Security.dll new file mode 100644 index 0000000..ad58983 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Security.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ServiceModel.Web.dll b/publish/easyTrace-win-x64-pdf-template/System.ServiceModel.Web.dll new file mode 100644 index 0000000..02916cc Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ServiceModel.Web.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ServiceProcess.dll b/publish/easyTrace-win-x64-pdf-template/System.ServiceProcess.dll new file mode 100644 index 0000000..9fc9563 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ServiceProcess.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.CodePages.dll b/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..c83198c Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.CodePages.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.Extensions.dll b/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.Extensions.dll new file mode 100644 index 0000000..25ed707 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.dll b/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.dll new file mode 100644 index 0000000..3a72c9d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Text.Encoding.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Text.Encodings.Web.dll b/publish/easyTrace-win-x64-pdf-template/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..ff34dfe Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Text.Encodings.Web.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Text.Json.dll b/publish/easyTrace-win-x64-pdf-template/System.Text.Json.dll new file mode 100644 index 0000000..1ca0f81 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Text.Json.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Text.RegularExpressions.dll b/publish/easyTrace-win-x64-pdf-template/System.Text.RegularExpressions.dll new file mode 100644 index 0000000..91629a7 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Text.RegularExpressions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Channels.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Channels.dll new file mode 100644 index 0000000..79fad24 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Channels.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Overlapped.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Overlapped.dll new file mode 100644 index 0000000..2b0e30f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Overlapped.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Dataflow.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 0000000..133c3f8 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Dataflow.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Extensions.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..c3b9a1d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Extensions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Parallel.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Parallel.dll new file mode 100644 index 0000000..4a6ec86 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.Parallel.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.dll new file mode 100644 index 0000000..7f813df Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Tasks.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Thread.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Thread.dll new file mode 100644 index 0000000..baa0ed7 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Thread.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.ThreadPool.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.ThreadPool.dll new file mode 100644 index 0000000..c34b61d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.ThreadPool.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.Timer.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.Timer.dll new file mode 100644 index 0000000..cc547d4 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.Timer.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Threading.dll b/publish/easyTrace-win-x64-pdf-template/System.Threading.dll new file mode 100644 index 0000000..a4aa7a3 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Threading.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Transactions.Local.dll b/publish/easyTrace-win-x64-pdf-template/System.Transactions.Local.dll new file mode 100644 index 0000000..0222cd5 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Transactions.Local.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Transactions.dll b/publish/easyTrace-win-x64-pdf-template/System.Transactions.dll new file mode 100644 index 0000000..93fc0b1 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Transactions.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.ValueTuple.dll b/publish/easyTrace-win-x64-pdf-template/System.ValueTuple.dll new file mode 100644 index 0000000..1694c3d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.ValueTuple.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Web.HttpUtility.dll b/publish/easyTrace-win-x64-pdf-template/System.Web.HttpUtility.dll new file mode 100644 index 0000000..0a3d655 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Web.HttpUtility.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Web.dll b/publish/easyTrace-win-x64-pdf-template/System.Web.dll new file mode 100644 index 0000000..7118fef Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Web.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Windows.dll b/publish/easyTrace-win-x64-pdf-template/System.Windows.dll new file mode 100644 index 0000000..4d6a203 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Windows.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.Linq.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.Linq.dll new file mode 100644 index 0000000..da0a5e5 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.Linq.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.ReaderWriter.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..3bbff90 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.ReaderWriter.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.Serialization.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.Serialization.dll new file mode 100644 index 0000000..40de827 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.Serialization.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.XDocument.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.XDocument.dll new file mode 100644 index 0000000..4d2508e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.XDocument.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.XPath.XDocument.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..127cb90 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.XPath.XDocument.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.XPath.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.XPath.dll new file mode 100644 index 0000000..95985c9 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.XPath.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.XmlDocument.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..d312eec Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.XmlDocument.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.XmlSerializer.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.XmlSerializer.dll new file mode 100644 index 0000000..b39ebea Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.XmlSerializer.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.Xml.dll b/publish/easyTrace-win-x64-pdf-template/System.Xml.dll new file mode 100644 index 0000000..883b80d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.Xml.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/System.dll b/publish/easyTrace-win-x64-pdf-template/System.dll new file mode 100644 index 0000000..0666ad0 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/System.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/Tmds.DBus.Protocol.dll b/publish/easyTrace-win-x64-pdf-template/Tmds.DBus.Protocol.dll new file mode 100644 index 0000000..8f42654 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/Tmds.DBus.Protocol.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/TraceCad.Core.dll b/publish/easyTrace-win-x64-pdf-template/TraceCad.Core.dll new file mode 100644 index 0000000..a2c4f63 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/TraceCad.Core.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/TraceCad.Core.pdb b/publish/easyTrace-win-x64-pdf-template/TraceCad.Core.pdb new file mode 100644 index 0000000..3c0d0af Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/TraceCad.Core.pdb differ diff --git a/publish/easyTrace-win-x64-pdf-template/TraceCad.Dxf.dll b/publish/easyTrace-win-x64-pdf-template/TraceCad.Dxf.dll new file mode 100644 index 0000000..01381f3 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/TraceCad.Dxf.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/TraceCad.Dxf.pdb b/publish/easyTrace-win-x64-pdf-template/TraceCad.Dxf.pdb new file mode 100644 index 0000000..ab0612d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/TraceCad.Dxf.pdb differ diff --git a/publish/easyTrace-win-x64-pdf-template/TraceCad.Vision.dll b/publish/easyTrace-win-x64-pdf-template/TraceCad.Vision.dll new file mode 100644 index 0000000..74338f2 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/TraceCad.Vision.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/TraceCad.Vision.pdb b/publish/easyTrace-win-x64-pdf-template/TraceCad.Vision.pdb new file mode 100644 index 0000000..a6926d3 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/TraceCad.Vision.pdb differ diff --git a/publish/easyTrace-win-x64-pdf-template/WindowsBase.dll b/publish/easyTrace-win-x64-pdf-template/WindowsBase.dll new file mode 100644 index 0000000..2101a65 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/WindowsBase.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/av_libglesv2.dll b/publish/easyTrace-win-x64-pdf-template/av_libglesv2.dll new file mode 100644 index 0000000..c327f9e Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/av_libglesv2.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/clretwrc.dll b/publish/easyTrace-win-x64-pdf-template/clretwrc.dll new file mode 100644 index 0000000..16c5dd9 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/clretwrc.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/clrgc.dll b/publish/easyTrace-win-x64-pdf-template/clrgc.dll new file mode 100644 index 0000000..bba81c6 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/clrgc.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/clrjit.dll b/publish/easyTrace-win-x64-pdf-template/clrjit.dll new file mode 100644 index 0000000..0f3cc4b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/clrjit.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/coreclr.dll b/publish/easyTrace-win-x64-pdf-template/coreclr.dll new file mode 100644 index 0000000..dbf2e6d Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/coreclr.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/createdump.exe b/publish/easyTrace-win-x64-pdf-template/createdump.exe new file mode 100644 index 0000000..dcfc730 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/createdump.exe differ diff --git a/publish/easyTrace-win-x64-pdf-template/easyTrace.deps.json b/publish/easyTrace-win-x64-pdf-template/easyTrace.deps.json new file mode 100644 index 0000000..39dfe73 --- /dev/null +++ b/publish/easyTrace-win-x64-pdf-template/easyTrace.deps.json @@ -0,0 +1,1196 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0/win-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": {}, + ".NETCoreApp,Version=v8.0/win-x64": { + "easyTrace/1.0.0": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Desktop": "11.2.3", + "Avalonia.Themes.Fluent": "11.2.3", + "TraceCad.Core": "1.0.0", + "TraceCad.Dxf": "1.0.0", + "TraceCad.Vision": "1.0.0", + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.26" + }, + "runtime": { + "easyTrace.dll": {} + } + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "runtime": { + "Microsoft.CSharp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.2626.16921" + }, + "Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Registry.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.AppContext.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Buffers.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Concurrent.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Immutable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.NonGeneric.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Specialized.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Annotations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Console.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.DataSetExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Contracts.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Debug.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Process.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tools.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tracing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Dynamic.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Asn1.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Tar.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Calendars.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.Brotli.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.IsolatedStorage.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Expressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Queryable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.HttpListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Mail.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NameResolution.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NetworkInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Ping.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Quic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Requests.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Security.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.ServicePoint.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Sockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.Client.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.Vectors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ObjectModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.CoreLib.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.DataContractSerialization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Uri.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Metadata.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Reader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.ResourceManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Writer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Handles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.JavaScript.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Intrinsics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Loader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Numerics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Claims.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.Windows.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.SecureString.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encodings.Web.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.RegularExpressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Channels.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Overlapped.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Thread.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.ThreadPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Timer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.Local.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ValueTuple.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.HttpUtility.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.ReaderWriter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlSerializer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "8.0.2626.16921" + } + }, + "native": { + "Microsoft.DiaSymReader.Native.amd64.dll": { + "fileVersion": "14.42.34436.0" + }, + "System.IO.Compression.Native.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clretwrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrgc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrjit.dll": { + "fileVersion": "8.0.2626.16921" + }, + "coreclr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "createdump.exe": { + "fileVersion": "8.0.2626.16921" + }, + "hostfxr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "hostpolicy.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore_amd64_amd64_8.0.2626.16921.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordbi.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscorrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "msquic.dll": { + "fileVersion": "2.4.17.0" + } + } + }, + "Avalonia/11.2.3": { + "dependencies": { + "Avalonia.Remote.Protocol": "11.2.3", + "MicroCom.Runtime": "0.11.0" + }, + "runtime": { + "lib/net8.0/Avalonia.Base.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Controls.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.DesignerSupport.dll": { + "assemblyVersion": "0.7.0.0", + "fileVersion": "0.7.0.0" + }, + "lib/net8.0/Avalonia.Dialogs.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.Xaml.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Metal.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.MicroCom.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.OpenGL.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Vulkan.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "native": { + "runtimes/win-x64/native/av_libglesv2.dll": { + "fileVersion": "2.1.22045.0" + } + } + }, + "Avalonia.Desktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Native": "11.2.3", + "Avalonia.Skia": "11.2.3", + "Avalonia.Win32": "11.2.3", + "Avalonia.X11": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Desktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.FreeDesktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Tmds.DBus.Protocol": "0.20.0" + }, + "runtime": { + "lib/net8.0/Avalonia.FreeDesktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Native/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Native.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Remote.Protocol/11.2.3": { + "runtime": { + "lib/net8.0/Avalonia.Remote.Protocol.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Skia/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "HarfBuzzSharp": "7.3.0.3", + "SkiaSharp": "2.88.9" + }, + "runtime": { + "lib/net8.0/Avalonia.Skia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Themes.Fluent/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Themes.Fluent.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Win32/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Angle.Windows.Natives": "2.1.22045.20230930" + }, + "runtime": { + "lib/net8.0/Avalonia.Win32.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.X11/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.FreeDesktop": "11.2.3", + "Avalonia.Skia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.X11.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "HarfBuzzSharp/7.3.0.3": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "7.3.0.3" + }, + "runtime": { + "lib/net6.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "7.3.0.3" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "native": { + "runtimes/win-x64/native/libHarfBuzzSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "MicroCom.Runtime/0.11.0": { + "runtime": { + "lib/net5.0/MicroCom.Runtime.dll": { + "assemblyVersion": "0.11.0.0", + "fileVersion": "0.11.0.0" + } + } + }, + "netDxf/2022.11.2": { + "runtime": { + "lib/net6.0/netDxf.dll": { + "assemblyVersion": "2022.11.2.0", + "fileVersion": "2022.11.2.0" + } + } + }, + "OpenCvSharp4/4.10.0.20241108": { + "runtime": { + "lib/net6.0/OpenCvSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "OpenCvSharp4.runtime.win/4.10.0.20241108": { + "native": { + "runtimes/win-x64/native/OpenCvSharpExtern.dll": { + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/opencv_videoio_ffmpeg4100_64.dll": { + "fileVersion": "2024.5.0.0" + } + } + }, + "SkiaSharp/2.88.9": { + "dependencies": { + "SkiaSharp.NativeAssets.Win32": "2.88.9" + }, + "runtime": { + "lib/net6.0/SkiaSharp.dll": { + "assemblyVersion": "2.88.0.0", + "fileVersion": "2.88.9.0" + } + } + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "native": { + "runtimes/win-x64/native/libSkiaSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Tmds.DBus.Protocol/0.20.0": { + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "runtime": { + "lib/net8.0/Tmds.DBus.Protocol.dll": { + "assemblyVersion": "0.20.0.0", + "fileVersion": "0.20.0.0" + } + } + }, + "TraceCad.Core/1.0.0": { + "runtime": { + "TraceCad.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "TraceCad.Dxf/1.0.0": { + "dependencies": { + "TraceCad.Core": "1.0.0", + "netDxf": "2022.11.2" + }, + "runtime": { + "TraceCad.Dxf.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "TraceCad.Vision/1.0.0": { + "dependencies": { + "OpenCvSharp4": "4.10.0.20241108", + "OpenCvSharp4.runtime.win": "4.10.0.20241108", + "TraceCad.Core": "1.0.0" + }, + "runtime": { + "TraceCad.Vision.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "easyTrace/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "Avalonia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pD6woFAUfGcyEvMmrpctntU4jv4fT8752pfx1J5iRORVX3Ob0oQi8PWo0TXVaAJZiSfH0cdKTeKx0w0DzD0/mg==", + "path": "avalonia/11.2.3", + "hashPath": "avalonia.11.2.3.nupkg.sha512" + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Bo3qOhKC1b84BIhiogndMdAzB3UrrESKK7hS769f5HWeoMw/pcd42US5KFYW2JJ4ZSTrXnP8mXwLTMzh+S+9Lg==", + "path": "avalonia.angle.windows.natives/2.1.22045.20230930", + "hashPath": "avalonia.angle.windows.natives.2.1.22045.20230930.nupkg.sha512" + }, + "Avalonia.Desktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dX3zfgWplLqcgwQJLeC2ciqxE/GM3iw9HUNI22c8KgAAWMWl52NWCmjW228EPZG+4YbHwq8T40YARO2aQF+yqA==", + "path": "avalonia.desktop/11.2.3", + "hashPath": "avalonia.desktop.11.2.3.nupkg.sha512" + }, + "Avalonia.FreeDesktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BOivcAE3yYFKyYg5CztnTeIFX7ZHNaFiMrQ9WO4MgKyMwbPdH6jy6Mpfu+LY5FiYpleZdmXLJXZzzPon52DUVg==", + "path": "avalonia.freedesktop/11.2.3", + "hashPath": "avalonia.freedesktop.11.2.3.nupkg.sha512" + }, + "Avalonia.Native/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yW9IGfa7kBuEcYP4ni7nGYNI2HjqaBg+cPJXZeiXf8RFptmluMv75hMyyq8FYIZwVcZIEcwEgff81a7b4aNTVQ==", + "path": "avalonia.native/11.2.3", + "hashPath": "avalonia.native.11.2.3.nupkg.sha512" + }, + "Avalonia.Remote.Protocol/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6V0aNtld48WmO8tAlWwlRlUmXYcOWv+1eJUSl1ETF+1blUe5yhcSmuWarPprO0hDk8Ta6wGfdfcrnVl2gITYcA==", + "path": "avalonia.remote.protocol/11.2.3", + "hashPath": "avalonia.remote.protocol.11.2.3.nupkg.sha512" + }, + "Avalonia.Skia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jpzqkkmhzz6DSUy5dIw5T43MoHCdb05pmTvnsmHrbipA8mafI8RrO7tVnv1+ilFNV4516G9/kOpXjTLKjnnYrA==", + "path": "avalonia.skia/11.2.3", + "hashPath": "avalonia.skia.11.2.3.nupkg.sha512" + }, + "Avalonia.Themes.Fluent/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gPJWBWaeocvRhSrB977xsfH0Ame14PxRMIgEfezi2bTjNJ43JWzJtALgDfDZYMpZPDdeWU/mwDigR/kD+rJtlw==", + "path": "avalonia.themes.fluent/11.2.3", + "hashPath": "avalonia.themes.fluent.11.2.3.nupkg.sha512" + }, + "Avalonia.Win32/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VwdaOHvIowTSM2umeXOFIoUx4UydCXkXracwLQZaMlsWXCTJ+WwtlAIv0ZBCwQccAK+WELrdRXucvWWN8+sJCQ==", + "path": "avalonia.win32/11.2.3", + "hashPath": "avalonia.win32.11.2.3.nupkg.sha512" + }, + "Avalonia.X11/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0mr3zu5NEv2cTLsANyc3w51ctiLTWQia6TrlDdWCjfMx2k0VtCzgGBieByPgUl4iNWEDzgBEKek1EwJcGdJ+7g==", + "path": "avalonia.x11/11.2.3", + "hashPath": "avalonia.x11.11.2.3.nupkg.sha512" + }, + "HarfBuzzSharp/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Hq+5+gx10coOvuRgB13KBwiWxJq1QeYuhtVLbA01ZCWaugOnolUahF44KvrQTUUHDNk/C7HB6SMaebsZeOdhgg==", + "path": "harfbuzzsharp/7.3.0.3", + "hashPath": "harfbuzzsharp.7.3.0.3.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RPxRXD16KtSs8Yxr2RK9Qs7AwyN9MlpqZIYs0AvfaJwl7RAtVhC0+u2f2SKwX0uMYYd3O98Z+OBA1sj6aWVKQA==", + "path": "harfbuzzsharp.nativeassets.win32/7.3.0.3", + "hashPath": "harfbuzzsharp.nativeassets.win32.7.3.0.3.nupkg.sha512" + }, + "MicroCom.Runtime/0.11.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MEnrZ3UIiH40hjzMDsxrTyi8dtqB5ziv3iBeeU4bXsL/7NLSal9F1lZKpK+tfBRnUoDSdtcW3KufE4yhATOMCA==", + "path": "microcom.runtime/0.11.0", + "hashPath": "microcom.runtime.0.11.0.nupkg.sha512" + }, + "netDxf/2022.11.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bNiH5EoaRiBsPIQWAVx/Y2PyOUkKaZ89dIHfiJ++B9Kjyph/XevVx11nwAA6oiQ14Kj5pRchY3XfrRnZl6LwlQ==", + "path": "netdxf/2022.11.2", + "hashPath": "netdxf.2022.11.2.nupkg.sha512" + }, + "OpenCvSharp4/4.10.0.20241108": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4Lw57NQzOaR0fi9et7GMWB1rpdGzGuNgXHXy45Gltvt8SizQLOGufUonNF9Z+9mo3dcwGC/mL4w5NBgJCqZdHQ==", + "path": "opencvsharp4/4.10.0.20241108", + "hashPath": "opencvsharp4.4.10.0.20241108.nupkg.sha512" + }, + "OpenCvSharp4.runtime.win/4.10.0.20241108": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0ae2dwel83tqKlAs45D3KYncoJHRzj1ArEESa6wz7FS3tYu37JDIb5yoMIZPzlkx3Gx2S1BjUrClfXbBHmVh5g==", + "path": "opencvsharp4.runtime.win/4.10.0.20241108", + "hashPath": "opencvsharp4.runtime.win.4.10.0.20241108.nupkg.sha512" + }, + "SkiaSharp/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3MD5VHjXXieSHCleRLuaTXmL2pD0mB7CcOB1x2kA1I4bhptf4e3R27iM93264ZYuAq6mkUyX5XbcxnZvMJYc1Q==", + "path": "skiasharp/2.88.9", + "hashPath": "skiasharp.2.88.9.nupkg.sha512" + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wb2kYgU7iy84nQLYZwMeJXixvK++GoIuECjU4ECaUKNuflyRlJKyiRhN1MAHswvlvzuvkrjRWlK0Za6+kYQK7w==", + "path": "skiasharp.nativeassets.win32/2.88.9", + "hashPath": "skiasharp.nativeassets.win32.2.88.9.nupkg.sha512" + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "path": "system.io.pipelines/8.0.0", + "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" + }, + "Tmds.DBus.Protocol/0.20.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2gkt2kuYPhDKd8gtl34jZSJOnn4nRJfFngCDcTZT/uySbK++ua0YQx2418l9Rn1Y4dE5XNq6zG9ZsE5ltLlNNw==", + "path": "tmds.dbus.protocol/0.20.0", + "hashPath": "tmds.dbus.protocol.0.20.0.nupkg.sha512" + }, + "TraceCad.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "TraceCad.Dxf/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "TraceCad.Vision/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + }, + "runtimes": { + "win-x64": [ + "win", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/publish/easyTrace-win-x64-pdf-template/easyTrace.dll b/publish/easyTrace-win-x64-pdf-template/easyTrace.dll new file mode 100644 index 0000000..ce74ac0 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/easyTrace.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/easyTrace.exe b/publish/easyTrace-win-x64-pdf-template/easyTrace.exe new file mode 100644 index 0000000..c9dbc0b Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/easyTrace.exe differ diff --git a/publish/easyTrace-win-x64-pdf-template/easyTrace.pdb b/publish/easyTrace-win-x64-pdf-template/easyTrace.pdb new file mode 100644 index 0000000..f22c36f Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/easyTrace.pdb differ diff --git a/publish/easyTrace-win-x64-pdf-template/easyTrace.runtimeconfig.json b/publish/easyTrace-win-x64-pdf-template/easyTrace.runtimeconfig.json new file mode 100644 index 0000000..3c8ca56 --- /dev/null +++ b/publish/easyTrace-win-x64-pdf-template/easyTrace.runtimeconfig.json @@ -0,0 +1,15 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "includedFrameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.26" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/publish/easyTrace-win-x64-pdf-template/hostfxr.dll b/publish/easyTrace-win-x64-pdf-template/hostfxr.dll new file mode 100644 index 0000000..0b8fde3 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/hostfxr.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/hostpolicy.dll b/publish/easyTrace-win-x64-pdf-template/hostpolicy.dll new file mode 100644 index 0000000..8929cfa Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/hostpolicy.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/libHarfBuzzSharp.dll b/publish/easyTrace-win-x64-pdf-template/libHarfBuzzSharp.dll new file mode 100644 index 0000000..01deb29 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/libHarfBuzzSharp.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/libSkiaSharp.dll b/publish/easyTrace-win-x64-pdf-template/libSkiaSharp.dll new file mode 100644 index 0000000..3f8c6f2 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/libSkiaSharp.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/mscordaccore.dll b/publish/easyTrace-win-x64-pdf-template/mscordaccore.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/mscordaccore.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/mscordaccore_amd64_amd64_8.0.2626.16921.dll b/publish/easyTrace-win-x64-pdf-template/mscordaccore_amd64_amd64_8.0.2626.16921.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/mscordaccore_amd64_amd64_8.0.2626.16921.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/mscordbi.dll b/publish/easyTrace-win-x64-pdf-template/mscordbi.dll new file mode 100644 index 0000000..ee7b2d3 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/mscordbi.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/mscorlib.dll b/publish/easyTrace-win-x64-pdf-template/mscorlib.dll new file mode 100644 index 0000000..dacea10 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/mscorlib.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/mscorrc.dll b/publish/easyTrace-win-x64-pdf-template/mscorrc.dll new file mode 100644 index 0000000..e7ac1e0 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/mscorrc.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/msquic.dll b/publish/easyTrace-win-x64-pdf-template/msquic.dll new file mode 100644 index 0000000..0d619d1 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/msquic.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/netDxf.dll b/publish/easyTrace-win-x64-pdf-template/netDxf.dll new file mode 100644 index 0000000..fa45826 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/netDxf.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/netstandard.dll b/publish/easyTrace-win-x64-pdf-template/netstandard.dll new file mode 100644 index 0000000..de2f9e5 Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/netstandard.dll differ diff --git a/publish/easyTrace-win-x64-pdf-template/opencv_videoio_ffmpeg4100_64.dll b/publish/easyTrace-win-x64-pdf-template/opencv_videoio_ffmpeg4100_64.dll new file mode 100644 index 0000000..b880c1c Binary files /dev/null and b/publish/easyTrace-win-x64-pdf-template/opencv_videoio_ffmpeg4100_64.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Base.dll b/publish/easyTrace-win-x64/Avalonia.Base.dll new file mode 100644 index 0000000..1090d48 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Base.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Controls.dll b/publish/easyTrace-win-x64/Avalonia.Controls.dll new file mode 100644 index 0000000..fc18f9d Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Controls.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.DesignerSupport.dll b/publish/easyTrace-win-x64/Avalonia.DesignerSupport.dll new file mode 100644 index 0000000..fe28a01 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.DesignerSupport.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Desktop.dll b/publish/easyTrace-win-x64/Avalonia.Desktop.dll new file mode 100644 index 0000000..4559516 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Desktop.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Dialogs.dll b/publish/easyTrace-win-x64/Avalonia.Dialogs.dll new file mode 100644 index 0000000..dcdeb0e Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Dialogs.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.FreeDesktop.dll b/publish/easyTrace-win-x64/Avalonia.FreeDesktop.dll new file mode 100644 index 0000000..4ebb713 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.FreeDesktop.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Markup.Xaml.dll b/publish/easyTrace-win-x64/Avalonia.Markup.Xaml.dll new file mode 100644 index 0000000..6ad7500 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Markup.Xaml.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Markup.dll b/publish/easyTrace-win-x64/Avalonia.Markup.dll new file mode 100644 index 0000000..d9fa96a Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Markup.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Metal.dll b/publish/easyTrace-win-x64/Avalonia.Metal.dll new file mode 100644 index 0000000..481bc23 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Metal.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.MicroCom.dll b/publish/easyTrace-win-x64/Avalonia.MicroCom.dll new file mode 100644 index 0000000..b430aa7 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.MicroCom.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Native.dll b/publish/easyTrace-win-x64/Avalonia.Native.dll new file mode 100644 index 0000000..d7a6e99 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Native.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.OpenGL.dll b/publish/easyTrace-win-x64/Avalonia.OpenGL.dll new file mode 100644 index 0000000..93c0ab5 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.OpenGL.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Remote.Protocol.dll b/publish/easyTrace-win-x64/Avalonia.Remote.Protocol.dll new file mode 100644 index 0000000..9272f5a Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Remote.Protocol.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Skia.dll b/publish/easyTrace-win-x64/Avalonia.Skia.dll new file mode 100644 index 0000000..5daa590 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Skia.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Themes.Fluent.dll b/publish/easyTrace-win-x64/Avalonia.Themes.Fluent.dll new file mode 100644 index 0000000..cae081e Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Themes.Fluent.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Vulkan.dll b/publish/easyTrace-win-x64/Avalonia.Vulkan.dll new file mode 100644 index 0000000..cee9d5b Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Vulkan.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.Win32.dll b/publish/easyTrace-win-x64/Avalonia.Win32.dll new file mode 100644 index 0000000..c63fbe5 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.Win32.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.X11.dll b/publish/easyTrace-win-x64/Avalonia.X11.dll new file mode 100644 index 0000000..f463e54 Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.X11.dll differ diff --git a/publish/easyTrace-win-x64/Avalonia.dll b/publish/easyTrace-win-x64/Avalonia.dll new file mode 100644 index 0000000..f10fc6a Binary files /dev/null and b/publish/easyTrace-win-x64/Avalonia.dll differ diff --git a/publish/easyTrace-win-x64/HarfBuzzSharp.dll b/publish/easyTrace-win-x64/HarfBuzzSharp.dll new file mode 100644 index 0000000..f4e2c2e Binary files /dev/null and b/publish/easyTrace-win-x64/HarfBuzzSharp.dll differ diff --git a/publish/easyTrace-win-x64/MicroCom.Runtime.dll b/publish/easyTrace-win-x64/MicroCom.Runtime.dll new file mode 100644 index 0000000..f6cf008 Binary files /dev/null and b/publish/easyTrace-win-x64/MicroCom.Runtime.dll differ diff --git a/publish/easyTrace-win-x64/Microsoft.CSharp.dll b/publish/easyTrace-win-x64/Microsoft.CSharp.dll new file mode 100644 index 0000000..f72860f Binary files /dev/null and b/publish/easyTrace-win-x64/Microsoft.CSharp.dll differ diff --git a/publish/easyTrace-win-x64/Microsoft.DiaSymReader.Native.amd64.dll b/publish/easyTrace-win-x64/Microsoft.DiaSymReader.Native.amd64.dll new file mode 100644 index 0000000..92b355b Binary files /dev/null and b/publish/easyTrace-win-x64/Microsoft.DiaSymReader.Native.amd64.dll differ diff --git a/publish/easyTrace-win-x64/Microsoft.VisualBasic.Core.dll b/publish/easyTrace-win-x64/Microsoft.VisualBasic.Core.dll new file mode 100644 index 0000000..84ca190 Binary files /dev/null and b/publish/easyTrace-win-x64/Microsoft.VisualBasic.Core.dll differ diff --git a/publish/easyTrace-win-x64/Microsoft.VisualBasic.dll b/publish/easyTrace-win-x64/Microsoft.VisualBasic.dll new file mode 100644 index 0000000..b945ad6 Binary files /dev/null and b/publish/easyTrace-win-x64/Microsoft.VisualBasic.dll differ diff --git a/publish/easyTrace-win-x64/Microsoft.Win32.Primitives.dll b/publish/easyTrace-win-x64/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..aa166a8 Binary files /dev/null and b/publish/easyTrace-win-x64/Microsoft.Win32.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/Microsoft.Win32.Registry.dll b/publish/easyTrace-win-x64/Microsoft.Win32.Registry.dll new file mode 100644 index 0000000..8320ca8 Binary files /dev/null and b/publish/easyTrace-win-x64/Microsoft.Win32.Registry.dll differ diff --git a/publish/easyTrace-win-x64/OpenCvSharp.dll b/publish/easyTrace-win-x64/OpenCvSharp.dll new file mode 100644 index 0000000..854eaad Binary files /dev/null and b/publish/easyTrace-win-x64/OpenCvSharp.dll differ diff --git a/publish/easyTrace-win-x64/OpenCvSharpExtern.dll b/publish/easyTrace-win-x64/OpenCvSharpExtern.dll new file mode 100644 index 0000000..0946c33 Binary files /dev/null and b/publish/easyTrace-win-x64/OpenCvSharpExtern.dll differ diff --git a/publish/easyTrace-win-x64/SkiaSharp.dll b/publish/easyTrace-win-x64/SkiaSharp.dll new file mode 100644 index 0000000..5d7e9cd Binary files /dev/null and b/publish/easyTrace-win-x64/SkiaSharp.dll differ diff --git a/publish/easyTrace-win-x64/System.AppContext.dll b/publish/easyTrace-win-x64/System.AppContext.dll new file mode 100644 index 0000000..89866cc Binary files /dev/null and b/publish/easyTrace-win-x64/System.AppContext.dll differ diff --git a/publish/easyTrace-win-x64/System.Buffers.dll b/publish/easyTrace-win-x64/System.Buffers.dll new file mode 100644 index 0000000..fe58702 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Buffers.dll differ diff --git a/publish/easyTrace-win-x64/System.Collections.Concurrent.dll b/publish/easyTrace-win-x64/System.Collections.Concurrent.dll new file mode 100644 index 0000000..46182a1 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Collections.Concurrent.dll differ diff --git a/publish/easyTrace-win-x64/System.Collections.Immutable.dll b/publish/easyTrace-win-x64/System.Collections.Immutable.dll new file mode 100644 index 0000000..575b27e Binary files /dev/null and b/publish/easyTrace-win-x64/System.Collections.Immutable.dll differ diff --git a/publish/easyTrace-win-x64/System.Collections.NonGeneric.dll b/publish/easyTrace-win-x64/System.Collections.NonGeneric.dll new file mode 100644 index 0000000..81361a3 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Collections.NonGeneric.dll differ diff --git a/publish/easyTrace-win-x64/System.Collections.Specialized.dll b/publish/easyTrace-win-x64/System.Collections.Specialized.dll new file mode 100644 index 0000000..2ca2dbc Binary files /dev/null and b/publish/easyTrace-win-x64/System.Collections.Specialized.dll differ diff --git a/publish/easyTrace-win-x64/System.Collections.dll b/publish/easyTrace-win-x64/System.Collections.dll new file mode 100644 index 0000000..55ba95b Binary files /dev/null and b/publish/easyTrace-win-x64/System.Collections.dll differ diff --git a/publish/easyTrace-win-x64/System.ComponentModel.Annotations.dll b/publish/easyTrace-win-x64/System.ComponentModel.Annotations.dll new file mode 100644 index 0000000..7dd704d Binary files /dev/null and b/publish/easyTrace-win-x64/System.ComponentModel.Annotations.dll differ diff --git a/publish/easyTrace-win-x64/System.ComponentModel.DataAnnotations.dll b/publish/easyTrace-win-x64/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 0000000..c349ead Binary files /dev/null and b/publish/easyTrace-win-x64/System.ComponentModel.DataAnnotations.dll differ diff --git a/publish/easyTrace-win-x64/System.ComponentModel.EventBasedAsync.dll b/publish/easyTrace-win-x64/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 0000000..72e6dbe Binary files /dev/null and b/publish/easyTrace-win-x64/System.ComponentModel.EventBasedAsync.dll differ diff --git a/publish/easyTrace-win-x64/System.ComponentModel.Primitives.dll b/publish/easyTrace-win-x64/System.ComponentModel.Primitives.dll new file mode 100644 index 0000000..aa05b44 Binary files /dev/null and b/publish/easyTrace-win-x64/System.ComponentModel.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/System.ComponentModel.TypeConverter.dll b/publish/easyTrace-win-x64/System.ComponentModel.TypeConverter.dll new file mode 100644 index 0000000..145d53f Binary files /dev/null and b/publish/easyTrace-win-x64/System.ComponentModel.TypeConverter.dll differ diff --git a/publish/easyTrace-win-x64/System.ComponentModel.dll b/publish/easyTrace-win-x64/System.ComponentModel.dll new file mode 100644 index 0000000..c39bc4d Binary files /dev/null and b/publish/easyTrace-win-x64/System.ComponentModel.dll differ diff --git a/publish/easyTrace-win-x64/System.Configuration.dll b/publish/easyTrace-win-x64/System.Configuration.dll new file mode 100644 index 0000000..fe8ac7a Binary files /dev/null and b/publish/easyTrace-win-x64/System.Configuration.dll differ diff --git a/publish/easyTrace-win-x64/System.Console.dll b/publish/easyTrace-win-x64/System.Console.dll new file mode 100644 index 0000000..50ceecf Binary files /dev/null and b/publish/easyTrace-win-x64/System.Console.dll differ diff --git a/publish/easyTrace-win-x64/System.Core.dll b/publish/easyTrace-win-x64/System.Core.dll new file mode 100644 index 0000000..b3bc751 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Core.dll differ diff --git a/publish/easyTrace-win-x64/System.Data.Common.dll b/publish/easyTrace-win-x64/System.Data.Common.dll new file mode 100644 index 0000000..f307142 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Data.Common.dll differ diff --git a/publish/easyTrace-win-x64/System.Data.DataSetExtensions.dll b/publish/easyTrace-win-x64/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..89aa76e Binary files /dev/null and b/publish/easyTrace-win-x64/System.Data.DataSetExtensions.dll differ diff --git a/publish/easyTrace-win-x64/System.Data.dll b/publish/easyTrace-win-x64/System.Data.dll new file mode 100644 index 0000000..d557ffa Binary files /dev/null and b/publish/easyTrace-win-x64/System.Data.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.Contracts.dll b/publish/easyTrace-win-x64/System.Diagnostics.Contracts.dll new file mode 100644 index 0000000..0bb2553 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.Contracts.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.Debug.dll b/publish/easyTrace-win-x64/System.Diagnostics.Debug.dll new file mode 100644 index 0000000..060c9d1 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.Debug.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.DiagnosticSource.dll b/publish/easyTrace-win-x64/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 0000000..82e2278 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.DiagnosticSource.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.FileVersionInfo.dll b/publish/easyTrace-win-x64/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..1fdecbe Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.FileVersionInfo.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.Process.dll b/publish/easyTrace-win-x64/System.Diagnostics.Process.dll new file mode 100644 index 0000000..ebfc805 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.Process.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.StackTrace.dll b/publish/easyTrace-win-x64/System.Diagnostics.StackTrace.dll new file mode 100644 index 0000000..ada2c66 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.StackTrace.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.TextWriterTraceListener.dll b/publish/easyTrace-win-x64/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 0000000..b9d5570 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.Tools.dll b/publish/easyTrace-win-x64/System.Diagnostics.Tools.dll new file mode 100644 index 0000000..b1759fd Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.Tools.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.TraceSource.dll b/publish/easyTrace-win-x64/System.Diagnostics.TraceSource.dll new file mode 100644 index 0000000..a0b77ea Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.TraceSource.dll differ diff --git a/publish/easyTrace-win-x64/System.Diagnostics.Tracing.dll b/publish/easyTrace-win-x64/System.Diagnostics.Tracing.dll new file mode 100644 index 0000000..4084713 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Diagnostics.Tracing.dll differ diff --git a/publish/easyTrace-win-x64/System.Drawing.Primitives.dll b/publish/easyTrace-win-x64/System.Drawing.Primitives.dll new file mode 100644 index 0000000..0269f11 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Drawing.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/System.Drawing.dll b/publish/easyTrace-win-x64/System.Drawing.dll new file mode 100644 index 0000000..11502d0 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Drawing.dll differ diff --git a/publish/easyTrace-win-x64/System.Dynamic.Runtime.dll b/publish/easyTrace-win-x64/System.Dynamic.Runtime.dll new file mode 100644 index 0000000..96ad505 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Dynamic.Runtime.dll differ diff --git a/publish/easyTrace-win-x64/System.Formats.Asn1.dll b/publish/easyTrace-win-x64/System.Formats.Asn1.dll new file mode 100644 index 0000000..99877a8 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Formats.Asn1.dll differ diff --git a/publish/easyTrace-win-x64/System.Formats.Tar.dll b/publish/easyTrace-win-x64/System.Formats.Tar.dll new file mode 100644 index 0000000..217c589 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Formats.Tar.dll differ diff --git a/publish/easyTrace-win-x64/System.Globalization.Calendars.dll b/publish/easyTrace-win-x64/System.Globalization.Calendars.dll new file mode 100644 index 0000000..ffec271 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Globalization.Calendars.dll differ diff --git a/publish/easyTrace-win-x64/System.Globalization.Extensions.dll b/publish/easyTrace-win-x64/System.Globalization.Extensions.dll new file mode 100644 index 0000000..fa423ec Binary files /dev/null and b/publish/easyTrace-win-x64/System.Globalization.Extensions.dll differ diff --git a/publish/easyTrace-win-x64/System.Globalization.dll b/publish/easyTrace-win-x64/System.Globalization.dll new file mode 100644 index 0000000..d336db8 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Globalization.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Compression.Brotli.dll b/publish/easyTrace-win-x64/System.IO.Compression.Brotli.dll new file mode 100644 index 0000000..15822a3 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Compression.Brotli.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Compression.FileSystem.dll b/publish/easyTrace-win-x64/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..563c9ee Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Compression.FileSystem.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Compression.Native.dll b/publish/easyTrace-win-x64/System.IO.Compression.Native.dll new file mode 100644 index 0000000..68c40d8 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Compression.Native.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Compression.ZipFile.dll b/publish/easyTrace-win-x64/System.IO.Compression.ZipFile.dll new file mode 100644 index 0000000..cdcf679 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Compression.ZipFile.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Compression.dll b/publish/easyTrace-win-x64/System.IO.Compression.dll new file mode 100644 index 0000000..82fe657 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Compression.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.FileSystem.AccessControl.dll b/publish/easyTrace-win-x64/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 0000000..298925a Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.FileSystem.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.FileSystem.DriveInfo.dll b/publish/easyTrace-win-x64/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..76e3341 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.FileSystem.DriveInfo.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.FileSystem.Primitives.dll b/publish/easyTrace-win-x64/System.IO.FileSystem.Primitives.dll new file mode 100644 index 0000000..7eed68c Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.FileSystem.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.FileSystem.Watcher.dll b/publish/easyTrace-win-x64/System.IO.FileSystem.Watcher.dll new file mode 100644 index 0000000..1dce24e Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.FileSystem.Watcher.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.FileSystem.dll b/publish/easyTrace-win-x64/System.IO.FileSystem.dll new file mode 100644 index 0000000..270fe22 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.FileSystem.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.IsolatedStorage.dll b/publish/easyTrace-win-x64/System.IO.IsolatedStorage.dll new file mode 100644 index 0000000..5b786d2 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.IsolatedStorage.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.MemoryMappedFiles.dll b/publish/easyTrace-win-x64/System.IO.MemoryMappedFiles.dll new file mode 100644 index 0000000..ada60be Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.MemoryMappedFiles.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Pipelines.dll b/publish/easyTrace-win-x64/System.IO.Pipelines.dll new file mode 100644 index 0000000..83a1b24 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Pipelines.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Pipes.AccessControl.dll b/publish/easyTrace-win-x64/System.IO.Pipes.AccessControl.dll new file mode 100644 index 0000000..370b9aa Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Pipes.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.Pipes.dll b/publish/easyTrace-win-x64/System.IO.Pipes.dll new file mode 100644 index 0000000..7e26b67 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.Pipes.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.UnmanagedMemoryStream.dll b/publish/easyTrace-win-x64/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 0000000..db3bff9 Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.UnmanagedMemoryStream.dll differ diff --git a/publish/easyTrace-win-x64/System.IO.dll b/publish/easyTrace-win-x64/System.IO.dll new file mode 100644 index 0000000..b76268b Binary files /dev/null and b/publish/easyTrace-win-x64/System.IO.dll differ diff --git a/publish/easyTrace-win-x64/System.Linq.Expressions.dll b/publish/easyTrace-win-x64/System.Linq.Expressions.dll new file mode 100644 index 0000000..cb45a35 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Linq.Expressions.dll differ diff --git a/publish/easyTrace-win-x64/System.Linq.Parallel.dll b/publish/easyTrace-win-x64/System.Linq.Parallel.dll new file mode 100644 index 0000000..461778d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Linq.Parallel.dll differ diff --git a/publish/easyTrace-win-x64/System.Linq.Queryable.dll b/publish/easyTrace-win-x64/System.Linq.Queryable.dll new file mode 100644 index 0000000..562fcb6 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Linq.Queryable.dll differ diff --git a/publish/easyTrace-win-x64/System.Linq.dll b/publish/easyTrace-win-x64/System.Linq.dll new file mode 100644 index 0000000..f0382d7 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Linq.dll differ diff --git a/publish/easyTrace-win-x64/System.Memory.dll b/publish/easyTrace-win-x64/System.Memory.dll new file mode 100644 index 0000000..422311d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Memory.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Http.Json.dll b/publish/easyTrace-win-x64/System.Net.Http.Json.dll new file mode 100644 index 0000000..de21979 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Http.Json.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Http.dll b/publish/easyTrace-win-x64/System.Net.Http.dll new file mode 100644 index 0000000..6a10eb5 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Http.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.HttpListener.dll b/publish/easyTrace-win-x64/System.Net.HttpListener.dll new file mode 100644 index 0000000..4eab574 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.HttpListener.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Mail.dll b/publish/easyTrace-win-x64/System.Net.Mail.dll new file mode 100644 index 0000000..5b2e014 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Mail.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.NameResolution.dll b/publish/easyTrace-win-x64/System.Net.NameResolution.dll new file mode 100644 index 0000000..00798b4 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.NameResolution.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.NetworkInformation.dll b/publish/easyTrace-win-x64/System.Net.NetworkInformation.dll new file mode 100644 index 0000000..3e90429 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.NetworkInformation.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Ping.dll b/publish/easyTrace-win-x64/System.Net.Ping.dll new file mode 100644 index 0000000..34ec01f Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Ping.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Primitives.dll b/publish/easyTrace-win-x64/System.Net.Primitives.dll new file mode 100644 index 0000000..a49bbe7 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Quic.dll b/publish/easyTrace-win-x64/System.Net.Quic.dll new file mode 100644 index 0000000..1a5ce12 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Quic.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Requests.dll b/publish/easyTrace-win-x64/System.Net.Requests.dll new file mode 100644 index 0000000..2d32814 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Requests.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Security.dll b/publish/easyTrace-win-x64/System.Net.Security.dll new file mode 100644 index 0000000..e90937d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Security.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.ServicePoint.dll b/publish/easyTrace-win-x64/System.Net.ServicePoint.dll new file mode 100644 index 0000000..1c0461f Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.ServicePoint.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.Sockets.dll b/publish/easyTrace-win-x64/System.Net.Sockets.dll new file mode 100644 index 0000000..4d62afa Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.Sockets.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.WebClient.dll b/publish/easyTrace-win-x64/System.Net.WebClient.dll new file mode 100644 index 0000000..5380f2d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.WebClient.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.WebHeaderCollection.dll b/publish/easyTrace-win-x64/System.Net.WebHeaderCollection.dll new file mode 100644 index 0000000..58f389c Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.WebHeaderCollection.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.WebProxy.dll b/publish/easyTrace-win-x64/System.Net.WebProxy.dll new file mode 100644 index 0000000..4a87a44 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.WebProxy.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.WebSockets.Client.dll b/publish/easyTrace-win-x64/System.Net.WebSockets.Client.dll new file mode 100644 index 0000000..6879697 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.WebSockets.Client.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.WebSockets.dll b/publish/easyTrace-win-x64/System.Net.WebSockets.dll new file mode 100644 index 0000000..17f3310 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.WebSockets.dll differ diff --git a/publish/easyTrace-win-x64/System.Net.dll b/publish/easyTrace-win-x64/System.Net.dll new file mode 100644 index 0000000..50e06c6 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Net.dll differ diff --git a/publish/easyTrace-win-x64/System.Numerics.Vectors.dll b/publish/easyTrace-win-x64/System.Numerics.Vectors.dll new file mode 100644 index 0000000..1b33e15 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Numerics.Vectors.dll differ diff --git a/publish/easyTrace-win-x64/System.Numerics.dll b/publish/easyTrace-win-x64/System.Numerics.dll new file mode 100644 index 0000000..a34d085 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Numerics.dll differ diff --git a/publish/easyTrace-win-x64/System.ObjectModel.dll b/publish/easyTrace-win-x64/System.ObjectModel.dll new file mode 100644 index 0000000..a430c6a Binary files /dev/null and b/publish/easyTrace-win-x64/System.ObjectModel.dll differ diff --git a/publish/easyTrace-win-x64/System.Private.CoreLib.dll b/publish/easyTrace-win-x64/System.Private.CoreLib.dll new file mode 100644 index 0000000..ba26a43 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Private.CoreLib.dll differ diff --git a/publish/easyTrace-win-x64/System.Private.DataContractSerialization.dll b/publish/easyTrace-win-x64/System.Private.DataContractSerialization.dll new file mode 100644 index 0000000..96e9a73 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Private.DataContractSerialization.dll differ diff --git a/publish/easyTrace-win-x64/System.Private.Uri.dll b/publish/easyTrace-win-x64/System.Private.Uri.dll new file mode 100644 index 0000000..4346c54 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Private.Uri.dll differ diff --git a/publish/easyTrace-win-x64/System.Private.Xml.Linq.dll b/publish/easyTrace-win-x64/System.Private.Xml.Linq.dll new file mode 100644 index 0000000..0890dcb Binary files /dev/null and b/publish/easyTrace-win-x64/System.Private.Xml.Linq.dll differ diff --git a/publish/easyTrace-win-x64/System.Private.Xml.dll b/publish/easyTrace-win-x64/System.Private.Xml.dll new file mode 100644 index 0000000..598bf06 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Private.Xml.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.DispatchProxy.dll b/publish/easyTrace-win-x64/System.Reflection.DispatchProxy.dll new file mode 100644 index 0000000..72650cc Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.DispatchProxy.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.Emit.ILGeneration.dll b/publish/easyTrace-win-x64/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 0000000..2d36784 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.Emit.ILGeneration.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.Emit.Lightweight.dll b/publish/easyTrace-win-x64/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 0000000..f0c382f Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.Emit.Lightweight.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.Emit.dll b/publish/easyTrace-win-x64/System.Reflection.Emit.dll new file mode 100644 index 0000000..7aa93ea Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.Emit.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.Extensions.dll b/publish/easyTrace-win-x64/System.Reflection.Extensions.dll new file mode 100644 index 0000000..3a9c36e Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.Extensions.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.Metadata.dll b/publish/easyTrace-win-x64/System.Reflection.Metadata.dll new file mode 100644 index 0000000..7320d81 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.Metadata.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.Primitives.dll b/publish/easyTrace-win-x64/System.Reflection.Primitives.dll new file mode 100644 index 0000000..030f2ee Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.TypeExtensions.dll b/publish/easyTrace-win-x64/System.Reflection.TypeExtensions.dll new file mode 100644 index 0000000..0ea1496 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.TypeExtensions.dll differ diff --git a/publish/easyTrace-win-x64/System.Reflection.dll b/publish/easyTrace-win-x64/System.Reflection.dll new file mode 100644 index 0000000..bd671b6 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Reflection.dll differ diff --git a/publish/easyTrace-win-x64/System.Resources.Reader.dll b/publish/easyTrace-win-x64/System.Resources.Reader.dll new file mode 100644 index 0000000..097298b Binary files /dev/null and b/publish/easyTrace-win-x64/System.Resources.Reader.dll differ diff --git a/publish/easyTrace-win-x64/System.Resources.ResourceManager.dll b/publish/easyTrace-win-x64/System.Resources.ResourceManager.dll new file mode 100644 index 0000000..d3c7469 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Resources.ResourceManager.dll differ diff --git a/publish/easyTrace-win-x64/System.Resources.Writer.dll b/publish/easyTrace-win-x64/System.Resources.Writer.dll new file mode 100644 index 0000000..bd5c43e Binary files /dev/null and b/publish/easyTrace-win-x64/System.Resources.Writer.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.CompilerServices.Unsafe.dll b/publish/easyTrace-win-x64/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..52de463 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.CompilerServices.VisualC.dll b/publish/easyTrace-win-x64/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 0000000..27c1711 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Extensions.dll b/publish/easyTrace-win-x64/System.Runtime.Extensions.dll new file mode 100644 index 0000000..67608e0 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Extensions.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Handles.dll b/publish/easyTrace-win-x64/System.Runtime.Handles.dll new file mode 100644 index 0000000..60f54e4 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Handles.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.InteropServices.JavaScript.dll b/publish/easyTrace-win-x64/System.Runtime.InteropServices.JavaScript.dll new file mode 100644 index 0000000..3d923be Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.InteropServices.JavaScript.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.InteropServices.RuntimeInformation.dll b/publish/easyTrace-win-x64/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 0000000..0ad4630 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.InteropServices.dll b/publish/easyTrace-win-x64/System.Runtime.InteropServices.dll new file mode 100644 index 0000000..12411c8 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.InteropServices.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Intrinsics.dll b/publish/easyTrace-win-x64/System.Runtime.Intrinsics.dll new file mode 100644 index 0000000..e34702e Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Intrinsics.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Loader.dll b/publish/easyTrace-win-x64/System.Runtime.Loader.dll new file mode 100644 index 0000000..2f5d69b Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Loader.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Numerics.dll b/publish/easyTrace-win-x64/System.Runtime.Numerics.dll new file mode 100644 index 0000000..e13947a Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Numerics.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Serialization.Formatters.dll b/publish/easyTrace-win-x64/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 0000000..4a870c4 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Serialization.Formatters.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Serialization.Json.dll b/publish/easyTrace-win-x64/System.Runtime.Serialization.Json.dll new file mode 100644 index 0000000..433f67f Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Serialization.Json.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Serialization.Primitives.dll b/publish/easyTrace-win-x64/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 0000000..e460746 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Serialization.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Serialization.Xml.dll b/publish/easyTrace-win-x64/System.Runtime.Serialization.Xml.dll new file mode 100644 index 0000000..9f50b84 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Serialization.Xml.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.Serialization.dll b/publish/easyTrace-win-x64/System.Runtime.Serialization.dll new file mode 100644 index 0000000..cdf1e11 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.Serialization.dll differ diff --git a/publish/easyTrace-win-x64/System.Runtime.dll b/publish/easyTrace-win-x64/System.Runtime.dll new file mode 100644 index 0000000..a3b64a9 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Runtime.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.AccessControl.dll b/publish/easyTrace-win-x64/System.Security.AccessControl.dll new file mode 100644 index 0000000..f2e6343 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.AccessControl.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Claims.dll b/publish/easyTrace-win-x64/System.Security.Claims.dll new file mode 100644 index 0000000..16647a0 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Claims.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.Algorithms.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..792ee68 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.Algorithms.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.Cng.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.Cng.dll new file mode 100644 index 0000000..8a895eb Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.Cng.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.Csp.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.Csp.dll new file mode 100644 index 0000000..c53e9f4 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.Csp.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.Encoding.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..b319c3a Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.Encoding.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.OpenSsl.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 0000000..f0e2ad2 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.OpenSsl.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.Primitives.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..ec37b77 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.Primitives.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.X509Certificates.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..512766e Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.X509Certificates.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Cryptography.dll b/publish/easyTrace-win-x64/System.Security.Cryptography.dll new file mode 100644 index 0000000..7196051 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Cryptography.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Principal.Windows.dll b/publish/easyTrace-win-x64/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..0c1c464 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Principal.Windows.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.Principal.dll b/publish/easyTrace-win-x64/System.Security.Principal.dll new file mode 100644 index 0000000..72a1682 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.Principal.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.SecureString.dll b/publish/easyTrace-win-x64/System.Security.SecureString.dll new file mode 100644 index 0000000..5483611 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.SecureString.dll differ diff --git a/publish/easyTrace-win-x64/System.Security.dll b/publish/easyTrace-win-x64/System.Security.dll new file mode 100644 index 0000000..ad58983 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Security.dll differ diff --git a/publish/easyTrace-win-x64/System.ServiceModel.Web.dll b/publish/easyTrace-win-x64/System.ServiceModel.Web.dll new file mode 100644 index 0000000..02916cc Binary files /dev/null and b/publish/easyTrace-win-x64/System.ServiceModel.Web.dll differ diff --git a/publish/easyTrace-win-x64/System.ServiceProcess.dll b/publish/easyTrace-win-x64/System.ServiceProcess.dll new file mode 100644 index 0000000..9fc9563 Binary files /dev/null and b/publish/easyTrace-win-x64/System.ServiceProcess.dll differ diff --git a/publish/easyTrace-win-x64/System.Text.Encoding.CodePages.dll b/publish/easyTrace-win-x64/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..c83198c Binary files /dev/null and b/publish/easyTrace-win-x64/System.Text.Encoding.CodePages.dll differ diff --git a/publish/easyTrace-win-x64/System.Text.Encoding.Extensions.dll b/publish/easyTrace-win-x64/System.Text.Encoding.Extensions.dll new file mode 100644 index 0000000..25ed707 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Text.Encoding.Extensions.dll differ diff --git a/publish/easyTrace-win-x64/System.Text.Encoding.dll b/publish/easyTrace-win-x64/System.Text.Encoding.dll new file mode 100644 index 0000000..3a72c9d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Text.Encoding.dll differ diff --git a/publish/easyTrace-win-x64/System.Text.Encodings.Web.dll b/publish/easyTrace-win-x64/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..ff34dfe Binary files /dev/null and b/publish/easyTrace-win-x64/System.Text.Encodings.Web.dll differ diff --git a/publish/easyTrace-win-x64/System.Text.Json.dll b/publish/easyTrace-win-x64/System.Text.Json.dll new file mode 100644 index 0000000..1ca0f81 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Text.Json.dll differ diff --git a/publish/easyTrace-win-x64/System.Text.RegularExpressions.dll b/publish/easyTrace-win-x64/System.Text.RegularExpressions.dll new file mode 100644 index 0000000..91629a7 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Text.RegularExpressions.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Channels.dll b/publish/easyTrace-win-x64/System.Threading.Channels.dll new file mode 100644 index 0000000..79fad24 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Channels.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Overlapped.dll b/publish/easyTrace-win-x64/System.Threading.Overlapped.dll new file mode 100644 index 0000000..2b0e30f Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Overlapped.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Tasks.Dataflow.dll b/publish/easyTrace-win-x64/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 0000000..133c3f8 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Tasks.Dataflow.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Tasks.Extensions.dll b/publish/easyTrace-win-x64/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..c3b9a1d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Tasks.Extensions.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Tasks.Parallel.dll b/publish/easyTrace-win-x64/System.Threading.Tasks.Parallel.dll new file mode 100644 index 0000000..4a6ec86 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Tasks.Parallel.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Tasks.dll b/publish/easyTrace-win-x64/System.Threading.Tasks.dll new file mode 100644 index 0000000..7f813df Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Tasks.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Thread.dll b/publish/easyTrace-win-x64/System.Threading.Thread.dll new file mode 100644 index 0000000..baa0ed7 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Thread.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.ThreadPool.dll b/publish/easyTrace-win-x64/System.Threading.ThreadPool.dll new file mode 100644 index 0000000..c34b61d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.ThreadPool.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.Timer.dll b/publish/easyTrace-win-x64/System.Threading.Timer.dll new file mode 100644 index 0000000..cc547d4 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.Timer.dll differ diff --git a/publish/easyTrace-win-x64/System.Threading.dll b/publish/easyTrace-win-x64/System.Threading.dll new file mode 100644 index 0000000..a4aa7a3 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Threading.dll differ diff --git a/publish/easyTrace-win-x64/System.Transactions.Local.dll b/publish/easyTrace-win-x64/System.Transactions.Local.dll new file mode 100644 index 0000000..0222cd5 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Transactions.Local.dll differ diff --git a/publish/easyTrace-win-x64/System.Transactions.dll b/publish/easyTrace-win-x64/System.Transactions.dll new file mode 100644 index 0000000..93fc0b1 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Transactions.dll differ diff --git a/publish/easyTrace-win-x64/System.ValueTuple.dll b/publish/easyTrace-win-x64/System.ValueTuple.dll new file mode 100644 index 0000000..1694c3d Binary files /dev/null and b/publish/easyTrace-win-x64/System.ValueTuple.dll differ diff --git a/publish/easyTrace-win-x64/System.Web.HttpUtility.dll b/publish/easyTrace-win-x64/System.Web.HttpUtility.dll new file mode 100644 index 0000000..0a3d655 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Web.HttpUtility.dll differ diff --git a/publish/easyTrace-win-x64/System.Web.dll b/publish/easyTrace-win-x64/System.Web.dll new file mode 100644 index 0000000..7118fef Binary files /dev/null and b/publish/easyTrace-win-x64/System.Web.dll differ diff --git a/publish/easyTrace-win-x64/System.Windows.dll b/publish/easyTrace-win-x64/System.Windows.dll new file mode 100644 index 0000000..4d6a203 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Windows.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.Linq.dll b/publish/easyTrace-win-x64/System.Xml.Linq.dll new file mode 100644 index 0000000..da0a5e5 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.Linq.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.ReaderWriter.dll b/publish/easyTrace-win-x64/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..3bbff90 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.ReaderWriter.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.Serialization.dll b/publish/easyTrace-win-x64/System.Xml.Serialization.dll new file mode 100644 index 0000000..40de827 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.Serialization.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.XDocument.dll b/publish/easyTrace-win-x64/System.Xml.XDocument.dll new file mode 100644 index 0000000..4d2508e Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.XDocument.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.XPath.XDocument.dll b/publish/easyTrace-win-x64/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..127cb90 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.XPath.XDocument.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.XPath.dll b/publish/easyTrace-win-x64/System.Xml.XPath.dll new file mode 100644 index 0000000..95985c9 Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.XPath.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.XmlDocument.dll b/publish/easyTrace-win-x64/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..d312eec Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.XmlDocument.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.XmlSerializer.dll b/publish/easyTrace-win-x64/System.Xml.XmlSerializer.dll new file mode 100644 index 0000000..b39ebea Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.XmlSerializer.dll differ diff --git a/publish/easyTrace-win-x64/System.Xml.dll b/publish/easyTrace-win-x64/System.Xml.dll new file mode 100644 index 0000000..883b80d Binary files /dev/null and b/publish/easyTrace-win-x64/System.Xml.dll differ diff --git a/publish/easyTrace-win-x64/System.dll b/publish/easyTrace-win-x64/System.dll new file mode 100644 index 0000000..0666ad0 Binary files /dev/null and b/publish/easyTrace-win-x64/System.dll differ diff --git a/publish/easyTrace-win-x64/Tmds.DBus.Protocol.dll b/publish/easyTrace-win-x64/Tmds.DBus.Protocol.dll new file mode 100644 index 0000000..8f42654 Binary files /dev/null and b/publish/easyTrace-win-x64/Tmds.DBus.Protocol.dll differ diff --git a/publish/easyTrace-win-x64/TraceCad.Core.dll b/publish/easyTrace-win-x64/TraceCad.Core.dll new file mode 100644 index 0000000..a2c4f63 Binary files /dev/null and b/publish/easyTrace-win-x64/TraceCad.Core.dll differ diff --git a/publish/easyTrace-win-x64/TraceCad.Core.pdb b/publish/easyTrace-win-x64/TraceCad.Core.pdb new file mode 100644 index 0000000..3c0d0af Binary files /dev/null and b/publish/easyTrace-win-x64/TraceCad.Core.pdb differ diff --git a/publish/easyTrace-win-x64/TraceCad.Dxf.dll b/publish/easyTrace-win-x64/TraceCad.Dxf.dll new file mode 100644 index 0000000..01381f3 Binary files /dev/null and b/publish/easyTrace-win-x64/TraceCad.Dxf.dll differ diff --git a/publish/easyTrace-win-x64/TraceCad.Dxf.pdb b/publish/easyTrace-win-x64/TraceCad.Dxf.pdb new file mode 100644 index 0000000..ab0612d Binary files /dev/null and b/publish/easyTrace-win-x64/TraceCad.Dxf.pdb differ diff --git a/publish/easyTrace-win-x64/TraceCad.Vision.dll b/publish/easyTrace-win-x64/TraceCad.Vision.dll new file mode 100644 index 0000000..1bad4f2 Binary files /dev/null and b/publish/easyTrace-win-x64/TraceCad.Vision.dll differ diff --git a/publish/easyTrace-win-x64/TraceCad.Vision.pdb b/publish/easyTrace-win-x64/TraceCad.Vision.pdb new file mode 100644 index 0000000..a6926d3 Binary files /dev/null and b/publish/easyTrace-win-x64/TraceCad.Vision.pdb differ diff --git a/publish/easyTrace-win-x64/WindowsBase.dll b/publish/easyTrace-win-x64/WindowsBase.dll new file mode 100644 index 0000000..2101a65 Binary files /dev/null and b/publish/easyTrace-win-x64/WindowsBase.dll differ diff --git a/publish/easyTrace-win-x64/av_libglesv2.dll b/publish/easyTrace-win-x64/av_libglesv2.dll new file mode 100644 index 0000000..c327f9e Binary files /dev/null and b/publish/easyTrace-win-x64/av_libglesv2.dll differ diff --git a/publish/easyTrace-win-x64/clretwrc.dll b/publish/easyTrace-win-x64/clretwrc.dll new file mode 100644 index 0000000..16c5dd9 Binary files /dev/null and b/publish/easyTrace-win-x64/clretwrc.dll differ diff --git a/publish/easyTrace-win-x64/clrgc.dll b/publish/easyTrace-win-x64/clrgc.dll new file mode 100644 index 0000000..bba81c6 Binary files /dev/null and b/publish/easyTrace-win-x64/clrgc.dll differ diff --git a/publish/easyTrace-win-x64/clrjit.dll b/publish/easyTrace-win-x64/clrjit.dll new file mode 100644 index 0000000..0f3cc4b Binary files /dev/null and b/publish/easyTrace-win-x64/clrjit.dll differ diff --git a/publish/easyTrace-win-x64/coreclr.dll b/publish/easyTrace-win-x64/coreclr.dll new file mode 100644 index 0000000..dbf2e6d Binary files /dev/null and b/publish/easyTrace-win-x64/coreclr.dll differ diff --git a/publish/easyTrace-win-x64/createdump.exe b/publish/easyTrace-win-x64/createdump.exe new file mode 100644 index 0000000..dcfc730 Binary files /dev/null and b/publish/easyTrace-win-x64/createdump.exe differ diff --git a/publish/easyTrace-win-x64/easyTrace.deps.json b/publish/easyTrace-win-x64/easyTrace.deps.json new file mode 100644 index 0000000..39dfe73 --- /dev/null +++ b/publish/easyTrace-win-x64/easyTrace.deps.json @@ -0,0 +1,1196 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0/win-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": {}, + ".NETCoreApp,Version=v8.0/win-x64": { + "easyTrace/1.0.0": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Desktop": "11.2.3", + "Avalonia.Themes.Fluent": "11.2.3", + "TraceCad.Core": "1.0.0", + "TraceCad.Dxf": "1.0.0", + "TraceCad.Vision": "1.0.0", + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "8.0.26" + }, + "runtime": { + "easyTrace.dll": {} + } + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "runtime": { + "Microsoft.CSharp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "13.0.0.0", + "fileVersion": "13.0.2626.16921" + }, + "Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "Microsoft.Win32.Registry.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.AppContext.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Buffers.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Concurrent.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Immutable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.NonGeneric.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.Specialized.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Collections.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Annotations.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ComponentModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Console.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.Common.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.DataSetExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Contracts.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Debug.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Process.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tools.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Diagnostics.Tracing.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Dynamic.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Asn1.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Formats.Tar.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Calendars.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Globalization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.Brotli.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Compression.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.FileSystem.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.IsolatedStorage.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.Pipes.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.IO.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Expressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.Queryable.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Memory.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Http.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.HttpListener.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Mail.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NameResolution.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.NetworkInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Ping.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Quic.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Requests.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Security.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.ServicePoint.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.Sockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebClient.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.Client.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.WebSockets.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.Vectors.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ObjectModel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.CoreLib.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.DataContractSerialization.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Uri.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.Linq.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Private.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Emit.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Metadata.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Reflection.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Reader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.ResourceManager.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Resources.Writer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Handles.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.JavaScript.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.InteropServices.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Intrinsics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Loader.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Numerics.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Runtime.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.AccessControl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Claims.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Cryptography.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.Windows.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.Principal.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.SecureString.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encoding.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Encodings.Web.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.Json.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Text.RegularExpressions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Channels.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Overlapped.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Tasks.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Thread.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.ThreadPool.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.Timer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Threading.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.Local.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.ValueTuple.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.HttpUtility.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.ReaderWriter.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XPath.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlDocument.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.XmlSerializer.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "8.0.2626.16921" + }, + "netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "8.0.2626.16921" + } + }, + "native": { + "Microsoft.DiaSymReader.Native.amd64.dll": { + "fileVersion": "14.42.34436.0" + }, + "System.IO.Compression.Native.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clretwrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrgc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "clrjit.dll": { + "fileVersion": "8.0.2626.16921" + }, + "coreclr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "createdump.exe": { + "fileVersion": "8.0.2626.16921" + }, + "hostfxr.dll": { + "fileVersion": "8.0.2626.16921" + }, + "hostpolicy.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordaccore_amd64_amd64_8.0.2626.16921.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscordbi.dll": { + "fileVersion": "8.0.2626.16921" + }, + "mscorrc.dll": { + "fileVersion": "8.0.2626.16921" + }, + "msquic.dll": { + "fileVersion": "2.4.17.0" + } + } + }, + "Avalonia/11.2.3": { + "dependencies": { + "Avalonia.Remote.Protocol": "11.2.3", + "MicroCom.Runtime": "0.11.0" + }, + "runtime": { + "lib/net8.0/Avalonia.Base.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Controls.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.DesignerSupport.dll": { + "assemblyVersion": "0.7.0.0", + "fileVersion": "0.7.0.0" + }, + "lib/net8.0/Avalonia.Dialogs.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.Xaml.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Markup.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Metal.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.MicroCom.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.OpenGL.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.Vulkan.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + }, + "lib/net8.0/Avalonia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "native": { + "runtimes/win-x64/native/av_libglesv2.dll": { + "fileVersion": "2.1.22045.0" + } + } + }, + "Avalonia.Desktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Native": "11.2.3", + "Avalonia.Skia": "11.2.3", + "Avalonia.Win32": "11.2.3", + "Avalonia.X11": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Desktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.FreeDesktop/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Tmds.DBus.Protocol": "0.20.0" + }, + "runtime": { + "lib/net8.0/Avalonia.FreeDesktop.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Native/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Native.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Remote.Protocol/11.2.3": { + "runtime": { + "lib/net8.0/Avalonia.Remote.Protocol.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Skia/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "HarfBuzzSharp": "7.3.0.3", + "SkiaSharp": "2.88.9" + }, + "runtime": { + "lib/net8.0/Avalonia.Skia.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Themes.Fluent/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.Themes.Fluent.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.Win32/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.Angle.Windows.Natives": "2.1.22045.20230930" + }, + "runtime": { + "lib/net8.0/Avalonia.Win32.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "Avalonia.X11/11.2.3": { + "dependencies": { + "Avalonia": "11.2.3", + "Avalonia.FreeDesktop": "11.2.3", + "Avalonia.Skia": "11.2.3" + }, + "runtime": { + "lib/net8.0/Avalonia.X11.dll": { + "assemblyVersion": "11.2.3.0", + "fileVersion": "11.2.3.0" + } + } + }, + "HarfBuzzSharp/7.3.0.3": { + "dependencies": { + "HarfBuzzSharp.NativeAssets.Win32": "7.3.0.3" + }, + "runtime": { + "lib/net6.0/HarfBuzzSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "7.3.0.3" + } + } + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "native": { + "runtimes/win-x64/native/libHarfBuzzSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "MicroCom.Runtime/0.11.0": { + "runtime": { + "lib/net5.0/MicroCom.Runtime.dll": { + "assemblyVersion": "0.11.0.0", + "fileVersion": "0.11.0.0" + } + } + }, + "netDxf/2022.11.2": { + "runtime": { + "lib/net6.0/netDxf.dll": { + "assemblyVersion": "2022.11.2.0", + "fileVersion": "2022.11.2.0" + } + } + }, + "OpenCvSharp4/4.10.0.20241108": { + "runtime": { + "lib/net6.0/OpenCvSharp.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "OpenCvSharp4.runtime.win/4.10.0.20241108": { + "native": { + "runtimes/win-x64/native/OpenCvSharpExtern.dll": { + "fileVersion": "0.0.0.0" + }, + "runtimes/win-x64/native/opencv_videoio_ffmpeg4100_64.dll": { + "fileVersion": "2024.5.0.0" + } + } + }, + "SkiaSharp/2.88.9": { + "dependencies": { + "SkiaSharp.NativeAssets.Win32": "2.88.9" + }, + "runtime": { + "lib/net6.0/SkiaSharp.dll": { + "assemblyVersion": "2.88.0.0", + "fileVersion": "2.88.9.0" + } + } + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "native": { + "runtimes/win-x64/native/libSkiaSharp.dll": { + "fileVersion": "0.0.0.0" + } + } + }, + "System.IO.Pipelines/8.0.0": { + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.23.53103" + } + } + }, + "Tmds.DBus.Protocol/0.20.0": { + "dependencies": { + "System.IO.Pipelines": "8.0.0" + }, + "runtime": { + "lib/net8.0/Tmds.DBus.Protocol.dll": { + "assemblyVersion": "0.20.0.0", + "fileVersion": "0.20.0.0" + } + } + }, + "TraceCad.Core/1.0.0": { + "runtime": { + "TraceCad.Core.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "TraceCad.Dxf/1.0.0": { + "dependencies": { + "TraceCad.Core": "1.0.0", + "netDxf": "2022.11.2" + }, + "runtime": { + "TraceCad.Dxf.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "TraceCad.Vision/1.0.0": { + "dependencies": { + "OpenCvSharp4": "4.10.0.20241108", + "OpenCvSharp4.runtime.win": "4.10.0.20241108", + "TraceCad.Core": "1.0.0" + }, + "runtime": { + "TraceCad.Vision.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + } + } + }, + "libraries": { + "easyTrace/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.NETCore.App.Runtime.win-x64/8.0.26": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "Avalonia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pD6woFAUfGcyEvMmrpctntU4jv4fT8752pfx1J5iRORVX3Ob0oQi8PWo0TXVaAJZiSfH0cdKTeKx0w0DzD0/mg==", + "path": "avalonia/11.2.3", + "hashPath": "avalonia.11.2.3.nupkg.sha512" + }, + "Avalonia.Angle.Windows.Natives/2.1.22045.20230930": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Bo3qOhKC1b84BIhiogndMdAzB3UrrESKK7hS769f5HWeoMw/pcd42US5KFYW2JJ4ZSTrXnP8mXwLTMzh+S+9Lg==", + "path": "avalonia.angle.windows.natives/2.1.22045.20230930", + "hashPath": "avalonia.angle.windows.natives.2.1.22045.20230930.nupkg.sha512" + }, + "Avalonia.Desktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dX3zfgWplLqcgwQJLeC2ciqxE/GM3iw9HUNI22c8KgAAWMWl52NWCmjW228EPZG+4YbHwq8T40YARO2aQF+yqA==", + "path": "avalonia.desktop/11.2.3", + "hashPath": "avalonia.desktop.11.2.3.nupkg.sha512" + }, + "Avalonia.FreeDesktop/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BOivcAE3yYFKyYg5CztnTeIFX7ZHNaFiMrQ9WO4MgKyMwbPdH6jy6Mpfu+LY5FiYpleZdmXLJXZzzPon52DUVg==", + "path": "avalonia.freedesktop/11.2.3", + "hashPath": "avalonia.freedesktop.11.2.3.nupkg.sha512" + }, + "Avalonia.Native/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yW9IGfa7kBuEcYP4ni7nGYNI2HjqaBg+cPJXZeiXf8RFptmluMv75hMyyq8FYIZwVcZIEcwEgff81a7b4aNTVQ==", + "path": "avalonia.native/11.2.3", + "hashPath": "avalonia.native.11.2.3.nupkg.sha512" + }, + "Avalonia.Remote.Protocol/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6V0aNtld48WmO8tAlWwlRlUmXYcOWv+1eJUSl1ETF+1blUe5yhcSmuWarPprO0hDk8Ta6wGfdfcrnVl2gITYcA==", + "path": "avalonia.remote.protocol/11.2.3", + "hashPath": "avalonia.remote.protocol.11.2.3.nupkg.sha512" + }, + "Avalonia.Skia/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jpzqkkmhzz6DSUy5dIw5T43MoHCdb05pmTvnsmHrbipA8mafI8RrO7tVnv1+ilFNV4516G9/kOpXjTLKjnnYrA==", + "path": "avalonia.skia/11.2.3", + "hashPath": "avalonia.skia.11.2.3.nupkg.sha512" + }, + "Avalonia.Themes.Fluent/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gPJWBWaeocvRhSrB977xsfH0Ame14PxRMIgEfezi2bTjNJ43JWzJtALgDfDZYMpZPDdeWU/mwDigR/kD+rJtlw==", + "path": "avalonia.themes.fluent/11.2.3", + "hashPath": "avalonia.themes.fluent.11.2.3.nupkg.sha512" + }, + "Avalonia.Win32/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VwdaOHvIowTSM2umeXOFIoUx4UydCXkXracwLQZaMlsWXCTJ+WwtlAIv0ZBCwQccAK+WELrdRXucvWWN8+sJCQ==", + "path": "avalonia.win32/11.2.3", + "hashPath": "avalonia.win32.11.2.3.nupkg.sha512" + }, + "Avalonia.X11/11.2.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0mr3zu5NEv2cTLsANyc3w51ctiLTWQia6TrlDdWCjfMx2k0VtCzgGBieByPgUl4iNWEDzgBEKek1EwJcGdJ+7g==", + "path": "avalonia.x11/11.2.3", + "hashPath": "avalonia.x11.11.2.3.nupkg.sha512" + }, + "HarfBuzzSharp/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Hq+5+gx10coOvuRgB13KBwiWxJq1QeYuhtVLbA01ZCWaugOnolUahF44KvrQTUUHDNk/C7HB6SMaebsZeOdhgg==", + "path": "harfbuzzsharp/7.3.0.3", + "hashPath": "harfbuzzsharp.7.3.0.3.nupkg.sha512" + }, + "HarfBuzzSharp.NativeAssets.Win32/7.3.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RPxRXD16KtSs8Yxr2RK9Qs7AwyN9MlpqZIYs0AvfaJwl7RAtVhC0+u2f2SKwX0uMYYd3O98Z+OBA1sj6aWVKQA==", + "path": "harfbuzzsharp.nativeassets.win32/7.3.0.3", + "hashPath": "harfbuzzsharp.nativeassets.win32.7.3.0.3.nupkg.sha512" + }, + "MicroCom.Runtime/0.11.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MEnrZ3UIiH40hjzMDsxrTyi8dtqB5ziv3iBeeU4bXsL/7NLSal9F1lZKpK+tfBRnUoDSdtcW3KufE4yhATOMCA==", + "path": "microcom.runtime/0.11.0", + "hashPath": "microcom.runtime.0.11.0.nupkg.sha512" + }, + "netDxf/2022.11.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bNiH5EoaRiBsPIQWAVx/Y2PyOUkKaZ89dIHfiJ++B9Kjyph/XevVx11nwAA6oiQ14Kj5pRchY3XfrRnZl6LwlQ==", + "path": "netdxf/2022.11.2", + "hashPath": "netdxf.2022.11.2.nupkg.sha512" + }, + "OpenCvSharp4/4.10.0.20241108": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4Lw57NQzOaR0fi9et7GMWB1rpdGzGuNgXHXy45Gltvt8SizQLOGufUonNF9Z+9mo3dcwGC/mL4w5NBgJCqZdHQ==", + "path": "opencvsharp4/4.10.0.20241108", + "hashPath": "opencvsharp4.4.10.0.20241108.nupkg.sha512" + }, + "OpenCvSharp4.runtime.win/4.10.0.20241108": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0ae2dwel83tqKlAs45D3KYncoJHRzj1ArEESa6wz7FS3tYu37JDIb5yoMIZPzlkx3Gx2S1BjUrClfXbBHmVh5g==", + "path": "opencvsharp4.runtime.win/4.10.0.20241108", + "hashPath": "opencvsharp4.runtime.win.4.10.0.20241108.nupkg.sha512" + }, + "SkiaSharp/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3MD5VHjXXieSHCleRLuaTXmL2pD0mB7CcOB1x2kA1I4bhptf4e3R27iM93264ZYuAq6mkUyX5XbcxnZvMJYc1Q==", + "path": "skiasharp/2.88.9", + "hashPath": "skiasharp.2.88.9.nupkg.sha512" + }, + "SkiaSharp.NativeAssets.Win32/2.88.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wb2kYgU7iy84nQLYZwMeJXixvK++GoIuECjU4ECaUKNuflyRlJKyiRhN1MAHswvlvzuvkrjRWlK0Za6+kYQK7w==", + "path": "skiasharp.nativeassets.win32/2.88.9", + "hashPath": "skiasharp.nativeassets.win32.2.88.9.nupkg.sha512" + }, + "System.IO.Pipelines/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "path": "system.io.pipelines/8.0.0", + "hashPath": "system.io.pipelines.8.0.0.nupkg.sha512" + }, + "Tmds.DBus.Protocol/0.20.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-2gkt2kuYPhDKd8gtl34jZSJOnn4nRJfFngCDcTZT/uySbK++ua0YQx2418l9Rn1Y4dE5XNq6zG9ZsE5ltLlNNw==", + "path": "tmds.dbus.protocol/0.20.0", + "hashPath": "tmds.dbus.protocol.0.20.0.nupkg.sha512" + }, + "TraceCad.Core/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "TraceCad.Dxf/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "TraceCad.Vision/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + }, + "runtimes": { + "win-x64": [ + "win", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/publish/easyTrace-win-x64/easyTrace.dll b/publish/easyTrace-win-x64/easyTrace.dll new file mode 100644 index 0000000..ce74ac0 Binary files /dev/null and b/publish/easyTrace-win-x64/easyTrace.dll differ diff --git a/publish/easyTrace-win-x64/easyTrace.exe b/publish/easyTrace-win-x64/easyTrace.exe new file mode 100644 index 0000000..c9dbc0b Binary files /dev/null and b/publish/easyTrace-win-x64/easyTrace.exe differ diff --git a/publish/easyTrace-win-x64/easyTrace.pdb b/publish/easyTrace-win-x64/easyTrace.pdb new file mode 100644 index 0000000..f22c36f Binary files /dev/null and b/publish/easyTrace-win-x64/easyTrace.pdb differ diff --git a/publish/easyTrace-win-x64/easyTrace.runtimeconfig.json b/publish/easyTrace-win-x64/easyTrace.runtimeconfig.json new file mode 100644 index 0000000..3c8ca56 --- /dev/null +++ b/publish/easyTrace-win-x64/easyTrace.runtimeconfig.json @@ -0,0 +1,15 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "includedFrameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.26" + } + ], + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/publish/easyTrace-win-x64/hostfxr.dll b/publish/easyTrace-win-x64/hostfxr.dll new file mode 100644 index 0000000..0b8fde3 Binary files /dev/null and b/publish/easyTrace-win-x64/hostfxr.dll differ diff --git a/publish/easyTrace-win-x64/hostpolicy.dll b/publish/easyTrace-win-x64/hostpolicy.dll new file mode 100644 index 0000000..8929cfa Binary files /dev/null and b/publish/easyTrace-win-x64/hostpolicy.dll differ diff --git a/publish/easyTrace-win-x64/libHarfBuzzSharp.dll b/publish/easyTrace-win-x64/libHarfBuzzSharp.dll new file mode 100644 index 0000000..01deb29 Binary files /dev/null and b/publish/easyTrace-win-x64/libHarfBuzzSharp.dll differ diff --git a/publish/easyTrace-win-x64/libSkiaSharp.dll b/publish/easyTrace-win-x64/libSkiaSharp.dll new file mode 100644 index 0000000..3f8c6f2 Binary files /dev/null and b/publish/easyTrace-win-x64/libSkiaSharp.dll differ diff --git a/publish/easyTrace-win-x64/mscordaccore.dll b/publish/easyTrace-win-x64/mscordaccore.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/easyTrace-win-x64/mscordaccore.dll differ diff --git a/publish/easyTrace-win-x64/mscordaccore_amd64_amd64_8.0.2626.16921.dll b/publish/easyTrace-win-x64/mscordaccore_amd64_amd64_8.0.2626.16921.dll new file mode 100644 index 0000000..c830522 Binary files /dev/null and b/publish/easyTrace-win-x64/mscordaccore_amd64_amd64_8.0.2626.16921.dll differ diff --git a/publish/easyTrace-win-x64/mscordbi.dll b/publish/easyTrace-win-x64/mscordbi.dll new file mode 100644 index 0000000..ee7b2d3 Binary files /dev/null and b/publish/easyTrace-win-x64/mscordbi.dll differ diff --git a/publish/easyTrace-win-x64/mscorlib.dll b/publish/easyTrace-win-x64/mscorlib.dll new file mode 100644 index 0000000..dacea10 Binary files /dev/null and b/publish/easyTrace-win-x64/mscorlib.dll differ diff --git a/publish/easyTrace-win-x64/mscorrc.dll b/publish/easyTrace-win-x64/mscorrc.dll new file mode 100644 index 0000000..e7ac1e0 Binary files /dev/null and b/publish/easyTrace-win-x64/mscorrc.dll differ diff --git a/publish/easyTrace-win-x64/msquic.dll b/publish/easyTrace-win-x64/msquic.dll new file mode 100644 index 0000000..0d619d1 Binary files /dev/null and b/publish/easyTrace-win-x64/msquic.dll differ diff --git a/publish/easyTrace-win-x64/netDxf.dll b/publish/easyTrace-win-x64/netDxf.dll new file mode 100644 index 0000000..fa45826 Binary files /dev/null and b/publish/easyTrace-win-x64/netDxf.dll differ diff --git a/publish/easyTrace-win-x64/netstandard.dll b/publish/easyTrace-win-x64/netstandard.dll new file mode 100644 index 0000000..de2f9e5 Binary files /dev/null and b/publish/easyTrace-win-x64/netstandard.dll differ diff --git a/publish/easyTrace-win-x64/opencv_videoio_ffmpeg4100_64.dll b/publish/easyTrace-win-x64/opencv_videoio_ffmpeg4100_64.dll new file mode 100644 index 0000000..b880c1c Binary files /dev/null and b/publish/easyTrace-win-x64/opencv_videoio_ffmpeg4100_64.dll differ diff --git a/reference/ref_sheet.pdf b/reference/ref_sheet.pdf new file mode 100644 index 0000000..07bb51d --- /dev/null +++ b/reference/ref_sheet.pdf @@ -0,0 +1,2163 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[6 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + ref_sheet + + + 2026-05-01T21:58:34+02:00 + 2026-05-01T21:58:34+02:00 + 2026-05-01T21:58:34+02:00 + Adobe Illustrator 29.6 (Windows) + + + + 256 + 204 + JPEG + /9j/4AAQSkZJRgABAgEAAAAAAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAAAAAAAEA AQAAAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAzAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A57+UP5b+UvPmhSCKxun1 ry2xv9bjRyTqNoS5js7VQ6+nK/DjzPfCqD/MX8o9A0XSdT8wWmv6fp80bxPB5IuLhW1iCOZ0T0pU Ll/UjD82FPs1NcVfdOg/8cPTv+YWH/k2MCo7FXYq7FXYq7FXYq7FXwnqX5b6V5u/Mrz9NfebtH8s m017UEji1WdIXmLXMpBjDMlVBFGPbCrDfIOiadqEnmBLzQ77XhaaZcSWracSBbTKRwupqEViXeox V9tf849f+SY8q/8AMK3/ACefAr0TFXYq7FXYq7FXYq87/wCchf8AyTHmr/mFX/k8mKvHF/Kf/nHL W/Iulw6Vruj6b5ru4LF5LibVi8nqt6bXEbWzXFA7jknHhVWPthVjHnT8srXyP/zkV5Qj0XTJrHyz c6vpH1GVzLJE0oniMyrLKXLENuRXauKvs7ArsVdirsVdirsVdiqB17/jh6j/AMws3/Js4q/Pzyj5 a8s+dpfK3lDR4JtP813k9wmr6vOxktnjHOWL04g1RwiUA7Cpwqyvz/8A841z+UvJus+Zo/NFlq6a JcRWt5aW0Z5pJK8UZSRg7+nIhnUlCK8aHvirL/yS/MX8mvLvkfQRqGuf4d81WV3LNrEttY3Ekt7b iaUx29xNFDJziKOppyqCoxV5x+an5jeVdc8x+dm03SrfUU166tpNL8wSK8Vxbx24jD+lG6hgJvTI PKhocVfeGg/8cPTv+YWH/k2MCo7FXYq7FXYq7FXYq7FX57/mN5h0u18z/mRos2i291f6jr929rrU h/f2giv3d1iFOkgXi2/fCr2nz5+d/wCRmgeUtQi/LTTtOn1rV45NNuRa2EunNHbTxPymZ2toxIEc KBHy717Yq9b/AOcev/JMeVf+YVv+Tz4FeiYq7FXYq7FXYq7FXnf/ADkL/wCSY81f8wq/8nkxV4x5 c8w/84qRXvl3Xb28tYL3T9JitL3STpNw8D3fFWa4kK2zK8yPUc6mvjhVIdX/ADPs/wAwvzA/LbWR q0qXz+YLP6x5S4O0GnKl5HGkiXLRxrM06qHanStMVfZOBXYq7FXYq7FXYq7FUDr3/HD1H/mFm/5N nFXxR+Snm78rPIt5oGu6nOmo6xfyyx6skttNy0ZI2kWKeB1jYTGZGXkEqQPfCr0b88Pzm/JnW/yu 8waJ5Sv4pNX1m4t7mWGGxubb1pkuIZJZpXkhiUv6cO7E1O2BX0j+gdD/AOrda/8AImP+mKu/QOh/ 9W61/wCRMf8ATFUcAAAAKAdBirsVdirsVdirsVdirsVQcmi6NJI0klhbvI5LO7RISSdySSNycVW/ oHQ/+rda/wDImP8ApiqMihihjWKFFjiQUVEAVQPYDFV2KuxV2KuxV2KuxVbLDFNG0UyLJE4oyOAy ke4OKoP9A6H/ANW61/5Ex/0xVdHoujRyLJHYW6SIQyOsSAgjcEEDYjFUZirsVdirsVdirsVdiriA QQRUHqMVQP6B0P8A6t1r/wAiY/6Yq79A6H/1brX/AJEx/wBMVR2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxVpWDKGHRhUfTireKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KrIP7iP8A1R+rFV+KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KrIP7iP/VH6sVX4q7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqsg/uI/9UfqxVfir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqxpUB4g 8mHVV3P006Yq7nKekdP9Ygfq5YqpwPKII6xg/Cv2Wr29wMVVBMlaNVCegbb8emKr8VdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiriQBU7AdTiql8Uu+6x9uxb+g xVUVVUUUADwGKt4qp25Bgjpv8I/ViqoQCKEVB6jFVLg0e8e6d4/+af6YqqKysoZTUHFW8VdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqmw9STh+wm7e56gfxxVUxVTq8 m6nhH2b9o/KvTFWxBF1Khj4t8R+84qshghMMZ4AHiu4FD08Riq4iSPcEug6qftfQe+Kr1ZWUMpqD 0OKrG/dvyH2HNGHgT0P09MVVMVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVczBVLHoBU4qshUiMV+0fib5nc4q1J8biP8AZpyf5dh9OKqmKrWlVTx3Zv5QKnFVO3lX0olI KkqKchSu3jiqtiqmBwloPsydvBhv+IxVe6h1KnoRTFWomLRqT9ro3zGxxVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdiqz1R/K3/AnFXeqP5W/4E4q71R/K3/AnFVOeUei44tuCPsnv iqp6o/lb/gTiqnHKPUkPFq1A+yegUH+OKrzMAK8W/wCBOKrIJAIlPFizDkx4ncnFWonV7ZFZGoUH Y+GKrop+UakqxJG54nrirU0o4qeLVDLT4T3IH8cVVPVH8rf8CcVU4ZQA44tsx7Hua/xxVU9Ufyt/ wJxV3qj+Vv8AgTirvVH8rf8AAnFV4NRXx8cVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVWzKWicDqQafPFW1YMoYdCKj6cVWD4ZmH84DD5jY/wAMVVMVUlLRDiVJQfZZRWg8CBviqyF2 e3jWMEVUAuQRTb364qrqoVQo6AUH0Yqsl3ZE8TyPyXf9dMVVMVWQ7pX+YsR8idvwxVfirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqnF8JaI/s7r/qnp93TFV0iFgCuzru pxVySBwezD7SnqMVXYqsg/uI/wDVH6sVXO6otW+gdyfAYqtjVql32Zu3gPDFXTMQvFftv8K/1+jF VyqFUKNgBQD5Yq3irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdiqyRCa Muzr9n38QfniraSBxtsRsynqDirnjViCdmHRhscVapOOjBh7ih+8f0xVTgE5gj3VfhHYnt9GKqix Kp5Eln/mb+Hhiq53VF5MaDFVsasW9RxRjsq+A/riq/FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FXYq7FVjxhjyB4uOjD9R8cVa5yL9taj+Zd/w64q368Pdwp8G2P44qpw TwehH+8UniNgQT09sVX+qzf3aE/5TfCPx3/DFW1j+Lm55P2PYfIYqvxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVZB/cR/6o/Viq/FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FVkH9xH/qj9WKr 8VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VWQf3Ef+qP1YqvxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxVZCCIUB2IUAj6MVX4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FWM+ZfzH 8q+Wrw2us3D20gh+sczG5Qx8qMQ9KfD1996VIIxVfoX5jeR9f1Aado+sQXl8Vd/Qj5cqRkB+oG61 FR1xVkeKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KpP6nm//fGn/wDI2f8A6p4qlt75e1C+uWurzR9GuLl1EbzSGRnKKQwWpirSoGKqOmeUG0q8+u6Z 5f0GxvPj/wBIt0aKT97Tn8SQg/FxFfHFU49Tzf8A740//kbP/wBU8VTdOfBedA9ByC9K96VxVvFX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXhOl/wDOQv5i 6p5Ql84WH5ZNN5cghnuZL/8ATVuoEVryEzem8Cynh6bdF7bYqkWr/wDOXmvaPY6bfal+Xz21prEJ uNNlbVFImiFKutLUmm464q+jLC6+t2NtdceH1iJJeFa05qGpXatK4qr4q7FXYq7FXYq7FXYq8ZX8 8/Pmo+adf0Lyx+Xj64mgX0thcXq6rDbKWiZgGYSwALyCE05HwrhVLbv/AJyI/Ma01q90Sf8AK+Vd U0+zOo3lsNXhYx2gNDMWW3Kla+BxpXqX5aedP8beSNL80fU/0f8ApJZG+p+p63D05ni/vOEfKvp1 +yMCsmxV2KuxV2KuxV2Ksd/MPzd/g/yXqvmX6p9e/RkQl+qep6PqVdUp6nGTj9r+U4q8p8m/85Ef mJ50sZb/AMs/li+oWcMrQSTjWIIkEqKrslZrePfjIp+nFXaD/wA5K+ZdSPlW7uvIZstB82alFpen 6t+lI5R6j3H1d29FbdZPgYNs3GtOuKveMVdirsVdirsVdirsVUL+6+qWNzdcef1eJ5eFaV4KWpXe laYq8B8mf85Q+cvOt1Pa+WPy3fUZrZVa4VdXijCK5IUs0ttGu/E98VW+c/8AnKXzf5LvobHzP+XL addXEfrQxtq8UvJK05BoraRevviqTf8AOKn5mqfJOv8AlvW4YToflexl1AMsbSSvbyPLLdK6VYSA V2AXvTfCqVea/MGgebvyc/NDWLOEtbWGqWEehR3KAPZWjzWaenboQfq6OwkJVKDf54q+p9B/44en f8wsP/JsYFR2KuxV2KuxV2KuxV2KvhDWPzM82+RPz181ahoU0ksY1nUGn0l5JvqlwzNLGDNDE6eo U58lr0IGFUf5Y0jzT+YljrOo6X5i1a1/MhBNLrUd3dTQWTaIeR+rxlEeYn1WWkbN6fGuKvpP/nGr /wAkh5X/AOMdz/1GTYlXpuBXYq7FXYq7FXYq87/5yF/8kx5q/wCYVf8Ak8mKsW/JH8or7yje6PrW ia1dTeU9V0ZbrUNKubosv6SulicTRW8cUcPH0048iefatMKpf+ZcGpWNp+Umn6xZ6fpuq/4wtHks dIBWyVRdMQ0QZVb4lkRm2HxE4q99wK7FXYq7FXYq7FXYqgde/wCOHqP/ADCzf8mzir8+fyX8+T+S vPen6xLc3cWipJ/uYgtGaksPB1USRghZArNyAb6MKvYPzn/Lb9NeQNe/NnVdXvbuW5mtrzypZG45 28OlX8luIo5IZYuUcgEzkpHJxG3XfFXz/wCSf8Qf4v0X/DlP0/8AXYP0Vy4U+s+oPSr6vwfbp9rb FCr5+/xN/jPWP8Ucf8Q/WX/SnH0+Pr/tU9L93/wO2Kv0h0H/AI4enf8AMLD/AMmxgSjsVdirsVdi rsVdirsVfB15/jf/AKGW1v8AwNx/xT+l9U/R3P0eP2Z/Wr6/7r+55/a+jfCqf6h/0Mv/AMrC13n6 f+Kf0F/uV9H6nx/RfPbhT4OfLpx+PwxV9C/841f+SQ8r/wDGO5/6jJsSr03ArsVdirsVdirsVed/ 85C/+SY81f8AMKv/ACeTFXzR+RX/AEMR/hO8/wCVbeh+gvr0v1j1vqVfrnow86fWPj/u/T/yfxwq 81/Kj/yaXk7/ALbmm/8AUXHih+kuBLsVdirsVdirsVdiqB17/jh6j/zCzf8AJs4q/PPyJ/ysD/Df m/8Awzw/RH1Bf8TcvQr9Uq1OPq/H1r/d74VZ15u/6GE/5UnZfp30v+Ve/VdP+rcPqnqfVaR/U+Xp fvaf3f2t69cVf//Z + + + + uuid:cee35cb8-0281-4c8a-bddd-1f77f377f4fb + xmp.did:0b25a622-eb67-a442-a088-4621e38ded55 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:7bac8120-9233-4d70-b2cc-592d1cca6cd9 + xmp.did:6dfd96ad-dccb-204a-a7f5-440a1c8a15cb + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:0b25a622-eb67-a442-a088-4621e38ded55 + 2026-05-01T21:58:30+02:00 + Adobe Illustrator 29.6 (Windows) + / + + + + Print + Adobe Illustrator + False + False + True + 1 + + 297.000024 + 209.999994 + Millimeters + + + + + RobotoMono-Regular + Roboto Mono + Regular + TrueType + Version 3.001 + False + RobotoMono-VariableFont_wght.ttf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + Standard-Farbfeldgruppe + 0 + + + + Weiß + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Schwarz + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Rot + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Gelb + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Grün + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blau + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 15.000000 + 100.000000 + 90.000000 + 10.000000 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000000 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000000 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 20.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 10.000000 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000000 + 95.000000 + 30.000000 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000000 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 15.000000 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000000 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000000 + 100.000000 + 35.000000 + 10.000000 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000000 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 20.000000 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 40.000000 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 40.000000 + 45.000000 + 50.000000 + 5.000000 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000000 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000000 + 65.000000 + 40.000000 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 40.000000 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000000 + 50.000000 + 75.000000 + 10.000000 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000000 + 60.000000 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 40.000000 + 65.000000 + 90.000000 + 35.000000 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 40.000000 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Graustufen + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999400 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998800 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999700 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999100 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999400 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998800 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999700 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999100 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998800 + + + + + + Strahlende Farben + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000000 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000000 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000000 + 90.000000 + 0.003100 + 0.003100 + + + + + + + Adobe PDF library 17.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 8 0 obj <>/Font<>/ProcSet[/PDF/Text]/Properties<>/XObject<>>>/Thumb 18 0 R/TrimBox[0.0 0.0 841.89 595.276]/Type/Page/PieceInfo<>>> endobj 9 0 obj <>stream +HWr0+tCzZ5PW",Tȁg~LJe_jz4=ç8|<*q{wIB==:cjxnJ<6IiF O5%&)}G*8q3|Xhh M +R}&H|[VYz+ΰ>#j쌲 l<@LGn\(] ]VqZ6MK^yS,_ Y"zI8 htGL9RӋԱ(:(#{my@ĬyiX"jn@P +4.帮 ͑5OAGҶ>*iښÖJj$W5@6e@Ĕ#9xĔ8I!E^> + P >ȥ4Y&\1цwٶy.֙7$:9sEG8`L c ,`}IJ9B"E![!Q#P;RȎvs;}};L^4؆a@Me=*wGͮ`la2^[s> endobj 18 0 obj <>stream +8;Z]!!=j`)$q8?b4QZ"[qt)pJiW`l8!op%1r<^cWIbtLO.H:2.'\/N7nOV;e@G9_W +n;-Lh.*Z7.?d$n/URE)0Z;X[P1)JM4omp^tS]g+u`E3(iiUVlo0<_=@_TZs7V^!Eh +>ks-4Pb/df^.&qP*tLWb/@!99`_lfU@4i`@&:1gkPd<-Y@TJ]=M +I\lE7m5d;H.rpU` +/[W;:.qAA`3:'eBW4#Zd8+c-5H*WDD@>uDYgPSJ:_;Gme1'9ZF\J?t +RaqnM7_Jg&!<<'!!!*'!!s")4c)U~> +endstream endobj 19 0 obj <> endobj 21 0 obj <> endobj 22 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 29.6.1 +%%For: (Sven Steinert) () +%%Title: (Unbenannt-1) +%%CreationDate: 5/1/2026 9:58 PM +%%Canvassize: 16383 +%%BoundingBox: 84 -566 755 -30 +%%HiResBoundingBox: 84.4842856024352 -565.2755737305 754.563025016501 -30.2347603470844 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 9 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%CMYKProcessColor: 1 1 1 1 ([Passermarken]) +%AI3_Cropmarks: 0 -595.2755737305 841.889831543 0 +%AI3_TemplateBox: 421.5 -298.5 421.5 -298.5 +%AI3_TileBox: 24.9449157714998 -603.637786865249 816.944915771499 8.36221313475016 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 1 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 2 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -247.150406504047 36.2190040650321 1.5 0 8261.51626016262 8276.1143292683 2256 1300 18 1 0 46 87 0 0 0 1 1 0 1 1 0 0 +%AI17_Alternate_Content +%AI9_OpenToView: -247.150406504047 36.2190040650321 1.5 2256 1300 18 1 0 46 87 0 0 0 1 1 0 1 1 0 0 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 7 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:115 -694 +%AI7_GridSettings: 36 8 36 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 23 0 obj <>stream +%AI24_ZStandard_Data(/X T :o@>=_X?GگScJRJ)eJ; ( +3 ++kZwP DYlb7y97u+dMVbH6AŲIi|>K%,&ؗnbDҀ(x b!<<8@@hhb< gb  ̲jJᘧ]ϫ3p4N4łAU,xXPbi< b`)GqÊEaC*`< e;1JéKjLXXeLrb!r\X?%bQv>x00S*;Lh4Ɣa$M$$" zM NØ81abR+6뾌6裐2tDTdtd:1AzhEUeuX^j)n k1~k9S,#B''#GB!5l>ӊ}3ܰCyO3޸CaAbHg0 `@ bmPָ6Fh<Ccu8:a Gp<c}У>XsxP2bA*4ґdәyiYIٜd@>Ё dјxhXHXT,rs\ bsXv +RrTrbh476ajPi00 Cp0  3c(c qg 7mgba5$U,F{ EAR@x4~G=<p0wؑt G`h@h(P, +X(xX B#dł "H р +& "$ HJ\d.<@php +L$L`H"!PHL@".H$" 4D(0hxp  hL@XH4@4v\`Ep0 + $8H4 "" xdB"2xM'hn2SM2ҩ-䄐R$'\iRy`%ics86גF +"DD/uފXxs)k&EyY]meIg[vw;`Igr)N~G*&?_6ܳ[e=׳SsYʒV*~ԕ|N=M"{Akwm˔UׂT3 ~n:1U{ I7K]s+,&#S"~p+ޅ/k3Wi7%ޔXLe?Ǧ}cX,+l=m;ݙ9lŶ׷J'^KGTyB&,*!~ХK]nJG"LWr׭՘%ɬ\j,iKn -1+/r6nm_BmF4$؞#O-ԻWet-iZIW"hyt{XtM稅6Ҕ4%oU螲CWF>D'U =fYNN]B}vv}GxU8;$;e0vO:BsYW.pp./lģE{efUυ8x;XZ,ڦ.i_f Mhs!aF.fAm;!y^UVGBJQhW:+_{*kS>WXIe4R=( vLl\nf.NL,9wFd +VM:2:+g̬gOxzI;ĩ3ˢo +=)dg .uufywC-ir|>33Q +ojJ+,orV2-O  IY]]+8J G'dצ+ Ī$|TϽҹKf d,XuPaZSKW<}/NKXWh$+7K/)1}/iKl#|gؚIf5%&*z^lVWiO:sj V!k&%omڇ&^T(yXBuխS*{I䒌ƞ+H&Jt1\~L%UIKΞO,T/{EFKS%*FXZ!g<%S%{[O +%=tXuQqQz=?@@ʳ;Tt賴RH&`afVu8,rH9W%&,gue%:&"5»fvW%JeZe7*фٯu:{D1!]CȊQ>FHh?,TUB 6h] :PzJ}^A*/b96CmTjCJ5EQirm,x6xzU/T{%qԡ'x"ĶȎ-raUiˢlKYrX$+RXYT~Xrn/~uNT|\i>=CTr,ɘI7)'͉(ԒҲ3ñxZgXh=k5-oP`^F]!lX +k4z8ϊkuܗMG)NZPk{qVSwiP]}sVdڋ2]Cv"r"iNv{ Qkld<)#+IًӴ]Dze1+ ]飹׌ 2cX&&z{–1?vOhfN.g{f'i|9u|^ɮXL3kѽֲq]:}赟RCuSkڞ)54c)ai^dhبH藊LDy}V"24U)'JcP:nW\J¹[dDvWND{w:ᘫ^#;! 5k\%Ydvw?T£l_'˨ gDVT_[*WXǜHtVIcO: ]o74ev.b3ixoUq +fYNh}lGoݧJݙrY$D7[{]s6{w,}ȁCHGJ/J_s7*bW*tEфC͈ ~^$*2کCy,uUsP+kg;P[FiPg%j2啙]9+&fRN?J+4y [;3{A㬼<,La]եXvF)sz$›<"aQuUH-!zh/j!2HeG:$,Tx men4:rntGf+6~uK%ɨQ^ͺ~̾ƨQد{KEq)&p ƃ<`>O)oSrfwܓКK5A+Z2ivvl_y%YYt3g{O}E'Z/󌯠z;>s7}n9ff2ꆿ9iWjlu}ڜ?Vb]^9E+Kf^zu*}~ޜ?S4\DsNX:mJMgԘ` Hw̝3zu.YI19Hgf 2^|"GRYZ\fg3/uDID%Ʀ|TLFٛұʳa'KJٝԺx M/+[EH=l!pƵ/f\VtxMk1>T+UXaSUfWfω~ݓ}~u~*7Ǽ׬iv)$y3K'|pi(LdfRvaҸ`6aY* eU*,Nqfʲ$ݕ?r i +Mrجc,VQ~/uTەϝP,ճVN~.W_5ow*ҭ7ϫ|vWVü4o^|yв|eBtdKwn>{htϾBh4ǻ,m15\eh +V4Vsjb0K늚,WM,Yf<zGBaR)b⇆JFi=yi$QgDX̂t,51r5A<$Մn Z}i @{ReWp2 屴v+O˯Bsthj+]*׳t#A9 +d!2dt7)gUi4 nOC/j ;<Ysa!]cBTy{I<2͜dLLOpZM4’m[ˉ8sT6{B T™_Y=oX9/[1WU8]%e?" jOs/ + i]f䛐ev3C=;0CCOޜL5WBWUM|[1D6Խ~,=obF,&6e^nŗiNf/羽_tGx7]Bgyˢ=[s9M97YβWUcfg VvVLN*"cl?}2H*HˣTddWS/zdo$ӳNeIZMLyMq2K]]nn'Dj/eK.MfjNu*2L"Suȯ:)xv5;%i{v{eZMoB^d3D<e"cmv>sB|scSfv|S)+oNy6+=Vc>/VDV's!_]Uɪ)JB؎ie=dw2>lXjfVOlJþjLYszͦgg,>^\zJZsX8/9/q~c8k9o^S*/p +坽+7fs|{ըM36ثZi+<]UC5/W+P8f[ +B{t<: qyҎn{F艵$9V]ծ"s6%Xz£6pl 4˂7,+t fehvgXf6ݲ{津VӦlYoaHfnѮmCW쌬-uMKMdyFoe6FS9/62TFٝ7͔ZUK}.iEg U +QU'[L)_Vхʭ$][Y Mp>vҀ:%uʘ~O:?G$UK,={WօlrY_uW)!2HXhubZ9t[ʺ$eezzh#cUmBy%[8*5%pZ.(O9phx + 0  ,$T9T[Y7XnJ!> %u5b!,ě_UY{$aUQ(vK$Oa`XU 1-{7+:9ؙVyGd)9u,LҕB+NwYeuzeiҼ<4cVa՝ςg7er0BFw3ZN5|wZfiފGhߨ4Qc9B$H $h>yX4T:"Eu"Q !s#M *>NVg˹(Nt[/D4}ĭ˼A?7OȤ%ب\/ @56xf=᣷o$7nw [h"iA"`D!O[N,HeDQB .׆CA_GWܺ}!t8W1ZMT& '|٣>~'t fu1ʀv!fdL&6i /.eq3,&/RC:즼5€}.B&F#k^h(R<79SIC yGnn[L*\ZRSƓE9 z3P6;=}m5Í[V6X=2Iv3M]y‘VA64D5qǒ. ?(P dHSɄaGŠ2 +s\ABaE; <ƺUpob 'eR^2M,FMjV1H/@QIޫv.Ҷ:RV^hMq+}I@pt=ײ,6+h5 WMlę4ZFV>.UpwJe~U\4m Mp[I+ |["Mez+ro?mxn&fݔ[vtg-~B~r\iq۽VXv;%( ++Jb)B=ZQJhE"GYօ8%1HLgK{#`r˓~edK[C +(m8c$H[T|yFٍUTO/' + + ,VONI񊂜>q.,_ڦDOFۏ^DO +&B{ +R] _}"PL%m|b&Pt ik"PtDwR- zL<8u ؚ +_bAHer+̇>1tCՐ5D @0&FM +um`w&[tǃXAy{rSQGz +-qVH$,,hspҬ# `b.qߢ|%y ”X荓7M.kX ݦbf;mva!gp$0!Ŧ, n.`ܿҀF;0V yRb;8&LtW{O2z&  +Nebw&̑4R`X'DWLm +fG~YD;)\^qnJ&v<(<*|5y岖xL +p +^Y<$l $bNںyAt/҉Std\v C>H.B.Szd+\q.m"vE T2<F pGbM*7g&=P08ίkCCx 31ƈR7( &79M V0$<#P6ZMW ,0=joĮ P+/[Ux1NOh " = bOI ΚD8CjaYEd^ѴTI$&bAiyNqW!b0rb5ƥ⿬*" W!e+"D;ɥ C̒ͭ̊!VEW;5{jFF%EdME{5\͢IE2P=6}RpE S,oMY;P-E|CЃ}K|OqJx8S'7"y=^#SK3{ޚ+fȯ'2PW"3.N:vj/@D*FL/T+8A;l 7|"ϰVz^s>*RiQG]r@M79Z! ]E7ߞ\i=f%j,(XyFEB$X7^.C=g0ߊ!P ^Ex!(yќK7DX bޢD8($2"}p@у0!jI%NĖUŅ;!o:aҚٙrUDD') ( ѹڝZ/dkb#}NBS80uAKS0yPMIOM$˵<&t|oV1Gd0j>ldLe=St.ЦUcgZ;H"2g{ώ,Ct΂BtM&W 3Q,II" 1ZrDA +JTPJR{H ĥ(6ZPklcA +w[n: +R#F@ м/d1 +3>ľ*w1f}F1b\0|HjǨe9D;Dpmub Cj) Hxמ\]c +c;<ÔC#MDtbPwِrn35L A}J`3gH oxQ?QzFH ѩmK-m/g\ψ=M zj}+Iy0܋ϋs*ZtU0[B#Ie|3Q3Y-f1adP62E y@+EJU7w`&ڼrӁr337$:Y`!HRBMfdE]a&YG5 2" +c9只xpU[̈́- #E/y`M+8UF8Xܵ^{U`!}Hyb <%55c{% +sq8I2.7%?ua3X'ı7]t4oȫ9=r6t!^WܕJ&~E2 '9jG:;F lu筟k'ِFAN3 W נM IIAQU#:Pi2(i>ŋgĉJ!7]b (ʧK>/,.Yw(X+e[+ kDƾ]d>+oR(Q0D}NPWd,ٖw+H[hR-;"aJHIFӘ/٣ҡ@rב/sx||ǷV(X|؏Zo4ux1C>cDªE=59bJ#n4؉HWZ{]ߓQL[ D6cǏag5T^={ىE؉ +46)ىwHqD2} +D/eɱ-Òfȵ!~\^OH[_KD 퉋k4-`O!OL)e5Csl<(΋퉭2֞ؓ {hOڞEvhи.tciyx]g8s{pmDV0R +dʈ~ᐗ6CAy^sQHcoj46i_oF5QWL@?zQmD:O.sSn^ 5Ε{򄢆 05To)-vEJp5WC=9P% :TPIeCC]"r *hЗF{U얭 +a/uoB8!uLJι, ö jIӡ(TPm +dz[xh|[ju0hφNzMHU;,EIv y5?ѓ/}>?A }6nUCד΅u;1tϰkBO{Y;H+%f + mϡHsmN P f=9]X[˹PD;AЬ{uW`ʲɶ +u#ape[t!TzX.>jY'X_N<{ׂ4j@X-@4oīA \}׵`́A׺vLTǸɉ'=~'ϖJ%NMOzc 퓔sj\6c\1.V*H&:i^Uf{ABs@1a() ð x +<d@:o5{5+յSOHmg=յ 'q'7Fc" ZC{Iv|mlCA Kr ' a૭Ƥ<ƥD/` [xe,KUG$J<%*d+cpr_PK).z5!(Yu8%Wyyh!-Yih8@ET~\&޴VƋ~l*!5MAVSŃ&D3F_PO3'䫿 +)?N*+k@eE!@aӨ# 9l>>jݘRc33,5'I%zW#OXKaV4Uc=!fhgx,CMq$lQ6"L@ḥshMY֑%cheYqE1V;*DQݱwԲ ,1Pnjz|ْexAe`hDrQ|a6uy[L+S21xw GHH\5#14"8Mr}g%8E:|dZZ!p N?Ơ=1/QGx5T݌4.B + +#e*@e#[_?v)6rtcPH#%! TVX P;SaYg~LER`K`\j"a@#t'ߨ GOb:E~7vۛymELkGi#. ~FtbKڳkMym0cr1^̮Z/&jS}҇b5/RWՁڰ_TeZ}RPA἟ d(O'!傼1<*L'X*8|⭥Y/$B'`YzҍRRtݿ3uȹ >!Ei?[ׁ !M__p3qIW!>P}sy nmFk:N x@!T 1-"# 86Z5.'{w,й;Y!#s;[`0}y}Bي[j5Kʧҳͻ> Y?l3`Nɍ]T,ĽCmeDZek=y`E6sZ'RQ4ZwZ瞠Ћj'1o&0-%jGKyӶ>Ԛ拇B/)i-#b˭CMerMӍHG|AvIpVɣL|AQ+ YOd?'FMxF(ѭ,&;We_y&|ǀlY'"W'H6[ +ɶ[˨lS`-ɴjxžx`eDwugC]hr]uU⒝0}#8s:@*}~%dC6uOHJdtK`c7yVTIZ>΄Æo4gs3xE~^95[ԩYBIs5Q~Hh"IO:ebFM 2[,Uq%@4 4v?制%иU) ѩ]C!z~D*yxL}2]z%w),@-Qzg.(5kHxcOz|l5(^7t[UrtC,HqẸ~-ǘ? !N[OѿX!o"#>/ME߆Q]"Vߪ o:,jHnՠM!|9n#Ot8h{;ĶjžA/g,_D's Dg.`~7_kRgzjP*AO< -K]uz,Ӊا}9uό\H^  ˟R\7^4ÖoqODrϯ̼@۫I:M# bW5- EOlOl뚙V\秕!UaxEwOb a%U _oşYåZ1/M?8-"EOƂj[]"lgG~4~VY?VOU•ӢK~aZi䉧S\qt*5GƹW-'@_~6hcƟ--pI&TAş'xӹ#!ҕM?}Q>7K+U\9|d9n|#-_Op%LxV<Ƭ,Oюq!zLgD^yYE:2fkttͳmڳx>qgɟh,',؝,],S]LMUgɱ5,wҰ'okmJZ{RRwyTK.1-7o1r B2WanxRMXQQI2R$rU0k-'r/ LmDD?%Uf#Mt}܂C8SXUv? w+t'.$8<|vsCnɡ[6&9%mu\VQ4 =Ta 0= Ϋ/SXS>.`}h֗ $I<+,6孑.`S VH=KVq7@,r`IYA(-EEB@3ԃ著gAkoUf+۹)z +1)eC}S2B]u0i{ōY7?p' =*̬{E '6σIA'~%)ȇY1)XH2L Af.EgՔ.uN#c:*;?ezN;YTÏj7Ea?nԠ{vBVpF.5n,O-T:jjuʳ>QT-ޮ$i>qWX(٤,@!k v+$ #dL=7MIpr?1Ixbrq![R*PVg, ?B6*40Lo?ňaj➚.ZnJz<+E8:3?k>YEZ> %_"U z4 g9tZ)%ri1mٮz1a9vEHP';h8Hý[/Ա~9'Kb?8B\(u]c/ܡ?ܭbb,&Vӷq+J=M`2 Od]XFg|hPy XGDZzBBB^()!O|`\)|xw|utf2 n +2Xbr4͹=w>"ѣ@؛] m\kEkgH71tҶb%A :wmt> +|Y{7,B7\ī}+ȦwFEA\S khߟWIs$ZA]k"6z< + +Sl]JzJuňHl@^Wx)l1vM3H&hk+zKuyTpf:@F@p˜$6_z4)u#6 +={`:*&REtPeWUM!h_OOg( #bt@U+T|J{`w>Z1 ED;OG}o"X)ۈʜo7ϋ~g+[kԭA 4ܤ(hj2c:aa߼Gwqx2BF]_XXZqڵ$]IW܇XS#1(~1vh%l +ZOCd ݵ}Qy x'B!d߯ CI_k4q TgdL4h+9L9+(fO1Ji`21c۰3549qf*SLJ[N-"wӖq+UQ)D1PL Fad1g$;Px|BM*E#Sŧ:QQ9vFW]el(XB}W,&O Hb.9 HLȨ-0m\UhPT-nm +5ߐ<SZ`yα%Gy0c! FFoL&U+k࿭\\':rJ*|[r:xc dpe O|XLi̽{EN{p ZHW&I3J[ʀYG5<\D Żgux_0-6 vC +`e#}NW|(nq8ʱ7NufUέ0?CEq/-q@BxϋI%A4oE0k(DS-ޓwp ƈg6Kr q܆0wBU,ċ +>u3oF9눊ԑUE-!séMk+DPuAj- +>ATlbeyE0(:a셄:p. |\Q.Y f-Aht.n" Z'K#m܌\7Bkrpg+ٱN,?4Gs ][ Wz\[W{qXiH\r3Zl49o?Ggf[ԠdžJ'k0Ɖ dR6=Jh\>p YyWnm[G ?Qmz"k}F):O{QYNvWuI̟(Q 4)w!]߾M/5  =ExA8֔<&mxiW +ujxb j/ Gy9琗l!M+[n'f9,R,!}Iz͇?mYf}v5vzEpd#!9"6SՋwIYK]Ɏ-OMrFeI ,B֡5Yߐ6bkhp ̏§4!1[5Rsrd,B] , ւ25:67RnF6&{F~.}0dzYBЂ +M4|z'anìs$:QedeލNo5y`>ݲ? u]C ,!.tyLk2DչN~Etk5f7 2R7#-ΣFтnA{QSԛ |-K1V}6L\Sf40c6!, !7EK`nDqL˲ß L* aԶ!Rȯۨ;.3z+LL Z9:gM_a}[X',/*OK18m7DC4ps22uJk}p<&z@LOu>pCnG +QH#Psut@B 5Mլe745KZS xf4dY\HĀ)(]F + )yư&1«l`b{7 |2 "\ωWB}N}.?vg8~ǎG9Zwyt+~kuTwq (wTBHsꧦճŠ2JO#X8## "$k^I@2&G]ȢJPKMG~p#Fh~ܕMຑHvn \4!-[aV@('C`ֲBEXHMfnhd:YZ ⾁IF` | ! #_}=|$"{XX!0)Wq?#R897\-#5WR`t0vP/Ba_G}Hwo`d6sx |i$> ?+eCq0&%yjA~@x8zk1S&`AAcm(o?ik L~\YcQy"W9fOE1g2d0.DH|p@Ovphcl`RO,_|TU [)JHz +yb!i]?e}w&M+[?ͅxZLk!xxY!T8-y<Ř'=R!Y 8sAb 3[ Bjh\Tcb ݉!?S0/{\T3'~';"| +x_կUDTp1Ƽ8-XH{փ:=mO/<^kWfEel 82kݹN@F3Ѳ-16lF8B|ei YlBi ЃbKX ˰a% !HW5!%C*}YO/i& k*ȕ|MB#Ε TB$2y9 h@@WҀ~Yl؆x08 f}Ќ +©rxoHk. .m64.A4D4QU L֦F)㙣7RJToU5jmhjG5TG !΁SģXJ+8eV!%Ѧ( 񊃑гIqZq2FJb I.%Y._a ]7H52$ҹ5P1"V o +S;x+⤔ę0'ļRWZ>^H)= _>]ȄlT(SCd=WvC֡?20-J$hF)~FOtp"uGQ5i>h)c|TIuBh2کL:3T7].3;"kHEI}t<Ə vxʘtq9Pl=yuZjYIqNRiٻt!ߐ"]Zzd󯼚qL̍jyOWe,BwnFE~gQf:@Ꮩjq9Z@G#]Qb%7u/{E j>q$kV%9v"ڿ@̔vxr +Lugn +N㗬g j8ųj1B3lqkg +i _N5a?4lؔg1Wvp} 9-i86ҾJvgnc@G !W_zgweYws p;9Na~ZCB̲/㮓>|@Y7~uVTǻ.Qy8ce_z:v~^.|QW| ?."4ROQ@p`[92A ers\ $imzHy֎ f/oΓ=DT{ht{f3{e,~~)1+bN߽%^dJ2Ӏ|~ׁ 2Z/Ңtd{2v\J tni aI{vqAuT"}XDeև/ekIʰ0~[V(KC:*^(\znVULuЮ/B)Ba%1+`Fu\"TkP(BgĺөfP!20*qߝT]&[,cv8(Su)E-0Ch|S}`I$XI"+[0i)%;? X,(~'ة oI;dr4JF&}KJZj++I9z_35&dn@) NDHKTB#ۯ7J\ZfC-8Q + AA2S^>:>ǃٵH,2/V6 +|V:m@̨ o+`=Л,౺- &C7 +((u뎥`PCM,1Fătv#um{_҃ +d>'+yO0W@`Z -aNjD`0K4!`(I&_Ġ0& $~:_gs}cab ju$XwS.deN5ى k Y(|m{ 0/071L|V2dͼv~CFK=dҿ7=:`q=x.L#n/'|k#W1#BA2Z*(eA^PyHqG\JFņCݺ.oV87tqMkf4)}汽8WiG7G 8PX m-!z"ɉ_WT/2`(c^F[F>OˠGe<0px"90lƥ)2Qz +mnx^?_ޠM'CEۥ2̊x-m$F!:rXⴁ엣vv!;GO0S*ZG#v :Ps{ #v+x.Y6ן<C%|xe+. mpxvlޙ0L4g=UL}`o J@ڽjۙ>7pz?%"QƷQPa5ATM& U >^ҥaUY98P"d 3X5PǩЖg%%4i &$c9v2AsuФ~]S`zs鎓.H> g D x178Ⱥ'7V)aY hntoG0p֥xUl p]d+?8T(bُcb RDD4oD]$L)Iڹz-bBbsM>ۦEtWREj!6Kmko 'COߙSh8c?Q}f@vW*CZ÷Ң! yڝԛ<M(XZ;#A۟{~#tD YRV*l[xhϨg(BJRʔry# BD $ .xV@ `"@N $&P FЀ TDflqiă* 8/jQbf , ,@X 4H^Ak@`d?!Y ";3qp.<;6O|'/N0ȕWԢ[}8 =|I8ӳV}JC+S h*8%C $H%B[ nHF hAozw ;) 9s0~ʄ: zB?Uc٫^EFӾצo軫wsRnz-#i-(2Co5˪ALLL2#Ȓ⌔- qsYCZݑX2S0NI\JצFNY2sUofD{|7_Լz"xA7=@A|1ȇnUSHыjD&29d3?aۓ6DA&VX)>Qx,jV\L DG =8sXwM0dF,=!ᦢQAGȇʴUw_RrO՜\$&VbDjP,DF+mЌRȎTaUu#}goKy3$a!ihD5 +^f +ab~&5|RRʣIMYX+vR@5>`%E~d`p@QEl,Cv>ђVi#N"ۄ/~ɰ?^B5nH Y52}$-"I}DxNI!yFJ9Dԛdb[A 4g.RlDȵ/ ٛ95!=KD%"1H8Bߘ"!ɥ]QHwCD2KvP qzie83CfS~x- +CsLI=,ZB5G2 /;BJD842A^qid xd|ocx)x!rP1ɱ P3])mfdBv$=4H ))WCA5+f\]$3 D2C4%e$nEc3c.|s#"`ahqPj62 +i]1D2Q i(E(:Dž(H#h~Tj71:s0ůXSJ#T̔/r*w&Oqo'Se!)P1Sy2RN(KG Rr`ʨl8ܪاO ]C$<ρ]w@S!8Tu ?$%" QSb""ASO5 7DSX>.$5$2BSZ|zf1DBj(M:*4 ֜$Jh)VFjj!u2U#ԲgJ3m%Ha=C[9#ɰgZB%#<>(B3CdOش.!Y&jh46Gj&406DX> .CfO$*{|'Hj)*,O k=skjrGM tHޕ<՚X "VCTR4EmnD%VR vzD +zKZ W>N3*ڝIP>bCa{ 2Ci;_Hv[4ېG0A~Pi%q%:kђ8t#<)y):Q"8i0uP5ܿ(Ì +}:ÿoR=1up y!oQ3TBԕFqFyоj4dIVY emecɟMj- + +U)7 s~9bN0=˰T(R9xlQv9谊!jPk(i=9EsAiqvގ< mA.ΪjBI~ٵ`,"%vP(S/!L/ ٙs$ZF93IJ ȳ+b03!ꀺ*W!J5 )gfx"φyQ66LFB490D*dydEydJje,^[. ,\&HDhoIYh& ɺ)XƟ>(%<"li0 P)A Q#Ses l+*"Z9&5C#UT'2ڪHp/|AIPbF z@rcS.F_ "ȜJ)S 3!d5D-r:򨚔R- UtE\̑L-3jBt:dd8FخPj(<'(,H`J-SE9I X,/ؽ%uTF"Hd&ZwmB5'L9}Ӥ EU43TX|ל¢պa9=Ђrv mZ?&rOȥo0ˁRqm5bx<غ'*9-)ф/7x@SLJA2EdžRBtHB܏58]Rz#af`9zh8doLWm$-!iv/No"fyf:aKCjQHVO ЏO0HRyFF9 -5A +/gh:/:]#"⍙N;g⫢2E™Dhv \â$MH)/'HN5)5[Fےt^,-ZO?Dd0D%oC*V#吹˩,DC⍞P)#VTԩdO!6Q5GwE7M뜑ZXyZM|WoDUxYRD :lHq5ì\iRםhE#M{R4QD/苷HƫPdٔQeW*RPIq4MvrF-*NlK$1JPP=ORA#}+U 34:U%/QdO!m%b$θT\sRÙͩ~Gc + 9)єfhSŷ-_ISQDEabbė&ȯ i*NئD.GC0UPxZ43H{;)kije< QTS|&NLԇY 3f0=&pٖ/mWBg@'Ld܀XF"ZT+Dv[gܬZlD1 Ej19 c\:B(F{11tpVuG!>ڸ\6;X)0*v|8!@5]j\S=j4Eҩ y8$bhX.F5MmL#64mx +BWLTMw*!Z`HLE03 3 լ-j͐Ymd"%ԓre1LkcX*ȍY)4Y.~!@A8 mav9# +t,ܪwjuW/NY4/SuR(S]1y#OGZό9`EѩKNST;mʈy:Cҩt +_Cf]V.Jf^"y +D +ӑWt Z#B#S#egF)Gsyy:T!1kOf̗V!zReIZCML*ES'XDsz"Tb&s:IhT,ՔYH>2$Rš!s?K9!SI$j2 +DC3qf>r?"u[P+X2ÒaF VI1+`w$e$8(9>j"4ۧqPS@AĉXt"SURů8T%JQQb*k+ofP5y𨵢蚨GjQLΩD1URn|FLYM@rLWZr3ٹ6G)хUsJlUD®[Dqk,:DX^ĥD%kDg'<FO4C?U(>#O"tz~l(T+O L )EE*N4a3H<>7<*GِBe?OƄ#P!`! 87$T+%"t*z]b.fM79#\Ÿ%Zx0/_o6=؜j(e碃[g}TOBy"DtKXRGfT&P' ?*9Uk uu*@X* m11s@״>(SFkHQ$N}B&5>D;>j7'zH('d郫MO 7,H/zi$oi(#>,ɤ9L0"BgNIV=;zӬxҾ(wE%O[i"qfRY|<ȏ&Cɼ5'mhڟ“Oy)e2c!E:IbbU #N&#TVNc61jw3x<`yvuܹ/֪]8MGOE_"ғ{.x)i j!5VB232 }(Hxׄ:TE9}5"\xT'¢1\g\FjS \Ǧ|~a,mİl$\vG-W鬒oL_UGfdϫֹCoOy Y'e - 7,)or-"c'$GKV~.&JlpOPJBWEx 'b'SʎEr0Nsh#sf^fR1e|&Rg諢q6hix)"q9Y]?Dt`to|tH goIj/1[kȏ _3tBݮBں&9r Y~+~hTR 1*?]I{˭u*"%> WnI~$ ѓ1\Q}{hht +NG|$$J'ȟ$d4V`?B2¥|9 U#d>s(OKKE"}¶V(EaºLxRkۀLSU&SQr\"r1շڻ[nX6HZ~Pñ̆O~Irb$EyqT*G鋚qjOJ)92򱙸b'_;(X5q/TEeDӧ +_M; GumOňhnzb,7#\B**~v5\\{M⎱{= +/`qmn3LXg%JIX#s_`,)3EfV0m/EU*Cuҥ9`vjO8J-0@{wYOګXbYAՌ90V}lBdsy}{Ux= Xex/X .cKO)'d,@v&>h2< +_WUeXƒK1 Y4}nsH#2ӶmM%*|v(ˋ?JX*yAh+ày0] (4V_nV7{6xNԆ{ Җ)/|U5V XTj, +#0X1aH[c8k~xſR >6GjiP`o!xIXYZic!czvx:"J~R8DeEQ76 +Ky;|OϮr^2)F,M&V ؤ})y>{c=NRƪ>w$#y% G1M +k~ Ju wSwø]k wFԯ1Vh|Ik*.vM[DT*V uXGSx_XS*(('`ynM kZ6|7 +6lu?5N{ő6q18(ȫZ.ł\s}dC1juk5 +H9#ص>qm,52l=!+Q46$.h lXEX9 +n*PKGƋ.Mlj3X1̺¿V7My {˪yYrn5Pnj1cEũE`\0ܥ=1؍w6!& +wSqcōN+-rlbl#|q6\ w +^y'n,?S}b xn3Z34kLFޱ0q.@7 :Ѐ/97UST6W7G;osX23\܍`7yHrix:=>\e77%8軱 +JL6Vclߞ@mVRA&Xvd%n*~xP8#l,eD_cj;ڹj,]8q(6^JgA4[_ k,E;}Xcg7]b%%B~'Q#ވ,SG WOƂ@aaZͫ1ØFڂڔ9U*17mƒ} Pc)v5 HE`6# Jc2Y6+Uؐ~?k]4CYdXIF* +i,'g?4ӈZpo32?zLqYh?_k՚7<@k,ψxHY_kk:|4V +=HoIقc;$d 9suehSSA r*{2n,5=%YXTTcK:zGܥAMjc ÊZ>CƂ .S|`޹j| +{ЍuֺjہX2h$t$+(N+:fpqXoZic([i nc5*>oX} `CKwi>o5*ۂtN$$J=<)p\ê{ +uݛ`4&\讖"ecC ;ɔ$hX;/XH +7<S(~5V5ZI.{5LǮf iϱ3H@AU +SU 8wcna5r~%|b>웲EqBvG3׷gv\ (rべ6؟uW'Q&eP@ m%zl)=Σ2kܸ -܋MM,UYEʍ %rxc5-f H'f_卵y $Bj +y(C~7enύ0XXT{+zY8en,[,L+I71Ccjc'&5a&dc)NN}3ͪ +Am6Y:c- t]lOhǺ)uccQ,a}.#9Ѱb9E1 8IS5 .Nm찱d94 761\K\Hk|'ȼX׍; J͈MMPSv?ހXCn#SaX# k5xv ±Dq93VNߦAx`K`$,N+VXq"kTX=<aټy N7<Q\2:g㩀i8VlI,8V'c+ج9j n@5XҀԴ> |4_@0ӌxr,6Lñ AX xMc m SvcYp /N4k9tuñ6 )]x{JWI?xRItH m^:J"Drl8VIf";%PjM1cNX bg\Dջ>S^D;8xg$X[ihӳ7ֵͅƒ)X+ЅXia^R4Ԡ(F;'yHS1jrNXCQ@X`Cz~6_Gn602NTFG J*0~7YXcsѲX36jH?T+*X WI=Dӓ1n,R^u< zW1n,B@tK7&SYN0XE} ֍=*|_8#ӰƂvҨ'Ywty9TUrPFrfTOq5& j=քEg +Ws&iDo z$H̽)2 +xp)v6N06Y<OnyFGXI~G4pMA@SArpٛ9`\o +VuHᅑ*''"q"+YDceIXlJF0`XEvu7=x/2?[#Ł(Q +@T_cklfٳɲ9٭DUhlp.(+YXmwx=#G&:q*z15'i*IoK^zA*l̘/f#!h[Sl\׊͆\ǃm,&МS..ĺ??kP@6F\ n ax[ꍾӂU|^mP3'dz-UKS }#B3|F,fyK;Akΰ%]F +$-cWV[ծWS%~G YX]ɳ#`yJPKJ/`:%wR[i*g~t껔ۑ/"5 +y|Tpl*FDY $*,:OfE3jsd6aȦv$şq1AKd)!#==7c|ki +'po<=skhs;瑚Hb#ŜrT^h ^CM@37"ϵb! xv{0 H>([<l<u@ V+PY{n@J,OH% ›YHw?Y9.0zX;ָ&T|92Y Wƌa)vaY[quX :<ڼBMH[V3"S" sEE/ +~(yhol8KjzAoS|t;+0-2ch 82f}!#GYܣr}DRShW7[Ϧ"AQH݋[K#.i]$ +8V֏9Rgb2&\ W"np8HU{X$סp0|qbp}[ tRkM {P̵ +mq^7x@@ֳ5zC~>Ϯz)X$[McR;b*73 XoM?M _5#s }%if Srڕ0yh"ctUS^sgGEe²俰!Ik9^wh\B/ʺ6 /$" &~I BP0K$#qa<'HpS`P(V(g? ^XDJł? jhm#Cڰgp.F[b94cQP'8b.W,'Rƭ1$X4酆 .'u\C/c } UL^}"|IsHU+b_ȑ)[l8O.SU#+{4h'̩O'F %E&z93⠢׋4; +Ҥi@6vȖ1K4,SKXŚn, 7OF"V$U5)~{!fʔۡY~-I;= hVE + eCKT\ 56sDm6ǀ覈aQڏT _Eh?`5 @jy[G µwRYqBʸTҀЀDm? J9jr&P@npM!difh6R5T^ seh6d+_;%e^("D,'NO)Q9U=~OrjX۶\X҉ae#a!#Btޭ[uE(TC )#0ᄆȤbc#uoR16ʲ1Bz,` 7_yD +"}%gU 1tT!9E*Z'pȅ4ܪыt7>Y d9-//*/yo +j)ظoHlAL@NM3!~AL*5dQxeƨ|ѩS +۵=J?PNg|PtANsKQʧ~=+dY}XJp> sId5w2d/=C=w8N3(cQ &FO LJڒ] ѕ@VҝV}Gl,k +ss Lˡ|QK=o^̮ĕ.!V; V4RHqz;ƫ/ R4,]!ScJ +:{:e*V}K+'Zm.leνvDɱ+*RP%Xg0Omu(Rj-`Y$} p\;ّu498ϋC3`k9yoxFTIc+r ]((o,&q~AN31:~Cbi LeC3_I zefDj}1C^P0%ykd+M%iHi%lGC|0d +HV>:˘ԊDOGQ;Y&})k"A=$y +& ТxY莡ۄa`,EdѬ1Z \'5<[Ȇ KA30ujW٠ȏVɠ5eВ,V~a"Z_ʈV2`Ip!bcb^,&o2p,2WyLLn3cn#LDB7$s]UT-2@7$$J4I ;W+?8*'ΟV@;&Wo`h8)E 1xwڀۤq1aH6xL-, *s C3峕+9#?P#&Orrmt%̪s͖,ZZx2([ѧdNCtU9\B$۩)  !j~8-'+:P@uJjNG | :r\,["\K%,hlɅ^cFGxLC[zMBEЛ蛌{յCdD!섧T'Uk&) A &HyPBO pv7^#ʺ%=[3QrٝwbX(jx쒅KiʐBX¬07n6k3收e/c8&f!t'BF>pS9<ˏ>6k!Z5x w_yvE<۾5Q $%EQ?5>&(aOXil2],j89 +e&ǏnH`[f־ +l:wu7P;gc]n4HX8۫qPD лŤUBB)?saaV@LV'x \Y%HS$kqgq?M 6d.Q15Gn9}PaGyĖ}CE_1U -͇VtUR`9X;Q?8@5ryA?RfF~2)L]XO,oj'41=4l\BTAnZqe_+zJ<>]+WYJnX&t=4&4aZX:( #YL +5ÙMY_tM@Le +@F>0J=F)5hJ7߃M9?u +'ȱcLߥb78"஥Qut/="Mf1 8H$.[YX$(# +yGWIn B8&*nfO"EaNƔŜœS=lkp-cD7p:弿ɼZ13;Y9A 9H<.43N(%#j,xR--9.`']^h8P`eMoS$LU|_%p,ˆm +2//`/qwVm83G(jvI&{?nS +h!Aw3y)WN(9>];oiqB/ Ւ+[`ĂKGc$38ԥg-)t㱮(2K:ʚC>rn{X([,ZՍZDHT '6B[XnnT>-O@tJ rYql}oucE@^$=4Im=v"NԀ(K.+zCqOQnfoܡȨE1;| |I=~o%?`{ؘTh@Moc<%Jhw/(*W|@kgt\*Y3|`-cUo51RilZ7F(?J*#8\ضivQ`o v x467>.F5CZ1`xDFoở[Uw+Pa 1q-o$:͜y5y4'zn>OScDTTj$k͟8 !ŷ4Uyq!.Dm}IեX\{^nH{nwjx\vT S*[k#G% GQ6E8 +:y2f">g5d\!5%j:&>^vVO%,뢨YIc _!|7PHMԃ/ #a"{Eg8sj$|]ƪv& |2#Zx $-pퟠޭ;hpG!=ذBi泌&Xi9X ^WXlg_E4CJ535>zF- {DEI }hD*̍% ̡];81 ٴ1z#XQ`Y6}q&lm/#,אqtm7 +mJV4XG1CZ8"B'|zCa#푡#_ʊ܁} r΃'(!f B*.-FFC\E)V?egqh1Ҋa ֢8$_$ƻ x9!V WVM'_R 0l+Tz^5S< + 5hd:bjz;AT`N❧~Rc3 )pLF<=6F>\:Yk_H+َW4"ouM32\A D{ޜ䨑4!HnӸnJ@u=P#XЈRc,TKG'5(n !;\Gټm}5 Iܦ+6TQ45J;6Ζn!5GfM ~žsUl^e B#nLtd|+}?UHBt20ZWD\&g,I=.r#>kRn`B,N9L9ٓ9 mfSLF}'13,&pz +ktE2ɅDP.ӆvTKXMe!^+Ať(@{OVUKڷO32*S =ͬh WoM+mK"p1C]GR`=6"Ɋ&ynT#r=zˎDv_cG9o* on#h"$vo@8a+^b /'$^@V;5䂿@⮗`|1 Nr8s|v!rbZ>B֚ԍt{SFR)~JG W͗uD=} ȕ՚)z}:_{)4$ 8wȒP 7KarmsHn{V" +(S aRWX'sSh'?98Q Yuar%qsİMvz:EF?)~ + +yzELtmg~DRJ/6 +CpD b;:/]9x::GaBB:+$!y"ږLO=R@$~0#RBʉxY&]hS!@.-qy&:*PAtb(=S=6ļ<ư^BFވB`hdhWG ض-,ˍA9w9A%v(癳SJ(w^1l> CmRj `Ü:kxTRI@3i>ـ$QQ&dnHw邬 ]Jb76`jx]bL\9P9G=ȦKPwcgG4@]+7[-1S_ye'ԿPu֞K"*yNd +D[˴H2EηIB}QlԑĸXKCkH'W#}qGۢ8F&GZlU;e?D35+" (^"P܏.@t*S<->S^같[&?ٻ ќ +V-e%FLmmi@!t;0 VT;9% /6ʅ%?6Gc)CWR>$7b+i6"Բo|Ô׌%s bZ?{EФA9Kh`B<'QQҧBja g0(K=|}9hvɺgMP:3gTs=?TRΟ#Y NaԨdYLWC/yN&Y\ue_IӉ]:U/jGAwJ(B$oc98 \oX穮cbĸn RBM=+F2=_̩-2YT6X@z0赈%8i%-<-B 2 %XX @T\ŸbO_ ؘJPtL*/z=F9/Td o#+ Z1 +2 6yʃHtQDnsž y L+"(2p|,C_I`4uHNwX6ߩK?@oV)*/jgFi$"ͭD?5Z;71P.U|ɬ\a[ts;:Jde).*å~pΟ?IP7WޛkDŌ'7ǖT۟HPwNs*݈:C$yYlTX,Zfe Ga:c!B*z?d ({zMKw_FYFө׵-?ܱC^͂J) LLɓ +d\Az2نGZSusM+EE0W2MxBWeCE@U7KbF5;n×ΤBw͟D~@&oD *\g)uV үWl'V} {vF!1Fxbjj'#@\ͽٝǂĦasy-ѮsfL9b*P^D S( E=疺!A_߁%F6Cg(@Mݝ%ucbΓlYx=(Ԥ} F.F8B%TJ@10SuI QR 4Mp.Ig4݋A<\8 +wr`=cs GFy ȸITV iVdU]yUDRZj%:%&?p.5Y]aΗUYG'A.:5/l,A55F&lFcQdeH-st43=3CČ򁆯j(s]  u.o I|kǽItPÖrD ^h$Ի`مyS)R.]IF$A7II8b#t^T#_aER󙬳vnj0-ZnJ@NkF6(>.1yurY 5e{~T<ҫc+^tg>2tHP3 +hUjӓ>\ _K:9@\#!"CϧEI,tn{TN0}JU4Yð*ƼN6~"cgsdD@ +~&+԰QqX -?bN쥓"\)S[i G94,ծ)ϋ+}.6"jcx3fKKS_s ":wDEA"AUh4%VwrrUe/ULP)2Hj/ǓVcI:gΥں)}fV +--׊:[U6Vf,Z"akPɛJ1F QzԸNRrG}; 4 ~;]XqZeZEW`F\.dTx#mBЙI\rKn"fwa&XOB=cxFb78%{<3V<qRw0!O_p N@J H@gED1;( Λ”<~OAifd5W ~Y2O!Y5 7=b <b5"69sE9vIaL \6(~bUQ<șO33$ShxMҫ(57yPK @c;`i?A/,/mr#&aGfϸ9Jk +/r<%ί4r.| + +[I[i.=9M_Pmz1eS#46}+Ef+9n}~^ ΊX_\ ({'k,}/yLsh +_{Q'̰Rbu`BV57CglMǦ1WY5Ad YQ]jNoB\(*/$/4ijH6!ZucC tR00HQ߆ӌK[eh=8PT|wJ|q%\-S. +l+up25y@u|fiT i u @x=KDL֛Fx +}A8BL,K{Sz.xm(` tu#L3= l˩/:+I)ĝ" +KqpqHlڝAT>z H8MCAŌB0ۃU&":F *ah]Hf %c®a-/+>TkXwLMF(}tgVਮJƈ<(E:F>lo+sBɚv"()23>$-KY (@`kFVXF +D{"JI4B~VM`_I"I{/v BZ֥C)ܹDvcͻ4FI Q0"0AcG(n2DFze^ &bq[@--_9/jXB>ht=-Αu8kgHW]|aE@g ,p=VeF߮"╃j/dh+0w@ SE6IQtHs/Ah/Mn5u[ Sfߪ6Xc>$͸r*L22UhTPJc(4v[ذ\A;?ݒ&5P.`(9I:<`A,pb1Bt.U^gXJ[ 2ȋՉZ5#_F* V{wZ7| U7>o[HEf߄⃜>f@wU7G#f lxyKeސ?1oLu37S9oV 8F= Ru5<ʹe0ĦND40 +A˛NbsiH&w+Ī- UD'&)XtOE J=]@Õ\> nU*Rn<=ST)l3@TAI_IE%!~4TEzLϓ:ÂS+z\Z{kxktr4oG?_Զc9o˶16_kL^3ɿ +?Z# Հ'x~36DjoG+aEvQ`sm 7Xm ++Л@unϦo7p 궎*.2 x+֭oѤLWz}-`X sW\Ͱ}K m#W7 /Q=-^c*R0Ԯb R:R~+Gauu ><*Rz $7Ƌ:AVэ<;K<^[z/c57I3 ֤^%eRY:{픐C?)'੐wԀh@$yje򸄪>i6}"a d /T+ K28P Y%:D%<19¦#^d' ʹj}X,e/Ī$ɬ*!K}j9&>T&QX}f?*Ŭ>X?(EL ^fNew> N`Έ +0J 0S)f+K6K ^&L?/8ibċ/W."u%Vus9{\Q#?UBͅÎϰ0巠 `c} +? s(w+Aa-doXG\F݆3EװvM,yIBM~pJv:*'7I{Lh4" R֨bK° Lx,[0D:`N`pֲ8Jh>TT>/2\GXFjx[pPi1JEw>{./,/N 3K%<|i؜}oqa^!E@BC`s2._a ÙZW=;}RUޱHTNo~'gɵ f~F*`%BjXbINeo𚔨|`WY&6)2@l9}1k7KvmgW)HP0 j~K7#[R(Eck +ԧ+Op3]?YS|vs% vf7xGրN=RHrY`勱~bC'$BTNUP.I u Oȕ`$ta ^*A> ~|< + yXkǣEo$Z@!hY ot>j? cUhy'a@;.?SM{_ptmOsLoM2}}R<}UkLq2\јTUScLH{ He7IOI ߛ1I(OVI0~]<Nj oy͢s_Da׳Hqu(̼iU#|F2k4܋br$Js>h]C,q᳸y}(>+V0I ө_!DVd>=aFĸ=*Tr=}oo}q*a,uC’9W5?Wwys.:\8|JX}Qt^bsSsC拜fQy%{Xt lt_0+\_-mU oK߯f7`[;$ll7#4N ceb_)ۻ+Us/Y7 GX|)64S>R@a̵Z+oz)i랇E'~Z"l)nr4`}M Hp_oJuz DX;uqH1!O,u'LxPğ|~]*Z+YI6o&xBS=^f +N] $9P0hp~n] +$jK~(:>_ %u8GIg$yu&E6r\Y3BǜI85?)]*‡Yqՠ#-9TX'>!0sA.:/p5;# \l:vi(:5"BPz x<:XzuE @~Pu/rw`9_KtŇ\ A㏂ ]<1{$!е5}_w~5}_s},Տ}S3`F'[=mߤbcr=(gb]Y+t˱nocjg\$a[Dgp`'7R }nU:M57]]x+xnZЉ[\>stream +i2Dwy-ZŘX'6vD*oM/`m 3Τvi-K(A!|۲XY}B'6._RǓnqI0FNMH49Wp[F!8e\(7yaއ}Duz9`GE&SDp?ӵH %'xr.!m:4}.6, гH?Iw6 ,ZF-V >ƐʸL'ְ[ewhܘ~0=6~'r\  /XHv2ׅkӈq's#ҳ7ڒ:_owBP%nN!.q<\"8j; e;D\ +(W4gF+ՇWC gh2\ G\4[ߕIG/%]Q\ѼE5 +iV68< .i.r24ϼ)y],s<2k^^lH2tmX3&+ydޡƜ\|=2.7kT#c/2xn  C>f5}L+"8W.FE$ ;R&$ Kp1Dǧo-$XC4 >trٱ$A[ֳ$ +~n҂<\ݨTç + < 4STZa.~ ic?)Cb!^Q?㢰. *iӌ39๤:)\iVϿk諶 "m '1z<":cZB$3p=k+GurRWjR'f9aPF%YEy=Ag.~?u^_SƴRBY]t +_N 6`[!T&QSvƺڑl`'yAyr +Bfu 칷`ƫSM>6Թ5#jm},/aCTtFg,/k@]*A uхxWY:3+V#Ԁl+U@hɬZk@+ˏ +v!#lh tbT(Gx9IwPmw'!m䲢+X +"亖@8A$2PiNi6LGb4򞲗+sB'ȫA[,oݺ7[.(d1MAsYS| .GtdAom/CIV#1A"Üz%ǚI0(5m@c/3;vrzo>ņ0hGkjX(߫vQmiCgi*;CàȽAqs4> . ɪ(]vS' (IZ< * YVŦ:ߧH5Z1i@dzNu&Ҷ*/b?},OW@;$_=`k+;@|h#յӬ!_4?/Li09 +`j&.t75K s\!w`k&CA,b +BN*v+_~,dq%{g,6}hY%>AjIˋ +'(sQ^޴R{8&6+d­)ѥc C"[3eJ;{s 6h_Mأ^3xl *3ң dn +$jff"6Az(j@ʉgΝ"l vT#+rETi2c"zX؈yz'zOvxGW{;ʼn; Pi_[ ~ [wG3*H`0múu2&~yH>QN +^TQDBVI\`o/v:@`^o ymMOȿFM'&"6hLPT$yD,>-oαc9Z&ΥwKwyrZZ$Xr]dfRs+/2}߲8"G fۏ8ͮ U1h-yy7.C˻"KgFmU5Da'wiq0ƢehxR" +7|`VRq4/Q-L~f0Yմ+[UH|v~;aP߅HKwt'V&IŃ3A%G_Q$` ,@ ('ZTJz$r~cZZ"u#E>han{aǹ0{iOH4i+II8x5Ta_l|iPB8N{C=^/ R*`W:uXY<:,]=RӥXQ`] j#J>DIF&&geg!%stOpkLr=`x&|Uu'܍M}HƬ +/3< |q(Qq +w.T93y&t*qvc?e" @24Rq;,Q +YhV^YVx{\'@ RǡARkLMO@ 9g|sk"g.H7)\ D-GЇnR'*}ju'nQlk-DԹ{Bu+{a+jFt2̕8l hZ_iUʼCSi*7rƩlajyɇEurƇIl,yXl|:9ܝGRfr1أ\=-@oLM[M4~@x!Z|􉲒8IO8%¹1?pAgڅX[Ըd[slV:2>"Sk=[u;.+0?hol0wTi8ҏ\ նvED ?w0F f s-@g&]FI2R,~g%0ƹϩ6mmO)?i>N(}}7E0ȷpgDOOfs߷D|-2w<+207Ε\Z:XI[kGK(\QAAZ.jm-#ԁ/ĤqI&[o,71T.L\[褦8-,>Fw\'DxO-7kAҲawu4XSqܛz*:hN9`^vp[kق ++0ɱg}s̆ dk@39>'S<@*ZQʣ!mGQȉWoIc_yT]DGz'l<"k@$e ܋`Q7U}VEc5sQ$|8yمi(jW=Ѱ +MN-%~k KQT ;dܕNvkDfj2W9ڤ@xW6*s*GAw۝4E*¶w֞CW$56)3/y&d3&q_0SֹL~~HP0$rŇqU)}f)%sF%1Jh4iWs~ 3pա&) +Ǫ5sUE[[.IG„٪Ͽ m8W?e%IMT]P:dVzdjSO=NPRlvHQu끻QRƅ;ntܬkXuy}[947 iu3*uuuh`"~$rަ &5VGͦxw@1pOBir+(_Õ^V'ma8{{gEw yGiGk7J(qb޲0ELǟN)웤aC%U2E3mVw~YwCF9FdYDQXY!y%2PɈ{EنXęTuE +,ЕH=pSFDTƆ( C[% az*QjYfT*]38b,(8m. +䜪H^nP\EVB3$GM,GƌLcE$]\CGL-vt͎f`]SQ{)y+ ZL$tzf<%JAJ~d7.aOeVkd|5"? +36cJVu)gA!Nmuudz T-={kW+>H!ݘ,Tfi)>ӗAJ.u5Tp?9+)XxCT{2.פr2rn8ȮQ^UA=-Idrh~2h~ sQG1j(^硐^J\v{JL_ag9}MKfB葞_hA,r,Y2R2 %LffSM2>s&γSOqӸA~-ԬJyFgL2N=Zٽx=t$^j)VDhi*#RIZqWUPS"2u]P+h!_!)wQ)s IFMѲ*{V-+lxfEGq1seD4zU:ۋO0*QdԵ1W1O{%ƹ=k+<bn{f5TՉx߽2˸!%6dr`9K3^Ւʫ'U%"HȢ2h7>bsu'Ú-N>P"?s)#6NԠRLxP׿׼*>T*uCᓍxIK rRI˝ɍZNjJ-''JuQWuBcPEU.^3>STů\=t._m^]EY4O$!**.O2K!S'r8=oO8a+SM^I"ѐ~÷J:&QS-R)CQU\(5 bL;ވxY+4\sьUW\D8h*f i%es咢ٝ= +fFH'="hF(k4iU[ghdz RC]7^ b}ps]f$xt 2iR*%I7L$:}&JBhmӂi1BH#59P}[7qiB2]K2=J,[QȜq&ʜbDde/"ɌBRʅV3f2ATQՊ&iBCh+,᪄k-\k9~sͣ3ϬfYXB1yz)bd"ѥ:tVQBjJjUѡai QS*4T"X,XrQ$q;k&$Ja-PEyy8$EUuӬD'vp,Σ9uRʴ@C3 P6QjZ,n |0k$uƍÉW#&؜F68s#b1򜔉ym1#6b|qf9'ZF8Y1*H꫑؍ECsA8d+oW@LEɃCy_ Gb*rrn8 5|ۊ A +Ј=iL=!E +։4!QHLȏ &ׂF$YN[EY4ZiT)O:D`''gg-_ѨU=BPYڌ(HfBgfCaff#:\pBlBu&ZsxR"A1b_׎_!I#j{m*׼VN;Rn:SF"p\m՜ܽ zjD'gW?IlH(A5(KfRņ޲,GWݸ$b6};EOt3o =DSv9(/yLWkXӦooFG&?C +iFXC1;v"G%D{$Sh"OS" +V%(-pL12%uHr(UQS5?mTJ1nZیLꑗQ; -i Ay5 +d쏟RUQE'J{S%G[1Y*V)iA}T%#{Tl*`ȔTpC'.q*JƖֺ>G +ZhvBsTqŗHG-%")f I֗4Lk-BjdGNㄥ ;ǑVWu,V~}T.dvtMױXJͭ:E樌QQ +e%rN㨐-Ne"Znee*k5dek5NC "B9hrFC9; +̈JCʐ3D\4Hjθ5[o&՛"T\3[]-fL|`b.]E-Sb2Q"쿋J)UQԢL,E(e~1(QH$$6IQB3;MI&JgB|1YV~r?t-&NƝ%cߚ}ۈ8!Ҩ6#"h\`bV2)Njq/hx>qC4DGQAd eZ 3 uNE8c͌=4oڸ1eSSm$z|Azc]zZŚO$TĈgr +% QZ8Yig:[KjԯQEk4G)ффGU+l {VMV*]2h]ȓÚS]5Rqc4Kdꋠ3\|ں$ʢUT&F$9,6CBHCmsRw.b1yUHlҚN}LW[o _Q5Oy92JEE+TWљyo*ƦdGq3mYǜm*!Ңe*swf36U>+[k?6gSbܐ5m r4ݴ̺G^0D#]PJId#C΄ȳqRRKzB\iV?"].˅^VD杮:HG$'fz'p6!m<׺troݻ`()u ;T[+c$2+ns:b49K61jUF"8>tӐފF M67d՛FE1\}M  RHFcޒ譒U4Df bz#ԈXbf#WP\Aǃ2EE)WQѱ}f'+%&VZL'1["L(M;J ; j*0(ޛPt{ +[S) D/М%3ԓ9%4mSC~e]J)8Y  UQ1dD$[,b# Dcou( { \9(s͍Z:fka. Zc%Lx)_]+\p\$5#3:4.2uuyD F ds,)kۏNҢɤ*FY`Yp$=f9eE1jQׂD~1*(Pk#o贂FԊ15!~F+Quƫ&dJm4ٷ)(%ũLZGȊL)xaTG]MO:֣F%ھ|ZcK[3Tg_'GC!?TRس/ZeE DZYgA Z-䷕$HEP?G [6Sz@dXElž4hD5E_s!$".Ihh~²(Uĉ"y2YE-'"gN"1a*Zk`b=xR;ޥ%\i',.AAVQX "͟B E!?z.sfx!ǟс5nUT\7Bi7$SDK,uKz˕1 j\/j{6QUV +[2Hnb*bpq#QBL31U"G i|̼Ԍ.vd'8XTLR#Kl5EZNovp"57"܌;QU$+;oTlS4.7R +rHWT\Ha4"q3VDRD!HH1`<샣RE-{V|  +~6 `H#>=(WBJ[:Cdyȃ3$ 3,zxCNU{Ǿ݁'"w`?zδXQh+^. d +c`uW5`Aji:H*~_҆ ;㛃@́R.B`NLs `Qlve@G/gp;4@ |4 Di Ψa"(43vy` \3x p9 @>/!xra!`D|L t2O9Z?F6vb0a^b@4$o CP"4a!X`Z`Jj a "kw`%hB,ؑLT̫_QYp5Y` lV=PR;cJ?.+x +<okA02·#[%Gৣ w_xZ Fi{YZ$5EJGܺy1<, &ɭ2rPD7솁0 —0w!1Y7YEa.= V,e*s0>.N&t@L! r鄏;]$!(%u+""B$ 1̓ɩD/1VԚ H޸S 6ɤ4ȁZeXN (NI2so PPrt|#D?bOnIEXGc~L5rwLɠ>4i0A.(BIx=xj{ Za_LazWItAT>]2GB$txI^+Ul6zS;o@}Ev;X To0CEo6:Q:ЇJp:'W9oΊqt`Az @LU/78q`$K` ~5kRoT +Z8`6,n>fht nYj½g=(E7L^Q +v2kj(JnU= нM@&<0eLm@gjg УR +һ3Ū8r(凨 ]NPi`[6N/Rhyl"TGj3ѺVM汱  āJ*9i4'Z^4_ T>4/PqkRfnEy)TIr2w84WZ0XȎnws{%Qi1pgv*:fc`fN1,n10Y.ńĀ6Lo*'`†5``w"arݑ H0+F1M G0T u!Ospn/I+Ǭr =ݻqrWc^b V $ @s 2]`b@7Q-%Z\-+/N$kuGa"{fyFR,Wz?XÒV`QpbҧsW +3O?HΪ2=UIɞT@q)3xh.D/U5e +0|8%M)@0h7kh`Ԣ)_ͩywi.dMt[AX`ls;e'RMT ޻P%8"&@mQ .>08gשlْ a J96ϐ1$ >[;W1vWܑ݅@3KP%2Qbv>9EÒLyr.4,GF։7$|WWK|6ѬdZ@<x\,@ed6Y քJ5V} OQ vմCUxRu5R(`˙XH8/ِ?@vB oS c ?a@bu79)4} +:˽gaz4v=7Cj{A,y@Ay7(PSΣskXmI*Myz-D }7\)[ KaK CN(Bz):eЀ9A(w"u @"452UJf=Ad-jmr!Y@s1aMٍT?b:ERoq~&$:*L+@ h,+*@Cla*(CX/[h(` &>: +ԆZ c!(.YhA5B|o:9 (E`M7xM!QF By V  +n ;S )\6DiG" +A@:L9)x@IY@{?%ZTOlc>@=y[] @s@1CҪ44:d+p{5 zdIje spbйJ`_;[up@ +w˭Jfңb{}?|(Мqo(AiFmvR}T^|Ҫ>@93"uhmIs$X2!n (VЪђ3ݵM%lh¨;@ЌB<c+ztDY-[]_t9(L aVj[K ѱ'7--hw2P`֩Kz"MbykrbP;s5hs驈Bt Zg-:!ybrqiS8 a^tAiI'Ki'`nC4@`2Kgk)P?*7v$d;9r…@'[o!% X\߮cQm{gF`ey@]/ishVy +1X_j*4Dyzy8JGNH4)Y) +P6nt +p +KpjGU"Czs雔f M|(,maMǠ 0-).5 0ѐu )ZK"L 37m^,6"mX|y> Y9lTTfe"[Ck\;:iO3*"R;*X$xĠx@4F.0PX;'ޭE; +پD0+@AB^?E@+v_>p@UU +owb + 0P JT]]p7u;^E HM:R¢N԰yh1pl^wXOVhM`%Ev+Uto+SlUN򇱜.!YvUUhZf&/L/Up6AZv +B{W`'TLWߓ8 k%s|XM}Ƭᓕ**!*.Wb*"i@mPQB *^Td]ݥ`fshCeuVF^i,CW_9O.i?E&Xe@#QP\eKdp#o.2kmF>% hyEgX4@@_Qf ~Y4hp]6칣G]D`4,(A ^=2!1XX+{a@?I( deW;Z8-2 3̂8\eD8yE/x8/``1vY\D.4B4Б.%g2s㚥J[m4Q8[AχS&(0sȋGusFM&%M"FꗎOuF_TKBHǫ |fz ߫5?|d9Po8E1=%]vEXvY)[ #!@dGjhT z0!_l +} oq'-bA1@ۆ^߷IPӿ?!'UK~ B4ʹƽLzJ ?*aZ{r D E +_n8"NK0ܗ/т߻~2]MnaFS@ ڮ5b{/iZfNdkaK%rF m +$@s^A[i LR$̟Fmt.nE}(岑UL9.( No6;{_P0q4Qrsz (WRC|=\w ([DE1hyi~ lTUzbqӥja*} +?=Q1A+ gGx>-mq,uP/63oɫ{ѪTp2dDGoPԮ)w X"Ψ=/v(ӁtM>X+y{o4*k{ +a/CYO6Rvբ˷̡娦v;}J6zMYbzD o9?HFkZ n (w5XVE{sYλ/P5f1|Wfوprw&o9 6pP&i`롅@L +ZY1hR;"15H82|xŶ yBY&¡'Mp4YF /[?Xp 'Ïryd pgN/ /29t]O$]b& +s6aۿqntSR=j^*ko`XD#zÙ]gU34Y 1;ߏ]1y) 7B~'MyKuXmW;U}:GtXɡ@h4k +`F1RDoښuT#WCVˊvEk_)VOh>`7V3Kq£osF̒OCOu0O/NpOK 9nosq(-WBE QA6l2z +uI HCTUeJ +*+91> ϯ%^87ݧ]!9f;ΏVR}&{Ws.¼i,.nQ9t.ΏBnM*?і46ty`\ E QD+dFיz(g%J/QPp\VUyDeLHBГBץ1'k:?8~<8HA MZ:ʴ'xFsȕo` _jDjߪZ)d0f[`2`e=,K !0D78ϷE f2;?@aab9';L39rFɬSƒp׷^^sQ?0FRzo_cTbDZ]al 2I^ ڥPigNoG9|;`|Vkh7$rSRt I֎Gr@ @Tx_3_rKSFk<1K=Rg wx;?,|{|;Թ:߈Va ~u*Un+gߋȑ5G+A)K:Z b#? . .~r)Wa1WΖ/{nFTRۗ3D} 1U9)OJx/? V")bWlK{uhHP߶8Ouv6~?](3oE)$W::ALHb̥WhvQ}x_漟VW/~-˂,3=/oHz5]4$Э dJV0HĮߛx]=)Z Mop!/foXJd +}'2 8']sŖ gEM?!sII%@OV'~Lb~PuOYMQ"A<*g0$k~ +#V(:2efDYm,ۘdF S7' O:aX"0!Hq. $`V#_ W1!8OYҫk=8Ё"^ȸub߄bK ,(Th6R>,.GgzG8LA-$.ovn14,͘z| ufM^ +Vʘ?5e +sj d(R~!.1^~Zj1{Y~lM T܍,:RT?/ YYu=:Pr1\څR$o[I,+ 3 +sjMB$V>:vȯ6! ؽO7!G0 zCEwTEwK2gg{DEVא +XJ f_aKYz7LB$rui +-%Qfn6 +P(;:;Vs*;~pC_ºOUXuE2~VfU`.7yM~Ќ87etvէg\fw&C +!@?̲uV6|u./ůJ!a% qϦW.uٙ3b! B, KK1 qfp+k(/A8klʷ{y r[+L!'"QCy_΁%Jl+ FJv~=q᧵2(6 BZ~d#vLB +HgB=U26z5rd>]/JD,d]x_}W^ ˘)G\Lc+X>-z46M}4=ŒɃF=?=禂clwߒȋlS2}ktv.qޮJ _*{8Na{S,ȅCaVY5DZ9]~@,`=! }FMj+wRpr; ٳ}̏"SkI|EG޲)^ؚ+I!:D7W_;%>oFx~_Wü0JW]/W~K6ۨH)}*4 {_-6 x>0ڡv>F=Y+|>K"8nA5ҿ#Ͷ9$Y%$i}!IkY~w"`;Sd~cU߬n,ꇀ +Wi` K&T\jWQB@؁s +O+7}?YK 7}}B PgiP@AW8W/}mo"IeU:# Lܫ22@!}@n1;քrs**}p|ƞ ^OVq(Lhg] +o肶1o[d}Vd)|t[(KL䂕j+~@jBrK@ %8?NRƖ-(Z%O%*x5xDpjB'|Az̔cca'w1|V>!Δ]'HAj]k'|#/1Q\@V>cwEPQ3 Q><|0m}'wxzK~8H>l&IEFP90&TR' ȇ 8KnxB[1+:=S(&E";g%(z"Kfn׺l|kJͱkm=dVKx4NʸDS.Eh{Mf@TŇ<6_*HO]pPoqu.^Ə f{}aO=y0.d&^"2MWkoT6{pVb aMc9xK!s ~[Ɂ%<.wj +,8nPoP2m{&Ǐ\Yړh=mW^^l'}8K|}/ߕkS8|ߍ*HBjljUswi8 etn㕻5F5r(Y} VV]d !vgϡD ࣮ /j1@ZC۬])k=Ig"Dv>@|)\f[S}֫ +'x1=:XQc؄Sa_%Xط˜8yI`{nra +f=&S5wzRsʊ^Gٯ_T|MQ}-聍gh_ ^hքv\XP*is=LL+_\_خK7BBqГ0X3MQMREP刜rm0MhY;jc}Qq MpE| 5熫"4bhٌZ4-DWޕ>ꯛ9blw_T)h=spBiO{*#F{_n'Q+ְ >>;`s ^*Zz,L}ē_^XSʴْVb΂'4(^d/;-V1M XoU#xKK_ CNb4%вW_ӱp*ZR31wnLr.M!Hi~ +1oŸ}'7ND2gK0ʖٗ(zh0/M ;ft=qY ;C2lzhuE{o3e{lQ)OUDGw^wN ?d 5q9z`aѿCB!'c۫/)ݫa1i-ا] I-1|mh|^~=T^\} +#Vw/Ni꯯HIǧ +94:y8 }X托r.h_9EcʞjzsSR3s\nO<ZΙ7wJu;KO^|@gAh(/;! 1>'/MGc-֏A}E|8.ibb 9XCy琐GAlμW e]H4b(zq8kv^[̢X@])b$a59F}Z[㌨jL"dnO|vsU]JJM8pj>K5׻j|w3/z?"Ө4,i;G #9Ncb(trRС65R#*i8]phʧIyqk88bJ@7sg:| QgO+ITSu['ɕmp97~SP|e]#ŭK\ ̜ؕ; cLTbVLq7! $.sU9 ~90sVel}Dt^zcB#%OR9@#eFh+pc5/jusUԜÛާ9"ezTxl7F.'yssP-ĥ9(S<5.I~9tcH{э7dh,\҇FR_:rK'3IN3{ɜODH&X*i3&2Eht%+(dvTЮE5yMrMؠ$q+*/G`Tז_A| +HN4#<>F9>KSh3;mR/b1C  kL@LS;g:s<#kJ;~v]&XD$%@F`vsucUZX|=0 sLJ9:ZoH,sX 'S2`msҠn+ͦs@RL(U]Ctܙ;UKhLcWXf¶Qta9InR61HnbHrBus:(_mIk[(:g%>=ds9.o8*9 v:V eYAZF !dEʒ&($˨Ppi'é02ss񕀁 zmr38t -)< +Ћ1ğ-*i~lIHb0snlqL,S<9|J2<o%2n&.E&iXR8k4Q2,D +p+[!;HSYe,]kO9~/lV_bI?jyCL,8¹"VO96%^CTWcp_kZK-d`f>T]>g~)AG qȔ۳oPAy!_FCIa%1IfX'=?[ƓBVW?+Za'cZhAA퐖7k1{vB,8: wHǾ#xS2;!sh/XDZ϶ 8x[Rnx$oq^}d6灓jI*mA"#;7I7?Iу)!~#r,NݳM+f@;\v,C\P{>(KY$ +Rl +wrh,O5cOT *-OƈHS G4?ru'hL3t? z^$NEd{[p>dS-`ƀƆ[&M]$ se&i)!,#YL-ĮDVsd;0~[$ad A G+?;.P(k*Н -Jȉ# R?ɶ"!Pm<.ήL>X/8Kjǧ!:J;. 1i M&# |l2ErV6"|hh>U h VmGPw|XL'-o^@; ¦B^A 'Y}Gl :11l@#E1?Н>N*[Haquhop`%^~qľ\ VA xgJ,ӥ|:nOGN&lǀ6}QF% G%UE @+O%+!O',yo:FMYh25 C|iMiLN{ ߁*l@ܨMR Rvv/zGdRJ.{{F| }im(_hlfH /"{ +Ww!pmrٕrmC~mȴԉiĺ}m+?h ],n >ۀYx0K}V[? Ia~B, ~2m=i'mWlXS/ %PbH%KbM2 o~P$b9 ^ W0|7j$Q@SjÓi̼W%{) S鞞lA{tp؉( eGe++IHWK !Զ6`Й/mvL['Jwmxb'^ >b>g +Ěvl\a7 vh%W Z: ;F_:-f[q y,0Kw %dAgoBB=ԦY6Ǟ~OtyʌM4ꏉmo €&%QZDA"NL M 6>VUR?SL01,4@='$NkGA82Qe(Hz q%1~ܱ+B LD0:fc84!F +O\XTEA,R*NK4aIn2@+\R& +:Ur]=DAȖIKTȏUx[n cDAcU-C&/-(*&iAR2,t0ܪXMY-7BAO~ t&hg\9W #{&(cV>%M ȬdH3M+i3M3E)&`#3!T-so1Aw{sHA6ߔi Qpf $ ae{&SRlÝɀ3]ho.:wu!XLLcHPJT(KnK2AW hf(zzLM&(%Lu!nn'0@N:HQ +'vɕ2lѬ aML^=A>԰dKGjt#SݘLP>(S$ #=Smg\Fw+:"g}XuG!y69I8/bԵI9}qOR! R8 + ޽4MеZ-7OH+HlVnL_2@%$>L" י{+h V!O"Z'*&XFSt6\ +.fA/p41tط~n)$ z\ 51ENqѴBlL*)V@"-H'h.D҅ɪp5S4j@{ t2ߚ ߂pqJy2H REQjiy4idP`3ib56I +K4။OESJ7U8jשAS1¼m 7y.2Ԛ%uj詨!z'E0M5Gyl2Xc/ q?PQh`Mw, +B2Zo*{ΫBV|2|o,9I.Cs {M`oʆN,)'^2ٶM1UiVbwG L8{<;z60ȯ:m*Q5wÜv9̌!z-!"zgmC'm>Yr*"_ҙD `@n|$WD$8ֺYD:t?#"DOUD:DĚ"[]hwcRtNѶ{.N Oy+qq"Z҃_V"On$\0.\i㼽V]UNŰ<ĈuibX%>oR3Bs>͐J42fODbLI"J4 +6@o >EEy}3}btlٌ69^-HCk~UQK٨iĪf5UlIqXB;?5H:—::泊F&;`'Q$jl=AWw@eGJuHPs +k +Rℛ apppd<@(1^}/!m5731fwd:Nj`f} "_alH@@}9&.TᫌW 洊#9|'ԱnYC;8y;I1(HsmPۡ? QPÑgR*Z@~j%{ج>M4qMV\I^ɹIvLtIEU+t ( 5RA֟%3 vle|Ж,CwϗBNFi#I|yN +3* + il4*j[lKնxXpd$>HЄZmНR,z ~?6*i'a-QJ~Rb2W3%Т3JjkTVV7(+8#lPIrVʎޡ9$@Tc \`|ҠJ?KQ@Z?gȽuK R+2s&U*UV{eτS& ˥"dbyu-t&VkYߓ¼i aqK k)}רt}5LqM{'%ZV<PIiN]>TKmYq5gM]?ycIuI:8dߑ](](Az8IF*qPMtk~sI%3!MT4̥W /s >w:r̥yC%kʥŀȪFoH@ʋ@pzMeϴ-X&ft*kwJ|e)NZ{kF鰨Y[!:]9ߒ3}Kz4K-b>`6d(A5!k#o~Kt%\ +R緤WJL>SZ% +O~HEwdUCA-=y=/~tne{x^H= w-%Lj#ۭ\KѲ>H=A"( koIZb=4RFK؁v%Hv3d^K~9k2[lI%R,>UQO>&4(mP‘Izg%;}&% #즏ⱏҼBEHR>ВR{ JYjI=M,ﳧpV \,f 2\>javsϣ,)=p͏|Kr,i,+ou8L9fd#Q>rݏHAҵǘPLf8dѡ,Z$`(QK/ @$O1=KxWE-F1e=M4[*1W=[⍶geZ!5~5X:in9Sbf#C!.xzz-Mi>>)Cv(呺;l+-)AT- *WSO喀W{Pn)̎fE8[pBĺ%U+,zT̴43-RdhG*i똡 a6mӀ:\*)" RfpIyFރzDA1wK&vfn ۱_0&9czKwmBܒbLie4XGrZ +4KC䒆cDv)t6KAC{LՒצ?_HR.KH`"0'EVtzMo-fHQ%Jҷu iEpIƘi}~qIz NoΊp-ӈA*&\zH\G͛SR"F&)tk +Ѧ|c?]wT!4 +7y.cӅk8ĕIF7E6m>EWw Gg( L3 M$?b~b h6T6E)}+ 7s z=©_!Z]BTʤ2CHTTkdNm7>\98`/mD'͏=8p,/r +v.bg*2ؔ)؎o:p"}Vھ+Ч^pvv +7 Qg,' Ήty.V' twuA( 70I@)Y_|/qW'*M/%N.-&!T ܘꩧd>UOa4#+^Cc"Z[d$A|J 8 ߆<5XE5줚v#2+86StΟW7lNFm'NPڝ\Iw"pܛeCO ?byrXfbCoxUP%CR{DܳOL/G3ՐI_`)Qcq'% CFei+ؘx<؎e.F!OUA}=/yP0e*5*ͬ= +RLh d6/ 5+iqY<_|{)B%J7- vmPx΂@&(BL8!`;)lo^cVv iŲkW]G\J9Fuw[J r2Jr8)ƣgT=\p osWį!`".5Tqf Xj>+8#c1OpLEUi)v)Ci=4c(k8T_*ɚ4ArP;4ݶz`guֻ-Smǰ"60C)BZGDy)`kPi0jAbGWܠCq@$yО.B\3DYd }C"S^3hG!kA^ƪ@V=-(5EGj`jOJ: +( ﺑp]N'눷;U(񝊬VNwTa Uop+N܅eu+ʰ]s)_PWd{*C` Z.WtJ媥#PS㧗S* $-G]%,ROZhoañϩJDA[ +)2*/ 4K!wtWp.(T>+7zy9"ÂikJk 7|6YbQ\:?=Uxq\}!S PݢnlSCy*L1G~:*ÃTНfbXQNPIVcO|,rt!F`𰑏%՜G 虦cI +~1q"OhO*6"%4ƿdGR2`gtDzG~Oӈe{3CX* NmrA±,-ӢXWJ-mŜ?`OƲV/]ˏ,<$BfQR \$,)xi"f[kG%Lœ9+K']32@ =ą:Vix'5%3vTĢ|o??M/L?QEb6G&:'4,-Qs}HBǎ7NSIk%ǥwc u⌈(X$ Q&VKk,%Ic[2 +n.N4/UP;Cc yv~[TYRce5:PhDX q 0JFR lsZlhX=ַeX[L [[BSLcɯr0'jA1u?xWӏnb-F+䅪(>@u^w|K!I 922lhFB":tccI|h%+Uv4H[d|jm aqi+U1<7jٛ)sT'c}cNQ)8L,V<ďua`2~,RQbw?Vd4@c (X1Fѳ2TjTD%-n,iI .=*eXBQKs$c4_+Ikc5[.*?9@VsLR@|Jf="ȂM"^dJM\547 %[nXL'= hgXQ5Vc'X4]nc1uӯ-'.nKӷtG [y8 XY#JRgUJcX NG~KKX떇>_p,X~y%\o*3bcX#z^KJC9c=&4Rҭ;f xv8K%#Si|GuE XQ|*/cX]X|~U]=VFWRc%T ʮ &+ApTqE2 +rMÅT n*|Kc1rK(\ +{, [=wI_K<ށY: +>֗}Vҿ cȐw+by䁏Eo&xy*&xTZy6D;uc BF p[Z0 =ǞU/Dzaguޞc@/ A4 +rŀ/AJj?֦X]Rc)=Hu+E6Nk H$8]>n<Ŀ4704ʬb"HK<oNAkbԁ'^vXq +CXk]tKݍe.A_pc#n,s E5ψ+OjjfXV[LJ4j S?-{wt1cBENO =F8W'5CEreM׃*“}tqñJN"$F(±NJ3XF`Y5#GJ`MX/Fc(Cñ8[;B74cx@q  +)s"yu8yXzoxF.rOm$F + +KGڐcA+Qs@x\6@VXw\IXʼn^b $b]汯˃XKUvՌ˱ZB[NiWuևdZ 0|T/0WEk;Xv w먛3P)6ʂXШ*zjxIl4Ü10Oͮj%l`,P`*wc&OyY{dۺ]O0x)'X>$G{ x^ +" '&b Vc,ޔX9bO2bYڱ -j8!Ӭ  1T˲!-d~R{pk#)$PgP5 2x_+8iG^ՍRW36xt^ +a] c +;Xw +qԲL#[+E2d[,OmKi٣iY% Kj"XE?GIz/~|Kd`,U1\0 -$*cI.3qƋ$0VȜ_ 00?c qohQ0Vo9yt` _^7AXAI9c >w&>M2Xu5=Ry)5 +cXYDXӒ@@ȇc B+X$^]K}GF1D ?FlJCQZ0Vt,_҈*NjlH-rJRnʴK 2/C5e?%6x&NNp`lQ4^qlԯ8=Ix !LBkfsƒ>AW.B9 /=J|R*Bl&(L+6aޣQ\(l޳ "iDPs!vXHa +#c!EX߁ yNO1Z!l^GƁdV'Ȍ!,&f#-L5 +EXJ&*a !0!t QB +EIB*޸bݢi360F`. >A}یf7q;V?0h/!hQ\JD "'L2EBjyy_{=3jVqNl} &| %;| *>Yu{84+E1A"h iA@A& ZpM (Fr/$bFkf ׸z?d_#s 't㇓r?}ֶ@N_a.%!UBLfrĜ Tw/Od{~** j jSd,?i/ )Oh-0e\, FqDf\Py0"Z/ ^ؿ>Jx{{CB`#d_d,WXVc)fliLyoTRD RubU z4AJ)NX VCC.g Rk6Kuk* MA$蟸t<Zp#o`{oἿF7iΣO2cxS(ѣl"x,[9Nd|>_Er'z}'! ;a)M#$?DO˔/B,,"FMM.g?wUc-씔JJIwUP@Nɳ:!ŧJUħ*⠐)c8#x3Vb A⿐E'rS.x03z'ymH6M՛|AT9\ ? LP)F3[cREE  '"~PnbDOݛƴ\׃Sش2AXgrs2\Fe +u 9s1^RW톉8,\T⾜顟fV5qmC2=QD$ +Pq +h gu|J)/*kg|hX/Mă'fcy|a%JlS_6NHAnjDNwY۫rc?w R"(A=ՁZ㘡Fo2GEk!$U-ыTriLi>$LBUQDbG{^ /fTvfa>_cޘuh!Q;9}CRimwv,'onjүiѤp/1e}H#;Ǡz]P4TFHBfߘvn,E}ؤg1[M7>NhF;@^ &Jcׄ䨞F\ hrlu%Aa!_13j+ cC3\YIW1;PE7Z=e3)7gA똡Q/64mc.HSjcR b41zY32qaX3(\΁S_Z }JCQJ,+{۱Z{ke`#Fy_=)u DK;hI7+ͩcF)uuD|װcFKA>M`9fjJ6/cQ옱3a@@7¢˥cI"m–̲W)>vYNV݅`dҝTy]ӓ h0y'-2=fHcLޘaz=fUjiFĘѥ30-Lޙo 3_Q`?᪦07Sb 3jTmT$g5P@Ka R1[qtJ+e 3tS],>Ȍzh}0e1b(;D8ݥHʽb\2 >J3hr5T dF/p,8HXMX.%m[pK~%VFȌDpY4gTڪ$\8xJ\ +{_ZaIK.zӆPu!3pjS}DQb/Չ ܔFKHυ 2`н!_Q LH#3j (\ +&lg9н{ +_3d#3,rAdO௯O =́?ndF-fg(^4NmL R1%3j LVy/QKX: = 8CM";D,Jp HM੉2K+^xF0Rf *ˑ2@:YZ`<͠Δ23 s-g,UE% `eC'3B??r`GmV 8:Nf'` 0lIdƫ}a!::0 +d\#p4+1WZ 8'36$ <-L9{)j0qKRsQv%kvyJeh'3;!5NYj Vqq yUy SOQX曡ѳPfbW/ZB(36H(ak-R!ٓDDN=2C!k:m9eSrX,F)3a)=YsrÖ(]:i1+&̀wtCLsnƅG Ăb$2db=(ɭqNy[K5LzvV~dݡ.WOmOծFP;Z=)̘gEYxW*3P%@*3af UlIe%3o^eF$4M)(j@eJUf!PBeƘށsVdƁ:vVQ9zBʺq{1$)2CGo-  1˳PZWS$z +UfN3iX '!y< HyAV1RE@ey[< +qhAe2O)e^B>HA$Z5 PEVRwQxZ!Pt< 1Ī %8Xf,HP"r,54Xh؇ #XVXf;_ǡ5lQ/iZT(p)qJt#'lp.2KNyU#5K9#cDwhGqq0/ҒaC!'78}khR V5dʌ̺IvX@TfP[2|J\`/.)021-"*`% +B{N& gRZ6u 7lhZftVGW$-f +q\d PVጤ]Qƨ&45^c"]L‡dJR̐|պA;Lw[f Vd&ih_1;aǸ.3rjG,+eQ=\ff&\f2k!m=6Wx+1`NDHvK!eƂs0/ ;;k *\Q#oEW8)|,3<jO~,UZd`ftcc5m-3<ѧڮW\JX:4J +lFR5-SNx23tŁr2C/QLY߭&k Ne!]N;^Xިd2KP%O)Ru'9fq@{X1l=0I?X00uY˲N&K#'X$C|b&\[ÖESfa&GI 2jOkMBT6qV`84kDU5 l>S ϙ8ieF K = &ӕ.ej96+e\ E&Q:` uOݲGBM%-eF"ǣ 6;̃߰1a;!%_qsG5Zp*3zUKJ*lS bVѓy5lޏ23pzidyR*3U2kϿ[el\ʌ&M/nCm{ân{FXI ۑzQ"0}SlTJe|XZ qlB5dSZ>fMc)3LK ;2m~bLrp:*}msڀx">c,_1pOO\Tѿ2#s&&5e?hްzyʌ1u4ڬWl(:U):*h*LF@!\ 5} fe?1-2#\F[1m(oe+(iHF3ej 8#"Nε[1;⏕4ndT,ͱЕCvlXLWm0$l6t{.0yJHpAB.`*3(L` Tlȿ t{;x z/x٬2#xL  ~0TfG}œ2 +;l^C/4gJ(q^(Tf$H24t`F̵7yTL 2.~͆YfL-PU[^o0+9PJ˸eFLi V˘# j=N@IWfyЂLZ[&<)UffsI*3pv^B]ֳʌW!/|4eJwxQ_EUeJ^$Fo[1Vh X`M6Wf+}]8Qjh{.odG|ԀZIPS`/ҡg!y eAopx!R4~.̴$,3*Ф({8cab'&kFH Ky1D0H )!E@j#}Ե~H/wOz)~8$xzL0dHYfz𘻤˰q+kC'Bl43"JH#7 =oc2|rOvlp$既>j)×m\gZvS{Ĩ61vYf +@xԣPq|Gөȓ0HI|Pq@[ϵk/MۦWfŠ2.2Sf[FSkg+؜ ܊jsށ^8ZdC7ˌ b3Ԑ 7 u\Z!kzZ5]b9HA2sR䌡+̐/e$pq37ѕ*3z"G9V=s'Y)GXAb2E _cRDDT>|tGf6xNzUfVHiX)*3$M}ِ;[V!_gԔ`Ր*3@bj)RuXCS9`Êw-!$ݙkȸ2#t،.c*BLeջKr_:@!csf%x?EiXJz! 5z3.%$ TS4Uy2+FsːEl-'2CK944cw}1]mvp i8Cła{VpjG[2C]0:#hՉm=.kbHAdS{q2.UЛD'-̠@ +Mk&3#w@Nh8g&3l1ꗭiEGQk} )x8j\讎s#*M:$ xhOf*t4])6XMf0 ekɌ Ws+)t4^jj8)]b-)3~HE 1l\Cda2&ȔĬ`71а˗P!:BM ]ȅ'++€a褜y6@pQmQWBc&hHՄ9HdX$2֯ RD*D29J8[=*dFwO6/Z -/9ȌJQ:/}fr PQd E;V.ҎάV#3LebGC f Ђl*jξ:N4L#I [9p>\#3<,2~&%㿆̀*@j Ўhtnk4BN2Uƒ8 mb}t2( %Mew8aHfhWd=jQY K%3$&VQ/&DZ8jmeU0|~J(qk Ɍ@x[׀PqYn<{Kbă_vN>\Y?,Ka7E2cvQ?m%*~DOɛ̘hՐ1H: &3`Rrv)|3lcdG>[cǦGmwZ`c:jc8Gdʚ85n<.C?t:&3P) T'3l$8b&O !,dP-J#2C*BA<2ثrU/q^aJ8[@FwTfbrUfT.t)E֪7땧)Vĝ[e! ū̀<mx[UfR(eFWp:SJ sj(3޲L%&?[Y Of Z02왋!p"ؒ#Of`q)2x4'>5"+QൄCJn "L Dd_[RfRf/͞qO| "IH'P-O2c1dug eK]4yT9GZ1 1l +ʥ '3+3x2pxx[繦50rr(~E8M`Xa\oտ卛$dF\ZӾHorkyc?8 ]`[~&)fԈ2# ^9@4Nf09Ǧ,RwN!$T*=d- _Yo52q<͗uTo vraURJrۺZ,et?.<.u%32.ZR0q }E'a Tx$.bd4#ߛxЧ:TЍD_S%3X\!>{JfZpvdxx"ۯdFzͪxթdƭG͝;!!K,ptGi Ѕ; nߠ}8 gE6&\QFES` ˆՔSNf)UԁkC-2> q)}Ve6/8$%}K]ل04EɑV2A?⌥U:M#i2p~aPe|w&w-ЋÐpq%ꘁT3@OfplW`1Pc(BH6 ! 0yWy 2t5bvHA,jFVS A1s1خ=mqS21 S^omAfTTWW",Y<V'lʫ~nv_H#3vGY5Fmޑ-:񰃦Óԡ h}XyӤBCI$"!NlR$A Z_:x\Ƀxi'2Q?G"w)( gAȌ~(M*: nV$3Ca;8vaN%ߒ9)xg|}W' 9 !&3,hF;o$xtdF}(m;@F˵&3:Ŵ$h.1@c -qvdF}ÒjaP[S&)V. + =ty-.QI͒O (\o\ivpmP4rd1'"㿈̘~x9Daz4:`Qbv$ra9p~׍?}RFd~E~IY +Cl~|&\0LZ< xHW){u +]nOBfH2dBH!=d`E&aXg w[㏐=WOM%`4O۾eY ފGdȌT@{$j ΏGfx3yt0&(!Q8ñ 0Π E<W Ug4BМKZq0Rhɀ´"rw! :0^פHfDHfxVt)dF3m!3R5F +A!u2c Jn l2cȑTQq/M9J8_0? r^{yƚ+["UL -}{5*N_O;dLKD},~K/X-4`-A`!CsU2PKU)"[zdeD8хx PKrY 8H`|*"[13&J0IZ/sE/[ > K֡+h"p| 3*FrYBL2#> f߲5"32v)Gf},AS_rPm_8l-*0ae'qd 0 /#3DVYȂhK= S*X62cEpdjaX'm«r#B` 30wlPM^G/ȮwinI dF'^{̠ 3'&<y9{,_phU9PDT` v1^'Օu]&~89) z _8#e3jJ;Û ?!=f3^9dHY/ܞ>fпF׏,.1$d_} '11l|R{(^>e3$Vq83qk]0! +ƥWN`N3&9{ 쏨!98<1tVh؉P ޽4o#:HųatR+KA2#t.XU '`tdh, 1JB_K伹Zʚ ^Ke%Y0!& tZE]H\ M4~e. ^tnjDͫotbe;gnjnU{a窜~zˏ{UVŭ盛nja.KP#mJdxTT[%'ӼUCdLB^1b:mHR4s(@|׿E򀋰¤t \^Q{AX1z >ӵ x/Tqc9N{ARII%H9 d/XBf x633oցig aU,pF_jS׼jE@.c. `* O3Dtcf3; 5FY~1bSc%lمik$-cW3Yt3#D} ;w1d| =;}y b pH4q4P;)7h1Fbzo1Z=ᱬ\!`1#tL ,fi1#`cwrXLԢs_O,nK$`,F:zmGq! dB%gsfLFQ +kє'22?ŌMubbF +ɦz0e_}JC +hmN D3P|]Ȏ2 gӞA% oޓ +7MNEjXFf>wcZX'Ei(fx3uN(\{>+1K!5Z9c ӛWXŌΰW{H)k9CJ ++fdEF{ʺ+N9rpvbM Si/f>5`#,hwғ`˰gH1 +e +z1:91-ڹ_ZOjcƚ3js" gJ1V{!\3(uT3btgT +hyErgOJ82 +S|cqqR)8R:BQ%\A\4TBzn@ђ+8f4G/o*1C tIX 33ֽ48|/ qJн s]1CZ<Hn,)a5m2"/1aD$EAm Pȶœ5zQ+c8=~cF6uY^ oq&94f\,NNƌݱ-?To'b^Z 4an:Vq[ 9%ȡ)7l#'/kݼ(Xjzi7K3얃E`XK;1ΐ3@X T1d\#)14xX,i2Q ePFg͔¨?t̐tˏ rVC(wn(WV($/34RV}4l7?oŒ kY2j(10̥?!DaJm۟8;f$$RF/ yVl+R~"Bt K[(rdg[0Q{5.1O]<9όKce$X ( _i9oٸD0-|5&o0B% +KV +㹻_9HOMbBie-(D8!ty|,Q8T>ԕnjOf\`K†#֎JDGHخ:fŌzW_{% +"+h3yH ZnjX#1zu.JP%__ؕ(!Dq3>r6\C!GOe4]#%Tp6ן8fZ}w#݂AEݘ!v^@lI9P #&6fL'a31>a3`FؽLeLn 3eb״b 찌Y6 ݼRH:J@H&eHbBzPHp2BpK**d `PUAt> C.^[v fK3h$4bלܾ*l1 +;ebFOR1'51,1GbDc1 %6QlMoa51!9Wo_)e,x4GxJM v[(<]1:Wh+Uk7BBz{+tr+NmV؊">V<آ]fV iTV`❆Pxc?OR@- +byXXBV tY{VljT#A 5'bE% v? "<ڭJHÊPv;lt-%o_Q?F>WaWwبQ*ZU9jZW!UNBb idؐn`W̋R*h+vl+RCodԦT}U4Upd&;>`"zŽFD'VnF9 5S! (,G0{*SqSVzWGSME#j4G;i*J"QPː3BMOԐj*D\0KŭťCڦb:Z)ZZjM,vS!9RsZ@M}MMZM{փ8ٛ +V + O/5PԚݛ +<7T\CA5_BVɥ"5dJ*TX~5B<'*BC kw +4k +h/Xր\[#0Exg[/kY6_ks +]*NSvs\)}WM10f`{?ưAl+Ha +#Tl]KvR|̓}J!l(Sxݙh0Dgcg[*)C֐҆0Rgև)MG!]XGhq^ۑ^h̳Ql[Ӌb qZ6b=QK~D!QEp(@7 s౟$]Cb(:7bJgqX^rSI(nuݰ7(06ŻbW-(Q@} +7  m'o߶'@K+ߤ'\' o{һD7&l7Qx}7?/@XN;{-q' 8ӾNZT M'38$ I[H sB9'* s ON _dyP@c+NpÉ)ae6,&@(q+; tǀ4u$ׯMa+.5.Hq19fG>β6\@6ᣗ7ru%kK66lʑk)y2`M`{,ׄXdXVr&&L.`M-;LP]tl sD,d.\QN4՜YQ2;9 + h=cαMd6a̟c:.t}Б61ޕ)M5(TlkYÐΔ t60M>HDD;LL"febbҙLl3ߤ+浘#10aWFab> !iCAzkA:ti|Q10F0g;AB0ru6:wˁ JFJFqtL`¶xKҸ Nail x')0 +]D,O f!LhDty`".QZDS%lO%tM$EWc :JqIEq&vq:70ꁉ_!„dZK^6y6^jZMKi2:,Wsvkc(wtz_ѵaGe.q7!FlůTZH^tc< ]t-}Ia]-toU@]%P~G\Ug +bu-]a]uƲܑ]0v[WB,\-KN˹:v $vݫIv-elvŻnDLj%1i;iv R#J .qyCծ/]ENxxVUktX+6x^Q%(β8T4 '.`Bz%Dfhx;!,QZ"+-Xj ۅ:xu%vZD + +H"f׈. +8Ͽ"Ap_0L/߂w+w?}%ػjW6 ߅1]. +;ԕXOW +;s%fsF+ߑ wY%~Jro:ߐ S])ޢ(!lx/,Jx@#$[<$B2 O;$;oNB;IGMeV}r_X6C>P"bcގ]2|=Fhϼav:YWΰ֍#r7"G0GX?~#s7"Y\#f‚HOh4B!ʷ }/b3q0 ޥmފ0\Ԝ ._Ke5]hiE(: +B?ɧmސP(bN(Bl{"^&w0@]N"0}GD8Wvzj*!za~J٣^ya7! }$C0K}OZ}!o<@}f@O'$! u%FB4BG + "k?)wKB\‚- ,|0[%}`I=>pNaq$s=M~x9}N/"#`)SKScv=`^>>_O_@K_.}7 ri"[Tk}/0~߆67zQT߇mF]'fTվ޾6:b.=ݼVOO`NG鉟e]?M u~ZJh@Sh~VpLؤbRbz^Z.=Lƿ=C٧bRAvJK6{YLIA A)](=LIHD@Ꚁ +8_߈]kn,<`XVs tS,0@P8Yz@ *=@~z_;weʯ06!;Q[A(Z#k=)͊&Deٱ;ỹ[CxQm(xhnxmW<;@y +ܡp>AN8 ; ;`a \C:au8U9C :thҁFèbC :ρMŸ\@+A4vyct{9i9_Kç[ 9 ?oH~v:?dlxqP=)C~'q J‡5f +s0俁 aphҀe7\azM{br7 .`WIgw'fԚt %R!m#npYo-m؁pTbqAcx0iCϡ ::e#XnͦH ѷ zlY^C5]aWY UT5pL FjD0i4xNosLkKÐ>!AD &}BMIi0i48- y( xԦJYVj9ΤTO xtWA=鹀ҠVjh}G0G0s+' \,A_M>[^* H4TUD#& IAj'g0YT!h& Ax?  J{'JeIPl׋"H@!(@]4 =1MlC NrhoBÔIаeҦa3"3h;wt3gf@7}PLK3FsfXbB pDp@y˰'4 Xo'K&S԰U2d2s2&Ó xdHtG92aG!2X# C< @(,UbrSy׋ !+brbNbP\Ê@ aȴ; AHcð| iGu*b`C +MH A ` AG '_&/ kM "A0 64B=6/r`(i 6xwq"$ P-`@Cuܭ.~0\wB$`At^.<\8 j/p8.<<(. Å{ؓA[t-ݵRk jMl?(M[zɱ7B׊|ivqL ^Xc/N"BI(OL ?wϗA*ei2N@0$.-sSha'7v ,Yx + +rq + (rhY feE- Q~5$ R I^@:E>8 0I`lI 2rq:ǘl,j؟@=Ah + ,+Ų#=A$q WXnѩj]MSQNX+<U.E#U_+;䡵:x xFW ]g Ys+Wfn_!w@F +S +t* +nNK^! xخ ]A +iW[kM+0YjgU0XAx* R*<U'b@6[SN4d*HR R!uQn*!0>SC+Bsk +8S( +Ub +4g)LMe*&(.)<8RhB +:5ujl(âp@O޴yD<[$[DAEy(vBJ4 8})Y +'T'>L1^#'+' bt;a\'AZ'm5N@oN@'HFo݄_7e50mJF;PPPln/tUڢYHbfpZp5baz}>\RJ)ja5zg(hiw7^Ltg +1STv>i澒7Mմ[[=sSWӽS!!Zn%ܳ eͼ}W[<[ W-T[kbE|ːM՜u-u5-UXROXeĕݶr3t=Sbvo)^WܶL^Xkj򧫱ڮuƘ>p]9꟯v6[=/-vl+uYך+=:.׵w}wj{7e4oګ ^9sD[?5:'bz~vM[mexj}]+kn=5^ɺ?dL4Dž扚ֺ%Ǖe|ַ+?[7Zlu7]e疫l{o{}mes[KL9-o%孧Yfgpi.vYACUG]2[2\ޫp9_3Wr^:ZreHߙJQyIQY4D׶<]\Bk0Y;S3jiIQaZ* 09;8$5&vdӬЬ>YǕ\kЧɕ~zf>gTm3՞ƫMu"uvZVu7nl}ǽ»ݫ=Se=Sl|͞6fԲ2/2.˶zƻۏ{jzoz]Y˕[Y{-zuuwٮ-'.K\L|4TD[6]km~yh2s313/5r='}JUԕzQ4o-_>stream +vf):̿[?ϔgj17MvbYlzXv53 gy/5cW[ճ>ʷC?LY_i?^.kcDD7̶D{LYc߲eOy]bbbfgfLcg#ꡧ6oZsLy/6lT{߲OOwk;[.kTu?_exZmzڜ+s;"-Kte꙲W=e兞)uL?U}nڵn띡/6jO^~nX2uͷw96!jz bZqd,( +`1(cZइ4(J I4?Blpx"‹ K =顤EH)gh %&:rUp%f@aFhƏ "+4BV^|$9b2# +\!d`Bΐ . +dp>T&jz(M`Qޅ07 Qszv`@E E1dQHF$F("^hbċ +fB ?D!(-r#$'HR А I"R#$J + )*EEJ `X- +)*'@haŠHQ ԡ ­5fƶ{oPmȍlm-\{!wj1MJ sLT~,3K Gy?uϠU2loNלS/ǝRcި^W\*=bj"EEmWwJzdP*(F-gB5)*,܇ڶC鴜@ͨт =S wپ_oѴW}˻t[o}4kwigy̹Bé4wzwx4uWbʴ_l~熇益xiψRi\W|m{{{y4j{l힟rrnhˋ_?ݘ٘y/+;8w=s?{Vw_Z}n홲ffAl5<nއ翮Y-[۷ڴݷ?ֹ{o7ww5uwu{|cٳ>_,}n5FN1PA?/fbE&6;~(N$(zaFLVQ3J!g'.rAh!=1jzqcTBF P !":EM$`T +@ah @ha&.-  8VJr'ȉe +l 4 +z EAD N5AR1Ch5e)1$q :,Yq Ex-S ^a"Ǔ4@itcHӋHņ\x^n!M#O1;FX1#*A#HIjFGT:8JaI.-a&0nV9`z"eH?Nd '&h IRcBHIҊG iՁ YRb)S ʅR +3F#O1IfvT250ADh A@?!R= S$C >|B 4Hfjō$l~4Q'H@ R3 f)fE͐%t^xӋD&&7:hœKϐ8@eGHJ d*VC`)L0mY-$z`0C0OKD.@ + !F +!X8 ~Ž 0XeP+gaU+.ZutaڵEhy@=VC75?,;=uOD':=8[R@Om4oF,.MzN`EĹ2㧎mpOG0Q2I{r^ WUpvXa{Ga'jH.,&J72W!m () +p]bB2$zYј!+g6> :wvKb=Zn@Er_&7&@ \ze\uܣ͡MC +;e[܆]u9ⴝkvdmnb-##G*TDJ6BKAdlM9D]Hj`N˂0}iQ-]:r0zS<=yMᑯE{X@A~#I4ь@rG ?8~O[kfT*| +](L(N l=:W ;(vsHF^c}>-@zm3W͓ħxxƑ#"p ec}Xbk(eKJ@VDF+ է1#'/̞bETBU^OǻEMX+,PQ%  +6Ӱj6FA`-yPAA 6u bO(ޞއi~L Cٿ]/A362Թa^2{x`)'[YwpkTA70h埗qYf=>0q@D?oL-vp8!(D7̽vms>:Nx +Nfވ*McT@ v0J%fbT ~M6B'y +aB.Z0BOs]?\Yʬ 1q"^y_!6}J9ifKua.Y޻Q s&}y +HSfh?$m!D*萁J.$)q{~ѸuQEZv6ZwEjyD`q5'Hhkf] 8wzt5ڪ#wʮa{1NooDb-Pb"eeSv ${rNVaH޺-_ hY\"$,fyS#!> +5G=e:\BG2_9 # 'I:xG*9m@BƓH>hk"Oʌ ! BYox#ALT%` +I)į"Nav36bL1 {-Jx-wh» ՌZ1QM0 +hlx>xh +ۧQyϬR+it P^f][Lݔ`AY]fۗ%b;%d%ZP9z8Utz#OK +gKd'lu^;zo<lkٷoΉ%|x~'li&F[y~NVjCU]D!ؒT*ÄaBPXSD2qћsF{=1B ܳ/o/qgljѨ(ș>y,PޤsmXq/p+-v8\R hyj=7y"SQU,OFSVW :EG|w2nLWRy3|FY ͜, +::diqM*E'';E?;,S|WU{km6IOxjsa`.IͰ19i5\nw頉yU@Uڠݟc +pd0ǿ'6NOu0!mC`L~񿰑 +ϹĚ]!}ʷm=SbʸI@I{<\b&j_=Pc::ěK$BeP=t:5HIf{&r}9RM`c_+,pg c0"pGOԊ`LɄŘqe4=!1't2낐pI.@ғ+C*0kG5)'%9a&D3П88'7PtKWdW%V|sʱ99,jUe>fM܁쯥+И.RӠNzY|54~eH>|i)L[BPfm KGS*/=gN\ !vTy9elZd] Bhb!(:NWslE6BY(KoԻ)>"jRT3iw}[fՙ~ʦra=PNQZ|+h' ; +B̾G}v\T((ᙓ^Q%`ZKq \癃iNc#+kCubDzVNF~7BNO `qcE6 Z`w,˻lmge=01:r!Np G힞 +YO 8(ȫds睳^}GF|3BЁ@pE \5n2@݋:bUFH&>SF4Įܵ,>8Z: MϴJ$'S7=HL-v0 <`Xk;fT+3 3Ծ)i5,xmO=zhOh^#l(#Q\}6'$ԱR0=@x=y&Yd u.ňϩ."N]/!FWB9i», UiTS?`xB2{`@y2,Hml1M<ˮi2bF%L ZN5*'m.f!*rPB.< ,܌gƧ[lP{>GBjʾ>){TC>4edGh%o_xlHb6n|v3(G'6> m|돖XsT fl NPG oaۖ?olFJ +wҲ M߯e]\5nq-UOW% Et<<5wNqfTbj$H)PxY@nOspt&y0`HNQ';⍐p֩H ! X_$9cGg*OŸc+PD%KRF:ݔ.r&Yy2Sl[NAOv7CzP #{-q(ԍck/.gw u_ + )2Pm0G†`5m + :B.*f|CL_A,$=qDR~=% mct?I@L } Pɖʔ4| iD_2h8دB'$Hok-B0:w I'͟9aa0 &JsZu)(R> q +X4ͪaIڢ(C.Nޫ-nF C=>78f.4/iL~gؐ(ɱhp݂A"]Ns'N ї˷2p 2mh8qC{9!a(qʄ|yjUؘ;=E݉N +oZՙ6I `VȖM0 ދK4Z}aRxhKy[>UadgUv4\. `*mlC PL&Lr[څ*0?~>}r0YO{DL03@9bW~1JjN-׳?0`.K~" 1LJ_(21i\c# o)}6rb^A?bӊ!nq*,ѰDq b;+bGj?+b>rVy&DGgmkr(pЪ7`m.Q>LkCm_'6Į>5@MPcsoJ|?r(_SRB>_ҝO̸ X3yyq:f:k# ߙ#06c39$] p׬ۦ",2VwIX-l#Pp#Rjo6QeRF Ks@Z fd^̾HrOU,vv[ +V-JlQ3t2"cB_ieRNGo pF@,":o>*za?]Nu@m2ϼa{w][%Vfp0,I4_"}v)&_`ӫF9%z$5]¤KBvd_59%<ܺ7AJrx7o[ uq1x_ucmSlۈїC %^lRRk&Bδ0LtK*iR2/tj>2yPәä5mwnK)gtZ M^DHkbzL;`Ej92{JWGAh1kiJ!ǘ%Z 'k(fɠ#bʷeP"'떳FM)r=77o]Z+gcpPO c7Ra_: Q M\K-| }}؛[l:T݀<suZ4BX|0QY?/ BWTd +5% N %sx0pn<)tyzbt48nPc.a#D+f墇eIGTxyK`,f +*'̩qǰ#PҔTZ"l17uҬ,_[ȴ I~dS5Y9e1(#[tWhX9~sW՞IuX[ 3)3=u*(p>U$pY ϻ`XoqHby (|GmÒS~8òT1~ÁRlJSk/l\ dpK'\ `s a*:/hKQ9\M~=\a%;@-4xFBR/ +rm)&#{cK dQ`]6ͦ0XC;GT|,*TbvMR$bc +2;LR^"b,'-Q?67~!kh 0+ e33/:CӦ-(o=|<{jڠ/o]%.ВY.(E%#P<2O. /zaTv7ehA"ZP]2-^}Jچexe }F%~&/78jm0e~lhpԐV +9ő0#ږTCх߂~}u/kOJ 7sB`BJʇgXЯW=t':']\h$n|QIFo&KtLB58z(wڳF)!:hq(+tW]}ℱP}{+kSJH8'w򾂇O{5-I?,JiN:!B:YAS?N:|!=/|/1a-2ەz5Z]u` ,#; +Z _)m'r~Y_ l8.pl %쪃9l^ъ-*7[b3PjKQh3}iKalzQ&Ri*JygD4Qf(4F/'"拾HIstlO-wz +0!Rp<\wZ]YgǭBrVo"џ+T2W=tU]c@m23R]?JV;^'2P2\ŝ,7a(O6LaEzk.g(Nؚ R(pQ 8MrCMp{ v6ys +UQk-J2٫BƯJF5c4H-T%>uWwޅ +C&jt7|~6$t!#֫YMTDE^Ȏ!q/dW@-ݡ.L_9>鞃{>M<KI-޽sA:q.1(w?=D@=/hIK*lEA!{n<hG2_ }SL; + d#T^@"S.'-yzb:gPi8C4vN7}0![{)vPw%Qݥʼncp!qZfZC|]!J +F!{~Ѹ){ EN71MF[:rc~8*?Rа1"ñw: +5(9qzv0/br'Ma7ڣˬIL @hLa%&!(dv$y5>#H`xU}ŢDŽܤXoi-$Fܛ뻭\!6)JUܦiw9nkZ4uI%%`xh6~MvdKx/]6]"3bpqh kgX65 I5ZsIR@-CধHNKNbUH$ +* ĊwIg s (PDB+Ye9kUpr{9Cage (aĶl5>fƙ` +Պ45褺!-I( +O0p:9RdPh|! +@¥EG8tY%4;p[sjW+Q>5s`L}a``Wqfe%:v~+9:F4^N :ŌK>f{!Wv(LGG-*r9I:w=W x_2XA=vß.TRȻ% )|R3$XQ`7Յ,cA*pwdۉL#!unB< ~ٻz"AO(w}4\s8?[\4$Of\& )ͼ>x6->RQIUhZk C,`>->;Hҙ8rlUa{tKFRx :T +O/Ev;Ąr0rE!{nV_@kPTAo{?9vP8% C Jtu"wR[eDhY0aID<ja]1E$(E07uܓtlA ΢ea^kbYс6V?h +ƣM|)\wxv:#]l,ur?3=q|D7:=~K4bQiۮ¦_J g/w^}]8jGXbbcO grt=+N +#w/ c| +r A|4&;R%b4P2b8XX$#2^{^B%N**]5iܶS4=tR3a85cjSSvru^4 i^j#_~M H\iZ$Ki-sֈj?9ަLK-ڴ"W p%iv6Lvު [L59 +bܨ,X4ڴ6XDSrbOiVeVr) Q`H\hYu)N :-i# 6CiP3QiHN/rq3dQ]O+ύ?j!j̀5ՌkFYx%,Q5cTFMjsڌFjԾN/ Mر 5/RjERRR·Z ;Z?dZ$D*_͘fj$ax?,R;5a蓈CVՌP_8x +\6(YQ Xc uT32nOf@(Q ܭjsjTsPM9 mTJ V3.WIV3>C;=,xj35~j5/`ej کUH'5 mЩZکm35.5?ni6`.1Mm{jxjĨᄚδ@֦J=UVM:p͖UFUi!7Ֆ"j}lV{EİڵŽ).8Pdղń ?yY+!o~k5XWFXKw-kI&j uk(q5"k +Ԍ'KFԌb|~mە1ذVXIv`lrl~d#fQQ/3ʅi.$h[墍&*mzڰmİQڈbl[j۝,~Ǐaoe qD GQ0qer[~6H nuMvUP9XݔxS3T7aKnbzonV|#FO͈s}oݨv MohjDH@fX:8wԌ ȣKĜIf H/ +d.6IZ-D4j88՞7T 8xj9Ɖ€^p73Jǎi=6D.B4rq䠩T+9 =4=֢\N]ٚ\nr#jMA1'm;uKG͸Ә̘ú #q7}ǙSO@Ͱ S\'3̩q#fY+pp,s _s@ωP3s\?f8tq] UN&:~Պ;+7%iٔJ.4U +љ7m%NRC*8jA %ئ "?@"k4cc=IۣK3,xcif%4N3>nf覆ǁM5la:n< >K^W:O4C L5b0қNӌ'W ӽEhf,;-(Q3~@uE>;$?:islt +([I}G-6̀[ѽ1Ͱ]G5Q-S:tWq;OHfQkH[48uKf{=)iVL3-,YPJitj`y ӌm_4cfY{ŧN2f.9ߖN>ޔߵ!wԌ359k|X?^zft:uSl:jX;H}'mjF$YԮ/u Qu4Î iFIrN4Rfi: v%9nAwivA475HiqLo2o.m"evӌ*M3jCsiL3D󳰒,kՊ4c="EH,f+wwvcf]Vv޺ߪ. ߔ'?J3fN05Y;rz E՝ީ;Qwfe. Sύx]+RЂ@ <@WշQh ČvXH3ndY\iF |H`S~t9Yχ}hy^Kf\e;Q fCiz +1 Pq4#veiF=x5<` &@O +vyxc)ͥF',xI36gRȫ8 +\ 6*X/ iنy2yUjo^缸S!4c (hY xFH3ZҌ^?;98, )J<%4w1͸yprŒ%yiK'j@+w3[z ğ *l Rz/Jr5C=ÀfgW^z WN3cس?u^lpgs^\AWa~fv"4C~{hK{ c 5ь,ho4(4C?$c~| @/| |Ƥ{|ozPB)\9+g5C{i4>q:ׇ n}j{4(W$Og{ʾ/K +2/Rߗ>  +Ǯ'LjƏRwF߿*?1i~r=?J3a;ُ?4cs^Ȟeg IaH3F㫍~4#q+4aqE3 Uhك[ h_Lh @#0VL /@ =i P4W/?HI3YHcI& ["EI }( VZ 1_4CSm@ f%F3h^[(R{;bN1RFz# ;iGGp1Cnjaam9f0C\a:BT zAX皬 1F&pILss333fi^A +;~t̀Ic+!S>R ,RD  JHz.Hp\Z#8vBI wHJ0XP¬^W,=##30DAa5W[Q(8C2C53}(34NDR^)3rA0Hp![LW}S$xא Wt Ajm h~JL}fLPP%d=$%#Nl#خR  C :tAMa2,2xa#HpwMASvzNf(7 WC@y$ 2r:DFƕ +d*FPaqp<[eFݣI w1X@IaJYe'T]f\ƈlGǨeF|dS:~A / ,UsѢeD0|D0%Yˌ~f*7"v,|ˌXfDQeFg[xOň`,;V DPU.ڔHZf  Ʀ2# +B q b|(34#2X G4A;v2QPf&℣2ùކJ[=Ufk +0c˅˗jRQ2QؕBue2c\2KE|(ePQLIxK$)KZ+"E4UBO@T!A,2I,YiAHaP7 ʌI0ˌ(Hw] m7ˌ2Cˌ"A XXf@ߐ"_:2i,33;|eTaj1{e XUm$ˌs֦յ%T#AՑ1G,36 !n oK% <FVfZe+3@pPoT Y|eAB Xfl ;|8! +{jW,3Ԯ 0T~,3f\*+3u~T)3@2X=XA(30|AS<$9Ay2~O,Bz"ԁ[=9idF08UPm +u-$3 D? 3#3^ A7" 4c'Ш% ZoVAJf`1~'  |$=D @P& Ș}M+wə@p.@ S2j,0R`\@>t李Nf0.ʌ d W+3p]JO +،@Pks2fUfzRf} P[{'3"eV3Wk7T"'Mj {2#̄.Awj I"3j2zh;#Ԑ4/xP4qA# Ȍ" T TD Q2v2#  efOfd囸&3(X%= / 8 PW#36@q[cEAp+ E ['}92Cg dAPg ؂` +vdk 8Ty~AHHMm)qM %%3pxY̸ŷA@n=QVw* +AN#TB,0Z\_Lf)Cp]CPdY9jq_elRr#3J.2GȌɇ zM}CfH HmdFC.<"xxר(DDɌ*2jeCfԨGBPR4)L&D AzSTʁ ATw >f 8![dƿk_dSfE^uv;dSp K xl9u08m[~@;zΓ99VS"3[zס +v1Cr4j%+f Q ̨%%%mx?6(O4q؛hQ-vlv< +'5BՅ귋"7 +\@xH_"CVDX Xz|%R?L3g| +F0&Xo?fNBVT=!5_8Q?zN. Ikf]qs73sQGG} 샿8. yHS( o!n{.v<>KW5f5bKfi&?K&fGx'wɵ{,oК+qst E X+/@6CZdHCT5*7wZ2؋F#zwڙĖUR'-wtEsw1,[D Ce"c?̍ RK>ܺt/Ėk#swwipEbbD)v8H`z 2Z=yJMtݯb~&Ʉ,EyZZw?O[t; ޼ E}G=? 7q2ۣi:ĶJmln'oWyz -JmLS_-goks݇h!ZɬQTN/i;oM:m.Itˣ{9Ԩb[FQ+CVjdZ`ezPU49N'lDf#`I- 2_yü5Wfڝ4 +V|UH$`\usyo/󜾉s7|ʛ̶ؖvD +67r˽&W)cN[&kWudfaC*xU$ - 8 ϒ=5q!+6f~ mp ]?^BO!bEZRWn |N#^+8iʰ*:j-U-~FȈWl%-+!~ ]Aj~X>W.d7 Hq@F# +4>M(R7yؔ1 g6zJW$ dLaE\e?9؀d +# `xH?|ZbKԊ8K@#.5MCGI0ICĞ̚~ .;J-x +d^X ##>M|{M>_m&bIʡE̮ؒmɫ|AΩrNF0X.Cø{Wyb#eÞPaٗfpHlܫu" mxhדwIdnU\gr5yWt7oGF@T@}83}_:'Exrs+ ݹw iqԧ94dĮԖQ ōs:wW_5-փ!(^^ˌ:7 Q1z8\hпrq2u̹|K^CasϱBٿʽY8gEeRWXR\Xl# e"S$?S;!J` +GZ;M8qTG@qāLOITZ,b XDZ 5C !+KmɳnKwwW;jC  \$S a=)jR`ka}+en6> E .=ld J;mDK CHR>b@00 ^E1dVcBED8° +rJy̘ :bE`쉭뒗;enL~%3^@I5=U`P T"(b.PuF+?1SRCW"vfĦddUk2KZBank Ž>{w!rech0mi R?!cydiQ,l H^?NhIݞȚ:l{h31< +}R-G]Uv6zK^2m;.XԌP:sckVI}issK?K&/2-5rm(]Z\sGĈX}ʹ;}n [lK*g9/Ayu;)h5WMK2!(w!4==T?PIbJ~ċk`za-Ʌ)U| Ym>{lk.#1!#^P U+HQȎ =zm +Xot_p +Ȁ"`Cc*8\;| X)x(q!DF{PSGOUL+B؀VrDP+1s[#2$eV!^?x&grg0%2aU0郐X@fGŖMjDS؏& A(l\`Z=t=[Wz̨Uy܈pZS`?x1ܔYm;_BCVDW3j_:|0IQ$#R)uUeނ+jg 5;J~8 p\6&0dBȘ mP3pz)+yM喻VmyL.Ԙd*ݳO#`Ef} ݞer3+ yʅit|f+1X:(K([ +3EWenK7w= +2j-Ū%~!+Xwf_1|)mGQ0ȈB=O'ke>k^3:z˼/s|7h+;RAP$^D(P@+>5ΟD(13[?ԇ1ru-s˻h׻ߓ[[%fEUx_9X=pɑtaTSjS H0n VxBt  Nf;L.1Հ +Z t H θxFeƫ T49$>j*'b*{{2S0d/uljF+uUUqRG!u'*%8IiJ51#)'R=P,up aE`;U\3t,eA(+ r TSqo1.6e& 1 +T|,Mp#Ubš{%}1JqbS>P h>Ld?jrM޶sɝCU\58T4ts{_}agruo2KjI^O6 i;If/5{߹i i?? HHSjo3t= P^Ǧ>`>NV:$o5cf +6CGOkHY H!!*c +|d596.LW-e. 6*:jO҇);8O^3a}lU1?a#bcnL'K7?i'o>U +fvgЉr-8I\8׎iwj&Wٳr˼٥By:qBC}yMc@ߓ뚓Z/GL:lGj@3M|>O`:/]Pas* QLEY]v&@64*0UD)rV;J#1d1{ 69N!PAj! )\enKJM zp"8 Z|( ea`$?;,pQJ5T \7kl^7!fRZAe|Jy3[47 +AAUCYxGl)'@D䚑:MLh%/͇zHlRN@$vu8CQwEE 5VN='"}[3!#²Ԗ{XPx7m/!٦#:A@F)_ѐ#`Sln>qfoDv<'/*r{<*WnqE0N9O xDK8gֹ+krAy^g< AeB~דvsjOlEVxI{N6;:7˝[6^3Oژ[1s df463sxa2nB#-B^4V)Ŷ(ws{=Vǃ*l콅H_"0pIQCt['ȡ0&xOEqԶa)R+GʳQwr=UP!WltK-+g.ԗ=w;5cte9E#̍tǻ\kxw<]rqh:`q7_ƨnRMfJC2ݾ + uƴ\W= SL=vJ9u]4,# uT+c_隼>.Xiq@"^Ky'bx3r|M%#7C%N'"rhS9^{£v5e?h@RH\@ Ȩ_pҿSX@ScbO؂8 $ĥswy/1Ywv5L׃(ۜ9v2qtR $T|(̎+^rcp +( & 8J16F8%U_5=qOG"~,QTf_s~[:!^%BNp Nz̿.aK|Y[DlX0crڗ}ME&ހDFظg9sl>Fٔ>̎֙wX0@1Ox^foN~{}O-6eޒ<ΧcpImLN|=)W~A4*0nF3܁"Hҟ&ݶ7S{69K/O=gbkbV[^k;; BÛic: SlG YQuVЎ[ +L7/QO>AGK"`CP+l% -xņcl6ټsn@{;B@Ã433ށː *@ 5DٛDz |cx 1H%>>֜cC4;J42QbDHVCYq:gg"\%q}J,ځ `1!K3$?. sp]ktA ВNI Jm?6' ."&.ӊMþ*_#A{v%9RW&U +% }V}z2w:~`jN-aёv[ xk1˻/Q_BM}c濞t룩ܔ-گ`/umL7p?yX}+_6Kg/{7O{UQuÊ4 .xZ= YqS[BVl: w1AͻpПm;ef\ZKɫĒ!00Sm 7Z5wIxro1w!Gy9 YNœ;޾/RKm̙p1dZ%os^&-ȏ<%Ž ArL] ԟx֏ #+>'ң"5ߒ:kF$?<->Xb2ɟyH'/QvS3",/Eӏ\xɻ䊴#fCP389&bɞJ`! 1< kV-7dNKݲq +:hdyЊHHw%X /y(6<>DRk[T.-0~vIdH=ee#UGn=H0v ",diTvry>.sڏ5?J  KYMݚ:+N`6CĖ؂^-y{Y Hln8{{5;]lU:fk=n;s]:{54qQkw_rF̍ٳnPlv/b%>0u>'U\wkq<;|>ٿbgA36翡D";^WjKvsa9:BT:AhאM}A5o'ByPP# #t,^GA#. ''GγQq0rY\RKD=LGh vQAux:tl\(l6g?GCuwq86â@U`"&kZ2;VYhN*ӾGI/B}ΩF }4Q6QTLoOTWu{K6RFΓq͞# N[1K UIЄDfAMd)}_ >%%)c>ؒOuHkn.]nv|,*8AN$Kz? +O5|MGI Nǽڏcsq8!<<_"v)`j  5BU+k+꾆WԤZ8rR,G"\WM̆DbBXc4T^' +gA/9vE/yP4R(_0ُ+4>Sc38^|c7šBȁna ܗ_M9}g̃Þ6p@sW{.E9'&؎w`4j{r[ےV{{)Ωy1>"L6Seu\sd̪p6/(|D]L{rUѮfjwsus:l2mtBv,x)$:{{fe8^ƈ{hMݽ+ڣ޻ +A+OΓ/db#cBn_ +Ɗ# +|g5#KϴFHPA4]p2Wu¦awGͨ"{#\̫ Yw{vYlE,nf@{M<_lvϺE0(8 zzj^Fځ% +4?M$cŰPdr+>z#V?Riph(X&p-3%Vuk%^KؖxVjer+AIn>軷3yɯ؈Y/"UtM~G?2}51\bF,* ZĜa^Gy"xNF텕6C+IDȺ"u53as F\DUt!bp,MC^9+f8WyT>hpK}tv_AeuQkqgy +J^yhxMw^&ۼCT8gJ;6Gzmw=&/ei4l\èA{C*ffgW^w:NC3sL=hnLhP)E[d?es,3{! "_nGhOo=7GNҐ8A*S0']Dwg.΂YE {KQjJ+?ygn2Cf?n<q8q)-vv͐ +LT#`rF,r fבj2Cf%=u )C +Cf9l409)Wuԭt>9`kZZW +{ӨՔW#T)8}{n; 3?ՙl0q J̈RqE)YGf,"kS +\>ljB+n+3bA:HH0_j&hGxCY ,SZi*X[b*bf]8 +at92{~gĽQ:ݓx!.go9ϣ~nw2C#= *W )-h'S~g\e:j -(*Q69ac5A=jw{^_reH"H,R?'y@e[Z퇾(=A.FbGm +ɿؘz +̇滧9yݏhy'oPƺBsAH9KKW)S[5mڇŵݾFfMP#B`h. WsG~ ipBA6k^fLkrcsȩy,fdžyաsͳMBٚ]6Zއ?o9]lKK{X1? (Y[ιM5f(zBނEy0(W: +ͨKg-q( ةv$H[T%Z1Q0| Vv|x]MjCM,9&DL5&VniMςKg.ǾJ6jWnƫ _CJp%_91L}`;$K#j rzK<[+9Moqw|ɫ]٢rq~-ѭ )&hoow!@(3l\Rݳi!仿?gm1>TԺ ,:|ꌛ2y< g!n] [C)F\* Z|9_1|,o#l8g]?,lܕ[^EĈO.0\ݓN^e +SysB;iotꭸ/@RR_ݠ\XNڥQspZ_EUEXM]C.bk꬜SNwS:7L7!#jx0=~5#g8u)j|Fw[WGapBKOQtr2c_q폐q\<H< "VE$Ķ[bmN>C Fٍfr@SJwPy\$u+Oks;E.5v`r_1l PSɫ悐:$1niQjEZ_ ]1oR#%|T5B#R 5=L18>Q5rWecrF>ëjb+GDl:2;jUjI%#y^>LlAYR52 )/ *G4= ٦H뢇jz,@>VVӅ `v(Y"‘O-hp(!/'+f|y+jM|bf&Mt8EOg#K+8bNm.7Knf@VW e/zL5>%jAO%bH3sRPM|#^!LA@2A+zJ)5AgWŏ: FfAX$XlL}&ism5i-Ў QKVJ^[-9y}yL,sur?(kì)FWUQ` PtiČ(/7".;ܠep . 50O"K"^IDL1}}m G)~FdDl +W#Ir 6q%.A^rVbstI(/Ǵ>/y[)3|Gin-~9sW!sz&`l̓*ѭ +!>g;ʕ\-%VKZ2C.\tKpЭ+g1$V}+ftW،ښxˣ[mOvs[`%/c.U2['b5oB̖ALMȌ 4E +]h{*N.9{v"d%3-_ݢ\H'1 O22 > aKIH!TBQr4*s=doi+pDLӊM٧pufKBP4:dE::dFJC+ +BC,'r{m O%B̖{ԐCuؼS1GX*6 +r"'o2VĂxZ@BЀ(26 bCב(;B#j=Ā'0Qv&.9sxGĪ4'w׈mĔ+7.ѡU!^@V l(;RRh@*I\A֗t-Mv3][C{'6uͣLi`(7] 8J[GὭn rYhW4f&;[ .u8~GC{.{ڡo۰1l|KV2Pac^01M9L[km (Otq [WWӏg4;#UpԌM58f7? ? і׆ rPO?f4$f}ݤ + կas_wT1 Of>K)"F"x FVin6/m;oX8(0owzw3zZ[G~̭zF#w_phپH[Af'0$f8Whǜ~N>OyɫMdBMfG s#ϑ޾pT Ԕ;ԒKSAHA33E%"Nb8IuFd@~[eY y?fwݕZ:SjGhDT;H`<`>!ZPk*%$($؈O49%R+b=+0R[[YzI1N}lLx7Zj~FjWࣶXl1 1 U 0'5+MEfBP`CNK]G!h?֑=}g  +?V_U,[{6_W7?6wE3ȉCa{l =K|g0HQ.G]aOR  Q߿ q #q|(;={bBH,*!P]pGLvn{7?| [mG5"^K +Wl+Jmɕs5{2ɝ=N-,u +rGm?ټ& ,K'"-b&n>qA|+•biuaulC8A[R[msWlmP۸ufشtcЪlIڷtgԲpYүqW԰yhֲwhZ)W[%^&_&Ėf3̣qK͢lEԪrRУpJʝh8ʝf7X \&ZȜj>ٵ|qѯw`ˬrTֳr[ѫgAȡ_0—a3](Qt@V!˜k?•](ƛ`/V{O{R^#řh:k;z\zVZҫpQΨlG̡g<΢kAʝh9Ŝi9ɣmLT>үo[ձqZʡh>ˢh<Χf>˜]*SX˜d3Z)c?ذxgԭsXǟg9^(YWѥjFٲs]_BФs`հͧw\™f3Ęj:Z"{JoDX!Z1jDĜ^<߽iWͤY/ˡ].ɡ^/V$IŘY'֯nTܺҳxfͯv^ƠnDa+ŗa.”['MTȜd4e8{O8ΥgMضsdٷscֳlRѭb;ȝY(QKɠa5Y,ЧoSڸzqЪoPț]*RIo8e+tIkLe5ƚj<^"]!Óf/^$yGl>_3ϤrRϥvWˤuPØi6ƛc2UTa-m? +xP"ѝrJУsOÙl:h3[ȕW#ÏT!ʖ`2ʚe5Y ϥ|eԭ|ʣtQ_)NLONZ%{Nc<ÖrB^%ƙ^,ț^,ř^*\"~SX#ɠf>Ęd<֫{nѦu\ͤpIȠi=Ɲe6×a-SLͣqNɠtPšoAͤhȞ|WƜoB\$WVN|GͦnOʡg<̣e:Ǟd5ɠb4Ù\,[(OIQ!ЩfF۷zsӭv^ʣiC`-]$Řb/Ȝf5Ƙe2_)ɚg?ӤnJ͝h9ʜg8Ǚb0X!ȝc3NȠjBͫ{dʩx[γxhٺwmӰhGĞ\-}PXT}JZ"hE^0ҪnKˠi@WpJ +iF +hF +uOj;Ĝl@]#ЧmHΥjBҧjCʝb1}DNWyFШpSկyiˠpJΤpKĘa-V{OzQVcBvR!—g>ѧvXˣnI—_*‘[#RU[)NӤs\ȥsk<ơqNӰȡrQV nCmF a=k>X@ɡV1z> QԮeCҫc?ɝ]3Ҩe>ذlPڲyiШqO԰{mѰznm7d-X TÕ].ԩoOX/U2T;ڴ~{c?}GƞV%ɝU$LÔV$խpSj;ΠhTڶznȢi>—]*MI}HTd;W1ȚfA[%yI rJ +sM |ToD g= ~JfA|P.ͣtQi2SOOwKoE|TmL^?ǞqHyXmH +QȖ^,yIi8Ej?i;’qFЧx[̡g9ǘ_+Z!]%USh6v_#`#řh7×f2̞qIh3c1_3{<P ̟yXǙrIe,ȝqEȟl?Ȟf6śa.ę^+U#JNp:m8śl=c.\!\$X~WfDoGśgAǟnDZSwMOPPɡa6~FqBШycɠtQ\!PUYvDs>{S/yK!׫qUƘ^.ĖY(ǚ].W)șR(ŘF>ŢdEϰq\ΨnLˣqKc(Óg2`'c2a.TǞe8ȟd:]1ƜmBb*Z^%lBɤtRe2KĚd5_(\!ʠi?Z+Y`)ԧf>“a3{W#^*ĚpJ]!k7f+{U[f/Y"qI+[*ƝjBvKnB yJV\(̤b8ձiPM$i7]*ȡopDY#nKlLuHm; Ě]:ĞX+ˢgE׳ݺz{ĖT$w< +{APQZ c.Y.~\*Ѫ}kװxeҪjEʚ_4ƕ_.Õ`*X)țb?gS~S(].ֱnUɜ]/UēY&U%]1֪|qհtͦwXȢ{\ŝk=Ú_,Y"UKLҬpV_/b-n:c(_"a'i2~YV6uK2ѧzag4{;{9yA pD _'Z"^H+ d5̢rQxOoAwE +LsB p?–]0|_9 f=&`Fݴ~uˤc7\&VuMg@}RySY;&{U'ŜhASU%Rk? Y.a&P!{O%qGȟkEƜl>Ęa0ę^,V{Hh6_,{ElIlM%ȝqIf4b+ƛf4ęe3_(h8c5V)c1ƚj>ʡpPśk@ɟj=ѩjEدjJٱjKR%xKɠ|_ǞwSh9^'^*ŗe5•g5OmJ(pI$΢pL~A FSoC}AȗJ,ŕQ6˦kLZ(ΦoRΨx]f0_%oK kEvLΠd7ΩiDI#pL"ÙrPf3}P}Gǘa6ƚe6["Z"a/_2a6Ҫn̤{[Śh8VV!rGW2zKmGhGŝqEh0]TuI[:tJ0[(lI#jE/pL͡lLѧpPӬoQˤ^5E= ~Ba6iM|[CjGȡz^ƚf:ʜ[+ƗW%Q'p3 +S*ҬrZb7W"ę_B`Eɜf<ÓZ#Śf5^%wM1]AҩydШqRѫjHMRƙ_.ҬhEƣdͣmGѩze˥vYЪ{e˩~jÝi:`+UzHIS ͮmOKkJʞv˜zP]"S{V }_!pN$iU֬{qEPLS^&ĕl8\#^; _?ͦuZYUZ#|I SÓ^+Úe4b= uL3 eKݵ~wȠa4`*”f3a)yO\!uPC+qH&kGqG^3k?kA`7o8 Ǡa7y`9xV- ̤kRÚd2UTWTvIzLŗfѮiIQ'tN)oDb,rK |K‘\)śk?Ùj?ФmKϣkGT"[2̤|b˜tF˜h5`1a4d;U/d?sM#oJƟnFVtMwKuMpOvS,e>`G/ : c@رvdϨpO̥jBV KLY/˨pRqU7 Q7 ~YAɣmMHFFx9 r4řZ5ͨkHsEU)ڵzmٵwi̢kEQW!zKqD#a>c=X+Үuh͢hIɚe6ΣkDˡd=S g= kAŸiI\$_+˟pPѪjQ̦a@™]+PSΩu^gϧcIԭo_կmQɣa7t@ b>ԭv`̣jAƛd3M~P~P{EŜ^AX7Y8 ocȟc>P‘])Je;mDW*ͨpOzU9 jK+Ү{sұmYÛR(ǟoJˠy]Ө}lӫ{gĞg;ƠjFΪ|eǝlHʛb2U!PȚe8ٴyhѬtXŢpGo8ҬЫ~mʡjBϣd9ɞ\0Ү]<Ψa8ǝg9ղwǤht@m8h3Y$V!ƙd5[&c2qF],lJ `,ɜnDʟmBƝg;š\3ƝZ2•V$RɛnMǡ{^[%~Q~S~Rʗg?ѣvZh@_1ʟ}ji7c8b2JŜd7ЪuYѫuYѭwb̧jKֳvi׺αyţrNf6f2Òg2c+ΞvXǜsQzJU$ɠoH[+HyN[!nAŝyUӫ}pط{yӳynѮձ}b6QOBŽ[$c0̤}jj@SšZ+ӫhCȝb4ʝrK͡yX}V$vM'ТwkЫwd]*̨pSͨv^̞j@ҡd:ЧoPɡkIÛg=šg9ҭxfOt@S$X-zN!Y+ԫubhFa<_O֫u[$M|@v9˜X*Хd?ХpQlDc:YBϭt]Y&rB~I#T%P"ͤhC\6|I̩o\a5m7 y=Y'Ÿa5œa3ˣgBȟnJ_&qQӯ~ȥtT`.a0|KqBɤf@е~ymX`D(aCӰt`̤mHƠi<Ɵgb0pDyHřiHʟoLӫw_խydѪt^ģ\2ɪfGЯsЫtŠwWkEc8ĒZ,֨jHФkF—d5śe?ǞlDͥy_ȢqJKb0ǡqJǡoFѫzcӱx̫xb¢iCͳβΪxc×b/US]-ͧrTͨrWO{IΧq_ʢtUØc6QX'žoFğuT̥nȟtTb1śjKɡkPΨmMΦiCZ+N }FȤiBЮyiʩt\d9Ϋ~oͪ{fǡkEZ1Ę]-Ú[.ɨhEϳt_ɥtPƜg>ϤiKѨgDÙ[4Is>v? RԬziԱ̫sͩwͩ|eˤpK”c-X)_6mFkBں}ʤlOd/e+ŞkB̪lN˨kNȦjJ˱ylzR2|X3ǞtrԵ˰ƫx_h:c6ίs`Է~|pQ@(fE9ϱƨ|lb/Y$T"NN'ڹ~նa6ͬmPմѯsϪ|dϧy^ȞtMĚrDo>lKwf1ΛpǙ~Xm6m9ŕoDɞqNΫ|d˰zja0d6ҧyb̢wZͥw_Ѭ{h̩vY̨oOƞl>ǝpDşyRjH ^&m8ʙqI̝vVȟ{]sG_$mEǥkqH] \-kF͢ygٰxˢiDÖ[0S ^-Ϩjęh:QrHvR~Z3gJʞlzd&\EmXݷЩe@ˠ^0Ĝ^.eBʤmOױuaӬnQQ"vMȧ|wNYvMlDsHxP&cAl<|]B[>ڲzϨlPɡ`:ǡ_5\-ƦfGͯseͯzhʧy\ɥzZͩ|eѩ{cɚe5͟^6ʞ\1KFΣmRӬxuE`6rSѫ{hѬzdȤnIȨlHȪmJβvd͸ǯǩ}gƢrPe:ŜiEΩt^ӰwcƠh>›c6ÙhBҬ~ta*[!^0ŘmVԯ}uάxdgEQȣtTԳյɤjIĝc4Z,N$U8Үs_صʦrXZ$ֳĜsQg5Uǘb9ʠiSЬzoѱ}qΩx]ͥy[Ѩw^ė^0~HxF{GP)̦bHײq\ʤlOŠrRͨy˩nȣtOb*oC +~FY(ȠnFٵͤy`țtLŘuPƟoF_’a+ϢoHի{fȣ|`dO +fRqBӟӦpØb4\3ɢjZնԶӴ̩w`˩sXӲаynմylɥa>Ü]7Z(_.lH_GcQ~m+Ƙx]ӧ̟hn=ǕrEСly`](ǜlGɠlGϪu\Ѯw`ЪdI?y>e9ѭ˩nĠuPg.qJělDĝk?o@pC{^'y^&n@i0Z'S'X2Թ|ٿڽƤmTd<ɯ{зԻԺwneCU"V"ʨiGָ}ոɦ|bÙqK۳ٱس˥bEE"Q%ɬiGԸxnk>zNr4ralY YLkE=a:7Q-08"   4oJ3 zYĚkF۹{vٻ{vǬsVk1p/k'~fxkka\S +iE=rG?{IFSP{OFsG;oP;B1!F(#cTfLe,™vLȣx_oBn<Û{R|Kq,qg kd\^ wMNhA@]53zFA~O@oE6T1/A%$: >$Z8)eSxLȡeʧw¥fpvjj\kapl)jeh]^S^@5)@#vNA u[ g<ͯzrѸulϵtgǪs\d0X'ár`Ѱ~wRzbyeg*h5{f.aIwO?iD:F*%h@7 pF8nA6iHЫukͮwjγ}w¦nIäiAáf8žoCƣz\r:s5t2yd(mSXB_>1^?97!% +{:= ~SP:su{nzP.3|Z*%, f'`@dķ0A`AxP?h)|lBH>>?$/ArQ9#%b؄R)LDkW7U j%)Z F0|$N +D| ,| "$I ?9)V`i!`4p]4+4V;ɲ\ !&Co!/1iAup]!JTDgB/MnUrj !Tՠ&1@/HK A( #~ cA'1"哘,2NP"J Mԭ*:Ej]](ha6DYDrZ`0 A?/ Ç_HAACoCFƉL R2" 5ŕV%evCAԒKYvũ%d| @  >G +JH0pct`hƓAQ5i\}1IXia#%6? ߀_HBRA5d=H cN2Bye Qu` @/πcm CQ, 2@S{th@ \6| (>HĈ +2Zt<¯H5,p +35;nX]gqR$^| 84(4| ÇACʗ!O@QN| + 'L$-0fyTeڶ}S{g16`̇ R<( HLj!! J@_e QaE[TC΄Pk)E̎'⨊ ) +w3P) J. Xx!Cx A85L؞齣h!FMR, `$E? H#D'PC,|%h ?qM`2@O4BS*u2~f4FYt\%hJ6CDP><$|?ÆBAdžρxD g ja:Tią0zj&Un ^f pA/h8B%`>_ÇB菐 V`$ *A::Nhzdh6U1<)7mw4]8IF0 +| + +!~ #1a./E +] I,/5Ƙ;#X-P04B/;T 6J]l1=ZthOF]OI-?C,LݵHm,NbVaٝ +p/`v3g7]v]4n( +CX)*(qC,X +\n ^(p)"xaP" Dn+71̆h&Q\יضѺ0xg{N;M5>U=pZ#`tYQlw!=Gv@n(?a/Zy6j#8nߖ%})*~l-m:i9.(sɶuCDXLvQl&kq +DzSL +皾z7@;^n)\odE:".YS Ruav^Rq:ܢZv܍qsD݀1F4ǹwP6k^g:wKNožlh{;5njFܨsXܶ'jOl|LO KQs&jn^Sme,(o\PHYSkL%qPh7aUZ^*F3e qѫ_.kxGmE۷Pjs)]Ql{TES6snHɲd^Jqy3^|P`[`۞ņ/fvO Vz =tH='<̲Hl9 ( Mi{z|^q%7hçA El/K-EFIg=KV5NR`V ՚L7KuzpuׇPv_ no(>djs|Ҫ3G௵LkcX 8~gf]S쮅 TM72,e9Vr4+Bo ].\6;һ6gYjE-+ 2R˩,Ox:C +c`2W[YfcHVbQ6gTr(0%O{Wgs/Vj&,lEW*h"FNSO(arP2amUWgmM6<DEQcs3YVHR͊'CX?TB<|&*^Trܼ ,!=i0FN2IJ,5sʮ kr#,Z-/j'2բZF<1AC` <#?Ɖ2b %Jj5Ɗ|\u sgtUC:&ulRU :,;RP@Qp@A:D >(ШP8"A9H)7`(CaoƮ[]`[q<)7JuHlj@[W{TIFT a1ZT$$^]Z3`3 CCbW5v;b:)7-Oby&L]t4q5j}R4ɑFIF u^E,\ev;δ=%j]5Ugr ?[v&Ia|134" ,@xY=%ۓ$ J@˶>GQ7IsQ +χt-/LL1?2ew?@˓_  ?Qq"=Ww!*Njx'C]҂Rr)vN`BJ (XT%mە.7o^U;oeh{E*\pSm_y +[bu.ܞ+<'HեsmϪbo3P2LbD[yS!{eT#n$ԲMw`ZIS,OFA}n/7<p 궷I9IORWC4,}IUzr#b<^7M̲Z6]ư\g1Vk~2: +'Aն^r9躈\q#E]t,NcrJ\u)v۸ +$1=E8f`d5r+n\mCji' +!VYS!$V9!\b4GmƩOm'sJK8Lmy;4Ǵ;1߁#:_v%N%n0Ҳ[jXPl ,O&I0 :Lb8꼋 !vIZ΋am!F݈ϘOZcs )w9u & VN 4>YPj/滅9!&XH e|e|2Dntj,Œ;Ň⣀"JTFd7Uxn=O6s^w te%y f+`MX5?&+zw"Ě;фŶ43 +l2]4 "/>I4e@fY]ӸUHfi~HRQT ܾި5*Lb4xk|%I5l!5et.ǵ:78TPjaٸW_ySOi3VۀH:ofzm/J  Acmz0r/}ӈ_64=edeV_?K?q%*N\{Jj&i({(J^t0G5?'i[ ʅ boBp)a]L08ɋi<$,*6'3do(HϴINTμ*TݹwP$I?gM&E2TEyu}Obs)`e0kLPI+|0D,Q83F>DYH+0#F5 ]mOY-`q]mѲr'b nh<7R4sA(эeHn\4`xi.Ȳ$<ٝI+U{.xeE{MSe%Љ;8춗Voeky v" #rQ֋r9Us9\p ++ͭ%[Ofp4#Ete^n_Rom3^nuoB3>aڎi>f +78 &}+g{ Ң0CKN%f#Qn kVn+á\y=dў徠8Åifa'-,IHl[?a㕭gIݐa8}šh*zjcmս-0]vg|LU+{ן m u>L5}{d`=ƠTÆ9iɏg{ aXގĮ[{OnE Έ v=dmw!YdҔ]W^s=l `a.Y7>GYy^STg8v0\% ,Raq8I3=G9aՍ]4ER n$=`Td%La6ܮKmMD.Oiy7L5>gomW VA텢b5 +zA 1ncAZxC1ZZ֥E:1c,U9伴ȵQaW"SѥZ|])Y7{ 2܂&, rK4VԶfIcJWLA/ʬۄ!/rVs:K9Nl4JjǬfԖ +2Tvˢa"됃VR8d_ q,##K +0A員.jCzI薞SbI`e{ [)i?z$ȪN~V'1 "Ӯ%1 +*Aj +T|!@7J~*pcj4N-zOF=d>?c<+{O3$W\+-XNDe멀9[>o)5!iGs'-37>=LރMiFBTNJ+:5Nl FY%*+,wM.`Уߕ%0*V&&Xo\nxK%r(nZmGe|Ͱ ne,{e~hW;IX"txLrM-б`aCǔ9v]#]`$-+&+$aFeVHTЏTJQr,/2J3Fl +6eaV-J.=1*]C& +@%kvN꽢GlLgtRY\K!1EEq0A~ +&TYHIRGMX=|\^t#\7\y kc=PZ}sd:sz-pKm1@e=X3aډp+^2?VnAX.lLh\P).A:Gs?|dDZ?O^u,E.{٭"(3fZsZ(Pب 8W1[v >LBzj\ +)Vq&rab}qZ| 9ab(C3[Q+0Ԟs{+ntzN132!aE:\8nWr8y*9k7B Jaj5~Bd +8 +/hvb,|Shp ,7NBKxZ3Gm&P0"0)k&T~l%pNa3Ju; ^CzO +x͊` řŧZlO=Brl 4PC@c%rz`uV 6}[Z(uYM:i;hHۙiNU"m!~(vl&tMh'vOnNb'm4&Au ILǭێ^z!̯Q~?}(|6)%tݓ&*U)@cc%4aSeŨS~)?;J5,!Wڮ酗ajѤV^:ZCq+qb_YR[ôN#Ec:-7 N-GYZ`#BKs&imSnZv^B}4޲u$j8xOdl0)Çt.B|\[H1!/ *Gbo»7P34!fvEv'LcGu&tέCe D@lm:Zߖ]w/;c9ɯ5QR!14^9Haj%E]BH .AKƉL$5m7rlL9(l+nWj\ue L_D׭,'3s-pZJolyY0ƮH0 d3@ek6& ENK)k9mgٽЎR/{ 2G~3p> UL6B?q[[#:#]ywZ0Q@M`s^1jxhDBj{I䇼)÷Y21vAY/epr*4V<^Nk"Z)pRj9k/İ 8GcTWX Z^*tM`.vX NW l^\]\ 7T/JlŘ& +bI&>7i-D=%%W +QzVkZ HrWRtְт{ta]i{z)B,4;*2k-crS+ɕ1K*7GjT !פ5s#@zQTewJH*7[7)=tJO/ٝ.p 3az0*4h1- +wOܲ%nWaBԲ=yp]/s=Yۓ{7NV 3L`t>kTX>Ҳ S2Y!1NlazE=%؄%36?('X0%1Fgwn'nSd3Bqqb*@KdP3p^11@n!.BvM9ͮۖ[p%U|wB7Vh"lTe$hGدUˏ*,w%FP,>~EGqr_ec}`tZ `tևt'7wHGfk`Z jsǨKepf^T÷e?v-f_1@{:; ^MZw_+NĊ=QJykP#a$Ƒ:srk=1xdGt#nSf0Ů$o>|ՖQQ}?h5}ČT\-T(I@"w4 ;j^`1^CRAN! +*q#€Sa:|F.k悗5Q)E$Us!' ,Ď +Jp +|0)  n|/Rf"EY +JM%i5RD.E{IC?f=n"gF)ZpoW^: +5n dT%E@)ʰG? IDR8(M]@#vXsaby;0Lwj}?i5i541':S1E<ȵ֡{#ɂu:;{IR-!Z /IXd|KSf*rRb=#; $;@ -QZ#et_9ȎJ,E V%[etiPנT3?|Z4׼hzv5ToRYrĮm8Ioѳmsd>N[By4D;zr:Wd!j0|Sd%­x ,EFNuCᣂ !.uR.:o)SZ hP)Zdz͋qFHϳ<ߣfS,^6"uOr Ί>1jHֶ̲W!=ోΉ 2Ivcg m㶡EiPO)NN`3R|? cz&Ij7ރr;PW^C̟V{bj8Zw(P=UB0 +-H`lFl809/]G9}%UM٥IH44^cF~܃FdLk ,M`*=x. a~1BT`<,'xQNdJ~P/;ٟ]u-M<u;~f+=ճu-!+>DLJL U;Fv@yu!PAnM@Q<_9֌EmYRhỤ:M[= TEDOgnI~]pYc&ou^v8k2lA!j+vTc$ū3UN UN8*}qZd(nbEp-1bWe$B3m\}VRk>յ:m(BBz? z]h.~Yh#B-7P cVfr4F|etA-k:5eخr2kVD@Jq"?]WB~ 4(‡dQ5l-yO7 O$ԜtU(pXA( Id7 .'X 1{Ct_Γ{:MZeWd7Lmҕ?@dyمVzcz1JwG+- +#5~<ؗUWMRI0*i{1c{L2Kn])=׏Ҳ=>xh-d՜1f\8'n;j߶VRu{ Hi %]]՛ K'Q*0 -zFVO$Am{/bb_s Ot߃ܓ + i%opI槸I#L$_rJ|kXX9f{ϗj̿[6WV{d}[_jM/|+B.y  +e/xÇesJXnabEKb`<1z1aR7g,l$)[x2`sFr2?4Ex^},{JeJ=j=Gl i<Ƕ1DOTF)̵Lke6&IlW[ ;Eحu"qCFd)dDh B!gbƉTyY3r-u:zSa'- RCRZ^"x&Ŭwu'ȭ%A ++ά 0%)#9#LB:%Ar[[wּ oQJ? )8T'B'zSx-@J_0)6'5R D}/Ů9:-)w6%s)r1$5nRa0vZwK; ) En9j4bY%VX +Ո>4hנ(|'QmxFvalw?U7zтkE])"sP\9/JybRz4\3\1w"+viu<7!35&joK1u"j "i"#f[ušÆux)R?>0Y'V]Twdb$v rbG'A3#^I(2Zj?P庮I93Dos#9[P׃c+H8 RJ,ِVf%¢u 8CRLp"=1j}(h_VwռYvd~_)^Ow.sp\\Hc [$ܡۂp#@o=cZQ{*Ή" ~`2d =yXw 6a8@p[(U덓rώ1]]`JjgxRʟRu0Z']ؠ$w$9BQYh,*4N M ՁO)BɓKm:^T"](H`v!@|L +<:E3MYU/V.Ԣ99#SNA Hkͩ*3N̎[viPNZx$#@UAsT9 +ȑ0t`dI5ȁ +C& \՘FniL#xYz<(8%Bw0=%3 +0zQj,1ɭF 3_ PRbW)C<̅I ōQ%2uzYƯ=n'N|(XNCY9B#+10E㼏@uAfY(ؐf:RnwsuM/`EbG%v_}zO5;ժP$1v+V#i<  +{> 8{CBNI8W*Zh*AUQQQ)u*r^k溢c2 6Gq<-J Y]Gk9o]\5 =y9M9ݍEP Ň:prq?Kd!~ZS|3p9!\K2װsI*sQNZSk"M{EJf(@,0[&G#H|mLxް|ɘuqe1P>1Tey[1Zm!X":%B^IҜN!LnY$~ _̶0"2rZ2_ w :ተ`wCOi`LFz_8Z#yn7nAX(Q*y -&8r/ͯ3-gRD/ sjf,.LQ XPl]&zd{aW͗bv)j[!4$fLy9p=J+i7&#:7<bzz∠o3֏ep)ʪ!پ#e%/\{yC*X>v +P*#&N7[{ޔQZ'{ޒ~sT!oPCݢi{zqG_n< &d4H )p:=Hz_24Zڭ h`3Gk)~}M1b@EhIеEw?D^iR|[n?kdm۱Q\ґۿ{FA5M>J-ַ0JVh$O;ΓkMH+m&J!gk1~b_hb^S췫#myOR ;eծ7S%v~IJ`ilVe諃UJuߵ8YOS{(-Wbv.H9F/0_3z_ڻ/:&W"{Bzy!雎C[1Atf~~ei~J +BT=U3h ;8!\z 2~gY2;Q«D@\89c5>Vj(JIiQ?@"`y$:Y +82>_(˪ =64!%@&#Fiφ\5\ y5Qʲvagxɂia:bqߘ5*!ןh x KHA +S"T h!\^\궳s=7'.޺ޯ93[Iܘ6Hr71"t?Y7(1PQ Z-ԈpL/8Q(P8LTkp^&\d6f]Gj-$̈́^Y\o*JrƏ >r4972flo*"lEY~WT{nXZkK]9] ͣuq8Ȱ eɅGNn 2PHaY(!R`Bld.6j;RRj4̤_\+ 4b2c)rrtFGdx=U0>x=WRzC9Qk8b  !R 8sW"+ͫ 'G( 2ߵߘ$妼FZx +y2Iz\"xB*{qg_q<߅B$z.BQ.ᰍZHvなYv[H=)蠑.c%1d֒l4/ӵ|zD3M-5$R1+V$Mxy3THN2CM#[ + Vl[K|3yNdE0K9?1;BXkErbhN&jz&WM6L֏vPFgwk&5cNJ,}jbYt Y-K+מnXXLgYf;bv"CNgH,,%a +N ؂,Í|[_xDwu_mѯm' +lj=P_h9rۀM/`FB :K $Ip$*o<!jm +#b rd-5XMn9;o 1wn!n/ĊWh> + Sڈbӝd)Ԓ)g E8b ee 8X53_4r;'o̊s6nw>MC s sXi)nHHn'B ,Ӭ'br:Q8HF",REڏ)Eh=Q,ooiͷ_)|wL-،a6\kc:R"'?8.A+!b98AD@df ⤚$P {-&tz)O#U}P57m2+kVz@'en/Txdӂ),Z̎&D0JpB4Lsb9ñ7Hm+Z߄;#'큻n9B(FϘ_p]O-ir`nX0E(rQ] &iEjv)YǐGiLՆi0n`Iz=WwWɍIr, 3O1D^$tI.WMJcx>)ZBu R!S!B-'K2ۆҼM!@$g).d{j:it0N5R')BD>KJ:^av=ϹR^yh8/Lܞ8M>FqEB4'63`#MSAJ4[Ayv1x)t0QYnDگ)y6t%Ȫw_9wU)I۰:7NHe @M@Om!yH3 /#r'St&Ȉ-7ETB4#=GɂIUXh'D8^l7vHQڍ40IKV/vdv />o=#a!fGj0κ_Z{Qř +%t00!m.)$( +'ANe Y2ȡLk$B'ɲ>in9╌}?l,$ :Vi"~[y$LO&('dțK<4!dɓN|8)$4N 9KW[{׭d?AT4sDkE"@GϓhۋexPGԝc%`"f1IA"lH?*Xo +e4)K564O6Jin:j ev@Ѳ +endstream endobj 26 0 obj <>stream +,Y5KbuD_rs-}Եyvۉ~Uh +3kOLdW,6|? do"AJB5M,hbZj(I/ ;G0UcsE]5?d dz3M5\r7sdAz.K4ݿwBN2KPz+c"Z{a&rz#Ҫn$x\Jl7H 7kXVa*blalkY8~]p(X̆Tޢ.z/=')Vs9{ '&!_8>3Jr9jan5K7\wfxc0JɬIN%MxJSk~$qo9#oQv+Ќnjc*Uf8?B[e1s—00_aAH!5–jd:0f(Z(Bm*Tj@j/ F'mANv޺^{苏1axf.9/,ޢm.6O˯,6WfOVm(Bɱ#ϭ("~Um x ,7!6RivKboZ/+sjtYXmǩ :!VE0azAŹeBtD}6 -Hl>j)Nh2rl#TʲAVTm#p_\ )+2T# +!RTsn"jvjf- #^}\4KD瓠8לGK_DmL0 j1(y(tjj ^t2<`&V9U-Nk +V^&z{r/b!Z&ERy' +@ *i%г%xbY H~ TjL+;b *R< ++pkyE*EWD F_P@ԨaKt+?ҬJcVe7j6=J3rc+Ы6#Vޣ(AP"5,Gz.&YfK,mEP:CV{^jzہJɟ^ Њ G +rd˽2j XX_%G-~ )Nd"Z"d! "jIr I)6zI + HZX|_::ONl3:$m$C-4TJr?$Ss%y*6&{#34*`0pXA4;=@>9q"@EÏ{( p* bD0+tFkb]]q\b@ D% [U@%IL-T!jqpj>SYxcH)+iV&)')5ZG5YWk?X/ E)8[&3]1cmlN,!z,ɲ&D)p;ETlt~ZWYl*ר&38 +-ÈTDJ v(p:n%xޡ=CE(h=ռ yk¬ta.$6jzoS= anjX㕏\`n0UۭㅿfzLx rAJ8DR*XDra-R>H|1}'j@/Pg xL +r6Xxqc)Вpʆ26DEiEH]y>\}>QV bY$ЎiQ1/&d?> ƒ:H8OXEoW -o0hDUTVYNשeG%+t( z<@X'rsÃ܅ P7JǤ$ +P $s)6 bQeY!G%Nsubh%@g T*C&(`:Blx r,U@(e$-HFH0-8ɟe/DYV3UwgHؒ϶Tuk!])#l5D`M `P4h `G:  HG <ѠXx?k ڣ^g{_AFg$& +YE:&`<8@!~xaƒP58 @90-g$~4yZQ}y#&rH f:$ iB ItxS*x"ƒ*H@a"A.!7TGzOꉖSTdШj* &!yBƒ! (\Dx!"PO@0E`@rA.qЇ8"isl@QZ@N"4=9Q@wbI]3)B=^Z*-ɓH;jRr[]1$oWڲr& .LDӤ +dI: P @x0%@

& (YMH(O*:ƙp%,q,bYLYљ*Z!=(& 5&VD (AY;IaͪV-[=>#cZ,JY]ajY=E3VEQ9 1tG){ u%4 W n*@L + 0 T65 , F˜*oA걨-iLNb'T7tQ]:rVIu🣵TąywtOXSIUWjU.g +C)] FIM* QQ>EZPP&lBEDCtv>QaULŰ;h$E9zJĪϗ26`B\YTMaY@tS{X=+]NS?yP^+GafyHdZv' +VQ2al@PH@ 1 yEm Iy0d QM/~t45zibe-yMV$J䙢kdWb/:R]:G`kWʏ7jHMBr׳jqlGZjRB](wZ[aTJ`#$AI RAĕqr +Y_ţ(J NFU#+Dt˂7Nx~F@gũ#.ͥhZ1 Ba!L_vL_t#TGsTb|?L3u.].ۨUHdW5#DV)5vrE &74_r*mI9T *^1c>+!O#B [QPo +D֪rRveW"T4VQPMH $Ujb@OC)B-kRk(fFzKɓcxh}&kh^ZA4E%"-aXv|ڦzZ0m.W1$0#~Жl;ӲYIeyub:7%x+$%AwJO#(p3ɫFEq(׍ՙ㳆o/=i5{fC,/^ >AgHB')vВ jCNެ'=S]3h~WbkMQ{chvLrbw9u4I㤯wIłA%(5Ji%Yi߯ew-%yd:/C> +eч;hlDTNs)܃f\HHl,#bߵFcSZ3 +Neb9hK-&NSR0ܯA1y`LoX:2 `Y +l8Wm{wLEɆZ<)#t.Ȭ#bC >;\o?\z v)uV?al(FjAHinvtLqJm^,LAW9OH^ ndqJ!,tj)ƏU3Ӽe4`,xUȺyܮAC=Q̥%Oh<|VK%Ԕy+unbHKm>-?WU'zHZhler_NHr;T(d8irR#CEk4uFA>Z|( ^GzΘJi*j{#ފHQa+ni7rҝ=u6? IDd<&͠h`G/y]F4R>rKTjSzi[me ;9ŬXHF[ qYy63; UFq>m!-?|HtIL&pW -v4vOI_{i7Xo vUA_|1 h+j+ 墀FE4Nr +$>av fzZק7H ˆd0.z|hqDf,l>riJ@[z&pI>lIs>+Zvl&"{#;ui8TʶȡZ!Jꁧ3*Zm14^u,Jm_1 P;#ӡj"0]r~^!TԣåF_~; e߷=p|ַ4e*,1(@uUUa.(ye ΙA&O9 Ӿ#g\6 ̸3&{=k;sk.Cne//S6?@4+AHǂT}U$2nH4> ^N}-Բ92>ů;F*,gh+1'̪@k^ul<S3yl3RB:A%ѴCdXMpԔ.`4dt*kQz?)ZIa" >yHg5ԪjT3.PBE0r@zҭj} ޘm t|ٶEM4ad&& c }ER]fNlԢ6H] Z߅۱HK٥7kNّ4ITb3}c5UIrO7ڥC{+2irТ|*I}F7>> 1 yPvbOi瑔u-L#6pFq@;ƺ-Cyf@G4[c}vnO{ρ+AD67Ua'JPѐoTqv<>|O/CtMyެzOvF;OpTVF=[}&= UEZ&8>xⲝFTHe5Z2J QYeMĞw}V}%yv%-5,Zw(جfJ1I +A*^9L+D+j`5TW;beb>Ai JwuV)DPN Tf+MӜ~jC?p=k6˔~Baty6MukLJj(K ӖNp?R*u~Iyyl4*T[4OSJ|Z +[B +\DiM\ྪ:5+k5B ;^a$Va2cvo+k;_N8GK㣾dy HU׉V6>';3y,@'l +-Nd@ +lYfGmME峤oeP͔\D`a4wzZIfC+U71kc|J3Lq` +;ZS\sؑ[rs6\ovbf3%b_/Vw J+f54X.OUalِ;F#rgIpؒ<h3%֝`]مEA'Vb$㕸9㘽BAɃAU_<Gc}L1|-tT^zHhe:+4zەzؠ~|Sz.{ +{|uYD:5gy~d34wi3MG1 + V]ĪӂW +^ŕ[YUo } lfYi'nXHKg ׁ۰XJ;,RP?̵jKd +.^YXc#Q/l3Auޅi΃X㳛*ö[p'z߁\un܆v?h-_ ^/uZLfI~Hf(Qs9Q^)r{(xweyNqC):WKRkvTEHf2ھ76#j^,dlz33p>9MNI.Kyo*LMWҖ'Lu"XX޲(GMmu|^l?;^lT?ȼv={U/Z]uzV\IKQ~\麌r1%~Se,ƩHfY_W\>03Χ 1L^|I]'@"-FDlO7,.wuaD2q_CTW RGIń> "JId0Q/ +\(f-6Tf3 6rw6]b3{K>X*s,}_^~4d L>0s:_s!tI`ÉS[M.Es!KjpF\m8pFy 4h2D)N<WOr~8h/MD*,i"x2`I%^2ͬy(Z%:2E^ y0 5ҪŞv +"bUsQ "n:I*Weqi D;c)eh{My +wWIѪ09JY"2!hnkrCB#S@^O5skb4$ euܚVeJեӴ^irdRNơwBԋfĪgqrxR,#Ω/,ƊUÂx12\,ߍVxJ.T^/%ϱ9ڱ(hA#onlX{giX$:EZ}XvC-G$ +"eHJH%U [4Tb!Hnɧ6+Rz'$0R}iXt=E^/>9TyD䶌/nwSobe!z fDj|r)7:ϛ)/lVV R ÷$KX3w{fyz!X@ ++VH)'E4;`@,Bj>!N7L'U@vQ>/_˖0)m4!1qGlVS0@ 9ZKv6J+ lYC'B9Dau(?YP E0J +bH9Mnۗ a'r*wjϡLJqJqnn3Q^(>y{.z·Mar%!&iAPuNSNAlqB *E \3z +[jͰ47(n4v\@r `#A5!6K.F^&E3߈G @Fzݼ3 6x}5$w`獂'aNAHy>2N`r=m 4F]j +Pǔ]OG +/蒸*,yQa +t*Y;j>cxe05Wv4 +hec +qˠu +$ +{$61(Tc+ +SXTWQ~X3T~Cd%)@>\gY  9% .#Zn(K~ʌ5&;j'2]u/򑿍9I9(~/б>ŰʌBNH/K-#qfvF>"g$)DjG,{&(wtoQ)K^y?& (Rc9q 8MM`,/iZq8-!doq6U\On B +6w&tu bƛ@G>! egk+F&0wQ~ÈEfzqps8QQbΡE FHVk@F#['I3}5adEIjdXPsK2;T- Q>=pJaf R$ #Z8a>Se@ ĘeB'E&Aɏ)t#8G0RsB+OHlb2`ٮ/fxpgJƀ% ch7 ]] %(".xAKh)rvߗ _e>oyVѬ:j WUc!4A$6"[W@>)Ib1bX!@ +$D$iGxY"DvHK)g8f,X12$72v5O ;Hք4E2kH*9B OP{iUJ*Έ 1  V fc_}+YZ,_Z1? +\:R25UcrD\#HCB{`"?At"~,{-j9L5+I%&%6= dT6S^*Ua:k8o' d1°0!̺(|yO\iqy?ZDM[%V[$K>Oz9?DcR~=0>oW)ײ/xznB?q7_OFCf D$Gsrt(CW/hrߏQ06h`X |! /^y~7sZ$j/F?:kقxMYn\xB4P얺*ٲ`@.LT(KxuCni.2QVH,}5IPR-Gᢑ״ڈ,?p0Nb\yi9I@e!֢ uNq̐[K< ܁:DNWKJlEg Ć│ΡhB 3XİlE9lq*NTfEh.EHNBv!ǣ^֭buM4q=/V&|Pt "}}5y ` AT=P74}yyD~KbVX( `^a&LcƛvWOrʇi#n"Zaxfr dqZe`eh.ALfH # +1q=`2#! ~C80J;Rh'I '2pA ]AYB ͡D0J0*P ,8RJ!@O; XwQb꿈]]k#<`P9[tEظ%H(z MM4Ƃu)H윆!#%rQf&lV6vbZ=pR Ab?^lH[*\1A +;/'^ .K@ L_RDEc}F74!A+H֣PE)d5@A)8Uu TTT( +@]&CqEM=D͓ՙf5lZ%D^WUI\M +FN(ͺvMaz ŀ /Uh*D6J`N>v/%Zª\aȒ'VF|=l!VvI)|a>'3<$*0I+ `#@GqDgVK1RAv{/Z1@U¦ +ˑW#6]D9b=`³vN8Ѽb:FDn$N+},Oݾjߴ 3;:8 N(|^}tv*> /i#S22Tt$~Qb&L/% +c.M0BiQ받BKIB@rQkTN@Ňu:|Iӛ|B,ͣ(cEA@`DH +bxUSE@Be$0ObxEs5\55=m 7@Z#I[(˨3p4=XK8Ci#xNgѤ@eL!R"8as xRQ@ YAbrA2čD S|yg$fE,n(G6ۑ*o1Ǡ"9oÍUCʮI|DOJ& +D/^a@T38yAȩlf?O ' )?6Hm 6S b"$}yĀٮ]0MaV2x>iq:w^d*CA2}@Aї'@Dv[Йu_9VqV_;KR`Dfç`0YRiayjQhq퀣D1D,HѾW0VIl@O`xF8o:4^ $'*=%B$ɳhkB^"H!BVFq 2m8R$`@eCZPIj9g hT S޳0k pXHZ=e_"Bixt[^["Teq,tƢDOaY{fCQl +fGbhցGf"xeX^Lr@VuiO"BQ0fktK_e̪?Z nNg/7VL!/8_h]pW-`Vʄ5ߚ튃Vr[m"xTd5M_(1[[n!blh6Tf6uV>DSنf)(wZvi VRmA/>N7U(vh=W2 /<} <' S\}#rYh)z3mB. +3M_(lli~Oh&TcF*zRgƬ .(q?ˑND}Yp? A$hB'V71n=δgNTXF4e|/ 8Cue$i$쇠%xx-J|Ob ` ,8^iH&~Tx5rTUe2P~-HxhJb6W'xϫ&:e9Xa/X3R hF3LA +x(J=1LҰ[_1#im H%aօVu_WObLO oڄ2'Nb%xXg){']ȁ`ąsȡ2396c3Ch%QVih1uG8P7\+j~B$"-!YyD4@ +ߒ|`^:*;)4(2>)٬qkgQJ[_Ցy51E<]lHl1*u`S h SWJRt@j-ɴ~EHZm1Ĺۋ=~1\NV.@axQ +!ua h^Ep 쯉2NqFʬOLdއ !ǬOu}c KGKnũ,8ϒT|cJMjc$zB CF\1u;f<4\׹:/Beћ$ҹ[GAz|Ե9N#Afs 8g{ +-BZf*~Wg:'/2:0f5uU?CMdCXb9Mgrj?/\wJ7 cWj4^/ĴJ6$!I^IH1|/Vj:\-'8@H2*CrAD;{/a: fϪ2 D `(`*$ ]$%#zqq*Te~J]$rFⴛ陏]oe,x5"  JRy.Lse# ן۵?ǚz6Yi*S +ɎW  W]!'ĥAR۟z^U)x+z3^.^g2 V$CtZ[VkYpmQ2F$h3UZH#|N\Ao܍ėU-w%4^溟c,Dq)Of"ID\HtLyvJ;n2{ާY ~%4[j-GӘ +]0 ϠUB୏Se*%ՔPVCJev3o2kNZ5 +^! g/ +]rKM+p0++$zBJD3:7ERiЕ[Y*`cSl +D IK*9"Md?16KF*6;1BVq圐)ԝ PEc<"*8 el@YQiֈe[RA$GGG%>MSQ"Ue٬h]sbOm +ERi+' !$Lf%fҨir2b$($Օ*Eh2O^gҜft{v?W%唞ļ*. +'3T8aꩴ x\wRWSBM%ph+jS +{.S*65މ)MƊSHe,RG͐laD$DyF W +1<3s>"y*o7|vŌsG(j4Tb`H_ v2x0>T ԍ +f&EXL=U6Ցз۵;=M|vWEOvT]"3T)_25j<(H! +@Ea!4VFF R'FՏ$4C$r<-P0X 5%:RcjP`Ȍr65n3B!+S2!S̅(Ĕu"K[#TSE>竪hԥrrtaC#{~r1`G\It$|$rq $ٌH.8 `6x6_ڢK( +E5MPæ&Z&zf'; + ż Rr2E*P@wACL@(Ƥ/'YxI[ZНtlK>K/Ռ1R{(c@f*YgjA @ȇ <`-Ȉ#` Kp8t@H0<^kbjF: /imLOKW#jql09*˪V Yee[IyM{a4͵ZIҜwbmE]H7[-VcI2lj݌wB 5_(C 7S_Ȭ(0fZ[@; R|0~rpjG 5:E~)-ti|7|/îL赿H#Iֿ0~#uX] YE#e."~V`8ӵ/X*Ts +iE$uT>m?TJ\`u5sQ BzN 0Xe!\'85#s,΀-EѩBr$l|, s\/g +~4.̰YY+X O5}Zk.pm7s==;W k==LֈLQF[rg0թiLM׋>t5]Q`յrx4LrO1q)g!|á S=jEVÉ&2~w{iM'M2^ʃ޳@cLu'$DzB ؇f9l<:_,ٮ7a l%q7/i,:دzNC#z{4v~_& VPR5OV)NߪWFx( '22A,3O[-)wYoj= k|on[DڀCMzxO;BHAU(z2S1~EeԶm܍MS`C jVЊ$ԬK,5|wr~:/ F,3H/Č^JdwX1zeaihaF Ir/FZ)/[(f({x/EA W}N\DwUMo.K+Rt͇Q*F8I[ K(EO?'!YlXJo3>|z7u6!KC tz0EZr:A\jHQπh+B /ouZmy_|iZ(q^H\p?'B\hECW[R8<n31V-|ǥȁ@5^ufTmz0sjh:9}CΖV+:a3%ΓV}@ %$ߡV/*x{!1{NjvmIE9=TtŏQjW\ 1?)׎ӭbg)N}u%1V`6M6#u!m!-OeS98fIh82n DJYI2P_gXYy$H~8] ߔ헁HƩm$i \nE@qz_ۆf?"7W(y%$Ux颭0wj@BΉl cŕ%7<19l'o*M,B-3f\ RRഠ#rCs9ڂ{.ê,z]['j7J ,Eh8`#,5HTjn:Qa Ш/fj`O$5Wi p|>oEHb8&'`8BD* Snߡ;=m' 'O"1~dt޶łXm56߷(}"tKmULyMQ{Of!mI'*Bה^,|pÄiI9u0f׾R osj!!Y?7H1w>@m}S]7)6zUb1ɴ?Y)5p3~:Z 6H<0Hx0 QmNgև! ٶhfIPUUىW5ɏ Z棪'nmA@cw#e͙i7?{D(i5̅1re_-nZn9'oB$uu*(ľ+fÅط'q .i0aF<]k2ΰ3Jj(܍ D0"V.9Nnl,Lp,E .H^jHeoZ +X- 3G[hV Tle;`CVx,<,48Xv /\FI % )`ɖ9~WvN*M0} J|0PR(_E+ V +ZMe@j#p6a06Na3r(9z\MXg'+3B1 Uؓ4 1RaI܌'z4?oEIcP 6>9z; +.{H#姭1g}JJ,ÈEֲDN-P(kd'a:`ZR*wI4,qBP#ev ᅻI~"q>dHS[q92_'%&Ak`$K@vi|q[A0 }!7AV]:ÍSXX +I0BOt|­GYWI\mƉޟ81> = +D -ts_yy_d,)2%vtMc;k}}O7ÎJMX߹uzEluG!Ǔqs^ւtTk=/\@D2Ml%q,ZWPSŒvǞ\>84Qw#z?*9mC4]eVQV2,=LUj .I)m;욶>fNs\$Sb}E?ZkZ?%A[pD[s)ⅇ +bԽ)8$؎>r(00@ + u&p]XmUZ LEF.`12SED?I&#(ky8 9}*0 PPP5t8 1aȑ9h tP.dςdr6gbD'`bY5@{bVͷz@\&~WnYp8K{ZJ^,:L PbyU!$[6#6"LX}- P +V <7щNVyYTKq'6oRW* (neZՑsYb5.Jk lg=3y1*Xe,qfU78%V{丄좉8V 9 aދvxJQn )%oDdxy%olxW ,_rEi 3Dt<0x/2ˠfHB2M%!$Av*X#9qí!-_1k%$9(fU>R ̷`EKBJWϋN"0DQJl7Mkf~I{{"kyP쬾44iQ.A8 8 'rUla&C +, ;hޜ^:p*R}Xyir7eS E(NҠyAA"#Qp4T 6=dL݂)p+APf-xf!SǸM@iBc/b #YX%&hK )K_#lA)["}  +-רY& - P|&} n@V Tɠ!'/ ~pBIAH(m>i_"FG@J916NbH,Ho4T$ FQT#lpNT=ŏ +Č* 4Wg55ۊZd^DPc廖:=j5gV=DTu rOk ~hk5?3c^a Πj dlzd JaFq-h\p6QV-p?۲W#C&XU'r-uMCu(ʫ[զ,-}5k suϖ(B]f)]DNք]$ 0I\H=ݴ>9PaA* Vz5d)_ՙS&Q>"x @#@Kl9_4cyr]㽊{[cH Xz bx̷P0a/T2hX ڏ|Q^pLj[Pʵn p%t>x|rű`/|fq.5_Mr{]vӌx1'H}ee!`G@i +`el ݥnsN:hR\ {[ ctMϜ:|qRfㄻ(k!DEW_,ln? r?!hSؘ6G'RjF+ÝA^!ڊ߄^5ܞV+oC| +B$@'բf)3)&my2TaD R'TFr1_Mh7MZ?`ٯ{2**؉Ӌ6Ħ,[hu 7XfMn@\0zHV\ +ց%V9o3 bi՘ՏU}~xNZP^-Xۊ|yM)c=Qx.z˱F [Oe>p 8Ҫ7j{(eߞy3+q&ɲޣ(΋S"E_eITh[Hjs]of +J"t34]\q(F'Fb غ-<j9U[3ݦL4k<;r)WEKы +[ޫ$TjpV8\k57sѤt@C(/t͇Y03!eh낌Ә +!8LS(O Bl!],T0çV4v~e`.6ri&x 1֛֫2 w8^( [ƁQv2,;Єh8Vf[ =T$PbQ6ctͶs4yvt˪|M+:Tj] NxVS M|t>jrSeh8K-"ӋIgcy%|Vd)PtdG Zjfm˅bؤp~/}Uei#ph#Ct~+)2pPHqʂU6gF\f9W 7Sb'v彉v-7cQ9Zqd$ BWuJHh2SjwxrDvI6|]41DglT2LOy84z He8ijـ>ggm7y&{1n5qyj>ۯѪW)tXJ$)䎺D^R^+LqE0j>1>7nhpCuGu$TG F9C:zfI[jsT(bk] m"o~iC΋oYݖ6O܅ o#F\_/ϱh 3K[!|M.经Y0q:mGCi[,׭+1>c%vA {5 s(6f @ ?n32p*#qZXc//+G(g!Ԋ3NnKa,xu`܎v[yۯ$v_,I%s!ł nzbnhX,mX /`1s hН5ɃJVѪ e/+ ؇\VK^-nn=p@~1MJKvJoTQd{/+ɨ  +2l_ߢO3dh,{Jq$pi'ĸ眷6e+(Q\nG;_,ӯ- NW2ĸ<|Խ׋f튳b/ԯv9!:rۋ? Yk贪6VԳF9^jkBBjO+[mω.h5쟑v$+49Vghu `V:Z0R߻Mr4S>/Tmõ6ƢH0d{-5r7&9g۟zC-jqY@ԕM۔׷:bfÉ`6"ٯ ]!+;{i!k!Y'we_ ^G=6>̍bsY4}x"*8M{fzN3pBn@3OzM0+mcԲDZ/9ZmB-G\%ZΉj5O\wO8 +!<;r7ͥy r)2[0+F@`-W6dQ-V\﷙'Zh7Dg I* fq 7{{փp"9ϒt(}ԭF6Ha˕%l db  #ڰ*aZkgEߍӹZ̅/>֮̅G T"7V@b\gϖ(/\jUAo\횕q?'l&[lTj +wRmzYrQ_h^xe6rdn5&U͊`<:R\nkQ߅ַ}bO2Wf[D-Ց| -u?YіU>TXIV:/9X(\MJLM0Aj6Sֻn|/!dH(3h}MWEkY(m@o%zMn8QvQga9'uF԰O!l5=9PI'eyΓ,i$Ir9anH;~i}6\yP-Tޖs6~fȰF,nª  T6R%9&/J@RAUFŧ,(1$3(atņpR|c-Ԯ5%km(kOh`@$&1/L`&CH}5Fm=:`oI<]m,WƫHZ9QY ۸L3Cu[n=(<.h kmqϖWr>F2TW u!f>Sb1s*Ɓ +QŢXm7./k` ΠjM8O#F/Zԗњ4~ $= N|2JG߈HN "[Jb!2Tx U}y77}GFތչ[F|9pVGރ*M˙vS +"֙2B< ?!2ka,=m p7|$n*IrFDM3n \n؆>1`bE9Fij +RsEHlŏYV 5kբW+3"h8]xܞVxۋ2=|3Ы 9~xvoE,?Q6_FϼgNz.KV6XdnD5IrNZ`7 .i6v3ṟS5Ȅ;qY,dj\I\V5(vbb6ng2typ܀x}OщΣxj ۦY-5b\n| AW3+.)r!BGE*I/Jrqpr<=Pa|#s?Vy٘W9Pl|MHXB@>nja^,g_,p5a <4Sa ´fvro\ZRQ|4L]p`d$1~;9zR[ X DXp4MTǙ1PU^jhq=7@E{Ii i.v% _#=^[0T#U (tԉɔluA"EhEai|/o?0{NY(.ELkzp\p&8d<Uin@vU^+r}Zkƀ%3 .Ug"Z@vVfP%Y^_7pԸ:tmo%u{o=N}gY?sJVp@ j,g*Ta=?i:g, <1QuB+rϲyXJ,Da8R1W|Z C j W~̲^m!s6lGHoZuJni¶o+3VILMm|Ɨ`p%׽*È"XA93+:: 6qS8q®\ԋeeWv28=P8Quv`4LrwH0V:A#i#3*4 Br[N~R-i3 m_ANyRAjߓ9q$T\O:~vP"uJf]vAbv2##X;٘ͱ)%)Af=Rno$#d$zݴ~}oқPz fJ-'-4 ۤ&uƌ5TՊO.ZS,DV؎1>2)2B,&&d=gw͔I-Z#%v) zOԗÞ"Q0nd=L_0#5"dn6+_1LI΀pɄM9UBȪXdCE/x׻zFIiU[br޹U#!-YHPyDQ7#:2<Ðʼcr|\@+Yi--n>ڼb՟O7"o ]OƗ^jP+̈́.a:ߵɒFڢf(2C\ &iGfnM-{AdL%f1O%%Et=#d5P9K)JǯZӒ&5=G:h~NoQM!^e9!6Q1};-truߘ޴c6xE'1vSEfbzɃOo|ǸnNҶl+;"e`RXǎ\RTO`se&vV%:I" 1Xfn 7^BLN]r^7NVrmnv%+35R&.ռFbn̘]2}r U;PQ`ih.U%ӥf3<ǀeȓ#Vb8]v'@'w} +ˣT%kBsj7MYf;} +=kBʮ4؅#)r̶Q0qF(-%d3 U/$YdʅQgDL)^NlW=E MwɄ*1 J?'G-$YwrPj.5k[Bk?F*=G)͋/1QY=$Yl<_Qe{~߿"j\_Rr@lz%|Zkv1t,tR&9sRw f "[Q"ITJf!!9[cuB *%Lj,7Esx:\n8݋.7Lgz2/18ޯ%Z`:tȵy=`ӽp8""^g<'NgCG"+rL ̭"dZp7_ӻx:\Š\άp./>9G%% W LtE/c(8QВ$e +nQ$hP +A@A!(Gc%F 0Reh`B`OS/$`FI?^pbJK(ٚcNF²ֆQ e|/WBuiTNe^,_U@U{WRNBXIľGݗ|#C_W_G|/}s_|_C>o/}O#|w>G|Q>o |_ć>շ|>C_}[}|}K|g>uPgD<BDp!DZ!D!DPBD!DN!DV!r(o:K#N硃N'[xxyutM dx?FŇZbt/L0ǃy<1<rdZ/\K.à ,QMHX6G0 cQ hix0uЋL{޹X5%Ims%@i4]:kS+i=J+DBD!D!D!DzBD!$f258128e-5ad4-400c-bbdc-44fa700(8da527d8-d31e-4545-a3ed-3019210d438555773658.5593" 9J`b|<ϡGKNiwT G . A`j4c4ԹQ~'0:Ch $kp) +'bҦ*SqfH %Zg(. +ւkUDlSF9: L.r Ӄz8-2/9-/ vhuyx<E% rZ`~` = zjJ0GuFt^p4?? A:_-@xFQAb՛&%Aht/0J{*jQ@3v0n+8WWD!D!D!DBDyBDu!D!D!DB`4:%ѷt"'d:4GtL P4wFY^p- + Hx &1fv:30N#aʼnwy4:E?O>p0qL ܜyMߏ;JG845MhtΡo4X m8HC5a4r/9"LV}&i$.y#D2I'd&Z/1-<#  :|$IB?,Fh6Gd2zsy5Gd  .L +σ||Ne"R[Lr +. l|ȣObx#xfKBD4 CH 8: JٴWAAqH(A!A8@  +C0EBcr&µBA U`"{\2V@p ]Fp)hq~gOGwl׊`8#o7tGjxܯF#=a:r'u{AfaƱmm@ף3H:U{oO,tYfnYaIǝ9K;"4ރ^ya\8S k"DxeИx0#>8Cf > |6 Fr˘ZǝIJz:H0S+f.PSD psSV6cH" G %24)CDAhwR(+LMOQ*wٳUaIXس DLWi3ΗbLx + ++ڢiڤ=條dkXHˊ1JO7:/y/WϴI!_z*Zh,HxZoUlƘꡑblb5oY=aeji4^J~S~#S2a@Dt6X!r$zUMzPkCί0`3HP'n— lA;|rH; 2:wO8v#5ť/[7agUhD)+wL2s~FRDv,nrа[NY@{0MKHsjfKZZ\;q4@'-pr*w\p^q "wphe&Q\A=AAz1ap7h&'"%TũPJFaSЇuS66~#"Y_2<}Q撚(Pс9f/:P6ȋuMɔBV!7! B8}ë +RØww\ ${dI+ޒ1FF`v{ +HzO].;G7ɂ\&\r@KD>mY𔍼Q>Uk@ѩwJOk ms̻ߔ#{n6z ם\hP$*#k-T6q?](b ?O u`)2MXHL߀!@#leoJrLP#_p*-#[nLWxfʦm@ͫFia%3zQᥩͩr2\VMf+"fjkй jK FW{0fGM<51r3i?0\`W&,E(qa g{1@r#L(2 >ƞ"9FXgE9S1l$V3Ft@yk .$iWc,x)b+FɻfW-UZum\`-֪K=U(Θ g\;'+^ď0D)^`MSr +RqKqOQP/̯RtYU10 ؆85H%OM <BttFG7…32I85`RNff||wO[: SpNF;bVιh%D i{)%"MAW3bx}w\c GW塽[APBt3Ez~Z I/XSNcRS7k4Vb(VɃYM 0G87r[mMuJ;ŸJ+Y:ZADP(11ߒ-;-V)ChbkaqT-fRQ.ja'Uם#Z>.&||s6$}t,ȎM?3;+Ά#v&#Xj6zZ5-  +]턲M&ZzZ]~[[G/*-+26CZ+BlQLiW%;rD)rl5RS/z,oԭuLgfKeұqSN;(nl8&jKhsJKrstؐO7F nN(Gާ‹Y$5鞓]Rrhajbr*K'ʇwfF7&#fTWGZ^P#dLX A* 1Jף08n0* tɥ8G8ba6I`@*eaLSnptgbXf".~\RKRYB?Z~k?5&66=XpjZ:)'Ty,/QGfh|YRGz2IY[ߎ4L''G(Äcuwn?I\EwN.s[GSڽTX?/`/֜vq𴝨Tz ޱ`8v*Ꜷe2/2s蔲,)59ޑtEi8* M-tcSv#}IZ0ѧ0 wJw_H^ ca`TI Ky9L\/=RrANiBTNLO> 9tҙp 0@IjB5H# #*VkBL+i-TMamR ^A e/Յ_/ -.Y/=5YIC$Ͱhg|VC0,&-gFoXzQvzSW岄XC,1<`avP9'|7ey4Kآn*_ՙziŖ-)-W f#S9C釻v.;ruQHfMK'sI=68YRv6{S84S]:1.Ana"k\5aa5E/l+dk +#!]_>80=-u7Raf4E1*B\=sp~Dj ffnEF`;" ̔ 3OTOUQM+ϧP2+_KٷԛOO,3J1/ώL56?w>ݝqwwtwwBD۳'(361)ԦLDKʤL77gAD;k[<Vtxӻc<9sAp56nfc 66#c2a!22"wf㭱v뒰+񸨶ۉ؈곻k:!PMzLqoXJDkT#xLgHlDDB"ݾEuDv6x1ov'qkXkǕ7L;#r[Gta>D=gvo/r[LZ9{z.jD,4T2- U]g[k,մuuuPohG%5?ա]}:Vݷ9i{]Fǧ|;աDĹՔnhLb(3Oo[<7JByì@/aa!dwo +Ω0^%kF^)ֽ$ծ~KђV,8+#whg+Usnr8G4EF(IPAX^$X=#f +j%Tl*:E[u,x!}73: #5?c +pU`@Y=+:U zA+@\iXWə|3P/8:+&K&퀚uo{^Ȟr4 z"Ɓ@Z!FnHCBj?b 0 B8Z8|5@6G$&.Gho|!F!!L[CUgł1?Mǹ*2 \zh1bc#X?_u8P2XmuBZse5AQgw 9дc$[Y8H+AV(Mâ%m²6ઘfmo5OA۹FZ6{_yןK pZWNE@AOo'1 x|ǯp]` cŰW0󬦐$:1 jGү ~*a7_`(0uRi"{H8f+n#$Itl>CR + C(^,|e ?Fﳨ^`9ɽn{55vL8Yؠq3gw&޹l+*&Ơ8UD\ D`D_Aϭ;cs@,M2 (LH2ޏZYA ʸ@ . i5Ċ#[(!b; +T2>l\ ufbO~sOL0K7h6?6pP} 65Zr&kA{|p`IDOaqY*֬9x+!h!3L \A LMBII&®!$sVVo|>m\\+J%1慉qdi79*qd$b(ʓ<+z/GM!DC 4ƗG-0]~ʸh7t/I;5N{ͮ4e. +buZ |mQ%ڤBwJ81ڷ++,%, FMpØ$ +Q|mf&UCn +V K˳mg&VZWyi;`d{cs.d94y3ʃ\Cf%X2z6G;W ^"&6BS] FB"RTl! U-P}(klD"kQ~𪠀Cvb4EK tC NU]ILLH`fF0 6MF[ױr#{WeSԠLs1D]SZ¦./`M1BKu(h[@R#[*K@zׂrH`r:=qHCDoD˕[ 7@gjWS_pFϏ[H6͋~v'2f 2qzӷE0¹Ν?L2ϼIq8 Cny xZҔ7@ơLr}sؤ3(a̵ Ӌk/fpB&cWL`*#5&f&/G,"Iox +7 ߩpKP(ȏ2>C7CUv_)B6ކN|kt/!Vu]N/+:yj[ gҼmccA#u 6Bswؔh V*O$Gcnx|ճ#j@ꊄ]&2O9'gH*VS^ojJbGś`gwmN3Ơ_!0^,߄)3; 1#Utۣ".N^d5KBD=c8 ).. s7-Q{|"Q#H.eI1\d %%TWx>1j$AaDN #F]q'^zhSiV4jlE8#Jzm;9Ή pߧG9ԡCܪ1|I(0RO1]ϱۉq/aJdYDWeͻáQ^OQMq{|.dڨTZWps;_{V]vMYE>{<Ʒm\7jj.Gnފؗ<4sTٔ;PA򈫃i\(a;b#P߆5m [ֆMr^\@Iky6}QR?;bm{&l!hr$wp|rw?#*G:͋eFzVPWxH z +)kYTUR''IYJ"oۜ\M?HڤjՔ+`z[VHj4BZ$l/Y+7nG^Q|VA[[R42)@8$GG=fvM3E%G(gƽ~Kiݒ*$|HG5ۺlh핢QZ"V3k"?FЖꆍwdPs Y#[Rb4;m0oɇ^ɰ@6}3 s4Q$۞4[cWAQ͜4:Er!;|h"%ڎ-Sv(_gkEzH[?܆ 1 F0di7Z=얖)шz܋qdy`eoۄSLb5]^aME@(GaD` +vt +v [0C]3[iБgs2X 㓰TWVFz%Ddt+O5P +Ê*]D Y1J%jհF<[mD@h +;5'!V%mAݐ GԾqs*x n}Thƥ ԁ8>"6'KؘW + +aayE57am-"_| +'?q݄[ahGiObzňYK}5c1GV@ZWP {ȟm[cNP̹Xdg>G5#V.wKHCQ䳥Ǟ{d@\"mGr),0D39  ; P,^obP"T-s⛅AG: =gԀ6"_7{5oM i࿈CAIKӗy_]As]ނ]t.׵JJ"qNL-e'R_3ќIl$m^| \q7 + gb~ErZE gL +P Ӡk'?VIT틋3!yP^_Bb?>1XgB&"M1lnlcw$h{֙=n^ņ8JYǥ+䤟 IUcBBP@[@]x#~^GxI">\AĞlhۧ@G6zTZޅϟcXطْ6s ܜCmEfhԸ- `aBV'KTTԫ1`Q0>,nbFEϓa"LW- Gp0FCm~M+L5+g8Fm@ R3VR+>n*~y7Jq -:xI9}<\6ׄO+1~8a΃ =ӭhcxߪm9Y3 Y$D(0rŒ6Q H&hۿtŎL3H@H"ԉѦ[`J"MKk0d(.yƸ-% @gZ[`90Ɔ0}}wWVW19epšwMFuRk'9Ѫ!&!ۨtK3\$e.9@8A]!\v ]ă 13.U;>Ȗ[RlkIT`GU[\]5f!h&bմ[~J&)blc˞>q97'fqy':yK}xpPǰ"7kDK%ôz{ +>5^2C(3g5\/03R/uU/l$UIdސ(BWxތm&2Qx-xRDrǃY^)^M9z[#frqpuE6)`=aO}/90@3<%^9¿P ~0-ۉ ^8ԋCR?˷C5 (^,Vk/X8C:SDDǴ>D>9!{ɫѽB GG8bQ^6Lq4lE!ljf \ `xYk4dI2lʅKGuvhT2ϒF 0BYLP, ˓ɣѱTC@_ĔWǒnQ׍# +z,(ٓƃ ٷJt3`#?T^Pf/-x&}%1ێ +(,ڟƠV,#))5)hCn]q/iVqQ5)j;GAW-Tݪ1Tݷfc5>+'( Z؛IJ[d* d+v(lwiHahP~[E 'E_3Ls ˁgg?;we-~R଀ T kW4azK2CđД2IR%c(h{LTQm`}) TZM,쎦QڧWu9 y ƈzU+IØJ8HUbSØcØ?< mו6c +9O7{^DBc_[A_]DٜJw/M:.Z!-g'VHMw$ *e(g<3czgw俜J쭍*Мݘ\[{*HQ*^T^ +p%HVڿ 'J H*u 7G&q$<?e+WeX +L@yPq6Ɯ^[e%9¸p1g( HBP=37D +%^ +uPT ==> Ǵ9({+۷6>5o7?eV%|J%S!쟂|(辀M. *'W;ܳ9mn JvRf% -bUEEmZDsYc5r{ r^N:<1fz*gbZP=)#' =`r\*gʽ=VW^*Yim=u*el7Gp%:hՙ>O`yf;cqCL!u &ÜprдV(dgU |-`.z f7%`A~m !adR@R1} iZ5@3VLh]ܠq4uJ9=wgsڽ1;{v khj/i$F5ɀz?aA/%֥bY6AtCh:'f `uJbv?/q١"~u֧nA:g4KmԚX[o3K$[Xv7AƲá,*jeֲ;DKn7NJ 3..4DeLcqWݢ foIA0 бl'G˧"{n}rX/^Z- )3A23\E|t&&"UG)]vo7z/n/x%Oר%?l 'ghp)܋`qbOG2v\],V{!pfѧDUEuÃ9&}+AXBrbtc +{sZPK=ZFڒbK4k'O:zDUG҄ 1^GQ{)/]ea[NIE2Uo{tЕǴ!qf0MSDTB6@}2hxt3 uiIT#^S}IDN(ɖ5Ea9C9t=2FUZ_5QD4AЦd(>ݨ~zxFrzwuG1*+ %Ö0ĊjPbVь/Ѻ "_35rÿ7MSOӔqMKD%Z>'m JE4NjehQ' +Fs&>S3Fy4̙y/_1,\'J4,$&W|k׆\B~v 6O,& BTɁc+Nэ꼉9/Q3e,͒=g=r +!O3߲Rh]x%{yFw||ucS(G? CPLZf?&ToD$ B19vdvA*tʈN8 xB.:1Pp +Lǹ!P=_rH#rÃ接,u|/7r^kY*ՇB)v%0rDw YE:EMQڠ1u?sHрjСcV/۾p!*FHhJiQ_ KHćMJD4Tudq?{}JDH{_sa=ψOΊeOHW҆6IàdEȴ-;6 ̃Y((&WjQpB]?8E|רq6 N# {Ki)v|?~l7l/l l;7Q&=ϟ* e[ Yz&o4{X+V=83QM~f#*wQoش!\'8.邲 ++g\cvTv"qTEFkP>f lȨjZa@֋ ;Sմf}M~,]qE-TIZ$Q/sB́Zu/k8@@K 'h/u/ecjdTY%/2E%MTK880d"r>U" =sxE_`F"c<x' +H{$^S dj/i13kVP\eDk>J~~`v=*3㑭[c6U GZdC5kciBW:dwfݡjkA9V܀ߤS̃R/ybxfӭ[ ƈtNFlW-x2?ְfv$`(v\߯bXzwJh)l (Y,x1 lj$E +*zӏC񀼥g<,Ef6Xf ^$?DXx>wؐEfb +ؒ2,D7LܼV +*(|no{yG +d4tpŔ{͟jTׇ#Y%QOX[nU +&VMPdcՖ3n'~EߕbE*K^2md u{V>2 gQw i[sM_Z[6&Ƅf7 _BrXfl5ah, u}?'@]#V5hr>JZ}}0Ǐq`ч Fyƍ7̚-HitMXhp>0.>8 ɸTGlE!U=T2`EVm %&2 5#Q^% TQn}x{6U0!aA1`Y? &%Pj(ft,6ӒiK8>j ӥyT9Z6~=M=csŚ>~KS Kfeι84ɾYy6y ʅ1)87RCmA@^XWZ1ˆu5]ce + !r5 IYc +xxdqj˃h˰u]v g|x ݜ%$"KnM<‡\cnyRt}W7k}#h/-eU wYf5D% + n(+t()wܳ"ckW}0#ȁ诂hrśC wU=A=,9xZ26lݑ۱K-]sPTwm +TDjz4CL.W#HnAοߨRAhWjjf[L|,e95>"!z̨3!ZEK]Q)$q$f:So)aawr<Ӕ? ,"1ȷkDC(5xU.|nqT7)٘a +H=U'&b5,&x?~ / jD@d^`NCn9zzuIN iిNq Bq^iő XpҘFvߡ1*eph9 vBsLߒ)!;)p}.3׭|Bg1'A\M^Uz`͘ES. ,M3"c*2 .lr@#>i  6) $Oѭ&unrK;2 +ϲa $7o\kbZO\49 l v٨+BfnFв@ˁ!J0g;MIVCu1t<@e @rXlJX?7v$t)V%9SGnHI ºNqZϤWM0dkT@ ?X(u)L롶r@iK4bYcQNlTcD./_T4jh%v⢶b(u2k'&)G ++=!ʗ}rz]:iEYg*] < qɢN89=Ğ7> +bBzF*N([OpĢϫj[2+BN,g^u7in/5O{$ pA, +J'Å< 1/׿L|z]m 7lVyT+X*j:hi2qr^LI8"\fG2ݢJ䲗XJ99/"mƶZHYjRNpL Ռ(K{Тt8Vp_scmmN;TՊrRQbyt0+9E 35?Rj`٢B?4i֯D#&F"G-9N $8Qq.Hx1-Q*BYF 1aD_ư(|8G|>pClx\qCJh4 O<%cR?OJSCqG%Y31CY%!rI|gBe;=Ry[ +c@F-/:O[E!Y#K]dwn <IX"8Hif5/6 UpQq)胒"Z44!jsK7[|! +):7}eQ䝎%ҳ)>A]2͍ D_Y.+EQW",6ӗ8a)tT&͜;m5swHNbHיuغBk(j^AhͲ=ef?%Z V7&IU'Sũȧ,DQȍUY1 rc>Ӗr|J_k>)X5⏔$T +U6iuwST6R'DP#q[))|| @SdjE&XA`f^L,TFXF>U%!}p"FEϷ,JIfP1$ه~ݗ֑&X?Hi$u+U\ǹ%8hܱ"~p\),CM~F%g+ۼ6a`dx8ďhR]{U= ҋQy wG/Dmln?]7H06*r-+Z{nՋOa39(3L?/"209(Kya@IĢVmpILD:WVssl Mv P`OEdaVEJJgE)u*ڌ F#:4Y(MwtjVl+)tJ3yǭY_F91s|Ȅ2IG(BfTZëFR ?CCukݝ2hA@}o\Ȩ3.PX*ߘUv4A^}_vخR /.Tjz]ʵ`p +`D9]e@i+N?wܗ厙ɫXX4Nv9f{F<ŘsPv +d:>M !Wɇ[#o ͏w9p;K\}m&|iqʀ~m +S&5uXk7 ;6PӉq%*"!(Ak!բp&b/ȅ/?hO遌 mRBO]$HKigWǬ#ǠӟqRJ;IkN2URA \Xn% k R:LoZ4JCzC`;ncXmRE.:\WjUBIc"QV.`e[dģZKB}\h/q eAϡZC@(,&Aٽg7| Vikw/~@15lPM[0ߴ +#) ɘx0ۀsSt>d-Y/u 4/f<0X7~ȵ[hD'` SmĖ9{7oYyՆZخ̘-12TF'1VZQ2*@|$ˀ|8o.i7Xk&\Lq" +:}nU-YEzĝ[0H(,{as[pIOf!2fAW&dh?ցKD[o<*`p_|pR{~Bq#P=eZ҄By/KEM[-:ϻ8U_mIUbo/u;) ; Z…G_BZ4"mn065Âpz"V-L|`2_ֶkeUU;tV Ӆvl`9!Xl,Qǩ5r\#ĮŒ 1`'mz(cKʉlkoLGJԪw~8QGX>{jT>u\ʹ"E^)hD·HI/ 2qZ[֦.w1wԦ7Z_Tde +  +S@B]$fu\u$a97q!@#Jv,s6;01q֔B2Y$;NR;0y148$Ut-sҵo\͓-;g tEӄ\9 އ@Aۅjwb]|$ޕ*T(jٶ$PsO'`Үt|OI5FS&pRi1ch`d$A郓zڀ:,ӗ^jj$e5:X1HJ@I`ͭ0~N +Vqt{1g_AÍ1 ]UӅq:jI$ΜVQ#R,cI\>0nqhHQtʹ,A}77p,{lKЏ>>yUGͼoy~9. +Rc .1&-1 +oo PdS$5P(@UTAY#ԪHb_>.6툏H>*URLA >QÐϐ8 x"(PLdO%^$p]yBARTY@EL-E$WZEm Ļc &^upU 礗<өf 9BQ,38dNq L*<>_C +ʁJ3o>s3a_{3~XZ_o ު͸1 NQ7? +Z dͥE-) {Uz䫋|/! cNŁ1*$cr<(n[E*ڠϕ-nqIeS +zEzZ8Nѡs :w ͢[<"[¯zh9oaB%m~ħUnS!gk>xLhO AtD`UlYb<ރWxOɮ*JM^Z:0ItիT_Mv2-z]#[xQ8]lPUm=frܥ^N9eNk$.wٖ}uMK yg#xVi70;%1 .Hy$s [#⤦韄 HmĤ dJO(&Z4S@ 82wd,w¡'Ъy,ˉkTRd_Vm 3%'eSjgt3@WH`Vjo[8e/accZwT4M3iw&x6[zc񡮊vc;)i+1mPWe!iB7J) NS)5noǎ>Aiki߃LQM֮whQظ 0o7J&h\ЁR,JQب1 h*\ofBuګh]( 3z 1=L`%hR򆜕c("]`UV*ӬT5;SjSI[k눝Vݸ)]SiEQ&PA]\zY|Sӹ[nKZ!X|/[M:QklMl"l;łq؜4nK-/G:CKVa~ {?8 fvҖ|Qʷխ^q2qm`r2R7j;mSn@-ɱ j:UDzɁ-YCN'}#іғ(2v=[_ +2RU?c4Vo +QBkA;eJ'"Q\@"G&_6;`|Ԥk=Ed_PZ1eoU%̨>f~;}Pcke HbKsV_X XUދT%ZUүO"sD~Ef<"K7,Ԛtyo0C +h^hagn"1 +6צ_otCYIJ1ȹl˔?pA=(YgxmTdsӃl`b~0:Rl'ƁDOgHJ%"r2c-I$D^o ~B"M7 @ɥ?~̷W?*<5&}b^KͲR""uj"Fj?yKk fpdX)WTm>QWY=ZgPȬ.HمkhpII E%Y>ُ`E1 K }p aլ#'tꢣ3*7o+ ;\*li S +{.Y a4wap|XラG3\Z5O9f# ԛSjyA﫶l kb""jgwޏ9F)T9FG۫,JG>stream +'dTk"rk'9Ϙz/W^RԠ ajrۛ(`-}G0WT2r(}H,EzIhTvxBK1;[g[=sB6.DX{_ X$ z-PRZa#J Vp7k%.OrJW8SD;m֋]rt_=t[J`ܥ|, ,պg0S _CdŘvfY62[ w+L|P)/|z*-^~LECd+FY~mƜ9XzԪwiءגZ>+I1t&ڈJib8 }c NQ_W\D%O쐀QeSƞS9ⱹ@yJJSp&Pct 0Vb*JH P\DuX5M_Hed1h:*E{DOm_l +ՙ$ܠ˽\.<^an+6Kv4p l,U|j]< vD1wNs&xqPV!ƹ?qș4Hl +GJNJA +J9i:zFȥx :=- +CQt]J4@o.p=vl/ +m`5/3{* JBwFU POǼbPUJE R?2=s07hG(P{3V +H[h(q| s"{>Śo=@d(< Hm<`"<**F |u *cSj-)v\43LǺtr Mޙ>c+ өo;}d~GumnKW#iުBMfLNZn҃`ٽFw}N4Bsk )`" ig"@̾ >9uw'YO3v?1}SPmenD 4s$in;phC@LTV(:%~{Y _F,3eWM%u#4 |iutGۄ4SҨYlu,UcBlL0@<7T2k}X~l.8-: :Ld>ZT-w6RC l& RrOp~C[R\ZMaXtlcEqhdR)[0.,[QӺ6yt%FEhA~2qic^6 ʒ<㪹4ĭ,?lǑ{.@Iܐts-~Oe!+h29mtmohs~0FvRswy6"FSLDBs^^$ };*fK%kipukctx|)@<|zy6m#{3w걝&D@}E1C8ǝUk[%侔-73:+ 8܍Jhm;9Lu K nlMyG:X?{G*&%u XSwB[/2KO de[dPqoQ ˜Eճ\EP]i۝uΔ"ݛ5,[MhuxHh#2'tĊ'(,>G,KQɶCuȖku>{&h[β-j4ᲢƕTT+J}bP (9EhKJ< P4=O\5"$+`hGE<)E#:<ADH]6K{8ՋqŌd:޴5Z gRY(,< |@2ۺ々+B_Ifl[3*"sh`JΉwmfᯂxJ;7O([!sHބekdN |LInp4=IY4 -V%?JD,xI?j1ՊDiX@}ƊU(xT:$cHIɑ+[;wMޡzZj2y#Cγ,rf: 5+G(:mhArNxpƔ>%E#I;~F`(h=tĿF<:CCкz 6V칇ryM=eϣ<h3uO9:-vIRDdJoe%Zca}O"}L 4"9 I!  _F$J+,g;b@8j,~R %OǠI`@(ߞb2 (Q zcXķ#z8v?.DɘmL=f|GByQ?)zXUqèzDЋ +z~d"xȣ#((8Uξl)O^.Z4oo(r + WJq8S -\3pVJ^P+leJv''8` !pd歙TˈgʭմʎdP pJf;sk`AǮ5GB'E1`-y*T;ϟ;(wxH(z,У;ËೢGH(VR8nG%F-_9©\Ny- +"`@p쎴?qǖ˰;SgO-~޸Ϟ ڹ Yr3)+%J*? pP46ƣ7<]ލ3goʋwt# n]s' G+HgP&+WgKW҃Z%M:bztwBMpl4 ^Nr95 ^2{U{KnS nwuB iڵO +R OX!vtn{'1!V4 qsCYNCt-ߊ,OA VU464~yNiY2 pΟɎ4BCd,0!DE4nIW&oy% (c1y㝙C[P'ih[ OiʄK%2,ҚG(|; +,-2m®N[E{%m+ܙ 趟U<>|q7S XJ6K7 iZyv +f,2?s`7},nTV8>8ɼ݌ww#Źz ௟fT3жu;iP&U:-' oX}oi晥FȜ!tڀ9V*-uo~sW̛(>IՓ%4_V~x閙Xw2^I.K+9az1ne 9ZI$@ H OESMQ =@HF8(b( c!B 2j:.}Mխ.?cYJb=Y(lbUjׄJoY34UiPxMW?KbYH +@"-1douPq֮vNb3 7s >belOzRSZ::\2 _T~clz:!e1 C\=H roҊԄb{Yʾ1l\B5jxնe?eU”_0O2ES8'JR&e7ɡ)o~'$qT6\Z?Ҡy 'Nvς eZjFd6kSE@]US"$Wb X//ːO'U)Ied%LSeL|@̢~kvrG8`]k7JDƘq=2phJYRB,aGJB"')?[v,Tp$sӇF(N5Ć jh +v0.MVn-~V #Mwkޅ E{/YHhшi fv0;d ln1Hםpj2N pe:F&T8P2QS)%joQ-4aZ\5TQ7L96p5>ެlzeTxC2f@g1R;R:e6҂ O9ٞBfC٥ P&!ǛH_~НGtɢ|#gL(2ps" ߇ t:2Io8{|0 G@N岡 +t#>01q"75hS`*.sxC1Ipz -!ol4W[#HPY/a:O휽*||i. 1':3 /ѓ +H/ IÈ@4hJP&@Z]׬[W4Ċ~g|qFȒo1߶ͭTȘb :x^gMN٬0{A׀M0O<!Ɏ ~-:7gW\=\ A1$hjyu0~DqyO "PpE^H&3h6H-vl|r[-ABC>`g(YnAj>br1CQU~ B v@>bau +sKB"S!{-{7 +IE>\?Qwtas%P2[7tJ앱`~<[~ +.W%!7;VCi |^M}ZgV0Wf +MaJϬq/}ؗz Y1n! +&;e @ szP}YLG}u[UmpF|ġb҆+inah| A%YWX^(x(&LxIQ39*sp8MϤKuS1eS<8*9s`U̾B2UᩘSŞabA<%sUB%Ll +RJAU.̴א97>!] QlP] w6N5@ׂlȐXwLx8ȳS|#jU[|H !M]5aI tA#r$}E;ۖ4ҹJF=^2 +o_pUV$JqG&Ĺ@DD,v.4PrpEC<=~~/Uɴxܗ +H\% ~a2=yuDՎ^Bq6kxC]ҾJE`;3~b5*?Zc.Jͪ8 ,>qCBI"c y1Ui)\VgQV cIhIty_xe+HԅL>" tC +7*QJC,"alJFcAX:# +* 9B$YLmu'1¥'RL(13M9u3hB#3pz wkKF9[7@,D-ajt ޗz)>;L63O EUJGH:F>OXYD?QA+)yl-8oR.Mri΋.lvW G. k&gؔMƇ|V4V9hϵ /C qկw{D, {9;WUPBba$ zy,FsI^D)_ySmgNΉIku%5UDyjg[2o]r4Xjå2=\x {C>oiI;$70>i'it,`)d By9ݭ[ĻpKc<Eagmyr_4.},ww K,Jh;C +]٤sTĂGeF +ucØOjX}_;;BZ|(Ǿ5wY7LN2DP]xFc\f(MųmI@^)Hpؑ1%^&w~r70՟Z + 3<1^._EOM*U +Gٻ8̒JʄQqNF_lw9{V}S~"FqSP4H8Y4fx 1uh-,jukfJT dҦWֿrΤSWg3_E_Ky,  +wʣ;:l`}_iu%#:K8ic9tpϟI91w,I`~}P P_~H_x,NkQOuq.lIz|&WyW1-9 sfqqЙzCS#!qwqGT"/i5$%dMgK jODŽˊ&a}e"r+XeU]gS|%*!1@TJS8EbP Px$doB\qp={g`9 A0TY'_塮n ad߹FJE|–C>jfp8ш' +5.Dq*! "a䖩~B ަWđ\A;u_+eqO4CG\,ڔ+hq̠s+`xxn"'5s+ؗ Y?A(T`]D^~m1 P\O&f>@Yf6a:FXas7r\G8%i:|T[_lw~Dю\9LҀSD (P6sHm rlU̗ߦKMI"'YvuiX`N{{#ƢFqM#se;1mf/;!`4ۤ@/  v!Ծ}_VXVIA"fRk5*+aگ. [Յ^^6P9w\MC}!zr1[glem!=7Vo(dDe |GjܘN.{OE)auzm^yQoc5Z7}-ˣm4Yv+>l55rSʓzy7H!%hњ[KE9AR7j梇-ɆUnΘ&@i!J8H9ocT]d|[ ׵ | +>7A;ri%fKhR d=LOoɌ3teo&);ҕ{T 'oDa*ObtB&60( #`hN䧒CA psӁl0`J({VIB2n56J +U2OaZ6PCy`A;xmrB&AuƭB-Ԫ&66t 6hCk]j&= Z UT_@p\j\$v>\:S^ŁBZi~3XR(~(avOёBv=t b6ٯ⚑쀏YT\:O'y(iBRg$?G­:H +rIє͚8wFE>#sYsj'~hJ&²B*OR<jF&Di>~Z*KZJU%$@D} INqGQC0#XDcK!LUȀ ̒1)`zHᐜPC2x) +HXa2"9dB !ыrٔs~X- Kr8.R0#bYMï[@0)aUL4͒͝M* {Bq5T6XUJ$,̀_P$^[U6>*,mA߰\Eg~:*FݷLdGnkx"w ι / W39nY%<+e&,CAGjAeQDBBQqN\犃WaM:x3¬ޗMQ)LjUS >m:xvWl(ȣdmE.O-R'FI /\N  }:[@Y &YOqe^Hْ[Th^.U$#pxЂq>%j!1ɍ5ZRC P&NcA{cGTY:J+#e)4Eja%3J7,W߭r,ENr0#8$q&=T +`\~c͠p@ډY[.X"wMF*rs d{,Wrn W<,qO}:`-E޷ ;t7XjMPeSٸN &-4^vr!Yv Ax}jfQ@ +Qtrg^(]Y)DwN}kTӤiB5ܣ-:eE)C` 1b& 1ItAs5S +kr6,\9䭹SoɨfeD^@ہܵEsȜC00gnkQ%j/'"jtjJH>mRCҕƘ\T|XmrXI *_Yz#zlͨN2j|HwϼYh^Uïf}Ր}Z4$58- PCQs4vE]EV{6wx!!KI!L^%yTH*u- ??+Lc*eL:%#g.8M +> +$YZb4K 5N54ۛ9D͜O19ѧ FJYjM~4ҽFf6<ѝ0BUS77X<c@P*{N]M֓jZweI f_p  `co`@  MV'kcD4:M AdG+WI&rr7kgO"lM_ P+!BL"a"Ԙ O*ٰV0q..c;R$OifRδVe 4#I$.C%:baUvXK\ +!TJKj̡ : +&ܑfҡCڢɥXVt>QkZDQĜϭ^u x; +"aS+V#E_v\TGt_o٥9y`Ub'}6Bi@;.rociu1wsSACD>hT徙F9vhS(/Gycn "aq'JZhkr:7#f_PdS;,k6.*Db!e𸗐ʈԍ0- P \a)#@XpP`H3$ЩKCbȒ#4#QF5YD&| {r( /c |4  +NPT&]V~n`W1qCeY4hř-HcAk\X ;7<, IqKyKReH/Eu r\c*֡Xw-k>޽YyhY9L|N՘`w;v=;.ny:;C6ǖYM%]X`h.:Q]>-`n]0"NϩPiyN*gϡxeikLyI /UO|cR!3 š< [Xs#'_Q(9JmAQL4%YZ +j,Y5A[/VIՊū-tg5ͼ$95'Kzߍ H'#wG}6pQ廾k u]2֡4ᗁi`  -"U-Z%}3i>n3KWڕ(3گt&_Di6?>萁>a%0ڲ?Wesji?0KfLðX!kX|`/pkpȖVyA[@`G0s r#}H0o%|J݃;JEu4cR\$H$K=>8ɻj4 CXuל]`8>7]]tQdEV/=eVS{܏>YJ4g]9=δ` ^Z0iu^iT_/We^ihϩ\q̃3BG8J";{m»ˆY/!bpx  Y^4q=eVSJj>n9>rX#B%]GaVv 5c=dsFoXiG{ï2h*- $eU~BJr:*:dDs@dUGȊ3qtC:޿"t)?#)Eߒ-̤UCLT 'Dx92eoܚS栆q>~ Z V)}otU0{=$դaE SqE8ұHwጪտUPa7ۤ9`U!SvCtIϐ9}Lan_PVXcƥaq+}\ytIMHV>XI'K)P숌&q5nPI%OprԶb@I50eN?:ΌiV_LTI9!Lo6nWdnh>_dyʈ~ - I!ы{l_YjmA'MFMm>-4"FMlfnu7LIAU0cH +Pk!ާo+9;-8.8!roʆQj@M-;lA@B"G"r D .nVf,50- а8eF8i3'"j'5lK +dNQS *!(@%j 5$luBM-7iŬ~9O-^21\- o+2 +a4w Vf)[([dyo b)Yve;ձ{ +׉gtn\^:UVKcCd]BBanYan +(Cj9E?Xy/2YF* <&BjXe1F*;1{^ o<n- dh.o:/ػ$;r%- (/,R0X51` #CښwD)[(9UZX (,Hnњ_77Ug90DJDx(. m*Lv$ ̱J]Z1Ŵ,,P7SAbr}6|ec2c5V6HJD2mfWGplhP v.-m8^/@itvT^, `VYMEZY0qAPCo%K{йp4-Y}A:PM8QVL0p}cIԲ[I 7Rܖ˙!fHf:H9yx;:BՖ 4?iݢhkJ!t?"l$( FA~`g1 I{}L$G ZIlP/d+ .b' +Y_aVG !+#J-CF'BF +u"/\!#H\`o|9q-f3餲!\C<4z%F0P8 䝚`=f, 30U(*zPN"҈W<@¶䗁&_(g rB޷TҥR# U3`3s+| !D3<% BEj#`9NQ(|y7aQI[W8OOICɕZ |#ECa)i@8C@8 QL]ǂF#IZ?X?٥H siRzrPcLǟ ÅW5 +)&(L@x6V$JH,ގ6!|+dd7 W- ykcSN{Zr)gҁG(Va!~@JˌAp:Mw=dLtӠD e}z|GNH/xQXl"+*!̓sΠ̓=vs@Ѱ +;Fq0>!0OE_$n,C8-$n! ۂ^Dl]N!7-+:!e21l00* +Pt¸DmjT&(do4ʰ̪o=EJ}:ti! m9N;T^2fl^NV.e'{ ӵ^uDM=ٿ,2Zպ^BYr6lC)G<p QAX;1go-övzeuVP5PC 룄"29Ⱦ,i+Q0)яT ">PYBN!'͠kD5T*Gy)_nF zϣ0{A{jHHEmfa?BUf9B~eܶL"! +BՓ.XL|7Sl[ГKlj6Ιb6Ob$OfXhTf^ Y3 y{?-%421+! ͫ;RpMCϔu^PK9w 9}B)ltPB%8[=)9%޽E"cUdUPzީRlhXAcю0S;ѲwnYMUOIimd^A\eezNѿYḄz?,٧锌ʚisD[;&R Zό%{ +!҃7d"[h$u7n L}wXj8?{͍U'~ Z2vnZ0FiPEbB4-2d+TAE}ŕtVG 9?$d{! Ui;rzVcE\$1"IF-T߫$ͰI%[3dpZ|($|ȇ$R׏>84Gh΅ǠwH D󋥅M!aBb;AKEю^ NT9]4#VVRf?"PX += %UՄQ"@vV^MOui%^d ?8tb%IpYN0H'~F|UB2Β' _Y'3c$+ =kcbƯ(:ˤD/0qJj5ZӹUP=S;oQ$qyˀd:`NkBqU;1f BwWl‡Ki me ++:"/TRB)Dn̳Em/+[(hY-V-=L U2F UOE b% ϦHh^rm >Z(J5 _AV33ˢdywyȉ/ 4n+jZP$)w{?/ + 1ANBĦaN~ ͽGO*x< Lo šw[=5e9p2L{QƘ4(4 Vxjclǵ|?3n'J -xl?u!W'5ro0ҍ7_¤V2Tŭk ݭߗ8cJŁ`BBT9 +:Jx^ 5(QTkHhaj._o5t燿Eyy jSt{+DY&mw~U*TCs"42hCtk2jo7c*;F6g E׬U߆=sMW0mޭ'Xq;R~\>%qqblotFǻs ZxQ4}80}2VsA I05ڇ?{!,m@Xfҽf@S@^5>a>\: +ler\EfYҼ3SXeM{EZү:WI0U,>n!WV=ӑ|j̴oUzRΰXrFѐ 6TqV%{tG2(g6"jO9c 7;roφ*^gc{'h4 bCƢvPQ+JXkĺIus0ksԣ}dkj]XD4βR eWTZ&1[Te;Xz05m޴Yɿn` NzL^&knD0")ñuwdmȃe7 7] ͙vv*pר ;FB]䘃uT=E3{hmCdwڮa퍕*1kV,(g>5ۢ1|q +Si/^G[6HC ioV'kp{i[J-NʰRgP`݌L֚穚*WS%bt)4%חױD#_zyGq=JtQ2(Yw*FJ ,\mr5qԯrV.ع12TnDMA5yER(h\z4 2+˶tsG[/!rKc̕yC400L03 NEXs;f#T}j +E=fDd+V_ g3>d0?N-6.w RE5ĭϮ1nF2 ѓ1t &UK|fz}-~bE1lCl;Vbs[%ۺ@0)K~2Pm[9!ZkcZjյ`F;)L#iwIŬML1˨r3'tvEi8dzQz[؅k쳴at$ZztF?Ja$/׌[bfq<<=(5X5La*O%tMݾ +0_iHf]n76# ͷG *b>ڰ]ݿ33SpXb,, ԣk`qcV?}%ϥt8ɤKDlIJ8IRD^IytO8"ӦZ k$o;j콯C~#i+Xa3M!pWri"^ F`Ǭ5t/wSAaiCR|rpJCLF:'QTI.ɢa#*Oٓ}ob-sC,')do P&Pa9",mvCrlnwcJB#NyyS"KG_tϧ8y u+C/P+3Y_D9E2u%)`^'#ҵDzK[/Є "ǒR^ ۧ>37mC)Lղa7޺HlHɇrmD!КENP,#OC9LkS3PTsyD #πm ²h؁]&1I /ΖBDj $YDi${Sl in"Z]EC!:"Hau8v ³ACt+]`B9x2vL;P=Oy0>c":Ku0/ Ce½lG' *C?a0Ve}[eBsXl;]m+R^ohVb[T۩ªYѾ[Kϭ3|Qb LםU +/"uG x+Mp2O\M$JMb1ZQzH|؁<,}tWP"X]b֭F*w>sQR4G.ؖddB,(cWSb[47SxOQŊjV.E T9yHw^EJŜI + +8}迯*M^w% U!l$L:|m]Ga#$ + W 0DI/ ^~_l7- +! y6bd9ϊ*.<}CYHjeWlx5A+B*٩Lh4'Sc+Pe9>8!fP%KrIӲvOB'ͮ@PCChKip4>D&ٷݳV-#ԮՒUlnwn$+˦=kʬ nVYT*E& Ϳ&= +_ҳiw$ ?e2wEfзהw"4[BwX|TnnutDŽģ 3bX|T%iN&z3L47 (Q} B9{E9mB;ZY1)* ߁; }sŅ &gŻ<%^`!֟EOh @ LSwLMݡ©3ڂ&A͉(so`w3 -nwg)Jye`VfݽV[f/J!$ ȱٕ!L$$s$QPUk3oeMn͎d{q `N,\E*ʆӍcwmA̧wNS@&T M4(:PU m不_ӉQb@Df.IfI3ms2dW =(lDq#B 0N%dDdK HL[ϻǩ6wSlوhveEo8RLo/bktŖctWv`>ATUĉycHlWjn_e\ +#zXz/]Wo,$չ1I>?df쒝 z5vVE +$֕@fw$JaA @Pq -]xg 1\$' Mu%>`42@X}^ fY=r.da)2H[ݞZ>Gm,u-zOp!CfmnH& +ObEx]IY#96mo[PF!*@vݷ:OpxjJo*|p1LPA*8ˣ>koMnބ\D4?)y:-Y39M,OlBߺK9rO|`(4A 9(eZr/MXzjƺa|oZR'x[=. xᑑOu +0C!g'M%6zWe[K62Z$Rw H06OSg,hfL$aaQ+ ri}np(eSnh-fz._6Nnmka7q;X^{;'ˮ ژ +]VAs^jip{|ԉ[>F!em̪d`ֹc۶L#1sQBZx[ǕU:6BJ˴\eȁ W8p/X3yo)O?@ ӊ!=Hql kC0'NU~3r??@#ߦB?UExIDJ+eoZA-~ $!$FZZ +Ě* Us)3%فqVl$=s"t(0CPFZ] Z82dX螘=wDn72QmMbQ IS9g3MQijCxb +,6]$xZ0\=8F2`"R(60 qSoXc6M;C =I+,ԕi|I 3(܍ýz!/J #k[>UtsAX SHxG{=5r"|]ђia+jW=W,Toϲ *áv"u T:Wu/,&g)wLo:4a6)7GYPzQ]XrizO{h p.nN$i]lHh3S(>4z( *m +'^@pkqH HEtո9xs) +ˁ5qwU<+_ +GelQCyAl{)#^ZTA pКMɐJW-khps$!G7K㠺@aT0m#V}!wŽJ{;xTsF? <0#:GcXק\ \<0%$fj1SNG Nh3sܭAC 7>[ QtBe/cn,סZ}s@sd$p;omZy۠=Q4N6|q;Pc.WppWބ N2]I 8x^(~e8ɖ7A2|1:Sub6IԊ72|B(M1<:sc2s?<$]z e7-j >a){lj8r&oaW$BIl ` V~bN2yN /S1\]ױvEt?V82dr/YAı (|~JbQ#9czdߛB;huv}Cn$Ԓo!CtU!ОKt ᒴC(&(m'{iWڭ^bX}-Ց1:&mfgQA1(&[=m ijOog֐N Tnbc#|$",Ayf C9ڞLox#ƑۛϽσ>4]rGM@5PyUj*z4~'ܺ =uo g9(>6?aQoF*=FJ^S$l(Z_Ս2i_1nȑ[.*ZiJ,Յdv΅D&W]*;\ >I=O=bT +>2rH$GxGy͎\x]K3Q" *.7hcK>".-@b:8>s7k7r!c9ъ2QZ˙Czd@P.`.i.) h]AتL3DR8 +Wpwo%$yd:۫ӏH3ty#% +$ڊ?by_k. Ry)\#oeẅYV4he9S@Hy:vPm/!20(}\W + CW@Cnn24q}B/ZYƣlq^#dx*9c @@.j32.$j\+~Nhk_ITrJ6qsoD-h8=f!{8ofm&n9">!Ur#xeӣ 7+CϭgV3B+ێ|Ю6`Dt 3J|Y` ژ%Mu"<S*34\>J |@0%qv45RyN\hlh](1~d6;6[ jԃ➚>JP +:l` w <Z;;覮2lV fhpz'KI% +DE(Qyw~Br 1.[K%UQ{=8np0jrQ`#S?&?)2|Tb`AY7+s,!Y(Y'wC`˧Y0B],czWNV0WV0[YpwQltJ͓Gz;7WbEEhz5{%e/A1Цj^Į߱hH )m+BXxPx7mvD4i0gR'!NANwo 99|d8U y,Q.Ț(YwEV|AI)Ծ{ܴɢ^I Bv!=,i^!ZdBͶ`!5GP ^BL\yo&Du Yu 66+0Rm`g6d~n[E`$` Y96&-L0ۅ.Z  t{ Fvco`34N(2!4%> `Kbm F4}3:" ~ExHX9p'{~0v^iT,Gf<@ы<|)nIø!T] bls/S8& +0qz:T̖TH?N]Gi:Oh~[kCb̥}%|q>Xp|6}&8ZESݠɭz.N\GaOG &DHNakXŃ`'Qu$`O\iUQw8♅60ySKGNs WyOsb!Ե}yY:ONg9‰ 5"4ٶ`"Ge$X;tZDyCڶ⨬jP@zk TpXA7\AOTrQӉ8Oț~ +9s^pD,1l\f)KoDUΚJ`"(eFϾQf()d]r<"e|ԿQ~/oE@TW<% ~/;vN&zLEs ~/`xUy].`4{"_ E-F%T- +߫%yD@i-áASimf e," +elBLKFw5= 2f/aѠJO;pHB4$!E>6c?u0Yll:46K6VAQe|UDePh)ş ,uSdXYR5K]z woDy4]k,3KGAsG9KeW>I[GYr Q*_ZeXMM|YUп]H]FVJx'p +V,U3T^Bwt,)55NɎ;-Q )Fdr( RINd[rw`Ovm" Y@K~lZI5#>"W*ӑ 1r<ۤ ]$˚Z.d|@ԌqF܅*yLVtv uCSB-@}N3Tx4V1Lɤ:-Nԛ!yHژ:‘RqJwDZk[b#'A?*~dT{`,`InJ_kS p^&*2Z"'i +ĶjN!Ub E;KՀ *r`;kY mS`zM'Fv9"Wd]Cc7!]WK߼iWԽy ? !$!} < c3A!pG-)ӻJ܍J^^Wg)8(.>T!5>%&6CmWqIA_)%"©NjJnNPYF8GrG-#JX"_]zY7;MSf;DJ ,&D}J, *農nN5(lA\eqJ8M ҥv)ј 6}&TwNy"5G5Iz4,MlDKTX҉%SWUvXEEU_t譙KE/ZF뵚c}ƹ? /fݐ/[[|ҋȔ~^vEz0JHFFahnH(cs ]a+Z/:fm +{/zLFPY/e4w}j;\/2J2zne3^]qV{Z7Qq^Vn*/U]h%W-]کmcEF3 2XVq>C8<*M+c섁13">9~7a;wژN_јEJ GCģ.C'1iC oÚ Xz* oo =;NrfSc២׬D]zp }Fz@ dmqRB<$X}Ua{EfvOw&XQamFQMJiC hj8=id +"e1B;a!-N "r | +Wq|{]Ds 2f]>+ʳbiCzw{`c/h"§N,#w>4eL i&6J&!Kɸ4n"U89-fMsMɥ&?BϛGUM'wS\}>htV=(J;~ +J*F쇴qCotCr4VwhF⍦ ŬcN kCBn4Xjv +,FP3Y:{'3)Gsy^(/="܏ajD9O{ jtNZp1%`Qy0>$T,x:U Vӗgg5]Ewt 蝛>tA>2m0kgaz p/%ɘeIяKt5MpmY( 2X6ڟ}a%hѓCmˣ@QSr6KcÖ+&p,gKPW|CVhHۃl3f+ EXr٭H%#͕)jt%21^Oq҆BR{Dz&ܬGV +#$6Dhxyic~8,kww5Ee8fYФ|KF5it& +T`pc-|oo^W BVdۙMud㸞xSԄ3(oj6v`Y$W/nq Fy&/AK4h7 +M/kH>5ǭ\{Bz)\0p-[|/N^m~lNJה]tNkc(&t@,!a#;4-?wnC, u@D bHȡ$ 1v&{`V=&gҋA"} ~  p>Z]wÁ'Fl\̅Y8"H.\m!@10q8 Ο}$ JW)چbWCmͦmLjD+ɵg+⭛ [R'r|\dЅ7wM8ڈ?Yih7i:5a ɰqÏ)r]ĩkm)ZЛMy2xۖϺ" c;erQh$*Ҡ!PBP-rOQ֚Osj*` fIGo 0q y[B<9ZQW%{@{$4FGv 0ƩF` qKh {6%tRˑ0#-ڢNH<|,Mf^.z1,8a@2j;ȾFH#2CH?FigT5'sA)K4M*i*(a39_UPşBnzѹ/O!*,i,//r/̷0:*0hcRjQ<#&H)D]5]\{r@O H~'R#e'MvK(6K8Gud`8{Xe* 2 OX|?}DΏyO2?'*Q޳B鞄^4P mW1_CPxp6ͪo$)x +YtͪDɹ\Lnhmiv6`$ ս4>?{edQx5E*Ђfcdϭeg%c ==Ů$aw)K%Zzl@b*5ك)rW>p)W/Ʌ +' +|m9tӷ 66z~J! +"Q۵n+fAUrh s'bI@o@2TEb 3ˡ#JpACc +khQ_w"WjlTVπgк[E`*X 2ʒ̋m0?+G|Gw WV%J ` C[e֐hd3]0Y}`H!YE"!cTb~u3u}S|b+;M4:>Q yG,itqe#2B;JTɻ 1iy]&hѽsdU4<O\b^A ? \H[x\|D﮹¶WۗggD΁eL," 9Yα?m>pH?G^x$+@'=<7_8%C E?)} 1c![2>ͧ>1tuXcu7tG8ӊETPA t႞!0f[a]%E@7 +8y^taW=vo +qPh2Ƹ+ "}}Ӷ 0ٕ}=0L;. +@Z'ea*)ov# fs,/(b(ʧіcZUQ+2iؠ: VT^M2T`ǜec)1N] [ŢZgJΖ3T9oB,oГRSm\IjlY9S3@u풷 2hՄUy)/;3r࢖fNwӽozi~؟-ԅ+f67fU]3efP.dirXɼҙZor?ao joC.n5zW߀\ߑC2)Pza5q7im޼I mAFS(qWӏxZT&E/aAҢu[-\zL9{iAY'SHNtRښZ9X@pfXcrڎ%Q(D7&"iseVÄ8~8Y!,HcI)V?:ɭ11SFTO,#a1tE^ /.0>|ٕkm@Jqm<9BLekEG75;Ȧ&/->j>4]%]fV>cIHlsjy8 +Xڤ1e- +S/ܥpWч(FSߛ({E!.w-;c =*W*˧|9GbgL\^`rP ևSTLb XDҴdՄ#ȭٝwnN7LY+[7F_T-Iw$]R.p"/Ey qfYqHA)(z[@Yr>EI]9ĐC G/e"j*%Dq]E]oA *Fw娱'j%-h/K 5MW)Y|w~ϡ4\k4hMꐔ]=1#);(<aFR!E1g]kBr?wùQ E,VEbL~V(b[@[@xFe%j'TyPX.%Z?|6sF%O3eAus h=B/,)^y=}=1Ս $Үƙ8{@EK5*=$6 ̸H$P%B jXUV)&fc#a4K:뤦i#KyZwH<&OjU+j[ [@TGK]S}(1vVZse"%U`h(e[@?Tc ͖t[@kKYQoLJt^[@:8iCo!84g"BH^VoU[-2:n[-xjZkVL?l ` - `,Ls&ac^$t]$|g}_t"u&+IL<%Yoy,HOiX0Ʃ~8`1┽B=)~B. CfhZRm#%7t/BARH+M[@0fz%K/d%8DH$_PJ IÙXZ:V_6q "e&T/pB_foHWJʂG|̰`uV9ȞAyz j~]mLÞx- *^ڑ̫`Yt9PgU?&lЅ7e+҂ dJ G$c@F yLؑC<WZ:t˱cY0]Ii961],BwdxK׌eOC)gNab`"v0 +eD6< +q(^J7gH(o'1yF<^%/;󶹿K1lO.ĵC +H7e-vKkl̈0'V/ӖxMEi(.ׅ&۵4DRr)*;WIfR[4<tf$[uh9[ɖ̈% +-mm/۹1ҚT_2lapERu(~(Vk;bY,\wF JEEϥZNfs(†W ;NTwH|YP?o1{Y)Ux7HkIŘ/[V+U^*^mA3V|')xAּI$DMx菖Q[-APV.nAU/w0{%D:)7IKC}ݷ(9-YkGա:IxMH# I +c ;WlTcdZl냁?hmʱw'0pYGV:_r"(@jH?z(2pW\V=θd)Rql(ҁJ$Mh}$w_y*k ȍXn9}sU-'+=rn \sɗMm/_Ce16R gl/*$ .+懴'uQ˥l*\4e%lADS)kw%:6%n-r1:j찎!-jv[ p;D|FK/A7Sb:EG<ʪRX>~La)} 1@c\!mc5 )Q'ywbp9ח{9w^$a*0#Hާ߬J,:VS7 @u$*] 2U8N'EG s_sHJ| )QU˄7Y>h+SW>Oh|"\U4f*YJCG.M3ƖbHiެ3>2[ 3;[׿؊5V?[ijWl<> cٶ^ҬY%ظOX0.^ ߋR-QLs[NwFťj ̂Y(g~̈́MuN>Ά7Cl5vJ@b@8Eo-[RAB+eZ'Uzb0Q4 bOީrm<hK3( [:Ã(Uo Iَ^%jWN;e<–u\ j|2[P +Fd)+!l#A_Ao +%l9@Rͪ9duG5_*L#T~9u +f9!3.(+OY}D|bx5{.QGsUsJat^D+Fz1 ڮ[cgy7ji >)L +6u +K[?Mj.XXM6 +7{5xȨ2U,5`%<{}/3Z6%ټ݊ouWPjH`I0)iS!*`pZ/+(cv~!:(J0Y*,fkl2Kt]+P/88ݳ> Miь2W.-o4Ԣ|1-njz_ȳFI@7]%x}:@OT\B_cK]t l#w3Sz[Zxu8.A(F;`( ?FsZ ?â7Zx~N,Dr(/JiImڃ&?Ӡ>’7Kw`"Q(kv3ؓqȷf-"Ʌ V@㴅ckKxضvk%v4\L :;u3n ٹA`ftH>X7㜥KuǻM5QtuYD(S*s\@KipY.!u(>9kC,5=tCOg6< :qYLdlS7 /٩^E{d ;Gf0{}Sld+c^ |_1`,^E܆x_54sׇ/?RVj߫@{ro}Dj1O}ᵌ~9 + |YŖ ;5; irˆ1I y +OI *]W%e9TҍaK3K DAd;_ 43Pt i܈xgxAٗzbnƒ>R/V@HV /ul+ixn +K8Gab H}IWfV[u)JɮDDH:p)&E7Df9|!tڌήn@T$6r蔄G3:π?,%epHV %$M;:]w3 +!TN~8BN0V!"ϢÁ:KzߝM18/@a[S! d~D +B{SY'6U1I榷 86l#{H D!-g0M.vw,&kn֏٬p~*KJ}n{.SQ<4jSL |@Q AafAABL>bΌ6Jz }u,eOMԍ`ږᡩ%9vPSqySk[!8դఞӮcjwdxL}Wo|sl^ :`PFaY +Oyk6<*\}@"d #P5@/Ti +9_.A)0rrVf5Xѷ\:iEՊNp!oz5gynV!vgzV\J;+"iObg]ݠ8KV s= |͔*k vL3>wʞd."<8~ ~#U^r р!G\*rީPv R= +PvMnԘD}YŚ B0J`@iBY\.lmiGT,[l1v1QE/=,!{q*Z'V ǎϒ2J*KTI` <SL4G5j9kοO &s&uF ¯{KHm4*b+?m@s_tp/kYjL\WƀpgeYXs]ꛋT1$mެ{Y:X~eӾ OR+&9fʹP2[*әڗ'eWקk&#KnFV?eRyZ%'](lش+XNف, >W*ʯ^7TjnU꛼xo[aS-Rۇ,6bzfB^t "5G$rͷm wѧ:uh%1jں,N|$m7~o$B rH T[u)CbHhٖ?9S"RtĤ>ò/f^r{{у(H#QhZ:Eg*JO3}4 !pދfطO@E"?  U' H*4o”O}p( ݗ"x zd; +2:t5mnyLyPY]rd^+}ةjMZ2ޜ\FCCG$13[R)1 1=cf$mF0.kՂ '*7'W KM/<#eWsƋu ;ldRQմtcʷaGG'r?ziq5Sh}֟$li+w@TDy4'mV+QW85 +x?iwD$Ҙ}nQk8՟pvO"@tpLqkP!l;l섬'dp^+DOe4[Z&!I +,.z#herSD'*zUv::`FI[3G3`H[iA>FSop29Oq?94a gFOku5FǪqROçhV(a|ƶ1ahU0~KIۃ@2]wU`Y!` } +?͡ ާ#U.:d ;&]tQ]&6P댈Q$QS3` ](i_$,/r>E8?DfWNg*AzZ ;U>84]o7tЀ5;?w:&jhp)T aA԰o [y13T}1vʩ +KBt@]R~ce/MSzd&ے+wÙ8ri臄Eތ oE]ϋHxHS/.^@P=ٗ ޶E:;)v/ג;p̀ y=iHKvG]k7ġ6$z??tA>H0y0f7!HCLDG~B$k.:H(ij`Qx +kiViVa>YOSEtN'pr[ѵIRJ RDP@0YA +d1e1DD eFdD RzӛaҐ4U9fORD>#Qփ#|\J <ϱrZnַ7`0 8jE=ޣe1#eӗ[̵37~J=ZOFL:wrNF D|F5 55'^KfƙP!q:^޷| 6F;y-0R`~g~:uduNz}wϮ 3nj-'2u+n G[%j Viqբ(WO\U!3.@ǙgC6bgD;W|fa.;aOV?.iGfEec/W]Vr/@?e~1*-[/fY/a(;' ryFTVMΡ}id/,G.FǺ]~ =G֤` sW&%x9†(~Ro-͔+ƦׯF Ef*bgU?8u i{A*2}v}HJۀSW})kW%.uUGa9f #$-A-9v!q*`8% \Cc%2 Bt`?3fwC 5qO )E Uȧ +aBTcPOzDş .q؄&E T(Md$p O!52 <܀i y.Vɹsb.EJiSmOgh`v#a'L3 p%~bvDϳ0Lf?N~OD7OiLMCp0 D!?EtPHQt`=H 20<"П @CL~'8]o&7$iM`~āL D` \a0xD' (ѳ CG@̀M?IC?5OC?=q<яe8O= qu'H!AހH|$@#>qHx3A~:2=0Qĉ #HC4~ya8 4(zBo 2O E%1Z Z*S~]vXvâ揫#Si'E4W=bXw}c eyrT~/A*.($A;2"&`BV*d% +,RJڌ'dž cL*kxƖ7MB_0|$vio.ϴƘ怮N id,!^1:d iQ৺%"o8H# )W5X;gS?E\yB.{E8dYDbLf$:im6FN*H3}”Z ΋Rg)e=hd%P+G868N)~S.Cޛtqw0 S_ň`0ZysP3b)WĺۻLIU W+=(^2m[|)":NuFGue^ +X1O5R"±N$XFJf^ +M?^Š~#uX ^N2Fk +. =b'?*GkE19@v'ExzEUX? +e?Ap^׉,H/-q2`e$Mab5%$fS7̠L4mj$a[3bٿtxa&0y_ѻ7,JѭauPh5W&(:ď>t+{7.IPt4!3\l2)vᤳNh1vvkEacMvjmby{VьdGM /8{*PmZa#/ИcM)l#U'VC|$d4db?Jĩ%K"G2t6Њ6D!$pI^S !bwv8stZ2$'YPCFM\&?ޱ G\r3!"cJ8DRk , !k7֖G6$JAuRz[7c'*Enu߉PXC-nGIۃ(6= >@YIO\LXlΰ <.5${)K&?Y ̚"E3|"jj +ip]ZRl;=c̄q [ha(U +'QCwZK%PCSUD$r§V;u06TElkhu絒@ q %%SZ-9 BR*a*?*pCGH@u6ĽJr0_(a4Mti\NQ؅ Q >[S`s 4\H-hI-ZK_t5FʑMoi2GKN56B?6ZһZikEWݛi$"zh d_s0Iy8_js+(6ʬ(.}-Ⱥ I(Q!ڪqX4>=ʄ+ybg f {`$A$&$z=:"j>,7k{Q%ŖTaR9O}u'h iE̽AVB8+t 'iP~L!Nf |f4 +qb<~ 9uj fi~hY`R ^FqLGQ!ȸ>kd=Sm6 bXu)'0LCP_K\b^cXIH*(x,7EWKA}Tq7^Õƾ8 Wqk9$!M\TԾt4q̘uŠcxĂlpsj HaC\1R'MEu $tH p[ pp`O{nA9iCPE (E;\1kEbol5hrJ_ʀ)Svũ&(ykH?@5'ͽ"C&206c+)G)C;1$reT5jwlq 5{EtyP#g4 !?p0@o":@ y" ߕ@D7MDG@i8p@$aH DGC iZG`D?4Q D';zHh'M&D"@49 _# C.p"? + _6!L~&Fm@qc`'FH[6 .اvvzelKz@ +Yd 9C3avEp^+^a0x5 L ' +H$`"HԐ@x `D=a&Q< <y'M0ON]N/^Q{jA8I 3G g@" ND7āLtp#Dj#As# IC@ 3AHSI@0 àpJAAa "Xer3]TޅLn k&?)~G!J|, ֔#xMp(b`f>;lRČd@M`Bb 1% F%bɄAM1R~?'N.:I)$OxZpR*o/f F ?KBDυ#m<'ˆ#M428r'e9FttK5s-A_G'5`?{Lqw7<!Y^ -o%Ã{|+= uۿYh}&TlOxNڬ4qMPv-@$5tˈaX qXi)d:T7A(IMxdzYFf<}B>i!6,>~l&|diY?{?rssf9d IK樅\B!.7d'LdC( ~q_-Yjd@B/-kr#F@'ؓu!YhѠԤl)itPq9@;bWVyV9W⚠_LYSU. fK XVlLrg`je)g5o" dvvM*̺8-b'}(Ti` ٞ |X{⮪h9:CkOlf+Bn"9 MItOOv€)xsvl4xa4Q#u'XZ 'ݱ%XRl# (0ڰ>RkNu˄Rx >u`9F{kH8eMhE8O,cZP A&IKFGc$' 8 ` 4LƘscb>F &P=tQc\YW|4ǎuFՑvp%M+D:Q)giV { fq}4/`ecʞ/F9<]I7]vbGWG Gv|?8Hkk6[I^L1ֱ(>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX$6Ra!<<'!!!*'!!rrmPX()~> +endstream endobj 13 0 obj <>>>/Subtype/Form>>stream +0 0 0 1 K +2 w 10 M 0 j 0 J []0 d +/GS0 gs +q 1 0 0 1 420.9449 466.6378 cm +0 0 m +0 -338 l +S +Q + +endstream endobj 14 0 obj <>>>/Subtype/Form>>stream +0 0 0 1 K +2 w 10 M 0 j 0 J []0 d +/GS0 gs +q 1 0 0 1 589.9449 297.6378 cm +0 0 m +-338 0 l +S +Q + +endstream endobj 15 0 obj <>>>/Subtype/Form>>stream +0 0 0 1 K +2 w 10 M 0 j 0 J []0 d +/GS0 gs +q 1 0 0 1 442.9449 297.6378 cm +0 0 m +0 -12.15 -9.85 -22 -22 -22 c +-34.15 -22 -44 -12.15 -44 0 c +-44 12.15 -34.15 22 -22 22 c +-9.85 22 0 12.15 0 0 c +h +S +Q + +endstream endobj 16 0 obj <>>>/Subtype/Form>>stream +0 0 0 1 K +2 w 10 M 0 j 0 J []0 d +/GS0 gs +q 1 0 0 1 478.5239 297.6378 cm +0 0 m +0 -31.8 -25.779 -57.579 -57.579 -57.579 c +-89.379 -57.579 -115.158 -31.8 -115.158 0 c +-115.158 31.8 -89.379 57.579 -57.579 57.579 c +-25.779 57.579 0 31.8 0 0 c +h +S +Q + +endstream endobj 17 0 obj <>>>/Subtype/Form>>stream +0 0 0 1 K +2 w 10 M 0 j 0 J []0 d +/GS0 gs +q 1 0 0 1 508.6116 297.6378 cm +0 0 m +0 -48.417 -39.25 -87.667 -87.667 -87.667 c +-136.084 -87.667 -175.333 -48.417 -175.333 0 c +-175.333 48.417 -136.084 87.667 -87.667 87.667 c +-39.25 87.667 0 48.417 0 0 c +h +S +Q + +endstream endobj 33 0 obj <> endobj 11 0 obj <> endobj 32 0 obj <> endobj 31 0 obj <> endobj 30 0 obj <> endobj 29 0 obj <> endobj 6 0 obj <> endobj 34 0 obj [/View/Design] endobj 35 0 obj <>>> endobj 5 0 obj <> endobj 36 0 obj <> endobj 37 0 obj <>stream +HwtUUƿoBh[à#H' !(5 MBdEPz KK tL^BS&E~qZsι}޻߽{A" vi1]9ȊZul"ccWH@X_9(\_;D S(&X҅Bη娘ʕe2zPd]W +Pfw>WI?g $eE,d,OY")2F>LiB2YV*JOe̐AZY/kdlͲUHl]>ٲK2KvN+{drH'rT'判19,PNIɐrO\_ +$Y@eQXJlF3lt.!'pKƷ{GxqxBL/`&ɬy dCdcne#;4CgؕK<.I$_4Nc&\@?A~+|pCb2.?Up<'WW!^k1;1 +I!k)!pA=7T3,16sdXլVkiZíI 낕c=rΦDg']ζPn%a@>lFoX3+1c(&ca8bPtZip$Ni 9ڂ9_iݵd4Z LIʦd Va`=6vcVl*N)N7qeS{t$ }ZxX/KҟY6YYuPȿ [5J%,B`%}C/Y_fQlVe1e])le9cqlglcy&ñC _ANbUg r3GX !8Wp14h:k 5qlaY\Ra\d ڢ2n,l6U66CR&:5=%mwll[l; }e<®xT~ lс,l c'#9# GY9'9%S͏$[r/W*: c{xAnʏrKn+8UN8*f3ly9k^/ϸ@r%O< +\$#1L6SKeא˕mLaS5/b\a$7p#7q)-TS۸;Ӕ.S֔nS{LS㦒l +Ә6dO3E7+|`.K9Ň|ğ؜5 4}?5nO̜7&&M$Lb4#g~bǦ?Q*~}>ş`7G0 VKmaōf]ƍwy!?@7-_?h7Ɵ&3 2꧅N ree] +O_l &%YS g"-|*`]NNg'ˑpvge GD:gX"bYYv?--n=_TTRRTt K #!*fw5L"-VW!;X/#J2s`M,Dz0"O0C"6{⢬5fZQofg𤋮ޓ=7$|œ&ddtV;23sL*bNm暼|b++%'\n/ + <ƹ=99eVjڋ W͑4lE98a>7F`ǀGcIT]|Ʒ@l<'yFFOKV [tۊlTHKAp=ENlÍ?|#6C9l+C\H} TA{e9YqΆ-:QT^+3j +:bʏCOJؿ+dqmbd9l/@kCh=7{Q!Mt f:*LŹǐf=; &pCzj KMnͻ!vC0@qCHPCf ;FaQ<{h^We18 ޚ.Ax!^< ^|usLvvFLѻ} @sUɁSu\6D@%ZCNa>9QmZQBMuO-CSDp18?}`D6';3nTh?$"/=?n0=#4؅y.@~ K.Q%,`CoFTAQuw1^S)ldHDQ*ԫQżdw +ɺU  _@F'~Ԙ6l%S(wY]T;,R vP-Qo.= Ix﹨{_,RPs +3#^lv;K!HՁ$"TpS dl6KA5r(u̟@«ԣKxnǨv|< iP2|Ir1|w?8{ n\[$ހED ?b?jW$W1JqS wك_;yFkET%`V2NYܫfE* rVBn#>qRr7q-<\f jCc[ +ZaC;nNK._yko݆ǡ] zr胆.K ꇀAԋ#ޥZhխһ?aFaFaFaFĈ%EQ ^,t~&m걿D Yv&ܭ.sBrX31M> 6t^G6vQP⣝J?2mGmOAk|ٔc|<(xХS9:j&8:l@'RZq;n]9iނ3$!kTͽ3 4t(PKԀ%X &z=)KVaTG't#n4b -}ڽV޿?hx[Y%9wSKܴj2BI텠!|`݄ UYT&+g=1{au0ypMzݚ -ui7y^|AqQ:X^+MEkWM1cxөhfR:8̤,C[|轄"@"Z /.CsZ7>?GIN~M;*]CBP/?+)qܧiF_L|mWɂQr2MAl2o a8`l 8ʦZIã*(s`Dtv  -PesI6$ H*(MJ{o^%7~=73[o܋{k?*(ce>a[-[gl66nqlE2P*Prv.E(B@-FanX*65m(n;q]v(v=v^܇QePP<**`[>\A`!a1`)a9> +k)c6b63|/[ ۱; {% 0(8N$N4,<.".2*+|o-?'_+~: )c~,Beam,Yy]%X}YeYYYC|QVc|O*I>|Y>_d-8fe<>0 mMbوl&LbS6cs`K&Sؚmؖ/lgJtىbdveYf-dd/fe? ¡|&-Q|9c.=N$NN4N ,rrsrs r#J~Okr=7p#7q3?[۸;{_OO // +;~#7?'//o%S~*BUam*ULu][%TR}_UFeUNUAUICzXQUcz\OI=ꪡzZY=^T-8VUꩾ(A Hj&JRS5SsPK%RZmV/ӫjW*GtIRTuUDYVzzhi^ 75\omH;1w5Ni&h&ihifhf}Ps4W4_ PXKT˴\iVc}UZ5ZuTAI>ڢڦڡڥڣڧRtPtXGtTt\'tRtZgtVt^tQtYWtUUi ` V ?_(8YNߗ d;,'Nu8ݜ  L ; E4 #!nvH?,pvLpZL[Ľ 79_Hl y?]}=fRcoΠ)9y9W?̹2 ^Io כ\om5 ۽֘hύAλ wʟzçS|pvmû.7aSMJd$u.ꯏ;Λ<)T7 +"Gu1rQjqc/Uuw(zLO,̰>~vydfYGj&uYHCM6:;>*ee)vˢ]ca\W-8čb-8qr-u^ ? ?: sE#~?G#~G#|_|_|_|_~ ?Ïc1~ ?Ïc1| _—%| _—%| _—%| _—%~?K%x ek~M +K>Po+{D~׸rF'&pŸ2 L8xyh% ¥??+E +endstream endobj 12 0 obj <> endobj 7 0 obj [6 0 R] endobj 38 0 obj <> endobj xref +0 39 +0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000046252 00000 n +0000000000 00000 f +0000370360 00000 n +0000370174 00000 n +0000379391 00000 n +0000046303 00000 n +0000046805 00000 n +0000047829 00000 n +0000369809 00000 n +0000379268 00000 n +0000367940 00000 n +0000368217 00000 n +0000368494 00000 n +0000368876 00000 n +0000369307 00000 n +0000047895 00000 n +0000048398 00000 n +0000367365 00000 n +0000048472 00000 n +0000048727 00000 n +0000050332 00000 n +0000115921 00000 n +0000181510 00000 n +0000247099 00000 n +0000312688 00000 n +0000367413 00000 n +0000370111 00000 n +0000370048 00000 n +0000369985 00000 n +0000369922 00000 n +0000369746 00000 n +0000370244 00000 n +0000370275 00000 n +0000370653 00000 n +0000370921 00000 n +0000379414 00000 n +trailer +<<2EB9F1BFA4D5F64CBF989C963E1C9ADF>]>> +startxref +379601 +%%EOF diff --git a/src/TraceCad.App/App.cs b/src/TraceCad.App/App.cs new file mode 100644 index 0000000..a2dac00 --- /dev/null +++ b/src/TraceCad.App/App.cs @@ -0,0 +1,25 @@ +using Avalonia; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Styling; +using Avalonia.Themes.Fluent; + +namespace TraceCad.App; + +public sealed class App : Application +{ + public override void Initialize() + { + RequestedThemeVariant = ThemeVariant.Dark; + Styles.Add(new FluentTheme()); + } + + public override void OnFrameworkInitializationCompleted() + { + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + desktop.MainWindow = new MainWindow(); + } + + base.OnFrameworkInitializationCompleted(); + } +} diff --git a/src/TraceCad.App/MainWindow.cs b/src/TraceCad.App/MainWindow.cs new file mode 100644 index 0000000..588cb7a --- /dev/null +++ b/src/TraceCad.App/MainWindow.cs @@ -0,0 +1,739 @@ +using Avalonia.Controls; +using Avalonia.Controls.Primitives; +using Avalonia.Input; +using Avalonia.Interactivity; +using Avalonia.Layout; +using Avalonia.Media; +using Avalonia.Platform.Storage; +using TraceCad.App.Tools; +using TraceCad.Core.Model; +using TraceCad.Core.Serialization; +using TraceCad.Dxf; +using TraceCad.Vision.Calibration; + +namespace TraceCad.App; + +public sealed class MainWindow : Window +{ + private static readonly SolidColorBrush AppBackground = Brush("#0b1020"); + private static readonly SolidColorBrush ChromeBackground = Brush("#111827"); + private static readonly SolidColorBrush GlassBackground = Brush("#0f172a"); + private static readonly SolidColorBrush PanelBackground = Brush("#111827"); + private static readonly SolidColorBrush RailBackground = Brush("#0f172a"); + private static readonly SolidColorBrush RailButtonBackground = Brush("#1f2937"); + private static readonly SolidColorBrush RailButtonSelectedBackground = Brush("#1d4ed8"); + private static readonly SolidColorBrush StrokeBrush = Brush("#334155"); + private static readonly SolidColorBrush GlassStroke = Brush("#475569"); + private static readonly SolidColorBrush TextPrimary = Brush("#f8fafc"); + private static readonly SolidColorBrush TextSecondary = Brush("#cbd5e1"); + private static readonly SolidColorBrush TextMuted = Brush("#94a3b8"); + private static readonly SolidColorBrush TextOnDark = Brush("#ffffff"); + private static readonly SolidColorBrush Accent = Brush("#3b82f6"); + private static readonly SolidColorBrush AccentSoft = Brush("#172554"); + + private readonly SketchCanvas _canvas = new(); + private readonly TextBlock _status = Text("", TextSecondary, 12); + private readonly TextBlock _toolState = Text("", TextSecondary, 12); + private readonly TextBlock _referenceName = Text("", TextSecondary, 12); + private readonly Slider _referenceOpacity = new() { Minimum = 0.0, Maximum = 1.0, Value = 0.55 }; + private readonly CheckBox _referenceLocked = new() { Content = "Locked", Foreground = TextPrimary }; + private readonly NumericUpDown _referenceX = NumberInput(1.0); + private readonly NumericUpDown _referenceY = NumberInput(1.0); + private readonly NumericUpDown _referenceScale = NumberInput(0.01, minimum: 0.0001); + private readonly NumericUpDown _referenceRotation = NumberInput(1.0, minimum: -3600.0, maximum: 3600.0); + private readonly IDxfExporter _dxfExporter = new NetDxfExporter(); + private readonly SheetCalibrator _sheetCalibrator = new(); + private readonly Dictionary _toolButtons = new(); + private bool _syncingReferencePanel; + + public MainWindow() + { + Title = "easyTrace"; + Width = 1360; + Height = 860; + MinWidth = 980; + MinHeight = 640; + Background = AppBackground; + TransparencyLevelHint = new[] { WindowTransparencyLevel.None }; + TransparencyBackgroundFallback = AppBackground; + + _referenceOpacity.PropertyChanged += (_, e) => + { + if (_syncingReferencePanel || e.Property != RangeBase.ValueProperty) + { + return; + } + + _canvas.SetReferenceOpacity(_referenceOpacity.Value); + UpdateStatus(); + }; + _referenceLocked.PropertyChanged += (_, e) => + { + if (_syncingReferencePanel || e.Property != ToggleButton.IsCheckedProperty) + { + return; + } + + SetReferenceLockedFromPanel(); + }; + + Content = BuildLayout(); + _canvas.StatusChanged += (_, _) => UpdateStatus(); + _canvas.Changed += (_, _) => + { + UpdateStatus(); + SyncReferencePanel(); + ApplyToolButtonState(); + }; + UpdateStatus(); + SyncReferencePanel(); + ApplyToolButtonState(); + } + + private Control BuildLayout() + { + var root = new Grid + { + RowDefinitions = new RowDefinitions("76,*,34"), + Background = AppSurfaceBrush() + }; + + var topBar = AddTopBar(); + Grid.SetRow(topBar, 0); + root.Children.Add(topBar); + + var workArea = new Grid + { + ColumnDefinitions = new ColumnDefinitions("104,*,332"), + Background = Brushes.Transparent + }; + Grid.SetRow(workArea, 1); + root.Children.Add(workArea); + + var rail = BuildToolRail(); + Grid.SetColumn(rail, 0); + workArea.Children.Add(rail); + + var canvasHost = GlassPanel( + _canvas, + new Avalonia.Thickness(0, 10, 0, 14), + new Avalonia.CornerRadius(12), + GlassBackground); + canvasHost.ClipToBounds = true; + canvasHost.BorderThickness = new Avalonia.Thickness(1.4); + Grid.SetColumn(canvasHost, 1); + workArea.Children.Add(canvasHost); + + var inspector = BuildInspector(); + Grid.SetColumn(inspector, 2); + workArea.Children.Add(inspector); + + var statusBar = BuildStatusBar(); + Grid.SetRow(statusBar, 2); + root.Children.Add(statusBar); + + return root; + } + + private Border GlassPanel(Control child, Avalonia.Thickness margin, Avalonia.CornerRadius cornerRadius, IBrush? background = null) + { + return new Border + { + Margin = margin, + Background = background ?? GlassCardBrush(), + BorderBrush = GlassStroke, + BorderThickness = new Avalonia.Thickness(1), + CornerRadius = cornerRadius, + Child = child + }; + } + + private Control AddTopBar() + { + var dock = new DockPanel + { + Margin = new Avalonia.Thickness(18, 11), + LastChildFill = true + }; + + var brand = new StackPanel + { + Width = 205, + Spacing = 0, + VerticalAlignment = VerticalAlignment.Center + }; + brand.Children.Add(Text("easyTrace", TextPrimary, 21, FontWeight.SemiBold)); + brand.Children.Add(Text("Calibrated 2D tracing CAD", TextMuted, 11)); + DockPanel.SetDock(brand, Dock.Left); + dock.Children.Add(brand); + + var actions = new StackPanel + { + Orientation = Orientation.Horizontal, + Spacing = 8, + VerticalAlignment = VerticalAlignment.Center + }; + DockPanel.SetDock(actions, Dock.Right); + actions.Children.Add(CommandButton(UiIcon.New, "New", (_, _) => NewDocument())); + actions.Children.Add(CommandButton(UiIcon.Open, "Open", async (_, _) => await OpenProject())); + actions.Children.Add(CommandButton(UiIcon.Save, "Save", async (_, _) => await SaveProject())); + actions.Children.Add(CommandButton(UiIcon.Image, "Reference", async (_, _) => await ImportReference())); + actions.Children.Add(CommandButton(UiIcon.Calibrate, "Calibrate", async (_, _) => await CalibrateSheet())); + actions.Children.Add(PrimaryButton(UiIcon.Export, "Export DXF", async (_, _) => await ExportDxf())); + dock.Children.Add(actions); + + var center = new StackPanel + { + Orientation = Orientation.Horizontal, + Spacing = 8, + HorizontalAlignment = HorizontalAlignment.Center, + VerticalAlignment = VerticalAlignment.Center + }; + center.Children.Add(CommandButton(UiIcon.Undo, "Undo", (_, _) => _canvas.Undo())); + center.Children.Add(CommandButton(UiIcon.Redo, "Redo", (_, _) => _canvas.Redo())); + center.Children.Add(CommandButton(UiIcon.Delete, "Delete", (_, _) => _canvas.DeleteSelected())); + dock.Children.Add(center); + + return GlassPanel( + dock, + new Avalonia.Thickness(14, 12, 14, 6), + new Avalonia.CornerRadius(14), + ChromeBackground); + } + + private Control BuildToolRail() + { + var stack = new StackPanel + { + Margin = new Avalonia.Thickness(12, 14), + Spacing = 10 + }; + + stack.Children.Add(Text("TOOLS", Brush("#94a3b8"), 10, FontWeight.SemiBold)); + stack.Children.Add(ToolButton(UiIcon.Select, "Select", () => _canvas.SelectTool())); + stack.Children.Add(ToolButton(UiIcon.Line, "Line", () => _canvas.SetTool(new LineTool()))); + stack.Children.Add(ToolButton(UiIcon.Circle, "Circle 3P", () => _canvas.SetTool(new Circle3PointTool()))); + stack.Children.Add(ToolButton(UiIcon.Arc, "Arc 3P", () => _canvas.SetTool(new Arc3PointTool()))); + + return GlassPanel( + stack, + new Avalonia.Thickness(14, 10, 12, 14), + new Avalonia.CornerRadius(14), + RailBackground); + } + + private Control BuildInspector() + { + var panel = new StackPanel + { + Spacing = 14, + Margin = new Avalonia.Thickness(18) + }; + + panel.Children.Add(SectionHeader("Reference Image")); + panel.Children.Add(_referenceName); + panel.Children.Add(LabeledControl("Opacity", _referenceOpacity)); + panel.Children.Add(_referenceLocked); + panel.Children.Add(LabeledControl("X origin (mm)", _referenceX)); + panel.Children.Add(LabeledControl("Y origin (mm)", _referenceY)); + panel.Children.Add(LabeledControl("Scale (mm / image px)", _referenceScale)); + panel.Children.Add(LabeledControl("Rotation (deg)", _referenceRotation)); + panel.Children.Add(PrimaryButton(UiIcon.Apply, "Apply Transform", (_, _) => ApplyReferenceTransformFromPanel())); + panel.Children.Add(CommandButton(UiIcon.Clear, "Clear Reference", (_, _) => _canvas.ClearReference())); + panel.Children.Add(new Border + { + Height = 1, + Background = StrokeBrush, + Margin = new Avalonia.Thickness(0, 4) + }); + panel.Children.Add(SectionHeader("Document")); + panel.Children.Add(DocumentMetric("Units", "mm")); + + return GlassPanel( + panel, + new Avalonia.Thickness(0, 10, 14, 14), + new Avalonia.CornerRadius(14), + PanelBackground); + } + + private Control BuildStatusBar() + { + var dock = new DockPanel + { + Margin = new Avalonia.Thickness(14, 0), + LastChildFill = true + }; + DockPanel.SetDock(_toolState, Dock.Right); + dock.Children.Add(_toolState); + dock.Children.Add(_status); + return GlassPanel( + dock, + new Avalonia.Thickness(14, 0, 14, 8), + new Avalonia.CornerRadius(10), + ChromeBackground); + } + + private Button ToolButton(string icon, string text, Action action) + { + var button = new Button + { + Content = ToolButtonContent(icon, text, selected: false), + Background = RailButtonBackground, + Foreground = TextPrimary, + BorderBrush = StrokeBrush, + BorderThickness = new Avalonia.Thickness(1), + Padding = new Avalonia.Thickness(5, 9), + HorizontalAlignment = HorizontalAlignment.Stretch, + HorizontalContentAlignment = HorizontalAlignment.Center, + MinHeight = 66, + CornerRadius = new Avalonia.CornerRadius(10) + }; + button.Click += (_, _) => + { + action(); + ApplyToolButtonState(); + }; + _toolButtons[text] = (button, icon); + return button; + } + + private static Button CommandButton(string icon, string text, EventHandler handler) + { + var button = new Button + { + Content = CommandButtonContent(icon, text, TextPrimary), + Background = Brush("#1f2937"), + Foreground = TextPrimary, + BorderBrush = StrokeBrush, + BorderThickness = new Avalonia.Thickness(1), + Padding = new Avalonia.Thickness(13, 8), + MinHeight = 38, + HorizontalContentAlignment = HorizontalAlignment.Center, + CornerRadius = new Avalonia.CornerRadius(9) + }; + button.Click += handler; + return button; + } + + private static Button PrimaryButton(string icon, string text, EventHandler handler) + { + var button = CommandButton(icon, text, handler); + button.Content = CommandButtonContent(icon, text, TextOnDark); + button.Background = PrimaryAccentBrush(); + button.Foreground = TextOnDark; + button.BorderBrush = Brush("#1d4ed8"); + return button; + } + + private static Control LabeledControl(string label, Control input) + { + return new StackPanel + { + Spacing = 5, + Children = + { + Text(label, TextSecondary, 11, FontWeight.SemiBold), + input + } + }; + } + + private static Control DocumentMetric(string label, string value) + { + var grid = new Grid + { + ColumnDefinitions = new ColumnDefinitions("*,Auto") + }; + var labelText = Text(label, TextSecondary, 12, FontWeight.SemiBold); + var valueText = Text(value, TextPrimary, 12, FontWeight.SemiBold); + Grid.SetColumn(valueText, 1); + grid.Children.Add(labelText); + grid.Children.Add(valueText); + + return new Border + { + Background = GlassCardBrush(), + BorderBrush = Brush("#7fbfff44"), + BorderThickness = new Avalonia.Thickness(1), + CornerRadius = new Avalonia.CornerRadius(12), + Padding = new Avalonia.Thickness(12, 9), + Child = grid + }; + } + + private static StackPanel CommandButtonContent(string icon, string text, IBrush foreground) + { + return new StackPanel + { + Orientation = Orientation.Horizontal, + Spacing = 7, + VerticalAlignment = VerticalAlignment.Center, + Children = + { + IconText(icon, foreground, 14), + Text(text, foreground, 12, FontWeight.SemiBold) + } + }; + } + + private static StackPanel ToolButtonContent(string icon, string text, bool selected) + { + var foreground = selected ? Accent : TextSecondary; + return new StackPanel + { + Spacing = 5, + HorizontalAlignment = HorizontalAlignment.Center, + Children = + { + IconText(icon, foreground, 22), + Text(text, foreground, 10, FontWeight.SemiBold) + } + }; + } + + private static TextBlock IconText(string glyph, IBrush foreground, double size) => + new() + { + Text = glyph, + FontFamily = new FontFamily("Segoe MDL2 Assets"), + Foreground = foreground, + FontSize = size, + HorizontalAlignment = HorizontalAlignment.Center, + VerticalAlignment = VerticalAlignment.Center + }; + + private static TextBlock SectionHeader(string text) => + Text(text, TextPrimary, 15, FontWeight.SemiBold); + + private static TextBlock Text(string text, IBrush foreground, double size, FontWeight weight = FontWeight.Normal) => + new() + { + Text = text, + Foreground = foreground, + FontSize = size, + FontWeight = weight, + TextWrapping = TextWrapping.Wrap + }; + + private void NewDocument() + { + _canvas.SetDocument(SketchDocument.CreateDefault()); + UpdateStatus("New project"); + } + + private async Task ImportReference() + { + var files = await StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions + { + AllowMultiple = false, + Title = "Import reference image", + FileTypeFilter = new[] { ImageFileType } + }); + + var path = files.FirstOrDefault()?.TryGetLocalPath(); + if (path is null) + { + return; + } + + _canvas.ImportReferenceImage(path); + SyncReferencePanel(); + } + + private async Task CalibrateSheet() + { + var files = await StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions + { + AllowMultiple = false, + Title = "Calibrate reference sheet photo", + FileTypeFilter = new[] { ImageFileType } + }); + + var path = files.FirstOrDefault()?.TryGetLocalPath(); + if (path is null) + { + return; + } + + UpdateStatus("Calibrating reference sheet..."); + + try + { + var outputDirectory = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), + "easyTrace", + "calibrated-references"); + var result = await Task.Run(() => _sheetCalibrator.Calibrate(path, outputDirectory)); + if (!result.Success || result.CorrectedImagePath is null) + { + UpdateStatus(result.Message); + return; + } + + _canvas.SetReferenceImage(new ReferenceImage( + result.CorrectedImagePath, + 0.55, + Locked: true, + new ReferenceTransform( + OriginX: 0.0, + OriginY: 0.0, + ScaleX: result.MmPerPixel, + ScaleY: result.MmPerPixel, + RotationDeg: 0.0))); + SyncReferencePanel(); + UpdateStatus(result.Message); + } + catch (Exception ex) + { + UpdateStatus($"Calibration failed: {ex.Message}"); + } + } + + private async Task OpenProject() + { + var files = await StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions + { + AllowMultiple = false, + Title = "Open easyTrace project", + FileTypeFilter = new[] { ProjectFileType } + }); + + var path = files.FirstOrDefault()?.TryGetLocalPath(); + if (path is null) + { + return; + } + + var json = await File.ReadAllTextAsync(path); + _canvas.SetDocument(SketchDocumentSerializer.Deserialize(json)); + UpdateStatus($"Opened {Path.GetFileName(path)}"); + } + + private async Task SaveProject() + { + var file = await StorageProvider.SaveFilePickerAsync(new FilePickerSaveOptions + { + Title = "Save easyTrace project", + SuggestedFileName = "drawing.easytrace.json", + FileTypeChoices = new[] { ProjectFileType } + }); + + var path = file?.TryGetLocalPath(); + if (path is null) + { + return; + } + + await File.WriteAllTextAsync(path, SketchDocumentSerializer.Serialize(_canvas.Document)); + UpdateStatus($"Saved {Path.GetFileName(path)}"); + } + + private async Task ExportDxf() + { + var file = await StorageProvider.SaveFilePickerAsync(new FilePickerSaveOptions + { + Title = "Export DXF", + SuggestedFileName = "drawing.dxf", + FileTypeChoices = new[] { DxfFileType } + }); + + var path = file?.TryGetLocalPath(); + if (path is null) + { + return; + } + + _dxfExporter.Export(_canvas.Document, path); + UpdateStatus($"Exported {Path.GetFileName(path)}"); + } + + private void UpdateStatus(string? prefix = null) + { + _status.Text = prefix ?? _canvas.StatusText; + var reference = _canvas.Document.Reference is null ? "No reference" : "Reference loaded"; + _toolState.Text = $"Tool: {_canvas.ActiveToolName} Entities: {_canvas.Document.Entities.Count} {reference}"; + } + + private void SyncReferencePanel() + { + _syncingReferencePanel = true; + + var reference = _canvas.Document.Reference; + var hasReference = reference is not null; + _referenceName.Text = hasReference ? Path.GetFileName(reference!.ImagePath) : "No image imported"; + _referenceOpacity.IsEnabled = hasReference; + _referenceLocked.IsEnabled = hasReference; + _referenceX.IsEnabled = hasReference && !reference!.Locked; + _referenceY.IsEnabled = hasReference && !reference!.Locked; + _referenceScale.IsEnabled = hasReference && !reference!.Locked; + _referenceRotation.IsEnabled = hasReference && !reference!.Locked; + + if (reference is not null) + { + _referenceOpacity.Value = reference.Opacity; + _referenceLocked.IsChecked = reference.Locked; + _referenceX.Value = (decimal)reference.Transform.OriginX; + _referenceY.Value = (decimal)reference.Transform.OriginY; + _referenceScale.Value = (decimal)reference.Transform.ScaleX; + _referenceRotation.Value = (decimal)reference.Transform.RotationDeg; + } + else + { + _referenceLocked.IsChecked = false; + _referenceX.Value = 0m; + _referenceY.Value = 0m; + _referenceScale.Value = 1m; + _referenceRotation.Value = 0m; + } + + _syncingReferencePanel = false; + } + + private void SetReferenceLockedFromPanel() + { + if (_syncingReferencePanel) + { + return; + } + + _canvas.SetReferenceLocked(_referenceLocked.IsChecked == true); + SyncReferencePanel(); + } + + private void ApplyReferenceTransformFromPanel() + { + if (_canvas.Document.Reference is null || _canvas.Document.Reference.Locked) + { + return; + } + + var scale = ToDouble(_referenceScale.Value, 1.0); + _canvas.SetReferenceTransform(new ReferenceTransform( + ToDouble(_referenceX.Value, 0.0), + ToDouble(_referenceY.Value, 0.0), + scale, + scale, + ToDouble(_referenceRotation.Value, 0.0))); + SyncReferencePanel(); + } + + private void ApplyToolButtonState() + { + foreach (var (name, entry) in _toolButtons) + { + var selected = string.Equals(name, _canvas.ActiveToolName, StringComparison.Ordinal); + entry.Button.Background = selected ? RailButtonSelectedBackground : RailButtonBackground; + entry.Button.BorderBrush = selected ? Brush("#93c5fd") : StrokeBrush; + entry.Button.Content = ToolButtonContent(entry.Icon, name, selected); + } + } + + private static double ToDouble(decimal? value, double fallback) => + value is null ? fallback : (double)value.Value; + + private static NumericUpDown NumberInput(double increment, double minimum = -100000.0, double maximum = 100000.0) => + new() + { + Minimum = (decimal)minimum, + Maximum = (decimal)maximum, + Increment = (decimal)increment, + FormatString = "0.####", + HorizontalAlignment = HorizontalAlignment.Stretch, + Background = Brush("#0f172a"), + Foreground = TextPrimary, + BorderBrush = StrokeBrush, + BorderThickness = new Avalonia.Thickness(1), + CornerRadius = new Avalonia.CornerRadius(7) + }; + + private static IBrush AppSurfaceBrush() => + new LinearGradientBrush + { + StartPoint = new Avalonia.RelativePoint(0.0, 0.0, Avalonia.RelativeUnit.Relative), + EndPoint = new Avalonia.RelativePoint(1.0, 1.0, Avalonia.RelativeUnit.Relative), + GradientStops = + { + new GradientStop(Color.Parse("#0b1020"), 0.0), + new GradientStop(Color.Parse("#111827"), 0.52), + new GradientStop(Color.Parse("#0f172a"), 1.0) + } + }; + + private static IBrush PrimaryAccentBrush() => + new LinearGradientBrush + { + StartPoint = new Avalonia.RelativePoint(0.0, 0.0, Avalonia.RelativeUnit.Relative), + EndPoint = new Avalonia.RelativePoint(1.0, 1.0, Avalonia.RelativeUnit.Relative), + GradientStops = + { + new GradientStop(Color.Parse("#60a5fa"), 0.0), + new GradientStop(Color.Parse("#3b82f6"), 0.5), + new GradientStop(Color.Parse("#1d4ed8"), 1.0) + } + }; + + private static IBrush GlassCardBrush() => + new LinearGradientBrush + { + StartPoint = new Avalonia.RelativePoint(0.0, 0.0, Avalonia.RelativeUnit.Relative), + EndPoint = new Avalonia.RelativePoint(1.0, 1.0, Avalonia.RelativeUnit.Relative), + GradientStops = + { + new GradientStop(Color.Parse("#1e293b"), 0.0), + new GradientStop(Color.Parse("#111827"), 0.55), + new GradientStop(Color.Parse("#0f172a"), 1.0) + } + }; + + private static SolidColorBrush Brush(string color) => new(Color.Parse(color)); + + private static class UiIcon + { + public const string New = "\uE710"; + public const string Open = "\uE838"; + public const string Save = "\uE74E"; + public const string Image = "\uE91B"; + public const string Calibrate = "\uE9F9"; + public const string Export = "\uE898"; + public const string Undo = "\uE7A7"; + public const string Redo = "\uE7A6"; + public const string Delete = "\uE74D"; + public const string Select = "\uE7C9"; + public const string Line = "\uE738"; + public const string Circle = "\uEA3A"; + public const string Arc = "\uE7C1"; + public const string Apply = "\uE73E"; + public const string Clear = "\uE711"; + } + + private static FilePickerFileType ProjectFileType { get; } = new("easyTrace project") + { + Patterns = new[] { "*.easytrace.json", "*.tracecad.json", "*.json" } + }; + + private static FilePickerFileType DxfFileType { get; } = new("DXF") + { + Patterns = new[] { "*.dxf" } + }; + + private static FilePickerFileType ImageFileType { get; } = new("Images") + { + Patterns = new[] { "*.png", "*.jpg", "*.jpeg", "*.bmp", "*.tif", "*.tiff", "*.webp" } + }; + + protected override void OnKeyDown(KeyEventArgs e) + { + base.OnKeyDown(e); + + if (!e.KeyModifiers.HasFlag(KeyModifiers.Control)) + { + return; + } + + if (e.Key == Key.S) + { + _ = SaveProject(); + e.Handled = true; + } + } +} diff --git a/src/TraceCad.App/Program.cs b/src/TraceCad.App/Program.cs new file mode 100644 index 0000000..07bf159 --- /dev/null +++ b/src/TraceCad.App/Program.cs @@ -0,0 +1,18 @@ +using Avalonia; + +namespace TraceCad.App; + +internal static class Program +{ + [STAThread] + public static void Main(string[] args) + { + BuildAvaloniaApp() + .StartWithClassicDesktopLifetime(args); + } + + public static AppBuilder BuildAvaloniaApp() => + AppBuilder.Configure() + .UsePlatformDetect() + .LogToTrace(); +} diff --git a/src/TraceCad.App/SketchCanvas.cs b/src/TraceCad.App/SketchCanvas.cs new file mode 100644 index 0000000..9983b5a --- /dev/null +++ b/src/TraceCad.App/SketchCanvas.cs @@ -0,0 +1,495 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Input; +using Avalonia.Media.Imaging; +using Avalonia.Media; +using TraceCad.App.Tools; +using TraceCad.Core.Commands; +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; + +namespace TraceCad.App; + +public sealed class SketchCanvas : Control +{ + private readonly SolidColorBrush _canvasBackground = new(Color.FromRgb(8, 13, 24)); + private readonly Pen _gridPen = new(new SolidColorBrush(Color.FromRgb(30, 41, 59)), 1.0); + private readonly Pen _axisPen = new(new SolidColorBrush(Color.FromRgb(71, 85, 105)), 1.3); + private readonly Pen _entityPen = new(new SolidColorBrush(Color.FromRgb(226, 232, 240)), 1.7); + private readonly Pen _selectedPen = new(new SolidColorBrush(Color.FromRgb(96, 165, 250)), 2.6); + private readonly ViewTransform _transform = new(); + private readonly SelectTool _selectTool = new(); + private bool _isPanning; + private Point _lastPanPoint; + private Point2? _hoverPoint; + private Entity? _selectedEntity; + private ISketchTool _activeTool; + private Bitmap? _referenceBitmap; + + public SketchCanvas() + { + Focusable = true; + ClipToBounds = true; + Document = SketchDocument.CreateDefault(); + Commands = new CommandManager(); + _activeTool = _selectTool; + StatusText = _activeTool.Prompt; + } + + public event EventHandler? Changed; + + public event EventHandler? StatusChanged; + + public SketchDocument Document { get; private set; } + + public CommandManager Commands { get; } + + public string StatusText { get; private set; } + + public string ActiveToolName => _activeTool.Name; + + public void SetDocument(SketchDocument document) + { + Document = document; + Commands.Clear(); + _selectedEntity = null; + _transform.Reset(); + LoadReferenceBitmap(); + SetStatus(_activeTool.Prompt); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void ImportReferenceImage(string imagePath) + { + ArgumentException.ThrowIfNullOrWhiteSpace(imagePath); + + _referenceBitmap?.Dispose(); + _referenceBitmap = new Bitmap(imagePath); + var bitmapSize = _referenceBitmap.Size; + var defaultScale = bitmapSize.Width > 0.0 ? Document.Width / bitmapSize.Width : 1.0; + + Document.Reference = new ReferenceImage( + imagePath, + 0.55, + Locked: true, + new ReferenceTransform( + OriginX: 0.0, + OriginY: 0.0, + ScaleX: defaultScale, + ScaleY: defaultScale, + RotationDeg: 0.0)); + + SetStatus($"Reference imported: {Path.GetFileName(imagePath)}"); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void SetReferenceImage(ReferenceImage reference) + { + ArgumentNullException.ThrowIfNull(reference); + + Document.Reference = reference; + LoadReferenceBitmap(); + SetStatus($"Reference loaded: {Path.GetFileName(reference.ImagePath)}"); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void SetReferenceOpacity(double opacity) + { + if (Document.Reference is null) + { + return; + } + + Document.Reference = Document.Reference with { Opacity = Math.Clamp(opacity, 0.0, 1.0) }; + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void SetReferenceLocked(bool locked) + { + if (Document.Reference is null) + { + return; + } + + Document.Reference = Document.Reference with { Locked = locked }; + SetStatus(locked ? "Reference locked" : "Reference unlocked"); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void SetReferenceTransform(ReferenceTransform transform) + { + if (Document.Reference is null || Document.Reference.Locked) + { + return; + } + + Document.Reference = Document.Reference with + { + Transform = transform with + { + ScaleX = Math.Max(0.0001, transform.ScaleX), + ScaleY = Math.Max(0.0001, transform.ScaleY) + } + }; + SetStatus("Reference transform updated"); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void ClearReference() + { + Document.Reference = null; + _referenceBitmap?.Dispose(); + _referenceBitmap = null; + SetStatus("Reference cleared"); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void SetTool(ISketchTool tool) + { + _activeTool.Cancel(CreateToolContext()); + _activeTool = tool; + SetStatus(tool.Prompt); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void SelectTool() => SetTool(_selectTool); + + public void DeleteSelected() + { + if (_selectedEntity is null) + { + return; + } + + Commands.Execute(Document, new DeleteEntityCommand(_selectedEntity)); + _selectedEntity = null; + SetStatus(_activeTool.Prompt); + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void Undo() + { + Commands.Undo(Document); + _selectedEntity = null; + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public void Redo() + { + Commands.Redo(Document); + _selectedEntity = null; + Changed?.Invoke(this, EventArgs.Empty); + InvalidateVisual(); + } + + public override void Render(DrawingContext context) + { + base.Render(context); + context.DrawRectangle(_canvasBackground, null, Bounds); + DrawReferenceImage(context); + DrawGrid(context); + + foreach (var entity in Document.Entities) + { + DrawEntity(context, entity, entity.Id == _selectedEntity?.Id); + } + + _activeTool.RenderOverlay(context, new ToolRenderContext(_transform, _hoverPoint, _transform.Scale)); + } + + protected override void OnPointerPressed(PointerPressedEventArgs e) + { + base.OnPointerPressed(e); + Focus(); + + var point = e.GetPosition(this); + var properties = e.GetCurrentPoint(this).Properties; + if (properties.IsMiddleButtonPressed || properties.IsRightButtonPressed) + { + BeginPan(e, point); + return; + } + + if (properties.IsLeftButtonPressed) + { + _activeTool.PointerDown(CreateToolContext(), _transform.ScreenToModel(point)); + Changed?.Invoke(this, EventArgs.Empty); + } + } + + protected override void OnPointerMoved(PointerEventArgs e) + { + base.OnPointerMoved(e); + + var point = e.GetPosition(this); + if (_isPanning) + { + _transform.Pan(point - _lastPanPoint); + _lastPanPoint = point; + InvalidateVisual(); + return; + } + + _hoverPoint = SnapPoint(_transform.ScreenToModel(point)); + _activeTool.PointerMove(CreateToolContext(), _transform.ScreenToModel(point)); + } + + protected override void OnPointerReleased(PointerReleasedEventArgs e) + { + base.OnPointerReleased(e); + + if (_isPanning) + { + _isPanning = false; + e.Pointer.Capture(null); + return; + } + + _activeTool.PointerUp(CreateToolContext(), _transform.ScreenToModel(e.GetPosition(this))); + } + + protected override void OnPointerWheelChanged(PointerWheelEventArgs e) + { + base.OnPointerWheelChanged(e); + var factor = e.Delta.Y > 0 ? 1.15 : 1.0 / 1.15; + _transform.ZoomAt(e.GetPosition(this), factor); + InvalidateVisual(); + } + + protected override void OnKeyDown(KeyEventArgs e) + { + base.OnKeyDown(e); + + if (e.Key == Key.Escape) + { + _activeTool.Cancel(CreateToolContext()); + e.Handled = true; + return; + } + + if (e.Key == Key.Delete) + { + DeleteSelected(); + e.Handled = true; + return; + } + + if (e.KeyModifiers.HasFlag(KeyModifiers.Control) && + (e.Key == Key.Y || (e.KeyModifiers.HasFlag(KeyModifiers.Shift) && e.Key == Key.Z))) + { + Redo(); + e.Handled = true; + return; + } + + if (e.KeyModifiers.HasFlag(KeyModifiers.Control) && e.Key == Key.Z) + { + Undo(); + e.Handled = true; + return; + } + + _activeTool.KeyDown(CreateToolContext(), e.Key); + } + + private void DrawGrid(DrawingContext context) + { + var bounds = Bounds; + var topLeft = _transform.ScreenToModel(new Point(0.0, 0.0)); + var bottomRight = _transform.ScreenToModel(new Point(bounds.Width, bounds.Height)); + var spacing = GridSpacingMm(); + var startX = Math.Floor(topLeft.X / spacing) * spacing; + var endX = Math.Ceiling(bottomRight.X / spacing) * spacing; + var startY = Math.Floor(topLeft.Y / spacing) * spacing; + var endY = Math.Ceiling(bottomRight.Y / spacing) * spacing; + + for (var x = startX; x <= endX; x += spacing) + { + var p1 = _transform.ModelToScreen(new Point2(x, topLeft.Y)); + var p2 = _transform.ModelToScreen(new Point2(x, bottomRight.Y)); + context.DrawLine(Math.Abs(x) < GeometryConstants.Epsilon ? _axisPen : _gridPen, p1, p2); + } + + for (var y = startY; y <= endY; y += spacing) + { + var p1 = _transform.ModelToScreen(new Point2(topLeft.X, y)); + var p2 = _transform.ModelToScreen(new Point2(bottomRight.X, y)); + context.DrawLine(Math.Abs(y) < GeometryConstants.Epsilon ? _axisPen : _gridPen, p1, p2); + } + } + + private void DrawReferenceImage(DrawingContext context) + { + if (_referenceBitmap is null || Document.Reference is null) + { + return; + } + + var reference = Document.Reference; + var transform = reference.Transform; + var origin = _transform.ModelToScreen(new Point2(transform.OriginX, transform.OriginY)); + var width = _referenceBitmap.Size.Width * transform.ScaleX * _transform.Scale; + var height = _referenceBitmap.Size.Height * transform.ScaleY * _transform.Scale; + if (width <= 0.0 || height <= 0.0) + { + return; + } + + using var opacity = context.PushOpacity(reference.Opacity); + using var translate = context.PushTransform(Matrix.CreateTranslation(origin.X, origin.Y)); + using var rotate = context.PushTransform(Matrix.CreateRotation(transform.RotationDeg * Math.PI / 180.0)); + + context.DrawImage(_referenceBitmap, new Rect(0.0, 0.0, width, height)); + } + + private double GridSpacingMm() + { + var spacing = 5.0; + while (spacing * _transform.Scale < 18.0) + { + spacing *= 2.0; + } + + return spacing; + } + + private void DrawEntity(DrawingContext context, Entity entity, bool selected) + { + var pen = selected ? _selectedPen : _entityPen; + + switch (entity) + { + case LineEntity line: + context.DrawLine(pen, _transform.ModelToScreen(line.Start), _transform.ModelToScreen(line.End)); + break; + case CircleEntity circle: + ToolDrawing.DrawCircle(context, _transform, circle.Center, circle.Radius, pen); + break; + case ArcEntity arc: + ToolDrawing.DrawArc(context, _transform, arc.Center, arc.Radius, arc.StartAngleDeg, arc.EndAngleDeg, arc.IsClockwise, pen); + break; + } + } + + private Point2 SnapPoint(Point2 point) + { + var toleranceMm = 8.0 / _transform.Scale; + Point2? best = null; + var bestDistance = double.MaxValue; + + foreach (var snapPoint in Document.Entities.SelectMany(entity => entity.SnapPoints)) + { + var distance = point.DistanceTo(snapPoint); + if (distance < bestDistance && distance <= toleranceMm) + { + best = snapPoint; + bestDistance = distance; + } + } + + return best ?? point; + } + + private Entity? HitTest(Point2 point, double tolerancePixels) + { + var toleranceMm = tolerancePixels / _transform.Scale; + return Document.Entities.LastOrDefault(entity => DistanceToEntity(point, entity) <= toleranceMm); + } + + private static double DistanceToEntity(Point2 point, Entity entity) + { + return entity switch + { + LineEntity line => DistanceToSegment(point, line.Start, line.End), + CircleEntity circle => Math.Abs(point.DistanceTo(circle.Center) - circle.Radius), + ArcEntity arc => DistanceToArc(point, arc), + _ => double.MaxValue + }; + } + + private static double DistanceToSegment(Point2 point, Point2 start, Point2 end) + { + var segment = end - start; + var lengthSquared = segment.Dot(segment); + if (lengthSquared <= GeometryConstants.Epsilon) + { + return point.DistanceTo(start); + } + + var t = Math.Clamp((point - start).Dot(segment) / lengthSquared, 0.0, 1.0); + var projected = start + (segment * t); + return point.DistanceTo(projected); + } + + private static double DistanceToArc(Point2 point, ArcEntity arc) + { + var angle = GeometryHelpers.AngleDeg(arc.Center, point); + if (!GeometryHelpers.AngleIsOnSweep(arc.StartAngleDeg, arc.EndAngleDeg, angle, arc.IsClockwise)) + { + return Math.Min(point.DistanceTo(arc.StartPoint), point.DistanceTo(arc.EndPoint)); + } + + return Math.Abs(point.DistanceTo(arc.Center) - arc.Radius); + } + + private ToolContext CreateToolContext() + { + return new ToolContext( + Document, + Commands, + SnapPoint, + HitTest, + () => _selectedEntity, + entity => + { + _selectedEntity = entity; + Changed?.Invoke(this, EventArgs.Empty); + }, + SetStatus, + InvalidateVisual); + } + + private void SetStatus(string status) + { + StatusText = status; + StatusChanged?.Invoke(this, EventArgs.Empty); + } + + private void BeginPan(PointerPressedEventArgs e, Point point) + { + _isPanning = true; + _lastPanPoint = point; + e.Pointer.Capture(this); + SetStatus("Pan: drag to move canvas"); + } + + private void LoadReferenceBitmap() + { + _referenceBitmap?.Dispose(); + _referenceBitmap = null; + + if (Document.Reference is null) + { + return; + } + + try + { + _referenceBitmap = new Bitmap(Document.Reference.ImagePath); + } + catch + { + SetStatus($"Reference image not found: {Document.Reference.ImagePath}"); + } + } +} diff --git a/src/TraceCad.App/Tools/Arc3PointTool.cs b/src/TraceCad.App/Tools/Arc3PointTool.cs new file mode 100644 index 0000000..7f36f5f --- /dev/null +++ b/src/TraceCad.App/Tools/Arc3PointTool.cs @@ -0,0 +1,107 @@ +using Avalonia.Input; +using Avalonia.Media; +using TraceCad.Core.Commands; +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; + +namespace TraceCad.App.Tools; + +public sealed class Arc3PointTool : ISketchTool +{ + private readonly List _points = new(); + private Point2? _current; + + public string Name => "Arc 3P"; + + public string Prompt => _points.Count switch + { + 0 => "Arc 3P: choose start point", + 1 => "Arc 3P: choose point on arc", + _ => "Arc 3P: choose end point" + }; + + public void PointerDown(ToolContext context, Point2 modelPoint) + { + _points.Add(context.Snap(modelPoint)); + + if (_points.Count == 3) + { + if (GeometryHelpers.TryCreateArcFromThreePoints(_points[0], _points[1], _points[2], out var arc)) + { + context.Commands.Execute( + context.Document, + new AddEntityCommand(new ArcEntity( + Guid.NewGuid(), + Layer.Cut.Name, + arc.Center, + arc.Radius, + arc.StartAngleDeg, + arc.EndAngleDeg, + arc.IsClockwise))); + context.SetStatus("Arc 3P: arc created"); + } + else + { + context.SetStatus("Arc 3P: points are collinear"); + } + + _points.Clear(); + } + else + { + context.SetStatus(Prompt); + } + + context.Invalidate(); + } + + public void PointerMove(ToolContext context, Point2 modelPoint) + { + _current = context.Snap(modelPoint); + context.Invalidate(); + } + + public void PointerUp(ToolContext context, Point2 modelPoint) + { + } + + public void KeyDown(ToolContext context, Key key) + { + } + + public void Cancel(ToolContext context) + { + _points.Clear(); + _current = null; + context.SetStatus(Prompt); + context.Invalidate(); + } + + public void RenderOverlay(DrawingContext context, ToolRenderContext renderContext) + { + foreach (var point in _points) + { + ToolDrawing.DrawPointMarker(context, renderContext.Transform, point); + } + + if (_points.Count == 2 && _current is not null) + { + var pen = GeometryHelpers.TryCreateArcFromThreePoints(_points[0], _points[1], _current.Value, out var arc) + ? ToolDrawing.PreviewPen + : ToolDrawing.InvalidPen; + + if (arc.Radius > GeometryConstants.Epsilon) + { + ToolDrawing.DrawArc( + context, + renderContext.Transform, + arc.Center, + arc.Radius, + arc.StartAngleDeg, + arc.EndAngleDeg, + arc.IsClockwise, + pen); + } + } + } +} diff --git a/src/TraceCad.App/Tools/Circle3PointTool.cs b/src/TraceCad.App/Tools/Circle3PointTool.cs new file mode 100644 index 0000000..0e8a246 --- /dev/null +++ b/src/TraceCad.App/Tools/Circle3PointTool.cs @@ -0,0 +1,92 @@ +using Avalonia.Input; +using Avalonia.Media; +using TraceCad.Core.Commands; +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; + +namespace TraceCad.App.Tools; + +public sealed class Circle3PointTool : ISketchTool +{ + private readonly List _points = new(); + private Point2? _current; + + public string Name => "Circle 3P"; + + public string Prompt => _points.Count switch + { + 0 => "Circle 3P: choose first point on circle", + 1 => "Circle 3P: choose second point on circle", + _ => "Circle 3P: choose third point on circle" + }; + + public void PointerDown(ToolContext context, Point2 modelPoint) + { + _points.Add(context.Snap(modelPoint)); + + if (_points.Count == 3) + { + if (GeometryHelpers.TryCreateCircleFromThreePoints(_points[0], _points[1], _points[2], out var circle)) + { + context.Commands.Execute( + context.Document, + new AddEntityCommand(new CircleEntity(Guid.NewGuid(), Layer.Cut.Name, circle.Center, circle.Radius))); + context.SetStatus("Circle 3P: circle created"); + } + else + { + context.SetStatus("Circle 3P: points are collinear"); + } + + _points.Clear(); + } + else + { + context.SetStatus(Prompt); + } + + context.Invalidate(); + } + + public void PointerMove(ToolContext context, Point2 modelPoint) + { + _current = context.Snap(modelPoint); + context.Invalidate(); + } + + public void PointerUp(ToolContext context, Point2 modelPoint) + { + } + + public void KeyDown(ToolContext context, Key key) + { + } + + public void Cancel(ToolContext context) + { + _points.Clear(); + _current = null; + context.SetStatus(Prompt); + context.Invalidate(); + } + + public void RenderOverlay(DrawingContext context, ToolRenderContext renderContext) + { + foreach (var point in _points) + { + ToolDrawing.DrawPointMarker(context, renderContext.Transform, point); + } + + if (_points.Count == 2 && _current is not null) + { + var pen = GeometryHelpers.TryCreateCircleFromThreePoints(_points[0], _points[1], _current.Value, out var circle) + ? ToolDrawing.PreviewPen + : ToolDrawing.InvalidPen; + + if (circle.Radius > GeometryConstants.Epsilon) + { + ToolDrawing.DrawCircle(context, renderContext.Transform, circle.Center, circle.Radius, pen); + } + } + } +} diff --git a/src/TraceCad.App/Tools/ISketchTool.cs b/src/TraceCad.App/Tools/ISketchTool.cs new file mode 100644 index 0000000..2c0c4cc --- /dev/null +++ b/src/TraceCad.App/Tools/ISketchTool.cs @@ -0,0 +1,24 @@ +using Avalonia.Input; +using Avalonia.Media; +using TraceCad.Core.Geometry; + +namespace TraceCad.App.Tools; + +public interface ISketchTool +{ + string Name { get; } + + string Prompt { get; } + + void PointerDown(ToolContext context, Point2 modelPoint); + + void PointerMove(ToolContext context, Point2 modelPoint); + + void PointerUp(ToolContext context, Point2 modelPoint); + + void KeyDown(ToolContext context, Key key); + + void Cancel(ToolContext context); + + void RenderOverlay(DrawingContext context, ToolRenderContext renderContext); +} diff --git a/src/TraceCad.App/Tools/LineTool.cs b/src/TraceCad.App/Tools/LineTool.cs new file mode 100644 index 0000000..49d29fc --- /dev/null +++ b/src/TraceCad.App/Tools/LineTool.cs @@ -0,0 +1,81 @@ +using Avalonia.Input; +using Avalonia.Media; +using TraceCad.Core.Commands; +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; + +namespace TraceCad.App.Tools; + +public sealed class LineTool : ISketchTool +{ + private Point2? _start; + private Point2? _current; + + public string Name => "Line"; + + public string Prompt => _start is null ? "Line Tool: choose start point" : "Line Tool: choose end point"; + + public void PointerDown(ToolContext context, Point2 modelPoint) + { + var point = context.Snap(modelPoint); + if (_start is null) + { + _start = point; + _current = point; + context.SetStatus(Prompt); + context.Invalidate(); + return; + } + + if (_start.Value.DistanceTo(point) > GeometryConstants.Epsilon) + { + context.Commands.Execute( + context.Document, + new AddEntityCommand(new LineEntity(Guid.NewGuid(), Layer.Cut.Name, _start.Value, point))); + } + + _start = null; + _current = null; + context.SetStatus(Prompt); + context.Invalidate(); + } + + public void PointerMove(ToolContext context, Point2 modelPoint) + { + _current = context.Snap(modelPoint); + context.Invalidate(); + } + + public void PointerUp(ToolContext context, Point2 modelPoint) + { + } + + public void KeyDown(ToolContext context, Key key) + { + } + + public void Cancel(ToolContext context) + { + _start = null; + _current = null; + context.SetStatus(Prompt); + context.Invalidate(); + } + + public void RenderOverlay(DrawingContext context, ToolRenderContext renderContext) + { + if (_start is null) + { + return; + } + + ToolDrawing.DrawPointMarker(context, renderContext.Transform, _start.Value); + if (_current is not null) + { + context.DrawLine( + ToolDrawing.PreviewPen, + renderContext.Transform.ModelToScreen(_start.Value), + renderContext.Transform.ModelToScreen(_current.Value)); + } + } +} diff --git a/src/TraceCad.App/Tools/SelectTool.cs b/src/TraceCad.App/Tools/SelectTool.cs new file mode 100644 index 0000000..35704ab --- /dev/null +++ b/src/TraceCad.App/Tools/SelectTool.cs @@ -0,0 +1,42 @@ +using Avalonia.Input; +using Avalonia.Media; +using TraceCad.Core.Geometry; + +namespace TraceCad.App.Tools; + +public sealed class SelectTool : ISketchTool +{ + public string Name => "Select"; + + public string Prompt => "Select Tool: choose an entity"; + + public void PointerDown(ToolContext context, Point2 modelPoint) + { + context.SetSelected(context.HitTest(modelPoint, 6.0)); + context.SetStatus(context.SelectedEntity is null ? Prompt : "Select Tool: entity selected"); + context.Invalidate(); + } + + public void PointerMove(ToolContext context, Point2 modelPoint) + { + } + + public void PointerUp(ToolContext context, Point2 modelPoint) + { + } + + public void KeyDown(ToolContext context, Key key) + { + } + + public void Cancel(ToolContext context) + { + context.SetSelected(null); + context.SetStatus(Prompt); + context.Invalidate(); + } + + public void RenderOverlay(DrawingContext context, ToolRenderContext renderContext) + { + } +} diff --git a/src/TraceCad.App/Tools/ToolContext.cs b/src/TraceCad.App/Tools/ToolContext.cs new file mode 100644 index 0000000..f9c1dc1 --- /dev/null +++ b/src/TraceCad.App/Tools/ToolContext.cs @@ -0,0 +1,32 @@ +using TraceCad.Core.Commands; +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; + +namespace TraceCad.App.Tools; + +public sealed class ToolContext( + SketchDocument document, + CommandManager commands, + Func snapPoint, + Func hitTest, + Func getSelected, + Action setSelected, + Action setStatus, + Action invalidate) +{ + public SketchDocument Document { get; } = document; + + public CommandManager Commands { get; } = commands; + + public Point2 Snap(Point2 point) => snapPoint(point); + + public Entity? HitTest(Point2 point, double tolerancePixels) => hitTest(point, tolerancePixels); + + public Entity? SelectedEntity => getSelected(); + + public void SetSelected(Entity? entity) => setSelected(entity); + + public void SetStatus(string status) => setStatus(status); + + public void Invalidate() => invalidate(); +} diff --git a/src/TraceCad.App/Tools/ToolDrawing.cs b/src/TraceCad.App/Tools/ToolDrawing.cs new file mode 100644 index 0000000..b97f9d8 --- /dev/null +++ b/src/TraceCad.App/Tools/ToolDrawing.cs @@ -0,0 +1,68 @@ +using Avalonia; +using Avalonia.Media; +using TraceCad.Core.Geometry; + +namespace TraceCad.App.Tools; + +internal static class ToolDrawing +{ + public static readonly Pen PreviewPen = new(Brushes.DeepSkyBlue, 1.5); + public static readonly Pen InvalidPen = new(Brushes.OrangeRed, 1.5); + + public static void DrawPointMarker(DrawingContext context, ViewTransform transform, Point2 point) + { + var screen = transform.ModelToScreen(point); + context.DrawEllipse(Brushes.White, new Pen(Brushes.DeepSkyBlue, 1.2), screen, 4.0, 4.0); + } + + public static void DrawCircle(DrawingContext context, ViewTransform transform, Point2 center, double radius, Pen pen) + { + var screen = transform.ModelToScreen(center); + context.DrawEllipse(null, pen, screen, radius * transform.Scale, radius * transform.Scale); + } + + public static void DrawArc( + DrawingContext context, + ViewTransform transform, + Point2 center, + double radius, + double startAngleDeg, + double endAngleDeg, + bool isClockwise, + Pen pen) + { + var sweep = isClockwise + ? GeometryHelpers.ClockwiseSweepDeg(startAngleDeg, endAngleDeg) + : GeometryHelpers.CounterClockwiseSweepDeg(startAngleDeg, endAngleDeg); + + if (sweep <= GeometryConstants.Epsilon) + { + return; + } + + var start = PointAtAngle(transform, center, radius, startAngleDeg); + var end = PointAtAngle(transform, center, radius, endAngleDeg); + var geometry = new StreamGeometry(); + + using (var stream = geometry.Open()) + { + stream.BeginFigure(start, isFilled: false); + stream.ArcTo( + end, + new Size(radius * transform.Scale, radius * transform.Scale), + 0.0, + sweep > 180.0, + isClockwise ? SweepDirection.CounterClockwise : SweepDirection.Clockwise); + } + + context.DrawGeometry(null, pen, geometry); + } + + private static Point PointAtAngle(ViewTransform transform, Point2 center, double radius, double angleDeg) + { + var radians = angleDeg * Math.PI / 180.0; + return transform.ModelToScreen(new Point2( + center.X + (Math.Cos(radians) * radius), + center.Y + (Math.Sin(radians) * radius))); + } +} diff --git a/src/TraceCad.App/Tools/ToolRenderContext.cs b/src/TraceCad.App/Tools/ToolRenderContext.cs new file mode 100644 index 0000000..aac0e90 --- /dev/null +++ b/src/TraceCad.App/Tools/ToolRenderContext.cs @@ -0,0 +1,6 @@ +using Avalonia; +using TraceCad.Core.Geometry; + +namespace TraceCad.App.Tools; + +public sealed record ToolRenderContext(ViewTransform Transform, Point2? HoverPoint, double Scale); diff --git a/src/TraceCad.App/TraceCad.App.csproj b/src/TraceCad.App/TraceCad.App.csproj new file mode 100644 index 0000000..c61181b --- /dev/null +++ b/src/TraceCad.App/TraceCad.App.csproj @@ -0,0 +1,20 @@ + + + WinExe + easyTrace + easyTrace + net8.0 + enable + enable + + + + + + + + + + + + diff --git a/src/TraceCad.App/ViewTransform.cs b/src/TraceCad.App/ViewTransform.cs new file mode 100644 index 0000000..74cd2f7 --- /dev/null +++ b/src/TraceCad.App/ViewTransform.cs @@ -0,0 +1,35 @@ +using Avalonia; +using TraceCad.Core.Geometry; + +namespace TraceCad.App; + +public sealed class ViewTransform +{ + public double Scale { get; private set; } = 3.0; + + public Vector Offset { get; private set; } = new(80.0, 80.0); + + public Point ModelToScreen(Point2 model) => + new((model.X * Scale) + Offset.X, (model.Y * Scale) + Offset.Y); + + public Point2 ScreenToModel(Point screen) => + new((screen.X - Offset.X) / Scale, (screen.Y - Offset.Y) / Scale); + + public void Pan(Vector screenDelta) + { + Offset += screenDelta; + } + + public void ZoomAt(Point screenPoint, double factor) + { + var before = ScreenToModel(screenPoint); + Scale = Math.Clamp(Scale * factor, 0.05, 1000.0); + Offset = new Vector(screenPoint.X - (before.X * Scale), screenPoint.Y - (before.Y * Scale)); + } + + public void Reset() + { + Scale = 3.0; + Offset = new Vector(80.0, 80.0); + } +} diff --git a/src/TraceCad.Core/Commands/AddEntityCommand.cs b/src/TraceCad.Core/Commands/AddEntityCommand.cs new file mode 100644 index 0000000..78c4ec0 --- /dev/null +++ b/src/TraceCad.Core/Commands/AddEntityCommand.cs @@ -0,0 +1,14 @@ +using TraceCad.Core.Model; + +namespace TraceCad.Core.Commands; + +public sealed class AddEntityCommand(Entity entity) : IDocumentCommand +{ + public string Name => "Add Entity"; + + public Entity Entity { get; } = entity; + + public void Apply(SketchDocument document) => document.AddEntity(Entity); + + public void Revert(SketchDocument document) => document.RemoveEntity(Entity.Id); +} diff --git a/src/TraceCad.Core/Commands/CommandManager.cs b/src/TraceCad.Core/Commands/CommandManager.cs new file mode 100644 index 0000000..5a17de9 --- /dev/null +++ b/src/TraceCad.Core/Commands/CommandManager.cs @@ -0,0 +1,50 @@ +using TraceCad.Core.Model; + +namespace TraceCad.Core.Commands; + +public sealed class CommandManager +{ + private readonly Stack _undo = new(); + private readonly Stack _redo = new(); + + public bool CanUndo => _undo.Count > 0; + + public bool CanRedo => _redo.Count > 0; + + public void Execute(SketchDocument document, IDocumentCommand command) + { + command.Apply(document); + _undo.Push(command); + _redo.Clear(); + } + + public void Undo(SketchDocument document) + { + if (!CanUndo) + { + return; + } + + var command = _undo.Pop(); + command.Revert(document); + _redo.Push(command); + } + + public void Redo(SketchDocument document) + { + if (!CanRedo) + { + return; + } + + var command = _redo.Pop(); + command.Apply(document); + _undo.Push(command); + } + + public void Clear() + { + _undo.Clear(); + _redo.Clear(); + } +} diff --git a/src/TraceCad.Core/Commands/DeleteEntityCommand.cs b/src/TraceCad.Core/Commands/DeleteEntityCommand.cs new file mode 100644 index 0000000..f1c0e5a --- /dev/null +++ b/src/TraceCad.Core/Commands/DeleteEntityCommand.cs @@ -0,0 +1,14 @@ +using TraceCad.Core.Model; + +namespace TraceCad.Core.Commands; + +public sealed class DeleteEntityCommand(Entity entity) : IDocumentCommand +{ + public string Name => "Delete Entity"; + + public Entity Entity { get; } = entity; + + public void Apply(SketchDocument document) => document.RemoveEntity(Entity.Id); + + public void Revert(SketchDocument document) => document.AddEntity(Entity); +} diff --git a/src/TraceCad.Core/Commands/IDocumentCommand.cs b/src/TraceCad.Core/Commands/IDocumentCommand.cs new file mode 100644 index 0000000..6f7f18e --- /dev/null +++ b/src/TraceCad.Core/Commands/IDocumentCommand.cs @@ -0,0 +1,12 @@ +using TraceCad.Core.Model; + +namespace TraceCad.Core.Commands; + +public interface IDocumentCommand +{ + string Name { get; } + + void Apply(SketchDocument document); + + void Revert(SketchDocument document); +} diff --git a/src/TraceCad.Core/Geometry/ArcDefinition.cs b/src/TraceCad.Core/Geometry/ArcDefinition.cs new file mode 100644 index 0000000..a915e2b --- /dev/null +++ b/src/TraceCad.Core/Geometry/ArcDefinition.cs @@ -0,0 +1,8 @@ +namespace TraceCad.Core.Geometry; + +public readonly record struct ArcDefinition( + Point2 Center, + double Radius, + double StartAngleDeg, + double EndAngleDeg, + bool IsClockwise); diff --git a/src/TraceCad.Core/Geometry/CircleDefinition.cs b/src/TraceCad.Core/Geometry/CircleDefinition.cs new file mode 100644 index 0000000..f5fb300 --- /dev/null +++ b/src/TraceCad.Core/Geometry/CircleDefinition.cs @@ -0,0 +1,3 @@ +namespace TraceCad.Core.Geometry; + +public readonly record struct CircleDefinition(Point2 Center, double Radius); diff --git a/src/TraceCad.Core/Geometry/GeometryConstants.cs b/src/TraceCad.Core/Geometry/GeometryConstants.cs new file mode 100644 index 0000000..ff727a4 --- /dev/null +++ b/src/TraceCad.Core/Geometry/GeometryConstants.cs @@ -0,0 +1,6 @@ +namespace TraceCad.Core.Geometry; + +public static class GeometryConstants +{ + public const double Epsilon = 1e-9; +} diff --git a/src/TraceCad.Core/Geometry/GeometryHelpers.cs b/src/TraceCad.Core/Geometry/GeometryHelpers.cs new file mode 100644 index 0000000..383648b --- /dev/null +++ b/src/TraceCad.Core/Geometry/GeometryHelpers.cs @@ -0,0 +1,106 @@ +namespace TraceCad.Core.Geometry; + +public static class GeometryHelpers +{ + public static double NormalizeAngleDeg(double angleDeg) + { + var normalized = angleDeg % 360.0; + return normalized < 0.0 ? normalized + 360.0 : normalized; + } + + public static double AngleDeg(Point2 center, Point2 point) + { + return NormalizeAngleDeg(Math.Atan2(point.Y - center.Y, point.X - center.X) * 180.0 / Math.PI); + } + + public static bool TryCreateCircleFromThreePoints( + Point2 first, + Point2 second, + Point2 third, + out CircleDefinition circle, + double epsilon = 1e-8) + { + var d = 2.0 * ( + first.X * (second.Y - third.Y) + + second.X * (third.Y - first.Y) + + third.X * (first.Y - second.Y)); + + if (Math.Abs(d) < epsilon) + { + circle = default; + return false; + } + + var firstSq = (first.X * first.X) + (first.Y * first.Y); + var secondSq = (second.X * second.X) + (second.Y * second.Y); + var thirdSq = (third.X * third.X) + (third.Y * third.Y); + + var center = new Point2( + ((firstSq * (second.Y - third.Y)) + + (secondSq * (third.Y - first.Y)) + + (thirdSq * (first.Y - second.Y))) / d, + ((firstSq * (third.X - second.X)) + + (secondSq * (first.X - third.X)) + + (thirdSq * (second.X - first.X))) / d); + + var radius = center.DistanceTo(first); + if (radius < epsilon) + { + circle = default; + return false; + } + + circle = new CircleDefinition(center, radius); + return true; + } + + public static bool TryCreateArcFromThreePoints( + Point2 start, + Point2 pointOnArc, + Point2 end, + out ArcDefinition arc, + double epsilon = 1e-8) + { + if (!TryCreateCircleFromThreePoints(start, pointOnArc, end, out var circle, epsilon)) + { + arc = default; + return false; + } + + var startAngle = AngleDeg(circle.Center, start); + var midAngle = AngleDeg(circle.Center, pointOnArc); + var endAngle = AngleDeg(circle.Center, end); + var isClockwise = !AngleIsOnSweep(startAngle, endAngle, midAngle, isClockwise: false); + + arc = new ArcDefinition(circle.Center, circle.Radius, startAngle, endAngle, isClockwise); + return true; + } + + public static bool AngleIsOnSweep(double startDeg, double endDeg, double candidateDeg, bool isClockwise) + { + startDeg = NormalizeAngleDeg(startDeg); + endDeg = NormalizeAngleDeg(endDeg); + candidateDeg = NormalizeAngleDeg(candidateDeg); + + if (!isClockwise) + { + var sweep = CounterClockwiseSweepDeg(startDeg, endDeg); + var candidateSweep = CounterClockwiseSweepDeg(startDeg, candidateDeg); + return candidateSweep <= sweep + GeometryConstants.Epsilon; + } + + var clockwiseSweep = ClockwiseSweepDeg(startDeg, endDeg); + var candidateClockwiseSweep = ClockwiseSweepDeg(startDeg, candidateDeg); + return candidateClockwiseSweep <= clockwiseSweep + GeometryConstants.Epsilon; + } + + public static double CounterClockwiseSweepDeg(double startDeg, double endDeg) + { + return NormalizeAngleDeg(endDeg - startDeg); + } + + public static double ClockwiseSweepDeg(double startDeg, double endDeg) + { + return NormalizeAngleDeg(startDeg - endDeg); + } +} diff --git a/src/TraceCad.Core/Geometry/Point2.cs b/src/TraceCad.Core/Geometry/Point2.cs new file mode 100644 index 0000000..d15b0d2 --- /dev/null +++ b/src/TraceCad.Core/Geometry/Point2.cs @@ -0,0 +1,17 @@ +namespace TraceCad.Core.Geometry; + +public readonly record struct Point2(double X, double Y) +{ + public static Point2 Origin { get; } = new(0.0, 0.0); + + public double DistanceTo(Point2 other) => (this - other).Length; + + public static Point2 operator +(Point2 point, Vector2 vector) => + new(point.X + vector.X, point.Y + vector.Y); + + public static Point2 operator -(Point2 point, Vector2 vector) => + new(point.X - vector.X, point.Y - vector.Y); + + public static Vector2 operator -(Point2 left, Point2 right) => + new(left.X - right.X, left.Y - right.Y); +} diff --git a/src/TraceCad.Core/Geometry/Vector2.cs b/src/TraceCad.Core/Geometry/Vector2.cs new file mode 100644 index 0000000..7b7bd10 --- /dev/null +++ b/src/TraceCad.Core/Geometry/Vector2.cs @@ -0,0 +1,25 @@ +namespace TraceCad.Core.Geometry; + +public readonly record struct Vector2(double X, double Y) +{ + public double Length => Math.Sqrt((X * X) + (Y * Y)); + + public Vector2 Normalized() + { + var length = Length; + return length <= GeometryConstants.Epsilon ? new Vector2(0.0, 0.0) : new Vector2(X / length, Y / length); + } + + public double Dot(Vector2 other) => (X * other.X) + (Y * other.Y); + + public double Cross(Vector2 other) => (X * other.Y) - (Y * other.X); + + public static Vector2 operator +(Vector2 left, Vector2 right) => + new(left.X + right.X, left.Y + right.Y); + + public static Vector2 operator -(Vector2 left, Vector2 right) => + new(left.X - right.X, left.Y - right.Y); + + public static Vector2 operator *(Vector2 vector, double scalar) => + new(vector.X * scalar, vector.Y * scalar); +} diff --git a/src/TraceCad.Core/Model/ArcEntity.cs b/src/TraceCad.Core/Model/ArcEntity.cs new file mode 100644 index 0000000..14266bb --- /dev/null +++ b/src/TraceCad.Core/Model/ArcEntity.cs @@ -0,0 +1,33 @@ +using TraceCad.Core.Geometry; + +namespace TraceCad.Core.Model; + +public sealed record ArcEntity( + Guid Id, + string Layer, + Point2 Center, + double Radius, + double StartAngleDeg, + double EndAngleDeg, + bool IsClockwise) : Entity(Id, Layer) +{ + public Point2 StartPoint => PointAtAngle(StartAngleDeg); + + public Point2 EndPoint => PointAtAngle(EndAngleDeg); + + public override IEnumerable SnapPoints + { + get + { + yield return StartPoint; + yield return EndPoint; + yield return Center; + } + } + + public Point2 PointAtAngle(double angleDeg) + { + var radians = angleDeg * Math.PI / 180.0; + return new Point2(Center.X + (Math.Cos(radians) * Radius), Center.Y + (Math.Sin(radians) * Radius)); + } +} diff --git a/src/TraceCad.Core/Model/CircleEntity.cs b/src/TraceCad.Core/Model/CircleEntity.cs new file mode 100644 index 0000000..508e023 --- /dev/null +++ b/src/TraceCad.Core/Model/CircleEntity.cs @@ -0,0 +1,18 @@ +using TraceCad.Core.Geometry; + +namespace TraceCad.Core.Model; + +public sealed record CircleEntity( + Guid Id, + string Layer, + Point2 Center, + double Radius) : Entity(Id, Layer) +{ + public override IEnumerable SnapPoints + { + get + { + yield return Center; + } + } +} diff --git a/src/TraceCad.Core/Model/Entity.cs b/src/TraceCad.Core/Model/Entity.cs new file mode 100644 index 0000000..acfca44 --- /dev/null +++ b/src/TraceCad.Core/Model/Entity.cs @@ -0,0 +1,8 @@ +using TraceCad.Core.Geometry; + +namespace TraceCad.Core.Model; + +public abstract record Entity(Guid Id, string Layer) +{ + public abstract IEnumerable SnapPoints { get; } +} diff --git a/src/TraceCad.Core/Model/Layer.cs b/src/TraceCad.Core/Model/Layer.cs new file mode 100644 index 0000000..8e761f9 --- /dev/null +++ b/src/TraceCad.Core/Model/Layer.cs @@ -0,0 +1,10 @@ +namespace TraceCad.Core.Model; + +public sealed record Layer(string Name, bool Visible = true, bool Locked = false, bool Exportable = true) +{ + public static Layer Cut { get; } = new("CUT"); + public static Layer Construction { get; } = new("CONSTRUCTION", Exportable: false); + public static Layer Reference { get; } = new("REFERENCE", Exportable: false); + public static Layer Dimensions { get; } = new("DIMENSIONS", Exportable: false); + public static Layer Debug { get; } = new("DEBUG", Visible: false, Exportable: false); +} diff --git a/src/TraceCad.Core/Model/LineEntity.cs b/src/TraceCad.Core/Model/LineEntity.cs new file mode 100644 index 0000000..0efaf91 --- /dev/null +++ b/src/TraceCad.Core/Model/LineEntity.cs @@ -0,0 +1,21 @@ +using TraceCad.Core.Geometry; + +namespace TraceCad.Core.Model; + +public sealed record LineEntity( + Guid Id, + string Layer, + Point2 Start, + Point2 End) : Entity(Id, Layer) +{ + public double Length => Start.DistanceTo(End); + + public override IEnumerable SnapPoints + { + get + { + yield return Start; + yield return End; + } + } +} diff --git a/src/TraceCad.Core/Model/ReferenceImage.cs b/src/TraceCad.Core/Model/ReferenceImage.cs new file mode 100644 index 0000000..9e2338d --- /dev/null +++ b/src/TraceCad.Core/Model/ReferenceImage.cs @@ -0,0 +1,14 @@ +namespace TraceCad.Core.Model; + +public sealed record ReferenceTransform( + double OriginX, + double OriginY, + double ScaleX, + double ScaleY, + double RotationDeg); + +public sealed record ReferenceImage( + string ImagePath, + double Opacity, + bool Locked, + ReferenceTransform Transform); diff --git a/src/TraceCad.Core/Model/SketchDocument.cs b/src/TraceCad.Core/Model/SketchDocument.cs new file mode 100644 index 0000000..8742ad5 --- /dev/null +++ b/src/TraceCad.Core/Model/SketchDocument.cs @@ -0,0 +1,59 @@ +namespace TraceCad.Core.Model; + +public sealed class SketchDocument +{ + public const int CurrentVersion = 1; + + public int Version { get; set; } = CurrentVersion; + + public string Units { get; set; } = "mm"; + + public double Width { get; set; } = 210.0; + + public double Height { get; set; } = 297.0; + + public ReferenceImage? Reference { get; set; } + + public List Layers { get; } = new(); + + public List Entities { get; } = new(); + + public static SketchDocument CreateDefault() + { + var document = new SketchDocument(); + document.Layers.AddRange(new[] + { + Layer.Cut, + Layer.Construction, + Layer.Reference, + Layer.Dimensions, + Layer.Debug + }); + return document; + } + + public void AddEntity(Entity entity) + { + if (Entities.Any(existing => existing.Id == entity.Id)) + { + throw new InvalidOperationException($"Entity '{entity.Id}' already exists."); + } + + Entities.Add(entity); + } + + public bool RemoveEntity(Guid id) + { + var index = Entities.FindIndex(entity => entity.Id == id); + if (index < 0) + { + return false; + } + + Entities.RemoveAt(index); + return true; + } + + public Layer? FindLayer(string name) => + Layers.FirstOrDefault(layer => string.Equals(layer.Name, name, StringComparison.OrdinalIgnoreCase)); +} diff --git a/src/TraceCad.Core/Serialization/SketchDocumentSerializer.cs b/src/TraceCad.Core/Serialization/SketchDocumentSerializer.cs new file mode 100644 index 0000000..b3dfa6d --- /dev/null +++ b/src/TraceCad.Core/Serialization/SketchDocumentSerializer.cs @@ -0,0 +1,110 @@ +using System.Text.Json; +using System.Text.Json.Serialization; +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; + +namespace TraceCad.Core.Serialization; + +public static class SketchDocumentSerializer +{ + private static readonly JsonSerializerOptions Options = new() + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + WriteIndented = true, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull + }; + + public static string Serialize(SketchDocument document) + { + return JsonSerializer.Serialize(ToDto(document), Options); + } + + public static SketchDocument Deserialize(string json) + { + var dto = JsonSerializer.Deserialize(json, Options) + ?? throw new InvalidOperationException("Project file is empty or invalid."); + return FromDto(dto); + } + + private static DocumentDto ToDto(SketchDocument document) => + new( + document.Version, + document.Units, + new DocumentSizeDto(document.Width, document.Height), + document.Reference, + document.Layers.ToList(), + document.Entities.Select(ToDto).ToList()); + + private static SketchDocument FromDto(DocumentDto dto) + { + var document = new SketchDocument + { + Version = dto.Version, + Units = dto.Units, + Width = dto.Document.Width, + Height = dto.Document.Height, + Reference = dto.Reference + }; + + document.Layers.AddRange(dto.Layers); + document.Entities.AddRange(dto.Entities.Select(FromDto)); + return document; + } + + private static EntityDto ToDto(Entity entity) + { + return entity switch + { + LineEntity line => EntityDto.Line(line.Id, line.Layer, line.Start, line.End), + CircleEntity circle => EntityDto.Circle(circle.Id, circle.Layer, circle.Center, circle.Radius), + ArcEntity arc => EntityDto.Arc(arc.Id, arc.Layer, arc.Center, arc.Radius, arc.StartAngleDeg, arc.EndAngleDeg, arc.IsClockwise), + _ => throw new NotSupportedException($"Unsupported entity type '{entity.GetType().Name}'.") + }; + } + + private static Entity FromDto(EntityDto dto) + { + return dto.Type switch + { + "line" when dto.Start is not null && dto.End is not null => + new LineEntity(dto.Id, dto.Layer, dto.Start.Value, dto.End.Value), + "circle" when dto.Center is not null && dto.Radius is not null => + new CircleEntity(dto.Id, dto.Layer, dto.Center.Value, dto.Radius.Value), + "arc" when dto.Center is not null && dto.Radius is not null && dto.StartAngleDeg is not null && dto.EndAngleDeg is not null => + new ArcEntity(dto.Id, dto.Layer, dto.Center.Value, dto.Radius.Value, dto.StartAngleDeg.Value, dto.EndAngleDeg.Value, dto.IsClockwise), + _ => throw new InvalidOperationException($"Invalid or unsupported entity record '{dto.Type}'.") + }; + } + + private sealed record DocumentDto( + int Version, + string Units, + DocumentSizeDto Document, + ReferenceImage? Reference, + List Layers, + List Entities); + + private sealed record DocumentSizeDto(double Width, double Height); + + private sealed record EntityDto( + string Type, + Guid Id, + string Layer, + Point2? Start, + Point2? End, + Point2? Center, + double? Radius, + double? StartAngleDeg, + double? EndAngleDeg, + bool IsClockwise) + { + public static EntityDto Line(Guid id, string layer, Point2 start, Point2 end) => + new("line", id, layer, start, end, null, null, null, null, false); + + public static EntityDto Circle(Guid id, string layer, Point2 center, double radius) => + new("circle", id, layer, null, null, center, radius, null, null, false); + + public static EntityDto Arc(Guid id, string layer, Point2 center, double radius, double startAngleDeg, double endAngleDeg, bool isClockwise) => + new("arc", id, layer, null, null, center, radius, startAngleDeg, endAngleDeg, isClockwise); + } +} diff --git a/src/TraceCad.Core/TraceCad.Core.csproj b/src/TraceCad.Core/TraceCad.Core.csproj new file mode 100644 index 0000000..e8cd599 --- /dev/null +++ b/src/TraceCad.Core/TraceCad.Core.csproj @@ -0,0 +1,7 @@ + + + net8.0 + enable + enable + + diff --git a/src/TraceCad.Vision/Calibration/ReferenceMarkerDefinition.cs b/src/TraceCad.Vision/Calibration/ReferenceMarkerDefinition.cs new file mode 100644 index 0000000..189d92a --- /dev/null +++ b/src/TraceCad.Vision/Calibration/ReferenceMarkerDefinition.cs @@ -0,0 +1,20 @@ +using TraceCad.Core.Geometry; + +namespace TraceCad.Vision.Calibration; + +public sealed record ReferenceMarkerDefinition(int Id, Point2 TopLeftMm, double SizeMm) +{ + public Point2 TopRightMm => new(TopLeftMm.X + SizeMm, TopLeftMm.Y); + + public Point2 BottomRightMm => new(TopLeftMm.X + SizeMm, TopLeftMm.Y + SizeMm); + + public Point2 BottomLeftMm => new(TopLeftMm.X, TopLeftMm.Y + SizeMm); + + public IReadOnlyList CornersMm => new[] + { + TopLeftMm, + TopRightMm, + BottomRightMm, + BottomLeftMm + }; +} diff --git a/src/TraceCad.Vision/Calibration/ReferenceSheetTemplate.cs b/src/TraceCad.Vision/Calibration/ReferenceSheetTemplate.cs new file mode 100644 index 0000000..1626642 --- /dev/null +++ b/src/TraceCad.Vision/Calibration/ReferenceSheetTemplate.cs @@ -0,0 +1,39 @@ +using TraceCad.Core.Geometry; + +namespace TraceCad.Vision.Calibration; + +public sealed record ReferenceSheetTemplate( + string Id, + double WidthMm, + double HeightMm, + double MarkerSizeMm, + double ReferenceLineLengthMm, + Point2 CrosshairMm, + IReadOnlyList Markers) +{ + public static ReferenceSheetTemplate DefaultA4() + { + const double width = 297.0; + const double height = 210.0; + const double marker = 15.0; + + return new ReferenceSheetTemplate( + "easytrace-a4-aruco-5x5-v1", + width, + height, + marker, + ReferenceLineLengthMm: 30.0, + CrosshairMm: new Point2(width / 2.0, height / 2.0), + Markers: new[] + { + new ReferenceMarkerDefinition(0, new Point2(29.804, 10.666), marker), + new ReferenceMarkerDefinition(1, new Point2(104.776, 10.666), marker), + new ReferenceMarkerDefinition(2, new Point2(176.221, 10.666), marker), + new ReferenceMarkerDefinition(3, new Point2(251.193, 10.666), marker), + new ReferenceMarkerDefinition(4, new Point2(29.804, 184.417), marker), + new ReferenceMarkerDefinition(5, new Point2(104.933, 184.417), marker), + new ReferenceMarkerDefinition(6, new Point2(176.221, 184.417), marker), + new ReferenceMarkerDefinition(7, new Point2(251.193, 184.417), marker) + }); + } +} diff --git a/src/TraceCad.Vision/Calibration/SheetCalibrationResult.cs b/src/TraceCad.Vision/Calibration/SheetCalibrationResult.cs new file mode 100644 index 0000000..50a2064 --- /dev/null +++ b/src/TraceCad.Vision/Calibration/SheetCalibrationResult.cs @@ -0,0 +1,15 @@ +namespace TraceCad.Vision.Calibration; + +public sealed record SheetCalibrationResult( + bool Success, + string Message, + string? CorrectedImagePath, + string? DictionaryName, + int DetectedMarkerCount, + int MatchedMarkerCount, + double SheetWidthMm, + double SheetHeightMm, + double MmPerPixel, + double ReprojectionRmsMm, + double ReprojectionMaxMm, + string CorrectionMode); diff --git a/src/TraceCad.Vision/Calibration/SheetCalibrator.cs b/src/TraceCad.Vision/Calibration/SheetCalibrator.cs new file mode 100644 index 0000000..f01fabd --- /dev/null +++ b/src/TraceCad.Vision/Calibration/SheetCalibrator.cs @@ -0,0 +1,518 @@ +using OpenCvSharp; +using OpenCvSharp.Aruco; +using TraceCad.Core.Geometry; + +namespace TraceCad.Vision.Calibration; + +public sealed class SheetCalibrator +{ + private const double PixelsPerMillimetre = 8.0; + private const int ResidualPolynomialDegree = 3; + private static readonly PredefinedDictionaryName[] CandidateDictionaries = + { + PredefinedDictionaryName.Dict5X5_50, + PredefinedDictionaryName.Dict5X5_100, + PredefinedDictionaryName.Dict5X5_250, + PredefinedDictionaryName.Dict5X5_1000 + }; + + public SheetCalibrationResult Calibrate( + string sourceImagePath, + string outputDirectory, + ReferenceSheetTemplate? template = null) + { + ArgumentException.ThrowIfNullOrWhiteSpace(sourceImagePath); + ArgumentException.ThrowIfNullOrWhiteSpace(outputDirectory); + + template ??= ReferenceSheetTemplate.DefaultA4(); + Directory.CreateDirectory(outputDirectory); + + using var source = Cv2.ImRead(sourceImagePath, ImreadModes.Color); + if (source.Empty()) + { + return Failure("Could not load calibration image.", template); + } + + var detection = DetectBestDictionary(source, template); + if (detection is null) + { + return Failure("No matching 5x5 ArUco markers with IDs 0..7 were detected.", template); + } + + if (detection.MatchedMarkers < 4) + { + return new SheetCalibrationResult( + false, + $"Detected {detection.MatchedMarkers} matching markers; at least 4 are required.", + null, + detection.DictionaryName, + detection.DetectedMarkers, + detection.MatchedMarkers, + template.WidthMm, + template.HeightMm, + 1.0 / PixelsPerMillimetre, + 0.0, + 0.0, + "none"); + } + + using var homographyMask = new Mat(); + using var homography = Cv2.FindHomography( + detection.ImagePoints, + detection.ModelPoints, + HomographyMethods.Ransac, + 3.0, + homographyMask, + 2000, + 0.995); + if (homography.Empty()) + { + return Failure("Could not compute sheet homography.", template); + } + + var inlierIndices = HomographyInlierIndices(homographyMask, detection.ImagePoints.Count); + var metrics = CalculateReprojectionMetrics( + detection.ImagePoints, + detection.ModelPoints, + homography, + inlierIndices); + var outputSize = new Size( + (int)Math.Round(template.WidthMm * PixelsPerMillimetre), + (int)Math.Round(template.HeightMm * PixelsPerMillimetre)); + using var corrected = CorrectImage(source, homography, detection, outputSize, inlierIndices); + + var outputPath = Path.Combine( + outputDirectory, + $"{Path.GetFileNameWithoutExtension(sourceImagePath)}.calibrated.png"); + Cv2.ImWrite(outputPath, corrected); + + return new SheetCalibrationResult( + true, + $"Calibrated using {detection.MatchedMarkers} markers ({detection.DictionaryName}); marker RMS {metrics.RmsMm:0.###} mm, max {metrics.MaxMm:0.###} mm.", + outputPath, + detection.DictionaryName, + detection.DetectedMarkers, + detection.MatchedMarkers, + template.WidthMm, + template.HeightMm, + 1.0 / PixelsPerMillimetre, + metrics.RmsMm, + metrics.MaxMm, + "perspective + marker residual warp"); + } + + private static Detection? DetectBestDictionary(Mat source, ReferenceSheetTemplate template) + { + Detection? best = null; + + foreach (var dictionaryName in CandidateDictionaries) + { + var dictionary = CvAruco.GetPredefinedDictionary(dictionaryName); + var parameters = new DetectorParameters + { + CornerRefinementMethod = CornerRefineMethod.Subpix, + CornerRefinementWinSize = 7, + CornerRefinementMaxIterations = 80, + CornerRefinementMinAccuracy = 0.005, + UseAruco3Detection = true + }; + CvAruco.DetectMarkers( + source, + dictionary, + out var corners, + out var ids, + parameters, + out _); + + if (ids.Length == 0) + { + continue; + } + + var detection = BuildDetection(dictionaryName.ToString(), ids, corners, template); + if (detection.MatchedMarkers > (best?.MatchedMarkers ?? -1)) + { + best = detection; + } + } + + return best; + } + + private static Detection BuildDetection( + string dictionaryName, + int[] ids, + Point2f[][] corners, + ReferenceSheetTemplate template) + { + var markerById = template.Markers.ToDictionary(marker => marker.Id); + var imagePoints = new List(); + var modelPoints = new List(); + var matchedMarkerIds = new HashSet(); + + for (var i = 0; i < ids.Length; i++) + { + if (!markerById.TryGetValue(ids[i], out var marker)) + { + continue; + } + + matchedMarkerIds.Add(ids[i]); + var imageCorners = corners[i]; + var modelCorners = marker.CornersMm; + for (var cornerIndex = 0; cornerIndex < 4; cornerIndex++) + { + imagePoints.Add(ToDoublePoint(imageCorners[cornerIndex])); + modelPoints.Add(ToPixelPoint(modelCorners[cornerIndex])); + } + } + + return new Detection( + dictionaryName, + ids.Length, + matchedMarkerIds.Count, + imagePoints, + modelPoints); + } + + private static Point2d ToPixelPoint(Point2 point) => + new( + point.X * PixelsPerMillimetre, + point.Y * PixelsPerMillimetre); + + private static Point2d ToDoublePoint(Point2f point) => + new(point.X, point.Y); + + private static SheetCalibrationResult Failure(string message, ReferenceSheetTemplate template) => + new( + false, + message, + null, + null, + 0, + 0, + template.WidthMm, + template.HeightMm, + 1.0 / PixelsPerMillimetre, + 0.0, + 0.0, + "none"); + + private static Mat CorrectImage( + Mat source, + Mat homography, + Detection detection, + Size outputSize, + IReadOnlyList inlierIndices) + { + if (inlierIndices.Count < PolynomialTermCount(ResidualPolynomialDegree)) + { + var perspectiveOnly = new Mat(); + Cv2.WarpPerspective(source, perspectiveOnly, homography, outputSize); + return perspectiveOnly; + } + + using var inverseHomography = homography.Inv(); + var inverse = ReadHomography(inverseHomography); + var modelPoints = inlierIndices.Select(index => detection.ModelPoints[index]).ToArray(); + var residualX = new double[modelPoints.Length]; + var residualY = new double[modelPoints.Length]; + + for (var i = 0; i < modelPoints.Length; i++) + { + var index = inlierIndices[i]; + var projected = ApplyHomography(inverse, detection.ModelPoints[index]); + residualX[i] = detection.ImagePoints[index].X - projected.X; + residualY[i] = detection.ImagePoints[index].Y - projected.Y; + } + + var xSurface = PolynomialSurface.Fit(modelPoints, residualX, outputSize, ResidualPolynomialDegree); + var ySurface = PolynomialSurface.Fit(modelPoints, residualY, outputSize, ResidualPolynomialDegree); + if (xSurface is null || ySurface is null) + { + var perspectiveOnly = new Mat(); + Cv2.WarpPerspective(source, perspectiveOnly, homography, outputSize); + return perspectiveOnly; + } + + using var mapX = new Mat(outputSize.Height, outputSize.Width, MatType.CV_32FC1); + using var mapY = new Mat(outputSize.Height, outputSize.Width, MatType.CV_32FC1); + + for (var y = 0; y < outputSize.Height; y++) + { + for (var x = 0; x < outputSize.Width; x++) + { + var modelPoint = new Point2d(x, y); + var projected = ApplyHomography(inverse, modelPoint); + mapX.Set(y, x, (float)(projected.X + xSurface.Evaluate(modelPoint))); + mapY.Set(y, x, (float)(projected.Y + ySurface.Evaluate(modelPoint))); + } + } + + var corrected = new Mat(); + Cv2.Remap( + source, + corrected, + mapX, + mapY, + InterpolationFlags.Linear, + BorderTypes.Constant, + Scalar.White); + return corrected; + } + + private static IReadOnlyList HomographyInlierIndices(Mat mask, int pointCount) + { + if (mask.Empty()) + { + return Enumerable.Range(0, pointCount).ToArray(); + } + + var indices = new List(); + for (var i = 0; i < pointCount; i++) + { + if (mask.Get(i, 0) != 0) + { + indices.Add(i); + } + } + + return indices.Count == 0 ? Enumerable.Range(0, pointCount).ToArray() : indices; + } + + private static ReprojectionMetrics CalculateReprojectionMetrics( + IReadOnlyList imagePoints, + IReadOnlyList modelPoints, + Mat homography, + IReadOnlyList pointIndices) + { + var h = ReadHomography(homography); + var sumSquaredMm = 0.0; + var maxMm = 0.0; + + foreach (var index in pointIndices) + { + var projected = ApplyHomography(h, imagePoints[index]); + var errorMm = Distance(projected, modelPoints[index]) / PixelsPerMillimetre; + sumSquaredMm += errorMm * errorMm; + maxMm = Math.Max(maxMm, errorMm); + } + + var rmsMm = pointIndices.Count == 0 ? 0.0 : Math.Sqrt(sumSquaredMm / pointIndices.Count); + return new ReprojectionMetrics(rmsMm, maxMm); + } + + private static double[] ReadHomography(Mat homography) => + new[] + { + homography.At(0, 0), + homography.At(0, 1), + homography.At(0, 2), + homography.At(1, 0), + homography.At(1, 1), + homography.At(1, 2), + homography.At(2, 0), + homography.At(2, 1), + homography.At(2, 2) + }; + + private static Point2d ApplyHomography(IReadOnlyList h, Point2d point) + { + var denominator = (h[6] * point.X) + (h[7] * point.Y) + h[8]; + if (Math.Abs(denominator) < 1e-12) + { + return point; + } + + return new Point2d( + ((h[0] * point.X) + (h[1] * point.Y) + h[2]) / denominator, + ((h[3] * point.X) + (h[4] * point.Y) + h[5]) / denominator); + } + + private static double Distance(Point2d a, Point2d b) + { + var dx = a.X - b.X; + var dy = a.Y - b.Y; + return Math.Sqrt((dx * dx) + (dy * dy)); + } + + private static int PolynomialTermCount(int degree) => + degree switch + { + 0 => 1, + 1 => 3, + 2 => 6, + _ => 10 + }; + + private sealed record Detection( + string DictionaryName, + int DetectedMarkers, + int MatchedMarkers, + IReadOnlyList ImagePoints, + IReadOnlyList ModelPoints); + + private sealed record ReprojectionMetrics(double RmsMm, double MaxMm); + + private sealed class PolynomialSurface + { + private readonly double[] _coefficients; + private readonly Size _size; + private readonly int _degree; + + private PolynomialSurface(double[] coefficients, Size size, int degree) + { + _coefficients = coefficients; + _size = size; + _degree = degree; + } + + public static PolynomialSurface? Fit( + IReadOnlyList points, + IReadOnlyList values, + Size size, + int requestedDegree) + { + var degree = requestedDegree; + while (degree > 0 && points.Count < PolynomialTermCount(degree)) + { + degree--; + } + + var termCount = PolynomialTermCount(degree); + var normal = new double[termCount, termCount]; + var rhs = new double[termCount]; + + for (var i = 0; i < points.Count; i++) + { + var basis = Basis(points[i], size, degree); + for (var row = 0; row < termCount; row++) + { + rhs[row] += basis[row] * values[i]; + for (var column = 0; column < termCount; column++) + { + normal[row, column] += basis[row] * basis[column]; + } + } + } + + for (var i = 0; i < termCount; i++) + { + normal[i, i] += 1e-10; + } + + var coefficients = Solve(normal, rhs); + return coefficients is null ? null : new PolynomialSurface(coefficients, size, degree); + } + + public double Evaluate(Point2d point) + { + var basis = Basis(point, _size, _degree); + var value = 0.0; + for (var i = 0; i < _coefficients.Length; i++) + { + value += _coefficients[i] * basis[i]; + } + + return value; + } + + private static double[] Basis(Point2d point, Size size, int degree) + { + var x = ((point.X / Math.Max(1.0, size.Width - 1.0)) * 2.0) - 1.0; + var y = ((point.Y / Math.Max(1.0, size.Height - 1.0)) * 2.0) - 1.0; + + return degree switch + { + 0 => new[] { 1.0 }, + 1 => new[] { 1.0, x, y }, + 2 => new[] { 1.0, x, y, x * x, x * y, y * y }, + _ => new[] + { + 1.0, + x, + y, + x * x, + x * y, + y * y, + x * x * x, + x * x * y, + x * y * y, + y * y * y + } + }; + } + + private static double[]? Solve(double[,] matrix, double[] rhs) + { + var n = rhs.Length; + var augmented = new double[n, n + 1]; + for (var row = 0; row < n; row++) + { + for (var column = 0; column < n; column++) + { + augmented[row, column] = matrix[row, column]; + } + + augmented[row, n] = rhs[row]; + } + + for (var pivot = 0; pivot < n; pivot++) + { + var bestRow = pivot; + var bestValue = Math.Abs(augmented[pivot, pivot]); + for (var row = pivot + 1; row < n; row++) + { + var value = Math.Abs(augmented[row, pivot]); + if (value > bestValue) + { + bestRow = row; + bestValue = value; + } + } + + if (bestValue < 1e-12) + { + return null; + } + + if (bestRow != pivot) + { + for (var column = pivot; column <= n; column++) + { + (augmented[pivot, column], augmented[bestRow, column]) = + (augmented[bestRow, column], augmented[pivot, column]); + } + } + + var pivotValue = augmented[pivot, pivot]; + for (var column = pivot; column <= n; column++) + { + augmented[pivot, column] /= pivotValue; + } + + for (var row = 0; row < n; row++) + { + if (row == pivot) + { + continue; + } + + var factor = augmented[row, pivot]; + for (var column = pivot; column <= n; column++) + { + augmented[row, column] -= factor * augmented[pivot, column]; + } + } + } + + var solution = new double[n]; + for (var row = 0; row < n; row++) + { + solution[row] = augmented[row, n]; + } + + return solution; + } + } +} diff --git a/src/TraceCad.Vision/TraceCad.Vision.csproj b/src/TraceCad.Vision/TraceCad.Vision.csproj new file mode 100644 index 0000000..df40905 --- /dev/null +++ b/src/TraceCad.Vision/TraceCad.Vision.csproj @@ -0,0 +1,12 @@ + + + net8.0 + enable + enable + + + + + + + diff --git a/tests/TraceCad.Tests/DxfExporterTests.cs b/tests/TraceCad.Tests/DxfExporterTests.cs new file mode 100644 index 0000000..b2b8f51 --- /dev/null +++ b/tests/TraceCad.Tests/DxfExporterTests.cs @@ -0,0 +1,36 @@ +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; +using TraceCad.Dxf; +using Xunit; + +namespace TraceCad.Tests; + +public sealed class DxfExporterTests +{ + [Fact] + public void ExportCreatesDxfFile() + { + var document = SketchDocument.CreateDefault(); + document.AddEntity(new LineEntity(Guid.NewGuid(), Layer.Cut.Name, new Point2(0, 0), new Point2(100, 0))); + document.AddEntity(new CircleEntity(Guid.NewGuid(), Layer.Cut.Name, new Point2(20, 20), 10)); + document.AddEntity(new ArcEntity(Guid.NewGuid(), Layer.Cut.Name, new Point2(40, 40), 12, 0, 180, false)); + + var path = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid():N}.dxf"); + + try + { + new NetDxfExporter().Export(document, path); + + Assert.True(File.Exists(path)); + Assert.True(new FileInfo(path).Length > 0); + Assert.Contains("SECTION", File.ReadAllText(path)); + } + finally + { + if (File.Exists(path)) + { + File.Delete(path); + } + } + } +} diff --git a/tests/TraceCad.Tests/GeometryTests.cs b/tests/TraceCad.Tests/GeometryTests.cs new file mode 100644 index 0000000..0a965e7 --- /dev/null +++ b/tests/TraceCad.Tests/GeometryTests.cs @@ -0,0 +1,80 @@ +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; +using Xunit; + +namespace TraceCad.Tests; + +public sealed class GeometryTests +{ + [Fact] + public void LineLengthUsesMillimetres() + { + var line = new LineEntity(Guid.NewGuid(), Layer.Cut.Name, new Point2(0, 0), new Point2(3, 4)); + + Assert.Equal(5.0, line.Length, 9); + } + + [Fact] + public void CircleFromThreePointsComputesCenterAndRadius() + { + var success = GeometryHelpers.TryCreateCircleFromThreePoints( + new Point2(1, 0), + new Point2(0, 1), + new Point2(-1, 0), + out var circle); + + Assert.True(success); + Assert.Equal(0.0, circle.Center.X, 9); + Assert.Equal(0.0, circle.Center.Y, 9); + Assert.Equal(1.0, circle.Radius, 9); + } + + [Fact] + public void CircleFromCollinearPointsFails() + { + var success = GeometryHelpers.TryCreateCircleFromThreePoints( + new Point2(0, 0), + new Point2(1, 1), + new Point2(2, 2), + out _); + + Assert.False(success); + } + + [Fact] + public void ArcFromThreePointsPreservesPointOnCounterClockwiseSweep() + { + var success = GeometryHelpers.TryCreateArcFromThreePoints( + new Point2(1, 0), + new Point2(0, 1), + new Point2(-1, 0), + out var arc); + + Assert.True(success); + Assert.False(arc.IsClockwise); + Assert.Equal(0.0, arc.StartAngleDeg, 9); + Assert.Equal(180.0, arc.EndAngleDeg, 9); + Assert.Equal(1.0, arc.Radius, 9); + } + + [Fact] + public void ArcFromCollinearPointsFails() + { + var success = GeometryHelpers.TryCreateArcFromThreePoints( + new Point2(0, 0), + new Point2(5, 0), + new Point2(10, 0), + out _); + + Assert.False(success); + } + + [Theory] + [InlineData(360, 0)] + [InlineData(-90, 270)] + [InlineData(725, 5)] + public void AngleNormalizationWrapsToPositiveDegrees(double input, double expected) + { + Assert.Equal(expected, GeometryHelpers.NormalizeAngleDeg(input), 9); + } +} diff --git a/tests/TraceCad.Tests/SerializationTests.cs b/tests/TraceCad.Tests/SerializationTests.cs new file mode 100644 index 0000000..91ac38a --- /dev/null +++ b/tests/TraceCad.Tests/SerializationTests.cs @@ -0,0 +1,53 @@ +using TraceCad.Core.Geometry; +using TraceCad.Core.Model; +using TraceCad.Core.Serialization; +using Xunit; + +namespace TraceCad.Tests; + +public sealed class SerializationTests +{ + [Fact] + public void SketchDocumentRoundTripsEntitiesAndLayers() + { + var document = SketchDocument.CreateDefault(); + var lineId = Guid.NewGuid(); + var circleId = Guid.NewGuid(); + var arcId = Guid.NewGuid(); + + document.AddEntity(new LineEntity(lineId, Layer.Cut.Name, new Point2(10, 20), new Point2(40, 50))); + document.AddEntity(new CircleEntity(circleId, Layer.Cut.Name, new Point2(15, 15), 8)); + document.AddEntity(new ArcEntity(arcId, Layer.Cut.Name, new Point2(0, 0), 12, 0, 90, false)); + + var json = SketchDocumentSerializer.Serialize(document); + var reloaded = SketchDocumentSerializer.Deserialize(json); + + Assert.Equal("mm", reloaded.Units); + Assert.Equal(document.Layers.Count, reloaded.Layers.Count); + Assert.Contains(reloaded.Entities, entity => entity.Id == lineId); + Assert.Contains(reloaded.Entities, entity => entity.Id == circleId); + Assert.Contains(reloaded.Entities, entity => entity.Id == arcId); + } + + [Fact] + public void SketchDocumentRoundTripsReferenceImage() + { + var document = SketchDocument.CreateDefault(); + document.Reference = new ReferenceImage( + "reference.png", + 0.42, + Locked: false, + new ReferenceTransform(12.5, 20.0, 0.25, 0.25, 8.0)); + + var json = SketchDocumentSerializer.Serialize(document); + var reloaded = SketchDocumentSerializer.Deserialize(json); + + Assert.NotNull(reloaded.Reference); + Assert.Equal("reference.png", reloaded.Reference.ImagePath); + Assert.Equal(0.42, reloaded.Reference.Opacity, 9); + Assert.False(reloaded.Reference.Locked); + Assert.Equal(12.5, reloaded.Reference.Transform.OriginX, 9); + Assert.Equal(0.25, reloaded.Reference.Transform.ScaleX, 9); + Assert.Equal(8.0, reloaded.Reference.Transform.RotationDeg, 9); + } +} diff --git a/tests/TraceCad.Tests/SheetCalibratorTests.cs b/tests/TraceCad.Tests/SheetCalibratorTests.cs new file mode 100644 index 0000000..fddcea7 --- /dev/null +++ b/tests/TraceCad.Tests/SheetCalibratorTests.cs @@ -0,0 +1,60 @@ +using OpenCvSharp; +using OpenCvSharp.Aruco; +using TraceCad.Vision.Calibration; +using Xunit; + +namespace TraceCad.Tests; + +public sealed class SheetCalibratorTests +{ + [Fact] + public void CalibrateDetectsSyntheticA4SheetMarkers() + { + const double pixelsPerMillimetre = 4.0; + var template = ReferenceSheetTemplate.DefaultA4(); + using var sheet = new Mat( + (int)Math.Round(template.HeightMm * pixelsPerMillimetre), + (int)Math.Round(template.WidthMm * pixelsPerMillimetre), + MatType.CV_8UC3, + Scalar.White); + var dictionary = CvAruco.GetPredefinedDictionary(PredefinedDictionaryName.Dict5X5_1000); + + foreach (var marker in template.Markers) + { + using var markerImage = new Mat(); + dictionary.GenerateImageMarker( + marker.Id, + (int)Math.Round(marker.SizeMm * pixelsPerMillimetre), + markerImage, + 1); + using var markerColor = new Mat(); + Cv2.CvtColor(markerImage, markerColor, ColorConversionCodes.GRAY2BGR); + + var target = new Rect( + (int)Math.Round(marker.TopLeftMm.X * pixelsPerMillimetre), + (int)Math.Round(marker.TopLeftMm.Y * pixelsPerMillimetre), + markerColor.Width, + markerColor.Height); + markerColor.CopyTo(new Mat(sheet, target)); + } + + var tempDirectory = Directory.CreateTempSubdirectory("easytrace-calibration-test-").FullName; + try + { + var imagePath = Path.Combine(tempDirectory, "sheet.png"); + Cv2.ImWrite(imagePath, sheet); + + var result = new SheetCalibrator().Calibrate(imagePath, tempDirectory, template); + + Assert.True(result.Success, result.Message); + Assert.Equal(8, result.MatchedMarkerCount); + Assert.Equal(0.125, result.MmPerPixel, 9); + Assert.Equal("perspective + marker residual warp", result.CorrectionMode); + Assert.True(File.Exists(result.CorrectedImagePath)); + } + finally + { + Directory.Delete(tempDirectory, recursive: true); + } + } +} diff --git a/tests/TraceCad.Tests/TraceCad.Tests.csproj b/tests/TraceCad.Tests/TraceCad.Tests.csproj new file mode 100644 index 0000000..3335227 --- /dev/null +++ b/tests/TraceCad.Tests/TraceCad.Tests.csproj @@ -0,0 +1,19 @@ + + + net8.0 + enable + enable + false + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + +