Merge pull request 'Eliseev E.E. Lab work 1' (#2) from LabWork01 into master

Reviewed-on: http://student.git.athene.tech/ElEgEv/PIbd-21_Eliseev_E.E._Airbus_Base/pulls/2
This commit is contained in:
Евгений Эгов 2022-09-30 10:22:41 +04:00
commit f7d2b72b29
13 changed files with 982 additions and 68 deletions

View File

@ -8,4 +8,19 @@
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Airbus
{
//направление перемещения
internal enum Direction
{
Up = 1,
Down = 2,
Left = 3,
Right = 4
}
}

View File

@ -0,0 +1,154 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Airbus
{
//класс, отвечающий за прорисовку и перемещение объект
internal class DrawingAirbus
{
public EntityAirbus Airbus { get; private set; } //класс-сущность
private float _startPosX; //левая координата отрисовки
private float _startPosY; //верхняя координата отрисовки
private int? _pictureWidth = null; //ширина окна отрисовки
private int? _pictureHeight = null; //высота окна отрисовки
protected readonly int _airbusWidth = 50; //ширина отрисовки самолёта
protected readonly int _airbusHeight = 16; //высота отрисовки самолёта
//инициализаци свойств
public void Initial(int speed, float weight, Color corpusColor)
{
Airbus = new EntityAirbus();
Airbus.Initial(speed, weight, corpusColor);
}
//установка координат позиции самолёта
public void SetPosition(int x, int y, int width, int height)
{
if (x < 0 || y < 0 || width < x + _airbusWidth || height < y + _airbusHeight)
{
_pictureHeight = null;
_pictureWidth = null;
return;
}
_startPosX = x;
_startPosY = y;
_pictureWidth = width;
_pictureHeight = height;
}
//изменение направления движения
public void MoveTransport(Direction direction)
{
if (!_pictureWidth.HasValue || !_pictureHeight.HasValue)
{
return;
}
switch (direction)
{
case Direction.Right: //вправо
if (_startPosX + _airbusWidth + Airbus.Step < _pictureWidth)
{
_startPosX += Airbus.Step;
}
break;
case Direction.Left: //влево
if (_startPosX - _airbusWidth - Airbus.Step > 0)
{
_startPosX -= Airbus.Step;
}
break;
case Direction.Up: //вверх
if (_startPosY - _airbusHeight - Airbus.Step > 0)
{
_startPosY -= Airbus.Step;
}
break;
case Direction.Down: //вниз
if (_startPosY + _airbusHeight + Airbus.Step < _pictureHeight)
{
_startPosY += Airbus.Step;
}
break;
}
}
//отрисовка самолёта
public void DrawTransport(Graphics g)
{
if (_startPosX < 0 || _startPosY < 0 || !_pictureHeight.HasValue || !_pictureWidth.HasValue)
{
return;
}
Pen pen = new(Color.Black);
//корпус
g.DrawRectangle(pen, _startPosX, _startPosY + 10, 40, 10);
//крыло
Brush darkBrush = new SolidBrush(Color.Black);
g.FillRectangle(darkBrush, _startPosX + 10, _startPosY + 13, 20, 2);
g.FillRectangle(darkBrush, _startPosX + 12, _startPosY + 15, 16, 2);
//хвостовое крыло
g.DrawLine(pen, _startPosX, _startPosY + 10, _startPosX, _startPosY);
g.DrawLine(pen, _startPosX, _startPosY, _startPosX + 10, _startPosY + 10);
//заднее поперечное крыло
g.FillEllipse(darkBrush, _startPosX - 3, _startPosY + 7, 10, 5);
//нос самолёта
g.DrawLine(pen, _startPosX + 40, _startPosY + 15, _startPosX + 50, _startPosY + 16);
g.DrawLine(pen, _startPosX + 40, _startPosY + 10, _startPosX + 47, _startPosY + 15);
g.DrawLine(pen, _startPosX + 40, _startPosY + 20, _startPosX + 50, _startPosY + 15);
//задние шасси
g.FillRectangle(darkBrush, _startPosX + 10, _startPosY + 21, 2, 2);
g.FillRectangle(darkBrush, _startPosX + 12, _startPosY + 23, 4, 4);
g.FillRectangle(darkBrush, _startPosX + 8, _startPosY + 23, 2, 4);
//переднее шасси
g.FillRectangle(darkBrush, _startPosX + 35, _startPosY + 21, 2, 2);
g.FillRectangle(darkBrush, _startPosX + 35, _startPosY + 23, 4, 4);
}
//смена границ формы отрисовки
public void ChangeBorders(int width, int height)
{
_pictureWidth = width;
_pictureHeight = height;
if (_pictureWidth <= _airbusWidth || _pictureHeight <= _airbusHeight)
{
_pictureWidth = null;
_pictureHeight = null;
return;
}
if (_startPosX + _airbusWidth > _pictureWidth)
{
_startPosX = _pictureWidth.Value - _airbusWidth;
}
if (_startPosY + _airbusHeight > _pictureHeight)
{
_startPosY = _pictureHeight.Value - _airbusHeight;
}
}
}
}

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Airbus
{
internal class EntityAirbus
{
public int Speed { get; private set; } //скорость
public float Weight { get; private set; } //вес
public Color CorpusColor { get; private set; } //цвет корпуса
public float Step => Speed * 100 / Weight; //шаг перемещения самолёта
public void Initial(int speed, float weight, Color corpusColor)
{
Speed = speed;
Weight = weight;
CorpusColor = corpusColor;
}
}
}

View File

@ -3,12 +3,12 @@
partial class Form1
{
/// <summary>
/// Required designer variable.
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// 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)
@ -23,17 +23,159 @@
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// 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(Form1));
this.pictureBoxAirbus = new System.Windows.Forms.PictureBox();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabelSpeed = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabelWeight = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabelCorpusColor = new System.Windows.Forms.ToolStripStatusLabel();
this.buttonCreate = new System.Windows.Forms.Button();
this.buttonUp = new System.Windows.Forms.Button();
this.buttonLeft = new System.Windows.Forms.Button();
this.buttonDown = new System.Windows.Forms.Button();
this.buttonRight = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAirbus)).BeginInit();
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// pictureBoxAirbus
//
this.pictureBoxAirbus.Dock = System.Windows.Forms.DockStyle.Fill;
this.pictureBoxAirbus.Location = new System.Drawing.Point(0, 0);
this.pictureBoxAirbus.Name = "pictureBoxAirbus";
this.pictureBoxAirbus.Size = new System.Drawing.Size(800, 424);
this.pictureBoxAirbus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
this.pictureBoxAirbus.TabIndex = 0;
this.pictureBoxAirbus.TabStop = false;
//
// statusStrip1
//
this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabelSpeed,
this.toolStripStatusLabelWeight,
this.toolStripStatusLabelCorpusColor});
this.statusStrip1.Location = new System.Drawing.Point(0, 424);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(800, 26);
this.statusStrip1.TabIndex = 1;
this.statusStrip1.Text = "statusStrip1";
//
// toolStripStatusLabelSpeed
//
this.toolStripStatusLabelSpeed.Name = "toolStripStatusLabelSpeed";
this.toolStripStatusLabelSpeed.Size = new System.Drawing.Size(76, 20);
this.toolStripStatusLabelSpeed.Text = "Скорость:";
//
// toolStripStatusLabelWeight
//
this.toolStripStatusLabelWeight.Name = "toolStripStatusLabelWeight";
this.toolStripStatusLabelWeight.Size = new System.Drawing.Size(36, 20);
this.toolStripStatusLabelWeight.Text = "Вес:";
//
// toolStripStatusLabelCorpusColor
//
this.toolStripStatusLabelCorpusColor.Name = "toolStripStatusLabelCorpusColor";
this.toolStripStatusLabelCorpusColor.Size = new System.Drawing.Size(45, 20);
this.toolStripStatusLabelCorpusColor.Text = "Цвет:";
//
// buttonCreate
//
this.buttonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.buttonCreate.Location = new System.Drawing.Point(12, 392);
this.buttonCreate.Name = "buttonCreate";
this.buttonCreate.Size = new System.Drawing.Size(94, 29);
this.buttonCreate.TabIndex = 2;
this.buttonCreate.Text = "Создать";
this.buttonCreate.UseVisualStyleBackColor = true;
this.buttonCreate.Click += new System.EventHandler(this.ButtonCreate_Click);
//
// buttonUp
//
this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonUp.BackgroundImage = global::Airbus.Properties.Resources.Up;
this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.buttonUp.Location = new System.Drawing.Point(692, 325);
this.buttonUp.Name = "buttonUp";
this.buttonUp.Size = new System.Drawing.Size(45, 45);
this.buttonUp.TabIndex = 3;
this.buttonUp.UseVisualStyleBackColor = true;
this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click);
//
// buttonLeft
//
this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonLeft.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("buttonLeft.BackgroundImage")));
this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.buttonLeft.Location = new System.Drawing.Point(641, 376);
this.buttonLeft.Name = "buttonLeft";
this.buttonLeft.Size = new System.Drawing.Size(45, 45);
this.buttonLeft.TabIndex = 4;
this.buttonLeft.UseVisualStyleBackColor = true;
this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click);
//
// buttonDown
//
this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonDown.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("buttonDown.BackgroundImage")));
this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.buttonDown.Location = new System.Drawing.Point(692, 376);
this.buttonDown.Name = "buttonDown";
this.buttonDown.Size = new System.Drawing.Size(45, 45);
this.buttonDown.TabIndex = 5;
this.buttonDown.UseVisualStyleBackColor = true;
this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click);
//
// buttonRight
//
this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonRight.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("buttonRight.BackgroundImage")));
this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.buttonRight.Location = new System.Drawing.Point(743, 376);
this.buttonRight.Name = "buttonRight";
this.buttonRight.Size = new System.Drawing.Size(45, 45);
this.buttonRight.TabIndex = 6;
this.buttonRight.UseVisualStyleBackColor = true;
this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Text = "Form1";
this.Controls.Add(this.buttonRight);
this.Controls.Add(this.buttonDown);
this.Controls.Add(this.buttonLeft);
this.Controls.Add(this.buttonUp);
this.Controls.Add(this.buttonCreate);
this.Controls.Add(this.pictureBoxAirbus);
this.Controls.Add(this.statusStrip1);
this.Name = "Form1";
this.Text = "Aэробус";
((System.ComponentModel.ISupportInitialize)(this.pictureBoxAirbus)).EndInit();
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private PictureBox pictureBoxAirbus;
private StatusStrip statusStrip1;
private ToolStripStatusLabel toolStripStatusLabelSpeed;
private ToolStripStatusLabel toolStripStatusLabelWeight;
private ToolStripStatusLabel toolStripStatusLabelCorpusColor;
private Button buttonCreate;
private Button buttonUp;
private Button buttonLeft;
private Button buttonDown;
private Button buttonRight;
}
}

