Out-of-box experience work

It's definitely not working right now. I wouldn't delete your save. I
have to implement the tutorial before the OOBE will let you into the
game.
This commit is contained in:
Michael 2017-01-17 17:08:27 -05:00
parent a93dd80d4e
commit b348a76db7
16 changed files with 1460 additions and 1300 deletions

26
ShiftOS.Objects/Job.cs Normal file
View file

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ShiftOS.Objects
{
public class Job
{
public string Name { get; set; }
public string Description { get; set; }
public List<JobTask> Tasks { get; set; }
public string Author { get; set; }
}
public class JobTask
{
public string Name { get; set; }
public string Description { get; set; }
public int Reward { get; set; }
public bool Completed { get; set; }
}
}

View file

@ -14,9 +14,8 @@ namespace ShiftOS.Objects
public Dictionary<string, bool> Upgrades { get; set; }
public int StoryPosition { get; set; }
public string Language { get; set; }
public string MyShop { get; set; }
public List<string> CurrentLegions { get; set; }
public int MajorVersion { get; set; }
public int MinorVersion { get; set; }
public int Revision { get; set; }

View file

@ -59,6 +59,7 @@
<Compile Include="Exploit.cs" />
<Compile Include="ExploitContext.cs" />
<Compile Include="Hack.cs" />
<Compile Include="Job.cs" />
<Compile Include="Legion.cs" />
<Compile Include="Objects.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />

View file

@ -112,6 +112,21 @@ namespace ShiftOS.WinForms.Applications
this.cbcolorchooser = new System.Windows.Forms.ComboBox();
this.btncreate = new System.Windows.Forms.Button();
this.cbpublicity = new System.Windows.Forms.ComboBox();
this.shop_view = new System.Windows.Forms.Panel();
this.panel1 = new System.Windows.Forms.Panel();
this.panel5 = new System.Windows.Forms.Panel();
this.lbupgradetitle = new System.Windows.Forms.Label();
this.lbshopname = new System.Windows.Forms.Label();
this.lbcodepoints = new System.Windows.Forms.Label();
this.lbupgrades = new System.Windows.Forms.ListBox();
this.pnlbuy = new System.Windows.Forms.Panel();
this.btnbuy = new System.Windows.Forms.Button();
this.lbprice = new System.Windows.Forms.Label();
this.lbupggradedesc = new System.Windows.Forms.Label();
this.job_current = new System.Windows.Forms.Panel();
this.label6 = new System.Windows.Forms.Label();
this.lbtaskname = new System.Windows.Forms.Label();
this.lbtaskdescription = new System.Windows.Forms.Label();
this.menuStrip1.SuspendLayout();
this.statusStrip1.SuspendLayout();
this.toolStripContainer1.BottomToolStripPanel.SuspendLayout();
@ -131,6 +146,11 @@ namespace ShiftOS.WinForms.Applications
this.flowLayoutPanel2.SuspendLayout();
this.you_memos.SuspendLayout();
this.you_systemstatus.SuspendLayout();
this.shop_view.SuspendLayout();
this.panel1.SuspendLayout();
this.panel5.SuspendLayout();
this.pnlbuy.SuspendLayout();
this.job_current.SuspendLayout();
this.SuspendLayout();
//
// menuStrip1
@ -212,13 +232,14 @@ namespace ShiftOS.WinForms.Applications
// currentTaskToolStripMenuItem
//
this.currentTaskToolStripMenuItem.Name = "currentTaskToolStripMenuItem";
this.currentTaskToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
this.currentTaskToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.currentTaskToolStripMenuItem.Text = "Current task";
this.currentTaskToolStripMenuItem.Click += new System.EventHandler(this.currentTaskToolStripMenuItem_Click);
//
// browseJobsToolStripMenuItem
//
this.browseJobsToolStripMenuItem.Name = "browseJobsToolStripMenuItem";
this.browseJobsToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
this.browseJobsToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.browseJobsToolStripMenuItem.Text = "Browse Jobs";
//
// legionsToolStripMenuItem
@ -278,6 +299,8 @@ namespace ShiftOS.WinForms.Applications
//
// toolStripContainer1.ContentPanel
//
this.toolStripContainer1.ContentPanel.Controls.Add(this.job_current);
this.toolStripContainer1.ContentPanel.Controls.Add(this.shop_view);
this.toolStripContainer1.ContentPanel.Controls.Add(this.lgn_create);
this.toolStripContainer1.ContentPanel.Controls.Add(this.lgn_view);
this.toolStripContainer1.ContentPanel.Controls.Add(this.lgn_join);
@ -319,6 +342,7 @@ namespace ShiftOS.WinForms.Applications
this.txtnewlegiondescription.Name = "txtnewlegiondescription";
this.txtnewlegiondescription.Size = new System.Drawing.Size(368, 240);
this.txtnewlegiondescription.TabIndex = 4;
this.txtnewlegiondescription.TextChanged += new System.EventHandler(this.txtnewlegiondescription_TextChanged);
//
// panel2
//
@ -768,6 +792,167 @@ namespace ShiftOS.WinForms.Applications
this.cbpublicity.Size = new System.Drawing.Size(121, 21);
this.cbpublicity.TabIndex = 6;
//
// shop_view
//
this.shop_view.Controls.Add(this.panel5);
this.shop_view.Controls.Add(this.panel1);
this.shop_view.Dock = System.Windows.Forms.DockStyle.Fill;
this.shop_view.Location = new System.Drawing.Point(0, 0);
this.shop_view.Name = "shop_view";
this.shop_view.Size = new System.Drawing.Size(756, 442);
this.shop_view.TabIndex = 6;
//
// panel1
//
this.panel1.Controls.Add(this.lbupgrades);
this.panel1.Controls.Add(this.lbcodepoints);
this.panel1.Controls.Add(this.lbshopname);
this.panel1.Cursor = System.Windows.Forms.Cursors.Default;
this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(389, 442);
this.panel1.TabIndex = 0;
//
// panel5
//
this.panel5.Controls.Add(this.lbupggradedesc);
this.panel5.Controls.Add(this.pnlbuy);
this.panel5.Controls.Add(this.lbupgradetitle);
this.panel5.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel5.Location = new System.Drawing.Point(389, 0);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(367, 442);
this.panel5.TabIndex = 1;
//
// lbupgradetitle
//
this.lbupgradetitle.Dock = System.Windows.Forms.DockStyle.Top;
this.lbupgradetitle.Location = new System.Drawing.Point(0, 0);
this.lbupgradetitle.Name = "lbupgradetitle";
this.lbupgradetitle.Size = new System.Drawing.Size(367, 43);
this.lbupgradetitle.TabIndex = 0;
this.lbupgradetitle.Tag = "header2";
this.lbupgradetitle.Text = "Welcome to my shop!";
this.lbupgradetitle.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// lbshopname
//
this.lbshopname.Dock = System.Windows.Forms.DockStyle.Top;
this.lbshopname.Location = new System.Drawing.Point(0, 0);
this.lbshopname.Name = "lbshopname";
this.lbshopname.Size = new System.Drawing.Size(389, 46);
this.lbshopname.TabIndex = 0;
this.lbshopname.Tag = "header1";
this.lbshopname.Text = "My shop";
this.lbshopname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// lbcodepoints
//
this.lbcodepoints.AutoSize = true;
this.lbcodepoints.Dock = System.Windows.Forms.DockStyle.Bottom;
this.lbcodepoints.Location = new System.Drawing.Point(0, 429);
this.lbcodepoints.Margin = new System.Windows.Forms.Padding(10);
this.lbcodepoints.Name = "lbcodepoints";
this.lbcodepoints.Size = new System.Drawing.Size(72, 13);
this.lbcodepoints.TabIndex = 1;
this.lbcodepoints.Tag = "header2";
this.lbcodepoints.Text = "Codepoints: 0";
//
// lbupgrades
//
this.lbupgrades.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbupgrades.FormattingEnabled = true;
this.lbupgrades.Location = new System.Drawing.Point(0, 46);
this.lbupgrades.Name = "lbupgrades";
this.lbupgrades.Size = new System.Drawing.Size(389, 383);
this.lbupgrades.TabIndex = 2;
//
// pnlbuy
//
this.pnlbuy.Controls.Add(this.lbprice);
this.pnlbuy.Controls.Add(this.btnbuy);
this.pnlbuy.Dock = System.Windows.Forms.DockStyle.Bottom;
this.pnlbuy.Location = new System.Drawing.Point(0, 406);
this.pnlbuy.Name = "pnlbuy";
this.pnlbuy.Size = new System.Drawing.Size(367, 36);
this.pnlbuy.TabIndex = 1;
//
// btnbuy
//
this.btnbuy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnbuy.Location = new System.Drawing.Point(283, 3);
this.btnbuy.Name = "btnbuy";
this.btnbuy.Size = new System.Drawing.Size(75, 23);
this.btnbuy.TabIndex = 0;
this.btnbuy.Text = "button3";
this.btnbuy.UseVisualStyleBackColor = true;
//
// lbprice
//
this.lbprice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lbprice.AutoSize = true;
this.lbprice.Location = new System.Drawing.Point(6, 10);
this.lbprice.Name = "lbprice";
this.lbprice.Size = new System.Drawing.Size(35, 13);
this.lbprice.TabIndex = 1;
this.lbprice.Text = "label6";
//
// lbupggradedesc
//
this.lbupggradedesc.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbupggradedesc.Location = new System.Drawing.Point(0, 43);
this.lbupggradedesc.Name = "lbupggradedesc";
this.lbupggradedesc.Size = new System.Drawing.Size(367, 363);
this.lbupggradedesc.TabIndex = 2;
this.lbupggradedesc.Text = "label6";
this.lbupggradedesc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// job_current
//
this.job_current.Controls.Add(this.lbtaskdescription);
this.job_current.Controls.Add(this.lbtaskname);
this.job_current.Controls.Add(this.label6);
this.job_current.Dock = System.Windows.Forms.DockStyle.Fill;
this.job_current.Location = new System.Drawing.Point(0, 0);
this.job_current.Name = "job_current";
this.job_current.Size = new System.Drawing.Size(756, 442);
this.job_current.TabIndex = 3;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Dock = System.Windows.Forms.DockStyle.Top;
this.label6.Location = new System.Drawing.Point(0, 0);
this.label6.Margin = new System.Windows.Forms.Padding(15);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(68, 13);
this.label6.TabIndex = 0;
this.label6.Tag = "header1";
this.label6.Text = "Current Task";
//
// lbtaskname
//
this.lbtaskname.AutoSize = true;
this.lbtaskname.Dock = System.Windows.Forms.DockStyle.Top;
this.lbtaskname.Location = new System.Drawing.Point(0, 13);
this.lbtaskname.Margin = new System.Windows.Forms.Padding(15);
this.lbtaskname.Name = "lbtaskname";
this.lbtaskname.Size = new System.Drawing.Size(60, 13);
this.lbtaskname.TabIndex = 1;
this.lbtaskname.Tag = "header2";
this.lbtaskname.Text = "Task name";
//
// lbtaskdescription
//
this.lbtaskdescription.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbtaskdescription.Location = new System.Drawing.Point(0, 26);
this.lbtaskdescription.Margin = new System.Windows.Forms.Padding(30);
this.lbtaskdescription.Name = "lbtaskdescription";
this.lbtaskdescription.Size = new System.Drawing.Size(756, 416);
this.lbtaskdescription.TabIndex = 2;
this.lbtaskdescription.Text = "label12";
//
// MUDControlCentre
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -813,6 +998,14 @@ namespace ShiftOS.WinForms.Applications
this.you_memos.PerformLayout();
this.you_systemstatus.ResumeLayout(false);
this.you_systemstatus.PerformLayout();
this.shop_view.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panel5.ResumeLayout(false);
this.pnlbuy.ResumeLayout(false);
this.pnlbuy.PerformLayout();
this.job_current.ResumeLayout(false);
this.job_current.PerformLayout();
this.ResumeLayout(false);
}
@ -878,5 +1071,20 @@ namespace ShiftOS.WinForms.Applications
private System.Windows.Forms.ComboBox cbcolorchooser;
private System.Windows.Forms.Button btncreate;
private System.Windows.Forms.ComboBox cbpublicity;
private System.Windows.Forms.Panel shop_view;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Label lbupggradedesc;
private System.Windows.Forms.Panel pnlbuy;
private System.Windows.Forms.Label lbprice;
private System.Windows.Forms.Button btnbuy;
private System.Windows.Forms.Label lbupgradetitle;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.ListBox lbupgrades;
private System.Windows.Forms.Label lbcodepoints;
private System.Windows.Forms.Label lbshopname;
private System.Windows.Forms.Panel job_current;
private System.Windows.Forms.Label lbtaskname;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label lbtaskdescription;
}
}

