Commit ca552351 by 陶然

增加图片裁剪功能

parent 6aa54289
using System.Drawing;
using System.Windows.Forms;
namespace Kivii.Sample.ImageUploader.Controls
{
public class ImageResizer : Control
{
public string fileName;
public ImageResizer()
{
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
//this.BackColor = Color.Empty;
this.BackColor = Color.Transparent;
//this.BackColor = Color.FromArgb(50, Color.Red);
//以下是设置双缓冲的代码 要不然在下面onPaint里的绘制半透明背景会让你很伤心,或者上面那句设置半透明背景用了过后拖动时也会让你跟蜗牛一样。
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
this.SetStyle(ControlStyles.DoubleBuffer, true);
}
public Size border;
private System.Drawing.Point m_MousePoint;
private Size m_Size;
private System.Drawing.Point m_LastPoint;
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
this.m_LastPoint = this.Location;
this.m_MousePoint = this.PointToScreen(e.Location);
this.m_Size = this.Size;
//this.BackColor = Color.Empty;
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (arow != arrowType.none)
{
ReResize(e);
return;
}
if (e.Y <= recArrow[4].Bottom && e.Y >= recArrow[4].Top && e.X >= recArrow[4].Left && e.X <= recArrow[4].Right)//左上
Cursor = Cursors.SizeNWSE;
else if (e.Y <= recArrow[5].Bottom && e.Y >= recArrow[5].Top && e.X >= recArrow[5].Left && e.X <= recArrow[5].Right)//左下
Cursor = Cursors.SizeNESW;
else if (e.Y <= recArrow[6].Bottom && e.Y >= recArrow[6].Top && e.X >= recArrow[6].Left && e.X <= recArrow[6].Right)//右上
Cursor = Cursors.SizeNESW;
else if (e.Y <= recArrow[7].Bottom && e.Y >= recArrow[7].Top && e.X >= recArrow[7].Left && e.X <= recArrow[7].Right)//右下
Cursor = Cursors.SizeNWSE;
else if (e.Y <= recArrow[0].Bottom && e.Y >= recArrow[0].Top)//上
Cursor = Cursors.SizeNS;
else if (e.Y <= recArrow[1].Bottom && e.Y >= recArrow[1].Top)//下
Cursor = Cursors.SizeNS;
else if (e.X >= recArrow[2].Left && e.X <= recArrow[2].Right)//左
Cursor = Cursors.SizeWE;
else if (e.X >= recArrow[3].Left && e.X <= recArrow[3].Right)//右
Cursor = Cursors.SizeWE;
else
Cursor = Cursors.SizeAll;
if (e.Button == MouseButtons.Left)
{
System.Drawing.Point t = this.PointToScreen(e.Location);
System.Drawing.Point l = this.m_LastPoint;
if (e.Y <= recArrow[4].Bottom && e.Y >= recArrow[4].Top && e.X >= recArrow[4].Left && e.X <= recArrow[4].Right)//左上
arow = arrowType.leftUp;
else if (e.Y <= recArrow[5].Bottom && e.Y >= recArrow[5].Top && e.X >= recArrow[5].Left && e.X <= recArrow[5].Right)//左下
arow = arrowType.leftDown;
else if (e.Y <= recArrow[6].Bottom && e.Y >= recArrow[6].Top && e.X >= recArrow[6].Left && e.X <= recArrow[6].Right)//右上
arow = arrowType.rightUp;
else if (e.Y <= recArrow[7].Bottom && e.Y >= recArrow[7].Top && e.X >= recArrow[7].Left && e.X <= recArrow[7].Right)//右下
arow = arrowType.rightDown;
else if (e.Y <= recArrow[0].Bottom && e.Y >= recArrow[0].Top)//上
arow = arrowType.up;
else if (e.Y <= recArrow[1].Bottom && e.Y >= recArrow[1].Top)//下
arow = arrowType.down;
else if (e.X >= recArrow[2].Left && e.X <= recArrow[2].Right)//左
arow = arrowType.left;
else if (e.X >= recArrow[3].Left && e.X <= recArrow[3].Right)//右
arow = arrowType.right;
else
arow = arrowType.none;
l.Offset(t.X - this.m_MousePoint.X, t.Y - this.m_MousePoint.Y);
if (arow != arrowType.none)
ReResize(e);
else
{
this.Location = l;
Refresh();//这句很重要立即重绘 不然拖动到时候会出现卡卡 的现象 ,找了半天原因
}
}
}
public void ReResize(MouseEventArgs e)
{
System.Drawing.Point t = this.PointToScreen(e.Location);
System.Drawing.Point l = this.m_LastPoint;
l.Offset(t.X - this.m_MousePoint.X, t.Y - this.m_MousePoint.Y);
switch (arow)
{
case arrowType.up:
{
this.Height = m_Size.Height - (t.Y - this.m_MousePoint.Y);
this.Location = new System.Drawing.Point(m_LastPoint.X, l.Y);
break;
}
case arrowType.down:
{
this.Height = m_Size.Height + (t.Y - this.m_MousePoint.Y);
break;
}
case arrowType.left:
{
this.Width = m_Size.Width - (t.X - this.m_MousePoint.X);
this.Location = new System.Drawing.Point(l.X, m_LastPoint.Y);
break;
}
case arrowType.right:
{
this.Width = m_Size.Width + (t.X - this.m_MousePoint.X);
break;
}
case arrowType.leftUp:
{
this.Width = m_Size.Width - (t.X - this.m_MousePoint.X);
this.Height = m_Size.Height - (t.Y - this.m_MousePoint.Y);
this.Location = new System.Drawing.Point(l.X, l.Y);
break;
}
case arrowType.leftDown:
{
this.Width = m_Size.Width - (t.X - this.m_MousePoint.X);
this.Height = m_Size.Height + (t.Y - this.m_MousePoint.Y);
this.Location = new System.Drawing.Point(l.X, m_LastPoint.Y);
break;
}
case arrowType.rightUp:
{
this.Width = m_Size.Width + (t.X - this.m_MousePoint.X);
this.Height = m_Size.Height - (t.Y - this.m_MousePoint.Y);
this.Location = new System.Drawing.Point(m_LastPoint.X, l.Y);
break;
}
case arrowType.rightDown:
{
this.Width = m_Size.Width + (t.X - this.m_MousePoint.X);
this.Height = m_Size.Height + (t.Y - this.m_MousePoint.Y);
break;
}
}
this.Refresh();
}
public enum arrowType
{
up, down, left, right, leftUp, leftDown, rightUp, rightDown, none
}
public arrowType arow = arrowType.none;
Rectangle[] recArrow = new Rectangle[8];//8个手柄
public Rectangle area;//选择区域
public readonly int blank = 8;//边距
protected override void OnPaint(PaintEventArgs e)
{
int side = 6;//手柄矩形的边长
recArrow[0] = new Rectangle(new System.Drawing.Point(this.Width / 2 - side / 2, blank - side / 2), new Size(side, side));
recArrow[1] = new Rectangle(new System.Drawing.Point(this.Width / 2 - side / 2, this.Height - blank - side / 2), new Size(side, side));
recArrow[2] = new Rectangle(new System.Drawing.Point(blank - side / 2, this.Height / 2 - side / 2), new Size(side, side));
recArrow[3] = new Rectangle(new System.Drawing.Point(this.Width - blank - side / 2, this.Height / 2 - side / 2), new Size(side, side));
recArrow[4] = new Rectangle(new System.Drawing.Point(blank - side / 2, blank - side / 2), new Size(side, side));
recArrow[5] = new Rectangle(new System.Drawing.Point(blank - side / 2, this.Height - blank - side / 2), new Size(side, side));
recArrow[6] = new Rectangle(new System.Drawing.Point(this.Width - blank - side / 2, blank - side / 2), new Size(side, side));
recArrow[7] = new Rectangle(new System.Drawing.Point(this.Width - blank - side / 2, this.Height - blank - side / 2), new Size(side, side));
foreach (Rectangle item in recArrow)
e.Graphics.DrawRectangle(Pens.Red, item);
area = new Rectangle(new System.Drawing.Point(8, 8), new Size(this.Width - 8 * 2, this.Height - 8 * 2));
////加上半透明效果看倒是好看了 重绘的时候卡的凶 ,期待有解决方法
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
System.Drawing.Color cor = System.Drawing.Color.FromArgb(50, Color.Red);
System.Drawing.SolidBrush bsh = new System.Drawing.SolidBrush(cor);
e.Graphics.FillRectangle(bsh, area);
e.Graphics.DrawRectangle(Pens.Red, area);
}
protected override void OnMouseUp(MouseEventArgs e)
{
arow = arrowType.none;
//this.BackColor = Color.FromArgb(0, Color.Red);
}
}
}
namespace Kivii.Sample.ImageUploader
{
partial class FrmImageEditor
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmImageEditor));
this.timeImageEditor = new System.Windows.Forms.Timer(this.components);
this.plControl = new System.Windows.Forms.Panel();
this.btnSave = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.imgResizer = new Kivii.Sample.ImageUploader.Controls.ImageResizer();
this.plControl.SuspendLayout();
this.SuspendLayout();
//
// timeImageEditor
//
this.timeImageEditor.Interval = 500;
this.timeImageEditor.Tick += new System.EventHandler(this.timeImageEditor_Tick);
//
// plControl
//
this.plControl.Controls.Add(this.btnSave);
this.plControl.Controls.Add(this.btnCancel);
this.plControl.Dock = System.Windows.Forms.DockStyle.Bottom;
this.plControl.Location = new System.Drawing.Point(0, 715);
this.plControl.Name = "plControl";
this.plControl.Size = new System.Drawing.Size(807, 146);
this.plControl.TabIndex = 0;
//
// btnSave
//
this.btnSave.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.btnSave.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnSave.Font = new System.Drawing.Font("宋体", 25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSave.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.btnSave.Location = new System.Drawing.Point(0, 0);
this.btnSave.Margin = new System.Windows.Forms.Padding(4);
this.btnSave.Name = "btnSave";
this.btnSave.Size = new System.Drawing.Size(450, 146);
this.btnSave.TabIndex = 5;
this.btnSave.Text = "保存";
this.btnSave.UseVisualStyleBackColor = false;
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
//
// btnCancel
//
this.btnCancel.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnCancel.Dock = System.Windows.Forms.DockStyle.Right;
this.btnCancel.Font = new System.Drawing.Font("宋体", 25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCancel.Location = new System.Drawing.Point(450, 0);
this.btnCancel.Margin = new System.Windows.Forms.Padding(4);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(357, 146);
this.btnCancel.TabIndex = 4;
this.btnCancel.Text = "取消";
this.btnCancel.UseVisualStyleBackColor = false;
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
//
// imgResizer
//
this.imgResizer.BackColor = System.Drawing.Color.Transparent;
this.imgResizer.Location = new System.Drawing.Point(61, 37);
this.imgResizer.Name = "imgResizer";
this.imgResizer.Size = new System.Drawing.Size(681, 626);
this.imgResizer.TabIndex = 1;
this.imgResizer.Text = "imgResizer";
//
// FrmImageEditor
//
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(807, 861);
this.Controls.Add(this.imgResizer);
this.Controls.Add(this.plControl);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "FrmImageEditor";
this.Text = "图片裁剪";
this.Load += new System.EventHandler(this.FrmImageEditor_Load);
this.plControl.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Timer timeImageEditor;
private System.Windows.Forms.Panel plControl;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Button btnCancel;
private Controls.ImageResizer imgResizer;
}
}
\ No newline at end of file
using Kivii.Zip.Zlib;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Kivii.Sample.ImageUploader
{
public partial class FrmImageEditor : Form
{
public FrmImageEditor()
{
InitializeComponent();
}
public Bitmap backgroundImage;
public Bitmap ImgEdited;
//图像裁剪
public Bitmap GetPartOfImage(Bitmap sourceImg, int width, int height, int offsetX, int offsetY)
{
Bitmap sourceBitmap = sourceImg;
Bitmap rtns = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(rtns))
{
Rectangle resultRectangle = new Rectangle(0, 0, width, height);
Rectangle sourceRectangle = new Rectangle(0 + offsetX, 0 + offsetY, width, height);
g.DrawImage(sourceBitmap, resultRectangle, sourceRectangle, GraphicsUnit.Pixel);
}
return rtns;
}
private void timeImageEditor_Tick(object sender, EventArgs e)
{
FrmMain main = (FrmMain)this.Owner;
main.setBackgroundImage(ImgEdited);
this.Close();
}
private void FrmImageEditor_Load(object sender, EventArgs e)
{
this.BackgroundImage = backgroundImage;
ImgEdited = backgroundImage;
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnSave_Click(object sender, EventArgs e)
{
System.Drawing.Point p = new System.Drawing.Point(imgResizer.Location.X + imgResizer.blank, imgResizer.Location.Y + imgResizer.blank);
Rectangle area = new Rectangle(p, imgResizer.area.Size);
ImgEdited = GetPartOfImage(backgroundImage, area.Width, area.Height, p.X, p.Y);
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Bitmap bmpFluffy = ImgEdited;
//new Bitmap(after);
Rectangle r = new Rectangle(System.Drawing.Point.Empty, bmpFluffy.Size);
using (Bitmap bmpMask = new Bitmap(r.Width, r.Height))
using (Graphics g = Graphics.FromImage(bmpMask))
using (GraphicsPath path = createRoundRect(
r.X, r.Y,
r.Width, r.Height,
0))
using (Brush brush = createFluffyBrush(
path,
new float[] { 0.0f, 0.1f, 1.0f },
new float[] { 0.0f, 0.95f, 1.0f }))
{
g.FillRectangle(Brushes.Black, r);
g.SmoothingMode = SmoothingMode.HighQuality;
g.FillPath(brush, path);
transferOneARGBChannelFromOneBitmapToAnother(
bmpMask,
bmpFluffy,
ChannelARGB.Blue,
ChannelARGB.Alpha);
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Graphics drawBk = Graphics.FromImage(backgroundImage);
drawBk.Clear(Color.FromKnownColor(KnownColor.Control));
drawBk.DrawImage(ImgEdited, area);
Graphics winGph = Graphics.FromHwnd(this.Handle);
winGph.DrawImage(backgroundImage, new System.Drawing.Point(0, 0));
this.BackgroundImage = backgroundImage;
imgResizer.Visible = false;
this.Refresh();
timeImageEditor.Enabled = true;
}
public static GraphicsPath createRoundRect(int x, int y, int width, int height, int radius)
{
GraphicsPath gp = new GraphicsPath();
if (radius == 0)
gp.AddRectangle(new Rectangle(x, y, width, height));
else
{
gp.AddLine(x + radius, y, x + width - radius, y);
gp.AddArc(x + width - radius, y, radius, radius, 270, 90);
gp.AddLine(x + width, y + radius, x + width, y + height - radius);
gp.AddArc(x + width - radius, y + height - radius, radius, radius, 0, 90);
gp.AddLine(x + width - radius, y + height, x + radius, y + height);
gp.AddArc(x, y + height - radius, radius, radius, 90, 90);
gp.AddLine(x, y + height - radius, x, y + radius);
gp.AddArc(x, y, radius, radius, 180, 90);
gp.CloseFigure();
}
return gp;
}
public static Brush createFluffyBrush(GraphicsPath gp, float[] blendPositions, float[] blendFactors)
{
PathGradientBrush pgb = new PathGradientBrush(gp);
//Blend blend = new Blend();
//blend.Positions = blendPositions;
//blend.Factors = blendFactors;
//pgb.Blend = blend;
//pgb.CenterColor = Color.White;
//pgb.SurroundColors = new Color[] { Color.Black };
return pgb;
}
public enum ChannelARGB
{
Blue = 0,
Green = 1,
Red = 2,
Alpha = 3
}
public static void transferOneARGBChannelFromOneBitmapToAnother(Bitmap source, Bitmap dest, ChannelARGB sourceChannel, ChannelARGB destChannel)
{
if (source.Size != dest.Size)
throw new ArgumentException();
Rectangle r = new Rectangle(System.Drawing.Point.Empty, source.Size);
BitmapData bdSrc = source.LockBits(r, ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
BitmapData bdDst = dest.LockBits(r, ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
unsafe
{
byte* bpSrc = (byte*)bdSrc.Scan0.ToPointer();
byte* bpDst = (byte*)bdDst.Scan0.ToPointer();
bpSrc += (int)sourceChannel;
bpDst += (int)destChannel;
for (int i = r.Height * r.Width; i > 0; i--)
{
*bpDst = *bpSrc;
bpSrc += 4;
bpDst += 4;
}
}
source.UnlockBits(bdSrc);
dest.UnlockBits(bdDst);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timeImageEditor.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8c
FwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8c
FwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8c
FwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXACAcFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAfGxcAHxwXAB8cFwAfHBcAHxwXEB8cFx8fHBcgHxwXIB8cFyAfHBcgHxwXIB8c
FyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8c
FyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8c
FyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFx4fHBcQHxwXAB8cFwAfHBcAHxsXAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGhcAHxwXAB8cFwAfHBcOHxwXch8cF8cfHBfeHhwX3x4c
F98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4c
F98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4c
F98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4cF98eHBffHhwX3x4cF98fHBfeHxwXxx8c
F3IfHBcOHxwXAB8cFwAgHhYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyQZAB8cFwAfHBcHHxwXjx8c
F/0hHhj/JSIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYi
HP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYi
HP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYiHP8mIhz/JiIc/yYi
HP8mIhz/JSIc/yEeGP8fHBf9HxwXjx8cFwcfHBcAHCETAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAc
FwAfHBcAHxwXQB8cF/EkIRv/Qzwy/1FJPP9RST3/UUk9/1FJPf9RST3/UUk9/1FJPf9RST3/UUk9/1FJ
Pf9RST3/UUk9/1FJPf9RST3/UUk9/1FJPf9RST3/UUk9/1FJPf9RST3/UUk9/1FJPf9RST3/UUk9/1FJ
Pf9RST3/UUk9/1FJPf9RST3/UUk9/1FJPf9RST3/UUk9/1FJPf9RST3/UUk9/1FJPf9RST3/UUk9/1FJ
Pf9RST3/UUk9/1FJPf9RST3/UUk9/1FJPP9DPDL/JCEb/x8cF/EfHBdAHxwXAB8dFgAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8cF3QeGxb/NzEp/15URv9gVkf/YFZH/2BWR/9gVkf/YFZH/2BW
R/9gVkf/YFZH/2BWR/9gVkf/YFZH/2BWR/9gVkf/YFZH/2BWR/9gVkf/YFZH/2BWR/9gVkj/YFZI/2BW
R/9fVkf/X1VH/19VR/9fVkf/YFZH/2BWSP9gVkj/YFZH/2BWR/9gVkf/YFZH/2BWR/9gVkf/YFZH/2BW
R/9gVkf/YFZH/2BWR/9gVkf/YFZH/2BWR/9gVkf/YFZH/2BWR/9gVkf/XlRG/zcxKf8eGxb/HxwXdB8c
FwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8cFwAfHBeAHhsW/z85L/9iWEn/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YFZH/11TRf9aUUP/WVBD/1lQQv9ZUEL/WVBD/1pRQ/9dU0X/YFZH/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2JY
Sf8/OS//HhsW/x8cF4AfHBcAHxwXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8cFwAfHBcAHxwXgB4b
Fv9AOjD/YlhJ/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9gVkf/XFJE/1lQQv9YT0L/Vk1A/1NKPv9RSDz/UUg8/1NKPv9WTUD/WE9C/1lQ
Qv9cUkT/YFZH/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9iWEn/QDow/x4bFv8fHBeAHxwXAB8cFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAfHBcAHxwXAB8cF4AeGxb/QDkv/2JYSf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9fVUf/WlFD/1dOQf9ORjr/Pzgv/zEsJf8pJR//JSId/yUi
Hf8pJR//MSwl/z84L/9ORjr/V05B/1pRQ/9fVUf/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YlhJ/0A5L/8eGxb/HxwXgB8cFwAfHBcAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8cFwAfHBeAHhsW/0A5L/9iWEn/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9fVUf/WVBD/1FJPf87NSz/JSIc/x0a
F/8fHBb/KCUW/zAsFv8wLBb/KCUW/x8cFv8dGhf/JSIc/zo1LP9RST3/WVBD/19VR/9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2JYSf9AOS//HhsW/x8c
F4AfHBcAHxwXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8cFwAfHBcAHxwXgB4bFv9AOS//YlhJ/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9gVkf/WlFD/0xE
Of8tKCH/HRoX/yckFv9QSxX/fXUU/5iPE/+jmRP/o5kT/5iPE/99dRT/UEsV/yckFv8dGhf/LSgh/0xE
Of9aUUP/YFZH/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9iWEn/QDkv/x4bFv8fHBeAHxwXAB8cFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8c
F4AeGxb/QDkv/2JYSf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/XFNF/0xEOf8pJR7/HhsW/0I9Fv+MhBP/tKkS/7qvEv+6rxL/ua4S/7muEv+6rxL/uq8S/7Sp
Ev+MhBP/Qj0W/x4bFv8pJR7/TEQ5/1xTRf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YlhJ/0A5L/8eGxb/HxwXgB8cFwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHxwXAB8cFwAfHBeAHhsW/0A5L/9iWEn/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YFZH/1NKPv8tKCH/HhsW/09JFf+lmxP/uq8S/7itEv+4rRL/uK0S/7it
Ev+4rRL/uK0S/7itEv+4rRL/uq8S/6WbE/9PSRX/HhsW/y0oIf9TSj7/YFZH/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2JYSf9AOS//HhsW/x8cF4AfHBcAHxwXAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8cFwAfHBcAHxwXgB4bFv9AOS//YlhJ/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/11TRf87NSz/HRoX/0I9Fv+lmxP/uq8S/7it
Ev+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+6rxL/pZsT/0I9Fv8dGhf/OzUs/11T
Rf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9iWEn/QDkv/x4b
Fv8fHBeAHxwXAB8cFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8cF4AeGxb/QDkv/2JY
Sf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9SST3/JSIc/yck
Fv+MhBP/uq8S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7qv
Ev+MhBP/JyQW/yUiHP9SST3/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YlhJ/0A5L/8eGxb/HxwXgB8cFwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8c
FwAfHBeAHhsW/0A5L/9iWEn/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/QTow/x0aF/9QSxX/tKkS/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7it
Ev+4rRL/uK0S/7itEv+4rRL/tKkS/1BLFf8dGhf/QTow/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2JYSf9AOS//HhsW/x8cF4AfHBcAHxwXAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAB8cFwAfHBcAHxwXgB4bFv9AOS//YlhJ/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/X1VG/zMuJv8fHBb/fXUU/7qvEv+4rRL/uK0S/7itEv+4rRH/uK0S/7it
Ev+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7qvEv99dRT/HxwW/zMuJv9fVUb/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9iWEn/QDkv/x4bFv8fHBeAHxwXAB8c
FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8cF4AeGxb/QDkv/2JYSf9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/1xSRP8qJiD/KCUW/5iPE/+6rxL/uK0S/7it
Ev+8sR//vbMi/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+6rxL/mI8T/ygl
Fv8qJiD/XFJE/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YlhJ/0A5
L/8eGxb/HxwXgB8cFwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8cFwAfHBeAHhsW/0A5
L/9iWEn/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9ZUEL/JyMe/y8r
Fv+imBP/ua4S/7itEv+4rRH/vbMi/8a9QP++tCX/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7it
Ev+4rRL/ua4S/6KYE/8vKxb/JyMe/1lQQv9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/W1FD/1tR
Q/9hV0j/YVdI/2JYSf9AOS//HhsW/x8cF4AfHBcAHxwXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8c
FwAfHBcAHxwXgB4bFv9AOS//YlhJ/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/WVBC/ycjHv8uKhb/npUS/7muEv+4rRL/uK0S/7itEv++tCX/xr1B/760Jf+4rRL/uK0S/7it
Ev+4rRL/uK0S/7itEv+4rRL/uK0S/7muEv+flRL/LioW/ycjHv9ZUEL/YVdI/2FXSP9hV0j/YVdI/2FX
SP9fVUb/Qzwx/zAyL/8wMi//Qzwx/19VRv9iWEn/QDkv/x4bFv8fHBeAHxwXAB8cFwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8cF4AeGxb/QDkv/2JYSf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/1xTRP8rJyD/JyQW/5CHEv+5rhL/uK0S/7itE/+5rhb/uK0S/760
Jf/GvUH/vrQl/7itEv+4rRL/uK0S/7itEv+4rRL/uK0S/7itEv+5rhL/kIcS/yckFv8rJyD/XFNE/2FX
SP9hV0j/YVdI/2FXSP9iWEn/TEQ3/zBARv9Wnsb/Vp7G/zBARv9MRDf/Y1lJ/0A5L/8eGxb/HxwXgB8c
FwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8cFwAfHBeAHhsW/0A5L/9iWEn/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9gVkf/NC8n/x8cFv9zbBP/taoR/7it
Ev+5rhb/w7o3/760Jf+4rRH/vrQl/8a9Qf++tCX/uK0S/7itEv+4rRL/uK0S/7itEv+4rRL/taoR/3Ns
E/8fHBb/NC8n/2BWR/9hV0j/YVdI/2FXSP9hV0j/YlhJ/0E4Lf8/aH3/as3//2rN//8/aH7/QTgt/2NZ
Sf9AOjD/HhsW/x8cF4AfHBcAHxwXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8cFwAfHBcAHxwXgB4b
Fv9AOS//YlhJ/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YlhJ/0Q9
M/8dGhf/SkUV/6acEf+2qxL/uK0S/760Jf/GvUD/vrQl/7itEv++tCX/xr1A/72zIv+4rRH/uK0S/7it
Ev+4rRL/tqsS/6acEf9KRRX/HRoX/0Q9M/9iWEn/YVdI/2FXSP9hV0j/YVdI/2JYSf9MRDf/MEBG/1ae
xv9Wnsb/MEBG/0xEN/9jWUn/QDkv/x4bFv8fHBeAHxwXAB8cFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAfHBcAHxwXAB8cF4AeGxb/QDow/2JYSf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2JYSf9XTkD/JyMd/yYjFv9/dxL/raIR/7arEv+4rRL/vrQl/8O6N/+5rhb/uK0S/72z
Iv+8sR//uK0S/7itEv+4rRL/tqsS/62iEf9/dxL/JiMW/ycjHf9XTkD/YlhJ/2FXSP9hV0j/YVdI/2FX
SP9hV0j/X1VH/0M8Mf8wMi//MDIv/0M8Mf9fVUf/YlhJ/0A6MP8eGxb/HxwXgB8cFwAfHBcAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8cFwAfHBeAHhsW/0A5L/9hV0j/YFZH/2BWR/9gVkf/YFZH/2BW
R/9gVkf/YFZH/2BWR/9gVkf/YFZH/2BWR/9gVkj/YFZH/z84L/8eGxf/PjkV/5WMEf+roRD/s6gR/7it
Ev+6rxb/uK0T/7itEv+4rRH/uK0S/7itEv+3rBL/s6gR/6uhEP+VjBH/PjkV/x4bF/8/OC//YFZH/2BW
SP9gVkf/YFZH/2BWR/9gVkf/YFZH/2BWSP9gVkf/WlBC/1pQQv9gVkf/YFZI/2FXSP9AOS//HhsW/x8c
F4AfHBcAHxwXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8cFwAfHBcAHxwXgB4bF/84Mir/UUk9/1FI
PP9RSDz/UUg8/1FIPP9RSDz/UUg8/1FIPP9RSDz/UUg8/1FIPP9RSDz/UUg8/1FJPf9LQzj/KCQe/x4b
Fv9JRBX/lYwR/6ieEP+roRH/saYR/7SpEv+1qxL/tasS/7SpEv+xphH/rKER/6ieEP+VjBH/SUQV/x4b
Fv8oJB7/S0M4/1FJPf9RSDz/UUg8/1FIPP9RSDz/UUg8/1FIPP9RSDz/UUg8/1FJPf9RST3/UUg8/1FI
PP9RST3/ODIq/x4bF/8fHBeAHxwXAB8cFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8c
F4AfHBf/JyMd/y4qIv8uKSL/Liki/y4pIv8uKSL/Liki/y4pIv8uKSL/Liki/y4pIv8uKSL/Liki/y4p
Iv8uKSL/Lioi/yomH/8jIBr/HhsX/z45Ff9/dxL/oZcQ/6edEP+onhD/qJ4Q/6ieEP+onhD/p50Q/6GX
EP9/dxL/PjkV/x4bF/8jIBr/KiYf/y4qIv8uKSL/Liki/y4pIv8uKSL/Liki/y4pIv8uKSL/Liki/y4p
Iv8uKSL/Liki/y4pIv8uKSL/Lioi/ycjHf8fHBf/HxwXgB8cFwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAHxwXAB8cFwAfHBeAHhsW/zw2LP9ZUEL/WE9C/1hPQv9YT0L/WE9C/1hPQv9YT0L/WE9C/1hP
Qv9YT0L/WE9C/1hPQv9YT0L/WE9C/1hPQv9ZUEL/UUk8/y8rI/8dGxf/JiMW/0tFFf9yaxP/iYER/5OK
Ef+TihH/iYER/3JrE/9LRRX/JiMW/x0aF/8vKyP/UUk8/1lQQv9YT0L/WE9C/1hPQv9YT0L/WE9C/1hP
Qv9YT0L/WE9C/1hPQv9YT0L/WE9C/1hPQv9YT0L/WE9C/1lQQv88Niz/HhsW/x8cF4AfHBcAHxwXAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8cFwAfHBcAHxwXgB4bFv9AOjD/YlhJ/2JXSP9iV0j/YldI/2JX
SP9iV0j/YldI/2JXSP9iV0j/YldI/2JXSP9iV0j/YldI/2JXSP9iV0j/YldI/2JYSf9aUUP/Pzkv/ycj
Hf8dGhf/HxwW/yckFv8uKhb/LioW/yckFv8fHBb/HRoX/ycjHf8/OS//WlFD/2JYSf9iV0j/YldI/2JX
SP9iV0j/YldI/2JXSP9iV0j/YldI/2JXSP9iV0j/YldI/2JXSP9iV0j/YldI/2JXSP9iWEn/QDow/x4b
Fv8fHBeAHxwXAB8cFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8cF4AeGxb/QDow/2JY
Sf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9XTkD/RD0z/zQvJ/8rJyD/JyMe/ycjHv8rJyD/NS8n/0Q9M/9XTkD/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YlhJ/0A6MP8eGxb/HxwXgB8cFwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8c
FwAfHBd0HhsW/zo0K/9hV0j/YlhI/2JXSP9iV0j/YldI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YlhI/2JYSf9gVkf/XFNE/1lQQv9ZUEL/XFNE/2BW
R/9iWEn/YlhI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YldI/2JXSP9iV0j/YlhI/2FXSP86NCv/HhsW/x8cF3UfHBcAHxwXAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACAcFwAfHBcAHxwXQB8cF/ElIhz/SUE2/1hPQv9ZUEL/WVBC/1lQQv9bUUP/X1VG/2JY
Sf9iV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2JYSf9iWEn/YlhJ/2JY
Sf9iWEn/YlhJ/2JYSf9iWEn/YlhJ/2JYSf9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YldI/2JYSf9fVUb/W1FD/1lQQv9ZUEL/WVBC/1hPQv9JQTb/JSIc/x8cF/EfHBdAHxwXAB8d
FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsIxkAHxwXAB8cFwcfHBePHxwX/SEeGf8nIx3/JyMd/ycj
Hf8nIx3/KiYf/zItJf9EPTL/WE9C/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/YVdI/1lP
Qv9COzD/Pzct/z84Lf8/OC3/Pzgt/z84Lf8/OC3/Pzgt/z83Lf9COzD/WU9C/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2FXSP9hV0j/YVdI/1hPQv9EPTL/Mi0l/yomH/8nIx3/JyMd/ycjHf8nIx3/IR4Z/x8c
F/0fHBePHxwXBx8cFwAbJhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRoXAB8cFwAfHBcAHxwXDh8c
F3IfHBfLHxwX+R4cF/8eHBf/HhwX+x4bFu0eGxb7HxwX/yomH/9IQTX/X1ZH/2FXSP9hV0j/YVdI/2FX
SP9hV0j/YVdI/2JYSf9COzD/MEZR/z5nff8+Z3z/Pmd8/z5nfP8+Z3z/Pmd8/z5nfP8+Z33/MEZR/0I7
MP9iWEn/YVdI/2FXSP9hV0j/YVdI/2FXSP9hV0j/X1ZH/0hBNf8qJh//HxwX/x4bFvseGxbqHhsX4B4b
F98eGxffHhwX3h8cF8cfHBdyHxwXDh8cFwAfHBcAIBoXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAeHBcAHxwXAB8cFwAfHBcAHxwXYh8cF/kfHBf/HxwX/x8cF/sfHBd/HxwXWh8cF7YeGxb5IR4Z/z43
Lv9eVEX/YVdI/2FXSP9hV0j/YVdI/2FXSP9iWEn/Pzcs/0Nzjf9gtuf/YLTl/2C05f9gtOX/YLTl/2C0
5f9gtOX/YLbn/0Nzjf8/Nyz/YlhJ/2FXSP9hV0j/YVdI/2FXSP9hV0j/XlRF/z43Lv8hHhn/HhsW+R8c
F7YfHBddHxwXLh8cFyAfHBcgHxwXIB8cFx8fHBcQHxwXAB8cFwAfHBcAHx0YAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8bFwAfHRgAHxwXAB8cF1EfHBfZHxwX4B8cF+AfHBfZHxwXTx8c
FwAfHBcNHxwXbx8cF+kgHRf/OzUs/15URf9hV0j/YVdI/2FXSP9hV0j/YlhJ/z83LP9Dc43/YLbn/2C0
5f9gtOX/YLTl/2C05f9gtOX/YLTl/2C25/9Dc43/Pzcs/2JYSf9hV0j/YVdI/2FXSP9hV0j/XlRF/zs1
LP8gHRf/HxwX6R8cF24fHBcNHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAIBwXAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxwXAB8cFwAfHBcEHxwXGx8c
FyAfHBcgHxwXGx8cFwQfHBcAHxwXAB8dGQAfHBdSHxwX4yAdF/88Ni3/XlVG/2FXSP9hV0j/YVdI/2JY
Sf9COzD/MEZR/z5nff8+Z3z/Pmd8/z5nfP8+Z3z/Pmd8/z5nfP8+Z33/MEZR/0I7MP9iWEn/YVdI/2FX
SP9hV0j/XlVG/zw2Lf8gHRf/HxwX4x8cF1IgHRkAHxwXAB8cFwAfHBcAHxwXACEWFgAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAd
GAAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cF1EfHBfnIB0Y/z44
Lv9fVUb/YldI/2FXSP9hV0j/WU9C/0I7MP8/Ny3/Pzgt/z84Lf8/OC3/Pzgt/z84Lf8/OC3/Pzct/0I7
MP9ZT0L/YVdI/2FXSP9iV0j/X1VG/z44Lv8gHRj/HxwX5x8cF1EfHBcAHxwXAB8cFwAfHBcAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8c
FwAfHRgAHxwXWR8cF+sgHRj/PDYt/1xTRP9iWEn/YlhI/2JYSf9iWEn/YlhJ/2JYSf9iWEn/YlhJ/2JY
Sf9iWEn/YlhJ/2JYSf9iWEn/YlhJ/2JYSP9iWEn/XFNE/zw2Lf8gHRj/HxwX6x8cF1kfHBcAHxwXAB8c
FwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAB8cFgAfHBcAHxwXACAhEwAfHBdcHxwX6B8cF/8xLCT/S0Q4/1dOQf9ZUEL/WVBC/1lQ
Qv9ZUEL/WVBC/1lQQv9ZUEL/WVBC/1lQQv9ZUEL/WVBC/1lQQv9XTkH/S0Q4/zEsJP8fHBf/HxwX6B8c
F1whIRQAHxwXAB8cFwAfHBYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx0YAB8cFwAfHBcAHx4VAB8cF0ofHBfOHhsW/yEe
GP8mIhz/JyMd/ycjHf8nIx3/JyMd/ycjHf8nIx3/JyMd/ycjHf8nIx3/JyMd/ycjHf8nIx3/JiIc/yEe
GP8eGxb/HxwXzh8cF0ocIBgAHxwXAB8cFwAfHBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHBcAHxwXAB8c
FwAfHBcAHxwXHx8cF3kfHBe/HxwX2x4bF98eGxffHhsX3x4bF98eGxffHhsX3x4bF98eGxffHhsX3x4b
F98eGxffHhsX3x8cF9sfHBe/HxwXeR8cFx8fHBcAHxwXAB8cFwAfHBcAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXDB8cFxwfHBcgHxwXIB8cFyAfHBcgHxwXIB8c
FyAfHBcgHxwXIB8cFyAfHBcgHxwXIB8cFyAfHBccHxwXDB8cFwAfHBcAHxwXAB8cFwAfHBYAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0UAB8cFgAfHBcAHxsXAB8cFwAfHBcAHxwXAB8c
FwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfHBcAHxwXAB8cFwAfGxcAHxwXAB8c
FgAdHRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA////////////////////////////////////////////////////////////////////////
///////////////////////////////////4AAAAAAAAH/AAAAAAAAAP4AAAAAAAAAfgAAAAAAAAB+AA
AAAAAAAH4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAA
AAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAAAAfgAAAAAAAAB+AA
AAAAAAAH4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAA
AAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAH4AAAAAAAAAfgAAAAAAAAB/AA
AAAAAAAP+AAAAAAAAB/8AAAAAAAH//wAAAAAAD////4AAAAAf////wAAAAD/////gAAAAf/////AAAAD
/////+AAAAf/////8AAAD///////////////////////////////////////////////////////////
//////////////////////////////////////////////////8=
</value>
</data>
</root>
\ No newline at end of file
......@@ -61,6 +61,7 @@
this.lbDisplay = new System.Windows.Forms.Label();
this.gbOperating = new System.Windows.Forms.GroupBox();
this.btnShot = new System.Windows.Forms.Button();
this.btnEditor = new System.Windows.Forms.Button();
this.btnDelete = new System.Windows.Forms.Button();
this.plLeft.SuspendLayout();
this.gbSample.SuspendLayout();
......@@ -85,8 +86,9 @@
this.plLeft.Controls.Add(this.gbCamView);
this.plLeft.Dock = System.Windows.Forms.DockStyle.Left;
this.plLeft.Location = new System.Drawing.Point(0, 0);
this.plLeft.Margin = new System.Windows.Forms.Padding(4);
this.plLeft.Name = "plLeft";
this.plLeft.Size = new System.Drawing.Size(287, 681);
this.plLeft.Size = new System.Drawing.Size(430, 1022);
this.plLeft.TabIndex = 0;
//
// gbSample
......@@ -94,9 +96,11 @@
this.gbSample.Controls.Add(this.rtbMessage);
this.gbSample.Controls.Add(this.plSearchReport);
this.gbSample.Dock = System.Windows.Forms.DockStyle.Fill;
this.gbSample.Location = new System.Drawing.Point(0, 287);
this.gbSample.Location = new System.Drawing.Point(0, 430);
this.gbSample.Margin = new System.Windows.Forms.Padding(4);
this.gbSample.Name = "gbSample";
this.gbSample.Size = new System.Drawing.Size(287, 182);
this.gbSample.Padding = new System.Windows.Forms.Padding(4);
this.gbSample.Size = new System.Drawing.Size(430, 274);
this.gbSample.TabIndex = 3;
this.gbSample.TabStop = false;
this.gbSample.Text = "查询样品";
......@@ -105,10 +109,9 @@
//
this.rtbMessage.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtbMessage.Font = new System.Drawing.Font("宋体", 16F);
this.rtbMessage.Location = new System.Drawing.Point(3, 59);
this.rtbMessage.Margin = new System.Windows.Forms.Padding(2);
this.rtbMessage.Location = new System.Drawing.Point(4, 88);
this.rtbMessage.Name = "rtbMessage";
this.rtbMessage.Size = new System.Drawing.Size(281, 120);
this.rtbMessage.Size = new System.Drawing.Size(422, 182);
this.rtbMessage.TabIndex = 20;
this.rtbMessage.Text = "";
//
......@@ -117,9 +120,10 @@
this.plSearchReport.Controls.Add(this.tbxReportId);
this.plSearchReport.Controls.Add(this.btnReportId);
this.plSearchReport.Dock = System.Windows.Forms.DockStyle.Top;
this.plSearchReport.Location = new System.Drawing.Point(3, 17);
this.plSearchReport.Location = new System.Drawing.Point(4, 25);
this.plSearchReport.Margin = new System.Windows.Forms.Padding(4);
this.plSearchReport.Name = "plSearchReport";
this.plSearchReport.Size = new System.Drawing.Size(281, 42);
this.plSearchReport.Size = new System.Drawing.Size(422, 63);
this.plSearchReport.TabIndex = 19;
//
// tbxReportId
......@@ -127,9 +131,10 @@
this.tbxReportId.Dock = System.Windows.Forms.DockStyle.Fill;
this.tbxReportId.Font = new System.Drawing.Font("宋体", 14F);
this.tbxReportId.Location = new System.Drawing.Point(0, 0);
this.tbxReportId.Margin = new System.Windows.Forms.Padding(4);
this.tbxReportId.Multiline = true;
this.tbxReportId.Name = "tbxReportId";
this.tbxReportId.Size = new System.Drawing.Size(207, 42);
this.tbxReportId.Size = new System.Drawing.Size(311, 63);
this.tbxReportId.TabIndex = 7;
this.tbxReportId.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.tbxReportId_KeyPress);
//
......@@ -138,9 +143,10 @@
this.btnReportId.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnReportId.Dock = System.Windows.Forms.DockStyle.Right;
this.btnReportId.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnReportId.Location = new System.Drawing.Point(207, 0);
this.btnReportId.Location = new System.Drawing.Point(311, 0);
this.btnReportId.Margin = new System.Windows.Forms.Padding(4);
this.btnReportId.Name = "btnReportId";
this.btnReportId.Size = new System.Drawing.Size(74, 42);
this.btnReportId.Size = new System.Drawing.Size(111, 63);
this.btnReportId.TabIndex = 8;
this.btnReportId.Text = "查询";
this.btnReportId.UseVisualStyleBackColor = false;
......@@ -157,9 +163,11 @@
this.gbLogin.Controls.Add(this.tbxServiceUrl);
this.gbLogin.Controls.Add(this.lblUrl);
this.gbLogin.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gbLogin.Location = new System.Drawing.Point(0, 469);
this.gbLogin.Location = new System.Drawing.Point(0, 704);
this.gbLogin.Margin = new System.Windows.Forms.Padding(4);
this.gbLogin.Name = "gbLogin";
this.gbLogin.Size = new System.Drawing.Size(287, 212);
this.gbLogin.Padding = new System.Windows.Forms.Padding(4);
this.gbLogin.Size = new System.Drawing.Size(430, 318);
this.gbLogin.TabIndex = 2;
this.gbLogin.TabStop = false;
this.gbLogin.Text = "系统登录";
......@@ -169,9 +177,10 @@
this.btnLogout.BackColor = System.Drawing.Color.LavenderBlush;
this.btnLogout.Font = new System.Drawing.Font("宋体", 15F);
this.btnLogout.ForeColor = System.Drawing.Color.Crimson;
this.btnLogout.Location = new System.Drawing.Point(190, 166);
this.btnLogout.Location = new System.Drawing.Point(285, 249);
this.btnLogout.Margin = new System.Windows.Forms.Padding(4);
this.btnLogout.Name = "btnLogout";
this.btnLogout.Size = new System.Drawing.Size(91, 40);
this.btnLogout.Size = new System.Drawing.Size(136, 60);
this.btnLogout.TabIndex = 31;
this.btnLogout.Text = "退 出";
this.btnLogout.UseVisualStyleBackColor = false;
......@@ -182,9 +191,10 @@
this.btnLogin.BackColor = System.Drawing.Color.MintCream;
this.btnLogin.Font = new System.Drawing.Font("宋体", 15F);
this.btnLogin.ForeColor = System.Drawing.Color.DarkGreen;
this.btnLogin.Location = new System.Drawing.Point(5, 166);
this.btnLogin.Location = new System.Drawing.Point(8, 249);
this.btnLogin.Margin = new System.Windows.Forms.Padding(4);
this.btnLogin.Name = "btnLogin";
this.btnLogin.Size = new System.Drawing.Size(179, 40);
this.btnLogin.Size = new System.Drawing.Size(268, 60);
this.btnLogin.TabIndex = 30;
this.btnLogin.Text = "登 录";
this.btnLogin.UseVisualStyleBackColor = false;
......@@ -193,10 +203,11 @@
// tbxPassword
//
this.tbxPassword.Font = new System.Drawing.Font("宋体", 12F);
this.tbxPassword.Location = new System.Drawing.Point(3, 132);
this.tbxPassword.Location = new System.Drawing.Point(4, 198);
this.tbxPassword.Margin = new System.Windows.Forms.Padding(4);
this.tbxPassword.Name = "tbxPassword";
this.tbxPassword.PasswordChar = '*';
this.tbxPassword.Size = new System.Drawing.Size(278, 26);
this.tbxPassword.Size = new System.Drawing.Size(415, 35);
this.tbxPassword.TabIndex = 29;
this.tbxPassword.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.tbxPassword_KeyPress);
//
......@@ -204,27 +215,30 @@
//
this.lblPassword.AutoSize = true;
this.lblPassword.Font = new System.Drawing.Font("宋体", 12F);
this.lblPassword.Location = new System.Drawing.Point(2, 113);
this.lblPassword.Location = new System.Drawing.Point(3, 170);
this.lblPassword.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblPassword.Name = "lblPassword";
this.lblPassword.Size = new System.Drawing.Size(63, 16);
this.lblPassword.Size = new System.Drawing.Size(94, 24);
this.lblPassword.TabIndex = 28;
this.lblPassword.Text = "密 码:";
//
// tbxUserName
//
this.tbxUserName.Font = new System.Drawing.Font("宋体", 12F);
this.tbxUserName.Location = new System.Drawing.Point(3, 84);
this.tbxUserName.Location = new System.Drawing.Point(4, 126);
this.tbxUserName.Margin = new System.Windows.Forms.Padding(4);
this.tbxUserName.Name = "tbxUserName";
this.tbxUserName.Size = new System.Drawing.Size(278, 26);
this.tbxUserName.Size = new System.Drawing.Size(415, 35);
this.tbxUserName.TabIndex = 27;
//
// lblUser
//
this.lblUser.AutoSize = true;
this.lblUser.Font = new System.Drawing.Font("宋体", 12F);
this.lblUser.Location = new System.Drawing.Point(2, 65);
this.lblUser.Location = new System.Drawing.Point(3, 98);
this.lblUser.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblUser.Name = "lblUser";
this.lblUser.Size = new System.Drawing.Size(63, 16);
this.lblUser.Size = new System.Drawing.Size(94, 24);
this.lblUser.TabIndex = 26;
this.lblUser.Text = "用户名:";
//
......@@ -232,18 +246,20 @@
//
this.tbxServiceUrl.BackColor = System.Drawing.SystemColors.Window;
this.tbxServiceUrl.Font = new System.Drawing.Font("宋体", 12F);
this.tbxServiceUrl.Location = new System.Drawing.Point(3, 36);
this.tbxServiceUrl.Location = new System.Drawing.Point(4, 54);
this.tbxServiceUrl.Margin = new System.Windows.Forms.Padding(4);
this.tbxServiceUrl.Name = "tbxServiceUrl";
this.tbxServiceUrl.Size = new System.Drawing.Size(278, 26);
this.tbxServiceUrl.Size = new System.Drawing.Size(415, 35);
this.tbxServiceUrl.TabIndex = 25;
//
// lblUrl
//
this.lblUrl.AutoSize = true;
this.lblUrl.Font = new System.Drawing.Font("宋体", 12F);
this.lblUrl.Location = new System.Drawing.Point(2, 17);
this.lblUrl.Location = new System.Drawing.Point(3, 26);
this.lblUrl.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblUrl.Name = "lblUrl";
this.lblUrl.Size = new System.Drawing.Size(63, 16);
this.lblUrl.Size = new System.Drawing.Size(94, 24);
this.lblUrl.TabIndex = 22;
this.lblUrl.Text = "地 址:";
//
......@@ -255,8 +271,10 @@
this.gbCamView.Dock = System.Windows.Forms.DockStyle.Top;
this.gbCamView.Font = new System.Drawing.Font("宋体", 10F);
this.gbCamView.Location = new System.Drawing.Point(0, 0);
this.gbCamView.Margin = new System.Windows.Forms.Padding(4);
this.gbCamView.Name = "gbCamView";
this.gbCamView.Size = new System.Drawing.Size(287, 287);
this.gbCamView.Padding = new System.Windows.Forms.Padding(4);
this.gbCamView.Size = new System.Drawing.Size(430, 430);
this.gbCamView.TabIndex = 0;
this.gbCamView.TabStop = false;
this.gbCamView.Text = "相机视图";
......@@ -265,9 +283,10 @@
//
this.btnSwitch.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnSwitch.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnSwitch.Location = new System.Drawing.Point(201, 246);
this.btnSwitch.Location = new System.Drawing.Point(302, 369);
this.btnSwitch.Margin = new System.Windows.Forms.Padding(4);
this.btnSwitch.Name = "btnSwitch";
this.btnSwitch.Size = new System.Drawing.Size(83, 35);
this.btnSwitch.Size = new System.Drawing.Size(124, 52);
this.btnSwitch.TabIndex = 4;
this.btnSwitch.Text = "切换相机";
this.btnSwitch.UseVisualStyleBackColor = false;
......@@ -277,9 +296,10 @@
//
this.cbxResolution.Font = new System.Drawing.Font("宋体", 20F);
this.cbxResolution.FormattingEnabled = true;
this.cbxResolution.Location = new System.Drawing.Point(3, 246);
this.cbxResolution.Location = new System.Drawing.Point(4, 369);
this.cbxResolution.Margin = new System.Windows.Forms.Padding(4);
this.cbxResolution.Name = "cbxResolution";
this.cbxResolution.Size = new System.Drawing.Size(193, 35);
this.cbxResolution.Size = new System.Drawing.Size(288, 48);
this.cbxResolution.TabIndex = 1;
this.cbxResolution.SelectedIndexChanged += new System.EventHandler(this.cbxResolution_SelectedIndexChanged);
//
......@@ -287,17 +307,19 @@
//
this.plVsp.Controls.Add(this.vspCamView);
this.plVsp.Dock = System.Windows.Forms.DockStyle.Top;
this.plVsp.Location = new System.Drawing.Point(3, 19);
this.plVsp.Location = new System.Drawing.Point(4, 27);
this.plVsp.Margin = new System.Windows.Forms.Padding(4);
this.plVsp.Name = "plVsp";
this.plVsp.Size = new System.Drawing.Size(281, 223);
this.plVsp.Size = new System.Drawing.Size(422, 334);
this.plVsp.TabIndex = 0;
//
// vspCamView
//
this.vspCamView.Dock = System.Windows.Forms.DockStyle.Fill;
this.vspCamView.Location = new System.Drawing.Point(0, 0);
this.vspCamView.Margin = new System.Windows.Forms.Padding(4);
this.vspCamView.Name = "vspCamView";
this.vspCamView.Size = new System.Drawing.Size(281, 223);
this.vspCamView.Size = new System.Drawing.Size(422, 334);
this.vspCamView.TabIndex = 0;
this.vspCamView.Text = "vspCamView";
this.vspCamView.VideoSource = null;
......@@ -307,9 +329,10 @@
this.plRight.Controls.Add(this.gbPhotoList);
this.plRight.Controls.Add(this.gbUploading);
this.plRight.Dock = System.Windows.Forms.DockStyle.Right;
this.plRight.Location = new System.Drawing.Point(711, 0);
this.plRight.Location = new System.Drawing.Point(1066, 0);
this.plRight.Margin = new System.Windows.Forms.Padding(4);
this.plRight.Name = "plRight";
this.plRight.Size = new System.Drawing.Size(233, 681);
this.plRight.Size = new System.Drawing.Size(350, 1022);
this.plRight.TabIndex = 1;
//
// gbPhotoList
......@@ -318,8 +341,10 @@
this.gbPhotoList.Dock = System.Windows.Forms.DockStyle.Fill;
this.gbPhotoList.Font = new System.Drawing.Font("宋体", 10F);
this.gbPhotoList.Location = new System.Drawing.Point(0, 0);
this.gbPhotoList.Margin = new System.Windows.Forms.Padding(4);
this.gbPhotoList.Name = "gbPhotoList";
this.gbPhotoList.Size = new System.Drawing.Size(233, 582);
this.gbPhotoList.Padding = new System.Windows.Forms.Padding(4);
this.gbPhotoList.Size = new System.Drawing.Size(350, 874);
this.gbPhotoList.TabIndex = 2;
this.gbPhotoList.TabStop = false;
this.gbPhotoList.Text = "已拍照片";
......@@ -330,19 +355,21 @@
this.flpPhotos.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.flpPhotos.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.flpPhotos.Dock = System.Windows.Forms.DockStyle.Fill;
this.flpPhotos.Location = new System.Drawing.Point(3, 19);
this.flpPhotos.Location = new System.Drawing.Point(4, 27);
this.flpPhotos.Margin = new System.Windows.Forms.Padding(0);
this.flpPhotos.Name = "flpPhotos";
this.flpPhotos.Size = new System.Drawing.Size(227, 560);
this.flpPhotos.Size = new System.Drawing.Size(342, 843);
this.flpPhotos.TabIndex = 2;
//
// gbUploading
//
this.gbUploading.Controls.Add(this.btnUpload);
this.gbUploading.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gbUploading.Location = new System.Drawing.Point(0, 582);
this.gbUploading.Location = new System.Drawing.Point(0, 874);
this.gbUploading.Margin = new System.Windows.Forms.Padding(4);
this.gbUploading.Name = "gbUploading";
this.gbUploading.Size = new System.Drawing.Size(233, 99);
this.gbUploading.Padding = new System.Windows.Forms.Padding(4);
this.gbUploading.Size = new System.Drawing.Size(350, 148);
this.gbUploading.TabIndex = 1;
this.gbUploading.TabStop = false;
this.gbUploading.Text = "操作台";
......@@ -352,9 +379,10 @@
this.btnUpload.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnUpload.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnUpload.Font = new System.Drawing.Font("宋体", 25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnUpload.Location = new System.Drawing.Point(3, 17);
this.btnUpload.Location = new System.Drawing.Point(4, 25);
this.btnUpload.Margin = new System.Windows.Forms.Padding(4);
this.btnUpload.Name = "btnUpload";
this.btnUpload.Size = new System.Drawing.Size(227, 79);
this.btnUpload.Size = new System.Drawing.Size(342, 119);
this.btnUpload.TabIndex = 3;
this.btnUpload.Text = "上传";
this.btnUpload.UseVisualStyleBackColor = false;
......@@ -365,9 +393,10 @@
this.plMain.Controls.Add(this.gbPhotoView);
this.plMain.Controls.Add(this.gbOperating);
this.plMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.plMain.Location = new System.Drawing.Point(287, 0);
this.plMain.Location = new System.Drawing.Point(430, 0);
this.plMain.Margin = new System.Windows.Forms.Padding(4);
this.plMain.Name = "plMain";
this.plMain.Size = new System.Drawing.Size(424, 681);
this.plMain.Size = new System.Drawing.Size(636, 1022);
this.plMain.TabIndex = 2;
//
// gbPhotoView
......@@ -377,8 +406,10 @@
this.gbPhotoView.Dock = System.Windows.Forms.DockStyle.Fill;
this.gbPhotoView.Font = new System.Drawing.Font("宋体", 10F);
this.gbPhotoView.Location = new System.Drawing.Point(0, 0);
this.gbPhotoView.Margin = new System.Windows.Forms.Padding(4);
this.gbPhotoView.Name = "gbPhotoView";
this.gbPhotoView.Size = new System.Drawing.Size(424, 582);
this.gbPhotoView.Padding = new System.Windows.Forms.Padding(4);
this.gbPhotoView.Size = new System.Drawing.Size(636, 874);
this.gbPhotoView.TabIndex = 1;
this.gbPhotoView.TabStop = false;
this.gbPhotoView.Text = "选中照片";
......@@ -387,9 +418,10 @@
//
this.ptbPhotoDisplay.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.ptbPhotoDisplay.Dock = System.Windows.Forms.DockStyle.Fill;
this.ptbPhotoDisplay.Location = new System.Drawing.Point(3, 19);
this.ptbPhotoDisplay.Location = new System.Drawing.Point(4, 27);
this.ptbPhotoDisplay.Margin = new System.Windows.Forms.Padding(4);
this.ptbPhotoDisplay.Name = "ptbPhotoDisplay";
this.ptbPhotoDisplay.Size = new System.Drawing.Size(418, 534);
this.ptbPhotoDisplay.Size = new System.Drawing.Size(628, 804);
this.ptbPhotoDisplay.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.ptbPhotoDisplay.TabIndex = 4;
this.ptbPhotoDisplay.TabStop = false;
......@@ -398,9 +430,10 @@
//
this.plDisplay.Controls.Add(this.lbDisplay);
this.plDisplay.Dock = System.Windows.Forms.DockStyle.Bottom;
this.plDisplay.Location = new System.Drawing.Point(3, 553);
this.plDisplay.Location = new System.Drawing.Point(4, 831);
this.plDisplay.Margin = new System.Windows.Forms.Padding(4);
this.plDisplay.Name = "plDisplay";
this.plDisplay.Size = new System.Drawing.Size(418, 26);
this.plDisplay.Size = new System.Drawing.Size(628, 39);
this.plDisplay.TabIndex = 3;
//
// lbDisplay
......@@ -408,19 +441,23 @@
this.lbDisplay.AutoSize = true;
this.lbDisplay.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbDisplay.Location = new System.Drawing.Point(0, 0);
this.lbDisplay.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lbDisplay.Name = "lbDisplay";
this.lbDisplay.Size = new System.Drawing.Size(63, 14);
this.lbDisplay.Size = new System.Drawing.Size(89, 20);
this.lbDisplay.TabIndex = 0;
this.lbDisplay.Text = "照片名称";
//
// gbOperating
//
this.gbOperating.Controls.Add(this.btnShot);
this.gbOperating.Controls.Add(this.btnEditor);
this.gbOperating.Controls.Add(this.btnDelete);
this.gbOperating.Dock = System.Windows.Forms.DockStyle.Bottom;
this.gbOperating.Location = new System.Drawing.Point(0, 582);
this.gbOperating.Location = new System.Drawing.Point(0, 874);
this.gbOperating.Margin = new System.Windows.Forms.Padding(4);
this.gbOperating.Name = "gbOperating";
this.gbOperating.Size = new System.Drawing.Size(424, 99);
this.gbOperating.Padding = new System.Windows.Forms.Padding(4);
this.gbOperating.Size = new System.Drawing.Size(636, 148);
this.gbOperating.TabIndex = 0;
this.gbOperating.TabStop = false;
this.gbOperating.Text = "操作台";
......@@ -432,22 +469,38 @@
this.btnShot.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.btnShot.Font = new System.Drawing.Font("宋体", 25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnShot.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.btnShot.Location = new System.Drawing.Point(3, 17);
this.btnShot.Location = new System.Drawing.Point(4, 25);
this.btnShot.Margin = new System.Windows.Forms.Padding(4);
this.btnShot.Name = "btnShot";
this.btnShot.Size = new System.Drawing.Size(238, 79);
this.btnShot.TabIndex = 3;
this.btnShot.Size = new System.Drawing.Size(278, 119);
this.btnShot.TabIndex = 5;
this.btnShot.Text = "拍照";
this.btnShot.UseVisualStyleBackColor = false;
this.btnShot.Click += new System.EventHandler(this.btnShot_Click);
//
// btnEditor
//
this.btnEditor.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnEditor.Dock = System.Windows.Forms.DockStyle.Right;
this.btnEditor.Font = new System.Drawing.Font("宋体", 25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnEditor.Location = new System.Drawing.Point(282, 25);
this.btnEditor.Margin = new System.Windows.Forms.Padding(4);
this.btnEditor.Name = "btnEditor";
this.btnEditor.Size = new System.Drawing.Size(206, 119);
this.btnEditor.TabIndex = 4;
this.btnEditor.Text = "裁剪";
this.btnEditor.UseVisualStyleBackColor = false;
this.btnEditor.Click += new System.EventHandler(this.btnEditor_Click);
//
// btnDelete
//
this.btnDelete.BackColor = System.Drawing.SystemColors.ButtonHighlight;
this.btnDelete.Dock = System.Windows.Forms.DockStyle.Right;
this.btnDelete.Font = new System.Drawing.Font("宋体", 25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnDelete.Location = new System.Drawing.Point(241, 17);
this.btnDelete.Location = new System.Drawing.Point(488, 25);
this.btnDelete.Margin = new System.Windows.Forms.Padding(4);
this.btnDelete.Name = "btnDelete";
this.btnDelete.Size = new System.Drawing.Size(180, 79);
this.btnDelete.Size = new System.Drawing.Size(144, 119);
this.btnDelete.TabIndex = 2;
this.btnDelete.Text = "删除";
this.btnDelete.UseVisualStyleBackColor = false;
......@@ -455,13 +508,14 @@
//
// FrmMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(944, 681);
this.ClientSize = new System.Drawing.Size(1416, 1022);
this.Controls.Add(this.plMain);
this.Controls.Add(this.plRight);
this.Controls.Add(this.plLeft);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "FrmMain";
this.Text = "样品拍照采集";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmMain_FormClosing);
......@@ -516,12 +570,13 @@
private System.Windows.Forms.Button btnUpload;
private System.Windows.Forms.Button btnDelete;
private System.Windows.Forms.FlowLayoutPanel flpPhotos;
private System.Windows.Forms.Button btnShot;
private System.Windows.Forms.Panel plSearchReport;
private System.Windows.Forms.RichTextBox rtbMessage;
private System.Windows.Forms.PictureBox ptbPhotoDisplay;
private System.Windows.Forms.Panel plDisplay;
private System.Windows.Forms.Label lbDisplay;
private System.Windows.Forms.Button btnShot;
private System.Windows.Forms.Button btnEditor;
}
}
......@@ -33,6 +33,7 @@ namespace Kivii.Sample.ImageUploader
private int cameraQuantity = 0;//相机数量
private List<DbFile> photos = new List<DbFile>();
private Report currentReport = null;
private DbFile currentPhoto = null;
public FrmMain()
......@@ -310,7 +311,9 @@ namespace Kivii.Sample.ImageUploader
//清空 ptbPhotoDisplay 中的图片
ptbPhotoDisplay.Image = null;
lbDisplay.Text = "";
currentPhoto = null;
if (photo == null) return;
currentPhoto = photo;
var snapshot = photo.Image;
ptbPhotoDisplay.Image = snapshot;
if (photo.Kvid != Guid.Empty) lbDisplay.Text = $"[已上传]{photo.Name}";
......@@ -860,5 +863,35 @@ namespace Kivii.Sample.ImageUploader
}
}
private void btnEditor_Click(object sender, EventArgs e)
{
if (currentPhoto == null) return;
if (currentPhoto.Kvid != Guid.Empty)
{
MessageBox.Show("当前照片已上传,无法编辑");
return;
}
FrmImageEditor imageEditor = new FrmImageEditor();
Bitmap bmp = currentPhoto.Image;
imageEditor.backgroundImage = bmp;
if (bmp.Width > 1280)
imageEditor.Width = 1280;
else
imageEditor.Width = bmp.Width;
if (bmp.Height > 1024)
imageEditor.Height = 1024;
else
imageEditor.Height = bmp.Height + 20;
imageEditor.Owner = this;
imageEditor.ShowDialog();
}
public void setBackgroundImage(Bitmap backgroundImage)
{
this.BackgroundImage = backgroundImage;
}
}
}
......@@ -7,7 +7,7 @@
<ProjectGuid>{9C9A89CF-F17F-4607-A89E-5E07C184EB1E}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>Kivii.Sample.ImageUploader</RootNamespace>
<AssemblyName>样品拍照采集</AssemblyName>
<AssemblyName>Kivii.Sample.ImageUploader</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
......@@ -21,6 +21,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
......@@ -30,6 +31,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<PropertyGroup>
<TargetZone>LocalIntranet</TargetZone>
......@@ -73,6 +75,9 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Configs.cs" />
<Compile Include="Controls\ImageResizer.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\VideoSourcePlayer.cs">
<SubType>Component</SubType>
</Compile>
......@@ -81,6 +86,12 @@
</Compile>
<Compile Include="Entities\Report.cs" />
<Compile Include="Entities\UiSetting.cs" />
<Compile Include="FrmImageEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmImageEditor.Designer.cs">
<DependentUpon>FrmImageEditor.cs</DependentUpon>
</Compile>
<Compile Include="FrmMain.cs">
<SubType>Form</SubType>
</Compile>
......@@ -90,6 +101,9 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Requests.cs" />
<EmbeddedResource Include="FrmImageEditor.resx">
<DependentUpon>FrmImageEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmMain.resx">
<DependentUpon>FrmMain.cs</DependentUpon>
</EmbeddedResource>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment