commit 90fe4a916a0c81e55af16ecd5af9845413851e08 Author: iambossTC Date: Sun Apr 6 19:53:53 2025 +0800 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d95f9c --- /dev/null +++ b/.gitignore @@ -0,0 +1,268 @@ +!*.lib + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +project.fragment.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +#*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +!hasp*.exe +!hasp*.dll +!HiLock.dll +!Aladdin*.dll diff --git a/Disp/RenderingCanvas.Designer.cs b/Disp/RenderingCanvas.Designer.cs new file mode 100644 index 0000000..502257c --- /dev/null +++ b/Disp/RenderingCanvas.Designer.cs @@ -0,0 +1,24 @@ +namespace Hi.WinForm.Disp +{ + partial class RenderingCanvas + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + } + + #endregion + } +} diff --git a/Disp/RenderingCanvas.cs b/Disp/RenderingCanvas.cs new file mode 100644 index 0000000..2b34560 --- /dev/null +++ b/Disp/RenderingCanvas.cs @@ -0,0 +1,295 @@ +using System; +using System.Windows.Forms; +using System.Drawing; +using System.Drawing.Imaging; +using Hi.Native; +using Hi.Disp; +using System.Collections.Generic; +using Hi.Geom; +using System.Linq; +using System.Runtime.InteropServices; + +namespace Hi.WinForm.Disp +{ + /// + /// Window Form Displayer. + /// + public partial class RenderingCanvas : UserControl + { + #region Core_Properties + /// + /// . + /// + public DispEngine DispEngine { get; } + + // Constants and structures for WM_TOUCH + private const int WM_TOUCH = 0x0240; + private const int TOUCHEVENTF_MOVE = 0x0001; + private const int TOUCHEVENTF_DOWN = 0x0002; + private const int TOUCHEVENTF_UP = 0x0004; + + [StructLayout(LayoutKind.Sequential)] + private struct TOUCHINPUT + { + public int x; + public int y; + public IntPtr hSource; + public int dwID; + public int dwFlags; + public int dwMask; + public int dwTime; + public IntPtr dwExtraInfo; + public int cxContact; + public int cyContact; + } + + [DllImport("user32.dll")] + private static extern bool RegisterTouchWindow(IntPtr hWnd, uint ulFlags); + + [DllImport("user32.dll")] + private static extern bool GetTouchInputInfo(IntPtr hTouchInput, int cInputs, [In, Out] TOUCHINPUT[] pInputs, int cbSize); + + [DllImport("user32.dll")] + private static extern void CloseTouchInputHandle(IntPtr lParam); + #endregion + + #region Initialization + /// + /// Ctor. + /// + /// displayees + public unsafe RenderingCanvas(params IDisplayee[] displayees) + { + // Configure the control's visual styles + SetStyle(ControlStyles.Selectable, true); + SetStyle(ControlStyles.OptimizedDoubleBuffer, false); + SetStyle(ControlStyles.ContainerControl, false); + SetStyle(ControlStyles.ResizeRedraw, false); + DoubleBuffered = true; + + InitializeComponent(); + Dock = DockStyle.Fill; + + // Connect event handlers for user input and window events + this.Resize += RenderingCanvas_Resize; + this.VisibleChanged += RenderingCanvas_VisibleChanged; + this.MouseMove += RenderingCanvas_MouseMove; + this.MouseDown += RenderingCanvas_MouseDown; + this.MouseUp += RenderingCanvas_MouseUp; + this.MouseWheel += RenderingCanvas_MouseWheel; + this.KeyDown += RenderingCanvas_KeyDown; + this.KeyUp += RenderingCanvas_KeyUp; + + // Add focus event handler + this.GotFocus += RenderingCanvas_GotFocus; + this.HandleCreated += OnHandleCreated; + + // Enable touch input and click events for the control + this.SetStyle(ControlStyles.StandardClick, true); + this.SetStyle(ControlStyles.StandardDoubleClick, true); + this.TabStop = true; + + // Initialize the DispEngine with provided displayees + DispEngine = new DispEngine(displayees); + DispEngine.BackgroundColor = new Vec3d(0.1, 0.1, 0.5); + DispEngine.BackgroundOpacity = 0.1; + DispEngine.SetViewToHomeView(); + DispEngine.ImageRequestAfterBufferSwapped += DispEngine_ImageRequestAfterBufferSwapped; + + // Set initial size and start the rendering engine + this.Size = new System.Drawing.Size(500, 300); + DispEngine.Start(this.ClientSize.Width, this.ClientSize.Height); + } + #endregion + + #region Win32_Message_Handling + protected override void WndProc(ref Message m) + { + if (m.Msg == WM_TOUCH) + { + HandleTouchInput(m.WParam, m.LParam); + return; + } + + base.WndProc(ref m); + } + + private void OnHandleCreated(object sender, EventArgs e) + { + // Register window to receive touch messages + RegisterTouchWindow(this.Handle, 0); + } + + private void HandleTouchInput(IntPtr wParam, IntPtr lParam) + { + int inputCount = wParam.ToInt32(); + TOUCHINPUT[] inputs = new TOUCHINPUT[inputCount]; + + if (!GetTouchInputInfo(lParam, inputCount, inputs, Marshal.SizeOf(typeof(TOUCHINPUT)))) + return; + + try + { + for (int i = 0; i < inputCount; i++) + { + TOUCHINPUT ti = inputs[i]; + int touchId = ti.dwID; + + // Convert touch coordinates to client coordinates + Point touchPoint = PointToClient(new Point(ti.x / 100, ti.y / 100)); + + if ((ti.dwFlags & TOUCHEVENTF_DOWN) != 0) + { + // Touch down event + DispEngine.TouchDown(touchId, touchPoint.X, touchPoint.Y); + this.Focus(); + } + else if ((ti.dwFlags & TOUCHEVENTF_MOVE) != 0) + { + // Touch move event + DispEngine.TouchMove(touchId, touchPoint.X, touchPoint.Y); + } + else if ((ti.dwFlags & TOUCHEVENTF_UP) != 0) + { + // Touch up event + DispEngine.TouchUp(touchId); + } + } + } + finally + { + CloseTouchInputHandle(lParam); + } + } + #endregion + + #region Cleanup + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + // Dispose the DispEngine to free resources + DispEngine.Dispose(); + components.Dispose(); + } + base.Dispose(disposing); + } + #endregion + + #region DispEngine_Rendering + private unsafe void DispEngine_ImageRequestAfterBufferSwapped(byte* bgra_unsignedbyte_pixels, int w, int h) + { + // Create a bitmap from the raw pixel data provided by DispEngine + Bitmap bitmap; + bitmap = new Bitmap(new Bitmap(w, h, w * 4, + PixelFormat.Format32bppArgb, new IntPtr(bgra_unsignedbyte_pixels))); + + // Update the background image and dispose the previous one + Image pre = this.BackgroundImage; + this.BackgroundImage = bitmap; + pre?.Dispose(); + } + #endregion + + #region Window_Events + private void RenderingCanvas_Resize(object sender, EventArgs e) + { + // Notify DispEngine of size changes + DispEngine.Resize(this.ClientSize.Width, this.ClientSize.Height); + } + + private void RenderingCanvas_VisibleChanged(object sender, EventArgs e) + { + // Update visibility state in DispEngine + DispEngine.IsVisible = this.Visible; + } + #endregion + + #region Mouse_Events + private void RenderingCanvas_MouseMove(object sender, MouseEventArgs e) + { + // Update mouse position and handle drag transforms + DispEngine.MouseMove(e.Location.X, e.Location.Y); + DispEngine.MouseDragTransform(e.Location.X, e.Location.Y, + new mouse_button_table__transform_view_by_mouse_drag_t() + { + LEFT_BUTTON = (long)MouseButtons.Left, + RIGHT_BUTTON = (long)MouseButtons.Right + }); + } + + private void RenderingCanvas_MouseDown(object sender, MouseEventArgs e) + { + // Handle mouse button press + DispEngine.MouseButtonDown((long)e.Button); + this.Focus(); + } + + private void RenderingCanvas_MouseUp(object sender, MouseEventArgs e) + { + // Handle mouse button release + DispEngine.MouseButtonUp((long)e.Button); + } + + private void RenderingCanvas_MouseWheel(object sender, MouseEventArgs e) + { + // Handle mouse wheel for zoom operations + DispEngine.MouseWheel(0, e.Delta / 120); + DispEngine.MouseWheelTransform(0, e.Delta / 120); + } + #endregion + + #region Keyboard_Events + /// + protected override bool IsInputKey(Keys keyData) + { + //since in default, arrow does not trigger key event(keyDown and keyUp). + return true; + } + + private void RenderingCanvas_KeyDown(object sender, KeyEventArgs e) + { + Focus(); + DispEngine.KeyDown((long)e.KeyData); + + // Map specific keys for view transformation + long key = (long)e.KeyData; + if (key == (long)Keys.LShiftKey || key == (long)Keys.RShiftKey || key == (long)Keys.ShiftKey) + key = (long)Keys.Shift; + + DispEngine.KeyDownTransform(key, new key_table__transform_view_by_key_pressing_t() + { + HOME = (long)Keys.Home, + PAGE_UP = (long)Keys.PageUp, + PAGE_DOWN = (long)Keys.PageDown, + F1 = (long)Keys.F1, + F2 = (long)Keys.F2, + F3 = (long)Keys.F3, + F4 = (long)Keys.F4, + SHIFT = (long)Keys.Shift, + ARROW_LEFT = (long)Keys.Left, + ARROW_RIGHT = (long)Keys.Right, + ARROW_DOWN = (long)Keys.Down, + ARROW_UP = (long)Keys.Up + }); + } + + private void RenderingCanvas_KeyUp(object sender, KeyEventArgs e) + { + DispEngine.KeyUp((long)e.KeyData); + } + #endregion + + #region Touch_Events + private void RenderingCanvas_GotFocus(object sender, EventArgs e) + { + // Ensure touch input is enabled when control gets focus + this.Capture = true; + } + #endregion + } +} diff --git a/Disp/RenderingCanvas.resx b/Disp/RenderingCanvas.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Disp/RenderingCanvas.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Disp/RenderingForm.Designer.cs b/Disp/RenderingForm.Designer.cs new file mode 100644 index 0000000..f7d5f40 --- /dev/null +++ b/Disp/RenderingForm.Designer.cs @@ -0,0 +1,34 @@ +namespace Hi.WinForm.Disp +{ + partial class RenderingForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RenderingForm)); + this.SuspendLayout(); + // + // DisplayerForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "DisplayerForm"; + this.Text = "Tech Coordinate Displayer"; + this.ResumeLayout(false); + } + + #endregion + } +} \ No newline at end of file diff --git a/Disp/RenderingForm.cs b/Disp/RenderingForm.cs new file mode 100644 index 0000000..55bb98b --- /dev/null +++ b/Disp/RenderingForm.cs @@ -0,0 +1,91 @@ +using Hi.Disp; +using Hi.Disp.Flag; +using System; +using System.Collections.Concurrent; +using System.Threading; +using System.Windows.Forms; + +namespace Hi.WinForm.Disp +{ + /// + /// A contains . + /// This class is usually used for debug due to its simplicity. + /// + public partial class RenderingForm : Form,IGetDispEngine + { + static readonly Form seedForm = new Form(); + private static readonly ConcurrentDictionary displayerMap + = new ConcurrentDictionary(4, 4); + /// + /// See to get the information. + /// + public static ConcurrentDictionary DisplayerMap { get => displayerMap; } + /// + /// Ctor. + /// + /// displayees + internal RenderingForm(params IDisplayee[] displayees) + { + InitializeComponent(); + Displayer = new RenderingCanvas(displayees); + this.Controls.Add(Displayer); + //Displayer.DispEngine.Start(); + } + /// + /// The contained . + /// + public RenderingCanvas Displayer { get; } + /// + /// Create and obtain a if the key has not existed; Otherwise, the old one is obtained. + /// are set to the obtained . + /// The dictionary of this function is . + /// + /// key + /// The displayees set to the obtained . + /// A obtained by the key. + public static RenderingForm Call(string key, params IDisplayee[] displayees) + { + if (displayerMap.TryGetValue(key, out RenderingForm f)) + { + f.Displayer.DispEngine.Displayee = new DispList(displayees); + return f; + } + else + { + _ = seedForm.Handle; + seedForm.Invoke(new Action(() => + { + RenderingForm ff = new RenderingForm(displayees) + { + Text = key, + Visible = true + }; + displayerMap.TryAdd(key, ff); + })); + + RenderingForm fff = null; + while (!displayerMap.TryGetValue(key, out fff)) + Thread.Sleep(1); + return fff; + } + } + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + Displayer.Dispose(); + components.Dispose(); + } + base.Dispose(disposing); + } + /// + public DispEngine GetDispEngine() + { + return Displayer.DispEngine; + } + } +} diff --git a/Disp/RenderingForm.resx b/Disp/RenderingForm.resx new file mode 100644 index 0000000..e3d1231 --- /dev/null +++ b/Disp/RenderingForm.resx @@ -0,0 +1,999 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAUAEBAAAAEAIABoBAAAVgAAABgYAAABACAAiAkAAL4EAAAgIAAAAQAgAKgQAABGDgAAMDAAAAEA + IACoJQAA7h4AAAAAAAABACAAPogAAJZEAAAoAAAAEAAAACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWIiQD///8AZ2dqJl5fYpZfX2OEaWpsGT89RwCdn5sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAsLCvAF9dYAB4dngRaWlqaV1eX9VXWFv+Vldc+1tbX8VkZGdVcnN1Cmdo + awDp6eYAAAAAAAAAAAD///8Ae3p7AIaGhgdzcnNMaWhqvmRjZftdXV//ZmZo/2FiZf9VVlr/WFhe9ltb + YKtmZWk6g4KFA3V1eAAAAAAA////AHx8fDBycXOibWxu82hnaf9tbG7/kI+R/7e2t/+/wMD/fHx+/1pb + X/9UVFr/WFhe6l1dYoxoZ2wgT05TAIuLiw13dni7cXBy/29ucP9sa23/dXV2/6mpqv/Hx8f/5eXl/8bG + xv+sra7/cHJz/1dXXP9WVlz/XVxilv///wCLi4sQeXl6yHV0dv90c3X/cG9x/21tbv9sa23/hYWG/76+ + vv/IyMj/4eHh/8XFxf91dXf/VVZa/1tbX6Pr4ekBj4+PEH5+fsh5eHn/dnV2/3V1dv98e33/b25w/2tq + bP9wb3H/jo6P/9nZ2f/R0dH/hYSG/1laW/9eX2Ci7ePnAZGRkRCBgILIfHx8/4yMjP+4uLn/rKus/3Ny + dP9xcHL/bm1v/3Jxc//Q0ND/0dHR/4WFhv9fXmD/Y2NkouLk3AGUlJQQhISFyH9/gP/BwcL/6+vr/7Oz + s/91dHb/dXR2/3Jxc/93dnj/xcXF/6OjpP9wb3H/ZWRl/2dmaKLg5NwBmJiYEImJiciDg4P/x8fI/+np + 6f/MzMz/mZmZ/3p5ev90dHX/dnV3/4CAgf9ubW//a2ps/2loav9sa2yi5uviAZiYmBCLi4vIh4eH/7i4 + uP/h4eH/4+Pj/+bm5v+1tbX/jYyN/3Z2d/90c3X/cXBy/3Bvcf9tbG7/b29wo+bq4gGbm5sNjIyMvomJ + if+MjIz/oqKi/83Nzf/r6+v/4ODg/+Hh4f+np6f/fHx8/3V1dv9zcnT/cG9x/3NzdJj///8A29vbAJGR + kTWMjIypioqK9YeHh/+QkJD/sLCw/9DQ0P/X19f/n5+f/35+fv96eXr/eHh57Xl4eZR9fH4kbGptAO7u + 7gCRkZEAmZmZCZCQkFSLi4vGi4uL/IiIiP+SkpL/jo6O/4CAgf+Af4H4gICBsoSEhECUlJMEjIyMAAAA + AAAAAAAAAAAAALW1tQB+fn4AlZWVFZCQkHOLi4vciYmJ/4iIiP2IiIjMiYmJXJCPkQyIh4gAz8/PAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKKiogDBwcEBkpKSL46OjqOOjo6OlJSUHnFxcQCqq6oAAAAAAAAA + AAAAAAAAAAAAAPw/AADwDwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIAB + AADAAwAA8A8AAPg/AAAoAAAAGAAAADAAAAABACAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqpq4AMzU0AHFvdBxlZ2iAZ2dpZ3t5fg1sa28A4N/gAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+/v7AGtt + bgCAgYELZ2lqWVtcX8hYWFz8WFhd9l1dYa5pa2s9lZWSBIKCgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHhogAmZeZBHNzdD5oaGmvXF1f91dZWv9XWFz/VlZc/1ZW + W/9aW17sZGRokW9xcyb///8AlpiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAo6OiAP// + /wB8e3wmbm1ukWZlZ+xjYmT/X15g/1tcXf9aW1z/V1hb/1ZWW/9WVlz/WFhe/1pbX9tkZGdxd3Z6FD4/ + RQDGxscAAAAAAAAAAAAAAAAAAAAAALq6uwBlZWYAhYSGFXZ2d3JubW7bZ2Zo/2VkZv9lZGb/YF9h/2xr + bf+Uk5X/k5SV/19hYv9WV1n/WFhd/1VVW/9XV137Xl1ixGhnbFKAgIUJbW1zAP///wAAAAAAjYyNAJOT + lAh9fX1Sc3J0xG5tb/xsa23/amlr/2hnaf9xcHL/l5eY/7u6u//Jycn/5ubm/7e2t/94eXr/W1xf/1RU + Wv9VVlv/VlZc/1dXXfRfXmSobGpvNq2rrgGKiY0AfHx9AIGBgkN1dHbxcG9x/29ucP9ubW//bGtt/2pp + a/9/foD/vr6+/83Nzf/Jycn/6enp/9nZ2f++vr7/qqur/3Fzdf9WV1n/VVZb/1VVW/9WVlz/XFxh0HRy + dxlzcncAe3t7AICAgU92dXf7c3J0/3Jxc/9xcHL/b25w/21sbv9tbG7/cHBx/46Nj/+4uLn/6enp/9jY + 2P/Dw8P/4uLi/9LS0v+SkpP/YWNl/1ZWW/9WVVz/WVlf325tch5vbnIAfn5+AIODg094eHn7dnV2/3V0 + dv90c3X/cXBy/29ucP9wb3H/bGtt/2loav93dnj/qaiq/8rKy//Dw8P/4ODg/+Hh4f/Kysr/jY2O/1hZ + W/9WV1r/Wlpe325tch5vbnMAgYGBAIaGhk97e3v7eHh5/3d2d/92dXb/c3J0/3Fwcv90c3X/b25w/21s + bv9sa23/amlr/3x7ff+gn6D/3d3d/+Dg4P/Kysv/lJOV/1tbXf9ZWlv/XF1e33Fwch5xcHMAhIOEAImJ + iU9+fn/7e3t7/3l5ef93dnf/e3t8/5uanP+UlJX/cG9x/29ucP9ubW//bWxu/2loav9wb3D/zs7O/+Hh + 4f/Kysr/lZSW/19eYP9dXV//X2Bh33Nzch5zc3MAhYSFAIqJik+Af4H7fn1+/319ff+ampr/ycnJ/9nZ + 2f+jo6P/cnFz/3Jxc/9ycXP/cG9x/21sbv9wb3D/zc3N/+Li4v/Ly8v/lZSW/2NiZP9hYGL/YmJj33R0 + dB51dXUAh4eHAIyMjE+CgYP7f36A/4eGh//d3d7/7u7u/9vb2/+ko6T/dXR2/3Rzdf91dHb/c3J0/29u + cP9ycXP/z8/P/9zc3P+npqf/dnV3/2ZlZ/9kY2X/ZWRm33Z2dh53d3cAioqKAI+Pj0+FhYX7goKC/4mJ + iv/i4eL/7Ozs/9vb2/+pqan/d3d3/3Z1d/93dnj/dHN1/3Jxc/91dXb/sLCw/5GQkv9tbW7/amlr/2hn + af9mZWf/aGhp33p6eh57e3sAjY2NAJKSkk+IiIj7hISE/4yMjP/i4uL/7Ozs/9ra2v/W1tb/sbGx/4KB + gv94eHj/d3Z3/3Rzdf90c3X/dnV2/25tb/9tbG7/bWxu/2tqbP9paGr/a2ts3319fR59fX0AjY2NAJKS + kk+JiYn7h4eH/42Njf/e3t7/7e3t/9nZ2f/m5ub/8fHx/8rKyv+ampr/fn1+/3Z1dv92dXf/dXR2/3Jx + c/9wb3H/cG9x/25tb/9sa23/bm1u339/fx5/f38AjY2NAJKSkk+Kior7iYmJ/4qKiv+goKD/ycnJ/9bW + 1v/m5ub/8vLy/+Hh4f/X19f/y8vL/5KSk/95eXr/eHd4/3V0dv90c3X/cnFz/3Bvcf9ubW//cG9w34GB + gR6BgYEAkJCQAJSUlEaLi4v0iYmJ/4mJif+IiIj/i4uL/6Kiov/U1NT/8fHx/+Hh4f/b29v/9PT0/+Dg + 4P+rq6v/gICA/3h3eP91dHb/dHN1/3Jxc/9wb3H/c3N004WFhRmFhYUAmpqaAJ+fnwqRkZFejIyMzoqK + iv2Kior/iYmJ/4eHh/+Tk5P/t7e3/9TU1P/c3Nz/8vLy/9HR0f+dnJ3/f39//3t7e/94eHn/dnV3/3Z1 + d/h5eHmyf36APqKjoQKUlJQAAAAAALOzswBubm4AmpqaG5CQkH2MjIzjiYmJ/4mJif+Li4v/h4eH/5SU + lP+3t7f/tra2/4qJiv9+fX//fn5+/318ff98fHz9fn5+zIODg1ySkpIMhISEAN7e3gAAAAAAAAAAAAAA + AAAAAAAAqqqqAMHBwQGWlpYvjo6OnoqKivGMjIz/iYmJ/4iIiP+JiYn/hoaG/4ODg/+CgYL/gYCB/4GA + guKFhYV8kZGRGlRUVAC7u7sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbm5sApaWlB5SU + lEqQkJC9i4uL+4mJif+Kior/iIiI/4aGhv+Hh4fxiYmJm4+Ojy3CwMMBp6anAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0dHRAIqKigCgoKARkZGRaouLi9WKior+ioqK+Y2N + jbqSkpJIpKSkBpqamgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACwsLAA////AJiYmCeRkZGTkpKSdZ6enhKLi4sA2NjYAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/8P/AP8A/wD8AH8A+AAfAOAABwCAAAEAgAABAIAAAQCAAAEAgAABAIAA + AQCAAAEAgAABAIAAAQCAAAEAgAABAIAAAQCAAAEAgAABAOAABwDwAB8A/AA/AP8A/wD/w/8AKAAAACAA + AABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAANXT1wBhY2MAfn+AFG5wcWpwcnNMlZOWBYaFhwAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBg4QAlpiZB21scEleXmK6WVtd+VpaXu1jYmeUcnN1KODm + 4gGbnZ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfn54AysnHAnh5eS9kZmefWlxd8lZXWf9XV1z/VlZc/1ZW + XP9bXF7daGlqdoSEgxc5OTwA0NDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6ubsAAAAAAIOChB1wb3GBZmZn41xcXv9ZWlv/V1la/1hZ + XP9WV1z/VlZc/1ZXWv9ZWl38Y2Nnx2xtb1ePkZELenx9AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADt7e0Ab29wAI2Njg52dXdhamlr0GNiZP1jYmT/X15g/11d + X/9aW1z/WVpb/1dYW/9XV13/VlZc/1ZWXP9ZWV//WFld9mFhZaxycnU6o6OpA4yMkQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjY2NAJ2dnAWAgIBEcXBxtmdmaPhkY2X/ZGNl/2Vk + Zv9hYGL/Xl5g/15dX/9zcnT/a2xu/1ZXWf9VV1n/Vldb/1lZX/9VVVv/VlZc/1paX+pmZmmMfXyAJP// + /wCvrq0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKioANfZ1wGEg4UrdnV3mW9ub+9qamv/aGdp/2Zl + Z/9mZWf/ZmVn/2FgYv9xcHL/lpaX/7++v//R0dL/jY6P/19fYf9WV1r/WVpe/1ZWW/9WVlz/VVVb/1hX + Xf9dXGHZZ2dsbYKChhNLS1MA2NjYAAAAAAAAAAAAtra2AHl4eQCQkJEYfX19eHNyc99tbG7/bWxu/2xr + bf9qaWv/aWhq/2hnaf90c3X/nJud/8XExf/Gxsb/yMjI/+7u7v/d3d3/r66v/3Z2eP9cXl//VVVa/1VW + W/9WVlv/VlZc/1VVW/9XV137X19kwG1scU6SkZUHh4WJAAAAAACsrKwA8fPvAn59fpdzcnT/cG9x/29u + cP9vbnD/bm1v/2xrbf9qaWv/a2ps/4yLjP/Pz8//2dnZ/8bGxv/Hx8f/7Ozs/+Dg4P/Q0ND/ubm5/6en + qP9yc3X/VVdZ/1VWWf9WVlz/VVVb/1ZWXP9WVVv/W1pg8W9tckplY2kAAAAAAKurqwDIyccDe3t8rXRz + df9zcnT/cXBy/3Fwcv9vbnD/bm1v/21sbv9sa23/bWxu/3h3eP+hoaL/vLy8/8nJyf/t7e3/4ODg/8/P + z/++vr7/4ODg/9fY2P+Vl5f/Y2Rl/1ZXWv9VVlr/VlZc/1ZWXP9XV139aGZrWVxbYAAAAAAAra2tAMrL + yQN+fX6tdnV2/3Rzdf9zcnT/dHN1/3Jxc/9wb3H/bm1v/25tb/9vbnD/amlr/2loav96eXv/qamp/+bm + 5v/h4eH/z8/P/76+vv/e3t7/6enp/9fX1/+xsbH/eHp6/1haXP9WVlz/VlZb/1hXXf1oZ2xZXVxhAAAA + AACurq4Ay8vKA39/gK13d3j/dnV3/3V0dv92dXf/dHN1/3Fwcv9vbnD/b25w/3Bvcf9sa23/a2ps/2pp + av9ubm//kI+R/8C/wP/Nzc3/v7+//97e3v/o6Oj/19fX/8jIyP+hoaL/XV1f/1hZW/9WWFr/WFhb/Whn + bFldXGEAAAAAAK6urgDJyckDgYGBrXp6ev94eHn/d3Z3/3Z2d/91dHb/c3J0/3Jxc/9wb3H/cnFz/25t + b/9tbG7/bGtt/2xrbf9oZ2n/b29w/5GRkv+vr6//3t7e/+jo6P/X19f/x8fH/6Kho/9gX2H/Wltc/1la + W/9ZWlz9aWlsWV9eYQAAAAAAsbGxAM3NzQOFhYWtfHx8/3p6ev95eXn/eXl5/3d2eP90c3X/dHN1/4aF + h/+DgoT/b25w/25tb/9tbG7/bm1v/2xrbf9paGr/aGdp/3V0df/Ozs7/6enp/9fX1//Hx8f/o6Kk/2Ni + ZP9dXF7/Wltd/1xdXv1tbW1ZYmJiAAAAAACxsbEAzM3LA4WEha1+fX7/fXx9/3t7e/96enr/d3d3/4SD + hP+rq6v/ycnK/5SUlP9xcHL/cXBy/29ucP9vbnD/bm1v/21sbv9sa23/a2ts/8bGxv/q6ur/19fX/8fH + x/+joqT/ZGNl/2BfYf9fX2H/X15g/W1tbVliYmIAAAAAALKysgDNzswDhoaHrX9+gP9+fn//fX19/4KC + gv+pqan/19fX/+Hh4f/U1NT/lZWV/3Jxc/9zcnT/cnFz/3NydP9xcHL/bm1v/21sbv9tbW7/x8fH/+rq + 6v/X19f/yMjJ/6OipP9nZmj/Y2Jk/2FgYv9hYGL9b29vWWVlZQAAAAAAs7OzAM3PzAOIiImtgYCC/39+ + gP99fH7/mpqa//Dw8P/v7+//4ODg/9PT0/+Wlpf/dHN1/3V0dv90c3X/dnV3/3NydP9wb3H/bm1v/29u + b//IyMj/6+vr/9XV1f+tra3/fXx+/2dmaP9lZGb/Y2Jk/2NiZP1wcHBZZmZmAAAAAAC0tLQAzs/OA4qJ + iq2DgoP/goGC/35+f/+dnZ7/8/Lz/+3t7f/g4OD/1NTU/5eXl/92dnb/d3Z4/3V0dv92dXf/dHN1/3Jx + c/9xcHL/cXFy/8jIyP/U09T/lpWX/29vcP9paGr/aGdp/2dmaP9mZGf/ZWRm/XJyclloaGgAAAAAALe3 + twDR0dEDjY2NrYWFhf+Dg4P/gICA/5+en//y8vP/7e3t/+Dg4P/U1NT/qqqq/319ff93dnf/d3Z3/3l4 + ef92dXb/c3J0/3Jxc/90dHX/l5aX/319fv9ramz/bGtt/2xrbf9qaWv/aGdp/2dmaP9oZ2n9dnZ2WWxs + bAAAAAAAt7e3ANDQ0AOOjo6th4eH/4aGhv+CgoL/oKCg//Pz8//t7e3/4ODg/9XV1f/l5eX/ycnJ/5CQ + kP95eXn/enp6/3h3eP92dXf/dHN1/3RzdP9zcnT/b25w/29ucP9tbG7/bm1v/2xrbf9ramz/amlr/2pp + av13d3dZbW1tAAAAAAC3t7cA0NDQA46Ojq2IiIj/iIiI/4WFhf+ioqL/9PT0/+3t7f/g4OD/1NTU/+zs + 7P/19fX/3d3d/62trf+Hh4f/eHh5/3d3eP92dXf/dXR2/3Z1d/9ycXP/cXBy/3Bvcf9wb3H/bm1v/21s + bv9ramz/bGts/Xl5eVlvb28AAAAAALe3twDPz88Dj4+PrYmJif+JiYn/iIiI/5KSkv/IyMj/5ubm/+Hh + 4f/U1NT/6+vr//Pz8//n5+f/2tra/8rKyv+srKz/gICA/3Z1d/93dnj/eHd5/3Rzdf9zcnT/cnFz/3Jx + c/9wb3H/bm1v/21sbv9tbG79e3t7WXFxcQAAAAAAt7e3AM/PzwOOjo6tiYmJ/4mJif+JiYn/iYmJ/4mJ + if+hoaH/xsbG/9LS0v/s7Oz/8/Pz/+fn5//a2tr/3Nzc//Pz8//Pz8//mJiY/3t7e/96enr/d3Z4/3Z1 + d/90c3X/cnFz/3Fwcv9wb3H/b25w/25ub/18fHxZcnJyAAAAAAC5ubkA6urqApGRkZ2Kior/iYmJ/4mJ + if+Kior/iYmJ/4eHh/+Li4v/pKSk/9zc3P/z8/P/6Ojo/9ra2v/b29v/9fX1/+/v7//d3d3/sLCw/4SE + hP95eXr/d3Z4/3V0dv90c3X/c3J0/3Fwcv9wb3H/cnJz9ICAgE14eHgAAAAAAMDAwACAgIAAnZ2dH5GR + kYqLi4voiYmJ/4qKiv+JiYn/iYmJ/4iIiP+IiIj/lpaW/7y8vP/d3d3/29vb/9vb2//29vb/7Ozs/8vL + zP+cnJz/gICA/3x8fP96eXr/d3Z4/3Z1d/91dHb/dXR2/Xh3ecyAf4FblJSUCo2NjQAAAAAAAAAAAAAA + AACoqKgAtra2A5mZmTePj4+pi4uL9ImJif+JiYn/iYmJ/4qKiv+Kior/h4eH/5mZmf+6urr/19fX/+bm + 5v+zsrP/iIeI/318fv9+fn7/fHx8/3x8fP97e3v/eXl5/3t7e+GCgoJ8kZCRGi4vLQDDwsQAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8Al5eXAKampgmWlpZSjo6OxYqKivyJiYn/ioqK/4yMjP+JiYn/hoaG/4mJ + if+fn5//mJiX/4KBgv+AgIH/gICB/4B/gP9+fX7/fXx9/35+fvCFhYWbj5CPLc/PzwGsrKwAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0dHRAHJycgCgoKAVk5OTc4yMjNyKior/jIyM/4mJ + if+Kior/iYmJ/4iIiP+Ghob/hYWF/4SEhP+CgYL/gYCC/4B/gfmFhIW6jY2NR6qqqgabm5sAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALe3twDx8fEBm5ubKJKS + kpOPj4/tioqK/4mJif+JiYn/ioqK/4iIiP+Ghob/hoaG/4WFhf6IiIjSjIyNY6GgoRCFhIYA7e3uAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACtra0Aurq6BJycnEKPj4+1ioqK+ImJif+Li4v/iYmJ/4iIiP+Kiornj4+PhpycnB8IBwkAvb28AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAADx8fEAkZGRAKenpw6UlJRejY2NzYuLi/2Li4vzkJCQpZqamja/v78Drq6uAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxcXFADMzMwCenp4glZWVgpeXl12qqqoKnZ2dAP// + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//D////AP///A + B///gAH//gAAf/gAAD/gAAAPwAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA4AA + AAOAAAADgAAAA4AAAAOAAAADgAAAA4AAAAPAAAAD4AAAD/gAAB/+AAB//wAB///AB///8A////w//ygA + AAAwAAAAYAAAAAEAIAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACUlpcAn6GiCYSGh0CLjY4iAAAAAMzOzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAArauvANvZ3gF/foEuaGlrnGBiY+1iY2TNc3J1X5iWmg50c3cA9PT0AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAANTV1gAAAAAAjY6QHG1scH1eXWHhVlZZ/1haW/9WVln/WVhd+GVkabR3d3lBq66uBY+R + kgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8AeHp7AJiamgx2eHlfY2Vmz1dZW/1VV1j/VVVZ/1lZXv9WVlz/VlVb/1ZW + W/9aXF7taGtrloSGhiv8+fcBr6+uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ6dngCvrq8FhoaGQm1ubrFcXl/3WFpb/1dZWv9XWVr/Vlda/1lZ + X/9WVlz/VlZc/1ZWXP9VV1n/V1la/2FiYt53d3d1lJOVFycmJwDn5+gAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8u7wA/Pr8AYuKjCtycXOXaGdp7mJhY/9dXF7/W1td/1la + W/9YWlv/V1ha/1pbXv9XV1v/VlZc/1ZWXP9WVlv/V1hc/1dXXP9fX2P8Y2Rnx3Z5eVimqKgMhYiIAP// + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NXUAF1cXQCWlpUYe3p8eWtqbN5iYWP/ZGNl/2Jh + Y/9eXV//Xl1f/1xdXv9ZW1z/V1la/1tdXf9XWFv/VlZc/1dXXf9XV13/VlZc/1VVW/9bW2H/VVVa/1pb + XvZnaGuufn5+O8XEwgSlpaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wCLiosApaSlC4B/gVdvb3DHZmVn/GNi + ZP9iYWP/ZWRm/2RjZf9fXmD/X15g/11eX/9dXV//W1td/1xcXv9ZWlz/WVpe/1dYXP9UVVn/VVZa/1ZW + W/9bW2H/VVVb/1VVW/9VVVr/XV1g6m1tcY6EhIcj////ALy8uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApqamALm5uQSKi4o8enp6rWtq + bPZmZWf/ZWRm/2RjZf9jYmT/ZmVn/2VkZv9hYGL/YWBi/2BfYf9dXF7/YmFj/4SDhf92dnj/V1la/1ZY + Wf9WWFn/VlhZ/1ZWWv9bW2H/VVVb/1ZWXP9WVlz/VVVb/1ZWXP5iYWTWd3Z5b5iWmhVRT1cA9fXxAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL28vgD///8Ak5KUJn18 + fZBwcHDqbGxs/2lpav9paGr/Z2Zo/2VkZv9kY2X/aGdp/2ZlZ/9iYWP/YF9h/2NiY/98e33/oaCh/8jH + yf/d3d7/nJ6e/2VnZ/9WWFn/V1ha/1dXW/9bXGH/VlZb/1ZWXP9WVlz/VlZc/1ZWXP9XVlz/W1pf+2Rk + aMJ3d3tPoaGnCIqKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADe394AZWVlAJ2d + nRSCgYNudHN12G1sbv9sa23/bWxu/2ppa/9qaWv/amlr/2hnaf9mZWf/aWhq/2ZlZ/9jYmT/eHd5/6am + pv/Dw8P/vb29/8rKy//y8vL/5+fn/8HBwf+Eg4X/Xl5f/1dYWf9cXl//Vlda/1ZWXP9WVlz/VlZc/1ZW + XP9WVlz/VlZc/1RUWv9aWl/zaGhtpIKBhDXGxccCpKSmAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ODgAKGg + oQCtra0JjIuMUnp6esFxcHL7bm1v/21sbv9tbG7/bm1v/2xrbf9ramz/amlr/2ppa/9paGr/a2ps/3d2 + eP+joqT/z8/Q/9XV1v/Kysr/vLy8/8rKyv/x8fD/5+fn/97e3v/Ozc//paSm/3Fyc/9eYGH/Vlda/1dX + XP9VVVv/VVZb/1ZWXP9WVlz/VlZc/1VVW/9WVlz/VlZc/15dYeZta3CEjIuOIAAAAADHxsoAAAAAAAAA + AAAAAAAAvb29AFZVVgCIiIhud3Z49nFwcf9wb3H/b25w/25tb/9ubW//b25w/21sbv9sa23/amlr/2lo + av9qaWv/cXBy/6uqrP/k5OX/4uLi/9XU1f/Jycn/vLy8/8rKyv/w8PD/5+fn/9zc3f/S0tL/x8fH/7S0 + tP+goKD/cXJz/1ZXWf9VV1n/VVdZ/1ZXWf9WVlv/VlZc/1VVW/9WVlz/VlZc/1VVW/9XV13/aGdsv5CP + kxWOjZEAAAAAAAAAAAAAAAAAtbW1ACcnKACCgoKOc3N0/3NydP9ycXP/cG9x/29ucP9wb3H/cG9x/21s + bv9sa23/bGtt/21sbv9sa23/bWxu/3Jxcv+SkpL/xMTE/9TU1P/Kysr/vLy8/8rKyv/x8fH/5+fn/93d + 3f/S0tL/x8fG/7q6uv/Y2Nj/2tvb/5aYmf9iZGX/VVdY/1ZYWf9WV1z/VlZc/1VVW/9VVVv/VVVb/1dX + Xf9VVVv/Xl1i3oSChh6FhIgAAAAAAAAAAAAAAAAAtLS0ACwrLQCDg4ONdHR1/3Rzdf90c3X/cnFz/3Fw + cv9xcHL/cXBy/25tb/9vbnD/b25w/21sbv9ramz/bm1v/21sbf9nZmj/cnFy/5iYmf+7u7z/vb2+/8vL + y//w8PD/5+fn/93d3f/S0tL/xsbG/7m5uf/X19f/8fHx/+Pk5P+8vb3/gICB/1xcXf9WV1r/V1hb/1VV + Wv9WVlz/VlZc/1ZWXP9VVVv/Xl1i3oSDhx6FhIgAAAAAAAAAAAAAAAAAtra2AC0sLgCEhIWNdnV3/3V0 + dv90c3X/c3J0/3NydP9zcnT/c3J0/3Jxc/9wb3H/bm1v/21sbv9tbG7/b25w/29ucP9ramz/aWhr/2hn + af93dnj/l5eY/8XFxf/y8vL/6Ojo/93d3f/S0tL/xsbG/7m5uf/X19f/8PDw/+Xl5f/b29v/y8vL/6Cg + oP9ub3D/Wlxd/1dYW/9WVlz/VVVb/1ZWXP9WVVv/Xl1i3oSDhh6FhIgAAAAAAAAAAAAAAAAAt7e3ADAv + MQCGhoaNeHd4/3d2d/91dHb/dHN1/3Rzdf91dHb/d3Z4/3Jxc/9wb3H/b25w/25tb/9tbG7/cG9x/29u + cP9sa23/a2ps/2ppa/9oZ2n/aWlq/4eHh//ExMT/4+Lj/97e3v/S0tL/xsbG/7m5uf/X19f/8PDw/+Xl + 5f/a2tr/z8/P/8TExP+trq7/bW5w/1dYW/9WV1v/VlZb/1ZWW/9WVlr/Xl1i3oSChx6FhIgAAAAAAAAA + AAAAAAAAuLi4ADIyMgCHh4eNeXl5/3d3d/93dnf/d3V4/3Z1d/91dHb/dXR2/3NydP9zcnT/cXBy/29u + cP9ubW//cXBy/3Bvcf9sa23/bGtt/2xrbf9sa23/amlr/2ppa/9tbG7/kpGT/8LBw//R0dH/x8fH/7m5 + uf/X19f/8PDw/+Xl5f/a2tr/z8/P/8PDw/+1tLb/cnFz/1lZW/9ZW1z/V1la/1ZYWf9VV1j/Xl1i3oSC + hx6FhIgAAAAAAAAAAAAAAAAAt7e3ADU1NQCHh4eNenp6/3p6ef95eHn/eHd4/3Z1d/92dXf/dnV3/3Rz + df9zcnT/c3J0/3Jxc/9wb3H/cnFz/3Fwcv9ubW//bm1v/21sbv9sa23/a2ps/21sbv9paGr/ZmVn/3Fw + cv+Yl5j/ubm5/7q6uv/Y2Nj/8PDw/+Tk5P/a2tr/z8/P/8PDxP+1tLb/dHN1/1paXP9aW1z/WVtc/1lb + XP9WWFn/X15i3oSDhx6FhIgAAAAAAAAAAAAAAAAAubm5ADk5OQCKioqNfHx8/3t7e/95eXn/eHh4/3d3 + d/93d3f/eHh4/3V0dv90c3X/dHN1/3NydP9ycXP/dXR2/3Rzdf9wb3H/bm1v/21sbv9tbG7/bGtt/25t + b/9ramz/amlr/2hnaf9nZmj/dnV2/5aWlv/T09P/8PDw/+Xl5f/a2tr/z8/P/8TDxP+1tLb/dXR2/11c + Xv9dXF7/Wlpc/1lbXP9ZWlv/YWJi3oaGhh6Hh4cAAAAAAAAAAAAAAAAAu7u7ADw8PACMjIyNfn5+/3x8 + fP96enr/enp6/3l5ef95eXn/eXl5/3Z1d/92dXf/dHN1/3NydP+BgIL/n56f/318fv9wb3H/b25w/25t + b/9tbG7/bWxu/3Bvcf9tbG7/a2ps/2ppa/9paGr/aGdp/2lpav+7u7v/8fHx/+Xl5f/a2tr/z8/P/8TD + xP+1tLb/dnV3/15dX/9eXV//XFxe/1pcXf9aXF3/ZGRk3oeHhx6IiIgAAAAAAAAAAAAAAAAAurq6ADk4 + OQCLi4uNfn5//359f/99fX3/e3t7/3p6ev96enr/enp6/3d3d/91dXX/fn1+/6Kiov/Ix8j/xcTF/35+ + f/9ycXP/cnFz/3Bvcf9vbnD/bm1v/3Bvcf9ubW//bGtt/2xrbf9sa23/bGtt/2hoaP+2trb/8fHx/+Xl + 5f/a2tr/z8/P/8PDw/+1tLb/d3Z4/19eYP9gX2H/X19h/19fYf9dXV7/Y2Nj3oWGhR6Hh4cAAAAAAAAA + AAAAAAAAurq6ADw7PACMjIyNf36A/359f/9+fX7/fX19/3x8fP97e3v/enp6/3x8fP+cnJz/y8vL/93d + 3f/X19f/xMTE/39/f/9ycXP/cnFz/3Jxc/9xcHL/b25w/3Fwcv9ubW//bm1v/29ucP9tbG7/a2ps/2lo + af+3t7f/8fHx/+Xl5f/a2tr/z8/P/8TExP+1tbb/eHd5/2FgYv9jYmT/YmFj/2BfYf9eXV//ZWVl3oiI + iB6JiYkAAAAAAAAAAAAAAAAAu7u7AD09PwCNjY6NgH+B/39+gP9+fn//fn1+/359fv99fX3/lpaW/8nJ + yf/p6en/6Ojo/97e3v/W1tb/xcXF/4GBgf90c3X/c3J0/3NydP9ycXP/cnFz/3V0dv9ycXP/b25w/21s + bv9tbG7/bGtt/2pqa/+3uLf/8fHx/+Xl5f/a2tr/z8/P/8TExf+2tbb/enh7/2RjZf9jYmT/YmFj/2Fg + Yv9gX2H/Z2Zn3oiJiB6KiooAAAAAAAAAAAAAAAAAvLy8AD8/QACOjo+NgYGC/4B/gf9/foD/fn1//35+ + f/+CgoL/1dXV//n5+f/w8PD/5+fn/97e3v/W1tb/xcXF/4KCgv91dHb/dXR2/3Rzdf90c3X/c3J0/3h3 + ef90c3X/cG9x/25tb/9ubW//bWxu/2xrbP+4uLj/8fHx/+Tk5P/a2tr/0NDQ/7i3uP+OjY7/bWxu/2Zl + Z/9kY2X/Y2Jk/2NiZP9hYWL/Z2dn3omJiR6KiooAAAAAAAAAAAAAAAAAvLy8AEE/QQCPj4+NgoGD/4GA + gv+BgIL/gYCB/39/gP+CgoL/2tra//j4+P/v7+//5+fn/97e3v/W1tb/xcXF/4ODg/92dXf/dnV3/3V1 + dv91dHb/c3J0/3d2eP9zcnT/cnFz/3Jxc/9wb3H/bm1v/2xsbP+5ubn/8fHy/+bm5v/S0tP/paWm/3h4 + eP9oaGn/aWhq/2dmaP9nZmj/ZWRm/2RjZf9iYWP/aWhp3oqLih6MjIwAAAAAAAAAAAAAAAAAvb29AEJC + QgCQkJCNhIOE/4ODhP+DgoP/gYGB/4CAgP+Eg4X/29rb//j4+P/u7u7/5ubm/97e3v/X19f/xcXF/4SE + hP94eHj/eHh4/3d2eP92dXf/dHN1/3h3ef90c3X/cnFz/3Jxc/9zcnT/cXBy/25tbv+6urr/7u7u/8HA + wf+IiIn/bGtt/2loav9ramz/amlr/2dmaP9nZmj/Z2Zo/2ZlZ/9kY2X/ampq3ouMix6NjY0AAAAAAAAA + AAAAAAAAv7+/AEhISACTk5ONhoaG/4WFhf+Dg4P/goKC/4GBgf+FhIb/29rc//j4+P/u7u7/5ubm/97e + 3v/W1tb/x8fH/4mJif94eHj/eHh5/3h3ef93dnj/dnV3/3p5e/91dHb/dHN1/3NydP9ycXP/cnFz/3Jy + c/+mpqb/oKCh/3Jxc/9ramz/bGtt/2tqbP9sa23/a2ps/2loav9paGr/Z2Zo/2dmaP9mZWf/bW1t3o6O + jh6QkJAAAAAAAAAAAAAAAAAAwMDAAElJSQCVlZWNh4eH/4aGhv+FhYX/hISE/4KCgv+GhYb/29vc//j4 + +P/u7u7/5+fn/97e3v/W1tb/09PT/8/Pz/+ZmZn/enp6/3d3eP94d3j/d3d3/3t7e/93dnf/dXR2/3Rz + df9zcnT/c3J0/3NydP95eHn/cG9w/25tb/9ubW//bWxu/21sbv9tbG7/bWxu/2tqbP9qaWv/aWhq/2hn + af9nZmj/bm5v3pCQkB6RkZEAAAAAAAAAAAAAAAAAv7+/AElJSQCUlJSNiIiI/4eHh/+Ghob/hYWF/4SE + hP+IiIj/3Nzc//j4+P/u7u7/5+fn/97e3v/V1dX/1dXV//f39//s7Oz/vLy8/4uLi/94eHj/eHh4/319 + ff94eHj/dnV3/3Z1d/91dHb/dHN1/3NydP92dXf/cXBy/3Fwcv9wb3H/bm1v/21sbv9ubW//bm1v/2xr + bf9ramz/a2ps/2ppa/9oZ2n/b25v3o+Pjx6RkZEAAAAAAAAAAAAAAAAAv7+/AElJSQCUlJSNiIiI/4iI + iP+Hh4f/h4eH/4aGhv+JiYn/3Nzc//j4+P/u7u7/5+fn/97e3v/V1dX/1dXV//X19f/19fX/7u7u/9bW + 1v+np6f/gYGB/3x8fP95eHn/eHh5/3h3eP92dXf/dXR2/3Rzdf94d3n/cnFz/3Fwcv9wb3H/cXBy/29u + cP9vbnD/b25w/21sbv9tbG7/bGtt/2tqbP9qaWv/cHBw3pGRkR6SkpIAAAAAAAAAAAAAAAAAv7+/AElJ + SQCUlJSNiYmJ/4mJif+JiYn/iIiI/4aGhv+Kior/1dXV//j4+P/v7+//5+fn/97e3v/V1dX/1dXV//X1 + 9f/19fX/7e3t/+Xl5f/b29v/wMDA/5ycnP+AgID/eHh4/3d3eP93dnj/dnV3/3Z0d/96eXv/dHN1/3Ny + dP9ycXP/cXBy/3Bvcf9ycXP/cnFz/29ucP9tbG7/bWxu/2xrbf9ramz/cXFx3pKSkh6Tk5MAAAAAAAAA + AAAAAAAAv7+/AElJSQCUlJSNiYmJ/4mJif+JiYn/iYmJ/4mJif+JiYn/mZmZ/8TExP/m5ub/6Ojo/97e + 3v/V1dX/1dXV//X19f/19fX/7e3t/+Xl5f/c3Nz/1dXV/9nZ2f/Ozs7/lpaW/3p6ev93dnj/d3d4/3d2 + eP97env/dXR2/3V0dv9zcnT/c3J0/3NydP9zcnT/cXBy/3Bvcf9ubW//bWxu/21sbv9sa23/c3Jz3pOT + kx6UlJQAAAAAAAAAAAAAAAAAv7+/AElJSQCUlJSNiYmJ/4mJif+JiYn/ioqK/4mJif+JiYn/iIiI/4eH + h/+fn5//yMjI/9vb2//W1tb/1dXV//X19f/19fX/7e3t/+Xl5f/c3Nz/09PT/93d3f/5+fn/6Ojo/7i4 + uP+IiIj/eHh4/3h4eP98fHz/dnZ3/3Z1d/92dXf/dnV3/3Rzdf9ycXP/cXBy/3Bvcf9wb3H/b25w/25t + b/9sbG3/dHN03pOTkx6UlJQAAAAAAAAAAAAAAAAAv7+/AEZGRgCUlJSOiYmJ/4qKiv+JiYn/iIiI/4mJ + if+JiYn/ioqK/4iIiP+Ghob/i4uL/6Wlpf/ExMT/1dXV//b29v/19fX/7e3t/+Xl5f/d3d3/09PT/9zc + 3P/4+Pj/8/Pz/+zs7P/T09P/o6Oj/4CAgP99fX3/eXh5/3l5ev93d3j/dXR2/3V0dv90c3X/c3J0/3Jx + c/9wb3H/cG9x/3Bvcf9ubW//dHR03pOTkx6UlJQAAAAAAAAAAAAAAAAAw8PDAGlpaQCampp4jIyM+4mJ + if+JiYn/iYmJ/4mJif+JiYn/ioqK/4mJif+JiYn/h4eH/4WFhf+NjY3/r6+v/+np6f/19fX/7u7u/+Xl + 5f/d3d3/09PT/9zc3P/4+Pj/8vLy/+vr6//k5OT/2tra/7q6uv+MjIz/fHx8/3h4ef93d3j/dnZ3/3Z1 + d/91dHb/dHN1/3NydP9ycXP/cXBy/3Bvcf9wb3H/enp6yJubmxeampoAAAAAAAAAAAAAAAAAysrKAJ6e + ngCrq6sQmZmZaY6OjtWJiYn+iYmJ/4mJif+JiYn/i4uL/4mJif+JiYn/iIiI/4iIiP+IiIj/ioqK/5yc + nP/Hx8f/5ubm/+bm5v/d3d3/09PT/9zc3P/4+Pj/8vLy/+zs7P/i4uL/xsbG/5ubm/+CgoL/fX19/3x8 + fP95eXn/d3Z4/3d1eP91dHb/dXR2/3V0dv90c3X/c3J0/3Z1d/B/foCaj4+QK////wG2trYAAAAAAAAA + AAAAAAAAAAAAAAAAAADPz88A////AKWlpSKUlJSGjY2N54mJif+JiYn/i4uL/4mJif+JiYn/ioqK/4mJ + if+IiIj/i4uL/4iIiP+Hh4f/oqKi/8rKyv/b29v/1NTU/9zc3P/4+Pj/8/Pz/93d3f+trK3/hoWG/3x8 + fP9+fn7/e3t7/3x8fP99fX3/enp7/3d3eP93d3j/d3Z3/3V1dv94d3j5f3+AuI6Nj0e1tLYGoqGjAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALm5uQDMzMwDoqKiOJOTk6iLi4vzioqK/4mJ + if+Kior/iYmJ/4iIiP+JiYn/jIyM/4uLi/+Hh4f/hYWF/4uLi/+np6f/xcXF/93d3f/v7+//w8PD/5KR + kv9/fn//fn1//35+f/+AgID/fX19/3x8fP98fHz/fX19/319fP95eXn/eXl5/n9/f9GNjY1mpqalD4mJ + iQDt7ewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AoaGhALOz + swmamppQk5OTw4qKivyIiIj/iYmJ/4mJif+JiYn/jY2N/4yMjP+JiYn/iIiI/4eHh/+EhIT/j4+P/7Cw + sP+jo6P/hISE/4CAgP+BgIH/gICB/39/gP+AgIH/fn1+/359fv99fX3/e3t7/3t7e/+Dg4Pli4uLg5+f + nx8AAAAA2NjYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAOjo6ACAgIAArKysFpeXl3KOjo7aiYmJ/4mJif+JiYn/jY2N/4yMjP+JiYn/iIiI/4iI + iP+Kior/iYmJ/4mJif+Ghob/hoaG/4SEhP+CgoL/gYGB/4CAgf+BgIL/fn1//359f/99fX7/gICA8oiI + iKOampo11tbWArm5uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwsLCAP///wClpaUolJSUk4yMjOyJiYn/jIyM/4uL + i/+IiIj/ioqK/4uLi/+Kior/iIiI/4qKiv+Hh4f/hYWF/4aGhv+FhYX/goKC/4GBgv+DgoT/gH+B/4GA + gvuIiInBlZWVT6+vrwifn58A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACysrIAw8PDBZ+f + n0CSkpKwjo6O94yMjP+Li4v/ioqK/4mJif+JiYn/iYmJ/4uLi/+IiIj/hoaG/4aGhv+Ghob/hoaG/4SE + hP+FhYX+h4eH1pGRkWusq60UbGxsAOjo6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + + + \ No newline at end of file diff --git a/Hi.WinForm.csproj b/Hi.WinForm.csproj new file mode 100644 index 0000000..a21a9b6 --- /dev/null +++ b/Hi.WinForm.csproj @@ -0,0 +1,52 @@ + + + WinExe + net9.0-windows + true + Hi.WinForm + $(AssemblyName) + x64 + WinForm Display module of HiAPI + 4 + 1.2.$(VersionBuild) + HiAPI + win-x64 + true + Debug;Release + ..\acc\techcoordinate.ico + Hi.WinForm.Program + + + + DEBUG;TRACE + + + true + true + true + true + + + + + + + + + + + + + + True + True + Resources.resx + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/HiDisp.WinForm.xml b/HiDisp.WinForm.xml new file mode 100644 index 0000000..699c3af --- /dev/null +++ b/HiDisp.WinForm.xml @@ -0,0 +1,223 @@ + + + + HiDisp.WinForm + + + + + A Console Area shows the redirected output text from the output of . + + + + + Ctor. + + + + + . + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + A Form mainly contains . + + + + + Ctor. + + + + + Required designer variable. + + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + The object redirects the output of to the specific . + + + + + Ctor. + + target text box + + + + + + + + + + Target text box. + + + + + + + + Form utility. + + + + + Seed form exists in background. + + + + + Create and show a form contains the . + + the control fills in the created form + The created form + + + + The main entry point for the application. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + + + + + A contains . + This class is usually used for debug due to its simplicity. + + + + + See to get the information. + + + + + Ctor. + + displayees + + + + The contained . + + + + + Create and obtain a if the key has not existed; Otherwise, the old one is obtained. + are set to the obtained . + The dictionary of this function is . + + key + The displayees set to the obtained . + A obtained by the key. + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + + Window Form Displayer. + + + + + . + + + + + Ctor. + + displayees + + + + Clean up any resources being used. + + true if managed resources should be disposed; otherwise, false. + + + + + + + Required designer variable. + + + + + Required method for Designer support - do not modify + the contents of this method with the code editor. + + + + diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..70bb274 --- /dev/null +++ b/Program.cs @@ -0,0 +1,32 @@ +using Hi.Disp; +using Hi.Disp.Flag; +using Hi.Geom; +using Hi.WinForm.Disp; +using System; +using System.Windows.Forms; + +namespace Hi.WinForm +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + DispEngine.Init(); + Application.ApplicationExit += Application_ApplicationExit; + + RenderingCanvas displayer = new RenderingCanvas(new CoordinateDrawing(),new Stl(Box3d.CenterUnitBox).ToFaceDrawing()); + Form form = new Form(); + form.Controls.Add(displayer); + Application.Run(form); + } + + private static void Application_ApplicationExit(object sender, EventArgs e) + { + DispEngine.FinishDisp(); + } + } +} diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..0a7b7d0 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Hi.WinForm.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Hi.WinForm.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). + /// + internal static System.Drawing.Icon TechCoordinate { + get { + object obj = ResourceManager.GetObject("TechCoordinate", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..90cf389 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\techcoordinate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json new file mode 100644 index 0000000..7fd5f3b --- /dev/null +++ b/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "HiDisp.WinForm": { + "commandName": "Project", + "nativeDebugging": true + } + } +} \ No newline at end of file diff --git a/Resources/TechCoordinate.PNG b/Resources/TechCoordinate.PNG new file mode 100644 index 0000000..43b186f Binary files /dev/null and b/Resources/TechCoordinate.PNG differ diff --git a/Resources/techcoordinate.ico b/Resources/techcoordinate.ico new file mode 100644 index 0000000..1aa69ce Binary files /dev/null and b/Resources/techcoordinate.ico differ