View file

@ -398,6 +398,8 @@ Current legions: {legionname}";
txtnewlegionshortname.Size = new Size((int)sf.Width, (int)sf.Height);
}
private Shop CurrentShop = null;
private void txtnewlegiontitle_TextChanged(object sender, EventArgs e)
{
var g = txtnewlegiontitle.CreateGraphics();
@ -425,5 +427,15 @@ Current legions: {legionname}";
SaveSystem.SaveGame();
myLegionToolStripMenuItem_Click(sender, e);
}
private void txtnewlegiondescription_TextChanged(object sender, EventArgs e)
{
editingLegion.Description = txtnewlegiondescription.Text;
}
private void currentTaskToolStripMenuItem_Click(object sender, EventArgs e)
{
this.job_current.BringToFront();
}
}
}

View file

@ -0,0 +1,362 @@
namespace ShiftOS.WinForms
{
partial class FakeSetupScreen
{
/// <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.pnlheader = new System.Windows.Forms.Panel();
this.flbuttons = new System.Windows.Forms.FlowLayoutPanel();
this.btnnext = new System.Windows.Forms.Button();
this.btnback = new System.Windows.Forms.Button();
this.page1 = new System.Windows.Forms.Panel();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.page2 = new System.Windows.Forms.Panel();
this.lbbyteszeroed = new System.Windows.Forms.Label();
this.pgformatprogress = new System.Windows.Forms.ProgressBar();
this.lbformattitle = new System.Windows.Forms.Label();
this.page3 = new System.Windows.Forms.Panel();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.label3 = new System.Windows.Forms.Label();
this.txtnewusername = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.txtnewpassword = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.txtnewsysname = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.page4 = new System.Windows.Forms.Panel();
this.txtlicenseagreement = new System.Windows.Forms.RichTextBox();
this.label10 = new System.Windows.Forms.Label();
this.flbuttons.SuspendLayout();
this.page1.SuspendLayout();
this.page2.SuspendLayout();
this.page3.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.page4.SuspendLayout();
this.SuspendLayout();
//
// pnlheader
//
this.pnlheader.BackColor = System.Drawing.SystemColors.ControlDark;
this.pnlheader.Dock = System.Windows.Forms.DockStyle.Left;
this.pnlheader.Location = new System.Drawing.Point(0, 0);
this.pnlheader.Name = "pnlheader";
this.pnlheader.Size = new System.Drawing.Size(138, 300);
this.pnlheader.TabIndex = 0;
//
// flbuttons
//
this.flbuttons.AutoSize = true;
this.flbuttons.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flbuttons.Controls.Add(this.btnnext);
this.flbuttons.Controls.Add(this.btnback);
this.flbuttons.Dock = System.Windows.Forms.DockStyle.Bottom;
this.flbuttons.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
this.flbuttons.Location = new System.Drawing.Point(0, 300);
this.flbuttons.Name = "flbuttons";
this.flbuttons.Size = new System.Drawing.Size(490, 29);
this.flbuttons.TabIndex = 1;
//
// btnnext
//
this.btnnext.Location = new System.Drawing.Point(412, 3);
this.btnnext.Name = "btnnext";
this.btnnext.Size = new System.Drawing.Size(75, 23);
this.btnnext.TabIndex = 0;
this.btnnext.Text = "Next";
this.btnnext.UseVisualStyleBackColor = true;
this.btnnext.Click += new System.EventHandler(this.btnnext_Click);
//
// btnback
//
this.btnback.Location = new System.Drawing.Point(331, 3);
this.btnback.Name = "btnback";
this.btnback.Size = new System.Drawing.Size(75, 23);
this.btnback.TabIndex = 1;
this.btnback.Text = "Back";
this.btnback.UseVisualStyleBackColor = true;
this.btnback.Click += new System.EventHandler(this.btnback_Click);
//
// page1
//
this.page1.Controls.Add(this.label2);
this.page1.Controls.Add(this.label1);
this.page1.Dock = System.Windows.Forms.DockStyle.Fill;
this.page1.Location = new System.Drawing.Point(138, 0);
this.page1.Name = "page1";
this.page1.Size = new System.Drawing.Size(352, 300);
this.page1.TabIndex = 2;
//
// label2
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label2.Location = new System.Drawing.Point(20, 87);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(320, 199);
this.label2.TabIndex = 1;
this.label2.Text = "This wizard will guide you through the installation and configuration of ShiftOS." +
"\r\n\r\nPress Next to continue.";
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F);
this.label1.Location = new System.Drawing.Point(19, 22);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(321, 44);
this.label1.TabIndex = 0;
this.label1.Text = "Welcome to the ShiftOS installation wizard.";
//
// page2
//
this.page2.Controls.Add(this.lbbyteszeroed);
this.page2.Controls.Add(this.pgformatprogress);
this.page2.Controls.Add(this.lbformattitle);
this.page2.Dock = System.Windows.Forms.DockStyle.Fill;
this.page2.Location = new System.Drawing.Point(138, 0);
this.page2.Name = "page2";
this.page2.Size = new System.Drawing.Size(352, 300);
this.page2.TabIndex = 2;
//
// lbbyteszeroed
//
this.lbbyteszeroed.AutoSize = true;
this.lbbyteszeroed.Location = new System.Drawing.Point(20, 91);
this.lbbyteszeroed.Name = "lbbyteszeroed";
this.lbbyteszeroed.Size = new System.Drawing.Size(127, 13);
this.lbbyteszeroed.TabIndex = 5;
this.lbbyteszeroed.Text = "Bytes zeroed: 0/1000000";
//
// pgformatprogress
//
this.pgformatprogress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pgformatprogress.Location = new System.Drawing.Point(23, 61);
this.pgformatprogress.Name = "pgformatprogress";
this.pgformatprogress.Size = new System.Drawing.Size(317, 23);
this.pgformatprogress.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
this.pgformatprogress.TabIndex = 4;
//
// lbformattitle
//
this.lbformattitle.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lbformattitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F);
this.lbformattitle.Location = new System.Drawing.Point(16, 9);
this.lbformattitle.Name = "lbformattitle";
this.lbformattitle.Size = new System.Drawing.Size(321, 26);
this.lbformattitle.TabIndex = 3;
this.lbformattitle.Text = "Formatting your drive...";
//
// page3
//
this.page3.Controls.Add(this.tableLayoutPanel1);
this.page3.Controls.Add(this.label4);
this.page3.Dock = System.Windows.Forms.DockStyle.Fill;
this.page3.Location = new System.Drawing.Point(138, 0);
this.page3.Name = "page3";
this.page3.Size = new System.Drawing.Size(352, 300);
this.page3.TabIndex = 6;
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.AutoSize = true;
this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.tableLayoutPanel1.ColumnCount = 2;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.txtnewusername, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.label5, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.txtnewpassword, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.label6, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.txtnewsysname, 1, 2);
this.tableLayoutPanel1.Location = new System.Drawing.Point(20, 61);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(212, 72);
this.tableLayoutPanel1.TabIndex = 4;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(3, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(58, 13);
this.label3.TabIndex = 0;
this.label3.Text = "Username:";
//
// txtnewusername
//
this.txtnewusername.Location = new System.Drawing.Point(109, 3);
this.txtnewusername.Name = "txtnewusername";
this.txtnewusername.Size = new System.Drawing.Size(100, 20);
this.txtnewusername.TabIndex = 1;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(3, 26);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(56, 13);
this.label5.TabIndex = 2;
this.label5.Text = "Password:";
//
// txtnewpassword
//
this.txtnewpassword.Location = new System.Drawing.Point(109, 29);
this.txtnewpassword.Name = "txtnewpassword";
this.txtnewpassword.PasswordChar = '*';
this.txtnewpassword.Size = new System.Drawing.Size(100, 20);
this.txtnewpassword.TabIndex = 3;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(3, 52);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(75, 13);
this.label6.TabIndex = 4;
this.label6.Text = "System Name:";
//
// txtnewsysname
//
this.txtnewsysname.Location = new System.Drawing.Point(109, 55);
this.txtnewsysname.Name = "txtnewsysname";
this.txtnewsysname.Size = new System.Drawing.Size(100, 20);
this.txtnewsysname.TabIndex = 5;
//
// label4
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F);
this.label4.Location = new System.Drawing.Point(16, 9);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(321, 26);
this.label4.TabIndex = 3;
this.label4.Text = "User information";
//
// page4
//
this.page4.Controls.Add(this.txtlicenseagreement);
this.page4.Controls.Add(this.label10);
this.page4.Dock = System.Windows.Forms.DockStyle.Fill;
this.page4.Location = new System.Drawing.Point(138, 0);
this.page4.Name = "page4";
this.page4.Size = new System.Drawing.Size(352, 300);
this.page4.TabIndex = 7;
//
// txtlicenseagreement
//
this.txtlicenseagreement.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtlicenseagreement.Location = new System.Drawing.Point(23, 58);
this.txtlicenseagreement.Name = "txtlicenseagreement";
this.txtlicenseagreement.ReadOnly = true;
this.txtlicenseagreement.Size = new System.Drawing.Size(326, 228);
this.txtlicenseagreement.TabIndex = 4;
this.txtlicenseagreement.Text = "";
//
// label10
//
this.label10.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 13F);
this.label10.Location = new System.Drawing.Point(16, 9);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(321, 26);
this.label10.TabIndex = 3;
this.label10.Text = "License Agreement";
//
// FakeSetupScreen
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(490, 329);
this.Controls.Add(this.page3);
this.Controls.Add(this.page4);
this.Controls.Add(this.page2);
this.Controls.Add(this.page1);
this.Controls.Add(this.pnlheader);
this.Controls.Add(this.flbuttons);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FakeSetupScreen";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "FakeSetupScreen";
this.TopMost = true;
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FakeSetupScreen_FormClosing);
this.flbuttons.ResumeLayout(false);
this.page1.ResumeLayout(false);
this.page2.ResumeLayout(false);
this.page2.PerformLayout();
this.page3.ResumeLayout(false);
this.page3.PerformLayout();
this.tableLayoutPanel1.ResumeLayout(false);
this.tableLayoutPanel1.PerformLayout();
this.page4.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Panel pnlheader;
private System.Windows.Forms.FlowLayoutPanel flbuttons;
private System.Windows.Forms.Button btnnext;
private System.Windows.Forms.Button btnback;
private System.Windows.Forms.Panel page1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel page2;
private System.Windows.Forms.Label lbformattitle;
private System.Windows.Forms.Label lbbyteszeroed;
private System.Windows.Forms.ProgressBar pgformatprogress;
private System.Windows.Forms.Panel page3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtnewusername;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txtnewpassword;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtnewsysname;
private System.Windows.Forms.Panel page4;
private System.Windows.Forms.RichTextBox txtlicenseagreement;
private System.Windows.Forms.Label label10;
}
}

View file

