From d4acde7b18722f9abedf270b328dccc3534f821a Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 7 Jun 2017 09:10:02 -0500 Subject: [PATCH] can right-click and delete, right-click and change color of selected items --- EduNetworkBuilder/NetworkBuilder.cs | 92 +++++++++++++++----- EduNetworkBuilder/Resources/ReleaseNotes.rtf | 39 +++++---- 2 files changed, 92 insertions(+), 39 deletions(-) diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index 28d2d08..661961b 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -600,6 +600,30 @@ namespace EduNetworkBuilder if (ReleasedOn != null) LockedOut = ReleasedOn.DeviceIsLockedOutByVLANs(); pbNetworkView.ContextMenuStrip.Items.Clear(); + if(ItemsSelected.Count > 0) + { + //We do not want to do the normal menu... + LockedOut = false; + ReleasedOn = null; + + //We need to make sure the item is not critical before we delete it. + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("_Delete")); + pbNetworkView.ContextMenuStrip.Items[index++].Click += pbNetworkView_Delete_Click; + + //We can color-code multiple items + if (myNetwork.VLANsEnabled) + { + int MenuIndex = pbNetworkView.ContextMenuStrip.Items.Count; + pbNetworkView.ContextMenuStrip.Items.Add(NB.Translate("NB_ColorStr")); + (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Blue"), null, pbNetworkView_Color_Click); + (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Purple"), null, pbNetworkView_Color_Click); + (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Yellow"), null, pbNetworkView_Color_Click); + (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Green"), null, pbNetworkView_Color_Click); + (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Orange"), null, pbNetworkView_Color_Click); + (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Cyan"), null, pbNetworkView_Color_Click); + } + } + if (!LockedOut) { if (ReleasedOn != null && ReleasedOn.IsNotNetDevice()) @@ -702,7 +726,7 @@ namespace EduNetworkBuilder (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Orange"), null, pbNetworkView_Color_Click); (pbNetworkView.ContextMenuStrip.Items[MenuIndex] as ToolStripMenuItem).DropDownItems.Add(NB.Translate("NB_Cyan"), null, pbNetworkView_Color_Click); } - if (ReleasedOn == null) + if (ReleasedOn == null && ItemsSelected.Count == 0) { pbNetworkView.ContextMenuStrip.Visible = false; } @@ -733,25 +757,38 @@ namespace EduNetworkBuilder } } + private void ColorizeDevice(NetworkDevice Item, string Text) + { + if (ItemClickedOn != null) + { + if (Text == NB.Translate("NB_Blue")) + Item.ChangeColor(Color.Empty); + if (Text == NB.Translate("NB_Purple")) + Item.ChangeColor(Color.Purple); + if (Text == NB.Translate("NB_Yellow")) + Item.ChangeColor(Color.Yellow); + if (Text == NB.Translate("NB_Green")) + Item.ChangeColor(Color.Green); + if (Text == NB.Translate("NB_Orange")) + Item.ChangeColor(Color.Orange); + if (Text == NB.Translate("NB_Cyan")) + Item.ChangeColor(Color.Cyan); + } + } + private void pbNetworkView_Color_Click(object sender, EventArgs e) { ToolStripMenuItem TSMI = (ToolStripMenuItem)sender; - if(ItemClickedOn != null) + if(ItemsSelected.Count > 0) { - if (TSMI.Text == NB.Translate("NB_Blue")) - ItemClickedOn.ChangeColor(Color.Empty); - if (TSMI.Text == NB.Translate("NB_Purple")) - ItemClickedOn.ChangeColor(Color.Purple); - if (TSMI.Text == NB.Translate("NB_Yellow")) - ItemClickedOn.ChangeColor(Color.Yellow); - if (TSMI.Text == NB.Translate("NB_Green")) - ItemClickedOn.ChangeColor(Color.Green); - if (TSMI.Text == NB.Translate("NB_Orange")) - ItemClickedOn.ChangeColor(Color.Orange); - if (TSMI.Text == NB.Translate("NB_Cyan")) - ItemClickedOn.ChangeColor(Color.Cyan); - UpdateVisuals(); + foreach(NetworkDevice nd in ItemsSelected) + { + ColorizeDevice(nd, TSMI.Text); + } } + else + ColorizeDevice(ItemClickedOn, TSMI.Text); + UpdateVisuals(); } private void pbNetworkView_RemoveLink_Click(object sender, EventArgs e) @@ -803,21 +840,36 @@ namespace EduNetworkBuilder UpdateVisuals(); } - private void pbNetworkView_Delete_Click(object sender, EventArgs e) + private void TryDeleteOneItem(NetworkDevice Item) { //Deleting the item is easy, but we also need to delete any links to that item List NicIDs = new List(); - if(ItemClickedOn != null) + if (Item != null) { - if (myNetwork.ItemIsCritical(ItemClickedOn.hostname)) + if (myNetwork.ItemIsCritical(Item.hostname)) return; //we cannot delete this - NicIDs = ItemClickedOn.GetHostNicIDs(); + NicIDs = Item.GetHostNicIDs(); foreach (HostNicID nicID in NicIDs) { myNetwork.RemoveLinksToNic(nicID); } - myNetwork.RemoveComponent(ItemClickedOn); + myNetwork.RemoveComponent(Item); } + } + + private void pbNetworkView_Delete_Click(object sender, EventArgs e) + { + if(ItemsSelected.Count ==0) + TryDeleteOneItem(ItemClickedOn); + else + { + for(int i=ItemsSelected.Count -1; i>=0; i--) + { + TryDeleteOneItem(ItemsSelected[i]); + } + } + pbNetworkView.Image = null; + ItemsSelected.Clear(); UpdateLinks(); myNetwork.TestForCompletion(true); UpdateVisuals(); diff --git a/EduNetworkBuilder/Resources/ReleaseNotes.rtf b/EduNetworkBuilder/Resources/ReleaseNotes.rtf index e99a19e..442f735 100644 --- a/EduNetworkBuilder/Resources/ReleaseNotes.rtf +++ b/EduNetworkBuilder/Resources/ReleaseNotes.rtf @@ -94,9 +94,9 @@ Normal Table;}}{\*\listtable{\list\listtemplateid-678110632\listhybrid{\listleve \fi-360\li5040\lin5040 }{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698691\'01o;}{\levelnumbers;}\f2\fbias0\hres0\chhres0 \fi-360\li5760\lin5760 } {\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\lvltentative\levelspace0\levelindent0{\leveltext\leveltemplateid67698693\'01\u-3929 ?;}{\levelnumbers;}\f10\fbias0\hres0\chhres0 \fi-360\li6480\lin6480 }{\listname ;}\listid1535926840}}{\*\listoverridetable{\listoverride\listid300036472\listoverridecount0\ls1}{\listoverride\listid1535926840\listoverridecount0\ls2}{\listoverride\listid569733219\listoverridecount0\ls3}{\listoverride\listid1059207521 -\listoverridecount0\ls4}{\listoverride\listid159203163\listoverridecount0\ls5}{\listoverride\listid272565942\listoverridecount0\ls6}}{\*\rsidtbl \rsid12019296\rsid12727595\rsid14170698\rsid14577306\rsid15677065}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0 -\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\operator tim.young@lightsys.org}{\creatim\yr2017\mo3\dy14\hr9\min58}{\revtim\yr2017\mo6\dy6\hr20\min51}{\version5}{\edmins5}{\nofpages9}{\nofwords1656} -{\nofchars9442}{\nofcharsws11076}{\vern91}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\listoverridecount0\ls4}{\listoverride\listid159203163\listoverridecount0\ls5}{\listoverride\listid272565942\listoverridecount0\ls6}}{\*\rsidtbl \rsid12019296\rsid12727595\rsid14170698\rsid14577306\rsid15677065\rsid16005564}{\mmathPr\mmathFont34\mbrkBin0 +\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim0}{\info{\operator tim.young@lightsys.org}{\creatim\yr2017\mo3\dy14\hr9\min58}{\revtim\yr2017\mo6\dy7\hr9\min8}{\version6}{\edmins6}{\nofpages9}{\nofwords1674} +{\nofchars9542}{\nofcharsws11194}{\vern91}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect \widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 \dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot14577306 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\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 @@ -108,17 +108,19 @@ Normal Table;}}{\*\listtable{\list\listtemplateid-678110632\listhybrid{\listleve \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12727595 \hich\af39\dbch\af31505\loch\f39 * Select multiple items for dragging by using a nice big drag-box.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid14170698 \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12727595 \hich\af39\dbch\af31505\loch\f39 * Highlight the multiple items if selecting them -\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid15677065 \hich\af39\dbch\af31505\loch\f39 * Allow the ESC key to clear the selected items.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 -\f39\lang9\langfe1033\langnp9\insrsid15677065\charrsid14170698 +\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid15677065 \hich\af39\dbch\af31505\loch\f39 * Allow the ESC key to clear the selected items. +\par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16005564 \hich\af39\dbch\af31505\loch\f39 * Can right-click and delete\hich\af39\dbch\af31505\loch\f39 of multiple \hich\af39\dbch\af31505\loch\f39 selected +\hich\af39\dbch\af31505\loch\f39 items +\par \hich\af39\dbch\af31505\loch\f39 * Can right-click and change color of multiple\hich\af39\dbch\af31505\loch\f39 selected items}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid16005564\charrsid14170698 \par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid14577306 \hich\af39\dbch\af31505\loch\f39 Version 1.0.31 \par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid14577306 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid14577306\charrsid14577306 \hich\af39\dbch\af31505\loch\f39 *}{ \rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid14577306 \hich\af39\dbch\af31505\loch\f39 Added powering off switches, routers, and the like \par \hich\af39\dbch\af31505\loch\f39 * Added traceroute \par \hich\af39\dbch\af31505\loch\f39 * Added a few puzzles for those \par \hich\af39\dbch\af31505\loch\f39 * Moved to a new git repository -\par \hich\af39\dbch\af31505\loch\f39 * Changed the default location of popups. They worked very strange in a multi-window environment.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid14577306\charrsid14577306 -\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Versio\hich\af39\dbch\af31505\loch\f39 -n 1.0.30 +\par \hich\af39\dbch\af31505\loch\f39 * Changed the default location of popups. They worked v\hich\af39\dbch\af31505\loch\f39 ery strange in a multi-window environment.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 +\f39\lang9\langfe1033\langnp9\insrsid14577306\charrsid14577306 +\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.30 \par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Another downloadable (zip only, stable) version.}{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \par \hich\af39\dbch\af31505\loch\f39 Version 1.0.29 \par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Lots of VLAN butfixes @@ -126,10 +128,9 @@ n 1.0.30 \par \hich\af39\dbch\af31505\loch\f39 * Lots more VLAN puzzles \par \hich\af39\dbch\af31505\loch\f39 * Update VLAN documentation \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.28 -\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Initial VLAN release +\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Initial VLAN re\hich\af39\dbch\af31505\loch\f39 lease \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.27 -\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Made distribution easier b\hich\af39\dbch\af31505\loch\f39 -y CD (does updates from web, but we also have a downloadable zip you can install from) +\par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Made distribution easier by CD (does updates from web, but we also have a downloadable zip you can install from) \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.26 \par }{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 * Major graphics overhaul \par \hich\af39\dbch\af31505\loch\f39 - Packets move on timer @@ -253,27 +254,27 @@ akes it go just a tiny bit slower and various things would fail. When the first \par \hich\af39\dbch\af31505\loch\f39 * Del key now deletes the last item we had clicked on \par \hich\af39\dbch\af31505\loch\f39 * Can add NICs (on some devices) \par \hich\af39\dbch\af31505\loch\f39 * Can delete NICs -\par \hich\af39\dbch\af31505\loch\f39 * Fixed minor bug with broadcast pinging solving ping test for individual computers +\par \hich\af39\dbch\af31505\loch\f39 * \hich\af39\dbch\af31505\loch\f39 Fixed minor bug with broadcast pinging solving ping test for individual computers \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.10 06/13/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \par \hich\af39\dbch\af31505\loch\f39 * Renamed puzzles to manage them easier \par \hich\af39\dbch\af31505\loch\f39 * Deal with duplicate IPs, and what happens when a packet returns to a computer that did not send it. -\par \hich\af39\dbch\af31505\loch\f39 * \hich\af39\dbch\af31505\loch\f39 Change to the help window so you can keep the window open while working with the puzzle. +\par \hich\af39\dbch\af31505\loch\f39 * Ch\hich\af39\dbch\af31505\loch\f39 ange to the help window so you can keep the window open while working with the puzzle. \par \hich\af39\dbch\af31505\loch\f39 * Change to the donation link. Not that it will ever be used, but it makes me feel better having a few places for people to donate to if they wish. -\par \hich\af39\dbch\af31505\loch\f39 * Minor change for\hich\af39\dbch\af31505\loch\f39 how broadcast packets work, specifically dealing with duplicate IP addresses. +\par \hich\af39\dbch\af31505\loch\f39 * Minor change for h\hich\af39\dbch\af31505\loch\f39 ow broadcast packets work, specifically dealing with duplicate IP addresses. \par \hich\af39\dbch\af31505\loch\f39 * Added a "firewall" device & WAN port with masquerade \par \hich\af39\dbch\af31505\loch\f39 * Added a FailedPing test so we can ping things that must fail (show the firewall works) \par \hich\af39\dbch\af31505\loch\f39 * added more to the help -\par \hich\af39\dbch\af31505\loch\f39 * added \hich\af39\dbch\af31505\loch\f39 more puzzles +\par \hich\af39\dbch\af31505\loch\f39 * added mo\hich\af39\dbch\af31505\loch\f39 re puzzles \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.9 05/29/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \par \hich\af39\dbch\af31505\loch\f39 * Add a grid to the network map. It makes things easier to straighten up \par \hich\af39\dbch\af31505\loch\f39 * Sorted and organized the puzzles \par \hich\af39\dbch\af31505\loch\f39 * Made a level for each puzzle. \par \hich\af39\dbch\af31505\loch\f39 * Tracked the puzzles which have been completed -\par \hich\af39\dbch\af31505\loch\f39 * When we open the puzzle\hich\af39\dbch\af31505\loch\f39 list, we now show the first level of puzzles that have an uncompleted puzzle. +\par \hich\af39\dbch\af31505\loch\f39 * When we open the puzzle l\hich\af39\dbch\af31505\loch\f39 ist, we now show the first level of puzzles that have an uncompleted puzzle. \par \hich\af39\dbch\af31505\loch\f39 * Added more "tests", viewing help, pinging, arp, and dhcp. \par \hich\af39\dbch\af31505\loch\f39 * Reset buttons when we load a new network. \par \hich\af39\dbch\af31505\loch\f39 * Added a bunch more puzzles -\par \hich\af39\dbch\af31505\loch\f39 * Sometimes the remembered IP gets annoying \hich\af39\dbch\af31505\loch\f39 when it remembers odd gateways and numbers we cannot change. Fixed that in many cases. +\par \hich\af39\dbch\af31505\loch\f39 * Sometimes the remembered IP gets annoying wh\hich\af39\dbch\af31505\loch\f39 en it remembers odd gateways and numbers we cannot change. Fixed that in many cases. \par }{\rtlch\fcs1 \ab\af39 \ltrch\fcs0 \b\f39\lang9\langfe1033\langnp9\insrsid12019296 \hich\af39\dbch\af31505\loch\f39 Version 1.0.0.8 05/25/2015}{\rtlch\fcs1 \af39 \ltrch\fcs0 \f39\lang9\langfe1033\langnp9\insrsid12019296 \par \hich\af39\dbch\af31505\loch\f39 * Always Start with level0 puzzles for now \par \hich\af39\dbch\af31505\loch\f39 * Fixed the icon when program running @@ -457,8 +458,8 @@ fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000005023 -b5a230dfd201feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000020c2 +d68797dfd201feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file