lgvlgv Posted September 21, 2011 Share Posted September 21, 2011 I'm to stupid to get it to work!!! it looks like i find the value but i cant delete the row from "ListViewClients" here is the code: Func Disconnect($hSocket, $iError); Damn, we lost a client. Time of death: @Hour & @Min & @Sec :P local $iIT="" $iIT = _GUICtrlListBox_FindString($ListViewClients, $hSocket, True) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$iI & $hSocket " & $iIT &"-"&$hSocket& @CR) ;### Function Trace $fan=_GUICtrlListView_DeleteItem($ListViewClients,$iIT) $fan2 = _GUICtrlListView_GetItemTextString($ListViewClients, $iIT) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$fan " & $fan& ":"& $fan2&@CR) ;### Function Trace MsgBox(4160, "Deleted?", _GUICtrlListView_DeleteItem($ListViewClients, $iIT)) And here is the result: @@(266) :(26:58)1: lgvCHA-C001192.168.123.98 @@(266) :(26:58)16443: lgv @@(266) :(27:01)$iI & $hSocket 0-1644 @@(266) :(27:01)$fan False:lgv|CHA-C001|192.168.123.98|test|f64b3875-c942-4e0d-8535-7b8f8b89451c->CHA-C001|1644 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 21, 2011 Moderators Share Posted September 21, 2011 lgvlgv, See any problem here? $iIT = _GUICtrlListBox_FindString($ListViewClients, $hSocket, True) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$iI & $hSocket " & $iIT &"-"&$hSocket& @CR) ;### Function Trace $fan=_GUICtrlListView_DeleteItem($ListViewClients,$iIT) $fan2 = _GUICtrlListView_GetItemTextString($ListViewClients, $iIT)What type of control are we actually dealing with here? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 hehe god im stupid. Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 (edited) still cant get it to work? Func Disconnect($hSocket, $iError); Damn, we lost a client. Time of death: @Hour & @Min & @Sec :P Local $iIT = "", $fan = "",$tInfo $tInfo = DllStructCreate($tagLVFINDINFO) DllStructSetData($tInfo, "Flags", $LVFI_STRING) DllStructSetData($tInfo, "Text", $hSocket) $iIT = _GUICtrlListView_FindItem($ListViewClients, -1, $tInfo,$hSocket) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$fan " & $fan & @CR) ;### Function Trace ; Items created using built-in function, pass the control ID $fan = _GUICtrlListView_DeleteItem($ListViewClients, $iIT) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$fan " & $fan & @CR) ;### Function Trace ToolTip("SERVER: Client disconnected. Socket = " & $hSocket, 10, 30); Placing a tooltip right under the tooltips of the client. EndFunc ;==>Disconnect lgvlgv, See any problem here? $iIT = _GUICtrlListBox_FindString($ListViewClients, $hSocket, True) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$iI & $hSocket " & $iIT &"-"&$hSocket& @CR) ;### Function Trace $fan=_GUICtrlListView_DeleteItem($ListViewClients,$iIT) $fan2 = _GUICtrlListView_GetItemTextString($ListViewClients, $iIT) What type of control are we actually dealing with here? M23 still cant get it to work? Edited September 21, 2011 by lgvlgv Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 21, 2011 Moderators Share Posted September 21, 2011 lgvlgv, You are overcomplicating the code: #include <GUIConstantsEx.au3> #include <EditConstants.au3> #Include <GuiListView.au3> $hGUI = GUICreate("Test", 500, 500) $hLV = GUICtrlCreateListView("Col 1", 10, 10, 200, 300) $hLV_Handle = GUICtrlGetHandle($hLV) For $i = 0 To 9 GUICtrlCreateListViewItem("Item " & $i, $hLV) Next $hInput = GUICtrlCreateInput("", 10, 400, 200, 20) GUICtrlSendMsg(-1, $EM_SETCUEBANNER, True, "Enter the text of the item to delete") $hButton = GUICtrlCreateButton("Delete", 10, 450, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hButton $sText = GUICtrlRead($hInput) $iIndex = _GUICtrlListView_FindText($hLV_Handle, $sText) _GUICtrlListView_DeleteItem($hLV_Handle, $iIndex) EndSwitch WEnd You actually only need one line: _GUICtrlListView_DeleteItem($hLV_Handle, _GUICtrlListView_FindText($hLV_Handle, GUICtrlRead($hInput))) Does that help? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 The thing is that i want the program (server part) to automatic add new connected computer to a list <---- This is ok and working. But when they disconnects or lose connection i want them removed from the list automatic... and the thing i have to find and remove is the Item that have $socket Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 this is the list. $ListViewClients = GUICtrlCreateListView("UserName|ComputerName|IpAddress|Ping|PCID|Socket", 0, 40, 377, 561) Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 21, 2011 Moderators Share Posted September 21, 2011 lgvlgv, the thing i have to find and remove is the Item that have $socketIn the snippet you posted you have this line: DllStructSetData($tInfo, "Text", $hSocket) So I presume you have the text of the item to find and delete stored in the variable $hsocket. My example shows how to find and delete an item from a ListView when all you have is the text - so what is the problem? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 (edited) We lgvlgv, In the snippet you posted you have this line: DllStructSetData($tInfo, "Text", $hSocket) So I presume you have the text of the item to find and delete stored in the variable $hsocket. My example shows how to find and delete an item from a ListView when all you have is the text - so what is the problem? M23 u have to speak to me like a 5 year old or u speak over my head how do i find the ITem with $socket when i search throgh hole list? the "GUICtrlRead($hInput)" is based on input from guie or im i wrong? _GUICtrlListView_DeleteItem($hLV_Handle, _GUICtrlListView_FindText($hLV_Handle, GUICtrlRead($hInput))) /thx Lasse PS. it has to be done automatic when a client disconnect, the socket are returned to me when i lose a connection all that has to be done is to delete that item that contains the socket from the list. (socket is uniq) Edited September 21, 2011 by lgvlgv Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 i tryed this whit ur help but the item still remains in the list? Func Disconnect($hSocket, $iError); Damn, we lost a client. Time of death: @Hour & @Min & @Sec :P Local $shit = "" ; Items created using built-in function, pass the control ID $shit= _GUICtrlListView_DeleteItem($ListViewClients, _GUICtrlListView_FindText($ListViewClients, $hSocket)) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$shit " & $shit & @CR) ;### Function Trace ToolTip("SERVER: Client disconnected. $shit = " & $shit, 10, 30); Placing a tooltip right under the tooltips of the client. EndFunc ;==>Disconnect result: @@(266) :(57:32)1: lgvCHA-C001192.168.123.98 @@(266) :(57:32)16443: lgv @@(266) :(57:36)$shit False Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 i added som console info and it turns out that_GUICtrlListView_FindText($ListViewClients, $hSocket) returns -1 (fail) @@(266) :(06:19)1: lgvCHA-C001192.168.123.98@@(266) :(06:19)16443: lgv@@(266) :(06:24)$hSocket: 1644@@(266) :(06:24)$shit: False $shit2: -1 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 21, 2011 Moderators Share Posted September 21, 2011 lgvlgv, u have to speak to me like a 5 year oldSurely not? OK, a couple of questions: - 1. Is $hsocket the text we are tring to find? - 2. If it is the text, is the value in the first column of the ListView? Now try and run this to see if we can locate the problem: Func Disconnect($hSocket, $iError); Damn, we lost a client. Time of death: @Hour & @Min & @Sec :P Local $shit = "" ; Items created using built-in function, pass the control ID Local $iIndex = _GUICtrlListView_FindText($ListViewClients, $hSocket) $shit &= "Index = " & $iIndex & " - " & _GUICtrlListView_DeleteItem($ListViewClients, $iIndex) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$shit " & $shit & @CR) ;### Function Trace ToolTip("SERVER: Client disconnected. $shit = " & $shit, 10, 30); Placing a tooltip right under the tooltips of the client. EndFunc ;==>Disconnect Post the reslulting line from the console and we will then see if the problem is in finding the item or deleting it. Be patient - we will get there in the end. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 OK, a couple of questions: - 1. Is $hsocket the text we are tring to find? <-------------------------------------- Yes and it reads the socket number when i type it to console..- 2. If it is the text, is the value in the first column of the ListView?<----------- This is the last record looks like this -> $ListViewClients = GUICtrlCreateListView("UserName|ComputerName|IpAddress|Ping|PCID|Socket", 0, 40, 377, 561) Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 lgvlgv, Surely not? OK, a couple of questions: - 1. Is $hsocket the text we are tring to find? - 2. If it is the text, is the value in the first column of the ListView? Now try and run this to see if we can locate the problem: Func Disconnect($hSocket, $iError); Damn, we lost a client. Time of death: @Hour & @Min & @Sec :P Local $shit = "" ; Items created using built-in function, pass the control ID Local $iIndex = _GUICtrlListView_FindText($ListViewClients, $hSocket) $shit &= "Index = " & $iIndex & " - " & _GUICtrlListView_DeleteItem($ListViewClients, $iIndex) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$shit " & $shit & @CR) ;### Function Trace ToolTip("SERVER: Client disconnected. $shit = " & $shit, 10, 30); Placing a tooltip right under the tooltips of the client. EndFunc ;==>Disconnect Post the reslulting line from the console and we will then see if the problem is in finding the item or deleting it. Be patient - we will get there in the end. M23 returns: @@(266) :(21:06)1: lgvCHA-C001192.168.123.98 @@(266) :(21:06)16443: lgv @@(266) :(21:09)$shit Index = -1 - False Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 21, 2011 Moderators Share Posted September 21, 2011 lgvlgv, As the text we are looking for is not in the first column we need to use _GUICtrlListView_FindInText. Try this and see what you get:Func Disconnect($hSocket, $iError); Damn, we lost a client. Time of death: @Hour & @Min & @Sec :P Local $shit = "" ; Items created using built-in function, pass the control ID Local $iIndex = _GUICtrlListView_FindInText($ListViewClients, $hSocket) $shit &= "Index = " & $iIndex & " - " & _GUICtrlListView_DeleteItem($ListViewClients, $iIndex) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$shit " & $shit & @CR) ;### Function Trace ToolTip("SERVER: Client disconnected. $shit = " & $shit, 10, 30); Placing a tooltip right under the tooltips of the client. EndFunc ;==>DisconnectI hope you are having fun! M23P.S. What are you using to create the ListView - the native GUICtrlCreateListView command or the UDF _GUICtrlListView_Create function? If the latter then use GUICtrlGetHandle($ListViewClients) in that snippet. Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 hmm cant use the script quote? Func Disconnect($hSocket, $iError); Damn, we lost a client. Time of death: @Hour & @Min & @Sec Local $shit = "" ; Items created using built-in function, pass the control ID Local $iIndex = _GUICtrlListView_FindInText($ListViewClients, $hSocket) $shit &= "Index = " & $iIndex & " - " & _GUICtrlListView_DeleteItem($ListViewClients, $iIndex) ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & "$shit " & $shit & @CR) ;### Function Trace ToolTip("SERVER: Client disconnected. $shit = " & $shit, 10, 30); Placing a tooltip right under the tooltips of the client. EndFunc ;==>Disconnect @@(266) :(37:48)1: lgvCHA-C001192.168.123.98 @@(266) :(37:48)16443: lgv @@(266) :(37:52)$shit Index = 0 - False THIS IS HOW I ADD THE RECORD Dim $aItems[1][6] For $iI = 0 To UBound($aItems) - 1 $aItems[$iI][0] = $packetcount2[0] $aItems[$iI][1] = $packetcount2[1] $aItems[$iI][2] = $packetcount2[2] $aItems[$iI][3] = "test" $aItems[$iI][4] = $packetcount2[3] $aItems[$iI][5] = $hSocket Next ; Local $allclients = _TCP_Server_ClientList() ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & $allclients[1] & "3: " & $aItems[0][0] & @CR) ;### Function Trace _GUICtrlListView_AddArray($ListViewClients, $aItems) $packetcount2 = "" $aItems = "" Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 AS U MAY NOTICE ITS AN ARRAY? IM I WRONG TO DO THAT? ops sorry about the caps Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 21, 2011 Moderators Share Posted September 21, 2011 lgvlgv, $shit Index = 0 - FalseThat shows that the item is being found - 0 is a valid index. Try running this and see if it deletes rows when you enter the SubItem text: expandcollapse popup#include <GUIConstantsEx.au3> #include <EditConstants.au3> #Include <GuiListView.au3> $hGUI = GUICreate("Test", 500, 500) Global $aItems[10][2] For $i = 0 To 9 $aItems[$i][0] = "Item " & $i $aItems[$i][1] = "SubItem 1" & $i Next $hLV = GUICtrlCreateListView("Col 1|Col 2", 10, 10, 200, 300) $hLV_Handle = GUICtrlGetHandle($hLV) _GUICtrlListView_SetColumnWidth($hLV, 0, 100) _GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER ) _GUICtrlListView_AddArray($hLV, $aItems) $hInput = GUICtrlCreateInput("", 10, 400, 200, 20) GUICtrlSendMsg(-1, $EM_SETCUEBANNER, True, "Enter the text of the item/subitem to delete") $hButton = GUICtrlCreateButton("Delete", 10, 450, 80, 30) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $hButton $sText = GUICtrlRead($hInput) $iIndex = _GUICtrlListView_FindInText($hLV_Handle, $sText) _GUICtrlListView_DeleteItem($hLV_Handle, $iIndex) EndSwitch WEnd If this script works for you then I am running out of ideas as to why your other script does not. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
lgvlgv Posted September 21, 2011 Author Share Posted September 21, 2011 it works Can it have anything to do with that i stored the value as an array? like this Dim $aItems[1][6] For $iI = 0 To UBound($aItems) - 1 $aItems[$iI][0] = $packetcount2[0] $aItems[$iI][1] = $packetcount2[1] $aItems[$iI][2] = $packetcount2[2] $aItems[$iI][3] = "test" $aItems[$iI][4] = $packetcount2[3] $aItems[$iI][5] = $hSocket Next Local $allclients = _TCP_Server_ClientList() ConsoleWrite('@@(266) :(' & @MIN & ':' & @SEC & ')' & $allclients[1] & "3: " & $aItems[0][0] & @CR) ;### Function Trace _GUICtrlListView_AddArray($ListViewClients, $aItems) $packetcount2 = "" $aItems = "" Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted September 21, 2011 Moderators Share Posted September 21, 2011 lgvlgv, Post your entire script so I can take a look and see if anything strikes me. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now