@ -0,0 +1,206 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using ShiftOS.Engine;
namespace ShiftOS.WinForms
{
public partial class FakeSetupScreen : Form
{
private Oobe oobe = null;
public Action<bool> MUDUserFound = null;
public FakeSetupScreen(Oobe _oobe)
{
oobe = _oobe;
InitializeComponent();
SetupUI();
ServerManager.MessageReceived += (msg) =>
{
if (msg.Name == "mud_notfound")
this.Invoke(new Action(() => { MUDUserFound?.Invoke(false); }));
else if (msg.Name == "mud_found")
this.Invoke(new Action(() => { MUDUserFound?.Invoke(true); }));
};
}
public event Action<string> TextSent;
bool isTyping = false;
private int currentPage = 0;
public void SetupUI()
{
btnback.Show();
pnlheader.Dock = DockStyle.Top;
pnlheader.Height = 50;
switch (currentPage)
{
case 0:
page1.BringToFront();
pnlheader.Dock = DockStyle.Left;
pnlheader.Width = 100;
btnback.Hide();
break;
case 1:
btnnext.Hide();
btnback.Hide();
page2.BringToFront();
pgformatprogress.Value = 0;
var dinf = new System.IO.DriveInfo("C:");
StartWipingInBackground(((dinf.TotalSize / 1024) / 1024) / 1024);
TextType($@"So I see you're progressing through.
I really hope you aren't one of those newbies who just next-next-next-finish their way through these things.
I see you've named your drive " + dinf.VolumeLabel + $@"
And it can contain up to {dinf.TotalSize} bytes of information.
And you've formatted this drive with a partition of type " + dinf.DriveFormat + $@".
Interesting...
Very interesting...");
break;
case 2:
btnnext.Show();
btnback.Hide();
TextType(@"Now it's all gone. Now I need some user input so I can install ShiftOS.
Firstly, please enter a username, password, and system name.
Make the username and system name unique so I can identify exactly who you are. You're not the only one here.
Also, make sure the password is secure... There have been people known to breach users' accounts in ShiftOS and steal their stuff.
So make sure your password is secure enough that it can't be guessed, but easy for you to remember, and don't put any personal information in your account.");
page3.BringToFront();
break;
case 3:
if (string.IsNullOrEmpty(txtnewusername.Text))
{
TextType("You must specify a valid username!");
currentPage--;
SetupUI();
break;
}
if (string.IsNullOrEmpty(txtnewpassword.Text))
{
TextType("A password would seriously be recommended.");
currentPage--;
SetupUI();
break;
}
if (string.IsNullOrEmpty(txtnewsysname.Text))
{
TextType("You must name your computer.");
currentPage--;
SetupUI();
break;
}
MUDUserFound = (val) =>
{
if(val == true)
{
TextType("I have just verified that your username and password already exists on my end. Please choose another.");
currentPage--;
SetupUI();
}
else
{
TextType("I am going to keep that info on my checklist for installing ShiftOS on your system. Now, onto some legal stuff. I highly suggest you read this.");
currentPage++;
oobe.MySave.Username = txtnewusername.Text;
oobe.MySave.Password = txtnewpassword.Text;
oobe.MySave.SystemName = txtnewsysname.Text;
SetupUI();
}
};
ServerManager.SendMessage("mud_checkuserexists", $@"{{
username: ""{txtnewusername.Text}"",
password: ""{txtnewpassword.Text}""
}}");
break;
case 4:
page4.BringToFront();
txtlicenseagreement.Rtf = Properties.Resources.ShiftOS;
break;
case 5:
CanClose = true;
this.Close();
break;
}
}
public void StartWipingInBackground(long arbitraryAmountOfBytes)
{
pgformatprogress.Maximum = (int)arbitraryAmountOfBytes;
var t = new Thread(() =>
{
for(long i = 0; i <= arbitraryAmountOfBytes; i++)
{
Thread.Sleep(250);
this.Invoke(new Action(() =>
{
pgformatprogress.Value = (int)i;
lbbyteszeroed.Text = $"Gigabytes zeroed: {i}/{arbitraryAmountOfBytes}";
}));
}
this.Invoke(new Action(() =>
{
currentPage++;
SetupUI();
}));
});
t.IsBackground = true;
t.Start();
}
private void TextType(string text)
{
new Thread(() =>
{
while(isTyping == true)
{
}
isTyping = true;
TextSent?.Invoke(text);
isTyping = false;
}).Start();
}
bool CanClose = false;
private void FakeSetupScreen_FormClosing(object sender, FormClosingEventArgs e)
{
if (CanClose)
{
}
else
{
e.Cancel = true;
TextType("Don't try to close the dialog. It's a futile attempt.");
}
}
private void btnback_Click(object sender, EventArgs e)
{
currentPage--;
SetupUI();
}
private void btnnext_Click(object sender, EventArgs e)
{
currentPage++;
SetupUI();
}
}
}

View file

@ -0,0 +1,120 @@
<?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>
</root>

View file

@ -54,924 +54,69 @@ namespace ShiftOS.WinForms
/// </summary>
private void InitializeComponent()
{
this.pnlshadow = new System.Windows.Forms.Panel();
this.pnllanguage = new System.Windows.Forms.Panel();
this.btnselectlang = new System.Windows.Forms.Button();
this.lblanguage = new System.Windows.Forms.ListBox();
this.label1 = new System.Windows.Forms.Label();
this.pnluserinfo = new System.Windows.Forms.Panel();
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel();
this.label5 = new System.Windows.Forms.Label();
this.txtusername = new System.Windows.Forms.TextBox();
this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel();
this.label4 = new System.Windows.Forms.Label();
this.txtpassword = new System.Windows.Forms.TextBox();
this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel();
this.label3 = new System.Windows.Forms.Label();
this.txtsysname = new System.Windows.Forms.TextBox();
this.btnsetuserinfo = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.pnldiscourse = new System.Windows.Forms.Panel();
this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel();
this.flowLayoutPanel6 = new System.Windows.Forms.FlowLayoutPanel();
this.label6 = new System.Windows.Forms.Label();
this.txtdiscoursename = new System.Windows.Forms.TextBox();
this.flowLayoutPanel7 = new System.Windows.Forms.FlowLayoutPanel();
this.label7 = new System.Windows.Forms.Label();
this.txtdiscoursepass = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.label9 = new System.Windows.Forms.Label();
this.pnlterminaltutorial = new System.Windows.Forms.Panel();
this.pgsystemstatus = new ShiftOS.WinForms.Controls.ShiftedProgressBar();
this.txtterm = new ShiftOS.WinForms.Controls.TerminalBox();
this.pnlreenteruserinfo = new System.Windows.Forms.Panel();
this.flowLayoutPanel8 = new System.Windows.Forms.FlowLayoutPanel();
this.flowLayoutPanel9 = new System.Windows.Forms.FlowLayoutPanel();
this.label8 = new System.Windows.Forms.Label();
this.txtruser = new System.Windows.Forms.TextBox();
this.flowLayoutPanel10 = new System.Windows.Forms.FlowLayoutPanel();
this.label10 = new System.Windows.Forms.Label();
this.txtrpass = new System.Windows.Forms.TextBox();
this.button2 = new System.Windows.Forms.Button();
this.label11 = new System.Windows.Forms.Label();
this.pnlauthfail = new System.Windows.Forms.Panel();
this.button3 = new System.Windows.Forms.Button();
this.label14 = new System.Windows.Forms.Label();
this.pnlauthdone = new System.Windows.Forms.Panel();
this.button4 = new System.Windows.Forms.Button();
this.label12 = new System.Windows.Forms.Label();
this.pnlrelogin = new System.Windows.Forms.Panel();
this.flowLayoutPanel11 = new System.Windows.Forms.FlowLayoutPanel();
this.flowLayoutPanel12 = new System.Windows.Forms.FlowLayoutPanel();
this.label13 = new System.Windows.Forms.Label();
this.txtluser = new System.Windows.Forms.TextBox();
this.flowLayoutPanel13 = new System.Windows.Forms.FlowLayoutPanel();
this.label15 = new System.Windows.Forms.Label();
this.txtlpass = new System.Windows.Forms.TextBox();
this.button5 = new System.Windows.Forms.Button();
this.label16 = new System.Windows.Forms.Label();
this.pnlrelogerror = new System.Windows.Forms.Panel();
this.button6 = new System.Windows.Forms.Button();
this.label17 = new System.Windows.Forms.Label();
this.pnllanguage.SuspendLayout();
this.pnluserinfo.SuspendLayout();
this.flowLayoutPanel1.SuspendLayout();
this.flowLayoutPanel4.SuspendLayout();
this.flowLayoutPanel3.SuspendLayout();
this.flowLayoutPanel2.SuspendLayout();
this.pnldiscourse.SuspendLayout();
this.flowLayoutPanel5.SuspendLayout();
this.flowLayoutPanel6.SuspendLayout();
this.flowLayoutPanel7.SuspendLayout();
this.pnlterminaltutorial.SuspendLayout();
this.pnlreenteruserinfo.SuspendLayout();
this.flowLayoutPanel8.SuspendLayout();
this.flowLayoutPanel9.SuspendLayout();
this.flowLayoutPanel10.SuspendLayout();
this.pnlauthfail.SuspendLayout();
this.pnlauthdone.SuspendLayout();
this.pnlrelogin.SuspendLayout();
this.flowLayoutPanel11.SuspendLayout();
this.flowLayoutPanel12.SuspendLayout();
this.flowLayoutPanel13.SuspendLayout();
this.pnlrelogerror.SuspendLayout();
this.components = new System.ComponentModel.Container();
this.lblHijack = new System.Windows.Forms.Label();
this.conversationtimer = new System.Windows.Forms.Timer(this.components);
this.textgen = new System.Windows.Forms.Timer(this.components);
this.lblhackwords = new System.Windows.Forms.Label();
this.hackeffecttimer = new System.Windows.Forms.Timer(this.components);
this.BackgroundWorker1 = new System.ComponentModel.BackgroundWorker();
this.SuspendLayout();
//
// pnlshadow
// lblHijack
//
this.pnlshadow.BackColor = System.Drawing.Color.Black;
this.pnlshadow.Location = new System.Drawing.Point(900, 460);
this.pnlshadow.Name = "pnlshadow";
this.pnlshadow.Size = new System.Drawing.Size(794, 318);
this.pnlshadow.TabIndex = 0;
this.lblHijack.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lblHijack.AutoSize = true;
this.lblHijack.BackColor = System.Drawing.Color.WhiteSmoke;
this.lblHijack.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblHijack.ForeColor = System.Drawing.Color.DimGray;
this.lblHijack.Location = new System.Drawing.Point(143, 193);
this.lblHijack.Name = "lblHijack";
this.lblHijack.Size = new System.Drawing.Size(18, 25);
this.lblHijack.TabIndex = 0;
this.lblHijack.Text = "\\";
//
// pnllanguage
// textgen
//
this.pnllanguage.BackColor = System.Drawing.Color.DarkGray;
this.pnllanguage.Controls.Add(this.btnselectlang);
this.pnllanguage.Controls.Add(this.lblanguage);
this.pnllanguage.Controls.Add(this.label1);
this.pnllanguage.Location = new System.Drawing.Point(43, 75);
this.pnllanguage.Name = "pnllanguage";
this.pnllanguage.Size = new System.Drawing.Size(542, 321);
this.pnllanguage.TabIndex = 1;
this.textgen.Interval = 20;
//
// btnselectlang
// lblhackwords
//
this.btnselectlang.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnselectlang.AutoSize = true;
this.btnselectlang.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnselectlang.FlatAppearance.BorderSize = 0;
this.btnselectlang.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.btnselectlang.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.btnselectlang.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnselectlang.ForeColor = System.Drawing.Color.White;
this.btnselectlang.Location = new System.Drawing.Point(230, 281);
this.btnselectlang.Name = "btnselectlang";
this.btnselectlang.Size = new System.Drawing.Size(106, 22);
this.btnselectlang.TabIndex = 2;
this.btnselectlang.Text = "{SELECT_LANG}";
this.btnselectlang.UseVisualStyleBackColor = true;
this.btnselectlang.Click += new System.EventHandler(this.btnselectlang_Click);
this.lblhackwords.AutoSize = true;
this.lblhackwords.Dock = System.Windows.Forms.DockStyle.Fill;
this.lblhackwords.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblhackwords.ForeColor = System.Drawing.SystemColors.ButtonFace;
this.lblhackwords.Location = new System.Drawing.Point(0, 0);
this.lblhackwords.Name = "lblhackwords";
this.lblhackwords.Size = new System.Drawing.Size(127, 18);
this.lblhackwords.TabIndex = 1;
this.lblhackwords.Text = "Hijack in progress";
//
// lblanguage
// hackeffecttimer
//
this.lblanguage.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblanguage.BackColor = System.Drawing.Color.DarkGray;
this.lblanguage.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.lblanguage.FormattingEnabled = true;
this.lblanguage.ItemHeight = 12;
this.lblanguage.Location = new System.Drawing.Point(14, 83);
this.lblanguage.Name = "lblanguage";
this.lblanguage.Size = new System.Drawing.Size(514, 192);
this.lblanguage.TabIndex = 1;
this.hackeffecttimer.Interval = 50;
//
// label1
// HijackScreen
//
this.label1.Dock = System.Windows.Forms.DockStyle.Top;
this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(542, 70);
this.label1.TabIndex = 0;
this.label1.Text = "{WELCOME_TO_SHIFTOS}\r\n\r\n{PLEASE_CHOOSE_A_SYSTEM_LANGUAGE}";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnluserinfo
//
this.pnluserinfo.BackColor = System.Drawing.Color.DarkGray;
this.pnluserinfo.Controls.Add(this.flowLayoutPanel1);
this.pnluserinfo.Controls.Add(this.btnsetuserinfo);
this.pnluserinfo.Controls.Add(this.label2);
this.pnluserinfo.Location = new System.Drawing.Point(653, 94);
this.pnluserinfo.Name = "pnluserinfo";
this.pnluserinfo.Size = new System.Drawing.Size(334, 233);
this.pnluserinfo.TabIndex = 2;
//
// flowLayoutPanel1
//
this.flowLayoutPanel1.AutoSize = true;
this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel1.Controls.Add(this.flowLayoutPanel4);
this.flowLayoutPanel1.Controls.Add(this.flowLayoutPanel3);
this.flowLayoutPanel1.Controls.Add(this.flowLayoutPanel2);
this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel1.Location = new System.Drawing.Point(18, 73);
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
this.flowLayoutPanel1.Size = new System.Drawing.Size(308, 96);
this.flowLayoutPanel1.TabIndex = 3;
this.flowLayoutPanel1.WrapContents = false;
//
// flowLayoutPanel4
//
this.flowLayoutPanel4.AutoSize = true;
this.flowLayoutPanel4.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel4.Controls.Add(this.label5);
this.flowLayoutPanel4.Controls.Add(this.txtusername);
this.flowLayoutPanel4.Location = new System.Drawing.Point(3, 3);
this.flowLayoutPanel4.Name = "flowLayoutPanel4";
this.flowLayoutPanel4.Size = new System.Drawing.Size(302, 28);
this.flowLayoutPanel4.TabIndex = 2;
//
// label5
//
this.label5.Location = new System.Drawing.Point(3, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(108, 28);
this.label5.TabIndex = 0;
this.label5.Text = "{USER_NAME}:";
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtusername
//
this.txtusername.BackColor = System.Drawing.Color.Black;
this.txtusername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtusername.ForeColor = System.Drawing.Color.Gray;
this.txtusername.Location = new System.Drawing.Point(117, 3);
this.txtusername.Name = "txtusername";
this.txtusername.Size = new System.Drawing.Size(182, 19);
this.txtusername.TabIndex = 1;
//
// flowLayoutPanel3
//
this.flowLayoutPanel3.AutoSize = true;
this.flowLayoutPanel3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel3.Controls.Add(this.label4);
this.flowLayoutPanel3.Controls.Add(this.txtpassword);
this.flowLayoutPanel3.Location = new System.Drawing.Point(3, 37);
this.flowLayoutPanel3.Name = "flowLayoutPanel3";
this.flowLayoutPanel3.Size = new System.Drawing.Size(302, 25);
this.flowLayoutPanel3.TabIndex = 2;
//
// label4
//
this.label4.Location = new System.Drawing.Point(3, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(108, 22);
this.label4.TabIndex = 0;
this.label4.Text = "{PASSWORD}: ";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtpassword
//
this.txtpassword.BackColor = System.Drawing.Color.Black;
this.txtpassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtpassword.ForeColor = System.Drawing.Color.Gray;
this.txtpassword.Location = new System.Drawing.Point(117, 3);
this.txtpassword.Name = "txtpassword";
this.txtpassword.PasswordChar = '*';
this.txtpassword.Size = new System.Drawing.Size(182, 19);
this.txtpassword.TabIndex = 1;
//
// flowLayoutPanel2
//
this.flowLayoutPanel2.AutoSize = true;
this.flowLayoutPanel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel2.Controls.Add(this.label3);
this.flowLayoutPanel2.Controls.Add(this.txtsysname);
this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 68);
this.flowLayoutPanel2.Name = "flowLayoutPanel2";
this.flowLayoutPanel2.Size = new System.Drawing.Size(302, 25);
this.flowLayoutPanel2.TabIndex = 0;
//
// label3
//
this.label3.Location = new System.Drawing.Point(3, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(108, 22);
this.label3.TabIndex = 0;
this.label3.Text = "{SYSTEM_NAME}:";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtsysname
//
this.txtsysname.BackColor = System.Drawing.Color.Black;
this.txtsysname.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtsysname.ForeColor = System.Drawing.Color.Gray;
this.txtsysname.Location = new System.Drawing.Point(117, 3);
this.txtsysname.Name = "txtsysname";
this.txtsysname.Size = new System.Drawing.Size(182, 19);
this.txtsysname.TabIndex = 1;
//
// btnsetuserinfo
//
this.btnsetuserinfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnsetuserinfo.AutoSize = true;
this.btnsetuserinfo.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnsetuserinfo.FlatAppearance.BorderSize = 0;
this.btnsetuserinfo.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.btnsetuserinfo.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.btnsetuserinfo.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnsetuserinfo.ForeColor = System.Drawing.Color.White;
this.btnsetuserinfo.Location = new System.Drawing.Point(138, 192);
this.btnsetuserinfo.Name = "btnsetuserinfo";
this.btnsetuserinfo.Size = new System.Drawing.Size(71, 22);
this.btnsetuserinfo.TabIndex = 2;
this.btnsetuserinfo.Text = "{SUBMIT}";
this.btnsetuserinfo.UseVisualStyleBackColor = true;
this.btnsetuserinfo.Click += new System.EventHandler(this.btnsetuserinfo_Click);
//
// label2
//
this.label2.Dock = System.Windows.Forms.DockStyle.Top;
this.label2.Location = new System.Drawing.Point(0, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(334, 70);
this.label2.TabIndex = 0;
this.label2.Text = "{USER_INFO}\r\n\r\n{USER_INFO_EXP}";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnldiscourse
//
this.pnldiscourse.BackColor = System.Drawing.Color.DarkGray;
this.pnldiscourse.Controls.Add(this.flowLayoutPanel5);
this.pnldiscourse.Controls.Add(this.button1);
this.pnldiscourse.Controls.Add(this.label9);
this.pnldiscourse.Location = new System.Drawing.Point(1050, 104);
this.pnldiscourse.Name = "pnldiscourse";
this.pnldiscourse.Size = new System.Drawing.Size(334, 233);
this.pnldiscourse.TabIndex = 4;
//
// flowLayoutPanel5
//
this.flowLayoutPanel5.AutoSize = true;
this.flowLayoutPanel5.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel5.Controls.Add(this.flowLayoutPanel6);
this.flowLayoutPanel5.Controls.Add(this.flowLayoutPanel7);
this.flowLayoutPanel5.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel5.Location = new System.Drawing.Point(14, 121);
this.flowLayoutPanel5.Name = "flowLayoutPanel5";
this.flowLayoutPanel5.Size = new System.Drawing.Size(308, 65);
this.flowLayoutPanel5.TabIndex = 3;
this.flowLayoutPanel5.WrapContents = false;
//
// flowLayoutPanel6
//
this.flowLayoutPanel6.AutoSize = true;
this.flowLayoutPanel6.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel6.Controls.Add(this.label6);
this.flowLayoutPanel6.Controls.Add(this.txtdiscoursename);
this.flowLayoutPanel6.Location = new System.Drawing.Point(3, 3);
this.flowLayoutPanel6.Name = "flowLayoutPanel6";
this.flowLayoutPanel6.Size = new System.Drawing.Size(302, 28);
this.flowLayoutPanel6.TabIndex = 2;
//
// label6
//
this.label6.Location = new System.Drawing.Point(3, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(108, 28);
this.label6.TabIndex = 0;
this.label6.Text = "{USER_NAME}:";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtdiscoursename
//
this.txtdiscoursename.BackColor = System.Drawing.Color.Black;
this.txtdiscoursename.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtdiscoursename.ForeColor = System.Drawing.Color.Gray;
this.txtdiscoursename.Location = new System.Drawing.Point(117, 3);
this.txtdiscoursename.Name = "txtdiscoursename";
this.txtdiscoursename.Size = new System.Drawing.Size(182, 19);
this.txtdiscoursename.TabIndex = 1;
//
// flowLayoutPanel7
//
this.flowLayoutPanel7.AutoSize = true;
this.flowLayoutPanel7.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel7.Controls.Add(this.label7);
this.flowLayoutPanel7.Controls.Add(this.txtdiscoursepass);
this.flowLayoutPanel7.Location = new System.Drawing.Point(3, 37);
this.flowLayoutPanel7.Name = "flowLayoutPanel7";
this.flowLayoutPanel7.Size = new System.Drawing.Size(302, 25);
this.flowLayoutPanel7.TabIndex = 2;
//
// label7
//
this.label7.Location = new System.Drawing.Point(3, 0);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(108, 22);
this.label7.TabIndex = 0;
this.label7.Text = "{PASSWORD}: ";
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtdiscoursepass
//
this.txtdiscoursepass.BackColor = System.Drawing.Color.Black;
this.txtdiscoursepass.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtdiscoursepass.ForeColor = System.Drawing.Color.Gray;
this.txtdiscoursepass.Location = new System.Drawing.Point(117, 3);
this.txtdiscoursepass.Name = "txtdiscoursepass";
this.txtdiscoursepass.PasswordChar = '*';
this.txtdiscoursepass.Size = new System.Drawing.Size(182, 19);
this.txtdiscoursepass.TabIndex = 1;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.button1.AutoSize = true;
this.button1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.button1.FlatAppearance.BorderSize = 0;
this.button1.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.button1.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.ForeColor = System.Drawing.Color.White;
this.button1.Location = new System.Drawing.Point(138, 192);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(71, 22);
this.button1.TabIndex = 2;
this.button1.Text = "{SUBMIT}";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label9
//
this.label9.Dock = System.Windows.Forms.DockStyle.Top;
this.label9.Location = new System.Drawing.Point(0, 0);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(334, 88);
this.label9.TabIndex = 0;
this.label9.Text = "{DISCOURSE_INTEGRATION}\r\n\r\n{DISCOURSE_INTEGRATION_EXP}";
this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnlterminaltutorial
//
this.pnlterminaltutorial.BackColor = System.Drawing.Color.DarkGray;
this.pnlterminaltutorial.Controls.Add(this.pgsystemstatus);
this.pnlterminaltutorial.Controls.Add(this.txtterm);
this.pnlterminaltutorial.Location = new System.Drawing.Point(622, 384);
this.pnlterminaltutorial.Name = "pnlterminaltutorial";
this.pnlterminaltutorial.Size = new System.Drawing.Size(940, 604);
this.pnlterminaltutorial.TabIndex = 5;
//
// pgsystemstatus
//
this.pgsystemstatus.BackColor = System.Drawing.Color.Black;
this.pgsystemstatus.BlockSize = 5;
this.pgsystemstatus.Location = new System.Drawing.Point(4, 578);
this.pgsystemstatus.Maximum = 100;
this.pgsystemstatus.Name = "pgsystemstatus";
this.pgsystemstatus.Size = new System.Drawing.Size(933, 23);
this.pgsystemstatus.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
this.pgsystemstatus.TabIndex = 2;
this.pgsystemstatus.Text = "shiftedProgressBar1";
this.pgsystemstatus.Value = 0;
this.pgsystemstatus.Visible = false;
//
// txtterm
//
this.txtterm.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtterm.Location = new System.Drawing.Point(4, 3);
this.txtterm.Name = "txtterm";
this.txtterm.Size = new System.Drawing.Size(933, 598);
this.txtterm.TabIndex = 1;
this.txtterm.Text = "";
//
// pnlreenteruserinfo
//
this.pnlreenteruserinfo.BackColor = System.Drawing.Color.DarkGray;
this.pnlreenteruserinfo.Controls.Add(this.flowLayoutPanel8);
this.pnlreenteruserinfo.Controls.Add(this.button2);
this.pnlreenteruserinfo.Controls.Add(this.label11);
this.pnlreenteruserinfo.Location = new System.Drawing.Point(791, 384);
this.pnlreenteruserinfo.Name = "pnlreenteruserinfo";
this.pnlreenteruserinfo.Size = new System.Drawing.Size(334, 233);
this.pnlreenteruserinfo.TabIndex = 6;
//
// flowLayoutPanel8
//
this.flowLayoutPanel8.AutoSize = true;
this.flowLayoutPanel8.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel8.Controls.Add(this.flowLayoutPanel9);
this.flowLayoutPanel8.Controls.Add(this.flowLayoutPanel10);
this.flowLayoutPanel8.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel8.Location = new System.Drawing.Point(14, 121);
this.flowLayoutPanel8.Name = "flowLayoutPanel8";
this.flowLayoutPanel8.Size = new System.Drawing.Size(308, 65);
this.flowLayoutPanel8.TabIndex = 3;
this.flowLayoutPanel8.WrapContents = false;
//
// flowLayoutPanel9
//
this.flowLayoutPanel9.AutoSize = true;
this.flowLayoutPanel9.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel9.Controls.Add(this.label8);
this.flowLayoutPanel9.Controls.Add(this.txtruser);
this.flowLayoutPanel9.Location = new System.Drawing.Point(3, 3);
this.flowLayoutPanel9.Name = "flowLayoutPanel9";
this.flowLayoutPanel9.Size = new System.Drawing.Size(302, 28);
this.flowLayoutPanel9.TabIndex = 2;
//
// label8
//
this.label8.Location = new System.Drawing.Point(3, 0);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(108, 28);
this.label8.TabIndex = 0;
this.label8.Text = "{USER_NAME}:";
this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtruser
//
this.txtruser.BackColor = System.Drawing.Color.Black;
this.txtruser.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtruser.ForeColor = System.Drawing.Color.Gray;
this.txtruser.Location = new System.Drawing.Point(117, 3);
this.txtruser.Name = "txtruser";
this.txtruser.Size = new System.Drawing.Size(182, 19);
this.txtruser.TabIndex = 1;
//
// flowLayoutPanel10
//
this.flowLayoutPanel10.AutoSize = true;
this.flowLayoutPanel10.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel10.Controls.Add(this.label10);
this.flowLayoutPanel10.Controls.Add(this.txtrpass);
this.flowLayoutPanel10.Location = new System.Drawing.Point(3, 37);
this.flowLayoutPanel10.Name = "flowLayoutPanel10";
this.flowLayoutPanel10.Size = new System.Drawing.Size(302, 25);
this.flowLayoutPanel10.TabIndex = 2;
//
// label10
//
this.label10.Location = new System.Drawing.Point(3, 0);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(108, 22);
this.label10.TabIndex = 0;
this.label10.Text = "{PASSWORD}: ";
this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtrpass
//
this.txtrpass.BackColor = System.Drawing.Color.Black;
this.txtrpass.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtrpass.ForeColor = System.Drawing.Color.Gray;
this.txtrpass.Location = new System.Drawing.Point(117, 3);
this.txtrpass.Name = "txtrpass";
this.txtrpass.PasswordChar = '*';
this.txtrpass.Size = new System.Drawing.Size(182, 19);
this.txtrpass.TabIndex = 1;
//
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.button2.AutoSize = true;
this.button2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.button2.FlatAppearance.BorderSize = 0;
this.button2.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.button2.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button2.ForeColor = System.Drawing.Color.White;
this.button2.Location = new System.Drawing.Point(138, 192);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(71, 22);
this.button2.TabIndex = 2;
this.button2.Text = "{SUBMIT}";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// label11
//
this.label11.Dock = System.Windows.Forms.DockStyle.Top;
this.label11.Location = new System.Drawing.Point(0, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(334, 88);
this.label11.TabIndex = 0;
this.label11.Text = "Enter new username and password\r\n\r\nAs per recent changes within the multi-user do" +
"main, you must re-enter your username and password to re-complete registration w" +
"ith the multi-user domain.";
this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnlauthfail
//
this.pnlauthfail.BackColor = System.Drawing.Color.DarkGray;
this.pnlauthfail.Controls.Add(this.button3);
this.pnlauthfail.Controls.Add(this.label14);
this.pnlauthfail.Location = new System.Drawing.Point(161, 460);
this.pnlauthfail.Name = "pnlauthfail";
this.pnlauthfail.Size = new System.Drawing.Size(334, 138);
this.pnlauthfail.TabIndex = 7;
//
// button3
//
this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.button3.AutoSize = true;
this.button3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.button3.FlatAppearance.BorderSize = 0;
this.button3.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.button3.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button3.ForeColor = System.Drawing.Color.White;
this.button3.Location = new System.Drawing.Point(138, 97);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(71, 22);
this.button3.TabIndex = 2;
this.button3.Text = "{SUBMIT}";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// label14
//
this.label14.Dock = System.Windows.Forms.DockStyle.Top;
this.label14.Location = new System.Drawing.Point(0, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(334, 88);
this.label14.TabIndex = 0;
this.label14.Text = "Registration Failure\r\n\r\nThat account already exists.";
this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnlauthdone
//
this.pnlauthdone.BackColor = System.Drawing.Color.DarkGray;
this.pnlauthdone.Controls.Add(this.button4);
this.pnlauthdone.Controls.Add(this.label12);
this.pnlauthdone.Location = new System.Drawing.Point(122, 640);
this.pnlauthdone.Name = "pnlauthdone";
this.pnlauthdone.Size = new System.Drawing.Size(334, 138);
this.pnlauthdone.TabIndex = 8;
//
// button4
//
this.button4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.button4.AutoSize = true;
this.button4.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.button4.FlatAppearance.BorderSize = 0;
this.button4.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.button4.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button4.ForeColor = System.Drawing.Color.White;
this.button4.Location = new System.Drawing.Point(138, 97);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(71, 22);
this.button4.TabIndex = 2;
this.button4.Text = "{SUBMIT}";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// label12
//
this.label12.Dock = System.Windows.Forms.DockStyle.Top;
this.label12.Location = new System.Drawing.Point(0, 0);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(334, 88);
this.label12.TabIndex = 0;
this.label12.Text = "Registration Failure\r\n\r\nYou may proceed on with your regular day.";
this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnlrelogin
//
this.pnlrelogin.BackColor = System.Drawing.Color.DarkGray;
this.pnlrelogin.Controls.Add(this.flowLayoutPanel11);
this.pnlrelogin.Controls.Add(this.button5);
this.pnlrelogin.Controls.Add(this.label16);
this.pnlrelogin.Location = new System.Drawing.Point(513, 445);
this.pnlrelogin.Name = "pnlrelogin";
this.pnlrelogin.Size = new System.Drawing.Size(334, 233);
this.pnlrelogin.TabIndex = 7;
//
// flowLayoutPanel11
//
this.flowLayoutPanel11.AutoSize = true;
this.flowLayoutPanel11.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel11.Controls.Add(this.flowLayoutPanel12);
this.flowLayoutPanel11.Controls.Add(this.flowLayoutPanel13);
this.flowLayoutPanel11.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel11.Location = new System.Drawing.Point(14, 121);
this.flowLayoutPanel11.Name = "flowLayoutPanel11";
this.flowLayoutPanel11.Size = new System.Drawing.Size(308, 65);
this.flowLayoutPanel11.TabIndex = 3;
this.flowLayoutPanel11.WrapContents = false;
//
// flowLayoutPanel12
//
this.flowLayoutPanel12.AutoSize = true;
this.flowLayoutPanel12.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel12.Controls.Add(this.label13);
this.flowLayoutPanel12.Controls.Add(this.txtluser);
this.flowLayoutPanel12.Location = new System.Drawing.Point(3, 3);
this.flowLayoutPanel12.Name = "flowLayoutPanel12";
this.flowLayoutPanel12.Size = new System.Drawing.Size(302, 28);
this.flowLayoutPanel12.TabIndex = 2;
//
// label13
//
this.label13.Location = new System.Drawing.Point(3, 0);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(108, 28);
this.label13.TabIndex = 0;
this.label13.Text = "{USER_NAME}:";
this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtluser
//
this.txtluser.BackColor = System.Drawing.Color.Black;
this.txtluser.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtluser.ForeColor = System.Drawing.Color.Gray;
this.txtluser.Location = new System.Drawing.Point(117, 3);
this.txtluser.Name = "txtluser";
this.txtluser.Size = new System.Drawing.Size(182, 19);
this.txtluser.TabIndex = 1;
//
// flowLayoutPanel13
//
this.flowLayoutPanel13.AutoSize = true;
this.flowLayoutPanel13.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.flowLayoutPanel13.Controls.Add(this.label15);
this.flowLayoutPanel13.Controls.Add(this.txtlpass);
this.flowLayoutPanel13.Location = new System.Drawing.Point(3, 37);
this.flowLayoutPanel13.Name = "flowLayoutPanel13";
this.flowLayoutPanel13.Size = new System.Drawing.Size(302, 25);
this.flowLayoutPanel13.TabIndex = 2;
//
// label15
//
this.label15.Location = new System.Drawing.Point(3, 0);
this.label15.Name = "label15";
this.label15.Size = new System.Drawing.Size(108, 22);
this.label15.TabIndex = 0;
this.label15.Text = "{PASSWORD}: ";
this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// txtlpass
//
this.txtlpass.BackColor = System.Drawing.Color.Black;
this.txtlpass.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtlpass.ForeColor = System.Drawing.Color.Gray;
this.txtlpass.Location = new System.Drawing.Point(117, 3);
this.txtlpass.Name = "txtlpass";
this.txtlpass.PasswordChar = '*';
this.txtlpass.Size = new System.Drawing.Size(182, 19);
this.txtlpass.TabIndex = 1;
//
// button5
//
this.button5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.button5.AutoSize = true;
this.button5.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.button5.FlatAppearance.BorderSize = 0;
this.button5.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.button5.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button5.ForeColor = System.Drawing.Color.White;
this.button5.Location = new System.Drawing.Point(138, 192);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(71, 22);
this.button5.TabIndex = 2;
this.button5.Text = "{SUBMIT}";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// label16
//
this.label16.Dock = System.Windows.Forms.DockStyle.Top;
this.label16.Location = new System.Drawing.Point(0, 0);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(334, 88);
this.label16.TabIndex = 0;
this.label16.Text = "Re-enter User Login\r\n\r\nThe auto-login attempt for your current user account did n" +
"ot work on this multi-user domain. Please enter the correct username and passwor" +
"d for this MUD.";
this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// pnlrelogerror
//
this.pnlrelogerror.BackColor = System.Drawing.Color.DarkGray;
this.pnlrelogerror.Controls.Add(this.button6);
this.pnlrelogerror.Controls.Add(this.label17);
this.pnlrelogerror.Location = new System.Drawing.Point(124, 816);
this.pnlrelogerror.Name = "pnlrelogerror";
this.pnlrelogerror.Size = new System.Drawing.Size(334, 138);
this.pnlrelogerror.TabIndex = 9;
//
// button6
//
this.button6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.button6.AutoSize = true;
this.button6.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.button6.FlatAppearance.BorderSize = 0;
this.button6.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Black;
this.button6.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Red;
this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button6.ForeColor = System.Drawing.Color.White;
this.button6.Location = new System.Drawing.Point(138, 97);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(71, 22);
this.button6.TabIndex = 2;
this.button6.Text = "{SUBMIT}";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// label17
//
this.label17.Dock = System.Windows.Forms.DockStyle.Top;
this.label17.Location = new System.Drawing.Point(0, 0);
this.label17.Name = "label17";
this.label17.Size = new System.Drawing.Size(334, 88);
this.label17.TabIndex = 0;
this.label17.Text = "Access denied.\r\n\r\nEither you entered details for an account that doesn\'t exist or" +
" you attempted to break into an existing account with the incorrect password.";
this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// Oobe
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.DarkBlue;
this.ClientSize = new System.Drawing.Size(1354, 733);
this.Controls.Add(this.pnlrelogerror);
this.Controls.Add(this.pnlrelogin);
this.Controls.Add(this.pnlauthdone);
this.Controls.Add(this.pnlauthfail);
this.Controls.Add(this.pnlreenteruserinfo);
this.Controls.Add(this.pnlterminaltutorial);
this.Controls.Add(this.pnldiscourse);
this.Controls.Add(this.pnluserinfo);
this.Controls.Add(this.pnllanguage);
this.Controls.Add(this.pnlshadow);
this.Font = new System.Drawing.Font("Lucida Console", 9F);
this.Name = "Oobe";
this.Text = "OutOfBoxExperience";
this.Load += new System.EventHandler(this.Oobe_Load);
this.pnllanguage.ResumeLayout(false);
this.pnllanguage.PerformLayout();
this.pnluserinfo.ResumeLayout(false);
this.pnluserinfo.PerformLayout();
this.flowLayoutPanel1.ResumeLayout(false);
this.flowLayoutPanel1.PerformLayout();
this.flowLayoutPanel4.ResumeLayout(false);
this.flowLayoutPanel4.PerformLayout();
this.flowLayoutPanel3.ResumeLayout(false);
this.flowLayoutPanel3.PerformLayout();
this.flowLayoutPanel2.ResumeLayout(false);
this.flowLayoutPanel2.PerformLayout();
this.pnldiscourse.ResumeLayout(false);
this.pnldiscourse.PerformLayout();
this.flowLayoutPanel5.ResumeLayout(false);
this.flowLayoutPanel5.PerformLayout();
this.flowLayoutPanel6.ResumeLayout(false);
this.flowLayoutPanel6.PerformLayout();
this.flowLayoutPanel7.ResumeLayout(false);
this.flowLayoutPanel7.PerformLayout();
this.pnlterminaltutorial.ResumeLayout(false);
this.pnlreenteruserinfo.ResumeLayout(false);
this.pnlreenteruserinfo.PerformLayout();
this.flowLayoutPanel8.ResumeLayout(false);
this.flowLayoutPanel8.PerformLayout();
this.flowLayoutPanel9.ResumeLayout(false);
this.flowLayoutPanel9.PerformLayout();
this.flowLayoutPanel10.ResumeLayout(false);
this.flowLayoutPanel10.PerformLayout();
this.pnlauthfail.ResumeLayout(false);
this.pnlauthfail.PerformLayout();
this.pnlauthdone.ResumeLayout(false);
this.pnlauthdone.PerformLayout();
this.pnlrelogin.ResumeLayout(false);
this.pnlrelogin.PerformLayout();
this.flowLayoutPanel11.ResumeLayout(false);
this.flowLayoutPanel11.PerformLayout();
this.flowLayoutPanel12.ResumeLayout(false);
this.flowLayoutPanel12.PerformLayout();
this.flowLayoutPanel13.ResumeLayout(false);
this.flowLayoutPanel13.PerformLayout();
this.pnlrelogerror.ResumeLayout(false);
this.pnlrelogerror.PerformLayout();
this.BackColor = System.Drawing.Color.Silver;
this.ClientSize = new System.Drawing.Size(653, 457);
this.Controls.Add(this.lblhackwords);
this.Controls.Add(this.lblHijack);
this.Name = "HijackScreen";
this.Text = "ShiftOS";
this.TransparencyKey = System.Drawing.Color.White;
this.ResumeLayout(false);
this.PerformLayout();
}
internal System.Windows.Forms.Label lblHijack;
internal System.Windows.Forms.Timer conversationtimer;
internal System.Windows.Forms.Timer textgen;
internal System.Windows.Forms.Label lblhackwords;
internal System.Windows.Forms.Timer hackeffecttimer;
internal System.ComponentModel.BackgroundWorker BackgroundWorker1;
#endregion
private System.Windows.Forms.Panel pnlshadow;
private System.Windows.Forms.Panel pnllanguage;
private System.Windows.Forms.Button btnselectlang;
private System.Windows.Forms.ListBox lblanguage;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel pnluserinfo;
private System.Windows.Forms.Button btnsetuserinfo;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.TextBox txtusername;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox txtpassword;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtsysname;
private System.Windows.Forms.Panel pnldiscourse;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel6;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox txtdiscoursename;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel7;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox txtdiscoursepass;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Panel pnlterminaltutorial;
private Controls.TerminalBox txtterm;
private ShiftedProgressBar pgsystemstatus;
private System.Windows.Forms.Panel pnlreenteruserinfo;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel8;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel9;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox txtruser;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel10;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox txtrpass;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.Panel pnlauthfail;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Panel pnlauthdone;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Panel pnlrelogin;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel11;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel12;
private System.Windows.Forms.Label label13;
private System.Windows.Forms.TextBox txtluser;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel13;
private System.Windows.Forms.Label label15;
private System.Windows.Forms.TextBox txtlpass;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Panel pnlrelogerror;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Label label17;
}
}

View file

@ -41,396 +41,167 @@ namespace ShiftOS.WinForms
{
public partial class Oobe : Form, IOobe
{
public Save MySave { get; private set; }
public bool IsTransferMode = false;
public Oobe()
{
InitializeComponent();
}
public void HideAll()
{
foreach (Control ctrl in this.Controls)
{
if (ctrl != this.pnlshadow)
{
ctrl.Hide();
}
}
}
public void SetupUI()
{
HideAll();
Panel shown = null;
if (IsTransferMode == false)
{
switch (MySave.StoryPosition)
{
case 0:
shown = pnllanguage;
SetupLanguages();
break;
case 1:
shown = pnluserinfo;
break;
case 2:
shown = pnldiscourse;
break;
default:
shown = pnlterminaltutorial;
SetupTerminal();
break;
}
}
else
{
switch (TransferProgress)
{
case 0:
shown = pnlreenteruserinfo;
break;
case 1:
shown = pnlauthfail;
break;
case 2:
shown = pnlauthdone;
break;
case 4:
shown = pnlrelogin;
break;
case 5:
shown = pnlrelogerror;
break;
}
}
if (shown != null)
{
shown.Location = new Point((int)(shown.Parent?.Width - shown.Width) / 2, (int)(shown?.Parent.Height - shown.Height) / 2);
pnlshadow.Size = (Size)shown.Size;
pnlshadow.Location = new Point((int)shown.Left + 15, (int)shown.Top + 15);
shown.Show();
}
}
private int TransferProgress = 0;
public void SetupTerminal()
{
//just so that the terminal can access our save
SaveSystem.CurrentSave = MySave;
Applications.Terminal.MakeWidget(txtterm);
TerminalBackend.InStory = false;
TerminalBackend.PrefixEnabled = true;
Console.WriteLine("{TERMINAL_TUTORIAL_1}");
SaveSystem.TransferCodepointsFrom("oobe", 50);
Shiftorium.Installed += () =>
{
if (SaveSystem.CurrentSave.StoryPosition < 5)
{
if (Shiftorium.UpgradeInstalled("mud_fundamentals"))
{
Console.WriteLine("{TERMINAL_TUTORIAL_2}");
txtterm.Height -= pgsystemstatus.Height - 4;
pgsystemstatus.Show();
StartInstall();
}
}
};
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.BackColor = Color.Black;
}
public int thingsDone
string rtext;
string gtexttotype;
int charcount;
int currentletter;
int slashcount;
int conversationcount = 0;
Label textgeninput;
bool needtoclose = false;
public bool upgraded = false;
int hackeffect;
int percentcount;
public void TextType(string texttotype)
{
get
{
return pgsystemstatus.Value;
}
set
charcount = texttotype.Length;
gtexttotype = texttotype;
currentletter = 0;
slashcount = 1;
foreach (var c in gtexttotype)
{
rtext += c;
this.Invoke(new Action(() =>
{
pgsystemstatus.Value = value;
textgeninput.Text = rtext + "|";
}));
Console.Beep(750, 50);
slashcount++;
if (slashcount == 5)
slashcount = 1;
}
rtext += Environment.NewLine;
}
public int thingsToDo
{
get
{
return pgsystemstatus.Maximum;
}
set
{
this.Invoke(new Action(() =>
{
pgsystemstatus.Maximum = value;
}));
}
}
public void StartInstall()
{
Dictionary<string, string> Aliases = new Dictionary<string, string>();
Aliases.Add("help", "sos.help");
Aliases.Add("save", "sos.save");
Aliases.Add("shutdown", "sys.shutdown");
Aliases.Add("status", "sos.status");
Aliases.Add("pong", "win.open{app:\"pong\"}");
Aliases.Add("programs", "sos.help{topic:\"programs\"}");
foreach (var path in Paths.GetAll())
{
Console.WriteLine("{CREATE}: " + path);
thingsDone += 1;
Thread.Sleep(500);
}
thingsToDo = Aliases.Count + Paths.GetAll().Length + 2;
Console.WriteLine("{INSTALL}: {PONG}");
thingsDone++;
Thread.Sleep(200);
Console.WriteLine("{INSTALL}: {TERMINAL}");
thingsDone++;
Thread.Sleep(200);
foreach (var kv in Aliases)
{
Console.WriteLine($"{{ALIAS}}: {kv.Key} => {kv.Value}");
thingsDone++;
Thread.Sleep(450);
}
SaveSystem.CurrentSave.StoryPosition = 5;
SaveSystem.SaveGame();
}
List<string> supportedLangs
{
get
{
//return JsonConvert.DeserializeObject<List<string>>(Properties.Resources.languages);
return new List<string>(new[] { "english" });
}
}
public void SetupLanguages()
{
lblanguage.Items.Clear();
foreach (var supportedLang in supportedLangs)
{
lblanguage.Items.Add(supportedLang);
}
}
public void SetupAllControls()
{
foreach (Control ctrl in this.Controls)
{
SetupControl(ctrl);
}
}
public void SetupControl(Control ctrl)
{
if (!string.IsNullOrWhiteSpace(ctrl.Text))
ctrl.Text = Localization.Parse(ctrl.Text);
try
{
foreach (Control child in ctrl.Controls)
{
SetupControl(child);
}
}
catch
{
}
}
private void btnselectlang_Click(object sender, EventArgs e)
{
if (lblanguage.SelectedItem != null)
{
string l = lblanguage.SelectedItem as string;
MySave.Language = l;
MySave.StoryPosition = 1;
SetupUI();
}
}
private void btnsetuserinfo_Click(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(txtusername.Text))
{
MySave.Username = txtusername.Text;
MySave.Password = txtpassword.Text;
MySave.SystemName = (string.IsNullOrWhiteSpace(txtsysname.Text)) ? "shiftos" : txtsysname.Text;
MySave.StoryPosition = 2;
SetupUI();
}
}
private void button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(txtdiscoursename.Text))
{
MySave.DiscourseName = txtdiscoursename.Text;
MySave.DiscoursePass = txtdiscoursepass.Text;
}
MySave.StoryPosition = 3;
SetupUI();
}
public Save MySave = null;
public void StartShowing(Save save)
{
IsTransferMode = false;
MySave = save;
SetupAllControls();
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.TopMost = true;
var t = new Thread(new ThreadStart(() =>
{
textgeninput = this.lblHijack;
TextType("Your system is now being hijacked.");
rtext = "";
Thread.Sleep(1000);
textgeninput = this.lblhackwords;
this.Invoke(new Action(() =>
{
lblHijack.Hide();
}));
TextType("Hello, and welcome to ShiftOS.");
Thread.Sleep(500);
TextType("You have been cordially and involuntarily selected to participate in the development and testing of this operating system.");
Thread.Sleep(500);
TextType("My identity shall remain secret, but if you've been through this before, you'll know exactly who I am.");
Thread.Sleep(500);
TextType("But that doesn't matter.");
Thread.Sleep(500);
TextType("I will now begin to prepare your system for the installation of ShiftOS.");
Thread.Sleep(1000);
FakeSetupScreen fakeForm = null;
this.Invoke(new Action(() =>
{
fakeForm = new FakeSetupScreen(this);
fakeForm.Show();
MySave = save;
lblhackwords.GotFocus += (o, a) =>
{
try
{
fakeForm.Invoke(new Action(() =>
{
fakeForm.Focus();
fakeForm.BringToFront();
}));
}
catch { }
};
fakeForm.TextSent += (txt) =>
{
TextType(txt);
};
}));
while(fakeForm?.Visible == true)
{
this.Load += (o, a) =>
{
SetupUI();
};
SaveSystem.GameReady += () =>
{
}
TextType("That's all the information I need for now.");
Thread.Sleep(2000);
TextType("Beginning installation of ShiftOS on " + MySave.SystemName + ".");
Thread.Sleep(500);
TextType("Creating new user: " + MySave.Username);
TextType("...with 0 Codepoints, 0 installed upgrades, no legion, and no user shops...");
MySave.Codepoints = 0;
MySave.Upgrades = new Dictionary<string, bool>();
MySave.CurrentLegions = new List<string>();
MySave.MyShop = "";
TextType("User created successfully.");
Thread.Sleep(450);
TextType("You may be wondering what all that meant... You see, in ShiftOS, your user account holds everything I need to know about you.");
Thread.Sleep(640);
TextType("It holds the amount of Codepoints you have - Codepoints are a special currency you can get by doing various tasks in ShiftOS.");
Thread.Sleep(500);
TextType("It also holds all the upgrades you've installed onto ShiftOS - features, applications, enhancements, patches, all that stuff.");
Thread.Sleep(500);
TextType("As for the legions and the shop thing, I'll reveal that to you when it becomes necessary.");
Thread.Sleep(500);
TextType("Your user account is stored on a server of mine called the multi-user domain. It holds every single user account, every script, every application, every thing within ShiftOS.");
Thread.Sleep(600);
TextType("Every time you boot ShiftOS, if you are connected to the Internet, you will immediately connect to the multi-user domain and ShiftOS will attempt to authenticate using the last successful username and password pair.");
Thread.Sleep(500);
TextType("When you are in the MUD, you are in the middle of a free-for-all. I don't want it to be this way, it just is. I've employed you to help me develop and test the MUD and ShiftOS, but you have a secondary task if you choose to accept it.");
Thread.Sleep(500);
TextType("There have been a few rebelious groups in the MUD - who have cracked ShiftOS's security barriers - and they're using these exploits to steal others' Codepoints, upgrades, and even spread damaging viruses.");
Thread.Sleep(500);
TextType("I want you to stop them.");
Thread.Sleep(500);
TextType("Whoever can stop these hackers will gain eternal control over the multi-user domain. They will be given the ability to do as they please, so long as it doesn't interfere with my experiments.");
Thread.Sleep(500);
TextType("I have been installing ShiftOS on your system in the background as I was talking with you. Before I can set you free, I need to give you a tutorial on how to use the system.");
Thread.Sleep(500);
TextType("I will reboot your system in Tutorial Mode now. Complete the tutorial, and you shall be on your way.");
SaveSystem.CurrentSave = MySave;
SaveSystem.SaveGame();
this.Invoke(new Action(() =>
{
this.Close();
(AppearanceManager.OpenForms[0] as WindowBorder).BringToFront();
Console.Write($"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ");
}));
};
}));
this.Show();
this.BringToFront();
this.TopMost = true;
t.IsBackground = true;
t.Start();
}
public void Clear()
{
this.Invoke(new Action(() =>
{
textgeninput.Text = "";
}));
}
public void ShowSaveTransfer(Save save)
{
MySave = save;
ServerManager.MessageReceived += (msg) =>
{
if(msg.Name == "mud_notfound")
{
TransferProgress = 2;
this.Invoke(new Action(() => { SetupUI(); }));
}
else if(msg.Name == "mud_found")
{
TransferProgress = 1;
this.Invoke(new Action(() => { SetupUI(); }));
}
else if(msg.Name == "mud_saved")
{
try
{
this.Invoke(new Action(() =>
{
SaveSystem.CurrentSave = MySave;
this.Close();
Utils.Delete(Paths.SaveFileInner);
}));
}
catch { }
}
};
IsTransferMode = true;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.TopMost = true;
this.Show();
SetupUI();
}
private void button2_Click(object sender, EventArgs e)
{
pnlreenteruserinfo.Hide();
pnlshadow.Size = new Size(0, 0);
ServerManager.SendMessage("mud_checkuserexists", $@"{{
username: ""{txtruser.Text}"",
password: ""{txtrpass.Text}""
}}");
MySave.Username = txtruser.Text;
MySave.Password = txtrpass.Text;
}
private void button3_Click(object sender, EventArgs e)
{
TransferProgress = 0;
SetupUI();
}
private void button4_Click(object sender, EventArgs e)
{
ServerManager.SendMessage("mud_save", JsonConvert.SerializeObject(MySave));
throw new NotImplementedException();
}
public void PromptForLogin()
{
ServerManager.MessageReceived += (msg) =>
{
if (msg.Name == "mud_notfound")
{
TransferProgress = 5;
this.Invoke(new Action(() => { SetupUI(); }));
}
else if (msg.Name == "mud_found")
{
this.Invoke(new Action(() =>
{
Utils.WriteAllText(Paths.GetPath("user.dat"), $@"{{
username: ""{txtluser.Text}"",
password: ""{txtlpass.Text}""
}}");
SaveSystem.ReadSave();
this.Close();
}));
}
};
IsTransferMode = true;
TransferProgress = 4;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.TopMost = true;
this.Show();
SetupUI();
}
private void button6_Click(object sender, EventArgs e)
{
TransferProgress = 4;
SetupUI();
}
private void button5_Click(object sender, EventArgs e)
{
ServerManager.SendMessage("mud_checkuserexists", $@"{{
username: ""{txtluser.Text}"",
password: ""{txtlpass.Text}""
}}");
}
private void Oobe_Load(object sender, EventArgs e)
{
throw new NotImplementedException();
}
}
}