View File

@ -1,10 +1,73 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Airbus
{
public partial class Form1 : Form
{
private DrawingAirbus _airbus;
public Form1()
{
InitializeComponent();
}
//метод прорисовки самолёта
private void Draw()
{
Bitmap bmp = new(pictureBoxAirbus.Width, pictureBoxAirbus.Height);
Graphics gr = Graphics.FromImage(bmp);
_airbus?.DrawTransport(gr);
pictureBoxAirbus.Image = bmp;
}
//обработка нажатия кнопки "Создать"
private void ButtonCreate_Click(object sender, EventArgs e)
{
Random rnd = new();
_airbus = new DrawingAirbus();
_airbus.Initial(rnd.Next(100, 300), rnd.Next(1000, 2000), Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)));
_airbus.SetPosition(rnd.Next(10, 100), rnd.Next(10, 100), pictureBoxAirbus.Width, pictureBoxAirbus.Height);
toolStripStatusLabelSpeed.Text = $"Скорость: {_airbus.Airbus?.Speed}";
toolStripStatusLabelWeight.Text = $"Вес: {_airbus.Airbus?.Weight}";
toolStripStatusLabelCorpusColor.Text = $"Цвет: {_airbus.Airbus?.CorpusColor.Name}";
Draw();
}
private void ButtonMove_Click(object sender, EventArgs e)
{
//получаем имя кнопки
string name = ((Button)sender)?.Name ?? string.Empty;
switch (name)
{
case "buttonUp":
_airbus?.MoveTransport(Direction.Up);
break;
case "buttonDown":
_airbus?.MoveTransport(Direction.Down);
break;
case "buttonLeft":
_airbus?.MoveTransport(Direction.Left);
break;
case "buttonRight":
_airbus?.MoveTransport(Direction.Right);
break;
}
Draw();
}
// Изменение размеров формы
private void PictureBoxCar_Resize(object sender, EventArgs e)
{
_airbus?.ChangeBorders(pictureBoxAirbus.Width, pictureBoxAirbus.Height);
Draw();
}
}
}
}

View File