View file

@ -108,6 +108,50 @@ namespace ShiftOS.WinForms
AppearanceManager.SetupDialog(frm);
}
public void PromptText(string title, string msg, Action<string> callback)
{
Dialog frm = new Dialog();
frm.Text = title;
var pnl = new Panel();
var flow = new FlowLayoutPanel();
var btnok = new Button();
btnok.AutoSize = true;
btnok.AutoSizeMode = AutoSizeMode.GrowAndShrink;
flow.Height = btnok.Height + 4;
btnok.Text = "ok";
flow.Dock = DockStyle.Bottom;
flow.Controls.Add(btnok);
var txtinput = new TextBox();
btnok.Show(); btnok.Click += (o, a) =>
{
callback?.Invoke(txtinput.Text);
frm.Close();
};
txtinput.Dock = DockStyle.Bottom;
txtinput.KeyDown += (o, a) =>
{
if(a.KeyCode == Keys.Enter)
{
a.SuppressKeyPress = true;
callback?.Invoke(txtinput.Text);
frm.Close();
}
};
pnl.Controls.Add(flow);
pnl.Controls.Add(txtinput);txtinput.Show();
flow.Show();
var lbl = new Label();
lbl.Text = msg;
lbl.TextAlign = ContentAlignment.MiddleCenter;
lbl.Dock = DockStyle.Fill;
lbl.AutoSize = false;
pnl.Controls.Add(lbl); lbl.Show();
frm.Controls.Add(pnl);
pnl.Dock = DockStyle.Fill;
frm.Size = new Size(320, 200);
AppearanceManager.SetupDialog(frm);
}
}
public class WinformsFSFrontend : IFileSkimmer

View file

@ -1,28 +1,4 @@
/*
* MIT License
*
* Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
@ -524,15 +500,9 @@ namespace ShiftOS.WinForms.Properties {
/// Dependencies: null
/// },
/// {
/// Name: &quot;WM 4 Windows&quot;,
/// Cost: 150,
/// Description: &quot;Display up to 4 simultaneous windows on-screen in a 2x2 grid.&quot;,
/// Dependencies: &quot;window_manager&quot;
/// },
/// {
/// Name: &quot;Virus Scanner&quot;,
/// Cost: 2000,
/// Description: &quot;Being inside the multi-user domain comes with many risks, one of which being viruses. The Virus Scanner can m [rest of string was truncated]&quot;;.
/// Name: &quot;Color Depth Dithering&quot;,
/// Cost: 1000,
/// Description: &quot;Right now, if you try to display images on the screen, with a low color depth like we have, the image will be totally unrecognizable! With this upgrade, we can adapt a simple 1-dimensional dithering algorithm into the video driver to hopefully smooth out the trans [rest of string was truncated]&quot;;.
/// </summary>
internal static string Shiftorium {
get {
@ -540,6 +510,16 @@ namespace ShiftOS.WinForms.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
///{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fl [rest of string was truncated]&quot;;.
/// </summary>
internal static string ShiftOS {
get {
return ResourceManager.GetString("ShiftOS", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to [
/// &quot;http://downloads.michaeltheshifter.me/music/blockride.mp3&quot;,

View file

@ -262,4 +262,7 @@
<data name="sys_shiftoriumstory" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\sys_shiftoriumstory.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
</data>
<data name="ShiftOS" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ShiftOS.rtf;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View file

@ -0,0 +1,267 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f44\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f45\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\f47\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f48\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f49\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f50\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f51\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f52\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f414\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f415\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}
{\f417\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f418\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f419\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f420\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}
{\f421\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f422\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f424\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\f425\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}
{\f427\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\f428\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\f429\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\f430\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}
{\f431\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\f432\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}
{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}
{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\ctextone\ctint165\cshade255\red90\green90\blue90;\chyperlink\ctint255\cshade255\red5\green99\blue193;}{\*\defchp
\fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
\snext0 \sqformat \spriority0 \styrsid13057548 Normal;}{\s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1033\langfe1033\kerning32\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink15 \sqformat \spriority9 \styrsid13057548 heading 1;}{
\s2\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\ai\af0\afs28\alang1025 \ltrch\fcs0
\b\i\fs28\lang1033\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink16 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 2;}{
\s3\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel2\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs26\alang1025 \ltrch\fcs0
\b\fs26\lang1033\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink17 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 3;}{
\s4\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel3\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs28\alang1025 \ltrch\fcs0
\b\fs28\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink18 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 4;}{
\s5\ql \li0\ri0\sb240\sa60\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel4\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\ai\af0\afs26\alang1025 \ltrch\fcs0
\b\i\fs26\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink19 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 5;}{
\s6\ql \li0\ri0\sb240\sa60\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel5\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs22\alang1025 \ltrch\fcs0
\b\fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink20 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 6;}{
\s7\ql \li0\ri0\sb240\sa60\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel6\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
\sbasedon0 \snext0 \slink21 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 7;}{\s8\ql \li0\ri0\sb240\sa60\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel7\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ai\af0\afs24\alang1025
\ltrch\fcs0 \i\fs24\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink22 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 8;}{
\s9\ql \li0\ri0\sb240\sa60\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel8\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033
\sbasedon0 \snext0 \slink23 \ssemihidden \sunhideused \sqformat \spriority9 \styrsid13057548 heading 9;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
\snext11 \ssemihidden \sunhideused Normal Table;}{\*\cs15 \additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0 \b\fs32\kerning32\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink1 \slocked \spriority9 \styrsid13057548 Heading 1 Char;}{\*\cs16 \additive
\rtlch\fcs1 \ab\ai\af0\afs28 \ltrch\fcs0 \b\i\fs28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink2 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 2 Char;}{\*\cs17 \additive \rtlch\fcs1 \ab\af0\afs26 \ltrch\fcs0
\b\fs26\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink3 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 3 Char;}{\*\cs18 \additive \rtlch\fcs1 \ab\af0\afs28 \ltrch\fcs0 \b\fs28
\sbasedon10 \slink4 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 4 Char;}{\*\cs19 \additive \rtlch\fcs1 \ab\ai\af0\afs26 \ltrch\fcs0 \b\i\fs26 \sbasedon10 \slink5 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 5 Char;}{\*\cs20
\additive \rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b \sbasedon10 \slink6 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 6 Char;}{\*\cs21 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24
\sbasedon10 \slink7 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 7 Char;}{\*\cs22 \additive \rtlch\fcs1 \ai\af0\afs24 \ltrch\fcs0 \i\fs24 \sbasedon10 \slink8 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 8 Char;}{\*\cs23
\additive \rtlch\fcs1 \af0 \ltrch\fcs0 \loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink9 \slocked \ssemihidden \spriority9 \styrsid13057548 Heading 9 Char;}{
\s24\qc \li0\ri0\sb240\sa60\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1033\langfe1033\kerning28\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink25 \sqformat \spriority10 \styrsid13057548 Title;}{\*\cs25 \additive \rtlch\fcs1 \ab\af0\afs32 \ltrch\fcs0
\b\fs32\kerning28\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink24 \slocked \spriority10 \styrsid13057548 Title Char;}{\s26\qc \li0\ri0\sa60\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel1\adjustright\rin0\lin0\itap0 \rtlch\fcs1
\af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink27 \sqformat \spriority11 \styrsid13057548 Subtitle;}{\*\cs27 \additive \rtlch\fcs1 \af0\afs24
\ltrch\fcs0 \fs24\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \slink26 \slocked \spriority11 \styrsid13057548 Subtitle Char;}{\*\cs28 \additive \rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b \sbasedon10 \sqformat \spriority22 \styrsid13057548 Strong;}{\*\cs29
\additive \rtlch\fcs1 \ai\af0 \ltrch\fcs0 \b\i\f31506 \sbasedon10 \sqformat \spriority20 \styrsid13057548 Emphasis;}{\s30\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs32\alang1025 \ltrch\fcs0
\fs24\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext30 \sqformat \spriority1 \styrsid13057548 No Spacing;}{
\s31\ql \li720\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033
\sbasedon0 \snext31 \sqformat \spriority34 \styrsid13057548 List Paragraph;}{\s32\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
\i\fs24\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink33 \sqformat \spriority29 \styrsid13057548 Quote;}{\*\cs33 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \i\fs24
\sbasedon10 \slink32 \slocked \spriority29 \styrsid13057548 Quote Char;}{\s34\ql \li720\ri720\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin720\lin720\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\b\i\fs24\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 \slink35 \sqformat \spriority30 \styrsid13057548 Intense Quote;}{\*\cs35 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \b\i\fs24
\sbasedon10 \slink34 \slocked \spriority30 \styrsid13057548 Intense Quote Char;}{\*\cs36 \additive \i\cf17 \sqformat \spriority19 \styrsid13057548 Subtle Emphasis;}{\*\cs37 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \b\i\fs24\ul
\sbasedon10 \sqformat \spriority21 \styrsid13057548 Intense Emphasis;}{\*\cs38 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \fs24\ul \sbasedon10 \sqformat \spriority31 \styrsid13057548 Subtle Reference;}{\*\cs39 \additive \rtlch\fcs1 \af0 \ltrch\fcs0
\b\fs24\ul \sbasedon10 \sqformat \spriority32 \styrsid13057548 Intense Reference;}{\*\cs40 \additive \rtlch\fcs1 \af0\afs24 \ltrch\fcs0 \b\i\fs24\loch\f31502\hich\af31502\dbch\af31501 \sbasedon10 \sqformat \spriority33 \styrsid13057548 Book Title;}{
\s41\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1033\langfe1033\kerning32\loch\f31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 \sbasedon1 \snext0 \ssemihidden \sunhideused \sqformat \spriority39 \styrsid13057548 TOC Heading;}{\*\cs42 \additive \rtlch\fcs1 \af0 \ltrch\fcs0
\ul\cf18 \sbasedon10 \sunhideused \styrsid13057548 Hyperlink;}}{\*\rsidtbl \rsid2966778\rsid7108795\rsid13057548\rsid13897275}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}
{\info{\author Michael}{\operator Michael}{\creatim\yr2017\mo1\dy17\hr12\min42}{\revtim\yr2017\mo1\dy17\hr12\min42}{\version2}{\edmins1}{\nofpages1}{\nofwords98}{\nofchars563}{\nofcharsws660}{\vern23}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/off
ice/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen
\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
\asianbrkrule\rsidroot13057548\newtblstyruls\nogrowautofit\viewbksp1\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0{\*\background {\shp{\*\shpinst\shpleft0\shptop0\shpright0\shpbottom0\shpfhdr0\shpbxmargin\shpbxignore\shpbymargin\shpbyignore\shpwr0\shpwrk0\shpfblwtxt1\shpz0\shplid1025
{\sp{\sn shapeType}{\sv 1}}{\sp{\sn fFlipH}{\sv 0}}{\sp{\sn fFlipV}{\sv 0}}{\sp{\sn fillColor}{\sv 0}}{\sp{\sn fFilled}{\sv 1}}{\sp{\sn lineWidth}{\sv 0}}{\sp{\sn fLine}{\sv 0}}{\sp{\sn bWMode}{\sv 9}}{\sp{\sn fBackground}{\sv 1}}
{\sp{\sn fLayoutInCell}{\sv 1}}}}}\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3
\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}
{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar
\s1\ql \li0\ri0\sb240\sa60\keepn\widctlpar\wrapdefault\aspalpha\aspnum\faauto\outlinelevel0\adjustright\rin0\lin0\itap0\pararsid13057548 \rtlch\fcs1 \ab\af0\afs32\alang1025 \ltrch\fcs0
\b\fs32\lang1033\langfe1033\kerning32\loch\af31502\hich\af31502\dbch\af31501\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13057548 \hich\af31502\dbch\af31501\loch\f31502 ShiftOS - This is an early version of the game!}{\rtlch\fcs1
\af0 \ltrch\fcs0 \insrsid2966778
\par }\pard\plain \ltrpar\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid13057548 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0
\fs24\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13057548 \hich\af31506\dbch\af31505\loch\f31506 Hey there. This isn\loch\af31506\dbch\af31505\hich\f31506 \rquote
\hich\af31506\dbch\af31505\loch\f31506
t really a license agreement. I am Michael, the lead developer of ShiftOS. I just wanted to take the time to let you know that you are playing an UNSTABLE release of the game, and therefore there will be lots of caveats.
\par
\par \hich\af31506\dbch\af31505\loch\f31506 For example, \hich\af31506\dbch\af31505\loch\f31506 not all the planned features may work or even be implemented. This may be false \hich\af31506\dbch\af31505\loch\f31506 later\hich\af31506\dbch\af31505\loch\f31506
in development, but I\loch\af31506\dbch\af31505\hich\f31506 \rquote \hich\af31506\dbch\af31505\loch\f31506 m just letting you know that ShiftOS is unfinished and \hich\af31506\dbch\af31505\loch\f31506 in active development. Expect changes!
\par
\par \hich\af31506\dbch\af31505\loch\f31506 If you \hich\af31506\dbch\af31505\loch\f31506 have any problems, you may visit t\hich\af31506\dbch\af31505\loch\f31506 he forum at }{\field{\*\fldinst {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13057548
\hich\af31506\dbch\af31505\loch\f31506 \hich\af31506\dbch\af31505\loch\f31506 HYPERLINK\hich\af31506\dbch\af31505\loch\f31506 \hich\af31506\dbch\af31505\loch\f31506 "\hich\af31506\dbch\af31505\loch\f31506 http://shiftos.michaeltheshifter.me/
\hich\af31506\dbch\af31505\loch\f31506 "\hich\af31506\dbch\af31505\loch\f31506 }}{\fldrslt {\rtlch\fcs1 \af0 \ltrch\fcs0 \cs42\ul\cf18\insrsid13057548\charrsid6629899 \hich\af31506\dbch\af31505\loch\f31506 http://shiftos.michaeltheshifter.me/}}}
\sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sftnbj {\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13057548 \hich\af31506\dbch\af31505\loch\f31506 . Have fun!}{\rtlch\fcs1 \af0 \ltrch\fcs0 \insrsid13057548\charrsid13057548
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b030414000600080000002100ec7f4c3895070000c9200000160000007468656d652f7468656d652f
7468656d65312e786d6cec59cd8b1bc915bf07f23f347d97f5d5ad8fc1f2a24fcfda33b6b164873dd648a5eef2547789aad28cc56208de532e81c026e49085bd
ed21842cecc22eb9e48f31d8249b3f22afaa5bdd5552c99e191c3061463074977eefd5afde7bf5de53d5ddcf5e26d4bbc05c1096f6fcfa9d9aefe174ce16248d
7afeb3d9a4d2f13d2151ba4094a5b8e76fb0f03fbbf7eb5fdd454732c609f6403e1547a8e7c752ae8eaa5531876124eeb0154ee1bb25e30992f0caa3ea82a34b
d09bd06aa3566b55134452df4b51026a1f2f97648ebd9952e9dfdb2a1f53784da5500373caa74a35b6243476715e5708b11143cabd0b447b3eccb3609733fc52
fa1e4542c2173dbfa6fffceabdbb5574940b517940d6909be8bf5c2e17589c37f49c3c3a2b260d823068f50bfd1a40e53e6edc1eb7c6ad429f06a0f91c569a71
31758683ee6014e65803943d3a748fdaa366ddc21bfa9b7b9cfba1fa58780dcaf4077bf8c9640856b4f01a94e1c33d7c10b41bc3c0c26b50866fede1dbb5fe28
685b780d8a2949cff7d0b5b0d51c6e575b40968c1e3be1dd3098b41bb9f21205d15044979a62c9527928d612f482f1090014902249524f6e567889e610c54344
c91927de09896208bc154a9980e15aa336a935e1bffa04fa495b041d6164482b5ec044ec0d293e9e9873b2923dff0168f50dc8db9f7f7ef3fac737af7f7af3d5
576f5eff3d9f5babb2e48e511a9972bf7cf787ff7cf35befdf3f7cfbcbd77fcca6dec50b13ffee6fbf7bf78f7fbe4f3dacb834c5db3f7dffeec7efdffef9f7ff
faebd70eed7d8ece4cf88c2458788ff0a5f79425b040077f7cc6af27318b113125fa6924508ad42c0efd63195be8471b44910337c0b61d9f7348352ee0fdf50b
8bf034e66b491c1a1fc689053c658c0e18775ae1a19acb30f36c9d46eec9f9dac43d45e8c235f710a59697c7eb15e458e252398cb145f30945a944114eb1f4d4
77ec1c63c7eabe20c4b2eb29997326d8527a5f106f8088d324337266455329744c12f0cbc64510fc6dd9e6f4b93760d4b5ea11beb091b0371075909f616a99f1
3e5a4b94b854ce50424d839f2019bb484e377c6ee2c64282a7234c99375e60215c328f39acd770fa4348336eb79fd24d6223b924e72e9d278831133962e7c318
252b17764ad2d8c47e2ece214491f7844917fc94d93b44bd831f507ad0ddcf09b6dcfde16cf00c32ac49a90c10f5cd9a3b7c791f332b7ea71bba44d8956afa3c
b1526c9f1367740cd69115da271853748916187bcf3e773018b09565f392f48318b2ca317605d60364c7aa7a4fb1805e493537fb79f284082b64a7386207f89c
6e7612cf06a509e287343f02af9b361f43a94b5c01f098cecf4de023023d20c48bd3288f05e83082fba0d62731b20a987a17ee78dd70cb7f57d963b02f5f5834
aeb02f41065f5b0612bb29f35edbcc10b52628036686a0cb70a55b10b1dc5f8aa8e2aac5d64eb9a5bd694b37407764353d09493fd801edf43ee1ffaef7810ee3
ed5fbe71ec838fd3efb8155bc9ea9a9dcea16472bcd3df1cc2ed763543c617e4d36f6a46689d3ec15047f633d66d4f73dbd3f8fff73dcda1fd7cdbc91cea376e
3b191f3a8cdb4e263f5cf9389d4cd9bc405fa30e3cb2831e7dec931c3cf559124aa77243f189d0073f027ecf2c2630a8e4f489272e4e0157313caa32071358b8
88232de371267f43643c8dd10a4e87eabe5212895c7524bc15137068a4879dba159eae9353b6c80e3beb7575b09955568164395e0b8b7138a89219bad52e0ff0
0af59a6da40f5ab70494ec75481893d9249a0e12ededa032923ed605a33948e8957d14165d078b8e52bf75d51e0ba05678057e707bf033bde787018880109cc7
4173be507eca5cbdf5ae76e6c7f4f421635a11000df636024a4f7715d783cb53abcb42ed0a9eb64818e16693d096d10d9e88e167701e9d6af42a34aeebeb6ee9
528b9e32859e0f42aba4d1eebc8fc54d7d0d72bbb981a666a6a0a977d9f35bcd1042668e563d7f0987c6f098ac207684facd856804372f73c9b30d7f93ccb2e2
428e90883383eba49365838448cc3d4a929eaf965fb881a63a87686ef50624844f965c17d2caa7460e9c6e3b192f97782e4db71b23cad2d92b64f82c5738bfd5
e237072b49b606774fe3c5a57746d7fc2982100bdb7565c00511707750cfacb92070195624b232fe760a539e76cddb281d43d938a2ab18e515c54ce6195ca7f2
828e7e2b6c60bce56b06831a26c90be159a40aac6954ab9a165523e370b0ea7e584859ce489a65cdb4b28aaa9aee2c66cdb02d033bb6bc599137586d4d0c39cd
acf059eade4db9dd6daedbe9138a2a01062fece7a8ba57280806b572328b9a62bc9f8655cece47eddab15de007a85da5481859bfb555bb63b7a24638a783c11b
557e90db8d5a185a6efb4a6d697d6b6e5e6cb3b317903c46d0e5aea914da9570b2cb11344453dd93646903b6c84b996f0d78f2d69cf4fc2f6b613f1836c261a5
d609c795a019d42a9db0dfacf4c3b0591f87f5da68d078058545c6493dcc6eec2770814137f9bdbd1edfbbbb4fb6773477e62ca9327d375fd5c4f5dd7dbd71f8
eede239074be6c3526dd6677d0aa749bfd4925180d3a95eeb035a88c5ac3f668321a869deee495ef5d6870d06f0e83d6b85369d587c34ad0aa29fa9d6ea51d34
1afda0ddef8c83feabbc8d819567e923b7059857f3baf75f000000ffff0300504b0304140006000800000021000dd1909fb60000001b01000027000000746865
6d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e435
0d363f2451eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452
282e3198720e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173
d9850528a2c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c02000013000000000000000000
00000000000000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b0000000000000000
0000000000300100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c000000000000000000000000001902
00007468656d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100ec7f4c3895070000c9200000160000000000
0000000000000000d60200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b0100002700
0000000000000000000000009f0a00007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d0100009a0b00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax374\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;
\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;
\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;
\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;
\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;
\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;
\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;
\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;
\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;
\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;
\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;
\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;
\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;}}{\*\datastore 0105000002000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e5000000000000000000000000b0ff
b90de970d201feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}

View file

@ -186,6 +186,12 @@
<Compile Include="Controls\TerminalBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="FakeSetupScreen.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FakeSetupScreen.Designer.cs">
<DependentUpon>FakeSetupScreen.cs</DependentUpon>
</Compile>
<Compile Include="Oobe.cs">
<SubType>Form</SubType>
</Compile>
@ -266,6 +272,9 @@
<EmbeddedResource Include="Applications\Terminal.resx">
<DependentUpon>Terminal.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FakeSetupScreen.resx">
<DependentUpon>FakeSetupScreen.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Oobe.resx">
<DependentUpon>Oobe.cs</DependentUpon>
</EmbeddedResource>
@ -439,6 +448,7 @@
<None Include="Resources\Shiftorium.txt" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\ShiftOS.rtf" />
<None Include="Resources\Songs.txt" />
</ItemGroup>
<ItemGroup>

View file

@ -60,6 +60,11 @@ namespace ShiftOS.Engine
_infobox.Open(title, message);
}
public static void PromptText(string title, string message, Action<string> callback)
{
_infobox.PromptText(title, message, callback);
}
/// <summary>
/// Inits an infobox
/// </summary>
@ -74,5 +79,6 @@ namespace ShiftOS.Engine
public interface IInfobox
{
void Open(string title, string msg);
void PromptText(string title, string message, Action<string> callback);
}
}