@ -1,64 +1,4 @@
<?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.
-->
<root>
<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">
@ -117,4 +57,325 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip1.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="buttonLeft.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAA5gAAAOYBAMAAABC5kGOAAAABGdBTUEAALGPC/xhBQAAABtQTFRF////
AAAA5ubmAP8Aq6urAP4AAI0AVVVVAEAANUbI4gAAAAlwSFlzAAAOwAAADsABataJCQAAFsZJREFUeNrt
nT2LJMkVRZNC0O4WNDtrptppWxS9rDkjBLLFMItcIRZkqmBBrtbS/mzNR+1OV1V+RGbGu++9yHO9O1bl
HE69jIzI6u7pS/ruSxqs/eGvv3z389t2L/BrbfriPtc/nI8f86bdC/xam764z3l3/JzHVi/wVW364j7l
+XjJvxu9wFe16Yv7lPNvMB8bvcCb+jGHyz+1VvuH4+952+IFvq5dyxf3qZy/wvxvixe4I5ivxTw+Hp6A
mbgeXol5fNPgBT7tB+aVmMdjexd4XbuWL+6pPwOzlXoj5ufb2Zavt2v64q7FPP75CZhZa/98BGYr9WZi
8jWbuN5OTMxMXG8nJjDz1u5OTGDmrXdiMjPT1nsx2zfz8i/N7e/dT8yPZnZsTmesd2tMYCaGeQZmK7Uf
mJjATFoHxQRmyjosJjBT1u4MzFbqiJjAzFiHJyYwM9YxMYGZsI5MTGAmrIMPf4CZFOYZmM1c3NjEBGbC
et4vzEua2d/rx8XkpEG2ejgDs5WLmxKTYyPJaj8hJmbmqpNiAjNX7c7AbOVqxh/+MDPzwbwT8zvMTFoH
JuZPwExa79eY3/4IzJx1SMzvmZlJYd6L+eF7zExZB7ZLfgJm0toNiPmBr9mcdUjMl32ZefmX/Bt6QxPz
/TVMNqeT1KFb2Q8nYKasQxPzPTBT1mExgZmyDjz8+cgSmBnriJjAzFgHb2WBmbKOiQnMhLUbEROY+erA
AYMvYgIzXx2bmMDMV0cnJjDz1dGJCcx8dVxMYKar42LuDeYleTf0JibmLUxOGkSvU2ICM1cdX2MOfM0+
ATM2zCkxMTNVnZyYwMxVp8UEZqY6IyYzM9XHHxDzdMLMjB9/TkxgJqozExOYieqsmMzMPLWbExMz09Tu
eU5MYKap82LyNZumzk7M3Zl5+ZeEO3j9vJhsTiepfYGYwExSDwViAjNHLRITmDlqycQEZo5aJiYwU9Su
SExgZqj9c5GYwMxQyyYmMDPUwokJzAz1UCgmMOPXYjGBGb+WTkxgJqjFYgIzfi0Wk7fAotfyiclJg/C1
fGICM3pdIibHRoLXJWJiZuy6SExgxq6HmbdLgJnn8y4Tk5kZui6amJgZui4UE5iRa7dMTGAGrqUHDJiZ
CT7vwomJmYFrt3BiAjNwXTox+ZoNXBeLyVtgcetiMdmcjlr75WICM2pdPjGBGbUuXmMCM27tV4gJzJh1
zcQEZtC6SkxghqzrxARmyNotOmAAzMifd6WYwIxY101MYEasa8UEZsDarRQTmAHr80oxgRmwrhWTt8DC
1dUTk5MG8ep6MYEZrW4Qk2Mj0ephvZiYGaxuEROYwWq/QUxgxqqbxGRmBvuAW8TEzFC1f94iJjBD1U0T
E5ih6raJycwMVQ/bxMTMQLXbKCYwA9Vuo5h8zQaqW8XkLbA4td8qJpvTYWq/WUxghqnbxQRmlFpBTGBG
qRXEBGaQWkNMYAaph3VvlwAz4AesIiYwY9QaExOYMWodMYEZonZVxARmhLrxgAEwI33AOhMTmCFqnYkJ
zBC1kpi8BeZf+1pictIgQK0lJjDdaz0xOTbiXqtNTMx0r7XWmMAMUPt6YgLTuVacmMxM71pTTMz0rVXF
BKZv7WocMABmiE9UV0xmpmutOjEx07V2dcUEpmft6orJ16xnrSwmb4E51soTk81px9rXFhOYfrX2xASm
X60vJjDd6qG6mMD0qgZiAtOr9vXFBKZTtRATmE61MxATmD615skfYDp/IouJCUyfajIxgelTDyZiAtOl
2ogJTJdqIyZvgTlUo4nJSQOP2huJCUx9NROTYyP6aiYmZsqrnZjAlFc7MYGproZiMjPV9VD17ZIpmJhp
XS3FBKa4Gk5MYIqrqZjMTG3tLMXETGntni3FBKa02orJ16y0mk5M3gKT1t5WTDanhbU3FhOYymosJjB1
1VxMYOpqZy0mMGW1f7YWE5iy2puLCUxVtZ+YwJRVgZjAFFWFmMAU1c7wgAEwtR9BIiYwNVUxMYEpqhIx
gampEjF5C0xRBQ9/BmBy0sCkaiYmMBVVcyt74tiIooomJmYKqkxMYNrXg0pMvmbNq05MzDSvvUzMgXVm
s/GBKRTzBubPf2k1vRfMTifmDcyG85/eBabq4c++YB7fdC4whWLuCObx8aCH2Qkn5q5gflx46c1Uirkr
mI8HOUypmLuCeZS/BSadmDuD+VYMs9eKuS+Y36hhasXcF8xHLUy1mPuC+UYMUywmMO2qXMx9wTxqYarF
BKZZ1Yt5enk57ihKmAfF2yW3NI87ihCmg5jANIMpn5ifYP7juJ/oYLqIeTr97bifCN+B8BDzdPrhuJ/o
YCoPGLzKnoamDqaPmKeXHX3P/vYdaL2f6TQx9/XYQAXTS8yP+ftxLxHBdBPzU3bzRasy00/Mj3n5tdn8
oofpKubHvD+1mh/0MDtXMU8vLx8azfs/yWH2z75iNhwHmL5ithw5TO+J2XL0MBHTLGqYiGkYNczO4YDB
biKG2SGmYdQwmZiGEcNETMtcw7z8z5vtZyKmaaQwefhjGy1MxDSNEiZrTOMoYTIxjSOEiZjWEcI8IKZx
dDAR0zxCmIhpHRlMxLSPDCa3svZRweThjyAqmIgpiAomE1MQFUzEFESzn8mtrCQimIipiAQmYmqigYmY
kihgIqYoEpiIqYkAJmKqooCJmKLYw0RMWexhHni7RBVzmIipiz1MJqYs1jDZLhHGHCZi6mINEzGFMd7P
ZGIqYwuTW1lpbGEyMaUxhYmY2tiaiZjSWMJETHEsYTIxxTGEySF2dSxhIqY4djCZmPIYwkRMdcxgIqY+
ZjD5+Up9zGAipj5mMJmY+hjtZzIxPWIEEzE9YgOThz8uMYKJmB4xgcnE9IkJTCamTyxgIqZTLGDy85VO
MYCJmF6xgImYTqkPEzHdUh8mt7JuqQ6z4+GPW+rDREy3VIfJxPRL9f1MxPRLZZjcynqmNkzEdExdmIjp
msowEdMzVWEipm/qwkRM19SEiZjOqQoTMX1TESZieqciTH6+0jv1YCKmeyrCZGJ6px5MxHRPPZiI6Z5a
+5m8XRIg1WAipn8qweRWNkIqwWRiRkgdmIgZIpXMRMwIqQITMWOkCkwmZozUgMkaM0iqwETMGKkAk4kZ
JTVgImaQbIfJdkmYVIDJAYMo2Q4TMcNk834mEzNOtsLkVjZQtsLk4U+gbITJw59I2QoTMQNlG0wmZqhs
g8nEDJVNMBEzVjbB5OcrY2ULTMQMlk0wETNWNsBEzGjZAJNb2WjZAJOHP9GyASZiRsvq/UwmZryshska
M17WwkTMgFkNEzHjZSVMxIyYtTARM2DWwUTMkFkJEzEjZhVMxIyZdTARM2TWwETMoFkDk5+vDJoVMHm7
JGrWwGRiBs0KmIgZNcv3MxEzbBbD5O2SuFkOEzHDZilM1piBsxQmEzNwFsJEzMhZaiZiBs4ymIgZOstg
MjFDZxFM1pixswwmYobOEphMzOBZApOJGTxLYCJm8CyByQGD4Cnfz2Rihs8CmEzM6CmGiZjxUwyTW9n4
KYXJw58EKYaJmPFTCJOJmSGFMJmYGVIGEzFTpAwmPy2SIkUwETNHymAiZoqUwGS7JEmKYCJmjpTARMwk
KdjPZGJmyTxMbmXTZB4ma8w0mYWJmHkyDxMx02QOJmImyixMxMyTGZiImSlzMBEzUaZhImaqzMBEzEyZ
hImYuTIJk5+vzJVJmIiZK5MwmZi5MrGfycTMlgmYiJkt4zB5uyRdJmAiZraMwmRi5ssoTCZmvozBRMyE
GTUTMfNlBCZiZswITCZmxgzDZI2ZMiMwETNjBmGyXZIzwzARM2UGYSJmzgztZ/YcMMiZAZisMbNmCCYT
M2nuYSJm2tzD5FY2be5g8vAnb+5hciubNrcwmZiJcwuTiZk4NzARM3NuYPLTIplzAxMxM+caZv8OMRPn
GuYBMTPnGubDvZgnkibXMP+ImJlzDfMdYmbONcwzYmbOJEzEzJVrmL9cw/zniWTKNcwjMDNnEua3J5Ip
0zdA/+TxT6bMLE1OJFFmHhqgZqbMPc47kTy5eT3hiJqJcwPzHWomzg3MB9RMnNu3wM6omTfzB7pQM01u
j1oeUDNvCg5Bo2aW3L2ewNTMm/u3wJ5RM2uKXuk7kRQZeHOaqZk1AzC5oc2ash+oQM0UGfrpGNRMmsHf
AULNnBn8IzXc0ObM8F8cQs2UGfnzUaiZMSMwUTNjyn/W+0SiZ+yvJ6BmwozBZK2ZMAv+SA1qRs/oH6lB
zXxZ8ofdUDN4xv/kIje06TLxl205cpAty/5M8YlEzgRM1prZMgUTNZNlCiZqJsskTNTMlWmYqJkq0zBR
M1VG9jO/ZOjvYqBm3EzDZGqmygxMbmgzZQ4maibKHEzUTJRZmKiZJ7MwUTNP5mFy5CBN5mFy5CBN5mEy
NdOkACZHDrKkBCZqJkkJTKZmkhTBRM0cKYOJmikys595qaw1U6QMJlMzRcpgomaKFMJEzQwphMlaM0NK
YfIYKEGKYaJm/BTDZF8zfsphckMbPuUwuaENn3KYqBk+C2CiZvQsgMkNbfQsgomasbMIJmrGTtl+5qXy
UljsLILJ1IydZTB5DBQ6C2Gy1oychTBZa0bOQpioGTlLYaJm4CyFyQ1t4CyGyZGDuFkOEzXDZjlM1pph
swImakbNCpjc0EbNGpioGTSrYKJmzCzbz7xU1IyZVTC5oY2ZdTBRM2TWwUTNkFkJEzUjZiVM1IyYtTBR
M2DWwkTNgFkNkyMH8bIaJk9o42U1TKZmvKyHydQMlw0wUTNatsBEzWDZAhM1g2XVfualckMbLFtgstYM
lk0wUTNWNsFEzVjZBhM1Q2UbTNaaobIRJm+eRMpWmKgZKFth8oQ2UDbD5IY2TjbD5IY2TjbDZGrGyXaY
qBkmFWCiZpTUgImaQbJpP/NSUTNIasDkMVCQVIGJmjFSBSaPgWKkDkweA4VIHZisNUOkDkzUDJFKMFEz
QirB5IY2QmrBZK0ZINVgoqZ/qsFkremfejBR0z0VYaKmdyrCRE3v1NjPvFTWmt6pCJOp6Z2aMLmhdU5V
mKjpm6owUdM3dWGipmvqwkRN11SGiZqeqQwTNT1TGyZHDhxTGyaPgRxTGyZT0zHVYaKmX+rDRE23GMBE
Ta/U3M+8VNT0igFM1ppesYDJWtMpFjC5oXWKBUzUdIoJTNT0iQlMbmh9YgOTN09cYgQTNT1iBJO1pkes
YHJD6xArmNzQOsQKJlPTIXYwUVMeO5ioKY/Bfual9qw11bGDydSUxxAmj4HUsYSJmuJYwuQxkDimMHkM
pI0pTB4DaWMKEzW1sYWJmtLYwuSGVhpjmKw1lbGGiZrCWMNkagpjDhM1dbGHiZqyGO5nXiprTVnsYTI1
ZbGHyQ2tLAKYbJ6oooCJmqIoYKKmKBKYqKmJBCZqaqKBiZqSaGCipiQimDwGUkQEk8dAiohgMjUVkcFE
TfvIYKKmfez3My+Vl8LsI4PJ1LSPDiZrTfMIYbLWtI4QJmtN6whhoqZ1lDBR0zhKmNzQGkcKkzdPbKOF
iZqm0cJkrWkaMUzUtIwYJje0llHDRE3DyGGipl10+5mXipp2kcPkhtYuepioaRY9TB4DmcUBprOaH04f
Gs17B5hMTav84ADTd1/zx3/92mp+cYDp+hjo78edRATTU83dsJTB9FPz5bibqGD63dD+47ibyGB63dDu
SEwhTCc1fzjuJ0KYPmr+7bifCGH6qLmjkSnZz7xUlxvaPY1MJUyXtSYwjaqDmi/fH3cUJUyHG1pg2lW5
msC0q3I1dwXzjRamXE1gPrXzUtiuYD6KYarV3BXMb9QwxWvNXcF8q4YpXmvuCmanhimemnuC+aiHqVVz
TzDfOsCUqrkjmI+dB0ylmvuB+ea3/+dOs595qUo1dwPzf5/f6dHDVK41r2H+/JdW03deMIVqXsN82zUc
J5hCNa9h/ll1gU618/gIusdAwDSvurXmzdcsMA2qTE3MtK8yNYEpqKobWmAqquhXDpiZiipSEzMlVTM1
gampEjWBqakSNZmZoqpQc2dmXv5FuJ95qZK15v2DdrfrVVS/j6BQE5iqKlATmKoqUBOYsmr/GAiYsmqv
JjB11XxqAlNXzfc1gamr5mtNYAqrtZrAFFZrNYGprMY3tMCUVls1gamtpmoCU1tN1dwZzEv8duFM1eSk
gbhaqglMcbVca3JsRFwtb2gxU10NpyYw5dVOTWDKq52azEx9NVMTM/XVTE1gOlQrNYHpUK3WmsxMh2q1
1sRMl2qjJjBdqo2afM36VBM1eQvMpfYmx9vZnPapJmoC06laTE1gOlULNYHpVQ3UBKZXNXgMBEyvavAY
CJhutb6awHSr9dUEpl+tfkMLTMda+zEQMB1rbTWB6VkrT01guta6agLTtdZVk7fAXGtdNTlp4FurqglM
509UU02OjTjXmmpipnOtqSYwvWvFx0DA9K4V1WRmutd6UxMz3Wu9fU1gutd6T2iB6V+rqcnM9K/V1MTM
CLWSmsCMUCupyddsiFpHTd4Ci1ArvRTG5nSIWkdNYMaoVaYmMGPUKmtNYMaoVdaawAxSa0xNYEapFdQE
ZpRaQU1ghqnb1QRmmLpdTWDGqZvVBGacullNYAaqW9UEZqS6UU1gRqob1eQtsEh1o5qcNAhVt+1rAjPW
B9ykJsdGYtVNUxMzY9VNagIzWN2iJjCD1S1HDpiZweqWx0CYGa1uUBOY0eoGNYEZrq6/oWVmxqur1cTM
gHWtmsAMWNeqyddsxLpSTd4CC1jX3tCyOR2xrlxrAjNiXakmMEPWdVMTmDHrKjWBGbOuUhOYQeua00DA
DFrXqAnMqHXF1ARm1LpirQnMqHXFWhOYYevyqQnMuHWxmsAMXJeqCczAdamavAUWuC5Vk5MGketCNYEZ
+vMuU5NjI6HrMjUxM3Rd9hgImKHrsrUmMGPXRVOTmRm8LlETM4PXJWoCM3pdoCYwo9cFajIzw9dyNTEz
fi1WE5jxa7GafM0mqKVq8hZY/Fr8GIjN6QS1VE1gZqiFx9uBmaEWqgnMFLVsagIzRS1TE5g5apGawMxR
i44cADNHLVprAjNJLVETmElqiZrAzFILbmiBmabOqwnMPHVWTWDmqbNq8hZYnjqrJicNEtU5NYGZqM6t
NTk2kqjO3dBiZqY6MzWBmapOqwnMVHVaTWZmrjp5Gggzc9VJNYGZrE5NTWAmq1NrTWZmsjq11sTMdHVc
TWCmq+Nq8jWbr46qyVtg6Wo/utZkczpfHVUTmAnr2NQEZsI6piYwM9YRNYGZsY48BgJmxjryGAiYKevw
1ARmzjo4NYGZsw6qCcykdUhNYCatQ2oCM2sdUPMDMLPWATWBmbUOqPnjrmBe0sSG3sBjIE4aZK0DU/Mn
YKa9mjs1v7v6mn0CZqJ6f+QAM9PWezWBmbc+ALOdi5tUk5mZrD5gZjsXdzgDs5mL6x+A2c7FTajJzMxW
J9TEzHz1DMx2Lu6Br9mGLu68VzMv/9LS/l4/9oSWzemEdUxNYGasD8Bs5+JG1prAzFhH1prATFmHpyYw
c9YHYLZTB9UEZtL6DMx26pCawMxaH4DZTh1QE5hp6wMwG6pnYLZTH3YH85IW9/fu1OSkQeJ6u9bkpEHm
iztjZjv1ATPbqTdqtneB17Vr+eJu1WzwAp92BPPqyMGbwxMwE9erx0CPwMxdX0/Nb1q8wD3BfD013zZ5
gXuC+VXNz9+ywExdf1fz341e4NfatXxxX+q712ICM3f9sjx50zd7gb/XruWLu9TDX3/97uf+0O4FfqlP
T/8H7joK30yIC9IAAAAASUVORK5CYII=
</value>
</data>
<data name="buttonDown.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
RrMxG2pfW2X6yEFjttS+Nss0mm3ZUvvaLNMfu2zKptpXA5lGsyEbal/FuO4+81wpzFXzNjbUvorxVpke
AzVjQ+2rkUz3mq3YUvtqJdNVsxGr3vbVR6Z7zUZUHmIfK9NotmFT7auVTE9om7Ct9tVOptFswLbaVzOZ
RrMBa9/21U+m0dxM9ecrR8v0kYPNbK19NZRpNLeytfbVUKar5kY2176ayjSam9hc+2op02OgTWyvfZUy
Dzffgz5hNDfQpPZVjFtk+mOXt9Om9tVSptG8meU95kSZR/eat9Ko9tVSps2TW6kc/syU6THQjbSqfTWV
6V7zNm5+21dPmR4D3USz2ldjmUbzBprVvtrK9BjoBqo/XzlbptFcT7vaV2OZrpqraVj7ai7TveZKGta+
Wst0r7mSlrWv5jJdNdfRrvZVjJvuM19Go7mCdrWvYmwk02iuYPGrbCCZfqG9noa1r04yjebVNKx99ZHp
XvNqNr3ta5BMo3klLWtfnWQazStpWvvqJtNjoKuotUtCyfQY6Cra1r66yXTVvIaNb/saJdNV8wrq95jR
ZBrNizSuffWT6SMHF2ld++oo02heonXtq6NMf+zyAs1rX6XMQ6tr0SeM5lkW95htLTSU6V7zHF1qXx1l
egx0hi61r34yfVPYGfrUvnrKdNWs0uhtX+NkutesUjv8CSzTaNboVPvqKdMT2gq9al99ZRrNRXrVvrrK
NJqLtHvb11iZRnOBbrWvvjJ95GCBfrWvzjKN5mv61b46y3TVfEXH2ld3mUazoFvtqxhb3me+jEbzGxYP
fzp87H1kGs1v6Fb7GiLTRw6+pl/ta4xMo/kVy/eYaWS61/yKjrWvMTJtnnyh0i7JI9NovtCz9jVIpqvm
Z5q+7WuOTI+Bnula+xom02h+pGvta5RMnwb6SN/a1zCZRvOJvrWvYTJdNR+6174GynSv2bv2NU6me83u
ta9S5qHTLekTu181B9S+irGfzL1Hc0Tta5zMnUdzeY+ZVObOS2FDal8DZe46mkNqX+Nk7nqv2eltXxNl
7jiaY2pfA2XuOJqDal9DZe72GKj285WJZe72GGhU7WuozL2umqNqX0Nl7nTVHFb7Gixzl9EcVvsaK3OX
jxyMq30NlrnHaI6qfRVjx/vMl3F3zZNub/s6Pw6RubtoLu4xITL39oV2WO1risydHQMNq33NkLmzvea4
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
WHROqhnWrFYAAAAASUVORK5CYII=
</value>
</data>
<data name="buttonRight.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAA5gAAAOYBAMAAABC5kGOAAAABGdBTUEAALGPC/xhBQAAABtQTFRF////
AAAA5ubmAP8Aq6urAP4AAI0AVVVVAEAANUbI4gAAAAlwSFlzAAAOwAAADsABataJCQAAGCxJREFUeNrt
nU2LHEcWRdNFg2dbM7bby6LwP2jK6xEY/ANEe2+M963GMLM1xoN/9thSy5Ki4kXlV0S8G++c3dNGBIeb
2ZWRN2M6n0/TO87vGG48Hb7/9Y9fTuMu8O8xgMzDm+Of3J+QqT+eXh3f8gUy9cfPjy88DbrAQDLfB/PP
C+005ALPgWTeHY9JNJEpO372QeZLNJGpOn64yv4VzcN4C/x4HF7mm49k3p/GW+DH4/CX2ePHPA24wHNU
mW/vmshUHe+OV9FEpur4zfEqmsgcJJnHZ2ROoyTzr2gOLHOaDi//NOSYJvP4NPZ6Y8m8R+Y4Ml8eA52R
OYLM95snyBxA5t/7mkOuN5rM99Eccr3RZP71W3PY9YaT+RLNIdcbTubLXXPI9caT+S6aQ643nsx3vzWH
XG9AmW9fORhyvQFlvr1rDrneiDL/umsOud6IMo/PhxHXG2w/80M02ZyWf9Pgw10TmcMk88PmCTL1Zf69
r4lM/cvsy+vtyJxGSOb7aCJzBJkv0UTmCDJfNk+QKTPeFWS++4MWmUMkc7hSWGiZo5XCQst8+zYQMmXG
T+6Zv+aiiUzNZP5wfdc8IFNU5k8/XkXzNJTMSPuZP397HU02p0Vl/vRwHU1kqsp8/DZ31xxpvYFkvs5F
c6j1RpJ5yURzqPWGSqYdzTHWG0qmHc0x1hsrmWY0x1hvLJkX6w/aMdYbLJkPucdAZ2RKyrTummOsN1oy
jbvmGOuNJtOI5hjrDZfMfDTHWG84mZloDlIKC7Wf+ZLMXDTZnPY/Zi+zubsmMlWTWdg8QaaazIu9r4lM
scus/RgImZPeZdbePEGmnEz7rolMPZm535ry6416zzSjiUzBy6x110SmoEwrmshUlGn81kSm39G+Zxq/
NZEpeZnN3zWRKSkzf9eUlhlxc7oQTTanRWU+DFgKiyvzMl4pLHAyxyuFBZZZiKboeiMn097XFF1vZJl2
NEXXGzqZZjRF1xtapvnKgeh6YyfT+oNWdL2xZQ5WCguezLFKYcFlGm8Dia43ejKHKoVFl5n/rSm53sj7
mYVosjkt9tpIKZrIVE3mKKUwZD6UmifIVLvMlqKJTLnL7CClMGSWo4lMPZlmNJGpd88coxRGMu1oHs7I
nBRlWq8cIFNRpnHXRKbiPdO4ayJT8jI7QCkMmeVoaslkP7MUTTanRWUOUQpDZiGayFRN5gClMGTOiKbK
epFZiqZYKQyZxWhqrReZxWhOUutFZjGaz1LrReaMaKqsF5nlaEqVwpA5I5oq60XmrWgekCmazPxvTZX1
InNGNDXWy37mjGiyOa322kgpmshUTaZsKQyZ86IpsV4us4uiiUy5y6y9r4lMOZn2viYy9WSa0USm3j3T
jCYyBS+zmieFIXN2NKczMidJmZKlMO6Zi6KJTMnLbP5tIGRKylQshU3sZ86P5hOb06IyNUthyJwfTWSq
JlOxFIbMBdH0vl5kLo+m2/Uic3k03a4Xmcuj6Xa9yFweTbfrRebyaLpdLzKXRfNwRqZmMo1XDtyuF5kL
o3lGpmgyxU4KQ+bCaD67LYWxn7kimmxOi702UojmEzJVk6lTCkPmqmgeXK6Xy+yqaJ5crpdkbokmMuVk
ypTCkLkymh7Xyz1zZTQnh+slmSuj+exwvcjcEk1kKsrUKIVxz9wSTWRKXmYlTgpD5pZoepPJfub6aLI5
LSpTpBSGzFlolMKQOROFUhgy52GeeYJMwWQqlMKQORP7rulnvcicjbWv6We9yJyLGU0/60XmfIxo+lkv
Mmfj/6QwZC7A+0lhyJyP+1IYMpfgvBSGzAX4LoWxn7kQx6UwXhtZiOdSGMlcjN9SGDKX4rgUxmV2OW5L
YSRzMfYX9ZApJ9O+ayJTT6bbUhj3zDU4LYWRzBV4PSkMmavwWQpD5hqM35rIVLxnGr81kSl5mfVZCkPm
SjyWwib2M1fhtRSGzFX4LIUhcw1OS2HIXIfLUhgyV1GIJjLlkmnvayJTTqbLUhgy1+KwFIbMlXg8KQyZ
q/F3Uhgy12J95QCZisn0VwpD5mr8lcKQuQFvpTBkrif/W7PbetnP3IanUhivjWzDVSmMZG7FUSkMmRux
myfI1EumHU1kit0zSx+7RKZeMv2UwpC5GXNfE5mCybT2NZEpd8+0o4lMxWQa0USmokwvJ4V9JHNI7pok
08lJYe/+z8N3o/J9E5lOSmFvZf73GIN6yfRRCvuTw5tjEOrJdFMKe3WMQsVkOimF3R3DUFGmk1JYnGBW
TaaPUtgxDjVluiiFBbrK1k2mh1LYZ8c4VJVpv3LQTmagW2blZJp3zXYyw/zIPNaW6aAUhsz96F4KOwai
ssz+J4UdA1E7md1LYcdA1JZp/NZEZg1qB9P4rYnMGlSX2bsUdozDVw/16VoKiyTzy/ou+5bCIsn87aEB
PUthkWS+buCyaykskMwWt8yHrqWwQDJfN3Fp72sicz9+f2iEta+JzN1o5rJjKewTmV//MSr/+/mhHd1K
YZ/I/O0BttPvpLBPZP7r8jgoD48tdfY6KexTmQ+wA8ZXDpCpSadSGDIr0KsUhswq9CmFIbMGvUphyKxC
n1IYMmvQqRSGzDp0KYUhswqFfU1k6mFGE5ly2B+7RKYgHUphyKyE+QctMhUx9jWRKYgVTWRKko8mMhVp
f1IYMivS+qQwZNYj91vzgExV2pbCkFmTxqUwZNalaSkMmVUp7GsiUw/zi3rIlMPe10SmIA1PCkNmZcxo
IlMRI5rIFKRhKQyZ9WlWCkNmddqdFIbMBrQqhSGzPvnHQMgUJfcYCJmaNCuFIbMFjUphyGxAq1IYMpvQ
phSGzBbYzRNkCtKkFIbMJth3TWQKYr1ygEw9mpTCkNmKBqUwZDaixUlhyGxG/ZPCkNkK47cmMjWpXgpD
ZjPql8KQ2ZDKpTBkNqR2KQyZTalbCkNmSyqXwpDZlqqlMGQ2pW4pDJmNqVkKQ2ZbzFcOkKlIxVIYMhtj
/UGLTEnyf9AiUxEjmsjUJBtNZEpS76QwZHag1klhyGxPvVIYMjtQqxSGzPZUK4UhsweVSmHI7EAhmsjU
w9zXRKYc9r4mMgWpclIYMrtgRhOZihjRRKYgVUphyOxFhVIYMjtR46QwZHZj/1IYMnuRfwyETFH2LoUh
sx+7l8KQ2ZOdS2HI7Ij9hBaZgpjRRKYc9scukSnIrqUwZHbFfOUAmYoYrxwgU5BdS2HI7M2OpTBkdmbP
k8KQ2Z39TgpDZm/yvzWRKcpupTBkdmfHUhgy+7NbKQyZ3dmvFIZMB+xVCkNmf3YrhSHTAzuVwpDpgL1K
Ych0wT6lMGR6wHzlAJmK7FIKQ6YLrD9okSlJ/g9aZCpiRBOZmmSjiUxJ9iiFIdMNm0thyHTD9lIYMh2x
tRSGTD9sLoUh0xMbS2HIdIS9r4lMQax9TWTqYd41kanIppPCkOkKK5rIlCQfTWQqsqkUhkxvbCiFIdMZ
W04KQ6Y71pfCkOmNLaUwZLpjfSkMmd7YUApDpj9Wl8KQ6Y7CviYy9TCjiUw57I9dIlOQlaUwZDrE/IMW
mYoYrxwgU5CVpTBk+mRVKQyZLll3UhgynbLmpDBk+iT3W/OATFWWl8KQ6ZUVpTBk+mVxKQyZbinsayJT
D/OLesiUY3EpDJmeWVgKQ6ZjlpbCkOmaZaUwZHrGeuUAmZIsKoUh0zXGH7TI1CT7By0yJclHE5mi5KKJ
TE0WlcKQ6Z0FpTBkOmdJKQyZ7plfCkOmd+zmCTIFmV0KQ6Z77LsmMgWx9jWRqYe5r4lMRWaeFIZMAaxo
IlOSfDSRqcjMUhgyNZhVCkOmBPNKYcgUYUYpDJkizCmFIVOG26UwZKow46QwZOpw86QwZMpgRxOZgljR
RKYe5isHyFTkRikMmUJYrxwgU5L8KwfIVORGKQyZWhRLYciUonxSGDLFKJ0UhkwtyqUwZIpRKoUhU4ti
KQyZahRKYcgUoxBNZOphfuwSmXIUSmHI1MMshSFTDrsUhkxBrFIYMvWwXjlApiRGKQyZghh/0CJTk+wf
tMiUJB9NZIqSK4UhU5PsviYyVbmK5hfIVCUTTWTq8uP1dRaZolxH85/I1OXHq5smMlW5iuY9MoVJo4lM
Yb5F5jgkMr9Gpi6PP3LPHIXHH/gDaBge+WkyDFfB5KGBLo88zhuG62AeT8jU5HIdzC8OyNQkE8wnXhvR
JBPM+xMyNckFkxe6NMkFc+JVS03ywUSmJJlgHqgnaJIJ5jMyNTHumMhUxLhjIlOQi3HHRKYgZjCRqYcZ
TGTKkQsmX7XUJPunLDI1KQUTmVpk/5Tl48GaZB/+IFOS/MMfZEqS/42JTEVyweSQGlGMhz/IFMTaLkGm
INZTWWTqYW6XIFMP6wUDZOphvmCATD3sfUxkqlHYLuHEITUK2yXIVCPXLkGmJtk7JjIlyf/GRKYkRu0L
mYIYD3+QqYhV+0KmHtZTWWQKYj38QaYe5nYJMvWwa1/IVCP/aRFkSlKofSFTjEuh9oVMMQrbJS8S2c9U
oVT7QqYYpdoXMrUo1r6QqUX2T1lkSpL/jYlMScq1L2QqYbwri0xFbtS+kCmE9fAHmYJY7RJk6mG2S5Cp
h7ldgkw57O0SZMpxu/aFTBlm1L6SEZlemVP7QqYGpX1MZIoxq/aFTAnm1b6QKUH+4Q8yFbFO+0KmIDNr
X8gUwPh8JTIVmVv7QqZ/7NO+kCnH7NoXMt1TOO0LmWqYn69Ephz25yuRKcf82lcyItMdC2pfyPTOgtoX
Mr2Ta5eckCnJktoXMn2T/42JTEkW1b6Q6Rrj4Q8yFVlW+0KmZxbWvpDpmVunfSFTh5unfSFTh6W1L2T6
xf58JTLlWFz7QqZbLstrX8mITDfkXjBApiZral/IdMqa2hcyfbKq9oVMn8w77QuZChi/MZGpyLraFzI9
Yr0ri0xBVta+kOmQ2ad9IdM/ZrsEmXLY7RJkyjH/tC9kemfBaV/I9M7q2lcyItMBq2tfyHTH+toXMr2x
5LQvZDpnQ+0Lmc7YUvtCpjPyD3+Qqciy076Q6ZpNtS9kusL6fCUyBdlW+0KmJ5ae9oVMx2ysfSHTEYtP
+0KmX+zPVyJTje21r2REZj9WnPaFTKdk75jI1GSH2hcyvZBtlyBTkj1qX8j0gfEbE5mK7FL7QqYLrIc/
yBRkn9oXMj2wU+0LmR5Ye9oXMv2x+rQvZPpjr9oXMvtjvfmDTEH2qn0lIzI7cNmr9oXM/hQ+X4lMMbLB
PCFTkv1qX8jszY61L2T2ZstpX8j0hfH5SmQqsmftC5l9sdolyBRk19oXMruy8bQvZHrCbJcgUw7785XI
lGPraV/I9MPuta9kRGZDdq99IbMf20/7QqYX9q99IbMXe5z2hUwnVKh9IbMTNWpfyOyE8fAHmYLsc9oX
Ml1QpfaFzC6YL7EjU486tS9k9mCv076Q6YBKtS9kdmC3076Q2Z9Kta9kRGYLatW+kNmB3U77QmZ39jvt
C5ndqVb7QmZ7su0SZEpSr/aFzNYYvzGRqUjF2hcyG2M9/EGmIDVrX8hsS9XaFzLbsu9pX8jsyc6nfSGz
J3VrX8hsSe3aVzIisya1a1/IbMeldu0Lme3IvsSOTEnyr+QhU5L6tS9ktqJB7QuZrahx2hcy+2B8vhKZ
irSofSGzDWa7BJl6NKl9IbMJlU77QmYPzM9XIlMOu4+JTDna1L6SEZlVaFT7QmYLGtW+kNmCWqd9IbM9
rWpfyKxPvdO+kNmcZrUvZFanXe0LmdUxHv60lnl5HJTXr9u5rHna1wKZvz2MyqXh/9Ww9lWS+fUfw9Iu
mebnKxvLHJkvW8lsWfuKKvP4exuXdU/7QuYLPzW51DatfcWV+WULmY1rX8l4jEMLmbnfmMisQINfXq1r
X3FlNviDtvppX8h84avq19n6p30h8z3VZTavfSGzosxsuwSZNaj9uL197SuwzMqPDayX2JFZg8oyO9S+
kvHNMQ51ZZrtEmTWoK7MHrWvZHx1jENVmV1qX8n42TEOVWW2Oe2rPN4d41BTZqPTvsrj+RiHmjK71L6S
cToFumlWlJn9tEhzmedA19mKMvvUvq5kBopmPZmtTvu6JTPQT816MrMvsfeQeTr85xiDajLzr+R1kfnn
37bfjcr3TWT2qn1lZY7LXQuZ3Wpftsxm/2fL8ZsWMtud9hVbZotkWp+vRKZgMvvVvpC5N2a7BJl6l9mO
ta9gMusns+lpX8isK9P+fGV7mU322fqN1S+zfWtfVyMyt9D4tC9kVpSZvWMiU1Nm59oXMneV2fi0L2TW
k9m79oXM/Wh/2hcyq8nsXvtC5m70r30hczeshz/I1JPZ47QvZFaS6aD2hcydMD9fiUw9mR5qX8jcBxe1
r2RkP3MlHmpfychrIyvpc9pXbJnVkln4fCUyxWRe+pz2FVtmrctsp9O+YsuslMxep30hs4JMJ7UvZO4i
M9suQabiPdNL7SuYzCrJtB7+IFNQppvaFzI3Yz6VRabePdNP7SuYzArJdFT7SkZkLqbnaV/lcWI/cyHO
al/JiMxFOKt9JSMyl1D6fCUyxWR6q30lIzIX0Pu0r1sjMheQf4ndz3qROR/jJXY/60XmfPzVvpIRmbNx
WPtKRmTOpv9pX7dGZM7F+nwlMgVleqx9JSMyZ2L2MZGpJ9Nl7SsZkTkPj7WvZGQ/cy4Oa1/JyGsjc/FY
+0pGkjkXF6d9lUdkbgjmwdl6ucxuCCYyRZPp47Sv8ojMDcFEpqRML6d9lUfumRuCiUzFZHqtfSUjMlcG
8xmZzcddZPo57as8cs9cF0wfta9kJJnrgulyvcjcEEx3MtnPXBNMt+tF5vJgul0vMhcH8+B2vchcGsxn
ZGrKvHg77as8InNhMJ8OyJSU6e+0r/KIzMXBRKamzHy7xO16kbk4mMgUlGm+xO52vchcHExk6sm02yVu
14vMxcFEppxMgdpXMrKfuSiYrtfLayOLgjm5Xi/JXBNMZIrJzH5axPd6ucwuCeYBmZLJ9HnaV3lE5vxg
PiNzkpRpvMSOTMV7pkbtKxlJ5uxgHs7InBRlej3tqzwic24wT/7Xyz1zSTCRqZdM+/OVyJSTKVP7SsaJ
/cx5wRRZLzJvB/NZZb3InB1MZKrJdH7aV3lE5s1gHmTWi8zbwUSmqEznp32VR2TeDiYyFWX6P+2rPCLz
djCRKShTr/aVjMgsBvMZmV7GZTIVTvsqj8gsBdN77SsZkVkKptR62c8sB1Npvbw2cuOOqbRekjkrmMgU
k6lw2ld55DJbCuYzMjWTeVE47as8IrN0xzwgU1Kmxmlf5ZF7ZjGYyJRMptEuQaagTM3aVzIis3THROYk
eM8UrX0lI8ksBhOZejJVa1/JOLGfqV37SkZkSp32VR7Dy9Q67as8hpcpXftKxugy858WEV1vdJnata9k
DC5T7bSv8hhcpvESu+h6Y8u0XmIXXW9smeq1r2QMLVO+9pWMoWXqnfZVHiPLND9fiUw9mfq1r2QMLFPv
tK/yGHo/U732lYyhXxuRr30lY+hkFj5fiUwxmdlgKq838mVW8LSv8hg4mYqnfZXHwDIHqH0lY2SZgqd9
lce498wRal/JGDaZmqd9lcewMoeofSVjVJlj1L6SMeo90/x8JTLlkql62ld5DCpzkNpXMk4h9zMHqn0l
Y0CZA9W+kjGeTOnTvspjPJkj1b6SMZxM7dO+ymM4mfnfmGOsN5rMi/ZpX+Uxmkzx077KYzCZ6qd9lcdg
MgerfSVjNJlGu2SM9caSOVrtKxlDydQ/7as8hpI5XO0rGSPJHK32lYyx9jMHq30l4xTqtZHHwWpfyRgr
mfKnfZXHYDLVT/sqj7Eus6PVvpIxVDJ/zj38QaamzOFqX8kYSuav13fMMzJ1xrtjiWdkKo3flFy+fSqL
zDFkyte+kjGyTP3aVzKOLvPuVjCROUQyXz5ficwRZA5Q+0rGKdJ+5qfBHHK9QWU+DbnemDLvD0OuN6bM
Z2QOI/N+GnO9IWU+HZA5ikzh077KY0SZT8icRpGpfNpXeQwoc6DaVzLGkyl92ld5jCfzCZmS450ZTGQO
IfMZmZrjnfGn7Jjrjbef+TTsekeXeZ3M+3HXGy+ZI9W+kjGcTO3TvspjOJlD1b6ScXSZ6T3z/nBG5ijJ
fEbmNIrM+6HXG+wyq37aV3kcXeY5vWMicxpE5hMypcc3HwfzNOACz3Fknl6lwUSm7viPT/+UPSNTeLxL
gzmyzMH3M6fp1YdgBljv4DI///vhz6ALjCTzfTS/mEZdYCSZ09tfJ/f/HneBkWTeff/r17+cDqPLPJ//
Dz0JRNLH/YMcAAAAAElFTkSuQmCC
</value>
</data>
</root>

View File

@ -0,0 +1,103 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Airbus.Properties {
using System;
/// <summary>
/// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
/// </summary>
// Этот класс создан автоматически классом StronglyTypedResourceBuilder
// с помощью такого средства, как ResGen или Visual Studio.
// Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
// с параметром /str или перестройте свой проект VS.
[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() {
}
/// <summary>
/// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
/// </summary>
[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("Airbus.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Перезаписывает свойство CurrentUICulture текущего потока для всех
/// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Down {
get {
object obj = ResourceManager.GetObject("Down", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Left {
get {
object obj = ResourceManager.GetObject("Left", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Right {
get {
object obj = ResourceManager.GetObject("Right", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Поиск локализованного ресурса типа System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap Up {
get {
object obj = ResourceManager.GetObject("Up", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
}
}

View File

@ -0,0 +1,133 @@
<?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>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Down" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Left" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Right" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Up" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB