diff --git a/Dokumentation/Administration/NWEdit.vb b/Dokumentation/Administration/NWEdit.vb index 329361b..16aa19f 100644 --- a/Dokumentation/Administration/NWEdit.vb +++ b/Dokumentation/Administration/NWEdit.vb @@ -104,6 +104,7 @@ Public Class NWEdit End Sub Private Sub CmdSave_Click(sender As Object, e As EventArgs) Handles CmdSave.Click + Me.Cursor = Cursors.WaitCursor NWAddressGenerieren() If Neu = False Then Try @@ -128,6 +129,7 @@ Public Class NWEdit MsgBox(ex.Message) End Try con.Close() + Me.Cursor = Cursors.Default End Sub diff --git a/Dokumentation/Classes/Class1.vb b/Dokumentation/Classes/Class1.vb index 19a3931..4bc5b80 100644 --- a/Dokumentation/Classes/Class1.vb +++ b/Dokumentation/Classes/Class1.vb @@ -1,4 +1,5 @@ Imports System.Data.SqlClient +Imports System.Reflection Public Class Class1 @@ -11,7 +12,12 @@ Public Class Class1 Public Shared FilePath As String ' = "\\192.168.0.90\f\EDV-Wartung\Dokumentation" Public Shared Absender As String = "Absender Standard" - + Public Shared Sub EnableDoubleBuffered(ByVal dgv As DataGridView) + Dim dgvType As Type = dgv.[GetType]() + Dim pi As PropertyInfo = dgvType.GetProperty("DoubleBuffered", + BindingFlags.Instance Or BindingFlags.NonPublic) + pi.SetValue(dgv, True, Nothing) + End Sub @@ -166,6 +172,16 @@ Public Class Class1 End Try End Function + Public Shared Function ip2ipnet(ip As String) + Dim lastbutnotleast As String = "." + + Do + ip = ip.Remove((ip.Length - 1), 1) + Loop Until ip.EndsWith(".") + + Return ip + End Function + Public Shared Function netmaskseperator(nm As String, ByRef a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As Integer, ByRef nwbits As Integer, ByRef hostbits As Integer) Dim bitstring As String Try @@ -319,6 +335,18 @@ Public Class Class1 IPShort = NWAddress End Function + Public Shared Function getStartEndHost(ByVal ip As String, ByRef starthost As Integer, ByRef endhost As Integer) + Dim Standort, Name, subnetmask As String + Dim nwbits As Integer + Dim nwad As String = IP2ShortNW(ip) + NetzwerkadresseInfo(nwad, Standort, Name, subnetmask) + mask2nwbit(subnetmask, nwbits) + Dim Hostbits As Integer = 32 - nwbits + Dim AnzahlHosts As Integer = (2 ^ Hostbits) - 2 + starthost = IP2Host(nwad) + 1 + endhost = starthost + (AnzahlHosts - 1) + End Function + Public Shared Function Netzwerkfuellen(NWAdresse As String, NWBits As Integer, Netname As String, NWStandort As String) Dim con As New SqlConnection Dim cmd As New SqlCommand @@ -598,8 +626,8 @@ Public Class Class1 Dim dataadapter As New SqlDataAdapter("SELECT Distinct " & spalte & " from " & Tabelle & "", con) dataadapter.Fill(ds) - txtbox.AutoCompleteMode = AutoCompleteMode.SuggestAppend - txtbox.AutoCompleteSource = AutoCompleteSource.CustomSource + ' txtbox.AutoCompleteMode = AutoCompleteMode.SuggestAppend + ' txtbox.AutoCompleteSource = AutoCompleteSource.CustomSource txtbox.AutoCompleteCustomSource = tmp For Each dr As DataRow In ds.Tables(0).Rows @@ -665,4 +693,42 @@ Public Class Class1 End Function + Public Shared Function IsLinked(ByVal IPAdresse As String) + Dim con As New SqlConnection + Dim cmd As New SqlCommand + Dim reader As SqlDataReader + con.ConnectionString = Class1.DBConString + cmd.Connection = con + Dim Linked As String + + + con.Open() + cmd.CommandText = "SELECT Linked FROM TbL_Netzwerkclients WHERE IPAdresse = '" & IPAdresse & "' " + reader = cmd.ExecuteReader() + Do While reader.Read + Linked = ReadNullAsEmptyString(reader, "Linked") + 'Type = ReadNullAsEmptyString(reader, "Type") + Loop + con.Close() + Return Linked + End Function + + Public Shared Function DBNull2emptyString(totest As Object) + + If IsDBNull(totest) Then + Return "" + Else + Return totest + End If + + End Function + + Public Shared Function OrderDataTableby(dt As DataTable, orderby As String) + Dim dv As New DataView(dt) + + dv.Sort = orderby + Dim returnTable As DataTable = dv.ToTable + 'returnTable = dv.Table + Return returnTable + End Function End Class diff --git a/Dokumentation/Classes/DHCP.vb b/Dokumentation/Classes/DHCP.vb index 70304ce..3d2f914 100644 --- a/Dokumentation/Classes/DHCP.vb +++ b/Dokumentation/Classes/DHCP.vb @@ -74,10 +74,16 @@ Public Class DHCP Public Shared Sub ListSubnetClients(DHCP_Server As String, Scope As String, ByRef DHCP_Clients() As DHCP_CLIENT_INFO) 'Dim Client_Array As DHCP_CLIENT_INFO_ARRAY - 'Dim DHCP_Clients() As DHCP_CLIENT_INFO + ' Dim DHCP_Clients() As DHCP_CLIENT_INFO ' Why would you use int16 for a loop counter and for a pointer offset ? + 'If My.Computer.Network.Ping(DHCP_Server) Then + 'Else + ' MsgBox("DHCP Server nicht erreichbar") + ' Exit Sub + 'End If + Dim i, j As Int16 diff --git a/Dokumentation/Classes/Ext_Programme.vb b/Dokumentation/Classes/Ext_Programme.vb new file mode 100644 index 0000000..8dd61d3 --- /dev/null +++ b/Dokumentation/Classes/Ext_Programme.vb @@ -0,0 +1,53 @@ +Public Class Ext_Programme + + Public Shared Function startlink(URL As String) + + Try + If URL.Contains("http") Or URL.Contains("https") Then + Process.Start(URL) + ElseIf URL = "" Then + Exit Function + Else + Dim mstsc As New Process + mstsc.StartInfo.FileName = "mstsc.exe" + mstsc.StartInfo.Arguments = " /v: " & URL + mstsc.Start() + + End If + + ' Process.Start("mstsc.exe", "/v: dc01") + Catch ex As Exception + 'MsgBox(ex.Message) + + End Try + + End Function + + + Public Shared Function startputty(IP As String) + Dim Benutzer, Passwort As String + Class1.GetUserPasswort(IP, Benutzer, Passwort) + Try + Dim putty As New Process + putty.StartInfo.FileName = "putty.exe" + If Benutzer = "" And Passwort = "" Then + putty.StartInfo.Arguments = IP + Else + putty.StartInfo.Arguments = IP & " -l " & Benutzer & " -pw " & Passwort + End If + putty.Start() + + Catch ex As Exception + MsgBox(ex.Message) + + End Try + End Function + + Public Shared Function pingip(ip As String) + Dim ping As New Process + ping.StartInfo.FileName = "cmd.exe" + ping.StartInfo.Arguments = " /k ping " & ip + ping.Start() + End Function + +End Class diff --git a/Dokumentation/Classes/FirewallEntry.vb b/Dokumentation/Classes/FirewallEntry.vb new file mode 100644 index 0000000..c4e2369 --- /dev/null +++ b/Dokumentation/Classes/FirewallEntry.vb @@ -0,0 +1,102 @@ +Imports System.Data.SqlClient + +Public Class FirewallEntry + Property fwr_ID As String = "" + Property fwr_hostip As String = "" + Property fwr_in As String = "" + Property fwr_out As String = "" + Property fwr_portsin As String = "" + Property fwr_portsout As String = "" + Property fwr_dienste As String = "" + Property fwr_FQDN As String = "" + Property fwr_info As String = "" + Property fwr_direct As Boolean = False + + + + Function getparameterlist() As List(Of SQLVariable) + Dim list As New List(Of SQLVariable) + list.Add(New SQLVariable("fwr_ID", fwr_ID)) + list.Add(New SQLVariable("fwr_hostip", fwr_hostip)) + list.Add(New SQLVariable("fwr_in", fwr_in)) + list.Add(New SQLVariable("fwr_out", fwr_out)) + list.Add(New SQLVariable("fwr_portsin", fwr_portsin)) + list.Add(New SQLVariable("fwr_portsout", fwr_portsout)) + list.Add(New SQLVariable("fwr_dienste", fwr_dienste)) + list.Add(New SQLVariable("fwr_FQDN", fwr_FQDN)) + list.Add(New SQLVariable("fwr_info", fwr_info)) + list.Add(New SQLVariable("fwr_direct", fwr_direct)) + Return list + + End Function + + + Public Shared Function getFirewallEntrys(ByRef ds As DataSet, ByVal HostIP As String) + Dim selector As String = "Select + [fwr_ID] + ,[fwr_in] + ,[fwr_out] + ,[fwr_portsin] + ,[fwr_portsout] + ,[fwr_dienste] + ,[fwr_FQDN] + ,[fwr_info] + , case when [fwr_direct] is null then '0' + else [fwr_direct] end as [fwr_direct] + From [Doku].[dbo].[TbL_FirewallRules] where [fwr_hostip] = '" & HostIP & "' +ORDER BY [fwr_in]" + + SQL.SQL2DS(selector, ds) + + End Function + + Public Function getUpdateCmd(ByRef update As String, ByRef where As String) + + Dim list As List(Of SQLVariable) = getparameterlist() + 'Dim str As String + + For Each i In list + If Not i.SQLText = "fwr_ID" Then + update &= "[" & i.SQLText & "]='" & i.SQLValue & "'," + Else + where &= "fwr_ID = '" & i.SQLValue & "'" + End If + Next + update = update.Substring(0, update.Length - 1) 'wg. ',' + ' Return str + + End Function + + Public Function getInsertCmd(ByRef insert As String) + + Dim list As List(Of SQLVariable) = getparameterlist() + Dim text, value As String + + For Each i In list + text &= i.SQLText & ", " + value &= "'" & i.SQLValue & "', " + Next + text = text.Substring(0, text.Length - 2) + value = value.Substring(0, value.Length - 2) + + insert = "(" & text & ") VALUES (" & value & ")" + + End Function + + Public Function insertFirewallEntry(ByRef entry As FirewallEntry) + Dim insert As String + getInsertCmd(insert) + SQL.InsertSQL("TbL_FirewallRules", insert) + End Function + + Public Function updateFirewallEntry(ByRef entry As FirewallEntry) + Dim update, where As String + getUpdateCmd(update, where) + SQL.UpdateSQL("TbL_FirewallRules", update, where) + 'MsgBox(update & where) + + End Function + + + +End Class diff --git a/Dokumentation/Classes/Host.vb b/Dokumentation/Classes/Host.vb new file mode 100644 index 0000000..8fcef47 --- /dev/null +++ b/Dokumentation/Classes/Host.vb @@ -0,0 +1,310 @@ +Imports System.Reflection + +Public Class Host + Property FQDN As String = "" + Property QINFO As String = "" + Property IPAdresse As String = "" + Property NETNAME As String = "" + Property Seriennummer As String = "" + Property MAC As String = "" + Property Benutzer As String = "" + Property Passwort As String = "" + Property LINK As String = "" + Property INFO As String = "" + Property TYPE As String = "" + Property HOST As Object = Nothing + Property NWSTANDORT As String = "" + Property Modell As String = "" + Property Linked As Object = Nothing + Property LinkedWith As String = "" + Property AddIP As String = "" + Property Standort As String = "" + Property DHCP As String = "" + Property Netzwerk As String = "" + Property Firewall As Boolean = False + + + + + Function getparameterlistMaster() As List(Of SQLVariable) + Dim list As New List(Of SQLVariable) + list.Add(New SQLVariable("FQDN", FQDN)) + list.Add(New SQLVariable("QINFO", QINFO)) + list.Add(New SQLVariable("IPAdresse", IPAdresse)) + list.Add(New SQLVariable("NETNAME", NETNAME)) + list.Add(New SQLVariable("Seriennummer", Seriennummer)) + list.Add(New SQLVariable("MAC", MAC)) + list.Add(New SQLVariable("Benutzer", Benutzer)) + list.Add(New SQLVariable("Passwort", Passwort)) + list.Add(New SQLVariable("Link", LINK)) + list.Add(New SQLVariable("INFO", INFO)) + list.Add(New SQLVariable("TYPE", TYPE)) + list.Add(New SQLVariable("HOST", HOST)) + list.Add(New SQLVariable("NWSTANDORT", NWSTANDORT)) + list.Add(New SQLVariable("Modell", Modell)) + list.Add(New SQLVariable("Linked", Linked)) + list.Add(New SQLVariable("LinkedWith", LinkedWith)) + list.Add(New SQLVariable("AddIP", AddIP)) + list.Add(New SQLVariable("Standort", Standort)) + list.Add(New SQLVariable("DHCP", DHCP)) + list.Add(New SQLVariable("Netzwerk", Netzwerk)) + list.Add(New SQLVariable("Firewall", Firewall)) + Return list + + End Function + + Function getparameterlistSlave() As List(Of SQLVariable) + Dim list As New List(Of SQLVariable) + list.Add(New SQLVariable("FQDN", FQDN)) + list.Add(New SQLVariable("QINFO", QINFO)) + list.Add(New SQLVariable("IPAdresse", IPAdresse)) + 'list.Add(New SQLVariable("NETNAME", NETNAME)) + list.Add(New SQLVariable("Seriennummer", Seriennummer)) + list.Add(New SQLVariable("MAC", MAC)) + list.Add(New SQLVariable("Benutzer", Benutzer)) + list.Add(New SQLVariable("Passwort", Passwort)) + list.Add(New SQLVariable("Link", LINK)) + list.Add(New SQLVariable("INFO", INFO)) + list.Add(New SQLVariable("TYPE", TYPE)) + 'list.Add(New SQLVariable("HOST", HOST)) + 'list.Add(New SQLVariable("NWSTANDORT", NWSTANDORT)) + list.Add(New SQLVariable("Modell", Modell)) + 'list.Add(New SQLVariable("Linked", Linked)) + list.Add(New SQLVariable("LinkedWith", LinkedWith)) + list.Add(New SQLVariable("AddIP", AddIP)) + list.Add(New SQLVariable("Standort", Standort)) + list.Add(New SQLVariable("DHCP", DHCP)) + 'list.Add(New SQLVariable("Netzwerk", Netzwerk)) + list.Add(New SQLVariable("Firewall", Firewall)) + Return list + + End Function + + Function clear() + Me.FQDN = "" + Me.QINFO = "" + Me.IPAdresse = "" + Me.NETNAME = "" + Me.Seriennummer = "" + Me.MAC = "" + Me.Benutzer = "" + Me.Passwort = "" + Me.LINK = "" + Me.INFO = "" + Me.TYPE = "" + Me.HOST = Nothing + Me.NWSTANDORT = "" + Me.Modell = "" + Me.Linked = Nothing + Me.LinkedWith = "" + Me.AddIP = "" + Me.Standort = "" + Me.DHCP = "" + Me.Netzwerk = "" + Me.Firewall = False + End Function + + Public Shared Function getHostsEntrys(ByRef ds As DataSet, ByVal HostIP As String) + Dim selector As String = "Select + [fwr_ID] + ,[fwr_in] + ,[fwr_out] + ,[fwr_portsin] + ,[fwr_portsout] + ,[fwr_dienste] + ,[fwr_FQDN] + ,[fwr_info] + , case when [fwr_direct] is null then '0' + else [fwr_direct] end as [fwr_direct] + From [Doku].[dbo].[TbL_FirewallRules] where [fwr_hostip] = '" & HostIP & "' +ORDER BY [fwr_in]" + + SQL.SQL2DS(selector, ds) + + End Function + + Public Function gethost(ip As String) + Dim ds As New DataSet + Dim test As String = "" + SQL.SQL2DS("select * from TbL_Netzwerkclients where IPAdresse = '" & ip & "'", ds) + For Each c As DataColumn In ds.Tables(0).Columns + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(c.ColumnName) + If propInfo IsNot Nothing Then + If Not IsDBNull(c.Table.Rows(0).Item(c)) Then + propInfo.SetValue(Me, c.Table.Rows(0).Item(c)) + End If + End If + Next + ' MsgBox("hier") + End Function + + Public Function getUpdateCmd(ByRef update As String, ByRef where As String, Optional ByRef slaveupdate As String = "", Optional ByRef slavewhere As String = "", Optional ByVal Linked As Boolean = False, Optional ByVal newhost As Host = Nothing) + If newhost Is Nothing Then + slavewhere = "" + Dim list As List(Of SQLVariable) = getparameterlistMaster() + Dim slavelist As List(Of SQLVariable) = getparameterlistSlave() + + For Each i In list ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dieser Host + If Not i.SQLText = "IPAdresse" Then + update &= "[" & i.SQLText & "]='" & i.SQLValue & "'," + Else + where &= "IPAdresse = '" & i.SQLValue & "'" + End If + Next + update = update.Substring(0, update.Length - 1) 'wg. ',' + + For Each i In slavelist ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''alle Hosts, bei denen dieser Host als LinkedWith eingetragen ist + If Not i.SQLText = "IPAdresse" And Not i.SQLText = "LinkedWith" Then + slaveupdate &= "[" & i.SQLText & "]='" & i.SQLValue & "'," + ElseIf i.SQLText = "IPAdresse" Then + slavewhere &= "(Linked = 'True' AND (LinkedWith = '" & i.SQLValue & "'" + End If + Next + slaveupdate = slaveupdate.Substring(0, slaveupdate.Length - 1) + + If Linked = True Then ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' + + For Each i In slavelist '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Masterhost + If i.SQLText = "LinkedWith" Then + slavewhere &= "OR LinkedWith = '" & i.SQLValue & "') OR IPAdresse = '" & i.SQLValue & "')" + End If + Next + ElseIf Linked = False Then + slavewhere &= "))" + End If + + Else + + Dim list As List(Of SQLVariable) = newhost.getparameterlistMaster() + + For Each i In list ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''dieser Host + If Not i.SQLText = "IPAdresse" Then + update &= "[" & i.SQLText & "]='" & i.SQLValue & "'," + Else + where &= "IPAdresse = '" & i.SQLValue & "'" + End If + Next + update = update.Substring(0, update.Length - 1) 'wg. ',' + + End If + + + End Function + + Public Function updateHostEntry(ByRef entry As Host) + Dim update, where, slaveupdate, slavewhere As String + getUpdateCmd(update, where, slaveupdate, slavewhere, Me.Linked) + SQL.UpdateSQL("TbL_Netzwerkclients", update, where) + SQL.UpdateSQL("TbL_Netzwerkclients", slaveupdate, slavewhere) + 'MsgBox(update & where) + + End Function + + Function checkIfIPExist(ByVal ip As String) + Dim ds As New DataSet + SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE IPADRESSE = '" & ip & "'", ds) + If ds.Tables(0).Rows.Count > 0 Then + Return True + Else + Return False + End If + End Function + + Public Function DeleteHost(Optional ByVal supress As Boolean = False) + If supress = False Then + If MessageBox.Show("Eintrag " & Me.FQDN & " wirklich löschen?", "Hosteintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then + Dim ds As New DataSet + Dim Slaves As String = "" + SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & Me.IPAdresse & "'", ds) + + If ds.Tables(0).Rows.Count > 0 Then + For Each r As DataRow In ds.Tables(0).Rows + Slaves &= r.Item("IPAdresse").ToString & vbCrLf + Next + + If MessageBox.Show(" +Achtung! " & vbCrLf & "Der Eintrag " & Me.FQDN & " ist ein MasterEintrag für die IP Adressen " & vbCrLf & Slaves & " +Diese Einträge werden ebenfalls gelöscht. Fortfahren?", "Hosteintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then + SQL.DeleteSQL("TbL_Netzwerkclients", "LinkedWith = '" & Me.IPAdresse & "'") + ElseIf DialogResult.Cancel Then + Exit Function + End If + End If + SQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'") + Class1.RefillNW(Me.Netzwerk) + ElseIf DialogResult.Cancel Then + Exit Function + End If + Else + SQL.DeleteSQL("TbL_Netzwerkclients", "IPAdresse = '" & Me.IPAdresse & "'") + Class1.RefillNW(Me.Netzwerk) + End If + + End Function + + Public Function MoveHost(newip As String) + If checkIfIPExist(newip) = False Then MsgBox("Die Adresse kann nicht verwendet werden. Bitte überprüfen.") : Return Me : Exit Function + + Dim oldip As String = Me.IPAdresse + Dim newhost As New Host + newhost.gethost(newip) + + 'Get Slaves of LinkedMaster + Dim ds As New DataSet + SQL.SQL2DS("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith = '" & Me.IPAdresse & "'", ds) + + 'Ziel prüfen und gegebenenfalls anzeigen + If ( + newhost.FQDN = "" And + newhost.Modell = "" And + newhost.TYPE = "") Then + Else + If MsgBox("Ziel ist bereits belegt. Anzeigen?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + Me.gethost(newip) + Else + Me.gethost(oldip) + End If + Exit Function + End If + + 'If Host = LinkedMaster then Update Slaves + If ds.Tables(0).Rows.Count > 0 Then + SQL.UpdateSQL("TbL_Netzwerkclients", "LinkedWith = '" & newip & "'", "LinkedWith = '" & oldip & "'") + End If + + newhost.FQDN = Me.FQDN + newhost.QINFO = Me.QINFO + newhost.Seriennummer = Me.Seriennummer + newhost.MAC = Me.MAC + newhost.Benutzer = Me.Benutzer + newhost.Passwort = Me.Passwort + newhost.LINK = Me.LINK + newhost.INFO = Me.INFO + newhost.TYPE = Me.TYPE + newhost.Modell = Me.Modell + newhost.Linked = Me.Linked + newhost.LinkedWith = Me.LinkedWith + newhost.AddIP = Me.AddIP + newhost.Standort = Me.Standort + newhost.DHCP = Me.DHCP + newhost.Firewall = Me.Firewall + + Dim update, where As String + getUpdateCmd(update, where, "", "", newhost.Linked, newhost) + SQL.UpdateSQL("TbL_Netzwerkclients", update, where) + + cFolder.FolderMove(Me.NWSTANDORT & "_" & Me.NETNAME, Me.HOST, newhost.NWSTANDORT & "_" & newhost.NETNAME, newhost.HOST) + + Me.DeleteHost(True) + Return newhost + + End Function + + Public Shared Function getSlaves(ByVal ip As String, ByRef ds As DataSet) + + SQL.SQL2DS("SELECT IPAdresse , (NWSTANDORT + ' ' + NETNAME) as Netzwerk FROM TbL_Netzwerkclients WHERE LinkedWith = '" & ip & "'", ds) + + End Function + + +End Class diff --git a/Dokumentation/Classes/SQL.vb b/Dokumentation/Classes/SQL.vb new file mode 100644 index 0000000..c1019d6 --- /dev/null +++ b/Dokumentation/Classes/SQL.vb @@ -0,0 +1,79 @@ +Imports System.Data.SqlClient + +Public Class SQL + + Public Shared Sub SQL2DS(ByRef selector As String, ByRef ds As DataSet) + Dim con As New SqlConnection + Dim cmd As New SqlCommand + con.ConnectionString = Class1.DBConString + cmd.Connection = con + + Dim dataadapter As New SqlDataAdapter(selector, con) + con.Open() + dataadapter.Fill(ds) + con.Close() + End Sub + + Public Shared Sub UpdateSQL(ByRef table As String, ByRef values As String, ByRef where As String) + Dim con As New SqlConnection + Dim cmd As New SqlCommand + con.ConnectionString = Class1.DBConString + cmd.Connection = con + + con.Open() + cmd.CommandText = "UPDATE " & table & " SET " & values & " WHERE " & where & "" + cmd.ExecuteNonQuery() + con.Close() + End Sub + + Public Shared Sub InsertSQL(ByRef table As String, ByRef insert As String) + Dim con As New SqlConnection + Dim cmd As New SqlCommand + con.ConnectionString = Class1.DBConString + cmd.Connection = con + + con.Open() + cmd.CommandText = "INSERT INTO " & table & " " & insert & "" + cmd.ExecuteNonQuery() + con.Close() + End Sub + + Public Shared Sub DeleteSQL(ByRef table As String, ByRef where As String) + Dim con As New SqlConnection + Dim cmd As New SqlCommand + con.ConnectionString = Class1.DBConString + cmd.Connection = con + + con.Open() + cmd.CommandText = "DELETE FROM " & table & " WHERE " & where & "" + cmd.ExecuteNonQuery() + con.Close() + End Sub + + +End Class + +Public Class SQLVariable + Private Text, Value As String + Private prim As Boolean + + Public Sub New(ByVal btext As String, ByVal bvalue As String, Optional bprim As Boolean = False) + Me.value = bvalue + Me.Text = btext + + End Sub + + Public ReadOnly Property SQLText() As String + Get + Return Text + End Get + End Property + + Public ReadOnly Property SQLValue() As Object + Get + Return value + End Get + End Property + +End Class + diff --git a/Dokumentation/Classes/Folder.vb b/Dokumentation/Classes/cFolder.vb similarity index 52% rename from Dokumentation/Classes/Folder.vb rename to Dokumentation/Classes/cFolder.vb index 9bef363..12891e8 100644 --- a/Dokumentation/Classes/Folder.vb +++ b/Dokumentation/Classes/cFolder.vb @@ -1,4 +1,5 @@ -Public Class Folder +Public Class cFolder + Public Shared Function FolderMove(oldID As String, oldHost As String, newID As String, NewHost As String) Dim PathOld As String Dim PathNew As String @@ -13,11 +14,31 @@ If IO.Directory.Exists(Class1.FilePath & "\" & newID) Then Else IO.Directory.CreateDirectory(Class1.FilePath & "\" & newID) - End if + End If If IO.Directory.Exists(PathOld) Then IO.Directory.Move(PathOld, PathNew) End If End Function + + Public Shared Function explorerstarten(ip As String) + Dim Path, nwstandort, netname As String + Dim host As New Host + host.gethost(ip) + If host.Linked = True Then + host.gethost(host.LinkedWith) + End If + Class1.ip2netname(host.IPAdresse, nwstandort, netname) + + Path = Class1.FilePath & "\" & nwstandort & "_" & netname & "\" & host.HOST + + If IO.Directory.Exists(Path) Then + Process.Start(Path) + Else + IO.Directory.CreateDirectory(Path) + Process.Start(Path) + End If + 'MsgBox(path) + End Function End Class diff --git a/Dokumentation/Dokumentation.vbproj b/Dokumentation/Dokumentation.vbproj index 8f3ce32..1506e05 100644 --- a/Dokumentation/Dokumentation.vbproj +++ b/Dokumentation/Dokumentation.vbproj @@ -87,11 +87,31 @@ LocalIntranet + + + + + + + + + + + + + + + + + + + + @@ -139,17 +159,57 @@ Form - + + + + + + + frmPrint.vb + + + Form + + + rptHostCheckListe.vb + + + Component + + + rptHostListe.vb + + + Component + + + rptHostListeMitZugangsdaten.vb + + + Component + EintragBearbeiten.vb Form - - HostBearbeiten.vb + + frmHostBearbeiten.vb - + + Form + + + frmPrintActiveReports.vb + + + Form + + + HostBearbeiten_OLD.vb + + Form @@ -199,6 +259,18 @@ Form + + uscntr_Firewalleinstellungen.vb + + + UserControl + + + uscntr_Slaves.vb + + + UserControl + @@ -213,11 +285,29 @@ CSVImportieren.vb + + frmPrint.vb + + + rptHostCheckListe.vb + + + rptHostListe.vb + + + rptHostListeMitZugangsdaten.vb + EintragBearbeiten.vb - - HostBearbeiten.vb + + frmHostBearbeiten.vb + + + frmPrintActiveReports.vb + + + HostBearbeiten_OLD.vb Login.vb @@ -228,6 +318,7 @@ Main.vb + VbMyResourcesResXFileCodeGenerator Resources.Designer.vb @@ -240,6 +331,12 @@ HostVerschieben.vb + + uscntr_Firewalleinstellungen.vb + + + uscntr_Slaves.vb + @@ -263,6 +360,9 @@ + + + diff --git a/Dokumentation/Drucken/frmPrint.Designer.vb b/Dokumentation/Drucken/frmPrint.Designer.vb new file mode 100644 index 0000000..d3da9fa --- /dev/null +++ b/Dokumentation/Drucken/frmPrint.Designer.vb @@ -0,0 +1,113 @@ + +Partial Class frmPrint + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmPrint)) + Me.CmdPrint = New System.Windows.Forms.Button() + Me.ChkDHCPDrucken = New System.Windows.Forms.CheckBox() + Me.rdbHostListe = New System.Windows.Forms.RadioButton() + Me.rdbHostCheckListe = New System.Windows.Forms.RadioButton() + Me.lblZugangsdatenDruckWarnung = New System.Windows.Forms.Label() + Me.SuspendLayout() + ' + 'CmdPrint + ' + Me.CmdPrint.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdPrint.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.CmdPrint.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdPrint.Image = Global.Dokumentation.My.Resources.Resources.Print20x20 + Me.CmdPrint.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.CmdPrint.Location = New System.Drawing.Point(169, 69) + Me.CmdPrint.Name = "CmdPrint" + Me.CmdPrint.Size = New System.Drawing.Size(151, 28) + Me.CmdPrint.TabIndex = 13 + Me.CmdPrint.Text = "Drucken" + Me.CmdPrint.UseVisualStyleBackColor = False + ' + 'ChkDHCPDrucken + ' + Me.ChkDHCPDrucken.AutoSize = True + Me.ChkDHCPDrucken.Location = New System.Drawing.Point(170, 12) + Me.ChkDHCPDrucken.Name = "ChkDHCPDrucken" + Me.ChkDHCPDrucken.Size = New System.Drawing.Size(150, 17) + Me.ChkDHCPDrucken.TabIndex = 15 + Me.ChkDHCPDrucken.Text = "DHCP Clients andrucken?" + Me.ChkDHCPDrucken.UseVisualStyleBackColor = True + ' + 'rdbHostListe + ' + Me.rdbHostListe.AutoSize = True + Me.rdbHostListe.Checked = True + Me.rdbHostListe.Location = New System.Drawing.Point(12, 12) + Me.rdbHostListe.Name = "rdbHostListe" + Me.rdbHostListe.Size = New System.Drawing.Size(116, 17) + Me.rdbHostListe.TabIndex = 16 + Me.rdbHostListe.TabStop = True + Me.rdbHostListe.Text = "Hosts Detailansicht" + Me.rdbHostListe.UseVisualStyleBackColor = True + ' + 'rdbHostCheckListe + ' + Me.rdbHostCheckListe.AutoSize = True + Me.rdbHostCheckListe.Location = New System.Drawing.Point(12, 35) + Me.rdbHostCheckListe.Name = "rdbHostCheckListe" + Me.rdbHostCheckListe.Size = New System.Drawing.Size(104, 17) + Me.rdbHostCheckListe.TabIndex = 17 + Me.rdbHostCheckListe.Text = "Hosts Checkliste" + Me.rdbHostCheckListe.UseVisualStyleBackColor = True + ' + 'lblZugangsdatenDruckWarnung + ' + Me.lblZugangsdatenDruckWarnung.AutoSize = True + Me.lblZugangsdatenDruckWarnung.Location = New System.Drawing.Point(166, 39) + Me.lblZugangsdatenDruckWarnung.Name = "lblZugangsdatenDruckWarnung" + Me.lblZugangsdatenDruckWarnung.Size = New System.Drawing.Size(162, 13) + Me.lblZugangsdatenDruckWarnung.TabIndex = 18 + Me.lblZugangsdatenDruckWarnung.Text = "Zugangsdaten werden gedruckt!" + Me.lblZugangsdatenDruckWarnung.Visible = False + ' + 'frmPrint + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.ClientSize = New System.Drawing.Size(342, 114) + Me.Controls.Add(Me.lblZugangsdatenDruckWarnung) + Me.Controls.Add(Me.rdbHostCheckListe) + Me.Controls.Add(Me.rdbHostListe) + Me.Controls.Add(Me.ChkDHCPDrucken) + Me.Controls.Add(Me.CmdPrint) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmPrint" + Me.Text = "Printinator" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents CmdPrint As Button + Friend WithEvents ChkDHCPDrucken As CheckBox + Friend WithEvents rdbHostListe As RadioButton + Friend WithEvents rdbHostCheckListe As RadioButton + Friend WithEvents lblZugangsdatenDruckWarnung As Label +End Class diff --git a/Dokumentation/Drucken/frmPrint.resx b/Dokumentation/Drucken/frmPrint.resx new file mode 100644 index 0000000..d180833 --- /dev/null +++ b/Dokumentation/Drucken/frmPrint.resx @@ -0,0 +1,1925 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAYAAAAAAAEAIABcIAAAZgAAAICAAAABACAAKAgBAMIgAABAQAAAAQAgAChCAADqKAEAMDAAAAEA + IACoJQAAEmsBACAgAAABACAAqBAAALqQAQAQEAAAAQAgAGgEAABioQEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAgI0lEQVR42u2dTYxdyXXf/1X3471+r7/YZJMcNqkhOcPRzHjk+QA8cGBD + UOSFoMARICPIItkEQbZBFt4GWWWfTdZeKYARJF7EhpBNDNtRnLExwkSjxJLnkzNDUuwvNrv7fd9bVVm0 + tOE9p4j79NjdM/X/LbioYtWtuh//1/ece84xICJ5nhu5vbDG2M5Zry9xvNI+G4+HvtVMiWPPegGEkLOD + AkBIwlAACEkYCgAhCUMBICRh8rNewHnl29/+x18DsPlk+8WLG91XX/36rbNeX6rUtfcHB4OZ1Hfv3t2/ + +pM/+cFjocsBqM967ecRCoCCMWYTwO0n2621y0VRvnXW60sVY5zP83ws9Vmb/R8AQ2UoBUCArwCEJAwF + gJCEoQAQkjAUAEIShkZAhatXr68BuPZk++bmRv/WrZubc0xJFsBsVoU8351Kfbu7v+gBKIWuAGAK0oAC + oPD1r7/2TQD/9Mn2a9cud7/3ve/ePOv1pcrx8Qjvvvszse/+/bt/BtnafwDdO5A0fAUgJGEoAIQkDAWA + kIShABCSMBQAQhKGXoA4jbRgxhhTlsVZr6slQe1xXu4L4Vf/NGfSZgtB7gshIITIcQTyzMCaZlY2Yy2s + lX+36roqILsBs8Wcx68eFAAdMSegMYC1pu1cZ74V7QE06lYCgnAKDKA/zJEVhNbtRl6cMeqaQwgG8nX7 + sl2wU4OvAIQkDAWAkIShABCSMBQAQhKGRkAF773SHlrOdHoEdWlB7YtZ56WugAAfmSsoc6ljNC+EDRBt + dyGo1yCE83ttzisUAAVdAM6+8Exbl1qIjPERN2BQ5tLG+Mi6fMvj55oABcC5L584n1f4CkBIwlAACEkY + CgAhCUMBICRhKACEJAy9AApVVYntzp1OfYmYS0vr8lGXnma514+vegHmmKut58CHAGkFHh7OydfmPHho + vmzwLwBCEoYCQEjCUAAISRgKACEJQwEgJGHoBVDw3intp2dpniuAR7Ccx70A7eZCLLAncvzWngPosQDa + NWAwUHsoAAr6TXb2riY9J5/uuovl8Ws9V2s3ZCwasV07QuxBpwC0ha8AhCQMBYCQhKEAEJIwFABCEoZG + QIUQMWidyvFbtkf75lhzaN0RmWuBpywgnPm1+SpBAVCoay0YyLWcKU6Yw3Iey4mn5eSbK4BIakf79F6x + nIDRvUiViUJQrwFTgrWHrwCEJAwFgJCEoQAQkjAUAEIShgJASMLQC6BQ17KlOeYFmCeNVyxIR7aC63O5 + eVKC+ViQzhyBPUKXR1ArAKleAG/l/fugpmXTAriIDgVA4bR8zbEgnVilH62jdTBQZGVyabA5A3jUfSrn + ObJi+vsXB18BCEkYCgAhCUMBICRhKACEJAyNgAp6efA5AmsC2mfkgTImxA16cixAmCMjkHb80N4IGeYw + qsZKjTMl2MKgACh4r7uaYjn5xHa0fwDiabRaBgOhvRty4SnBVHef/jBrwUAUgMXBVwBCEoYCQEjCUAAI + SRgKACEJQwEgJGHoBVCoa9kL8LRgIM0N5iNBP2K7D62t7d5HYgGUMS6SxktNCaa6SOUFxCz3Xjmfweei + uyEEz2CgBcK/AAhJGAoAIQlDASAkYSgAhCQMBYCQhKEXQEEvPvEUS7OYRSe0jx9QAmii3+IrE8ZjESLH + V1KC6d/169/7q9/8tywMAsYCLBQKgMJCb7JFRgNG2hHaVwaKJN6SU4KF9qW5YmPa5hebR8yIDl8BCEkY + CgAhCUMBICRhKACEJEwSRsA8zw0AI/W9/vrrl6R2791yluWFNJ12nNj384vK8Y+nGPSCMqitQXGuNF7Q + PRdoazjUD6COsRZXXnzxxYF0jP39/YfSmMPDw1mbvXzVSEIAcPKXTqH0/TOpsapGr3c66w1xMCZk2kG8 + Yjn3PkQq8MQqAynHiVTZaZ3GK+Kea5uS6yQYSB4TYmPE43vRRegjlYHy3PzzO3fuNARgNpv9xf7+/iP5 + DOAzpf2r//SDrwCEJA0FgJCEoQAQkjAUAEIShgJASMKcuRdgbW3tgtTe7/e3rLUbQpcFsCyNMUb09KHf + 768sLy9vSn3f+ta3/qXUXlX5c95n/SfbsyyTDwL80kUnucFCxNqvTBXQ3nMAxdofS0nW0gsQDcZxHpLx + PPgAH1p6ASKFQbRArbfffvtlwDUmfPjw4cU8z1+Sxnz00Uf/WWqv69o55+TF/TLuShjzwHvfcCuGEA4P + Dg52pTHOudlZuhvPXAAia+gDWFP+/2qbAxhj1o0xV6W+brf7nNQeAparCpkwl3qc0LpDZ657ou23BrFO + JYIoxCKLnla3rM2aIydTe2D6/X4vE5y0jx8/3rTW3lYmvKS015Af9KC0A8ARgInQPoHyHcpZw1cAQhKG + AkBIwlAACEkYCgAhCbNQI+ClS5f6EERlc3PzUqfTeV4esyla569du36r3+9febI9y2zW7fYk4yCsVe0s + PSiGw9u3X+hK7ffu7Wb7+8eN9pgREJgjGChStls0wiMSI6AY4eYJ7IlZ4dUxbdN7RY6PSNYfzTsyHk9g + TNM+1+0uLb3xxluXpTHf+Mab31QW4CCczRBC0LwDDx/+4u5kMm4YAcfj8aPt7e370pi6rh7Ix8f9999/ + X4tfWBiL9gKsAegI7W8B+H1pwNLSkigAW1tbty9fvtK4aEVR5BsbF8WH2SoKYIxRH9wXX7wltk8m7+Hg + YCjOpaEZyH3Q3X0x92Bo6zrUgoFCUB/OaDCO4gZUA3vCHJWB5nADamOGw2N4XzXaNzYurrz00qsr0pjx + eHwTLQghhKqaiX7In/40u3t8fNQQgEePHj3a29sTH/S6rv5GOdT/APDMBYCvAIQkDAWAkIShABCSMBQA + QhKGAkBIwrT2Ajz//PNLAF6U+m7fvv3vrbUNs/rv/M43N7773d/fksb0+2JcD8qygzxvLs8YI7bPyxdf + fCK2j0ZjjEbjRvtkMlXnilqu1WCcBacEa+m680pgTfB6LEA8JRjajXGaR0EvTKKlBBuPh6jrZoq/mzdv + 47d+621xTFU9pdJTExNCEG/At9/+By9K+3TOoa7lNf/gB3/0Pan9s8/u/oteryflMfzwnXfe+ddtF63B + vwAISRgKACEJQwEgJGEoAIQkDAWAkIRRzem//K6+8eH76urqep7n35HGfP/7/+TFfn+5kXnnueeudS5c + kLJ7AUUh1+uw1sJaSZ9MLOinNXt7e2L7/ekK7poXGu07j1fwb/9Y9hysLmXIhbXlmUGnkNfcK2UNzjML + aZvGGGQtZdsaIDPtgnFqF+C8GI0ELVNW5bxoua99wKyWxxyPZOt4HWZwoXkChqMJ/m5HTOKEl/JHWLLN + +YzVY0Fms0psP4kfEXvUufK8gJgSLeKF+b3f+04ptf/oR391ZTKZLj3Z7r0LV65ceRMyf7+9vT1CC2L+ + NAPhL4Qsy/pZlr0uDXj55Vevbm5ebjzp3e4Slpdld99Zc3x8JLY/qpawa5rxI26Q4yf/a0ccc2OjRKdo + Pp29jsVqTz7VF5fl9k5hUQhPujFAmcsKYK180+YWKLJ2ojmrA6RnNkQEYFp7MVBpVgdMKnnM3pFcmevR + oMZg0nTRVbXH/pGYRhJfu1CgJ5wbE8nGVdeyG9AqomGMUX6YgCzLoMWKaaLxG7/xDfEG+OCDv1/t9/uN + SNWqqkYAbirb+RRAKwHgKwAhCUMBICRhKACEJAwFgJCEUY2AFy5c6ABoWCg7nW5/ZWW5L43JssxmguFq + kVb7eTixv8hr0KyzG6slvoaGERbeFJjk4vZxZa1AKRjbOqXFcleuKr62JLeXuUWeyUaoXDHoWSsbvDJ7 + YghsQ+WkEhsnKcmck8/ZrJZjHioXMK3lMZmysG7XYSwk3qldwGpf9hwVvkRo3rLwJtNjIbyeeswInhNj + jD7GBkheAGMMMuW3VjMO9np9e+nS5cbNMZ1Oy263K1pBfxmjoD1s4qJVASiK4hqAhktvZWXl5uuvv/Ga + NGZlZXmp1+s1D5LnZyoCsZRgWpWZ77x9DReu3mi0Z1mO3kqruiRfKQIAJa4HtRwLBA+0row0D3/+Z5/i + YL+Z4rHK+qgq2dswmcyeNu0T+w+ovXzPHLsRnFABqTQ5urYjjulkspjdufNa5/r1241B+/t7V95992++ + LY2pqup/AjgUujwAcdF8BSAkYSgAhCQMBYCQhKEAEJIwFABCEkb1AuR5fgHA9Sfb19bWr//mb75xQxqz + urpWLC01vQCx76dPA2MMMiWCxisuvcO6g9mk6aKzmUW35Xf1p4VmUJ+5gLEccwMlFic6n+YFqJTCKCFW + GGWB+z9YvYNp3sw8d1xk2NmR4zeKol2MSu0djir5c/u/G3yBoWumjNvMV/F8R6x/g96qHNfQ6ZRGqnI0 + HJZFr9cTqxzt7+9vlmUpLW44m80eS2NUATDG5BCq/GRZ1un1eqJPI8tyc5YPemQvqhswGNkP72Aw880x + 1hjYRd61C0R7yKbOYKT44Y/lYDjEvHOqAChuwNMSgDpfgi+b18zZWnUDlmVLMTeAC7IbcOimOK4bhYGw + bLpwyknT7ktr5R9Na42x1oq+wxBCCUDqk29y8BWAkKShABCSMBQAQhKGAkBIwjwtI1CzMWLRjxnbzJka + zgNCUApQdGQr8MR0UHnBC4AMdcRyvii8lw1kzgNKEh3UQTbCVQ6YKvUvxpG6GEFp1AqWuKDPEyJ9i2Jk + u3BCRqaxH2AwGIhjVlYutTpGjgz9siv2bfUuYiKUJ1/P+uoYLUYmyzKxAE5RlNmlS5fFYJThcLjS7Xal + vmo2k2+amBcAEETAWmOyTF71ieXyPLrIIpVpehfF9pHtwdVNg6qxFuX02e9x5uSUXOMa+ETOYoapl63t + PmaFX+QTGOXZn7Ms78PY5oN26IY4ODgQx1y/frvVMWxmsJ7JPxqvdjpi0FNuLEojP2qae7oocvFHs9vt + 5teubYmqtbu7s1kUxVDoUiOe+ApASMJQAAhJGAoAIQlDASAkYSgAhCRMXhSF+J3w1tbWqjGmEcGwvLx8 + QXJPAECeW9Wq2RYth1usbzSaiEUrZrMZJhM5gOOoK3sBhljBtGpalA0AW8kWbS0l1sxB/Rb/Rw+hzGVU + t9p8nEfvzGLpVhZWuDcyE/CynYpjylK+l2P3n8YSytZjNLKsq6zBF2+88eYVacyDB/cvf/bZXelGP9aO + w78ACEkYCgAhCUMBICRhKACEJAwFgJCEyaHEA/T7/VVrs8Y3x91ud10r9Z1luRoMpKFZW0MIYgWWEIJa + 0vmkmkvz+N47TKcTccxwIhdmGMFjKljOfdDTaO2OTrLiPMmgAg6U+IHtsTyXjwTdEJmOy2CFc/a46GDY + XRPHFIXsBfDez+UJWBTWGvH6F0WBXk+uNZ9lWddaK0UdFVDcQDmUdEFFUS5lWdaILMrzot/tapFNdmEC + 4L0cwBMTAEAWgBACqkrOfTWdyU/zNPeYCmem9sBjWUtwbwBMhOkOZ/qDThbHzBnY0PyjdmhLTExPHJMr + pcmc08uGnQbac5FlmSnLjvjMGmMKY4zki1SD/vgKQEjCUAAISRgKACEJQwEgJGHUeuIhBBtC03jgvc8W + aR3V5wpqkYnWhkYAPmjlweUx0wqQPqquPXCsGAHHUzn1VlUBIZJ6iywG76zoOql9hilkw7Wews6caRo7 + Y2QvkDEQ410AIIRg0DLoQ/UCOOd7xviGF6Cq6v5splSTgIcx0gOt5wqcKsnqvPeqFbZtwFEwGSZOHnM8 + lMfcGxjsCaIxqYHPlZRcR7OTnH3kbJh5+XZ+nK3jnpUN4Zob0BinPmingSZA47HFaCT/AlVVnUEuDKL+ + 0PMVgJCEoQAQkjAUAEIShgJASMJQAAhJGNU66JzLjGnWzh4Ox9kXX+yKk9V1ibJsVg7v9TpYXZW/xd7Y + kAOLnDNqMQ8NtdRy2YNfkvt+uiMHAz2YFXgkfNfvvR4M1HK5ZMF4pQr2OC+xP1oS+7SKOdZaNU5AQy1B + rwS2AcCnn27Le1G8YOPxEIOB6gWwkH/UVdegGiQQQviVX/HJhZnpVHYDjkZTVFVz0cYA3a6cL033w4bW + /n51LmsBuaQ6hjP5FAynFiNhmyHQ1Xd+ka+/9waVlx9mrWQc0D6wTRcAQCuCNpnIAuScF38AJ5Mq9h1A + 6zPGVwBCEoYCQEjCUAAISRgKACEJk0OxThgDD0D6UN9p1nnnPKyVDRdHR3JhDs3OYq0cP5BlFsvLS5G5 + pDReFrVStMF55RtxWPSslJIMqCKltsUAJkTKcys2qJP//mUr5iFv0hh9J1a9/vIYY4BMm0w5TgcetpYN + 11pcS6djYW3z9zGEgJgRXDLQxbwAVSW7lLwPolEvHp/Q/n5RBQAwDkBjpyGg1hZR1w7GOLF9OJRdFzs7 + j8X2Xq+DTqf5cHY6BXq9jjjGGCsKikeGWZAFoHayAHRgkQkC4AMwU67BzMsC4DxQKTeAlt3Mw0C36Z61 + MCgPutJuAVgj95W5vJfcAFLMlzVAR/FdaWKyDAc7k++/yURuz/NMDBRyzmMwkPO73b+/L4pDCPNZ6CVi + AmAMgpGj8dSD8xWAkIShABCSMBQAQhKGAkBIwlAACEmYHIDoh/DeHQPYF7oyQLZEWmtap+vSmE4rxd0y + xu7uUau5ssxiJZdNx3/8/VWxvewUyIUxkyrgs315//ceW0yFs3k0BfaGsiF2fyyvq0KJWgrVMAZGiWsw + ihncQHe3asZptWIToAZp5X4KI9wbhXHoWtl1trUmH+fyMrAqpPHrFsDtS/I91is8MsEIPplUagDN3bty + TrgQHs1luZdc15p7OsZJLA7EuUJQXQEO8vPsoHgC+BcAIQlDASAkYSgAhCQMBYCQhKEAEJIwES+APw4h + NLwAxoSOlkUlzy3yXE7LdJacWGZli+7xsfxdtx1OxWAQ5wNyJRpoMzdwwvYv5QZbcmEa2dKPk2ImMMJk + xojrAmJeABPxAijWfs07AN0LAFdDOs8meBilNFI3k9uXCqXChQOGh0qRGRvEeATnPKpKPo7mtTo5L3KR + m9PAey9eG2NCqKqJ6FIJwY9DCNINXSmbQQ7Fp+e9mxhjBkLXSHuYrLULcwOeFuPxrPUYTeJWlQ5TGFjl + 4dQq01hrxTHGQBUA7Rgn4/R8dXK7vv9YNKg0n/dBDWLRouH0gwNTObAU03YzRc/ZyTb0smHPGmPk82wM + Ql3LJy2EUIUQpBtaPclfrqeVELJQKACEJAwFgJCEoQAQkjBqRqC6rp0xpmE88N47zQZizOkYSDQj5P7+ + LqqqajnXsyd2XvJcMwIa9bty1QugXhf9mrT93j2W3ebE0CcbAbWUWLWWEumMKctSvDZZlqHfX51jxnac + 3DNiV6hr2aXhva9DCFosgEheVZVont3b2xsDaETdXLv2tWHMol2Waq2RhXCSX03ezw9/+F/w8OGDZ3p8 + kgY3b97C5ublRvvq6jp++7f/4TM/fl0HOCeJpvP7+3vH0pjJZPx4MpkcCF2K34SvAIQkDQWAkIShABCS + MBQAQhKGAkBIwqgme3/itxGLDGSZ/NF7nufqt+2Lwrkak4ls1KzrCs61cwOWpVxkJMus6m4j5xMtjZZz + NWazdjEfs9kU02kzjVhVVc/8Hj/Zi0MQAqi8d/X29n0pVR+Gw8H+ZDKR+uS8Z4gIQMw/rPmVNd/1IjHG + qDXdQ/Ct/dp6aTIKwJcN7714PZ2b53uHIAbjhOBP6VsXfWVTpTaZc3Xl5F9A9TsA3uGEJAwFgJCEoQAQ + kjAUAEISJmbO9BCMB8bAAXJ+J2uNzTL7TC0k3gOzmV7SuSzLVvPduHFDbF9ZWcHS0tKz3ApZMHVdi8a+ + g4MDPHggx4howWNZlolG4NPKepVlFt6Lj5Ifj8fiA1DXbuyck/pU15gqAMYYDyGVkDFGizhCltlSywm4 + KMupcxXGY9mrURQFut1uq/lee+01sf369evY2NhYyJrJ6TAej0XL/ccff4zxWM79eHQkV5kqikJ80PM8 + OxU3YF1bONc8vjHwR0eHUqo+zGbTwXQ6lQKF5F9M8BWAkKShABCSMBQAQhKGAkBIwlAACEkY1Zw5GAwe + QnAfHB8fTT744P/9TBpz586dl6zt9RoHyXMUhVzTvj0VnJMDO27fvo1r16412mPf9d+6dVtsX1tbQ6+5 + FQCIxCK0341agSc6WftiHu0LgITIXO3XPE8BkrZcutQXr3On08H6+gVxzE9+8hOxfX19Xbz+6+sXsLIi + u4dPqvksZi8h1OHEEffkXgpnjBHdYGVZjiCn/1IjofgXACEJQwEgJGEoAIQkDAWAkIShABCSMLGUYI8h + fENcVbPi88/v3pfGOFffMqZpBrXWLOz76V6vj5s3XxD71tY2UNfNMIW6dmI7ALz88tflE5MX0FKftfUC + xK3zWnuIWNXbWdRj1Xzi1vm2x9GPsTgvQFDHLC2VSkn1HMrlx507csfm5kWsrq402judDrR4lxDswrwA + Bwd7bmfnYSPo7vDwcDAYDD6UxlRVdQT5u3/5hkVEAB49ejSE4FKYTMarDx7cfySfAC+eTWuNetLakmUW + ly9fFfvW1jbEYJDZbIbRSI6HkNyGwIlLRytnJR3jZP/6uts+APGHZnECsNi9LE4AYi5F7bpoAuA9MJ3K + D/pzz8lzXb16GevrzRJgp5Uqbjg8dtvbv6ib7YPxYDD4hXLOxohE/knwFYCQhKEAEJIwFABCEoYCQEjC + xEzzonXEnyBa1Kqq8rPZrGFVyjJrvJLfqK1BJQQ9u5AxWl0CGx0jY8Qc8yGE1tmN5hsD5fh6LYNf9Tf3 + GAC03f/i9jIvsh1QP75WGMTaDN2uXABmnvtvvn20M8KOx2N3fHxcCe1T59yhsn8t/7+66taVgSaTyRjA + XWnM/v7OoKqmDd/J2tqFrCg6YjRQpyNfmBh5LgcW1XWAFECRZQHWymOs1bwTJuIFaGcFj/Vp7caE1hZy + 74MqDvraTMv/P59LcT7PQbvjOxfgXLOv3+9hc1MOBtrdfSy2W5uLOfms1a9/7HxpD/poJKe3++STjwfv + vPPXjQfdOXfv888//2vlUAPEorikfbbaCSHkKwUFgJCEoQAQkjAUAEIShgJASMLME6GzD+CPpI4//dP/ + 1rfWbD3ZfvHi5tqVK89dkcbcufPSLam9KMp+nueSi8AYY8R1d7urxtpm18bGCu7c2ZKGPMVyjZZjFpcS + ax7LeSxQZrFpvE4nrqHtGN1rA63KDobDY7H9+PgQkkHdGIM8z0WTfl3XQ8kVNx6Px0dHj8UDvf/+e/tS + +xdffP7up59++nFzL34PgBgLgJZxAMAcAvDee+9VAB5KfdbabQANf9vVq0f1dFqJidQ2Ny+L+cq63aVu + URTiFdV8t8Z0kWVaoEh7d+OXjUXm1wuLnGy+FSxs/7GtOCe7zmezqRhBeiIAmTJm5rwPUgDPbG9vV8rV + hw8//EAsTbS3t7ezs7MjRd0eQs/xp0b9afAVgJCEoQAQkjAUAEIShgJASMIsus7x/wXQMFx479Ymk8ll + acDu7s621F4U5WqWZQ3DoTHGZlkm1gC/eXP9zSzLl4UxkfRe7b9Rb8u8Y7RgmLbTnQfjYHvvRPvjx7Ie + 1bVs7Lt6dVNs/+STu/X29o5kVBsC9U+lMc6FgxBCwxI/mYyHh4eHB9KY2Wy2Lc/lfh5CuCd0jQFoQT+t + WagA/PjHP/5zqd1a2wOwKvVdvHjxFam92+2u5nneEICiKLONjUvL0pg//MN/93xZlo2+WE7C2UxOFTVP + MEr85mw71+LccPOsebF7mccN2P74mhvQOY+qkq/zCy/cFNt//vMPqo8++qRhbZ9OJw/+8i//+3+Sxsxm + s13vfUMAqqoaDAYDUQBGo9GOss0B5Px+AYCS4bA9fAUgJGEoAIQkDAWAkIShABCSMBQAQhJm0W5AkRDC + yBgzUroftpnrD/7gX10H8G+kvt/93bc6a2vNai7W2taW40XXum8bwLLoYhqn4VGYby/P3qNRVTWckz+T + v3JlXWxfXl7trK5ulM09+unHH3/8X5WlHW5tbS3MQn8anJYAqBdnd3f3rM8BIQvj/v37v/4kpwhfAQhJ + GAoAIQlDASAkYSgAhCTMqRgB56EsSwOhasXSUne50+m8JY2x1vSkb/5jRkipnPQJRrVE68U39P3ox2+b + kiwWDDTP9/Otk8gsOL1X++No+9TOWayQkVZl6JVXXjQbG2uNzuPjwYVXXnnzHynT/fBnP5NTfJ1Xzq0A + 4OThb/yFkudZtyzL2+IAYzpZ1vyjxnuvuoE0AYiV4ArBqmM0FnUzzzNXDC1X3jxiMk9+xfbnS1/bfOdf + ZmvrOXP58sVG+/b2Tj/P87eUYX+Bk5yZXxr4CkBIwlAACEkYCgAhCUMBICRhzq0R8MaN2zmEGgPe10W3 + W4qWq6qqMZ02U6Z7r5dnXuy36Ii0tzPcnSw3tJprnnRdeqnreWMh5DUvzgjYPlNTrE/JFKfWBZhMptnS + Um9dGuO9zyH/qAbMY6E9Bc6tACwvr60DWHuyva4nV27ceK6UxuzvH5nBYPK0qX9t2gbDxMaEoAtTe3eb + Nte8x0frMe330m4uIBZ01P5ctmV3d3/l8uWtb0l9o9HwP0Ku2uMwR9We04CvAIQkDAWAkIShABCSMBQA + QhKGAkBIwpxbL8D+/s4IQgWUv/3b//3hw4cP/oM0Znm5v2Zt9sz3NI8VXnf3LdKiHnOdtU/j1dbdGAss + WpwXov1eYmPaMh5P6s8///hI7hvuKCftXLoAgXMsAMPhsYNQAeWTTz4c7+/vSSWTYG1+ZIzJnjr5r0nb + mzk2pq0AzDfmqyQA+pjTEIAQgqvraij1TaeTc+nqi8FXAEIShgJASMJQAAhJGAoAIQlzbo2A0EsgDwB8 + JHeFpRCevagttgDH4uZa7PHn8TbMk62ofWBR3KiujVkUIQCYKp2i5wrn2Atgfv0pzhX8i4acBovLyXbG + 8IEhJGEoAIQkDAWAkIShABCSMBQAQhLm/wOXsx1cTuIqgwAAAABJRU5ErkJggigAAACAAAAAAAEAAAEA + IAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAEAAAABAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAFBERChQREQwUEREMOTIyMD02Nkc9NjZHPzc3TUI5OVVCOTlVQjk5VUI5 + OVVCOTlVQjk5VUI5OVVCOTlVQjk5VUI5OVVCOTlVQjk5VUE4OFVBODhVQTg4VUA3N1U/NzdVPzc3VT83 + N1U+NjZVPjY2VT42NlU8NDRVPDQ0VTw0NFU7MzNVOzMzVTszM1U6MjJVOTExVTkxMVU4MDBVODAwVTgw + MFU3MDBVNi8vVTYvL1U2Ly9VNS0tVTUtLVU1LS1VMywsVTMsLFUzLCxVMisrVTIrK1UyKytVMSoqVTAp + KVUwKSlVMCkpVS8oKFUvKChVLygoVS0nJ1UtJydVLScnVSwlJVUsJSVVLCUlVSskJFUqJCRVKiQkVSkj + I1UpIiJVKSIiVSgiIlUnISFVJyEhVSchIVUnISFVJyEhVSchIVUnISFVJyEhVSchIVUjHh5OIRwcSiEc + HEofGxsvAAAABgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEREMFBERDxQR + EQ85MjI7PTY2WT02Nlk/NzdgQjk5akI5OWpCOTlqQjk5akI5OWpCOTlqQjk5akI5OWpCOTlqQjk5akI5 + OWpCOTlqQTg4akE4OGpBODhqQDg4aj83N2o/NzdqPzc3aj42Nmo+NjZqPjY2ajw0NGo8NDRqPDQ0ajsz + M2o7MzNqOzMzajoyMmo5MTFqOTExajkxMWo4MDBqODAwajgwMGo2Ly9qNi8vajYvL2o1LS1qNS0tajUt + LWozLCxqMywsajMsLGoyKytqMisrajIrK2oxKipqMCkpajApKWowKSlqLygoai8oKGovKChqLScnai0n + J2otJydqLCUlaiwlJWosJSVqKyQkaiokJGoqJCRqKiMjaikiImopIiJqKSIiaichIWonISFqJyEhaich + IWonISFqJyEhaichIWonISFqJyEhaiQeHmIhHBxcIRwcXB8bGzoAAAAHAAAABwAAAAYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQREQwUEREPFBERDzkyMjs9NjZZPTY2WT83N2BCOTlqQjk5akI5 + OWpCOTlqQjk5akI5OWpCOTlqQjk5akI5OWpCOTlqQjk5akI5OWpBODhqQTg4akE4OGpAODhqPzc3aj83 + N2o/NzdqPjY2aj42Nmo+NjZqPDQ0ajw0NGo8NDRqOzMzajszM2o7MzNqOjIyajkxMWo5MTFqOTExajgw + MGo4MDBqODAwajYvL2o2Ly9qNi8vajUtLWo1LS1qNS0tajMsLGozLCxqMywsajIrK2oyKytqMisrajEq + KmowKSlqMCkpajApKWovKChqLygoai8oKGotJydqLScnai0nJ2osJSVqLCUlaiwlJWorJCRqKiQkaiok + JGoqIyNqKSIiaikiImopIiJqJyEhaichIWonISFqJyEhaichIWonISFqJyEhaichIWonISFqJB4eYiEc + HFwhHBxcHxsbOgAAAAcAAAAHAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMCkpFzAp + KRwwKSkcmY6Oc6SZma6kmZmusKamtr62tsO+trbDvra2w762tsO+trbDvra2w762tsO+trbDvra2w762 + tsO+trbDvra2w762tsO9tbXDvbW1w721tcO8s7PDvLOzw7yzs8O7srLDu7Kyw7uyssO5sbHDubGxw7mx + scO4sLDDt6+vw7evr8O3r6/Dtq6uw7aursO2rq7DtK2tw7StrcO0ra3Ds6urw7Orq8Ozq6vDsaqqw7Gq + qsOxqqrDsampw7CoqMOwqKjDr6iow66np8Oup6fDrqenw62mpsOtpqbDraamw6ukpMOrpKTDq6Skw6mj + o8Opo6PDqaOjw6mjo8OooqLDqKKiw6ihocOnoKDDp6Cgw6egoMOln5/DpZ+fw6Wfn8OjnZ3Do52dw6Od + ncOjnZ3Do52dw6OdncOjnZ3Do52dw6OdncNzaWm1TkJCq05CQqtLQEBpAAAACAAAAAgAAAAGAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3Ly8eNy8vJTcvLyWypqaZv7Oz5r+zs+bNw8Pw4dnZ/+HZ + 2f/h2dn/4dnZ/+HZ2f/h2dn/4dnZ/+HZ2f/h2dn/4dnZ/+HZ2f/h2dn/4NjY/+DY2P/g2Nj/4NfX/9/W + 1v/f1tb/39bW/97V1f/e1dX/3tXV/9zU1P/c1NT/3NTU/9rS0v/a0tL/2tLS/9nR0f/Z0dH/2dHR/9jR + 0f/X0ND/19DQ/9fQ0P/Wzs7/1s7O/9bOzv/Uzc3/1M3N/9TNzf/Ty8v/08vL/9PLy//Sysr/0crK/9HK + yv/Rysr/0MnJ/9DJyf/Qycn/zsfH/87Hx//Ox8f/zMbG/8zGxv/Mxsb/y8XF/8vFxf/LxcX/ysTE/8rD + w//Kw8P/ycPD/8jCwv/IwsL/yMLC/8bAwP/GwMD/xsDA/8bAwP/GwMD/xsDA/8bAwP/GwMD/xsDA/4l+ + fuxaTEzfWkxM31hKSokAAAAIAAAACAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcv + Lx43Ly8lNy8vJbKmppm/s7Pmv7Oz5s3Dw/Dh2dn/4dnZ/+HZ2f/h2dn/4dnZ/+HZ2f/h2dn/4dnZ/+HZ + 2f/h2dn/4dnZ/+HZ2f/g2Nj/4NjY/+DY2P/g19f/39bW/9/W1v/f1tb/3tXV/97V1f/e1dX/3NTU/9zU + 1P/c1NT/2tLS/9rS0v/a0tL/2dHR/9nR0f/Z0dH/2NHR/9fQ0P/X0ND/19DQ/9bOzv/Wzs7/1s7O/9TN + zf/Uzc3/1M3N/9PLy//Ty8v/08vL/9LKyv/Rysr/0crK/9HKyv/Qycn/0MnJ/9DJyf/Ox8f/zsfH/87H + x//Mxsb/zMbG/8zGxv/LxcX/y8XF/8vFxf/KxMT/ysPD/8rDw//Jw8P/yMLC/8jCwv/IwsL/xsDA/8bA + wP/GwMD/xsDA/8bAwP/GwMD/xsDA/8bAwP/GwMD/iX5+7FpMTN9aTEzfWEpKiQAAAAgAAAAIAAAABgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCwsEzQsLBg0LCwYq52dkrOkpOOzpKTjzMHB7u3o + 6P/t6Oj/7Ofn/+vm5v/r5ub/6+bm/+vl5f/r5eX/6+Xl/+vl5f/r5eX/6+Xl/+rk5P/q5OT/6uTk/+nj + 4//p4uL/6eLi/+ni4v/o4eH/6OHh/+jh4f/m4eH/5uHh/+bh4f/l39//5d/f/+Xf3//l3t7/5N7e/+Te + 3v/k3t7/493d/+Pd3f/i3d3/4tzc/+Lc3P/i3Nz/4Nvb/+Db2//g29v/4Nra/9/Z2f/f2dn/39nZ/97Y + 2P/e2Nj/3tjY/93X1//d19f/3dfX/9zV1f/c1dX/3NXV/9vV1f/b1dX/29XV/9rU1P/a1NT/2tTU/9nT + 0//Z09P/2dPT/9jS0v/Y0tL/2NLS/9fR0f/W0ND/1tDQ/9bQ0P/a1tb/2tbW/9rW1v/W0dH/1NDQ/9TQ + 0P+OhYXZT0NDv09DQ79OQkJ1AAAABQAAAAUAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAGBgYDBgYGBAYGBgSejIyHoI6O36COjt/Jvr7s/v7+//7+/v/9/f3/+vn5//r5+f/6+fn/+fj4//n4 + +P/5+Pj/+ff3//n39//59/f/+Pb2//j29v/49vb/+Pb2//j19f/49fX/+PX1//f09P/39PT/9/T0//b0 + 9P/29PT/9vT0//by8v/28vL/9vLy//Xx8f/18fH/9fHx//Xx8f/08fH/9PHx//Tx8f/08fH/9PHx//Tx + 8f/z7+//8+/v//Pv7//y7+//8u/v//Lv7//y7u7/8u7u//Lu7v/y7u7/8e3t//Ht7f/x7e3/8evr//Hr + 6//x6+v/8evr//Hr6//x6+v/8Orq//Dq6v/w6ur/7+rq/+/q6v/v6ur/7+rq/+/p6f/v6en/7+np/+7o + 6P/u6Oj/7ujo//j29v/49vb/+Pb2/+3s7P/q6en/6unp/5eTk7w1LS2PNS0tjzUtLVYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBgMGBgYEBgYGBJ6MjIegjo7foI6O38m+ + vuz+/v7//v7+//39/f/6+fn/+vn5//r5+f/5+Pj/+fj4//n4+P/59/f/+ff3//n39//49vb/+Pb2//j2 + 9v/49vb/+PX1//j19f/49fX/9/T0//f09P/39PT/9vT0//b09P/29PT/9vLy//by8v/28vL/9fHx//Xx + 8f/18fH/9fHx//Tx8f/08fH/9PHx//Tx8f/08fH/9PHx//Pv7//z7+//8+/v//Lv7//y7+//8u/v//Lu + 7v/y7u7/8u7u//Lu7v/x7e3/8e3t//Ht7f/x6+v/8evr//Hr6//x6+v/8evr//Hr6//w6ur/8Orq//Dq + 6v/v6ur/7+rq/+/q6v/v6ur/7+np/+/p6f/v6en/7ujo/+7o6P/u6Oj/+Pb2//j29v/49vb/7ezs/+rp + 6f/q6en/l5OTvDUtLY81LS2PNS0tVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAABgYGAwYGBgMGBgYDnIqKfZ2Li86di4vOyL6+4v38/P/9/Pz//Pz8//r5+f/6+fn/+vn5//n3 + 9//59/f/+ff3//j29v/49vb/+Pb2//j19f/39fX/9/X1//f19f/39PT/9/T0//f09P/28/P/9vPz//bz + 8//18/P/9fPz//Xz8//18fH/9fHx//Xx8f/08PD/9PDw//Tw8P/08PD/8+/v//Pv7//z7+//8+/v//Pv + 7//z7+//8u3t//Lt7f/y7e3/8e3t//Ht7f/x7e3/8ezs//Hs7P/x7Oz/8Ozs//Dr6//w6+v/8Orq/+/p + 6f/v6en/7+np/+/p6f/v6en/7+np/+7o6P/u6Oj/7ujo/+7n5//t5+f/7efn/+3n5//t5ub/7ebm/+3m + 5v/t5ub/7ebm/+3m5v/49vb/+Pb2//j29v/d2tr/1tLS/tbS0v6Tjo6tMywsdjMsLHYzLCxHAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLeHhTi3h4i4t4 + eIvHvb25+Pb2//j29v/59/f//Pv7//z7+//8+/v/9/T0//f09P/39PT/9vPz//bz8//28/P/9fLy//Tx + 8f/08fH/9PHx//Tw8P/08PD/9PDw//Pv7//z7+//8+/v//Lt7f/y7e3/8u3t//Dr6//w6+v/8Ovr//Dq + 6v/w6ur/8Orq//Dq6v/v6en/7+np/+/p6f/u6Oj/7ujo/+7o6P/s5ub/7Obm/+zm5v/s5eX/7OXl/+zl + 5f/r5OT/6+Tk/+vk5P/r4+P/6uLi/+ri4v/q4uL/6ODg/+jg4P/o4OD/59/f/+ff3//n39//597e/+fe + 3v/n3t7/5t3d/+bd3f/m3d3/5dzc/+Tb2//k29v/5dzc/+fe3v/n3t7/597e//f19f/39fX/9/X1/5yQ + kP2Fd3f8hXd3/Hdra3AAAAATAAAAEwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIt4eFOLeHiLi3h4i8e9vbn49vb/+Pb2//n39//8+/v//Pv7//z7 + +//39PT/9/T0//f09P/28/P/9vPz//bz8//18vL/9PHx//Tx8f/08fH/9PDw//Tw8P/08PD/8+/v//Pv + 7//z7+//8u3t//Lt7f/y7e3/8Ovr//Dr6//w6+v/8Orq//Dq6v/w6ur/8Orq/+/p6f/v6en/7+np/+7o + 6P/u6Oj/7ujo/+zm5v/s5ub/7Obm/+zl5f/s5eX/7OXl/+vk5P/r5OT/6+Tk/+vj4//q4uL/6uLi/+ri + 4v/o4OD/6ODg/+jg4P/n39//59/f/+ff3//n3t7/597e/+fe3v/m3d3/5t3d/+bd3f/l3Nz/5Nvb/+Tb + 2//l3Nz/597e/+fe3v/n3t7/9/X1//f19f/39fX/nJCQ/YV3d/yFd3f8d2trcAAAABMAAAATAAAACwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAQEBAAEBAQABAQEAFRUVABUVFQAVFRUAHx8fACEhIQAhISEAi3h4U4t4 + eIuLeHiLx729ufj29v/49vb/+ff3//z7+//8+/v//Pv7//f09P/39PT/9/T0//bz8//28/P/9vPz//Xy + 8v/08fH/9PHx//Tx8f/08PD/9PDw//Tw8P/z7+//8+/v//Pv7//y7e3/8u3t//Lt7f/w6+v/8Ovr//Dr + 6//w6ur/8Orq//Dq6v/w6ur/7+np/+/p6f/v6en/7ujo/+7o6P/u6Oj/7Obm/+zm5v/s5ub/7OXl/+zl + 5f/s5eX/6+Tk/+vk5P/r5OT/6+Pj/+ri4v/q4uL/6uLi/+jg4P/o4OD/6ODg/+ff3//n39//59/f/+fe + 3v/n3t7/597e/+bd3f/m3d3/5t3d/+Xc3P/k29v/5Nvb/+Xc3P/n3t7/597e/+fe3v/39fX/9/X1//f1 + 9f+ckJD9hXd3/IV3d/x3a2twAAAAEwAAABMAAAALGxsbABsbGwAZGRkACgoKAAoKCgAKCgoAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgUCAgIYAgICGAIC + AhgVFRVBFRUVQRUVFUEfHx9TISEhWCEhIVgyMDBhOzg4Zzs4OGeSh4ekxre3/8a3t//RxcX//Pz8//z8 + /P/8/Pz/+Pb2//j29v/49vb/9/T0//f09P/39PT/9vPz//Xy8v/18vL/9fLy//Tx8f/08fH/9PHx//Tw + 8P/08PD/9PDw//Pv7//z7+//8+/v//Ht7f/x7Oz/8ezs//Dr6//w6+v/8Ovr//Dr6//w6ur/8Orq//Dq + 6v/v6en/7+np/+/p6f/t5+f/7efn/+3n5//s5ub/7Obm/+zm5v/s5eX/7OXl/+zl5f/s5eX/6+Tk/+vk + 5P/r4+P/6eHh/+nh4f/p4eH/6ODg/+jg4P/o4OD/59/f/+ff3//n39//597e/+fe3v/n3t7/5t3d/+Xc + 3P/l3Nz/597e/+7o6P/u6Oj/7ujo/+vp6f/r6en/6+np/4yEhPNzaWnwc2lp8FROTp0jIyNmIyMjZiAg + IFwbGxtMGxsbTBkZGUYKCgovCgoKLwoKCi8AAAAZAAAAGQAAABkAAAAJAAAABQAAAAUAAAACAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAgICBQICAhgCAgIYAgICGBUVFUEVFRVBFRUVQR8fH1MhISFYISEhWDIw + MGE7ODhnOzg4Z5KHh6TGt7f/xre3/9HFxf/8/Pz//Pz8//z8/P/49vb/+Pb2//j29v/39PT/9/T0//f0 + 9P/28/P/9fLy//Xy8v/18vL/9PHx//Tx8f/08fH/9PDw//Tw8P/08PD/8+/v//Pv7//z7+//8e3t//Hs + 7P/x7Oz/8Ovr//Dr6//w6+v/8Ovr//Dq6v/w6ur/8Orq/+/p6f/v6en/7+np/+3n5//t5+f/7efn/+zm + 5v/s5ub/7Obm/+zl5f/s5eX/7OXl/+zl5f/r5OT/6+Tk/+vj4//p4eH/6eHh/+nh4f/o4OD/6ODg/+jg + 4P/n39//59/f/+ff3//n3t7/597e/+fe3v/m3d3/5dzc/+Xc3P/n3t7/7ujo/+7o6P/u6Oj/6+np/+vp + 6f/r6en/jISE83NpafBzaWnwVE5OnSMjI2YjIyNmICAgXBsbG0wbGxtMGRkZRgoKCi8KCgovCgoKLwAA + ABkAAAAZAAAAGQAAAAkAAAAFAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIFAgICGAIC + AhgCAgIYFRUVQRUVFUEVFRVBHx8fUyEhIVghISFYMjAwYTs4OGc7ODhnkoeHpMa3t//Gt7f/0cXF//z8 + /P/8/Pz//Pz8//j29v/49vb/+Pb2//f09P/39PT/9/T0//bz8//18vL/9fLy//Xy8v/08fH/9PHx//Tx + 8f/08PD/9PDw//Tw8P/z7+//8+/v//Pv7//x7e3/8ezs//Hs7P/w6+v/8Ovr//Dr6//w6+v/8Orq//Dq + 6v/w6ur/7+np/+/p6f/v6en/7efn/+3n5//t5+f/7Obm/+zm5v/s5ub/7OXl/+zl5f/s5eX/7OXl/+vk + 5P/r5OT/6+Pj/+nh4f/p4eH/6eHh/+jg4P/o4OD/6ODg/+ff3//n39//59/f/+fe3v/n3t7/597e/+bd + 3f/l3Nz/5dzc/+fe3v/u6Oj/7ujo/+7o6P/r6en/6+np/+vp6f+MhITzc2lp8HNpafBUTk6dIyMjZiMj + I2YgICBcGxsbTBsbG0wZGRlGCgoKLwoKCi8KCgovAAAAGQAAABkAAAAZAAAACQAAAAUAAAAFAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADMzMywzMzNuMzMzbkE/P3dpZGSYaWRkmGlkZJiXkZHBl5GRwZeRkcGgmprTo5yc2KOc + nNiknp7dpZ+f4KWfn+C0qansyLi4/8i4uP/RxMT/9vb2//b29v/29vb/+vj4//r4+P/6+Pj/+Pb2//j1 + 9f/49fX/9/T0//bz8//28/P/9fLy//Xy8v/18vL/9fLy//Tx8f/08fH/9PHx//Tw8P/08PD/9PDw//Lu + 7v/y7u7/8u7u//Ht7f/x7e3/8e3t//Ds7P/w6+v/8Ovr//Dr6//w6ur/8Orq//Dq6v/u6Oj/7ujo/+7o + 6P/t5+f/7efn/+3n5//s5ub/7Obm/+zm5v/s5eX/7OXl/+zl5f/r5OT/6uPj/+rj4//q4+P/6eLi/+ni + 4v/p4uL/6ODg/+jg4P/o4OD/59/f/+ff3//n39//59/f/+fe3v/n3t7/6eLi//Tv7//07+//9O/v/8G6 + uv/Burr/wbq6/6efn/2gmZn8oJmZ/KGbm+qinZ3fop2d36Cbm9edl5fLnZeXy5iSksaAfHyvgHx8r4B8 + fK9EQ0OYRENDmERDQ5gmJSVVFRUVRBUVFUQSEhIfAAAABgAAAAYAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzNzMzM4ozMzOKQUBAk2xn + Z7hsZ2e4bGdnuKCamuGgmprhoJqa4aulpfOup6f4rqen+K+oqPywqan+sKmp/rqvr/7IuLj/yLi4/9HE + xP/19PT/9fT0//X09P/6+fn/+vn5//r5+f/49vb/+PX1//j19f/39PT/9vPz//bz8//28/P/9fLy//Xy + 8v/18vL/9PHx//Tx8f/08fH/9PDw//Tw8P/08PD/8u7u//Lu7v/y7u7/8e3t//Ht7f/x7e3/8ezs//Dr + 6//w6+v/8Ovr//Dq6v/w6ur/8Orq/+7o6P/u6Oj/7ujo/+3n5//t5+f/7efn/+zm5v/s5ub/7Obm/+zm + 5v/s5eX/7OXl/+zl5f/q4+P/6uPj/+rj4//p4uL/6eLi/+ni4v/o4OD/6ODg/+jg4P/n39//59/f/+ff + 3//n39//59/f/+ff3//q4+P/9fHx//Xx8f/18fH/tq6u/7aurv+2rq7/raam/6ukpP+rpKT/raen/q+p + qf2vqan9rKam9qihoeuooaHropub5YeCgs+HgoLPh4KCz0ZFRbhGRUW4RkVFuCYmJmgVFRVUFRUVVBMT + EyYAAAAHAAAABwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAzMzM3MzMzijMzM4pBQECTbGdnuGxnZ7hsZ2e4oJqa4aCamuGgmprhq6Wl866n + p/iup6f4r6io/LCpqf6wqan+uq+v/si4uP/IuLj/0cTE//X09P/19PT/9fT0//r5+f/6+fn/+vn5//j2 + 9v/49fX/+PX1//f09P/28/P/9vPz//bz8//18vL/9fLy//Xy8v/08fH/9PHx//Tx8f/08PD/9PDw//Tw + 8P/y7u7/8u7u//Lu7v/x7e3/8e3t//Ht7f/x7Oz/8Ovr//Dr6//w6+v/8Orq//Dq6v/w6ur/7ujo/+7o + 6P/u6Oj/7efn/+3n5//t5+f/7Obm/+zm5v/s5ub/7Obm/+zl5f/s5eX/7OXl/+rj4//q4+P/6uPj/+ni + 4v/p4uL/6eLi/+jg4P/o4OD/6ODg/+ff3//n39//59/f/+ff3//n39//59/f/+rj4//18fH/9fHx//Xx + 8f+2rq7/tq6u/7aurv+tpqb/q6Sk/6ukpP+tp6f+r6mp/a+pqf2spqb2qKGh66ihoeuim5vlh4KCz4eC + gs+HgoLPRkVFuEZFRbhGRUW4JiYmaBUVFVQVFRVUExMTJgAAAAcAAAAHAAAABAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMSwxMTFJMTExSXFvb32UkZHLlJGRy52Z + mdC8tbXjvLW147y1tePOx8fzzsfH887Hx/PRysr60srK/NLKyvzSysr+0svL/9LLy//Uy8v/18vL/9fL + y//Zzc3/4djY/+HY2P/h2Nj/+/r6//v6+v/7+vr/+fb2//j29v/49vb/9/T0//f09P/39PT/9vPz//bz + 8//28/P/9fLy//Xy8v/18vL/9fLy//Tx8f/08fH/9PHx//Pv7//z7+//8+/v//Lu7v/y7u7/8u7u//Ht + 7f/x7Oz/8ezs//Dr6//w6+v/8Ovr//Dr6//v6en/7+np/+/p6f/u6Oj/7ujo/+7o6P/t5+f/7efn/+3n + 5//s5ub/7Obm/+zm5v/s5eX/6+Tk/+vk5P/r5OT/6uPj/+rj4//q4+P/6eHh/+nh4f/p4eH/6ODg/+jg + 4P/o4OD/6ODg/+jh4f/o4eH/6+Tk//Ty8v/08vL/9PLy/8C2tv/Atrb/wLa2/8rBwf/MxMT/zMTE/9DI + yP/Sy8v+0svL/tHKyvvQycn30MnJ987Hx/XFvr7sxb6+7MW+vuyrpqbjq6am46umpuNcW1uxQUFBpEFB + QaQ0NDRRAAAAGgAAABoAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMTExSTExMXoxMTF6f3x8rLi0tPe4tLT3wby8+eLa2v/i2tr/4tra/+nh4f/p4eH/6eHh/+nh + 4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+bd3f/h19f/4dfX/97U1P/Txsb/08bG/9PGxv/7+vr/+/r6//v6 + +v/59/f/+Pb2//j29v/39fX/9/T0//f09P/39PT/9vPz//bz8//28/P/9fLy//Xy8v/18vL/9PHx//Tx + 8f/08fH/8+/v//Pv7//z7+//8u7u//Lu7v/y7u7/8u3t//Hs7P/x7Oz/8ezs//Dr6//w6+v/8Ovr/+/p + 6f/v6en/7+np/+7o6P/u6Oj/7ujo/+3n5//t5+f/7efn/+3n5//s5ub/7Obm/+zm5v/r5OT/6+Tk/+vk + 5P/q4+P/6uPj/+rj4//p4eH/6eHh/+nh4f/o4OD/6ODg/+jg4P/o4eH/6eLi/+ni4v/r5eX/9PPz//Tz + 8//08/P/xry8/8a8vP/GvLz/3NPT/+LZ2f/i2dn/5t7e/+nh4f/p4eH/6eHh/+nh4f/p4eH/6ODg/+be + 3v/m3t7/5t7e/9vU1P/b1NT/29TU/2xra+FMTEzaTExM2jw8PG4AAAAmAAAAJgAAABcAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTFJMTExejExMXp/fHysuLS097i0 + tPfBvLz54tra/+La2v/i2tr/6eHh/+nh4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/p4eH/5t3d/+HX + 1//h19f/3tTU/9PGxv/Txsb/08bG//v6+v/7+vr/+/r6//n39//49vb/+Pb2//f19f/39PT/9/T0//f0 + 9P/28/P/9vPz//bz8//18vL/9fLy//Xy8v/08fH/9PHx//Tx8f/z7+//8+/v//Pv7//y7u7/8u7u//Lu + 7v/y7e3/8ezs//Hs7P/x7Oz/8Ovr//Dr6//w6+v/7+np/+/p6f/v6en/7ujo/+7o6P/u6Oj/7efn/+3n + 5//t5+f/7efn/+zm5v/s5ub/7Obm/+vk5P/r5OT/6+Tk/+rj4//q4+P/6uPj/+nh4f/p4eH/6eHh/+jg + 4P/o4OD/6ODg/+jh4f/p4uL/6eLi/+vl5f/08/P/9PPz//Tz8//GvLz/xry8/8a8vP/c09P/4tnZ/+LZ + 2f/m3t7/6eHh/+nh4f/p4eH/6eHh/+nh4f/o4OD/5t7e/+be3v/m3t7/29TU/9vU1P/b1NT/bGtr4UxM + TNpMTEzaPDw8bgAAACYAAAAmAAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC + AgECAgIBAgICATc3N1M4ODiKODg4ioWCgrfFwMD6xcDA+szGxvvl3t7/5d7e/+Xe3v/p4uL/6eLi/+ni + 4v/p4uL/6eLi/+ni4v/o4OD/59/f/+ff3//j29v/39XV/9/V1f/c0tL/0cXF/9HFxf/RxcX/+fn5//n5 + +f/5+fn/9/b2//b19f/29fX/9vT0//Xz8//18/P/9fLy//Ty8v/08vL/9PLy//Px8f/z8fH/8/Hx//Pw + 8P/z8PD/8/Dw//Lu7v/x7u7/8e7u//Ht7f/w7e3/8O3t//Ds7P/w6+v/8Ovr//Dr6//v6ur/7+rq/+/q + 6v/t6Oj/7ejo/+3o6P/t5+f/7efn/+3n5//s5ub/7Obm/+zm5v/r5eX/6+Xl/+vl5f/r5OT/6ePj/+nj + 4//p4+P/6eLi/+ni4v/p4uL/6OHh/+jg4P/o4OD/59/f/+ff3//n39//6OHh/+rk5P/q5OT/6eTk/+Xi + 4v/l4uL/5eLi/8K4uP/CuLj/wri4/9vT0//i2tr/4tra/+bf3//p4uL/6eLi/+ni4v/p4uL/6eLi/+nh + 4f/o4OD/6ODg/+jg4P/h2tr/4dra/+Ha2v+EgoLqamlp5GppaeRQUFCEFhYWQxYWFkMWFhYoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAgICAgMCAgIDPj4+Yj8/P6I/Pz+ijoqKx9nS + 0v/Z0tL/3NXV/+rj4//q4+P/6uPj/+rj4//q4+P/6uPj/+rj4//q4+P/6uPj/+bf3//j3Nz/49zc/+DY + 2P/b09P/29PT/9jQ0P/Nw8P/zcPD/83Dw//39/f/9/f3//f39//19PT/9PPz//Tz8//z8vL/8vHx//Lx + 8f/y8fH/8vDw//Lw8P/y8PD/8e/v//Hv7//x7+//8e7u//Hu7v/x7u7/7+zs/+/s7P/v7Oz/7uvr/+7r + 6//u6+v/7uvr/+7q6v/u6ur/7urq/+3o6P/t6Oj/7ejo/+vm5v/r5ub/6+bm/+vl5f/r5eX/6+Xl/+rk + 5P/q5OT/6uTk/+rk5P/p4+P/6ePj/+nj4//n4eH/5+Hh/+fh4f/n4OD/5+Dg/+fg4P/m39//5t/f/+bf + 3//l3t7/5d3d/+Xd3f/o4eH/7Ojo/+zo6P/m4uL/z8nJ/8/Jyf/Pycn/vbOz/72zs/+9s7P/2tPT/+Hb + 2//h29v/5uDg/+rj4//q4+P/6uPj/+rj4//q4+P/6uPj/+rj4//q4+P/6uPj/+rj4//q4+P/6uPj/6Wi + ovaTkZH0k5GR9GVkZKQhISFvISEhbyEhIUMAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAACAgICAgICAwICAgM+Pj5iPz8/oj8/P6KOiorH2dLS/9nS0v/c1dX/6uPj/+rj4//q4+P/6uPj/+rj + 4//q4+P/6uPj/+rj4//q4+P/5t/f/+Pc3P/j3Nz/4NjY/9vT0//b09P/2NDQ/83Dw//Nw8P/zcPD//f3 + 9//39/f/9/f3//X09P/08/P/9PPz//Py8v/y8fH/8vHx//Lx8f/y8PD/8vDw//Lw8P/x7+//8e/v//Hv + 7//x7u7/8e7u//Hu7v/v7Oz/7+zs/+/s7P/u6+v/7uvr/+7r6//u6+v/7urq/+7q6v/u6ur/7ejo/+3o + 6P/t6Oj/6+bm/+vm5v/r5ub/6+Xl/+vl5f/r5eX/6uTk/+rk5P/q5OT/6uTk/+nj4//p4+P/6ePj/+fh + 4f/n4eH/5+Hh/+fg4P/n4OD/5+Dg/+bf3//m39//5t/f/+Xe3v/l3d3/5d3d/+jh4f/s6Oj/7Ojo/+bi + 4v/Pycn/z8nJ/8/Jyf+9s7P/vbOz/72zs//a09P/4dvb/+Hb2//m4OD/6uPj/+rj4//q4+P/6uPj/+rj + 4//q4+P/6uPj/+rj4//q4+P/6uPj/+rj4//q4+P/paKi9pORkfSTkZH0ZWRkpCEhIW8hISFvISEhQwAA + AAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABISEgoSEhIMEhISDEtKSmtNTU2rTU1Nq5OP + j83Z0tL/2dLS/9zV1f/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/e2Nj/19HR/9fR + 0f/Ry8v/yMLC/8jCwv/Gv7//vra2/762tv++trb/6urq/+rq6v/q6ur/7Ovr/+3s7P/t7Oz/6+vr/+vq + 6v/r6ur/6+np/+vp6f/r6en/6unp/+ro6P/q6Oj/6ujo/+rn5//q5+f/6ufn/+jm5v/o5eX/6OXl/+fl + 5f/n5OT/5+Tk/+fk5P/n4+P/5+Pj/+fj4//m4uL/5uLi/+bi4v/k4OD/5ODg/+Tg4P/k39//5N/f/+Tf + 3//k3t7/497e/+Pe3v/j3t7/4t3d/+Ld3f/i3d3/4dvb/+Hb2//h29v/4dra/+Ha2v/h2tr/4Nra/+DZ + 2f/g2dn/39jY/9/Y2P/f2Nj/4tzc/+bj4//m4+P/4Nzc/8fCwv/HwsL/x8LC/6+np/+vp6f/r6en/8rE + xP/RzMz/0czM/9/Z2f/p4uL/6eLi/+ni4v/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh + 4f+vq6v4oJyc9qCcnPZsamqsKCgoeygoKHsnJydLAAAABAAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAFhYWJhYWFjAWFhYwbWpqj3p3d896d3fPpaCg4trR0f/a0dH/3NPT/+Pa2v/j2tr/49ra/+Pa + 2v/j2tr/49ra/+Pa2v/j2tr/49ra/8C7u/+opqb/qKam/5eWlv9+fX3/fn19/39+fv+CgYH/goGB/4KB + gf+2tbX/trW1/7a1tf/Kycn/z87O/8/Ozv/Ozc3/zc3N/83Nzf/Nzc3/zczM/83MzP/NzMz/zczM/83M + zP/NzMz/zcvL/83Ly//Ny8v/zMrK/8zKyv/Mysr/y8rK/8vKyv/Lysr/y8rK/8vJyf/Lycn/y8nJ/8rI + yP/KyMj/ysjI/8rHx//Kx8f/ysfH/8nHx//Jx8f/ycfH/8nGxv/Jxsb/ycbG/8nGxv/IxcX/yMXF/8jF + xf/HxMT/x8TE/8fExP/Hw8P/x8PD/8fDw//Hw8P/x8PD/8fDw//Hw8P/x8PD/8fDw//KyMj/z8/P/8/P + z//Hxsb/paSk/6WkpP+lpKT/dnV1/3Z1df92dXX/i4qK/5CPj/+Qj4//w76+/+Xd3f/l3d3/5Nzc/+Pa + 2v/j2tr/49ra/+Pa2v/j2tr/49ra/+Pa2v/j2tr/49ra/9TMzP7QyMj+0MjI/oSAgM05OTmtOTk5rTY2 + Nm0AAAAOAAAADgAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFhYmFhYWMBYWFjBtamqPend3z3p3 + d8+loKDi2tHR/9rR0f/c09P/49ra/+Pa2v/j2tr/49ra/+Pa2v/j2tr/49ra/+Pa2v/j2tr/wLu7/6im + pv+opqb/l5aW/359ff9+fX3/f35+/4KBgf+CgYH/goGB/7a1tf+2tbX/trW1/8rJyf/Pzs7/z87O/87N + zf/Nzc3/zc3N/83Nzf/NzMz/zczM/83MzP/NzMz/zczM/83MzP/Ny8v/zcvL/83Ly//Mysr/zMrK/8zK + yv/Lysr/y8rK/8vKyv/Lysr/y8nJ/8vJyf/Lycn/ysjI/8rIyP/KyMj/ysfH/8rHx//Kx8f/ycfH/8nH + x//Jx8f/ycbG/8nGxv/Jxsb/ycbG/8jFxf/IxcX/yMXF/8fExP/HxMT/x8TE/8fDw//Hw8P/x8PD/8fD + w//Hw8P/x8PD/8fDw//Hw8P/x8PD/8rIyP/Pz8//z8/P/8fGxv+lpKT/paSk/6WkpP92dXX/dnV1/3Z1 + df+Lior/kI+P/5CPj//Dvr7/5d3d/+Xd3f/k3Nz/49ra/+Pa2v/j2tr/49ra/+Pa2v/j2tr/49ra/+Pa + 2v/j2tr/1MzM/tDIyP7QyMj+hICAzTk5Oa05OTmtNjY2bQAAAA4AAAAOAAAACwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABYWFiYWFhYwFhYWMG1qao96d3fPend3z6WgoOLa0dH/2tHR/9zT0//j2tr/49ra/+Pa + 2v/j2tr/49ra/+Pa2v/j2tr/49ra/+Pa2v/Au7v/qKam/6impv+Xlpb/fn19/359ff9/fn7/goGB/4KB + gf+CgYH/trW1/7a1tf+2tbX/ysnJ/8/Ozv/Pzs7/zs3N/83Nzf/Nzc3/zc3N/83MzP/NzMz/zczM/83M + zP/NzMz/zczM/83Ly//Ny8v/zcvL/8zKyv/Mysr/zMrK/8vKyv/Lysr/y8rK/8vKyv/Lycn/y8nJ/8vJ + yf/KyMj/ysjI/8rIyP/Kx8f/ysfH/8rHx//Jx8f/ycfH/8nHx//Jxsb/ycbG/8nGxv/Jxsb/yMXF/8jF + xf/IxcX/x8TE/8fExP/HxMT/x8PD/8fDw//Hw8P/x8PD/8fDw//Hw8P/x8PD/8fDw//Hw8P/ysjI/8/P + z//Pz8//x8bG/6WkpP+lpKT/paSk/3Z1df92dXX/dnV1/4uKiv+Qj4//kI+P/8O+vv/l3d3/5d3d/+Tc + 3P/j2tr/49ra/+Pa2v/j2tr/49ra/+Pa2v/j2tr/49ra/+Pa2v/UzMz+0MjI/tDIyP6EgIDNOTk5rTk5 + Oa02NjZtAAAADgAAAA4AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiRiIiIlgiIiJYjIWFuKWd + nfilnZ34u7Gx+9vPz//bz8//28/P/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/8C5 + uf+uqan/rqmp/4mGhv9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf+UlJT/lJSU/5SUlP+5ubn/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv++vr7/t7e3/7e3t/+lpaX/X19f/19fX/9fX1//UVFR/1FR + Uf9RUVH/cnBw/3p4eP96eHj/ta2t/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ + 0P/c0ND/3NDQ/8/ExP/MwcH/zMHB/396etQ4ODi4ODg4uDQ0NHgAAAAYAAAAGAAAABMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAiIiJGIiIiWCIiIliMhYW4pZ2d+KWdnfi7sbH728/P/9vPz//bz8//3NDQ/9zQ + 0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/wLm5/66pqf+uqan/iYaG/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/5SUlP+UlJT/lJSU/7m5uf/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/76+ + vv+3t7f/t7e3/6Wlpf9fX1//X19f/19fX/9RUVH/UVFR/1FRUf9ycHD/enh4/3p4eP+1ra3/3NDQ/9zQ + 0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/z8TE/8zBwf/MwcH/f3p61Dg4 + OLg4ODi4NDQ0eAAAABgAAAAYAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIkYiIiJYIiIiWIyF + hbilnZ34pZ2d+Luxsfvbz8//28/P/9vPz//c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ + 0P/Aubn/rqmp/66pqf+Jhob/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/lJSU/5SUlP+UlJT/ubm5/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/vr6+/7e3t/+3t7f/paWl/19fX/9fX1//X19f/1FR + Uf9RUVH/UVFR/3JwcP96eHj/enh4/7Wtrf/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9zQ + 0P/c0ND/3NDQ/9zQ0P/PxMT/zMHB/8zBwf9/enrUODg4uDg4OLg0NDR4AAAAGAAAABgAAAATAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAISEhSyEhIV4hISFejIWFvqeenv6nnp7+uq+v/tfJyf/Xycn/18nJ/9fK + yv/Xysr/18rK/9fKyv/Xysr/18rK/9fKyv/Xysr/18rK/8i9vf+9tbX/vbW1/42Jif9GRkb/RkZG/0ZG + Rv9GRkb/RkZG/0ZGRv9aWlr/Wlpa/1paWv9lZWX/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2ho + aP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2ho + aP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2ho + aP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2ho + aP9mZmb/ZGRk/2RkZP9eXl7/SUlJ/0lJSf9JSUn/RkZG/0ZGRv9GRkb/bWtr/3d0dP93dHT/saen/9fK + yv/Xysr/18rK/9fKyv/Xysr/18rK/9fKyv/Xysr/18rK/9fKyv/Xysr/18rK/8zAwP/Kvr7/yr6+/4WA + gN5MS0vITEtLyERDQ4gJCQkpCQkJKQkJCSEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISFMISEhXyEh + IV+MhYW/p56e/6eenv+6r6//1sjI/9bIyP/WyMj/1sjI/9bIyP/WyMj/1sjI/9bIyP/WyMj/1sjI/9bI + yP/WyMj/yb6+/8G4uP/BuLj/j4mJ/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/0tLS/9LS0v/S0tL/1BQ + UP9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1BQUP9PT0//T09P/01NTf9DQ0P/Q0ND/0ND + Q/9DQ0P/Q0ND/0NDQ/9saWn/dnNz/3Zzc/+wpqb/1sjI/9bIyP/WyMj/1sjI/9bIyP/WyMj/1sjI/9bI + yP/WyMj/1sjI/9bIyP/WyMj/zL+//8m9vf/Jvb3/h4GB4FBPT8xQT0/MR0ZGjAoKCi0KCgotCgoKJAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhIUwhISFfISEhX4yFhb+nnp7/p56e/7qvr//WyMj/1sjI/9bI + yP/WyMj/1sjI/9bIyP/WyMj/1sjI/9bIyP/WyMj/1sjI/9bIyP/Jvr7/wbi4/8G4uP+PiYn/Q0ND/0ND + Q/9DQ0P/Q0ND/0NDQ/9DQ0P/S0tL/0tLS/9LS0v/UFBQ/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UFBQ/09PT/9PT0//TU1N/0NDQ/9DQ0P/Q0ND/0NDQ/9DQ0P/Q0ND/2xpaf92c3P/dnNz/7Cm + pv/WyMj/1sjI/9bIyP/WyMj/1sjI/9bIyP/WyMj/1sjI/9bIyP/WyMj/1sjI/9bIyP/Mv7//yb29/8m9 + vf+HgYHgUE9PzFBPT8xHRkaMCgoKLQoKCi0KCgokAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyMjTCMj + I2AjIyNgi4ODv6WcnP+lnJz/t6ys/9PExP/TxMT/08TE/9PExP/TxMT/08TE/9PExP/TxMT/08TE/9PE + xP/TxMT/08TE/82/v//IvLz/yLy8/5SNjf9HRUX/R0VF/0dFRf9HRUX/R0VF/0dFRf9KSUn/SklJ/0pJ + Sf9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xL + S/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xL + S/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xL + S/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/S0pK/0tKSv9KSUn/R0VF/0dF + Rf9HRUX/R0VF/0dFRf9HRUX/cW5u/3x4eP98eHj/sKam/9PExP/TxMT/08TE/9PExP/TxMT/08TE/9PE + xP/TxMT/08TE/9PExP/TxMT/08TE/8u+vv/JvLz/yby8/5GJiellYmLaZWJi2lhVVZsSEhI7EhISOxIS + EjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJCRNJCQkYCQkJGCKgoK/o5qa/6Oamv+1qqr/0cLC/9HC + wv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HCwv/RwsL/z8DA/82/v//Nv7//mI+P/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/91cXH/gHx8/4B8 + fP+xpqb/0cLC/9HCwv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HCwv/RwsL/y7y8/8m7 + u//Ju7v/l46O73JtbeRybW3kYl5epBUVFUUVFRVFFRUVNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQk + JE0kJCRgJCQkYIqCgr+jmpr/o5qa/7Wqqv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HC + wv/RwsL/0cLC/9HCwv/PwMD/zb+//82/v/+Yj4//SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lHR/9JR0f/SUdH/0lH + R/9JR0f/SUdH/0lHR/9JR0f/SUdH/3Vxcf+AfHz/gHx8/7Gmpv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HC + wv/RwsL/0cLC/9HCwv/RwsL/0cLC/9HCwv/LvLz/ybu7/8m7u/+Xjo7vcm1t5HJtbeRiXl6kFRUVRRUV + FUUVFRU3AAAAAAAAAAAAAAAABQUFAQUFBQEFBQUBLy8vUy8vL2cvLy9nioKCwqOZmf+jmZn/tKio/8+/ + v//Pv7//z7+//8+/v//Pv7//z7+//8+/v//Pv7//z7+//8+/v//Pv7//z7+//86+vv/Nvb3/zb29/62h + of99dXX/fXV1/311df99dXX/fXV1/311df99dXX/fXV1/311df99dXX/fXV1/311df99dXX/fXV1/311 + df99dXX/fXV1/311df9+dnb/fnd3/353d/9+d3f/gHl5/4B5ef+AeXn/gXp6/4F6ev+Benr/gXt7/4J7 + e/+Ce3v/gnx8/4J8fP+CfHz/gnx8/4N9ff+DfX3/g319/4J8fP+CfHz/gnx8/4J8fP+CfHz/gnx8/4J7 + e/+Be3v/gXt7/4F6ev+AeXn/gHl5/4B5ef9/d3f/f3d3/393d/99dXX/fXV1/311df99dXX/fXV1/311 + df99dXX/fXV1/311df99dXX/fXV1/311df99dXX/fXV1/311df99dXX/fXV1/311df99dXX/l4+P/56V + lf+elZX/u66u/8+/v//Pv7//z7+//8+/v//Pv7//z7+//8+/v//Pv7//z7+//8+/v//Pv7//z7+//8q7 + u//Jubn/ybm5/5yTk/N8d3fqfHd36mtmZqwZGRlNGRkZTRkZGT4AAAAAAAAAAAAAAAAFBQUDBQUFAwUF + BQM9PT1cPT09cj09PXKLgoLHopeX/6KXl/+zpaX/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y8vP/Ovr7/zr6+/86+ + vv/Sw8P/0sPD/9LDw//Uxsb/1cfH/9XHx//Wycn/18rK/9fKyv/Xy8v/2MzM/9jMzP/YzMz/2c3N/9nN + zf/Zzc3/2MzM/9jMzP/YzMz/2MvL/9jLy//Yy8v/18rK/9bJyf/Wycn/1cfH/9PFxf/TxcX/0sTE/9DA + wP/QwMD/0MDA/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Lurr/y7q6/8u6uv/Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/ybi4/8i3t//It7f/pJmZ+IuEhPSLhIT0dXBwth4e + HloeHh5aHh4eSAAAAAAAAAAAAAAAAAUFBQMFBQUDBQUFAz09PVw9PT1yPT09couCgseil5f/opeX/7Ol + pf/Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLy8/86+vv/Ovr7/zr6+/9LDw//Sw8P/0sPD/9TGxv/Vx8f/1cfH/9bJ + yf/Xysr/18rK/9fLy//YzMz/2MzM/9jMzP/Zzc3/2c3N/9nNzf/YzMz/2MzM/9jMzP/Yy8v/2MvL/9jL + y//Xysr/1snJ/9bJyf/Vx8f/08XF/9PFxf/SxMT/0MDA/9DAwP/QwMD/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8u6 + uv/Lurr/y7q6/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//JuLj/yLe3/8i3t/+kmZn4i4SE9IuEhPR1cHC2Hh4eWh4eHloeHh5IAAAAAAAAAAAAAAAABQUFBAUF + BQQFBQUEPj4+YT8+Png/Pj54i4KCyaOXl/+jl5f/s6Wl/8u6uv/Lurr/y7q6/8u6uv/Lurr/y7q6/8u6 + uv/Lurr/y7q6/8u6uv/Lurr/y7q6/8u6uv/Lurr/y7q6/8u6uv/Lurr/y7q6/8u6uv/Mu7v/zLu7/8y7 + u//Pv7//z7+//8+/v//QwcH/0cLB/9HCwf/Qv73/0L26/9C9uv/Qu7f/0bmz/9G5s//RubL/0riu/9K4 + rv/SuK7/1rqu/9a6rv/Wuq7/2ryw/9q9sP/avbD/3L+x/93Asv/dwLL/3sGz/97CtP/ewrT/3sK0/9/D + tf/fw7X/38O1/97CtP/ewrT/3sK0/97BtP/ewbP/3sGz/93Asv/cv7H/3L+x/9q+sP/Yu6//2Luv/9e7 + r//UuK7/1Liu/9S4rv/Qt6//0Lev/9C3r//QurX/0Lu2/9C7tv/Rvrv/0cC//9HAv//RwMD/0MHB/9DB + wf/QwMD/zr29/869vf/Ovb3/y7q6/8u6uv/Lurr/yrm5/8q5uf/Kubn/y7m5/8u6uv/Lurr/y7q6/8u6 + uv/Lurr/y7q6/8u6uv/Lurr/y7q6/8u6uv/Lurr/y7q6/8i3t//Itrb/yLa2/6WamvmOhob2joaG9ndx + cbkeHh5dHh4eXR4eHkoAAAAAAAAAAAAAAAAFBQUJBQUFCQUFBQlDQUF2REJCkURCQpGKgIDTpZiY/6WY + mP+zo6P/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0 + tP/HtLT/x7S0/8e0tP/HtLT/yLW1/827u//Nu7v/zbu7/9vR0f/b0dH/29HR/+La2f/k3Nv/5Nzb/+LO + xP/hxLT/4cS0/+K8pv/jsJH/47CR/+Osiv/inm//4p5v/+Keb//mlVz/5pVc/+aVXP/ulVX/8JVT//CV + U//0l1T/9phU//aYVP/2mVT/95pV//eaVf/3mlX/95tX//ebV//3m1f/95pW//eaVv/3mlb/9plV//aZ + Vf/2mVX/9ZhT//SXUv/0l1L/8JZU/+uVV//rlVf/6ZZa/+OYZP/jmGT/45hk/+Knf//ip3//4qd//+K3 + nP/iu6P/4ruj/+PKvP/k1M3/5NTN/+PW0v/h2tr/4dra/97W1v/Uxsb/1MbG/9TGxv/Jtrb/yba2/8m2 + tv/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0 + tP/HtLT/xrKy/8aysv/GsrL/qpyc/piNjf2YjY39fnV1wiAgIGkgICBpICAgVAAAAAEAAAABAAAAAQUF + BQkFBQUJBQUFCUNBQXZEQkKRREJCkYqAgNOlmJj/pZiY/7Ojo//HtLT/x7S0/8e0tP/HtLT/x7S0/8e0 + tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/ItbX/zbu7/827 + u//Nu7v/29HR/9vR0f/b0dH/4trZ/+Tc2//k3Nv/4s7E/+HEtP/hxLT/4rym/+Owkf/jsJH/46yK/+Ke + b//inm//4p5v/+aVXP/mlVz/5pVc/+6VVf/wlVP/8JVT//SXVP/2mFT/9phU//aZVP/3mlX/95pV//ea + Vf/3m1f/95tX//ebV//3mlb/95pW//eaVv/2mVX/9plV//aZVf/1mFP/9JdS//SXUv/wllT/65VX/+uV + V//pllr/45hk/+OYZP/jmGT/4qd//+Knf//ip3//4rec/+K7o//iu6P/48q8/+TUzf/k1M3/49bS/+Ha + 2v/h2tr/3tbW/9TGxv/Uxsb/1MbG/8m2tv/Jtrb/yba2/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0 + tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/GsrL/xrKy/8aysv+qnJz+mI2N/ZiN + jf1+dXXCICAgaSAgIGkgICBUAAAAAQAAAAEAAAABBQUFCQUFBQkFBQUJQ0FBdkRCQpFEQkKRioCA06WY + mP+lmJj/s6Oj/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0 + tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8i1tf/Nu7v/zbu7/827u//b0dH/29HR/9vR0f/i2tn/5Nzb/+Tc + 2//izsT/4cS0/+HEtP/ivKb/47CR/+Owkf/jrIr/4p5v/+Keb//inm//5pVc/+aVXP/mlVz/7pVV//CV + U//wlVP/9JdU//aYVP/2mFT/9plU//eaVf/3mlX/95pV//ebV//3m1f/95tX//eaVv/3mlb/95pW//aZ + Vf/2mVX/9plV//WYU//0l1L/9JdS//CWVP/rlVf/65VX/+mWWv/jmGT/45hk/+OYZP/ip3//4qd//+Kn + f//it5z/4ruj/+K7o//jyrz/5NTN/+TUzf/j1tL/4dra/+Ha2v/e1tb/1MbG/9TGxv/Uxsb/yba2/8m2 + tv/Jtrb/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0 + tP/HtLT/x7S0/8aysv/GsrL/xrKy/6qcnP6YjY39mI2N/X51dcIgICBpICAgaSAgIFQAAAABAAAAAQAA + AAEFBQUNBQUFDQUFBQ1GRESGR0VFpEdFRaSKf3/bp5iY/6eYmP+zoqL/xbGx/8Wxsf/FsbH/xbGx/8Wx + sf/FsbH/xbGx/8Wxsf/FsbH/zr+//9DCwv/QwsL/4NjY/+rm5v/q5ub/6+jo/+3q6v/t6ur/7uTe//LK + rv/yyq7/8squ//aAKf/2gCn/9oAp//x+IP/9fR7//X0e//16Gf/9eBb//XgW//12E//9dA///XQP//1z + Df/8cAf//HAH//xwB//8bQP//G0D//xtA//+bQH//m0A//5tAP//bQD//20A//9tAP//bQD//20A//9t + AP//bQD//20A//9tAP//bQD//20A//9tAP//bQD//20A//9tAP//bQD//m0A//5tAP/+bQD//m0A//1t + Af/9bQH//W0C//xuBf/8bgX//G4F//1yC//9cgv//XIL//12Ef/9dxL//XcS//16F//9fBv//Xwb//18 + HP/9fR3//X0d//iBKP/jkVb/45FW/+ORVv/a1tb/2tbW/9rW1v/p5ub/7erq/+3q6v/k3d3/3tXV/97V + 1f/Ux8f/xrOz/8azs//Gs7P/xbGx/8Wxsf/FsbH/xbGx/8Wxsf/FsbH/xbGx/8Wxsf/FsbH/rJyc/5uO + jv+bjo7/gHZ2xSAgIG0gICBtICAgWAAAAAIAAAACAAAAAgUFBQ0FBQUNBQUFDUZERIZHRUWkR0VFpIp/ + f9unmJj/p5iY/7Oiov/FsbH/xbGx/8Wxsf/FsbH/xbGx/8Wxsf/FsbH/xbGx/8Wxsf/Ov7//0MLC/9DC + wv/g2Nj/6ubm/+rm5v/r6Oj/7erq/+3q6v/u5N7/8squ//LKrv/yyq7/9oAp//aAKf/2gCn//H4g//19 + Hv/9fR7//XoZ//14Fv/9eBb//XYT//10D//9dA///XMN//xwB//8cAf//HAH//xtA//8bQP//G0D//5t + Af/+bQD//m0A//9tAP//bQD//20A//9tAP//bQD//20A//9tAP//bQD//20A//9tAP//bQD//20A//9t + AP//bQD//20A//9tAP/+bQD//m0A//5tAP/+bQD//W0B//1tAf/9bQL//G4F//xuBf/8bgX//XIL//1y + C//9cgv//XYR//13Ev/9dxL//XoX//18G//9fBv//Xwc//19Hf/9fR3/+IEo/+ORVv/jkVb/45FW/9rW + 1v/a1tb/2tbW/+nm5v/t6ur/7erq/+Td3f/e1dX/3tXV/9THx//Gs7P/xrOz/8azs//FsbH/xbGx/8Wx + sf/FsbH/xbGx/8Wxsf/FsbH/xbGx/8Wxsf+snJz/m46O/5uOjv+AdnbFICAgbSAgIG0gICBYAAAAAgAA + AAIAAAACBQUFDQUFBQ0FBQUNRkREhkdFRaRHRUWkin9/26eYmP+nmJj/s6Ki/8Wxsf/FsbH/xbGx/8Wx + sf/FsbH/xbGx/8Wxsf/FsbH/xbGx/86/v//QwsL/0MLC/+DY2P/q5ub/6ubm/+vo6P/t6ur/7erq/+7k + 3v/yyq7/8squ//LKrv/2gCn/9oAp//aAKf/8fiD//X0e//19Hv/9ehn//XgW//14Fv/9dhP//XQP//10 + D//9cw3//HAH//xwB//8cAf//G0D//xtA//8bQP//m0B//5tAP/+bQD//20A//9tAP//bQD//20A//9t + AP//bQD//20A//9tAP//bQD//20A//9tAP//bQD//20A//9tAP//bQD//20A//5tAP/+bQD//m0A//5t + AP/9bQH//W0B//1tAv/8bgX//G4F//xuBf/9cgv//XIL//1yC//9dhH//XcS//13Ev/9ehf//Xwb//18 + G//9fBz//X0d//19Hf/4gSj/45FW/+ORVv/jkVb/2tbW/9rW1v/a1tb/6ebm/+3q6v/t6ur/5N3d/97V + 1f/e1dX/1MfH/8azs//Gs7P/xrOz/8Wxsf/FsbH/xbGx/8Wxsf/FsbH/xbGx/8Wxsf/FsbH/xbGx/6yc + nP+bjo7/m46O/4B2dsUgICBtICAgbSAgIFgAAAACAAAAAgAAAAIFBQUPBQUFDwUFBQ9GRESLR0VFqkdF + RaqMgYHdqpyc/6qcnP+3p6f/ybe3/8m3t//Mu7v/2s7O/9rOzv/azs7/5+Li/+fi4v/n4uL/5+Hh/+fh + 4f/n4eH/6ubm/+zo6P/s6Oj/7enp/+7q6v/u6ur/7OTg/+fLtv/ny7b/58u2/+uEL//rhC//64Qv//t8 + Ef//egr//3oK//94B///dgT//3YE//92BP//dgP//3YD//91A//+dQH//nUB//51Af/+dAH//nQB//50 + Af//dAD//3QA//90AP//dAD//3QA//90AP//dAD//3QA//90AP//dAD//3QA//90AP//dAD//3QA//90 + AP//dAD//3QA//90AP//dAD//3QA//90AP//dAD//3QA//90AP//dAD//3QA//50Af/+dAH//nQB//91 + Av//dQL//3UC//92A///dgT//3YE//93Bf//dwX//3cF//53Bv/+dwb//ncG//t+Ff/tmVP/7ZlT/+2Z + U//k4eH/5OHh/+Th4f/r6Oj/7enp/+3p6f/r5+f/6uXl/+rl5f/o4+P/5t/f/+bf3//l3t7/49vb/+Pb + 2//j29v/zLu7/8y7u//Mu7v/yre3/8m3t//Jt7f/rZ6e/5uOjv+bjo7/f3V1xR8fH24fHx9uHx8fWAAA + AAIAAAACAAAAAgUFBQ8FBQUPBQUFD0ZERI1HRUWsR0VFrIyCgt6rnZ3/q52d/7eoqP/KuLj/yri4/86+ + vv/f1dX/39XV/9/V1f/w7u7/8O7u//Du7v/u6ur/7enp/+3p6f/t6en/7enp/+3p6f/t6en/7urq/+7q + 6v/s5OD/5Mu4/+TLuP/ky7j/6IUw/+iFMP/ohTD/+nsO//95Bf//eQX//3cC//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92 + AP//dgD//3YA//52AP/+dgD/+30Q//CbUv/wm1L/8JtS/+fk5P/n5OT/5+Tk/+zo6P/t6en/7enp/+3p + 6f/t6en/7enp/+3p6f/u6ur/7urq/+3p6f/r5ub/6+bm/+vm5v/Ovb3/zr29/869vf/Lubn/yri4/8q4 + uP+un5//m46O/5uOjv9/dXXFHx8fbh8fH24fHx9YAAAAAgAAAAIAAAACBQUFDwUFBQ8FBQUPRkREjUdF + RaxHRUWsjIKC3qudnf+rnZ3/t6io/8q4uP/KuLj/zr6+/9/V1f/f1dX/39XV//Du7v/w7u7/8O7u/+7q + 6v/t6en/7enp/+3p6f/t6en/7enp/+3p6f/u6ur/7urq/+zk4P/ky7j/5Mu4/+TLuP/ohTD/6IUw/+iF + MP/6ew7//3kF//95Bf//dwL//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//nYA//52AP/7fRD/8JtS//Cb + Uv/wm1L/5+Tk/+fk5P/n5OT/7Ojo/+3p6f/t6en/7enp/+3p6f/t6en/7enp/+7q6v/u6ur/7enp/+vm + 5v/r5ub/6+bm/869vf/Ovb3/zr29/8u5uf/KuLj/yri4/66fn/+bjo7/m46O/391dcUfHx9uHx8fbh8f + H1gAAAACAAAAAgAAAAIFBQUOBQUFDgUFBQ5IRkaLSUdHqklHR6qYkpLdu7Oz/7uzs//KwsL/4tra/+La + 2v/k3Nz/7Obm/+zm5v/s5ub/7urq/+7q6v/u6ur/7Ofn/+vm5v/r5ub/6+bm/+vm5v/r5ub/6+bm/+zm + 5v/s5ub/5+Dd/9XEuf/VxLn/1cS5/92WUv/dllL/3ZZS//iRLP//kCP//5Aj//+JFP//hAr//4QK//+C + Bv//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/ + AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/ + AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/ + AP//fwD//38A//1/AP/7fgH/+34B//eFFP/pomD/6aJg/+miYP/s6Oj/7Ojo/+zo6P/r5ub/6+bm/+vm + 5v/r5ub/6+bm/+vm5v/r5ub/7Obm/+zm5v/r5ub/6uXl/+rl5f/q5eX/39TU/9/U1P/f1NT/3tTU/97U + 1P/e1NT/ua+v/6GXl/+hl5f/hHx8xR8fH20fHx9tHx8fVwAAAAIAAAACAAAAAgUFBQ4FBQUOBQUFDkpI + SIlLSUmoS0lJqKCcnNzFwcH/xcHB/9fU1P/y8PD/8vDw//Lw8P/08fH/9PHx//Tx8f/t6Oj/7ejo/+3o + 6P/r5eX/6uTk/+rk5P/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk5P/k3dz/y8C6/8vAuv/LwLr/1qFo/9ah + aP/WoWj/959B//+fN///nzf//5Qg//+NEf//jRH//4oK//+FAP//hQD//4UA//+FAP//hQD//4UA//+F + AP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+F + AP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+F + AP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//YQB//mDAv/5gwL/9YoX/+Wn + av/lp2r/5adq/+/r6//v6+v/7+vr/+vl5f/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk + 5P/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk5P/r5ub/6+bm/+vm5v/Burr/pZ2d/6Wdnf+HgYHEHx8fbB8f + H2wfHx9XAAAAAgAAAAIAAAACBQUFDgUFBQ4FBQUOSkhIiUtJSahLSUmooJyc3MXBwf/FwcH/19TU//Lw + 8P/y8PD/8vDw//Tx8f/08fH/9PHx/+3o6P/t6Oj/7ejo/+vl5f/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk + 5P/q5OT/6uTk/+Td3P/LwLr/y8C6/8vAuv/WoWj/1qFo/9ahaP/3n0H//583//+fN///lCD//40R//+N + Ef//igr//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+F + AP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+F + AP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+FAP//hQD//4UA//+F + AP//hQD//4UA//+FAP/9hAH/+YMC//mDAv/1ihf/5adq/+Wnav/lp2r/7+vr/+/r6//v6+v/6+Xl/+rk + 5P/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk5P/q5OT/6uTk/+rk5P/q5OT/6uTk/+vm + 5v/r5ub/6+bm/8G6uv+lnZ3/pZ2d/4eBgcQfHx9sHx8fbB8fH1cAAAACAAAAAgAAAAIFBQUMBQUFDAUF + BQxKSUmDTEpKoUxKSqGjoKDZx8TE/8fExP/Z1dX/8vDw//Lw8P/z8PD/9PDw//Tw8P/08PD/7+rq/+/q + 6v/v6ur/7Obm/+vl5f/r5eX/6uTk/+ni4v/p4uL/6eLi/+ni4v/p4uL/49zb/8rCvv/Kwr7/ysK+/9an + bv/Wp27/1qdu//arUf//rEr//6xK//+jN///nSv//50r//+ZIP//kRD//5EQ//+QDf//iwH//4sB//+L + Af//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+L + Af//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+L + Af//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//uKA//2iQb/9okG//CP + Hf/Wpnj/1qZ4/9ameP/t6en/7enp/+3p6f/q5OT/6eLi/+ni4v/p4uL/6eLi/+ni4v/p4uL/6eLi/+ni + 4v/p4uL/6eLi/+ni4v/p4uL/6eLi/+ni4v/p4uL/6ePj/+nj4//p4+P/w7y8/6miov+poqL/i4aGwx8f + H2ofHx9qHx8fVQAAAAIAAAACAAAAAgUFBQoFBQUKBQUFCkxLS3pNTEyWTUxMlqilpdXLyMj/y8jI/9vY + 2P/z7+//8+/v//Pv7//z7+//8+/v//Pv7//x7e3/8e3t//Ht7f/t6Oj/7Ofn/+zn5//p4+P/5+Dg/+fg + 4P/n4OD/5+Dg/+fg4P/h2tr/yMTE/8jExP/IxMT/1q94/9aveP/Wr3j/9r1q//7AZ//+wGf//rpa//62 + Uv/+tlL//q9C//6kKf/+pCn//qEh//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6V + A//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6V + A//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6V + A//+lQP//pUD//6VA//+lQP/+ZMH//KRDP/ykQz/6JUm/7+ljf+/pY3/v6WN/+rl5f/q5eX/6uXl/+jh + 4f/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+fg + 4P/m39//5t/f/+bf3//Fv7//r6qq/6+qqv+RjY3CHx8fZh8fH2YfHx9SAAAAAQAAAAEAAAABBQUFCgUF + BQoFBQUKTEtLek1MTJZNTEyWqKWl1cvIyP/LyMj/29jY//Pv7//z7+//8+/v//Pv7//z7+//8+/v//Ht + 7f/x7e3/8e3t/+3o6P/s5+f/7Ofn/+nj4//n4OD/5+Dg/+fg4P/n4OD/5+Dg/+Ha2v/IxMT/yMTE/8jE + xP/Wr3j/1q94/9aveP/2vWr//sBn//7AZ//+ulr//rZS//62Uv/+r0L//qQp//6kKf/+oSH//pUD//6V + A//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6V + A//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6V + A//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//5kwf/8pEM//KR + DP/olSb/v6WN/7+ljf+/pY3/6uXl/+rl5f/q5eX/6OHh/+fg4P/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+fg + 4P/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+bf3//m39//5t/f/8W/v/+vqqr/r6qq/5GN + jcIfHx9mHx8fZh8fH1IAAAABAAAAAQAAAAEFBQUJBQUFCQUFBQlJSEh0SklJj0pJSY+lo6PSx8TE/8fE + xP/Y1dX/8+/v//Pv7//z7+//8+/v//Pv7//z7+//8e3t//Ht7f/x7e3/7unp/+3o6P/t6Oj/6uXl/+ni + 4v/p4uL/6OHh/+fg4P/n4OD/4dvb/8vGxv/Lxsb/y8bG/9iyfP/Ysnz/2LJ8//a+bv/+wWr//sFq//69 + Yf/+ulr//rpa//60Tf/+qzj//qs4//6oMv/+nhf//p4X//6eF//+mQv//pkL//6ZC//+mAr//pgJ//6Y + Cf/+mAn//pgJ//6YCf/+mAn//pgJ//6YCf/+mAn//pgJ//6YCf/+mAn//pgJ//6YCf/+mAn//pgJ//6Y + Cf/+mAn//pgJ//6YCf/+mAn//pgJ//6YCf/+mAn//pgJ//6YCf/+mAn//pgJ//6YCf/+mAn//pgJ//6Y + Cf/+mAn//pgJ//6YCf/+mAn//pgJ//mWDf/xlBP/8ZQT/+aXLP+6pJH/uqSR/7qkkf/p4+P/6ePj/+nj + 4//n4OD/5t/f/+bf3//m39//5t/f/+bf3//m39//5t/f/+bf3//m39//5t/f/+bf3//m39//5t/f/+bf + 3//m39//5d7e/+Xe3v/l3t7/w729/qynp/6sp6f+jouLwB4eHmMeHh5jHh4eUAAAAAEAAAABAAAAAQUF + BQMFBQUDBQUFAzo6Ol06Ojp0Ojo6dJqYmMe3tLT/t7S0/87Ly//x7e3/8e3t//Ht7f/x7e3/8e3t//Ht + 7f/x7e3/8e3t//Ht7f/w7Oz/8Ozs//Ds7P/v6+v/7+vr/+/r6//r5ub/5d7e/+Xe3v/i29v/1dDQ/9XQ + 0P/V0ND/4b2K/+G9iv/hvYr/98V8//3HeP/9x3j//sh6//7Je//+yXv//sh5//7Hdv/+x3b//sZz//3A + Zv/9wGb//cBm//2oKv/9qCr//agq//2mJP/9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP/96Mn/+2f + Lf/tny3/36BE/6aioP+moqD/pqKg/+Tc3P/k3Nz/5Nzc/+Pb2//j29v/49vb/+Pb2//j29v/49vb/+Pb + 2//j29v/49vb/+Pb2//j29v/49vb/+Pb2//j29v/49vb/+Pb2//h2dn/4NjY/+DY2P+5s7P7npqa+J6a + mviFgoK4HBwcWBwcHFgcHBxGAAAAAAAAAAAAAAAABQUFAwUFBQMFBQUDOjo6XTo6OnQ6Ojp0mpiYx7e0 + tP+3tLT/zsvL//Ht7f/x7e3/8e3t//Ht7f/x7e3/8e3t//Ht7f/x7e3/8e3t//Ds7P/w7Oz/8Ozs/+/r + 6//v6+v/7+vr/+vm5v/l3t7/5d7e/+Lb2//V0ND/1dDQ/9XQ0P/hvYr/4b2K/+G9iv/3xXz//cd4//3H + eP/+yHr//sl7//7Je//+yHn//sd2//7Hdv/+xnP//cBm//3AZv/9wGb//agq//2oKv/9qCr//aYk//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//3oyf/7Z8t/+2fLf/foET/pqKg/6aioP+moqD/5Nzc/+Tc + 3P/k3Nz/49vb/+Pb2//j29v/49vb/+Pb2//j29v/49vb/+Pb2//j29v/49vb/+Pb2//j29v/49vb/+Pb + 2//j29v/49vb/+HZ2f/g2Nj/4NjY/7mzs/uempr4npqa+IWCgrgcHBxYHBwcWBwcHEYAAAAAAAAAAAAA + AAAFBQUDBQUFAwUFBQM6OjpdOjo6dDo6OnSamJjHt7S0/7e0tP/Oy8v/8e3t//Ht7f/x7e3/8e3t//Ht + 7f/x7e3/8e3t//Ht7f/x7e3/8Ozs//Ds7P/w7Oz/7+vr/+/r6//v6+v/6+bm/+Xe3v/l3t7/4tvb/9XQ + 0P/V0ND/1dDQ/+G9iv/hvYr/4b2K//fFfP/9x3j//cd4//7Iev/+yXv//sl7//7Ief/+x3b//sd2//7G + c//9wGb//cBm//3AZv/9qCr//agq//2oKv/9piT//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//ej + J//tny3/7Z8t/9+gRP+moqD/pqKg/6aioP/k3Nz/5Nzc/+Tc3P/j29v/49vb/+Pb2//j29v/49vb/+Pb + 2//j29v/49vb/+Pb2//j29v/49vb/+Pb2//j29v/49vb/+Pb2//j29v/4dnZ/+DY2P/g2Nj/ubOz+56a + mviempr4hYKCuBwcHFgcHBxYHBwcRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4eHkweHh5fHh4eX5WT + k7+zsLD/s7Cw/8vHx//v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q + 6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7erq/+3q6v/t6ur/zrWY/861mP/OtZj/7ceS//XM + kf/1zJH/+tGV//3VmP/91Zj//dWY//3VmP/91Zj//dWY//3VmP/91Zj//dWY//3VmP/91Zj//dWY//zR + kP/80I7//NCO//zFdP/8vmP//L5j//y9X//8u1r//Lta//y7Wf/7uVb/+7lW//u5Vv/7uFT/+7hU//u4 + VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4 + VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/9bVW/+uwWP/rsFj/369o/62pqf+tqan/ramp/+DW + 1v/g1tb/4NbW/+DW1v/g1tb/4NbW/97V1P/d1NL/3dTS/9vTzv/X0cj/19HI/9jRyv/d09L/3dPS/93T + 0v/g1tb/4NbW/+DW1v/Xzs7/1czM/9XMzP+alJTtbWpq4W1qauFeXFyhExMTQhMTE0ITExM1AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAHh4eTB4eHl8eHh5flZOTv7OwsP+zsLD/y8fH/+/q6v/v6ur/7+rq/+/q + 6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q + 6v/t6ur/7erq/+3q6v/OtZj/zrWY/861mP/tx5L/9cyR//XMkf/60ZX//dWY//3VmP/91Zj//dWY//3V + mP/91Zj//dWY//3VmP/91Zj//dWY//3VmP/91Zj//NGQ//zQjv/80I7//MV0//y+Y//8vmP//L1f//y7 + Wv/8u1r//LtZ//u5Vv/7uVb/+7lW//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4 + VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4 + VP/1tVb/67BY/+uwWP/fr2j/ramp/62pqf+tqan/4NbW/+DW1v/g1tb/4NbW/+DW1v/g1tb/3tXU/93U + 0v/d1NL/29PO/9fRyP/X0cj/2NHK/93T0v/d09L/3dPS/+DW1v/g1tb/4NbW/9fOzv/VzMz/1czM/5qU + lO1tamrhbWpq4V5cXKETExNCExMTQhMTEzUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh5MHh4eXx4e + Hl+Vk5O/s7Cw/7OwsP/Lx8f/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q + 6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+3q6v/t6ur/7erq/861mP/OtZj/zrWY/+3H + kv/1zJH/9cyR//rRlf/91Zj//dWY//3VmP/91Zj//dWY//3VmP/91Zj//dWY//3VmP/91Zj//dWY//3V + mP/80ZD//NCO//zQjv/8xXT//L5j//y+Y//8vV///Lta//y7Wv/8u1n/+7lW//u5Vv/7uVb/+7hU//u4 + VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4 + VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//W1Vv/rsFj/67BY/9+vaP+tqan/ramp/62p + qf/g1tb/4NbW/+DW1v/g1tb/4NbW/+DW1v/e1dT/3dTS/93U0v/b087/19HI/9fRyP/Y0cr/3dPS/93T + 0v/d09L/4NbW/+DW1v/g1tb/187O/9XMzP/VzMz/mpSU7W1qauFtamrhXlxcoRMTE0ITExNCExMTNQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHUsdHR1eHR0dXpOQkL6wrKz+sKys/sjExP/t6Oj/7ejo/+7o + 6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o + 6P/v6en/8ezs//Hs7P/x7Oz/taeb/7Wnm/+1p5v/48mk/+/Rp//v0af/99ms//zesP/83rD//N6w//ze + sP/83rD//N6w//zesP/83rD//N6w//zesP/83rD//N6w//zdrv/83a7//N2u//zbqf/82aX//Nml//zZ + pP/82KL//Nii//zWn//70ZP/+9GT//vRk//7zYj/+82I//vNiP/7zYf/+82H//vNh//7zIb/+8uG//vL + hv/7y4T/+8qB//vKgf/7yYD/+sh+//rIfv/6yH7/+sh9//rIff/6yH3/+sh9//rIff/6yH3/+sh9//rI + ff/6yH3/7Lt0/9imaP/Ypmj/1Kx6/8TAwP/EwMD/xMDA/97S0v/e0tL/3tLS/97S0v/e0tL/3tLS/9TM + xf/NyLz/zci8/7/Cp/+ruYj/q7mI/7K7kv/NxLz/zcS8/83EvP/e0tL/3tLS/97S0v/Qx8f/zcTE/83E + xP+FgIDdR0ZGxkdGRsZAQECGCgoKJwoKCicKCgofAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dSx0d + HV4dHR1eko+Pvq+rq/6vq6v+yMPD/u3n5//t5+f/7efn/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o + 6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+/p6f/y7e3/8u3t//Lt7f+vpJz/r6Sc/6+k + nP/hyan/7dKs/+3SrP/22rL//OC2//zgtv/84Lb//OC2//zgtv/84Lb//OC2//zgtv/84Lb//OC2//zg + tv/84Lb//OC2//zgtv/84Lb//OC2//zgtv/84Lb//OC1//zftP/837T//N2w//vXov/716L/+9ei//vS + lf/70pX/+9KV//vSlP/70pT/+9KU//vRk//70JL/+9CS//vPkP/7zoz/+86M//vOi//6zIn/+syJ//rM + if/6zIf/+syH//rMh//6zIf/+syH//rMh//6zIf/+syH//rMh//qvHz/06Rs/9OkbP/Rq37/ysbG/8rG + xv/Kxsb/3dHR/93R0f/d0dH/3dHR/93R0f/d0dH/0crB/8nFt//Jxbf/ub6e/6CzeP+gs3j/qLaE/8nA + tv/JwLb/ycC2/93R0f/d0dH/3dHR/8/Fxf/LwsL/y8LC/397e9k8PDy/PDw8vzc3N38GBgYgBgYGIAYG + BhoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHR1LHR0dXh0dHV6Sj4++r6ur/q+rq/7Iw8P+7efn/+3n + 5//t5+f/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o + 6P/u6Oj/7+np//Lt7f/y7e3/8u3t/6+knP+vpJz/r6Sc/+HJqf/t0qz/7dKs//basv/84Lb//OC2//zg + tv/84Lb//OC2//zgtv/84Lb//OC2//zgtv/84Lb//OC2//zgtv/84Lb//OC2//zgtv/84Lb//OC2//zg + tv/84LX//N+0//zftP/83bD/+9ei//vXov/716L/+9KV//vSlf/70pX/+9KU//vSlP/70pT/+9GT//vQ + kv/70JL/+8+Q//vOjP/7zoz/+86L//rMif/6zIn/+syJ//rMh//6zIf/+syH//rMh//6zIf/+syH//rM + h//6zIf/+syH/+q8fP/TpGz/06Rs/9Grfv/Kxsb/ysbG/8rGxv/d0dH/3dHR/93R0f/d0dH/3dHR/93R + 0f/RysH/ycW3/8nFt/+5vp7/oLN4/6CzeP+otoT/ycC2/8nAtv/JwLb/3dHR/93R0f/d0dH/z8XF/8vC + wv/LwsL/f3t72Tw8PL88PDy/Nzc3fwYGBiAGBgYgBgYGGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb + GzobGxtJGxsbSXp4eKmOi4vojouL6LOvr/Hm4OD/5uDg/+fi4v/t5+f/7efn/+3n5//t5+f/7efn/+3n + 5//t5+f/7efn/+3n5//t5+f/7efn/+3n5//t5+f/7efn/+3n5//t5+f/8Orq//Dq6v/w6ur/p6Ge/6eh + nv+noZ7/3c23/+vYvf/r2L3/9eHE//vnyf/758n/++fJ//vnyf/758n/++fJ//vnyf/758n/++fJ//vn + yf/758n/++fJ//vnyf/758n/++fJ//vnyf/758n/++fJ//vnyf/758j/++fI//vmx//75MH/++TB//vk + wf/74rz/++K8//vivP/74rz/++K8//vivP/74Lr/++C5//vguf/737f/+960//vetP/73bP/+tyw//rc + sP/63LD/+tyu//rcrv/63K7/+tyu//rcrv/63K7/+tyu//rcrv/63K7/3b6W/7GTcf+xk3H/uaCG/9vW + 1v/b1tb/29bW/9vPz//bz8//28/P/9vPz//bz8//28/P/9XLx//RycH/0cnB/8fFs/+5v57/ub+e/77A + pf/QxsD/0MbA/9DGwP/bz8//28/P/9vPz//Jv7//xbu7/sW7u/58d3fPNTU1rzU1Na8yMjJvBQUFEAUF + BRAFBQUNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYLxgYGDsYGBg7Z2VlmnVzc9p1c3PapKGh6eHc + 3P/h3Nz/497e/+zm5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+zm + 5v/s5ub/7Obm/+zm5v/u6Oj/7ujo/+7o6P+hn5//oZ+f/6Gfn//b0MH/6dzJ/+ncyf/05tH/++zW//vs + 1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs + 1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vr + 1P/76tP/++rT//vp0f/76M7/++jO//vozf/658r/+ufK//rnyv/65sj/+ubI//rmyP/65sj/+ubI//rm + yP/65sj/+ubI//rmyP/UwKf/mod1/5qHdf+pmYv/5uHh/+bh4f/m4eH/2s3N/9rNzf/azc3/2s3N/9rN + zf/azc3/2MzK/9bLyP/Wy8j/0cnC/8rHuP/Kx7j/zMi7/9XKxv/Vysb/1crG/9rNzf/azc3/2s3N/8a7 + u/7Btrb+wba2/np0dMgwMDCkMDAwpC8vL2QAAAAFAAAABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAYGBgvGBgYOxgYGDtnZWWadXNz2nVzc9qkoaHp4dzc/+Hc3P/j3t7/7Obm/+zm5v/s5ub/7Obm/+zm + 5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+7o6P/u6Oj/7ujo/6Gf + n/+hn5//oZ+f/9vQwf/p3Mn/6dzJ//Tm0f/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs + 1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++zW//vs + 1v/77Nb/++zW//vs1v/77Nb/++zW//vs1v/77Nb/++vU//vq0//76tP/++nR//vozv/76M7/++jN//rn + yv/658r/+ufK//rmyP/65sj/+ubI//rmyP/65sj/+ubI//rmyP/65sj/+ubI/9TAp/+ah3X/mod1/6mZ + i//m4eH/5uHh/+bh4f/azc3/2s3N/9rNzf/azc3/2s3N/9rNzf/YzMr/1svI/9bLyP/RycL/yse4/8rH + uP/MyLv/1crG/9XKxv/Vysb/2s3N/9rNzf/azc3/xru7/sG2tv7Btrb+enR0yDAwMKQwMDCkLy8vZAAA + AAUAAAAFAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFx4XFxclFxcXJVdWVoRfXl7EX15exJmW + ltzc19f/3NfX/9/a2v/s5eX/7OXl/+zl5f/s5eX/7OXl/+zl5f/s5eX/7OXl/+zl5f/s5eX/7OXl/+zl + 5f/s5eX/7OXl/+zl5f/s5eX/7ebm/+3m5v/t5ub/o6Gh/6Ohof+joaH/yauR/9Kujf/Sro3/3rSN/+a4 + jv/muI7/57yU/+nCnP/pwpz/6cOe/+vIpv/ryKb/68im/+3Nrv/tza7/7c2u/+7Qsf/v0LL/79Cy/+/S + tP/v0rX/79K1//DTtv/w1Lb/8NS2//DUt//w1rr/8Na6//DWuv/w1rr/8Na6//DWuv/w1Lf/8NO2//DT + tv/v0rT/79Cz/+/Qs//vz7D/7s2s/+7NrP/uzKr/7Mmk/+zJpP/syaT/6sOb/+rDm//qw5v/6LyR/+e7 + j//nu4//5baJ/+S0hf/ktIX/wqCA/4+DeP+Pg3j/oZaN/+nj4//p4+P/6ePj/93R0f/d0dH/3dHR/93S + 0v/e0tL/3tLS/93S0f/c0tD/3NLQ/9rSzf/W0cj/1tHI/9fRyv/d09H/3dPR/93T0f/g1dX/4NXV/+DV + 1f+nn5/5mZGR+JmRkfhoZGSyKioqgyoqKoMpKSlQAAAAAwAAAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAgICAwICAgQCAgIEMzMzYzQ0NKM0NDSjhoODyNXPz//Vz8//2dPT/+vk5P/r5OT/6+Tk/+vk + 5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk + 5P+lo6P/paOj/6Wjo/+udUn/sGky/7BpMv+9aij/xmsi/8ZrIv/JdDD/zoJG/86CRv/PhUv/1JNe/9ST + Xv/Uk17/2J9x/9ifcf/Yn3H/26V7/9ynff/cp33/3aqB/96shP/erIT/3q2F/9+vh//fr4f/37CJ/+C0 + kP/gtJD/4LSQ/+C0kP/gtJD/4LSQ/9+viP/frob/366G/96shP/dqoL/3aqC/9yofv/bpXn/26V5/9qj + dv/YnGv/2Jxr/9ica//Sjlf/0o5X/9KOV//Mfj//y3o5/8t6Of/Gbyv/w2gh/8NoIf+ncEX/fn18/359 + fP+UkpH/7efn/+3n5//t5+f/4dfX/+HX1//h19f/49nZ/+Pa2v/j2tr/5dzc/+bd3f/m3d3/5t7e/+fg + 4P/n4OD/5+Dg/+jh4f/o4eH/6OHh/+jh4f/o4eH/6OHh/3Z0dPJYV1fvWFdX70JBQZAXFxdRFxcXURcX + FzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgIDAgICBAICAgQzMzNjNDQ0ozQ0 + NKOGg4PI1c/P/9XPz//Z09P/6+Tk/+vk5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk + 5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/6Wjo/+lo6P/paOj/651Sf+waTL/sGky/71q + KP/GayL/xmsi/8l0MP/Ogkb/zoJG/8+FS//Uk17/1JNe/9STXv/Yn3H/2J9x/9ifcf/bpXv/3Kd9/9yn + ff/dqoH/3qyE/96shP/erYX/36+H/9+vh//fsIn/4LSQ/+C0kP/gtJD/4LSQ/+C0kP/gtJD/36+I/9+u + hv/frob/3qyE/92qgv/dqoL/3Kh+/9ulef/bpXn/2qN2/9ica//YnGv/2Jxr/9KOV//Sjlf/0o5X/8x+ + P//Lejn/y3o5/8ZvK//DaCH/w2gh/6dwRf9+fXz/fn18/5SSkf/t5+f/7efn/+3n5//h19f/4dfX/+HX + 1//j2dn/49ra/+Pa2v/l3Nz/5t3d/+bd3f/m3t7/5+Dg/+fg4P/n4OD/6OHh/+jh4f/o4eH/6OHh/+jh + 4f/o4eH/dnR08lhXV+9YV1fvQkFBkBcXF1EXFxdRFxcXMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAICAgMCAgIDAgICAzIyMlUzMzOLMzMzi316era8t7f2vLe39sS/v/jl3t7/5d7e/+Xe + 3v/n4OD/5+Dg/+fg4P/p4uL/6uLi/+ri4v/q4+P/6+Pj/+vj4//r4+P/6+Pj/+vj4//r4+P/6+Pj/+vj + 4//r4+P/rKqq/6yqqv+sqqr/pnZS/6RpPf+kaT3/v3xH/9GITv/RiE7/049Z/9eZaf/XmWn/2Jxs/9um + ev/bpnr/26Z6/96vif/er4n/3q+J/+G0kP/htZL/4bWS/+K3lf/juZf/47mX/+O6mP/ju5n/47uZ/+O7 + m//jvqD/476g/+O+oP/ivZ//4r2f/+K9n//huZn/4biX/+G4l//gtpX/37ST/9+0k//espD/3bCM/92w + jP/cron/2qiA/9qogP/aqID/1Zxw/9WccP/VnHD/05Nh/9ORXf/TkV3/xH1G/7tvN/+7bzf/onVS/318 + fP99fHz/lJKR/+3n5//t5+f/7efn/+PZ2f/j2dn/49nZ/+Tb2//k29v/5Nvb/+bd3f/m3t7/5t7e/+be + 3v/l3t7/5d7e/+Xe3v/k3d3/5N3d/+Td3f/SzMz90szM/dLMzP1ubGzpU1JS5FNSUuRBQECCFxcXQRcX + F0EXFxcnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx8fGx8f + Hy0fHx8tOjo6b0NDQ9JDQ0PSY2Ji283Hx//Nx8f/zcfH/9nS0v/Z0tL/2dLS/+La2v/k3Nz/5Nzc/+ff + 3//p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/HxMT/x8TE/8fExP+Genr/dmdn/3Zn + Z//IwsL//v7+//7+/v/8+/r/+vf0//r39P/69vL/+PLs//jy7P/48uz/9/Dq//fw6v/38Or/9u7o//bu + 5//27uf/9e3m//Xs5f/17OX/9Ovk//Lp4v/y6eL/8uni//Dn4P/w5+D/8Ofg/+zj3f/s493/7OPd/+rh + 3P/q4Nz/6uDc/+je2v/n3dn/593Z/+bc2P/l2tf/5drX/+TZ1v/i19T/4tfU/+LX1P/g1NL/4NTS/+DU + 0v/v6ej/8+7t//Pu7f+9tLP/mY2N/5mNjf+NhYX/enp6/3p6ev+RkJD/7Obm/+zm5v/s5ub/6eHh/+nh + 4f/p4eH/6eHh/+nh4f/p4eH/6ODg/+jg4P/o4OD/5Nzc/93W1v/d1tb/3NXV/9bPz//Wz8//1s/P/3Rz + c/V0c3P1dHNz9UdHR8Q4ODi4ODg4uDg4OEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfHx8bHx8fLR8fHy06OjpvQ0ND0kNDQ9JjYmLbzcfH/83H + x//Nx8f/2dLS/9nS0v/Z0tL/4tra/+Tc3P/k3Nz/59/f/+nh4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh + 4f/p4eH/6eHh/8fExP/HxMT/x8TE/4Z6ev92Z2f/dmdn/8jCwv/+/v7//v7+//z7+v/69/T/+vf0//r2 + 8v/48uz/+PLs//jy7P/38Or/9/Dq//fw6v/27uj/9u7n//bu5//17eb/9ezl//Xs5f/06+T/8uni//Lp + 4v/y6eL/8Ofg//Dn4P/w5+D/7OPd/+zj3f/s493/6uHc/+rg3P/q4Nz/6N7a/+fd2f/n3dn/5tzY/+Xa + 1//l2tf/5NnW/+LX1P/i19T/4tfU/+DU0v/g1NL/4NTS/+/p6P/z7u3/8+7t/720s/+ZjY3/mY2N/42F + hf96enr/enp6/5GQkP/s5ub/7Obm/+zm5v/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/o4OD/6ODg/+jg + 4P/k3Nz/3dbW/93W1v/c1dX/1s/P/9bPz//Wz8//dHNz9XRzc/V0c3P1R0dHxDg4OLg4ODi4ODg4SgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8f + HxsfHx8tHx8fLTo6Om9DQ0PSQ0ND0mNiYtvNx8f/zcfH/83Hx//Z0tL/2dLS/9nS0v/i2tr/5Nzc/+Tc + 3P/n39//6eHh/+nh4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+nh4f/p4eH/x8TE/8fExP/HxMT/hnp6/3Zn + Z/92Z2f/yMLC//7+/v/+/v7//Pv6//r39P/69/T/+vby//jy7P/48uz/+PLs//fw6v/38Or/9/Dq//bu + 6P/27uf/9u7n//Xt5v/17OX/9ezl//Tr5P/y6eL/8uni//Lp4v/w5+D/8Ofg//Dn4P/s493/7OPd/+zj + 3f/q4dz/6uDc/+rg3P/o3tr/593Z/+fd2f/m3Nj/5drX/+Xa1//k2db/4tfU/+LX1P/i19T/4NTS/+DU + 0v/g1NL/7+no//Pu7f/z7u3/vbSz/5mNjf+ZjY3/jYWF/3p6ev96enr/kZCQ/+zm5v/s5ub/7Obm/+nh + 4f/p4eH/6eHh/+nh4f/p4eH/6eHh/+jg4P/o4OD/6ODg/+Tc3P/d1tb/3dbW/9zV1f/Wz8//1s/P/9bP + z/90c3P1dHNz9XRzc/VHR0fEODg4uDg4OLg4ODhKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUDRQUFCEUFBQhIyMjOjAw + MJ8wMDCfMDAwn05NTbROTU20Tk1NtIiEhOGTj4/sk4+P7KKdnferpqb+q6am/qynp/6tqKj/raio/62o + qP+vqqr/r6qq/6+qqv/Qzs7/0M7O/9DOzv+PhIT/f3Fx/39xcf/Lxsb//v7+//7+/v/9/Pr/+/j1//v4 + 9f/79/T/+fPu//nz7v/58+7/+PLs//jy7P/48uz/9vDq//bv6f/27+n/9u7o//bu5//27uf/9e3m//Ts + 5P/07OT/9Ovk//Lp4v/y6eL/8uni/+/m3//v5t//7+bf/+3k3f/s493/7OPd/+rh3P/p4Nv/6eDb/+jf + 2v/n3dn/593Z/+bc2P/k2tb/5NrW/+Ta1v/i19T/4tfU/+LX1P/w6un/8+/u//Pv7v+/trb/nZCQ/52Q + kP+UjIz/hoWF/4aFhf+Qjo7/trGx/7axsf+2sbH/raio/62oqP+tqKj/raio/62oqP+tqKj/qaSk/aai + ovumoqL7kI2N62poaNNqaGjTYWBgyjY1Nac2NTWnNjU1py4uLnAuLi5wLi4ucC4uLhYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAUFBQNFBQUIRQUFCEjIyM6MDAwnzAwMJ8wMDCfTk1NtE5NTbROTU20iISE4ZOP + j+yTj4/sop2d96umpv6rpqb+rKen/q2oqP+tqKj/raio/6+qqv+vqqr/r6qq/9DOzv/Qzs7/0M7O/4+E + hP9/cXH/f3Fx/8vGxv/+/v7//v7+//38+v/7+PX/+/j1//v39P/58+7/+fPu//nz7v/48uz/+PLs//jy + 7P/28Or/9u/p//bv6f/27uj/9u7n//bu5//17eb/9Ozk//Ts5P/06+T/8uni//Lp4v/y6eL/7+bf/+/m + 3//v5t//7eTd/+zj3f/s493/6uHc/+ng2//p4Nv/6N/a/+fd2f/n3dn/5tzY/+Ta1v/k2tb/5NrW/+LX + 1P/i19T/4tfU//Dq6f/z7+7/8+/u/7+2tv+dkJD/nZCQ/5SMjP+GhYX/hoWF/5COjv+2sbH/trGx/7ax + sf+tqKj/raio/62oqP+tqKj/raio/62oqP+ppKT9pqKi+6aiovuQjY3ramho02poaNNhYGDKNjU1pzY1 + Nac2NTWnLi4ucC4uLnAuLi5wLi4uFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFA0UFBQhFBQUISMj + IzowMDCfMDAwnzAwMJ9OTU20Tk1NtE5NTbSIhIThk4+P7JOPj+yinZ33q6am/qumpv6sp6f+raio/62o + qP+tqKj/r6qq/6+qqv+vqqr/0M7O/9DOzv/Qzs7/j4SE/39xcf9/cXH/y8bG//7+/v/+/v7//fz6//v4 + 9f/7+PX/+/f0//nz7v/58+7/+fPu//jy7P/48uz/+PLs//bw6v/27+n/9u/p//bu6P/27uf/9u7n//Xt + 5v/07OT/9Ozk//Tr5P/y6eL/8uni//Lp4v/v5t//7+bf/+/m3//t5N3/7OPd/+zj3f/q4dz/6eDb/+ng + 2//o39r/593Z/+fd2f/m3Nj/5NrW/+Ta1v/k2tb/4tfU/+LX1P/i19T/8Orp//Pv7v/z7+7/v7a2/52Q + kP+dkJD/lIyM/4aFhf+GhYX/kI6O/7axsf+2sbH/trGx/62oqP+tqKj/raio/62oqP+tqKj/raio/6mk + pP2moqL7pqKi+5CNjetqaGjTamho02FgYMo2NTWnNjU1pzY1NacuLi5wLi4ucC4uLnAuLi4WAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAFBQUAxQUFAcUFBQHIyMjDDAwMCAwMDAgMDAwIDo5OTU6OTk1Ojk5NU1M + TGJQTk5tUE5ObVNRUXhVU1N/VVNTf1ZUVH9XVVV/V1VVf1hWVoVcW1ufXFtbn1xbW5+OjY3vjo2N746N + je+AdHT8fW9v/31vb//KxcX//v7+//7+/v/9/Pv/+/n3//v59//7+PX/+fXw//n18P/59fD/+fTu//n0 + 7v/59O7/9/Hs//fx6//38ev/9vDq//bw6f/28On/9u/o//bu5v/27ub/9e3m//Tr5P/06+T/9Ovk//Ho + 4f/x6OH/8ejh/+/m4P/u5d//7uXf/+3k3v/r4t3/6+Ld/+vh3P/p39v/6d/b/+nf2//m3Nj/5tzY/+bc + 2P/k2db/5NnW/+TZ1v/x6+r/9PDv//Tw7//BuLj/n5OT/5+Tk/+elpb/nJub/5ybm/+SkpL2Y2Ji1GNi + YtRjYmLUWFZWhFhWVoRYVlaEV1VVgFZUVH9WVFR/VVNTfVRSUnxUUlJ8TkxMbEA/P1RAPz9UPj09Sy8u + LicvLi4nLy4uJy4uLhYuLi4WLi4uFi4uLgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAADw8PFQ8PDxUPDw8VGxsbQhwcHE0cHBxNHBwcWBwcHF8cHBxfHBwcXx0d + HV8dHR1fIyMjZzU1NYc1NTWHNTU1h3x8fOt8fHzrfHx863xxcft8bm7/fG5u/8rExP/+/v7//v7+//38 + +//7+ff/+/n3//v49v/59fH/+fXx//n18f/59O//+fTv//n07//38u3/9/Hs//fx7P/28Ov/9vDq//bw + 6v/27+n/9u7n//bu5//27uf/9ezl//Xs5f/17OX/8uni//Lp4v/y6eL/8Ofg/+/m4P/v5uD/7eTe/+zj + 3f/s493/6+Ld/+rg3P/q4Nz/6d/b/+fd2f/n3dn/593Z/+Xa1//l2tf/5drX//Hs6v/08O//9PDv/8K5 + uP+glJT/oJSU/6CZmf+hoaH/oaGh/5OTk/RJSUnJSUlJyUlJSckjIyNlIyMjZSMjI2UdHR1gHBwcXxwc + HF8cHBxdHBwcXBwcHFwaGhpMFhYWNBYWFjQVFRUrBAQEBwQEBAcEBAQHAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDw8VDw8PFQ8P + DxUbGxtCHBwcTRwcHE0cHBxYHBwcXxwcHF8cHBxfHR0dXx0dHV8jIyNnNTU1hzU1NYc1NTWHfHx863x8 + fOt8fHzrfHFx+3xubv98bm7/ysTE//7+/v/+/v7//fz7//v59//7+ff/+/j2//n18f/59fH/+fXx//n0 + 7//59O//+fTv//fy7f/38ez/9/Hs//bw6//28Or/9vDq//bv6f/27uf/9u7n//bu5//17OX/9ezl//Xs + 5f/y6eL/8uni//Lp4v/w5+D/7+bg/+/m4P/t5N7/7OPd/+zj3f/r4t3/6uDc/+rg3P/p39v/593Z/+fd + 2f/n3dn/5drX/+Xa1//l2tf/8ezq//Tw7//08O//wrm4/6CUlP+glJT/oJmZ/6Ghof+hoaH/k5OT9ElJ + SclJSUnJSUlJySMjI2UjIyNlIyMjZR0dHWAcHBxfHBwcXxwcHF0cHBxcHBwcXBoaGkwWFhY0FhYWNBUV + FSsEBAQHBAQEBwQEBAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8PDwgPDw8IDw8PCBsbGxocHBwfHBwcHxwcHCMcHBwmHBwcJhwc + HCYdHR0mHR0dJiMjIyoxMTE7MTExOzExMTteXl6hXl5eoV5eXqF1aGjmeGpq93hqavfKxMT8/v7+//7+ + /v/9/Pv//Pr4//z6+P/7+ff/+vby//r28v/69vL/+fXw//n18P/59fD/+PPu//jy7f/48u3/9/Hs//fx + 6//38ev/9vDq//bv6P/27+j/9u7o//bt5v/27eb/9u3m//Pr4//z6+P/8+vj//Ho4v/x6OH/8ejh/+/m + 3//u5d7/7uXe/+3k3v/r4t3/6+Ld/+vh3P/o39r/6N/a/+jf2v/m3Nj/5tzY/+bc2P/y7Ov/9fHw//Xx + 8P/Durr/opaW/6KWlv+RiYnwcnJy2nJyctptbW3CPj4+ZD4+PmQ+Pj5kIyMjKSMjIykjIyMpHR0dJxwc + HCYcHBwmHBwcJRwcHCUcHBwlGhoaHhYWFhUWFhYVFRUVEQQEBAMEBAQDBAQEAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAgQEBAgEBAQIBAQECDMz + M3AzMzNwMzMzcG9iYtd2Z2fxdmdn8cnExPn+/v7//v7+//38/P/8+vj//Pr4//z59//69vP/+vbz//r2 + 8//59fH/+fXx//n18f/48+//+PPu//jz7v/38u3/9/Hs//fx7P/38Ov/9u/p//bv6f/27+n/9u7n//bu + 5//27uf/9Ozk//Ts5P/07OT/8uri//Lp4v/y6eL/8Ofg/+/m3//v5t//7uXe/+zj3f/s493/6+Ld/+ng + 2//p4Nv/6eDb/+fd2f/n3dn/593Z//Lt6//18fD/9fHw/8S8u/+kmJj/pJiY/4V+fuZJSUnBSUlJwUdH + R6EQEBAgEBAQIBAQECABAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAEBAQCBAQECAQEBAgEBAQIMzMzcDMzM3AzMzNwb2Ji13ZnZ/F2Z2fxycTE+f7+ + /v/+/v7//fz8//z6+P/8+vj//Pn3//r28//69vP/+vbz//n18f/59fH/+fXx//jz7//48+7/+PPu//fy + 7f/38ez/9/Hs//fw6//27+n/9u/p//bv6f/27uf/9u7n//bu5//07OT/9Ozk//Ts5P/y6uL/8uni//Lp + 4v/w5+D/7+bf/+/m3//u5d7/7OPd/+zj3f/r4t3/6eDb/+ng2//p4Nv/593Z/+fd2f/n3dn/8u3r//Xx + 8P/18fD/xLy7/6SYmP+kmJj/hX5+5klJScFJSUnBR0dHoRAQECAQEBAgEBAQIAEBAQEBAQEBAQEBAQEB + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAEEBAQFBAQEBQQE + BAUzMzNDMzMzQzMzM0NwYmLGdWVl53VlZefKxMT1/v7+//7+/v/9/fz//Pr5//z6+f/8+vj/+vf0//r3 + 9P/69/T/+vby//r28v/69vL/+fTw//j07//49O//+PPu//jy7f/48u3/9/Hs//fw6v/38Or/9/Dq//bv + 6P/27+j/9u/o//Xt5f/17eX/9e3l//Tr5P/z6uP/8+rj//Ho4f/w5+D/8Ofg/+/m3//u5d7/7uXe/+3k + 3v/q4dz/6uHc/+rh3P/o3tr/6N7a/+je2v/z7uz/9fLw//Xy8P/Gvbz/ppqa/6aamv+LgoLPPj4+iD4+ + Pog9PT1wEBAQExAQEBMQEBATAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNiYq1zYmLYc2Ji2MzG + xu/+/v7//v7+//79/f/9+/v//fv7//37+v/7+fb/+/n2//v59v/79/T/+/f0//v39P/59fL/+fXx//n1 + 8f/59PD/+fTv//n07//58+7/+PLs//jy7P/48uz/9/Dq//fw6v/38Or/9u7n//bu5//27uf/9ezl//Xs + 5f/17OX/8+rj//Lp4v/y6eL/8ejh//Dn4P/w5+D/7+bf/+zj3f/s493/7OPd/+rg3P/q4Nz/6uDc//Tv + 7f/28/H/9vPx/8i/vv+pnJz/qZyc/5WKiq0AAAAyAAAAMgAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAc2JirXNiYthzYmLYzMbG7/7+/v/+/v7//v39//37+//9+/v//fv6//v5 + 9v/7+fb/+/n2//v39P/79/T/+/f0//n18v/59fH/+fXx//n08P/59O//+fTv//nz7v/48uz/+PLs//jy + 7P/38Or/9/Dq//fw6v/27uf/9u7n//bu5//17OX/9ezl//Xs5f/z6uP/8uni//Lp4v/x6OH/8Ofg//Dn + 4P/v5t//7OPd/+zj3f/s493/6uDc/+rg3P/q4Nz/9O/t//bz8f/28/H/yL++/6mcnP+pnJz/lYqKrQAA + ADIAAAAyAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0Y2OtdGNj2HRj + Y9jMxsbv/v7+//7+/v/+/f3//fv7//37+//9+/r/+/n2//v59v/7+fb/+/f0//v39P/79/T/+vby//n1 + 8f/59fH/+fXw//n07//59O//+fPu//jy7P/48uz/+PLs//fw6v/38Or/9/Dq//bu5//27uf/9u7n//Xt + 5v/17OX/9ezl//Tr5P/y6uL/8uri//Lp4v/w5+D/8Ofg//Dn4P/t5N3/7eTd/+3k3f/q4dz/6uHc/+rh + 3P/07+3/9vPx//bz8f/Iv77/qp2d/6qdnf+WioqtAAAAMgAAADIAAAAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHhnZ614Z2fYeGdn2M7IyO/+/v7//v7+//79/f/9/Pv//fz7//38 + +v/8+vj//Pr4//z6+P/7+fb/+/n2//v59v/69/T/+vbz//r28//59fL/+fXx//n18f/59PD/+fPu//nz + 7v/58+7/+PLs//jy7P/48uz/9u/p//bv6f/27+n/9u7n//bu5//27uf/9e3l//Ts5P/07OT/8+vj//Lp + 4v/y6eL/8ejh/+/m3//v5t//7+bf/+zj3f/s493/7OPd//Xx7v/39PL/9/Ty/8rBwP+sn5//rJ+f/5iN + ja0AAAAyAAAAMgAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeGdnrXhn + Z9h4Z2fYzsjI7/7+/v/+/v7//v39//38+//9/Pv//fz6//z6+P/8+vj//Pr4//v59v/7+fb/+/n2//r3 + 9P/69vP/+vbz//n18v/59fH/+fXx//n08P/58+7/+fPu//nz7v/48uz/+PLs//jy7P/27+n/9u/p//bv + 6f/27uf/9u7n//bu5//17eX/9Ozk//Ts5P/z6+P/8uni//Lp4v/x6OH/7+bf/+/m3//v5t//7OPd/+zj + 3f/s493/9fHu//f08v/39PL/ysHA/6yfn/+sn5//mI2NrQAAADIAAAAyAAAAKAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4Z2eteGdn2HhnZ9jOyMjv/v7+//7+/v/+/f3//fz7//38 + +//9/Pr//Pr4//z6+P/8+vj/+/n2//v59v/7+fb/+vf0//r28//69vP/+fXy//n18f/59fH/+fTw//nz + 7v/58+7/+fPu//jy7P/48uz/+PLs//bv6f/27+n/9u/p//bu5//27uf/9u7n//Xt5f/07OT/9Ozk//Pr + 4//y6eL/8uni//Ho4f/v5t//7+bf/+/m3//s493/7OPd/+zj3f/18e7/9/Ty//f08v/KwcD/rJ+f/6yf + n/+YjY2tAAAAMgAAADIAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHxr + a618a2vYfGtr2M/Jye/+/v7//v7+//7+/v/+/f3//v39//79/f/9/Pv//fz7//38+//8+vn//Pr5//z6 + +f/7+Pf/+/j2//v49v/69/X/+vf0//r39P/69vP/+fXx//n18f/59fH/+fTv//n07//59O//9/Hs//fx + 7P/38ez/9vDq//bw6v/28Or/9u/o//bu5//27uf/9u3m//Xs5f/17OX/9Ovk//Lp4v/y6eL/8uni/+/m + 4P/v5uD/7+bg//by7v/49fL/+PXy/83Dwv+woqL/sKKi/5yPj60AAAAyAAAAMgAAACgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfGtrrXxra9h8a2vYz8nJ7/7+/v/+/v7//v7+//79 + /f/+/f3//v39//38+//9/Pv//fz7//z6+f/8+vn//Pr5//v49//7+Pb/+/j2//r39f/69/T/+vf0//r2 + 8//59fH/+fXx//n18f/59O//+fTv//n07//38ez/9/Hs//fx7P/28Or/9vDq//bw6v/27+j/9u7n//bu + 5//27eb/9ezl//Xs5f/06+T/8uni//Lp4v/y6eL/7+bg/+/m4P/v5uD/9vLu//j18v/49fL/zcPC/7Ci + ov+woqL/nI+PrQAAADIAAAAyAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB8a2utfGtr2Hxra9jPycnv/v7+//7+/v/+/v7//v39//79/f/+/f3//fz7//38+//9/Pv//Pr5//z6 + +f/8+vn/+/j3//v49v/7+Pb/+vf1//r39P/69/T/+vbz//n18f/59fH/+fXx//n07//59O//+fTv//fx + 7P/38ez/9/Hs//bw6v/28Or/9vDq//bv6P/27uf/9u7n//bt5v/17OX/9ezl//Tr5P/y6eL/8uni//Lp + 4v/v5uD/7+bg/+/m4P/28u7/+PXy//j18v/Nw8L/sKKi/7Ciov+cj4+tAAAAMgAAADIAAAAoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIFubq2Bbm7YgW5u2NHLy+////////////7+ + /v/+/v7//v7+//7+/v/+/f3//v39//79/f/9/Pv//fz7//38+//7+fj/+/n4//v5+P/7+Pb/+/j2//v4 + 9v/69/T/+vbz//r28//69vL/+fXx//n18f/59fH/+PPu//jz7v/48+7/9/Hs//fx7P/38ez/9vDq//bv + 6f/27+n/9u7o//bu5//27uf/9e3m//Tr5P/06+T/9Ovk//Ho4v/x6OL/8eji//fz7//59vP/+fbz/8/F + xP+zpaX/s6Wl/56Skq0AAAAyAAAAMgAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAgm9vrYJvb9iCb2/Y0svL7/////////////////7+/v/+/v7//v7+//79/f/+/f3//v39//38 + +//9/Pv//fz7//v6+f/7+fj/+/n4//v49//7+Pb/+/j2//v39f/69vP/+vbz//r28//59fH/+fXx//n1 + 8f/48+7/+PPu//jz7v/38ez/9/Hs//fx7P/28Or/9u/p//bv6f/27+j/9u7n//bu5//27ub/9Ozk//Ts + 5P/07OT/8uni//Lp4v/y6eL/+PPw//n28//59vP/0MbF/7Smpv+0pqb/n5OTrQAAADIAAAAyAAAAKAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCb2+tgm9v2IJvb9jSy8vv//////// + /////////v7+//7+/v/+/v7//v39//79/f/+/f3//fz7//38+//9/Pv/+/r5//v5+P/7+fj/+/j3//v4 + 9v/7+Pb/+/f1//r28//69vP/+vbz//n18f/59fH/+fXx//jz7v/48+7/+PPu//fx7P/38ez/9/Hs//bw + 6v/27+n/9u/p//bv6P/27uf/9u7n//bu5v/07OT/9Ozk//Ts5P/y6eL/8uni//Lp4v/48/D/+fbz//n2 + 8//QxsX/tKam/7Smpv+fk5OtAAAAMgAAADIAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIRycq2EcnLYhHJy2NPMzO///////////////////////////////////v7///7+///+ + /v/+/f3//v39//79/f/8+/r//Pv6//z7+v/8+vn//Pn4//z5+P/7+ff/+/j1//v49f/79/T/+vbz//r2 + 8//69vP/+fTw//n08P/59PD/+PPu//jz7v/48+7/+PLs//fx6//38ev/9/Dq//fv6f/37+n/9u/o//Xt + 5v/17eb/9e3m//Tr5P/06+T/9Ovk//j08P/69/T/+vf0/9LIxv+3qKj/t6io/6KVla0AAAAyAAAAMgAA + ACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhnR0rYZ0dNiGdHTY083N7/// + //////////////////////////////////////////////7+/v/+/v7//v7+//38/P/9/Pv//fz7//z7 + +v/8+vn//Pr5//z6+P/7+fb/+/n2//v59v/79/T/+/f0//v39P/59fH/+fXx//n18f/59O//+fTv//n0 + 7//48+3/+PLs//jy7P/48ev/9/Dq//fw6v/38On/9u7n//bu5//27uf/9ezl//Xs5f/17OX/+fXx//r3 + 9P/69/T/08nI/7mqqv+5qqr/pJaWrQAAADIAAAAyAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACGdHSthnR02IZ0dNjTzc3v//////////////////////////////////////// + /////////v7+//7+/v/+/v7//fz8//38+//9/Pv//Pv6//z6+f/8+vn//Pr4//v59v/7+fb/+/n2//v3 + 9P/79/T/+/f0//n18f/59fH/+fXx//n07//59O//+fTv//jz7f/48uz/+PLs//jx6//38Or/9/Dq//fw + 6f/27uf/9u7n//bu5//17OX/9ezl//Xs5f/59fH/+vf0//r39P/Tycj/uaqq/7mqqv+klpatAAAAMgAA + ADIAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIh2dq2IdnbYiHZ22NTO + zu/////////////////////////////////////////////////+/v7//v7+//7+/v/+/fz//fz8//38 + /P/9+/v//Pv6//z7+v/8+vn/+/n3//v59//7+fb/+/j1//v49f/7+PX/+fXy//n18v/59fL/+fXw//n0 + 8P/59PD/+fPu//jy7f/48u3/+PLs//fx6//38ev/9/Dq//bu6P/27uj/9u7o//Xt5v/17eb/9e3m//n1 + 8f/69/T/+vf0/9TKyf+7rKz/u6ys/6WYmK0AAAAyAAAAMgAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAjHl5rYx5ediMeXnY1c/P7/////////////////////////////////// + //////////////////////////////79/f/+/f3//v39//38/P/9/Pv//fz7//37+v/8+vj//Pr4//z6 + +P/7+fb/+/n2//v59v/69vP/+vbz//r28//59fH/+fXx//n18f/59O//+fPu//nz7v/58+3/+PLs//jy + 7P/48ev/9u/p//bv6f/27+n/9u7n//bu5//27uf/+vby//v49f/7+PX/1szK/72urv+9rq7/p5qarQAA + ADIAAAAyAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMeXmtjHl52Ix5 + edjVz8/v/////////////////////////////////////////////////////////////////v39//79 + /f/+/f3//fz8//38+//9/Pv//fv6//z6+P/8+vj//Pr4//v59v/7+fb/+/n2//r28//69vP/+vbz//n1 + 8f/59fH/+fXx//n07//58+7/+fPu//nz7f/48uz/+PLs//jx6//27+n/9u/p//bv6f/27uf/9u7n//bu + 5//69vL/+/j1//v49f/WzMr/va6u/72urv+nmpqtAAAAMgAAADIAAAAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAI16eq2NenrYjXp62NbPz+////////////////////////////// + ///////////////////////////////////+/v7//v39//79/f/+/fz//fz7//38+//9+/r//Pr5//z6 + +f/8+vj/+/n3//v59//7+ff/+vb0//r29P/69vT/+fby//n18v/59fL/+fTw//nz7//58+//+fPu//jy + 7f/48u3/+PLs//bv6v/27+r/9u/q//bu6P/27uj/9u7o//r28v/7+PX/+/j1/9bMy/++r6//vq+v/6ia + mq0AAAAyAAAAMgAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkX19rZF9 + fdiRfX3Y19DQ7/////////////////////////////////////////////////////////////////7+ + /v/+/v7//v7+//79/f/+/f3//v39//79/P/9/Pv//fz7//38+//8+vn//Pr5//z6+f/7+Pb/+/j2//v4 + 9v/69/T/+vf0//r39P/59vL/+fXx//n18f/59fD/+fTv//n07//58+7/9/Hs//fx7P/38ez/9vDq//bw + 6v/28Or/+vf0//v59v/7+fb/2M7N/8Cxsf/AsbH/qp2drQAAADIAAAAyAAAAKAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRfX2tkX192JF9fdjX0NDv//////////////////////// + /////////////////////////////////////////v7+//7+/v/+/v7//v39//79/f/+/f3//v38//38 + +//9/Pv//fz7//z6+f/8+vn//Pr5//v49v/7+Pb/+/j2//r39P/69/T/+vf0//n28v/59fH/+fXx//n1 + 8P/59O//+fTv//nz7v/38ez/9/Hs//fx7P/28Or/9vDq//bw6v/69/T/+/n2//v59v/Yzs3/wLGx/8Cx + sf+qnZ2tAAAAMgAAADIAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJF9 + fa2RfX3YkX192NfQ0O////////////////////////////////////////////////////////////// + ///+/v7//v7+//7+/v/+/f3//v39//79/f/+/fz//fz7//38+//9/Pv//Pr5//z6+f/8+vn/+/j2//v4 + 9v/7+Pb/+vf0//r39P/69/T/+fby//n18f/59fH/+fXw//n07//59O//+fPu//fx7P/38ez/9/Hs//bw + 6v/28Or/9vDq//r39P/7+fb/+/n2/9jOzf/AsbH/wLGx/6qdna0AAAAyAAAAMgAAACgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAloKCrZaCgtiWgoLY2dLS7/////////////////// + //////////////////////////////////////////////////////////////7+/v/+/v7//v7+//7+ + /v/+/f3//v39//79/f/9/Pv//fz7//38+//7+fj/+/n4//v5+P/7+Pb/+/j2//v49v/69/T/+vbz//r2 + 8//69vL/+fXx//n18f/59fD/+PPu//jz7v/48+7/9/Hs//fx7P/38ez/+/f1//z59//8+ff/29DP/8W0 + tP/FtLT/rp+frQAAADIAAAAyAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACWgoKtloKC2JaCgtjZ0tLv//////////////////////////////////////////////////////// + /////////////////////////v7+//7+/v/+/v7//v7+//79/f/+/f3//v39//38+//9/Pv//fz7//v5 + +P/7+fj/+/n4//v49v/7+Pb/+/j2//r39P/69vP/+vbz//r28v/59fH/+fXx//n18P/48+7/+PPu//jz + 7v/38ez/9/Hs//fx7P/79/X//Pn3//z59//b0M//xbS0/8W0tP+un5+tAAAAMgAAADIAAAAoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaCgq2WgoLYloKC2NnS0u////////////// + ///////////////////////////////////////////////////////////////////+/v7//v7+//7+ + /v/+/v7//v39//79/f/+/f3//fz7//38+//9/Pv/+/n4//v5+P/7+fj/+/j2//v49v/7+Pb/+vf0//r2 + 8//69vP/+vby//n18f/59fH/+fXw//jz7v/48+7/+PPu//fx7P/38ez/9/Hs//v39f/8+ff//Pn3/9vQ + z//FtLT/xbS0/66fn60AAAAyAAAAMgAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAmYWFrZmFhdiZhYXY2tPT7/////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////+/v/+/v3//v79//7+ + /f/9+/r//fv6//37+v/8+vn//Pr4//z6+P/7+ff/+/j2//v49v/7+PX/+/f0//v39P/69/T/+fXx//n1 + 8f/59fH/+fTw//n08P/59PD/+/n2//z6+P/8+vj/3NLS/8e4uP/HuLj/sKOjrQAAADIAAAAyAAAAKAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACahoatmoaG2JqGhtjb09Pv//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v/+/v7//v7+//38+//9/Pv//fz7//z6+f/8+vn//Pr5//v5 + +P/7+ff/+/n3//v59v/7+PX/+/j1//v49P/59vL/+fby//n28v/59fH/+fXx//n18f/7+ff//Pr4//z6 + +P/d09L/yLm5/8i5uf+xpKStAAAAMgAAADIAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAJqGhq2ahobYmoaG2NvT0+////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////v7+//7+ + /v/+/v7//fz7//38+//9/Pv//Pr5//z6+f/8+vn/+/n4//v59//7+ff/+/n2//v49f/7+PX/+/j0//n2 + 8v/59vL/+fby//n18f/59fH/+fXx//v59//8+vj//Pr4/93T0v/Iubn/yLm5/7GkpK0AAAAyAAAAMgAA + ACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmoaGrJqGhteahobX2NDQ7/v6 + +v/7+vr/+/r6//v6+v/7+vr/+/r6//v6+v/7+vr/+/r6//v6+v/7+vr/+/r6//v6+v/7+vr/+/r6//v6 + +v/7+vr/+/r6//v6+v/7+vr/+/r6//v6+v/7+vr/+/r6//v6+v/7+fn/+/n5//v5+f/6+Pj/+vj4//r4 + +P/6+Pf/+vj3//r49//6+Pf/+vf2//r39v/69/b/+ff1//n39f/59/X/+fb1//n29f/59vX/+vj3//r4 + 9//6+Pf/29HR/8e3t//Ht7f/sqSkqwAAAC4AAAAuAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACahoasmoaG15qGhtfXzs7v+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n3 + 9//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n3 + 9//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n3 + 9//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//a0ND/xra2/8a2tv+ypKSqAAAAKwAA + ACsAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqGhqyahobXmoaG19fO + zu/59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n3 + 9//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n3 + 9//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n39//59/f/+ff3//n3 + 9//59/f/+ff3/9rQ0P/Gtrb/xra2/7KkpKoAAAArAAAAKwAAACIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAi3l5g4t5eaOLeXmjwLi4wdzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY + 2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY + 2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY + 2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjUxLm50rSkpNC0pKTQo5WViQAA + AB8AAAAfAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSR0dFUkdHVlJH + R1Z/dnZ7kIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCI + iJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCI + iJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCI + iJSQiIiUkIiIlJCIiJSHe3uNgHJyiYBycol5bGxXAAAADAAAAAwAAAAKAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJHR0VSR0dWUkdHVn92dnuQiIiUkIiIlJCIiJSQiIiUkIiIlJCI + iJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCI + iJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCI + iJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlId7e42AcnKJgHJyiXls + bFcAAAAMAAAADAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkdHN1JH + R0VSR0dFfXR0ZI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6G + hniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6G + hniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6G + hniOhoZ4joaGeI6GhniOhoZ4hXl5c35wcG9+cHBvd2pqRwAAAAoAAAAKAAAACAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQBBAQEAQQEBAELCQkGCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkJCwkJCAsJ + CQgLCQkFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQE + BAEEBAQBBAQEAQsJCQYLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQkLCQkICwkJCAsJCQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAQQEBAEEBAQBCwkJBgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCQsJ + CQgLCQkICwkJBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAD////// + /4AAAAAAAAAAAAA///////+AAAAAAAAAAAAAP//////gAAAAAAAAAAAAAAf/////4AAAAAAAAAAAAAAH + /////+AAAAAAAAAAAAAAB//////gAAAAAAAAAAAAAAf/////4AAAAAAAAAAAAAAH/////+AAAAAAAAAA + AAAAB//////gAAAAAAAAAAAAAAf/////4AAAAAAAAAAAAAA//////+AAAAAAAAAAAAAAP//////gAAAA + AAAAAAAAAD///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAP/////AAAAAAAAAAAAAAAAAB///w + AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAA + AD//gAAAAAAAAAAAAAAAAAA//4AAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAA + AAAAAAA//AAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA + AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AA + AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAA + AAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA + AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAHAAAAAAAA + AAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAA + AAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA + AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA + AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAP+AA + AAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAH//AAAAAAAAAAAAAAAAAAB//wAAAAAAAAAAAAAAAAA + Af//gAAAAAAAAAAAAAAAAA///4AAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAD///gAAAAAAAAAAA + AAAAAA////8AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAH//////8AAA + AAAAAAAAD/////////AAAAAAAAAAAA/////////wAAAAAAAAAAAP/////////+AAAAAAAAAH//////// + ///gAAAAAAAAB///////////4AAAAAAAAAf//////////+AAAAAAAAAH///////////gAAAAAAAAB/// + ////////4AAAAAAAAAf//////////+AAAAAAAAAH///////////gAAAAAAAAB///////////4AAAAAAA + AAf//////////+AAAAAAAAAH///////////gAAAAAAAAB///////////4AAAAAAAAAf//////////+AA + AAAAAAAH///////////gAAAAAAAAB///////////4AAAAAAAAAf//////////+AAAAAAAAAH//////// + ///gAAAAAAAAB///////////4AAAAAAAAAf//////////+AAAAAAAAAH///////////gAAAAAAAAB/// + ////////4AAAAAAAAAf//////////+AAAAAAAAAH///////////gAAAAAAAAB///////////4AAAAAAA + AAf//////////+AAAAAAAAAH///////////gAAAAAAAAB///////////4AAAAAAAAAf//////////+AA + AAAAAAAH///////////gAAAAAAAAB///////////4AAAAAAAAAf//////////+AAAAAAAAAH//////// + ///gAAAAAAAAB///////////4AAAAAAAAAf//////////+AAAAAAAAAH///////////gAAAAAAAAB/// + ////////4AAAAAAAAD///////////+AAAAAAAAA////////////gAAAAAAAAP/////8oAAAAQAAAAIAA + AAABACAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABQREQIUEREGOzU1Hj42NiVANzcsQDc3LEA3NyxANzcsQDc3LEA3 + Nyw/NzcsPzY2LD01NSw9NTUsPDU1LDozMyw6MjIsOTIyLDgwMCw3Ly8sNi8vLDUuLiw1Li4sNCwsLDMr + KywyKyssMSoqLDApKSwvKCgsLicnLC4nJywsJiYsKyUlLCskJCwpIyMsKSMjLCghISwnICAsJiAgLCYg + ICwmICAsJiAgLCIdHScgGxseAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEREGFBERDzs1NUo+NzdcQjk5akI5 + OWpCOTlqQjk5akI5OWpCOTlqQTg4akE4OGo/NzdqPjY2aj42Nmo8NDRqPDQ0ajszM2o5MTFqOTExajgw + MGo3Ly9qNi8vajUtLWo0LS1qMywsajIrK2oyKytqMCkpai8oKGovKChqLScnai0mJmosJSVqKiQkaiok + JGopIiJqKCEhaichIWonISFqJyEhaichIWoiHR1fIBsbSwAAAAcAAAADAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCwsDTQs + LCGvo6Oouq+vztLKyuHSysrh0srK4dLKyuHSysrh0srK4dHJyeHRycnh0MfH4c/GxuHPxsbhzcXF4czE + xOHLw8PhysLC4crCwuHIwcHhx8DA4ce/v+HFvr7hxb294cS8vOHCu7vhwru74cG6uuHAubnhv7i44b23 + t+G9t7fhvLa24bu0tOG7tLThubOz4biysuG3sbHht7Gx4bexseG3sbHha19fylRHR58AAAAIAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADYuLgw2Li4etaiovcO3t+rn4OD/5uDg/+bf3//m39//5t/f/+bf3//l3t7/5d7e/+Tc + 3P/j3Nz/49vb/+Ha2v/h2tr/4NjY/9/Y2P/e19f/3dfX/9zW1v/c1dX/2tTU/9rT0//Z0tL/2NHR/9fR + 0f/X0ND/1s/P/9XOzv/Tzc3/083N/9LMzP/Sy8v/0cvL/9DKyv/Pycn/zsjI/9DLy//Pysr/zcjI/3Fm + ZtlUR0enAAAABgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYCBgYGBJ+NjbO1p6fl/v7+//z7+//6+fn/+fj4//n4 + +P/59/f/+Pb2//j29v/49fX/9/T0//f09P/29PT/9vPz//by8v/18fH/9fHx//Tx8f/08fH/9PHx//Pv + 7//z7+//8u/v//Lu7v/y7u7/8e3t//Hs7P/x6+v/8evr//Hr6//w6ur/7+rq/+/q6v/v6en/7ujo/+7o + 6P/49vb/8vHx/+rp6f9tZ2elNS0tcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGAQYGBgKWg4OKsaOjvfr5 + +f/7+vr/+/r6//j29v/49fX/9/X1//bz8//28/P/9vLy//Xx8f/18fH/9PDw//Pv7//y7u7/8u3t//Lt + 7f/x7Oz/8ezs//Ds7P/v6ur/7+np/+7p6f/u6Oj/7ujo/+3m5v/s5eX/7OTk/+vk5P/r4+P/6+Pj/+ri + 4v/p4uL/6OHh/+nh4f/q4uL/9/X1/9rV1f6upaX9amNjaiwmJjcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAERERABgY + GAAhISEAi3h4b62goKL49vb/+vn5//z7+//39PT/9/T0//bz8//08fH/9PHx//Tw8P/z7+//8+/v//Lt + 7f/x7Oz/8Ovr//Dq6v/w6ur/7+np/+7o6P/u6Oj/7Obm/+zm5v/s5eX/6+Tk/+vk5P/q4uL/6eHh/+jg + 4P/n39//59/f/+fe3v/m3d3/5t3d/+Tb2//m3d3/597e//f19f/Kw8P+hXd3/GZbW0IAAAAPGRkZAA0N + DQAGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAACAgIOAgICGBUVFUEbGxtKISEhWDY0NGRwaWmFxre3/+bg4P/8/Pz/+Pb2//j19f/39PT/9fLy//Xy + 8v/08fH/9PDw//Tw8P/z7+//8u7u//Hs7P/w6+v/8Ovr//Dq6v/v6en/7+np/+3n5//t5+f/7Obm/+zl + 5f/s5eX/6+Tk/+ri4v/p4eH/6ODg/+jg4P/n39//597e/+fe3v/l3Nz/6uPj/+7o6P/r6en/vbi4+XNp + afBBPT2CIiIiYRsbG0wTExM7CgoKLwAAABkAAAARAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADMzMwszMzM3T0xMS1tWVlh2cnKBeXV1in14eJiCfX2hl46Otse3t//l39//+fn5//n3 + 9//49vb/9/T0//bz8//18vL/9PHx//Tx8f/08PD/8+/v//Pu7v/x7e3/8ezs//Ds7P/w6ur/8Orq/+/p + 6f/t5+f/7efn/+zm5v/s5ub/7OXl/+vk5P/q4+P/6eLi/+jh4f/o4OD/59/f/+ff3//n3t7/5t3d/+zm + 5v/x7Oz/1tHR/7iysvuKgYH2f3p6s3p2dp56dXWMcGxsemdkZG86OTlZMjExRBMTEyUPDw8KAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMcMzMzillWVqZsZ2e4oJqa4aagoOqup6f4sKmp/bWs + rP7IuLj/49zc//X09P/6+fn/+ff3//j19f/28/P/9vPz//Xy8v/08fH/9PHx//Tw8P/z7+//8u7u//Ht + 7f/x7e3/8Ovr//Dq6v/w6ur/7ujo/+7o6P/t5+f/7Obm/+zm5v/s5eX/6+Tk/+rj4//p4uL/6eHh/+jg + 4P/n39//59/f/+ff3//v6ur/9fHx/7aurv+yqqr/q6Sk/66oqP2up6f5qKGh65WPj9qHgoLPRkVFuDs6 + OpAVFRVUEBAQFgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTFOXFtbe6ikpOHBu7vr0MjI8dzU + 1Pnc1dX73dbW/t7W1v/d1dX/3NHR/9vQ0P/az8//+/r6//r4+P/49vb/9/T0//f09P/28/P/9fLy//Xy + 8v/08fH/9PDw//Pv7//y7u7/8u3t//Hs7P/w6+v/8Ovr/+/p6f/u6Oj/7ujo/+3n5//t5+f/7Obm/+vl + 5f/r5OT/6uPj/+ni4v/p4eH/6ODg/+jg4P/p4eH/8Ozs//Tz8//Dubn/y8LC/9fOzv/c1NT/3dbW/t3V + 1fvZ0dH41s7O9cS+vvGZlZXdR0dHvysrK0AAAAAZAAAAAAAAAAAAAAAAAAAAAAICAgACAgIBNDQ0aGFg + YJq/urr51c/P/OTc3P/p4eH/6eHh/+nh4f/o4OD/5t7e/+DW1v/XzMz/0sXF//r5+f/5+Pj/9/X1//b0 + 9P/28/P/9fLy//Xy8v/08fH/8/Dw//Pw8P/y7u7/8e7u//Ht7f/w7Oz/8Ovr/+/q6v/u6Oj/7ujo/+3n + 5//t5+f/7Obm/+vl5f/r5OT/6uPj/+ni4v/p4uL/6OHh/+jg4P/o4OD/6uPj/+vo6P/t6+v/xLq6/9DH + x//i2dn/6ODg/+nh4f/p4eH/6ODg/+ff3//e19f/rqmp8lxbW982NjZXDg4OKgAAAAAAAAAAAAAAAAAA + AAACAgIBAgICAz8/P4JqaWm12dLS/+Pc3P/q4+P/6uPj/+rj4//q4+P/5N3d/+Ha2v/b09P/08nJ/83D + w//39/f/9vX1//Tz8//y8fH/8vHx//Lw8P/x7+//8e/v//Hu7v/w7e3/7+zs/+7r6//u6+v/7urq/+3p + 6f/t6Oj/6+bm/+vm5v/r5eX/6uTk/+rk5P/p4+P/6OLi/+fh4f/n4OD/5+Dg/+bf3//l3d3/5t/f/+zo + 6P/b1dX/z8nJ/72zs//Lw8P/4dvb/+jh4f/q4+P/6uPj/+rj4//q4+P/6uPj/8jDw/uTkZH0SUlJiiEh + IVkAAAABAAAAAAAAAAAAAAAAFRUVDBUVFR5jYWGdg39/ytrR0f/h2dn/5t7e/+be3v/m3t7/5t7e/8fC + wv+6trb/o5+f/6Gdnf+gm5v/0M/P/9bV1f/e3d3/3Nzc/9zb2//c2tr/3Nra/9va2v/b2dn/29jY/9rY + 2P/Z19f/2dfX/9nW1v/Y1dX/2NXV/9fT0//X09P/19PT/9bS0v/W0tL/1dHR/9TQ0P/U0ND/1M/P/9TO + zv/Tzs7/087O/9XQ0P/b2dn/xcLC/7azs/+Sjo7/npqa/7Ctrf/c1dX/59/f/+be3v/m3t7/5t7e/+be + 3v/Uzc39uLOz+lpYWKkxMTF4AAAACQAAAAQAAAAAAAAAABYWFhMWFhYwdXJyr5GMjNna0dH/39bW/+Pa + 2v/j2tr/49ra/+Pa2v+0sLD/oJ6e/359ff+Af3//goGB/7a1tf/Av7//z87O/83Nzf/Nzc3/zczM/83M + zP/NzMz/zcvL/83Ly//Mysr/y8rK/8vKyv/Lycn/ysjI/8rIyP/Kx8f/ysfH/8nHx//Jxsb/ycbG/8jF + xf/HxMT/x8TE/8fDw//Hw8P/x8PD/8fDw//JxcX/z8/P/7a1tf+lpKT/dnV1/4B/f/+Qj4//1M3N/+Xc + 3P/j2tr/49ra/+Pa2v/j2tr/29PT/9DIyP5iX1+9ODg4jQAAAA4AAAAGAAAAAAAAAAAiIiIjIiIiWJqT + k9iwp6f528/P/9zQ0P/c0ND/3NDQ/9zQ0P/c0ND/t7Gx/5uXl/9RUVH/UVFR/1FRUf+UlJT/pqam/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wMDA/7e3t/+CgoL/X19f/1FR + Uf9hYWH/enh4/8i+vv/c0ND/3NDQ/9zQ0P/c0ND/3NDQ/9bKyv/MwcH/XltbxjY2NpgAAAAYAAAACgAA + AAAAAAAAIiIiJCIiIlubk5PbsKen/NnMzP/Zzc3/2s3N/9rNzf/azc3/2s3N/721tf+gm5v/S0tL/0tL + S/9LS0v/d3d3/4ODg/+VlZX/lZWV/5WVlf+VlZX/lZWV/5WVlf+VlZX/lZWV/5WVlf+VlZX/lZWV/5WV + lf+VlZX/lZWV/5WVlf+VlZX/lZWV/5WVlf+VlZX/lZWV/5WVlf+VlZX/lZWV/5WVlf+VlZX/lZWV/5OT + k/+NjY3/a2tr/1RUVP9LS0v/XVxc/3h2dv/Gu7v/2s3N/9rNzf/azc3/2s3N/9rNzf/Ux8f/y7+//2Rh + Yc1APz+gBgYGIAYGBg0AAAAAAAAAACEhISYhISFfnJOT37Cmpv/WyMj/1sjI/9bIyP/WyMj/1sjI/9bI + yP/Fu7v/qKGh/0NDQ/9DQ0P/Q0ND/0tLS/9NTU3/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FRUf9RUVH/UVFR/1FR + Uf9RUVH/UVFR/1FRUf9RUVH/T09P/0hISP9DQ0P/Q0ND/1dWVv92c3P/w7e3/9bIyP/WyMj/1sjI/9bI + yP/WyMj/0cTE/8m9vf9taWnWTEtLrAoKCi0KCgoSAAAAAAAAAAAjIyMmIyMjYJmRkd+to6P/0sPD/9LD + w//Sw8P/0sPD/9LDw//Sw8P/zL+//7Cmpv9IRkb/SEZG/0hGRv9JSEj/SkhI/0tJSf9LSUn/S0lJ/0tJ + Sf9LSUn/S0lJ/0tJSf9LSUn/S0lJ/0tJSf9LSUn/S0lJ/0tJSf9LSUn/S0lJ/0tJSf9LSUn/S0lJ/0tJ + Sf9LSUn/S0lJ/0tJSf9LSUn/S0lJ/0tJSf9LSUn/S0lJ/0pJSf9JR0f/SEZG/0hGRv9dW1v/fnp6/8G1 + tf/Sw8P/0sPD/9LDw//Sw8P/0sPD/87AwP/Ju7v/gHp65mZiYr8TExNAExMTGgAAAAAFBQUBKSkpKCoq + KmSYj4/grKGh/9DBwf/QwcH/0MHB/9DBwf/QwcH/0MHB/82/v/+4q6v/Y15e/2NeXv9jXl7/Y15e/2Ne + Xv9jXl7/Y15e/2NeXv9jXl7/Y19f/2RfX/9kYGD/ZWBg/2VhYf9lYWH/ZWFh/2ZiYv9mYmL/ZmJi/2Zi + Yv9mYmL/ZmFh/2VhYf9lYWH/ZWBg/2RgYP9kX1//Y15e/2NeXv9jXl7/Y15e/2NeXv9jXl7/Y15e/2Ne + Xv9jXl7/dW9v/4+IiP/DtbX/0MHB/9DBwf/QwcH/0MHB/9DBwf/Nvr7/ybq6/4mBgexwa2vIFxcXSRcX + Fx0AAAAABQUFAzs7Oy89PT1ymI6O46qenv/Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/zLu7/829vf/Ovr7/0sPD/9PFxf/Vx8f/18nJ/9fK + yv/YzMz/2c3N/9nNzf/YzMz/2MzM/9jLy//Wycn/1cjI/9PFxf/RwsL/0MDA/8y7u//Mu7v/zLu7/8y7 + u//Mu7v/zLu7/8y7u//Mu7v/zLu7/8y7u//Lurr/zLu7/8y7u//Mu7v/zLu7/8y7u//Mu7v/yrm5/8i3 + t/+Yj4/2gnt71R4eHloeHh4kAAAAAAUFBQc9PDw5QkBAhZmOjuernp7/ybe3/8m3t//Jt7f/ybe3/8m3 + t//Jt7f/ybe3/8m3t//Jt7f/y7m5/827u//VyMj/18vL/9rPzv/Zw7v/2b6z/9q0ov/ar5b/2quP/96n + hf/hqIT/5amB/+mrg//qrIP/666F/+uvhv/rr4b/666F/+quhf/qrYT/6KuC/+eqgv/hqIP/3qiG/9uo + if/Zr5f/2bSg/9m7rf/ax8H/2svH/9nOzv/Uxsb/0cLC/8q4uP/Kt7f/yba2/8m3t//Jt7f/ybe3/8m3 + t//Jt7f/ybe3/8i2tv/HtLT/nZKS+4iAgNsfHx9jHx8fKAAAAAEFBQUJPz09P0RCQpGZjY3prJ6e/8e0 + tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8u4uP/Nu7v/29HR/9/V1f/k3Nv/4sm8/+HA + rf/jsJH/4qV9/+Keb//mlVz/6pVY//CVU//1l1T/9phU//eaVf/3m1b/95tX//eaVv/3mlb/9plV//SX + U//yl1P/65VX/+aXX//jmGT/4qd//+Kvjf/iu6P/5M/F/+PV0P/h2tr/2c7O/9TGxv/Jtrb/yLW1/8e0 + tP/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/Hs7P/xrKy/6GUlP2Ng4PfICAgaSAgICsAAAABBQUFDUA+ + PklHRUWkmo2N7a2dnf/FsbH/xbGx/8Wxsf/FsbH/ybi4/9DCwv/l39//6+fn/+3q6v/w18b/8squ//aA + Kf/5fyX//X0e//15GP/9dxX//XQP//xyCv/8cAf//G0D//1tAv/+bQD//20A//9tAP//bQD//20A//9t + AP//bQD//20A//9tAP/+bQD//m0A//1tAf/8bgP//G4F//1yC//9dA7//XcS//17Gf/9fBv//X0d/+2J + P//jkVb/2tbW/+Le3v/t6ur/4dnZ/9nOzv/Gs7P/xbKy/8Wxsf/FsbH/xbGx/8Wxsf+jlZX/j4OD4iAg + IG0fHx8tAAAAAgUFBQ5APj5LR0VFp5uOju2vn5//x7S0/8y7u//Pv7//1snJ/9jNzf/c0tL/6OPj/+zo + 6P/t6ur/7dfI/+zKsv/wgiz/9n8i//57FP/+eA///ncM//51Cf/9cwb//XIE//1xAv/+cQH//nEA//9x + AP//cQD//3EA//9xAP//cQD//3EA//9xAP//cQD//3EA//5xAP/+cQH//XEC//1xA//+dAf//nUI//53 + C//+eQ///noQ//16Ef/xijr/6JVU/9/c3P/l4eH/7erq/+bg4P/h2dn/1snJ/9XHx//Uxsb/yba2/8i1 + tf/HtLT/pJaW/4+Dg+IgICBtHx8fLQAAAAIFBQUPPz4+TkdFRaydkJDusaKi/8q4uP/Xycn/39XV//Du + 7v/v7Oz/7enp/+3p6f/t6en/7urq/+jXzP/ky7j/6IUw//GAH///eQX//3cB//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92AP//dgD//3YA//92 + AP//dgD//3YA//92AP//dgD//3YA//92AP/+dgD/9owx//CbUv/n5OT/6ebm/+3p6f/t6en/7enp/+7q + 6v/s6Oj/6+bm/869vf/Mu7v/yri4/6SWlv+Pg4PiHx8fbh4eHi0AAAACBQUFDkJBQUxKSEipr6qq7sjC + wv/q5eX/7enp//Dr6//u6en/7Ojo/+vl5f/r5eX/6+Xl/+vl5f/b0Mv/0MK6/9qbXf/pmkr//5ct//+L + FP//hwv//4IA//+CAP//ggD//4IA//+CAP//ggD//4IA//+CAP//ggD//4IA//+CAP//ggD//4IA//+C + AP//ggD//4IA//+CAP//ggD//4IA//+CAP//ggD//4IA//+CAP/+ggD/+oAC/++WPf/npWX/7erq/+zo + 6P/r5eX/6+Xl/+vl5f/r5eX/6uXl/+rk5P/k3Nz/5Nzc/+Td3f+wp6f/lo6O4h8fH2weHh4tAAAAAgUF + BQ1EQkJKS0pKpLWysu3Py8v/8vDw//Pw8P/08fH/7unp/+zn5//q5eX/6uPj/+nj4//p4+P/18/M/8rB + vP/WpGv/5qVa//+mQf//mCX//5Ma//+LCP//iQT//4gB//+IAf//iAH//4gB//+IAf//iAH//4gB//+I + Af//iAH//4gB//+IAf//iAH//4gB//+IAf//iAH//4gB//+IAf//iAH//4gB//+IAf//iAH//YgB//iG + BP/omUX/3adx/+7q6v/s5+f/6ePj/+nj4//p4+P/6ePj/+nj4//p4+P/6ePj/+rk5P/q5eX/tK2t/5qT + k+EfHx9rHh4eLAAAAAIFBQUKRkZGQk1MTJa7uLjq09DQ//Pv7//z7+//8+/v//Ht7f/v6+v/7Ofn/+jh + 4f/n4OD/5+Dg/9TPz//IxMT/1q94/+a2cf/+wGf//rhW//6ySv/+pCn//psS//6VA//+lQP//pUD//6V + A//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6VA//+lQP//pUD//6V + A//+lQP//pUD//yUBf/ykQz/051Z/7+ljf/q5eX/6ePj/+fg4P/n4OD/5+Dg/+fg4P/n4OD/5+Dg/+fg + 4P/n4OD/5t/f/7q1tf+inZ3gHx8fZh8fHykAAAABBQUFBj8+PjdDQkKCsa6u5snGxv/y7u7/8u7u//Lu + 7v/x7e3/8Ozs/+7q6v/s5+f/6+Xl/+bf3//Z09P/0MvL/923g//qvXz//cRx//7CbP/+wGf//rlX//6z + SP/9rz7//aAa//2gGf/9nxb//Z8W//2fFv/9nxb//Z8W//2fFv/9nxb//Z8W//2fFv/9nxb//Z8W//2f + Fv/9nxb//Z8W//2fFv/9nxb//Z8W//2fFv/7nhj/75kg/8mfaP+wo5j/5uDg/+bf3//l3d3/5d3d/+Xd + 3f/l3d3/5d3d/+Xd3f/l3d3/5Nzc/+Lb2/+xrKz8mZWV2x0dHV4dHR0mAAAAAAUFBQM4ODgwOjo6dKqo + qOPDv7//8e3t//Ht7f/x7e3/8e3t//Ht7f/w7Oz/7+vr/+3o6P/l3t7/29bW/9XQ0P/hvYr/7MGD//3H + eP/+yXr//sl6//7Hdv/9w2z//cBm//2oKv/9pyf//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP/+qQl/+2fLf/CoXL/pqKg/+Tc + 3P/k3Nz/49vb/+Pb2//j29v/49vb/+Pb2//j29v/49vb/+La2v/g2Nj/q6en+ZOQkNgcHBxYHBwcIwAA + AAAAAAAAHh4eJh4eHl+mpKTfv7y8/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+/q6v/v6ur/7+rq/+7q + 6v/t6ur/zrWY/96+lf/1zJH/+9OX//3VmP/91Zj//dWY//3VmP/91Zj//dOU//zQjv/8wmz//L1h//y7 + Wv/7ulj/+7lW//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//i2 + Vf/rsFj/xqyJ/62pqf/g1tb/4NbW/+DW1v/e1NP/3NPQ/9fRyP/b0s7/3dPS/+DW1v/c0tL/1czM/4SA + gOdnZGTBExMTQhMTExoAAAAAAAAAAB4eHiYeHh5fpaKi3766uv/u6en/7unp/+/p6f/v6en/7+np/+/p + 6f/v6en/7+np/+/p6f/v6ur/7+vr/8Kumv/Vu5r/8s6c//rXov/92aT//dmk//3ZpP/92aT//dmk//zY + ov/81p7//M6J//zLg//8yX7/+8d4//vFdP/7wm7/+8Ju//vCbv/7wm3/+8Fs//vBav/7wGr/+8Bp//vA + aP/7wGj/+8Bo//vAaP/2vGf/4atg/8mxk/+5tbX/39TU/9/U1P/f1NT/18/K/9HMwf/Bxaj/zcm6/9XL + x//f1NT/2c/P/9HIyP93c3PcV1VVtBAQEDQQEBAVAAAAAAAAAAAdHR0mHR0dXqOfn967t7f+7efn/+7o + 6P/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/u6Oj/8Ovr//Lt7f+vpJz/yLai/+3SrP/53bT//OC2//zg + tv/84Lb//OC2//zgtv/84Lb//OC2//zgtv/84Lb//N+0//vaqf/716L/+9KV//vSlf/70pT/+9CS//vQ + kf/7zoz/+s2K//rMif/6zIf/+syH//rMh//6zIf/8sSC/9OkbP/OuKL/ysbG/93R0f/d0dH/3dHR/83H + vP/Bwar/oLN4/7m7nf/JwLb/3dHR/9bLy//LwsL/YF5ezDo6Op8GBgYgBgYGDQAAAAAAAAAAGRkZGhkZ + GUJ7eXnBmJSU5+Pe3v/p4+P/7Obm/+zm5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+7o6P/v6en/pKCe/8C3 + rf/q2sP/+ObN//vq0P/76tD/++rQ//vq0P/76tD/++rQ//vq0P/76tD/++rQ//vpz//76M3/++jM//vn + yf/758n/++fJ//vlx//75MX/++PB//riv//64r3/+uG7//rhu//64bv/+uG7/+nQrf+ljXP/ybyy/+Dc + 3P/bzs7/287O/9vOzv/Vy8b/0MjA/8LDq//Mxrn/08jD/9vOzv/RxcX/w7i4/lpXV7oyMjKKBAQECgQE + BAQAAAAAAAAAABgYGBMYGBgwZmVlr4aEhNnf2dn/5+Hh/+zm5v/s5ub/7Obm/+zm5v/s5ub/7Obm/+zm + 5v/t5+f/7efn/6KgoP+6r6T/3sWr/+3Qsf/x07P/8te5//PZvP/z2r7/9N3C//Tdw//13sT/9d/F//Xf + xv/14Mb/9uDH//bhyP/24cj/9uDH//Xgxv/13sP/9d3C//Xbvf/02bn/89i3//LUsf/x06//8dCr/+/O + qP/dvp3/lIV2/8a9t//n4uL/28/P/9zPz//c0ND/2s/N/9fOyv/QzMD/1c7H/9nPy//d0dH/yr+//a2k + pPtTUVGoLS0tdwAAAAQAAAACAAAAAAAAAAACAgICAgICBDQ0NINhYGC11c/P/+Lc3P/r5OT/6+Tk/+vk + 5P/r5OT/6+Tk/+vk5P/r5OT/6+Tk/+vk5P+lo6P/qYx2/7BpMv/CayX/yHAp/86CRv/SjFT/1JNe/9if + cf/aonb/3Kd9/96rg//erYX/36+H/+CyjP/gtJD/4LSQ/+CyjP/frob/3auD/92pgP/bpXn/2aBx/9ic + a//Sjlf/z4ZL/8t6Of/FbCb/tWwz/359fP/Bvbz/7efn/+HX1//i2Nj/49ra/+Xc3P/m3t7/5+Dg/+jh + 4f/o4eH/6OHh/7GsrPlYV1fvMzIycRcXF0EAAAAAAAAAAAAAAAAAAAAAAgICAQICAgIuLi5KT05Od4SC + guS5tLT02dPT/+DZ2f/j3Nz/59/f/+ni4v/q4uL/6uLi/+ri4v/q4uL/ube3/6iXjv+NaFL/1rGV/+jE + qP/oyK7/6cqx/+rMs//r0Lr/69C7/+zSvf/s0r7/7NK+/+rSvv/q0r//6tPA/+fQvv/nz7z/5sy6/+TJ + t//jyLX/4cWx/9/Crf/ev6r/2rih/967ov/jwKX/tYtv/6F+Z/98e3v/v7y7/+zm5v/m3d3/5t3d/+fe + 3v/n39//5t7e/+Ha2v/f2Nj/3dbW/6SgoPmDgIDoR0ZGzjQ0NEMXFxcaAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAHx8fJDIyMk5DQ0PSnJiY7c3Hx//Z0tL/3dbW/+Tc3P/o4OD/6eHh/+nh4f/p4eH/6eHh/8fE + xP+nn5//dmdn/+Pg4P/9/fz/+vf0//n07//48uz/9/Dq//fv6f/27uf/9ezl//Tr5P/y6eL/8ejh//Dn + 4P/s493/6+Ld/+rg3P/o3tr/59zZ/+Xa1//j2NX/4tfU/+DU0v/o3t3/8+7t/6ugoP+TiYn/enp6/767 + u//s5ub/6eHh/+nh4f/p4eH/6ODg/+be3v/d1tb/2dLS/9bPz/90c3P1YF9f3Tg4OLg4ODglAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQHFBQUIS0tLW0wMDCfTk1NtG5sbMqTj4/spqKi+qum + pv6tqKj/rqmp/6+qqv/Qzs7/sKmp/39xcf/l4uL//f38//v49f/69fH/+fPu//jy7P/38ev/9u/p//bu + 5//27ub/9Ozk//Pq4//y6eL/7+bf/+7l3v/s493/6uHb/+nf2//n3dn/5dvX/+Ta1v/i19T/6eHe//Pv + 7v+uo6P/mI6O/4aFhf+jn5//trGx/62oqP+tqKj/raio/6ejo/ycmJjzamho005MTLk2NTWnLi4ucC4u + LkMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUBBQUFBQtLS1BMDAwX0lJ + SXRjYWGLfnp6rIuIiLuPi4u/kIyMv5CMjMmPi4vPsK+v95yVlfp+cHD/5OLi//39/P/7+Pb/+vby//n0 + 7//48+3/+PLs//bw6v/27+n/9u7o//Xt5f/06+T/8+rj//Dn4P/v5t//7eTe/+vi3P/q4dv/6N7a/+bc + 2P/l29f/49jV/+rh3//z7+7/r6Sk/5yRkf+RkJD/kY6O8pCNjemQjIzBkIyMwJCMjL+MiYm8hIGBs15c + XJNJSEh5NTQ0Zy4uLkMuLi4oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAPDw8VGBgYKxwcHE0cHBxbHBwcXx0dHV8tLS13NTU1h3x8fOt8dnbzfG5u/+Th + 4f/9/f3/+/n3//r38//59fH/+fTv//jz7v/38ez/9vDq//bw6f/27uf/9e3m//Xs5f/y6eL/8ejh/+/m + 4P/t5N7/7OLd/+rg3P/o3tr/593Z/+Xa1//r4+H/9PDv/7Gmpv+gl5f/oaGh/3Fxcd9JSUnJIyMjZSAg + IGMcHBxfHBwcXRsbG1QWFhY0ExMTGQQEBAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PBBgYGAkcHBwPHBwcEhwcHBMdHR0TKCgoHCws + LCFMTEyJZFxcs3doaPTk4eH9/v39//z6+P/79/X/+vbz//n18f/59O//+PPu//fx7P/38Ov/9u/p//bu + 5//27uf/9Ovk//Pq4//x6OL/7+bf/+7l3v/s4t3/6uHb/+nf2//n3Nn/7OXi//Xx8P+0qan/mI6O9V9f + X81RUVF6MzMzQiIiIhUgICAUHBwcExwcHBMbGxsRFhYWChMTEwUEBAQBAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAQEBAQEBAQGMzMzWl1UVJR1Zmbs5OHh+/79/f/8+vn/+/j2//r39P/59fL/+fXw//jz + 7//48u3/9/Hs//bw6v/27+j/9u7o//Ts5f/06+T/8+rj//Dn4P/v5t//7eTe/+vi3P/q4dv/6N7a/+3m + 4//18fD/tauq/5iNje1FRUWkOzs7URAQEBoBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzYmJWc2Ji2Obj4/f+/f3//fv7//z6 + +P/7+fb/+/f0//r28//59fH/+fTv//n07v/48uz/9/Hr//fw6v/27uf/9u3m//Xs5f/z6uP/8uni//Dn + 4P/u5d7/7OPd/+rg3P/v6OT/9vPx/7itrf+hlZXWAAAAMgAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmVlVnZl + Zdjm4+P3/v79//38+//8+vn//Pr3//v49f/69/T/+vby//n18f/59PD/+fPt//jy7P/48ev/9u/o//bu + 5//27eb/9Ovk//Pq4//x6OH/7+bf/+7l3v/r4t3/8Onl//f08v+6r6//o5aW1gAAADIAAAAUAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAHhnZ1Z4Z2fY5+Tk9/7+/f/9/Pv//Pv5//z6+P/7+fb/+/j1//r28//59fH/+fXw//nz + 7v/48u3/+PLs//bv6f/27+j/9u7n//Ts5f/06+T/8uni//Dn4P/v5t//7OPd//Dq5f/39PL/u7Cw/6SY + mNYAAAAyAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8a2tWfGtr2Ofk5Pf+/v7//v39//38/P/9/Pv//Pr5//z5 + +P/7+Pb/+vf0//r38//59fH/+fTw//n07//38ez/9/Hr//bw6v/27uj/9u7n//Xs5f/z6uP/8uni/+/m + 4P/z7Of/+PXy/76zsv+omprWAAAAMgAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfm1tVn5tbdjo5eX3/v7+//79 + /f/+/fz//fz8//z7+v/8+vn/+/j3//v49f/69/T/+fXy//n18f/59PD/9/Lt//fx7P/28Ov/9u/o//bu + 5//17eb/9Ovk//Pq4//w5+H/8+3o//j18v/AtLP/qZyc1gAAADIAAAAUAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJv + b1aCb2/Y6ebm9//////+/v7//v39//79/f/9/Pv//Pv6//v5+P/7+Pb/+/j1//r28//59fL/+fXx//jz + 7v/48u3/9/Hs//bv6v/27+n/9u7n//Xt5f/07OT/8uni//Xu6f/59vP/wra1/6yentYAAAAyAAAAFAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACFc3NWhXNz2Orn5/f//////////////////////v79//39/P/9+/r//Pr5//z5 + +P/7+PX/+/f0//v38//59fD/+fTw//nz7v/48uz/9/Hr//fw6f/27uj/9u7m//Tr5P/38Ov/+vf0/8W5 + uP+voaHWAAAAMgAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh3V1Vod1ddjq5+f3//////////////////////7+ + /v/+/f3//fz7//z7+v/8+vn/+/n2//v49f/79/T/+fXx//n18f/59O//+PPt//jy7P/38Or/9u/p//bu + 5//17OX/9/Hr//r39P/Hurn/saOj1gAAADIAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIx5eVaMeXnY6+jo9/// + //////////////////////////7+//79/f/9/Pv//fz6//z6+P/7+ff/+/n2//r28//69vL/+fXx//nz + 7//58+7/+PLs//fw6v/27+n/9u7n//jy7f/7+PX/yb28/7SmptYAAAAyAAAAFAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACPe3tWj3t72Ovo6Pf////////////////////////////+/v/+/v7//v38//38/P/9+/r//Pr5//z6 + +P/79/X/+vf0//r28//59fD/+fTv//nz7v/38ez/9/Dr//bv6f/48+7/+/n2/8u+vv+2qKjWAAAAMgAA + ABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAkX19VpF9fdjs6Oj3/////////////////////////////////v7+//79 + /f/+/f3//fz7//z7+v/8+vn/+/j2//v49f/69/T/+fXy//n18f/59O//+PLt//fx7P/28Or/+PTv//v5 + 9v/Mv7//t6mp1gAAADIAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaCglaWgoLY7enp9/////////////////// + ///////////////////+/v7//v7+//79/f/9/Pz//fz7//v5+P/7+ff/+/j2//r29P/69vP/+fXx//j0 + 7//48+7/9/Hs//n08P/8+ff/0MLB/7ysrNYAAAAyAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYhIRWmISE2O3p + 6ff///////////////////////////////////////////7+/v/+/v7//v39//39/P/8+vn//Pr4//v5 + 9//7+PX/+vf0//r28//59fH/+PTw//jz7v/59fL//Pn3/9HDw/+9ra3WAAAAMgAAABQAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAmoaGVpqGhtjt6ur3//////////////////////////////////////////////////////7+ + /v/+/v7//fz7//37+v/8+vn/+/n3//v59//7+PX/+vfz//n28v/59fH/+vf0//z6+P/Sxsb/v7Cw1gAA + ADIAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJqGhlaahobX6eXl9/r5+f/6+fn/+vn5//r5+f/6+fn/+vn5//r5 + +f/6+fn/+vn5//r5+f/6+Pj/+vj4//r4+P/6+Pj/+vj3//n39//59/f/+ff3//n39v/59/b/+ff2//n3 + 9v/6+Pf/0cTE/76vr9UAAAAsAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTgIBMk4CAvd3X1+Hs6enq7Onp6uzp + 6ers6enq7Onp6uzp6ers6enq7Onp6uzp6ers6enq7Onp6uzp6ers6enq7Onp6uzp6ers6enq7Onp6uzp + 6ers6enq7Onp6uzp6ers6enq7Onp6se6uui2p6fAAAAAJQAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUkdHIlJH + R1aIgICIkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCI + iJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSQiIiUkIiIlJCIiJSDd3eLfXBwcAAAAAwAAAAFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFFGRg5RRkYjfnZ2O4R8fEGEfHxBhHx8QYR8fEGEfHxBhHx8QYR8fEGEfHxBhHx8QYR8 + fEGEfHxBhHx8QYR8fEGEfHxBhHx8QYR8fEGEfHxBhHx8QYR8fEGEfHxBhHx8QYR8fEGEfHxBeW5uPXRn + ZzEAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQABAQEAQsJCQgLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQgLCQkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAf//4AAAAAAAf//gAAAAAAB//+A + AAAAAAH//4AAAAAAAf//gAAAAAAH//+AAAAAAAf//AAAAAAAAA/8AAAAAAAAD/AAAAAAAAAH8AAAAAAA + AAfgAAAAAAAAB4AAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABgAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAeAAAAAAAAAB+AAAAAAAAAP8AAAAAAA + AD/wAAAAAAAAP/8AAAAAAAB//wAAAAAAAH///AAAAAA/////gAAAAf////+AAAAB/////4AAAAH///// + gAAAAf////+AAAAB/////4AAAAH/////gAAAAf////+AAAAB/////4AAAAH/////gAAAAf////+AAAAB + /////4AAAAH/////gAAAAf////+AAAAB/////4AAAAH/////gAAAAf////+AAAAB/////4AAAAH///// + gAAAB///KAAAADAAAABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAA + AAIAAAACAAAAAgAAAAIAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUEREKOTIyMD83N01COTlVQjk5VUI5OVVCOTlVQTg4VUA3 + N1U/NzdVPjY2VTw0NFU7MzNVOjIyVTgwMFU3MDBVNi8vVTUtLVUzLCxVMisrVTEqKlUwKSlVLygoVS0n + J1UsJSVVKyQkVSkjI1UoIiJVJyEhVSchIVUnISFVIx4eTh8bGy8AAAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwKSkXmY6Oc7Cmpra+trbDvra2w762 + tsO+trbDvra2w721tcO8s7PDu7Kyw7mxscO4sLDDt6+vw7aursO0ra3Ds6urw7GqqsOxqanDr6iow66n + p8OtpqbDq6Skw6mjo8Opo6PDqKGhw6egoMOln5/Do52dw6OdncOjnZ3Dc2lptUtAQGkAAAAGAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0LCwTq52dkszB + we7s5+f/6+bm/+vl5f/r5eX/6uTk/+nj4//p4uL/6OHh/+bh4f/l39//5d7e/+Te3v/i3d3/4tzc/+Db + 2//g2tr/39nZ/97Y2P/d19f/3NXV/9vV1f/a1NT/2dPT/9jS0v/X0dH/1tDQ/9rW1v/W0dH/joWF2U5C + QnUAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAGBgYDnIqKfci+vuL8/Pz/+vn5//n39//49vb/+PX1//f19f/39PT/9vPz//Xz8//18fH/9PDw//Tw + 8P/z7+//8+/v//Lt7f/x7e3/8ezs//Ds7P/w6ur/7+np/+/p6f/u6Oj/7ufn/+3n5//t5ub/7ebm//j2 + 9v/d2tr/k46OrTMsLEcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAwMDAAYGBgAi3h4U8e9vbn59/f//Pv7//f09P/28/P/9fLy//Tx8f/08PD/8+/v//Lt + 7f/w6+v/8Orq//Dq6v/v6en/7ujo/+zm5v/s5eX/6+Tk/+vj4//q4uL/6ODg/+ff3//n3t7/5t3d/+Xc + 3P/l3Nz/597e//f19f+ckJD9d2trcAAAAAsQEBAABAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAACAgIFAgICGBUVFUEfHx9TMjAwYZKHh6TRxcX//Pz8//j29v/39PT/9vPz//Xy + 8v/08fH/9PDw//Pv7//x7e3/8Ovr//Dr6//w6ur/7+np/+3n5//s5ub/7OXl/+zl5f/r4+P/6eHh/+jg + 4P/n39//597e/+bd3f/n3t7/7ujo/+vp6f+MhITzVE5OnSAgIFwZGRlGCgoKLwAAABkAAAAJAAAAAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMyxBPz93aWRkmJeRkcGgmprTpJ6e3bSpqezRxMT/9vb2//r4 + +P/49vb/9/T0//Xy8v/18vL/9PHx//Tw8P/y7u7/8e3t//Ds7P/w6+v/8Orq/+7o6P/t5+f/7Obm/+zl + 5f/r5OT/6uPj/+ni4v/o4OD/59/f/+ff3//p4uL/9O/v/8G6uv+nn5/9oZub6qCbm9eYkpLGgHx8r0RD + Q5gmJSVVEhISHwAAAAMAAAAAAAAAAAAAAAAAAAAAMTExLHFvb32dmZnQvLW1487Hx/PRysr60srK/tTL + y//Zzc3/4djY//v6+v/59vb/9/T0//bz8//18vL/9fLy//Tx8f/z7+//8u7u//Ht7f/w6+v/8Ovr/+/p + 6f/u6Oj/7efn/+zm5v/s5eX/6+Tk/+rj4//p4eH/6ODg/+jg4P/r5OT/9PLy/8C2tv/KwcH/0MjI/9HK + yvvOx8f1xb6+7KumpuNcW1uxNDQ0UQAAAA8AAAAAAAAAAAAAAAACAgIBNzc3U4WCgrfMxsb75d7e/+ni + 4v/p4uL/6ODg/+Pb2//c0tL/0cXF//n5+f/39vb/9vT0//Xy8v/08vL/8/Hx//Pw8P/y7u7/8e3t//Ds + 7P/w6+v/7+rq/+3o6P/t5+f/7Obm/+vl5f/r5OT/6ePj/+ni4v/o4eH/59/f/+jh4f/p5OT/5eLi/8K4 + uP/b09P/5t/f/+ni4v/p4eH/6ODg/+Ha2v+EgoLqUFBQhBYWFigAAAAAAAAAAAAAAAASEhIKS0pKa5OP + j83c1dX/6eHh/+nh4f/p4eH/3tjY/9HLy//Gv7//vra2/+rq6v/s6+v/6+vr/+vp6f/q6en/6ujo/+rn + 5//o5ub/5+Xl/+fk5P/n4+P/5uLi/+Tg4P/k39//5N7e/+Pe3v/i3d3/4dvb/+Ha2v/g2tr/39jY/+Lc + 3P/g3Nz/x8LC/6+np//KxMT/39nZ/+ni4v/p4eH/6eHh/+nh4f+vq6v4bGpqrCcnJ0sAAAADAAAAAAAA + AAAWFhYmbWpqj6WgoOLc09P/49ra/+Pa2v/j2tr/wLu7/5eWlv9/fn7/goGB/7a1tf/Kycn/zs3N/83N + zf/NzMz/zczM/83Ly//Mysr/y8rK/8vKyv/Lycn/ysjI/8rHx//Jx8f/ycbG/8nGxv/IxcX/x8TE/8fD + w//Hw8P/x8PD/8rIyP/Hxsb/paSk/3Z1df+Lior/w76+/+Tc3P/j2tr/49ra/+Pa2v/UzMz+hICAzTY2 + Nm0AAAALAAAAAAAAAAAiIiJGjIWFuLuxsfvbz8//3NDQ/9zQ0P/c0ND/wLm5/4mGhv9RUVH/UVFR/5SU + lP+5ubn/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LCwv/CwsL/wsLC/8LC + wv/CwsL/wsLC/8LCwv/CwsL/wsLC/76+vv+lpaX/X19f/1FRUf9ycHD/ta2t/9zQ0P/c0ND/3NDQ/9zQ + 0P/PxMT/f3p61DQ0NHgAAAATAAAAAAAAAAAhISFLjIWFvrqvr/7Xycn/18rK/9fKyv/Xysr/yL29/42J + if9GRkb/RkZG/1paWv9lZWX/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2ho + aP9oaGj/aGho/2hoaP9oaGj/aGho/2hoaP9oaGj/aGho/2ZmZv9eXl7/SUlJ/0ZGRv9ta2v/saen/9fK + yv/Xysr/18rK/9fKyv/MwMD/hYCA3kRDQ4gJCQkhAAAAAAAAAAAjIyNMi4ODv7esrP/TxMT/08TE/9PE + xP/TxMT/zb+//5SNjf9HRUX/R0VF/0pJSf9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xL + S/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9MS0v/TEtL/0xLS/9KSUn/R0VF/0dF + Rf9xbm7/sKam/9PExP/TxMT/08TE/9PExP/Lvr7/kYmJ6VhVVZsSEhIwAAAAAAUFBQEvLy9TioKCwrSo + qP/Pv7//z7+//8+/v//Pv7//zr6+/62hof99dXX/fXV1/311df99dXX/fXV1/311df9+dnb/fnd3/4B5 + ef+Benr/gXt7/4J8fP+CfHz/g319/4J8fP+CfHz/gnt7/4F6ev+AeXn/f3d3/311df99dXX/fXV1/311 + df99dXX/fXV1/311df+Xj4//u66u/8+/v//Pv7//z7+//8+/v//Ku7v/nJOT82tmZqwZGRk+AAAAAAUF + BQQ+Pj5hi4KCybOlpf/Lurr/y7q6/8u6uv/Lurr/y7q6/8u6uv/Lurr/zLu7/8+/v//QwcH/0L+9/9C7 + t//RubL/0riu/9a6rv/avLD/3L+x/97Bs//ewrT/38O1/97CtP/ewbT/3cCy/9q+sP/Xu6//1Liu/9C3 + r//QurX/0b67/9HAwP/QwMD/zr29/8u6uv/Kubn/y7m5/8u6uv/Lurr/y7q6/8u6uv/It7f/pZqa+Xdx + cbkeHh5KAAAAAAUFBQlDQUF2ioCA07Ojo//HtLT/x7S0/8e0tP/HtLT/x7S0/8e0tP/ItbX/zbu7/9vR + 0f/i2tn/4s7E/+K8pv/jrIr/4p5v/+aVXP/ulVX/9JdU//aZVP/3mlX/95tX//eaVv/2mVX/9ZhT//CW + VP/pllr/45hk/+Knf//it5z/48q8/+PW0v/e1tb/1MbG/8m2tv/HtLT/x7S0/8e0tP/HtLT/x7S0/8e0 + tP/GsrL/qpyc/n51dcIgICBUAAAAAQUFBQ1GRESGin9/27Oiov/FsbH/xbGx/8Wxsf/Ov7//4NjY/+vo + 6P/u5N7/8squ//aAKf/8fiD//XoZ//12E//9cw3//HAH//xtA//+bQH//20A//9tAP//bQD//20A//9t + AP//bQD//m0A//5tAP/9bQL//G4F//1yC//9dhH//XoX//18HP/4gSj/45FW/9rW1v/p5ub/5N3d/9TH + x//Gs7P/xbGx/8Wxsf/FsbH/rJyc/4B2dsUgICBYAAAAAgUFBQ9GRESLjIGB3benp//Mu7v/2s7O/+fi + 4v/n4eH/6ubm/+3p6f/s5OD/58u2/+uEL//7fBH//3gH//92BP//dQP//nUB//50Af//dAD//3QA//90 + AP//dAD//3QA//90AP//dAD//3QA//90AP//dAD//nQB//91Av//dgP//3cF//53Bv/7fhX/7ZlT/+Th + 4f/r6Oj/6+fn/+jj4//l3t7/49vb/8y7u//Kt7f/rZ6e/391dcUfHx9YAAAAAgUFBQ5IRkaLmJKS3crC + wv/k3Nz/7Obm/+7q6v/s5+f/6+bm/+vm5v/n4N3/1cS5/92WUv/4kSz//4kU//+CBv//fwD//38A//9/ + AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//9/AP//fwD//38A//1/ + AP/3hRT/6aJg/+zo6P/r5ub/6+bm/+vm5v/r5ub/6uXl/9/U1P/e1NT/ua+v/4R8fMUfHx9XAAAAAgUF + BQxKSUmDo6Cg2dnV1f/z8PD/9PDw/+/q6v/s5ub/6uTk/+ni4v/j3Nv/ysK+/9anbv/2q1H//6M3//+Z + IP//kA3//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+LAf//iwH//4sB//+L + Af//iwH//4sB//uKA//wjx3/1qZ4/+3p6f/q5OT/6eLi/+ni4v/p4uL/6eLi/+ni4v/p4+P/w7y8/4uG + hsMfHx9VAAAAAgUFBQlJSEh0paOj0tjV1f/z7+//8+/v//Ht7f/u6en/6uXl/+jh4f/h29v/y8bG/9iy + fP/2vm7//r1h//60Tf/+qDL//p4X//6ZC//+mAr//pgJ//6YCf/+mAn//pgJ//6YCf/+mAn//pgJ//6Y + Cf/+mAn//pgJ//6YCf/+mAn//pgJ//mWDf/mlyz/uqSR/+nj4//n4OD/5t/f/+bf3//m39//5t/f/+bf + 3//l3t7/w729/o6Li8AeHh5QAAAAAQUFBQM6OjpdmpiYx87Ly//x7e3/8e3t//Ht7f/w7Oz/7+vr/+vm + 5v/i29v/1dDQ/+G9iv/3xXz//sh6//7Ief/+xnP//cBm//2oKv/9piT//aUj//2lI//9pSP//aUj//2l + I//9pSP//aUj//2lI//9pSP//aUj//2lI//9pSP//aUj//ejJ//foET/pqKg/+Tc3P/j29v/49vb/+Pb + 2//j29v/49vb/+Pb2//h2dn/ubOz+4WCgrgcHBxGAAAAAAAAAAAeHh5MlZOTv8vHx//v6ur/7+rq/+/q + 6v/v6ur/7+rq/+/q6v/v6ur/7erq/861mP/tx5L/+tGV//3VmP/91Zj//dWY//3VmP/80ZD//MV0//y9 + X//8u1n/+7lW//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//u4VP/7uFT/+7hU//W1Vv/fr2j/ramp/+DW + 1v/g1tb/3tXU/9vTzv/Y0cr/3dPS/+DW1v/Xzs7/mpSU7V5cXKETExM1AAAAAAAAAAAdHR1Lk5CQvsjE + xP/u6Oj/7ujo/+7o6P/u6Oj/7ujo/+7o6P/v6en/8ezs/7Wnm//jyaT/99ms//zesP/83rD//N6w//ze + sP/83a7//Nup//zZpP/81p//+9GT//vNiP/7zYf/+8yG//vLhP/7yYD/+sh+//rIff/6yH3/+sh9/+y7 + dP/UrHr/xMDA/97S0v/e0tL/1MzF/7/Cp/+yu5L/zcS8/97S0v/Qx8f/hYCA3UBAQIYKCgofAAAAAAAA + AAAbGxs6enh4qbOvr/Hn4uL/7efn/+3n5//t5+f/7efn/+3n5//t5+f/8Orq/6ehnv/dzbf/9eHE//vn + yf/758n/++fJ//vnyf/758n/++fJ//vnyf/75sf/++TB//vivP/74rz/++C6//vft//73bP/+tyw//rc + rv/63K7/+tyu/92+lv+5oIb/29bW/9vPz//bz8//1cvH/8fFs/++wKX/0MbA/9vPz//Jv7//fHd3zzIy + Mm8FBQUNAAAAAAAAAAAXFxceV1ZWhJmWltzf2tr/7OXl/+zl5f/s5eX/7OXl/+zl5f/s5eX/7ebm/6Oh + of/Jq5H/3rSN/+e8lP/pw57/68im/+3Nrv/u0LH/79K0//DTtv/w1Lf/8Na6//DWuv/w1Lf/79K0/+/P + sP/uzKr/7Mmk/+rDm//ovJH/5baJ/8KggP+hlo3/6ePj/93R0f/d0tL/3dLR/9rSzf/X0cr/3dPR/+DV + 1f+nn5/5aGRksikpKVAAAAACAAAAAAAAAAACAgIDMjIyVX16erbEv7/45d7e/+fg4P/p4uL/6uPj/+vj + 4//r4+P/6+Pj/6yqqv+mdlL/v3xH/9OPWf/YnGz/26Z6/96vif/htJD/4reV/+O6mP/ju5v/476g/+K9 + n//huZn/4LaV/96ykP/cron/2qiA/9WccP/Tk2H/xH1G/6J1Uv+UkpH/7efn/+PZ2f/k29v/5t3d/+be + 3v/l3t7/5N3d/9LMzP1ubGzpQUBAghcXFycAAAAAAAAAAAAAAAAAAAAAHx8fGzo6Om9jYmLbzcfH/9nS + 0v/i2tr/59/f/+nh4f/p4eH/6eHh/8fExP+Genr/yMLC//z7+v/69vL/+PLs//fw6v/27uj/9e3m//Tr + 5P/y6eL/8Ofg/+zj3f/q4dz/6N7a/+bc2P/k2db/4tfU/+DU0v/v6ej/vbSz/42Fhf+RkJD/7Obm/+nh + 4f/p4eH/6ODg/+Tc3P/c1dX/1s/P/3Rzc/VHR0fEODg4SgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQU + FA0jIyM6MDAwn05NTbSIhIThop2d96ynp/6tqKj/r6qq/9DOzv+PhIT/y8bG//38+v/79/T/+fPu//jy + 7P/28Or/9u7o//Xt5v/06+T/8uni/+/m3//t5N3/6uHc/+jf2v/m3Nj/5NrW/+LX1P/w6un/v7a2/5SM + jP+Qjo7/trGx/62oqP+tqKj/qaSk/ZCNjethYGDKNjU1py4uLnAuLi4WAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAABQUFAMjIyMMMDAwIDo5OTVNTExiU1FReFZUVH9YVlaFXFtbn46Nje+AdHT8ysXF//38 + +//7+PX/+fXw//n07v/38ez/9vDq//bv6P/17eb/9Ovk//Ho4f/v5uD/7eTe/+vh3P/p39v/5tzY/+TZ + 1v/x6+r/wbi4/56Wlv+SkpL2Y2Ji1FhWVoRXVVWAVVNTfU5MTGw+PT1LLy4uJy4uLhYuLi4EAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8PDwgbGxsaHBwcIxwcHCYjIyMqMTExO15e + XqF1aGjmysTE/P38+//7+ff/+vby//n18P/48+7/9/Hs//bw6v/27uj/9u3m//Pr4//x6OL/7+bf/+3k + 3v/r4dz/6N/a/+bc2P/y7Ov/w7q6/5GJifBtbW3CPj4+ZCMjIykdHR0nHBwcJRoaGh4VFRURBAQEAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAEBAQBBAQEBTMzM0NwYmLGysTE9f39/P/8+vj/+vf0//r28v/59PD/+PPu//fx7P/38Or/9u/o//Xt + 5f/06+T/8ejh/+/m3//t5N7/6uHc/+je2v/z7uz/xr28/4uCgs89PT1wEBAQEwEBAQEBAQEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0Y2OtzMbG7/79/f/9+/r/+/n2//v39P/69vL/+fXw//nz + 7v/48uz/9/Dq//bu5//17eb/9Ovk//Lp4v/w5+D/7eTd/+rh3P/07+3/yL++/5aKiq0AAAAoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4Z2etzsjI7/79/f/9/Pr//Pr4//v5 + 9v/69/T/+fXy//n08P/58+7/+PLs//bv6f/27uf/9e3l//Pr4//x6OH/7+bf/+zj3f/18e7/ysHA/5iN + ja0AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8a2utz8nJ7/7+ + /v/+/f3//fz7//z6+f/7+Pf/+vf1//r28//59fH/+fTv//fx7P/28Or/9u/o//bt5v/06+T/8uni/+/m + 4P/28u7/zcPC/5yPj60AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACBbm6t0cvL7/7+/v/+/v7//v39//38+//7+fj/+/j2//r39P/69vL/+fXx//jz7v/38ez/9vDq//bu + 6P/17eb/9Ovk//Ho4v/38+//z8XE/56Skq0AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACEcnKt08zM7/////////////7+//79/f/8+/r//Pr5//v59//79/T/+vbz//n0 + 8P/48+7/+PLs//fw6v/27+j/9e3m//Tr5P/49PD/0sjG/6KVla0AAAAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIdnat1M7O7/////////////////7+/v/+/fz//fv7//z6 + +f/7+fb/+/j1//n18v/59fD/+fPu//jy7P/38Or/9u7o//Xt5v/59fH/1MrJ/6WYmK0AAAAoAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNenqt1s/P7/////////////////// + ///+/v7//v38//37+v/8+vj/+/n3//r29P/59vL/+fTw//nz7v/48uz/9u/q//bu6P/69vL/1szL/6ia + mq0AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRfX2t19DQ7/// + ///////////////////+/v7//v39//79/P/9/Pv//Pr5//v49v/69/T/+fby//n18P/58+7/9/Hs//bw + 6v/69/T/2M7N/6qdna0AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACWgoKt2dLS7////////////////////////////v7+//7+/v/+/f3//fz7//v5+P/7+Pb/+vf0//r2 + 8v/59fD/+PPu//fx7P/79/X/29DP/66fn60AAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACZhYWt2tPT7////////////////////////////////////////v7//v79//37 + +v/8+vn/+/n3//v49f/69/T/+fXx//n08P/7+fb/3NLS/7Cjo60AAAAoAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACahoas2NDQ7/v6+v/7+vr/+/r6//v6+v/7+vr/+/r6//v6 + +v/7+vr/+/r6//v5+f/6+Pj/+vj3//r49//69/b/+ff1//n29f/6+Pf/29HR/7KkpKsAAAAlAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLeXmDwLi4wdzY2NTc2NjU3NjY1NzY + 2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjU3NjY1NzY2NTc2NjUxLm50qOV + lYkAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSR0c3fXR0ZI6G + hniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6GhniOhoZ4joaGeI6G + hniOhoZ4hXl5c3dqakcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAEBAQBCwkJBgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJCQoLCQkKCwkJCgsJ + CQoLCQkKCwkJCgsJCQoLCQkKCwkJCQsJCQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAAAA/wAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/gAAAAD/ + AADwAAAAAAcAAPAAAAAABwAA4AAAAAADAADAAAAAAAMAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA + AAAAAQAAgAAAAAABAACAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA + AAAAAQAAgAAAAAADAADAAAAAAAcAAOAAAAAADwAA4AAAAAAPAAD8AAAAAB8AAP/AAAAD/wAA//gAAB// + AAD/+AAAH/8AAP/4AAAf/wAA//gAAB//AAD/+AAAH/8AAP/4AAAf/wAA//gAAB//AAD/+AAAH/8AAP/4 + AAAf/wAA//gAAB//AAD/+AAAH/8AAP/4AAAf/wAA//gAAB//AAD/+AAAP/8AACgAAAAgAAAAQAAAAAEA + IAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBERATUvLwk9NTUVPTU1Fz01 + NRc9NTUXOzQ0FzoyMhc4MDAXNi8vFzQtLRczLCwXMSoqFy8pKRctJycXLCUlFyokJBcoIiIXJiAgFyUf + HxckHx8XIx0dFR0YGAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqJCQFe3JySJyT + k56knJympJycpqSbm6aimpqmoZiYpp6WlqaclJSmm5OTppmRkaaXj4+mlY6OppOMjKaRioqmj4mJpo2H + h6aMhYWmiYODpomDg6ZwaGidPzY2PgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAp + KQOgkZFl2dHR8/Dt7f/v6+v/7+vr/+7p6f/t6Oj/6+fn/+rl5f/p5OT/6OPj/+bh4f/l4OD/5N/f/+Pd + 3f/i3Nz/4dvb/+Da2v/e2Nj/4t/f/62oqN9GOztIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAABgYGAJB9fT/b1NTX+/r6//f19f/28/P/9fHx//Tw8P/y7u7/8ezs//Dr6//v6ur/7ejo/+3n + 5//s5eX/6uPj/+nh4f/o4OD/59/f/+jg4P/l4eH/jYKCqSMdHRIFBQUAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMzMzEUVCQjJXVFRmYV1dfa6hoc7w7e3/+Pb2//bz8//18vL/9PDw//Pv7//x7Oz/8Ovr/+/p + 6f/t5+f/7Obm/+zl5f/q4uL/6ODg/+ff3//m3d3/7efn/87Jyf11bW3HWVZWdk9MTFUrKioyEBAQDQAA + AAEAAAAAAAAAADExMRRwbm6AnZiYzsG6uvDGv7/8zsLC/+Pc3P/6+fn/9/X1//bz8//18vL/9PDw//Lu + 7v/x7Oz/8Ovr/+7o6P/t5+f/7Obm/+vk5P/p4uL/6ODg/+jg4P/y7u7/vbW1/8O8vP/Fvb33tq+v5oJ+ + fsUzMzNaAAAACAAAAAACAgIAOTk5O6Ofn9Hi2tr+6uLi/+jh4f/h2Nj/0sfH//j39//18/P/9PLy//Pw + 8P/y7+//8O3t/+/r6//u6ur/7efn/+zm5v/r5eX/6ePj/+jh4f/n39//6ePj/+Dc3P/Hvr7/5d3d/+ri + 4v/p4eH/0MrK+2dmZq0bGxshAAAAABYWFghcWlpntq+v6OLa2v/k3Nz/0cvL/5+cnP+Rjo7/x8bG/9bV + 1f/U1NT/1NPT/9TS0v/T0dH/0tDQ/9HPz//Qzc3/0M3N/8/Ly//Oysr/zcnJ/83IyP/Sz8//tbS0/4qH + h/+8uLj/5d3d/+Tc3P/e1tb+mpWV1zExMUcAAAACIiIiEndycpnFurr9287O/9vOzv/KwcH/dnR0/05O + Tv+NjY3/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6urq/+rq6v/q6ur/6am + pv9oaGj/V1ZW/6Camv/bzs7/287O/9jMzP+dlZXkMzIyXAMDAwYiIiITdnBwn8G1tf/Uxsb/1MbG/87B + wf95dHT/RUVF/0tKSv9OTU3/Tk1N/05NTf9OTU3/Tk1N/05NTf9OTU3/Tk1N/05NTf9OTU3/Tk1N/05N + Tf9OTU3/TUxM/0dGRv9QT0//npaW/9TGxv/Uxsb/0sTE/6Oamu5JR0d2EBAQCzExMRd4cnKmva+v/86+ + vv/Ovr7/zb29/62goP+YjY3/mI2N/5iNjf+YjY3/mY6O/5ySkv+dlZX/n5aW/5+Xl/+fl5f/npaW/52U + lP+akJD/mI2N/5iNjf+YjY3/mI2N/5yRkf+6ra3/zr6+/86+vv/Nvb3/raGh+F9aWpAbGxsQNzY2Inlx + cbm6qqr/yLW1/8i1tf/ItbX/yLW1/8y6uv/Zzs7/3s7I/965pf/ep4T/5J5v/+2ga//wo2z/8aVu//Gk + bf/vomv/6aBs/+Ggdf/erpH/3sO1/97S0P/Ux8f/ybe3/8i1tf/ItbX/yLW1/8i1tf+zo6P9aWNjoh8f + HxU3NTUseHBwybqoqP/Jt7f/z8DA/97V1f/s6en/79G8//WAJ//9ehb//XYO//1yB//9bwL//28A//9v + AP//bwD//28A//9vAP/+bwD//W8D//10Cv/9eBH//XsX/+qOSf/g3Nz/6OPj/9bJyf/NvLz/x7Oz/7Wk + pP9rY2OoHh4eFzc2Ni5/eXnMy8DA/+Xd3f/u6+v/7Ofn/+zn5//ezcL/5489//+FEv//fQP//3wA//98 + AP//fAD//3wA//98AP//fAD//3wA//98AP//fAD//3wA//98AP/9fAD/75hJ/+vn5//s5+f/7Ofn/+vm + 5v/ZzMz/wbW1/21mZqgdHR0XPDs7KY2KisTi39//8/Dw/+/q6v/q5OT/6OLi/8/Jx//eq2z//q5J//6d + Jf/+kAb//o8C//6PAv/+jwL//o8C//6PAv/+jwL//o8C//6PAv/+jwL//o8C//mNBv/WoWf/6+bm/+ji + 4v/o4uL/6OLi/+ji4v/Qycn/dnJypR0dHRY3Nzcch4WFsNzY2P/x7e3/8e3t/+7q6v/p4+P/1tHR/+W8 + g//+xXT//sJr//25Vv/9pCH//aId//2iHf/9oh3//aId//2iHf/9oh3//aId//2iHf/9oh3/9J4i/7ih + hf/l3d3/5Nzc/+Tc3P/k3Nz/49vb/8jCwv1zcHCaHBwcEh4eHhN9e3uf1tLS/+/q6v/v6ur/7+rq/+/q + 6v/u6ur/0beY//fRmf/9157//dee//3WnP/8zYj//MNv//vAZ//7vWH/+71h//u9YP/7vF//+7xe//u8 + Xv/us13/va+e/9/V1f/d09L/0c3A/9bOyP/d09P/q6Sk8ExLS3sSEhIMHBwcEHBubpDKxcX57Obm/+3n + 5//t5+f/7efn//Dq6v+3rKL/8ty8//zlw//85cP//OXD//zlw//85ML/++C5//vcr//73K3/+9mp//rX + pP/61qH/+tah/9Wxg//Qxr3/3M/P/9bMyP+9wKP/yMK0/9jMzP+ZkpLhMDAwVQUFBQQWFhYFSEdHWq6q + quPo4eH/6+Xl/+vl5f/r5eX/7OXl/6qfl//Pmm3/3qd3/+O1i//mv5v/6cSi/+rHpv/ryqv/68qr/+rG + pf/owZ7/5ruT/+Gvgf/coWz/qYtx/9fRz//e09P/39XV/93W0v/f19X/0MfH/W1pacEkJCQvAAAAAAIC + AgAoKCgcW1lZn8C6uvje19f/59/f/+ni4v/p4uL/tKyq/6+Yi//y4NL/8d/Q//Hg0v/x4NL/797R/+3d + 0P/p2c3/59XK/+TRxv/hzMD/4Mm9/862qP+Kf3n/1tHR/+ff3//o4OD/4tvb/9vU1P9/fX3tPj09excX + FwYAAAAAAAAAAAAAAAAUFBQQLy8va1xaWp+Tj4/ToJub36GcnOWzr6/8samp//z7+f/59PD/+PLs//bv + 6f/17eb/8+rj/+/m3//r4t3/6N/a/+Xb1//m3Nr/0cnJ/5ONjf+fm5v2oZyc4J6amt19enrDQUBAkC4u + LkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVExwcHDMdHR05MDAwT25ra8evp6f8/Pv6//r2 + 8//59O//9/Hs//bv6f/27eb/8uri/+/m4P/s4t3/6N/a/+nf3f/TzMv/kIuL8FdXV5khISE8HBwcOBkZ + GSkQEBAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQDV05OUa+m + pu79/Pv/+/j2//r28v/49O//+PLs//fw6f/17eX/8+rj/+/m4P/s493/6+Pf/9bPzv97c3OmKSkpIAEB + AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB3ZmYrsqmp6P39/P/8+vj/+/j1//n18v/59O//+PLs//bv6P/17eX/8uri/+/m3//u5uH/2dLQ/4R6 + eoQAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAH1sbCu2rKzo/v7+//38/P/8+vn/+/j2//r28//59PD/9/Hs//bv6f/27eb/8+rj//Hq + 5P/c1NL/iX5+hAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAhHFxK7qwsOj//////v7+//38/P/8+vj/+/j1//r28//48+//9/Hs//fv + 6f/17eb/9O3m/97X1f+NgoKEAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKd3crvbOz6P///////////v7+//38+//8+vj/+/j2//n1 + 8v/59O//+PLs//bv6f/37+n/4drY/5GFhYQAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJB8fCvBtrbo/////////////////v39//38 + +//8+vn/+/f1//n28v/59O//9/Hs//fx7P/j3Nr/lIiIhAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl4ODK8W5uej///////////// + /////////v7+//39/P/7+fj/+/j1//r28//49O//+PPv/+be3f+ZjIyEAAAACgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACahoYrxbq65/38 + /P/9/Pz//fz8//38/P/9/Pz//Pv7//v6+f/7+fj/+vj2//n39P/59vT/5t/e/5yQkIIAAAAJAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9u + bhyil5efyMPDv8jDw7/Iw8O/yMPDv8jDw7/Iw8O/yMPDv8jDw7/Iw8O/yMPDv8jDw7+7srK8i39/WAAA + AAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAT0REBGRcXBp0bW0mdG1tJnRtbSZ0bW0mdG1tJnRtbSZ0bW0mdG1tJnRtbSZ0bW0mdG1tJnBn + ZyRgVVUPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAD/AAAA/wAAAP4AAAA8AA + AAGAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAHAAAAH8AAAB/4AAH//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP8oAAAAEAAAACAA + AAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvZmYWlIyMXJePj16VjY1ekYmJXo2G + hl6JgoJehn9/XoJ8fF5+eHhecmtrXDoxMRIAAAAAAAAAAAAAAAAAAAAAl4eHKujk5PLz7+//8e3t/+7p + 6f/s5+f/6eTk/+fh4f/l3t7/49zc/8bAwOE/NTUXAAAAAAAAAAAxMTEFf3x8ZKOdnbTWzc3z+Pb2//Xy + 8v/y7u7/8Ovr/+3n5//r5OT/6ODg/+vl5f+0ra3wnpiYql1bW1gAAAACTEtLK8nDw+7i2tr/ubOz/+Lh + 4f/k4uL/4uDg/+Dd3f/e2tr/3NfX/9rU1P/U0ND/vLe3/+ff3/+zra3fKSkpG25paVfNwcH+0sXF/2Ff + X/90dHT/fXx8/318fP99fHz/fXx8/318fP99fHz/aGho/3l1df/Xysr/u7Gx9Ds6OjlvaWlmw7Oz/8u5 + uf+2p6f/uq2s/7ufkf/CmYD/yJ2C/8edgf/AmYH/u6OY/7itrP+6qqr/y7q6/72urv1cWFhWb2lpfM2/ + v//i2tr/6dvT//aDI//+eAb//nUA//91AP//dQD//nYB//55B//1hyr/6OPj/97U1P/Ftrb/YlxcX358 + fG7p5eX/7unp/97X1//wt2v//qo7//6ZEP/+mA///pgP//6YD//+mA//35tF/+fg4P/m39//2dLS/mpn + Z1ptbGxU39ra/e7o6P/u6en/3MSk//zesP/826v/+9KU//vNh//7yoP/+smA/9S2j//c0dD/y8e4/8C3 + t/Q9PDw4Pz4+H7WwsN7n4OD/6+Pj/7efjv/px6n/7NC4/+zTvP/pz7n/5cau/9u0lP+4q6L/49ra/97X + 1f+KhobJIyMjDQAAAAArKysfbGlpboWBgZOjnZ3v+/j1//fx7P/17eb/7+bf/+jf2v/d1NP/i4eH4IWB + gYxaWFhhLi4uEgAAAAAAAAAAAAAAAAAAAAAEBAQBoJeXlPz7+f/69vL/+PLs//Xs5f/v5t//4trY/3Ns + bFUBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK+kpIn+/v3//Pr5//r28//38ez/9e3m/+jg + 3P+Bd3dHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3q6uJ//////7+/f/8+vn/+vby//jy + 7P/t5uL/iH19RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvrGxif79/f/+/f3//fz8//v5 + +P/59vP/8Oro/5CEhEYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWJiTa6tbVyurW1crq1 + tXK6tbVyurW1crWurnF+c3MbAAAAAAAAAAAAAAAAAAAAAMADAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACAAQAA4AcAAPAPAADwDwAA8A8AAPAPAAA= + + + \ No newline at end of file diff --git a/Dokumentation/Drucken/frmPrint.vb b/Dokumentation/Drucken/frmPrint.vb new file mode 100644 index 0000000..a3b79c4 --- /dev/null +++ b/Dokumentation/Drucken/frmPrint.vb @@ -0,0 +1,47 @@ +Public Class frmPrint + Property ds As DataSet = Nothing + Property Druckart As String = "HostListe" + Property DruckeZugangsdaten As Boolean = False + + Private Sub CmdPrint_Click(sender As Object, e As EventArgs) Handles CmdPrint.Click + + If ChkDHCPDrucken.Checked = False Then deleteDHCPHostsFromDS(ds) + Dim dt As DataTable = Class1.OrderDataTableby(ds.Tables(0), "HOST ASC") + + Dim PrintAR As New frmPrintActiveReports + PrintAR.DHCPAndrucken = ChkDHCPDrucken.Checked + PrintAR.dt = dt + PrintAR.DruckArt = Me.Druckart + PrintAR.Show() + End Sub + + Private Sub deleteDHCPHostsFromDS(ds As DataSet) + + For Each row As DataRow In ds.Tables(0).Select() + If Not row.Item("DHCP") = "0" Then + row.Delete() + End If + Next + ds.Tables(0).AcceptChanges() + End Sub + + Private Sub CheckedListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles rdbHostCheckListe.CheckedChanged, rdbHostListe.CheckedChanged + 'If rdbHostListe.Checked And Me.DruckeZugangsdaten = False Then Druckart = "HostListe" + 'If rdbHostListe.Checked And Me.DruckeZugangsdaten = True Then Druckart = "HostListeMitZugangsdaten" + 'If rdbHostCheckListe.Checked Then Druckart = "HostCheckListe" + rptSelectinator() + End Sub + + Private Function rptSelectinator() + If rdbHostListe.Checked And Me.DruckeZugangsdaten = False Then Druckart = "HostListe" : lblZugangsdatenDruckWarnung.Visible = Me.DruckeZugangsdaten + If rdbHostListe.Checked And Me.DruckeZugangsdaten = True Then Druckart = "HostListeMitZugangsdaten" : lblZugangsdatenDruckWarnung.Visible = Me.DruckeZugangsdaten + If rdbHostCheckListe.Checked Then Druckart = "HostCheckListe" : lblZugangsdatenDruckWarnung.Visible = False + + End Function + + Private Sub frmPrint_Load(sender As Object, e As EventArgs) Handles Me.Load + rptSelectinator() + 'If Me.DruckeZugangsdaten = True Then lblZugangsdatenDruckWarnung.Visible = True + + End Sub +End Class \ No newline at end of file diff --git a/Dokumentation/Drucken/frmPrintActiveReports.Designer.vb b/Dokumentation/Drucken/frmPrintActiveReports.Designer.vb new file mode 100644 index 0000000..6145406 --- /dev/null +++ b/Dokumentation/Drucken/frmPrintActiveReports.Designer.vb @@ -0,0 +1,81 @@ + _ +Partial Class frmPrintActiveReports + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.Viewer1 = New GrapeCity.ActiveReports.Viewer.Win.Viewer() + Me.SuspendLayout() + ' + 'Viewer1 + ' + Me.Viewer1.CurrentPage = 0 + Me.Viewer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Viewer1.Location = New System.Drawing.Point(0, 0) + Me.Viewer1.Name = "Viewer1" + Me.Viewer1.PreviewPages = 0 + ' + ' + ' + ' + ' + ' + Me.Viewer1.Sidebar.ParametersPanel.ContextMenu = Nothing + Me.Viewer1.Sidebar.ParametersPanel.Text = "Parameters" + Me.Viewer1.Sidebar.ParametersPanel.Width = 200 + ' + ' + ' + Me.Viewer1.Sidebar.SearchPanel.ContextMenu = Nothing + Me.Viewer1.Sidebar.SearchPanel.Text = "Search results" + Me.Viewer1.Sidebar.SearchPanel.Width = 200 + ' + ' + ' + Me.Viewer1.Sidebar.ThumbnailsPanel.ContextMenu = Nothing + Me.Viewer1.Sidebar.ThumbnailsPanel.Text = "Page thumbnails" + Me.Viewer1.Sidebar.ThumbnailsPanel.Width = 200 + Me.Viewer1.Sidebar.ThumbnailsPanel.Zoom = 0.1R + ' + ' + ' + Me.Viewer1.Sidebar.TocPanel.ContextMenu = Nothing + Me.Viewer1.Sidebar.TocPanel.Expanded = True + Me.Viewer1.Sidebar.TocPanel.Text = "Document map" + Me.Viewer1.Sidebar.TocPanel.Width = 200 + Me.Viewer1.Sidebar.Width = 200 + Me.Viewer1.Size = New System.Drawing.Size(1264, 921) + Me.Viewer1.TabIndex = 0 + ' + 'frmPrintActiveReports + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1264, 921) + Me.Controls.Add(Me.Viewer1) + Me.Name = "frmPrintActiveReports" + Me.Text = "frmPrintActiveReports" + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents Viewer1 As GrapeCity.ActiveReports.Viewer.Win.Viewer +End Class diff --git a/Dokumentation/Drucken/frmPrintActiveReports.resx b/Dokumentation/Drucken/frmPrintActiveReports.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Dokumentation/Drucken/frmPrintActiveReports.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Dokumentation/Drucken/frmPrintActiveReports.vb b/Dokumentation/Drucken/frmPrintActiveReports.vb new file mode 100644 index 0000000..ebd00d8 --- /dev/null +++ b/Dokumentation/Drucken/frmPrintActiveReports.vb @@ -0,0 +1,49 @@ +Public Class frmPrintActiveReports + + Property DruckArt As String = "" + Property DHCPAndrucken As Boolean = False + Public dt As DataTable + + Private Sub tsbPDF_Click(sender As Object, e As EventArgs) + 'Dim Dateiname As String + Dim savefiledialog As New SaveFileDialog + savefiledialog.Filter = "PDF files (*.pdf)|*.PDF" + savefiledialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal) + savefiledialog.ShowDialog() + + Dim p As New GrapeCity.ActiveReports.Export.Pdf.Section.PdfExport + If savefiledialog.FileName <> "" Then p.Export(Viewer1.Document, savefiledialog.FileName) + + If System.IO.File.Exists(savefiledialog.FileName) = True Then Process.Start(savefiledialog.FileName) + End Sub + + Private Sub frmPrintActiveReports_Load(sender As Object, e As EventArgs) Handles Me.Load + Dim tsbPDF As New ToolStripButton("PDF") + tsbPDF.Image = My.Resources.pdf512 + Viewer1.Toolbar.MainBar.Items.Insert(5, tsbPDF) + + Print() + End Sub + + Private Sub Print() + + Select Case DruckArt + Case "HostListe" + Dim Report As New rptHostListe + Report.dt = Me.dt + Report.DHCPAndrucken = Me.DHCPAndrucken + Viewer1.LoadDocument(Report) + Case "HostCheckListe" + Dim Report As New rptHostCheckListe + Report.dt = Me.dt + Report.DHCPAndrucken = Me.DHCPAndrucken + Viewer1.LoadDocument(Report) + Case "HostListeMitZugangsdaten" + Dim Report As New rptHostListeMitZugangsdaten + Report.dt = Me.dt + Report.DHCPAndrucken = Me.DHCPAndrucken + Viewer1.LoadDocument(Report) + End Select + + End Sub +End Class \ No newline at end of file diff --git a/Dokumentation/Drucken/rptHostCheckListe.Designer.vb b/Dokumentation/Drucken/rptHostCheckListe.Designer.vb new file mode 100644 index 0000000..506d8be --- /dev/null +++ b/Dokumentation/Drucken/rptHostCheckListe.Designer.vb @@ -0,0 +1,350 @@ + +Partial Public Class rptHostCheckListe + Inherits GrapeCity.ActiveReports.SectionReport + + 'Form overrides dispose to clean up the component list. + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing Then + End If + MyBase.Dispose(disposing) + End Sub + + 'NOTE: The following procedure is required by the ActiveReports Designer + 'It can be modified using the ActiveReports Designer. + 'Do not modify it using the code editor. + Private WithEvents PageHeader As GrapeCity.ActiveReports.SectionReportModel.PageHeader + Private WithEvents Detail As GrapeCity.ActiveReports.SectionReportModel.Detail + Private WithEvents PageFooter As GrapeCity.ActiveReports.SectionReportModel.PageFooter + + Private Sub InitializeComponent() + Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(rptHostCheckListe)) + Me.PageHeader = New GrapeCity.ActiveReports.SectionReportModel.PageHeader() + Me.TextBox8 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.Detail = New GrapeCity.ActiveReports.SectionReportModel.Detail() + Me.txtFQDN = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtIPAdresse = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtModell = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtStandort = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtInfo = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.PageFooter = New GrapeCity.ActiveReports.SectionReportModel.PageFooter() + Me.ReportInfo1 = New GrapeCity.ActiveReports.SectionReportModel.ReportInfo() + Me.GroupHeader1 = New GrapeCity.ActiveReports.SectionReportModel.GroupHeader() + Me.TextBox1 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox2 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox3 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox4 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox5 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox7 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.GroupFooter1 = New GrapeCity.ActiveReports.SectionReportModel.GroupFooter() + Me.Shape1 = New GrapeCity.ActiveReports.SectionReportModel.Shape() + Me.Shape2 = New GrapeCity.ActiveReports.SectionReportModel.Shape() + Me.Shape3 = New GrapeCity.ActiveReports.SectionReportModel.Shape() + Me.TextBox9 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox10 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.Line1 = New GrapeCity.ActiveReports.SectionReportModel.Line() + CType(Me.TextBox8, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtFQDN, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtIPAdresse, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtModell, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtStandort, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtInfo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ReportInfo1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox7, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox9, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox10, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me, System.ComponentModel.ISupportInitialize).BeginInit() + ' + 'PageHeader + ' + Me.PageHeader.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.TextBox8}) + Me.PageHeader.Height = 0.3333333! + Me.PageHeader.Name = "PageHeader" + ' + 'TextBox8 + ' + Me.TextBox8.Height = 0.2! + Me.TextBox8.Left = 0! + Me.TextBox8.Name = "TextBox8" + Me.TextBox8.Style = "font-size: 11.25pt; font-weight: bold; text-align: center" + Me.TextBox8.Text = "Hosts Checkliste" + Me.TextBox8.Top = 0.05118111! + Me.TextBox8.Width = 10.90551! + ' + 'Detail + ' + Me.Detail.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.txtFQDN, Me.txtIPAdresse, Me.txtModell, Me.txtStandort, Me.txtInfo, Me.Shape1, Me.Shape2, Me.Shape3, Me.Line1}) + Me.Detail.Height = 0.4166667! + Me.Detail.KeepTogether = True + Me.Detail.Name = "Detail" + ' + 'txtFQDN + ' + Me.txtFQDN.Height = 0.2! + Me.txtFQDN.Left = 0! + Me.txtFQDN.Name = "txtFQDN" + Me.txtFQDN.Style = "font-size: 9pt" + Me.txtFQDN.Text = "FQDN" + Me.txtFQDN.Top = 0! + Me.txtFQDN.Width = 1.574803! + ' + 'txtIPAdresse + ' + Me.txtIPAdresse.Height = 0.2! + Me.txtIPAdresse.Left = 1.574803! + Me.txtIPAdresse.Name = "txtIPAdresse" + Me.txtIPAdresse.Style = "font-size: 9pt" + Me.txtIPAdresse.Text = "IP" + Me.txtIPAdresse.Top = 0! + Me.txtIPAdresse.Width = 1.082677! + ' + 'txtModell + ' + Me.txtModell.Height = 0.2! + Me.txtModell.Left = 2.65748! + Me.txtModell.Name = "txtModell" + Me.txtModell.Style = "font-size: 9pt" + Me.txtModell.Text = "Modell" + Me.txtModell.Top = 0! + Me.txtModell.Width = 1.574803! + ' + 'txtStandort + ' + Me.txtStandort.Height = 0.2! + Me.txtStandort.Left = 4.232284! + Me.txtStandort.Name = "txtStandort" + Me.txtStandort.Style = "font-size: 9pt" + Me.txtStandort.Text = "Standort" + Me.txtStandort.Top = 0! + Me.txtStandort.Width = 1.574803! + ' + 'txtInfo + ' + Me.txtInfo.Height = 0.3937008! + Me.txtInfo.Left = 6.974803! + Me.txtInfo.Name = "txtInfo" + Me.txtInfo.Style = "font-size: 9pt" + Me.txtInfo.Text = "Info" + Me.txtInfo.Top = 0! + Me.txtInfo.Width = 3.93071! + ' + 'PageFooter + ' + Me.PageFooter.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.ReportInfo1}) + Me.PageFooter.Height = 0.2291667! + Me.PageFooter.Name = "PageFooter" + ' + 'ReportInfo1 + ' + Me.ReportInfo1.FormatString = "Seite {PageNumber} / {PageCount}" + Me.ReportInfo1.Height = 0.2! + Me.ReportInfo1.Left = 9.905513! + Me.ReportInfo1.Name = "ReportInfo1" + Me.ReportInfo1.Style = "text-align: right" + Me.ReportInfo1.Top = 0! + Me.ReportInfo1.Width = 1.0! + ' + 'GroupHeader1 + ' + Me.GroupHeader1.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox4, Me.TextBox5, Me.TextBox7, Me.TextBox9, Me.TextBox10}) + Me.GroupHeader1.Name = "GroupHeader1" + Me.GroupHeader1.RepeatStyle = GrapeCity.ActiveReports.SectionReportModel.RepeatStyle.OnPage + ' + 'TextBox1 + ' + Me.TextBox1.Height = 0.2! + Me.TextBox1.Left = 0! + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox1.Text = "FQDN" + Me.TextBox1.Top = 0.025! + Me.TextBox1.Width = 1.574803! + ' + 'TextBox2 + ' + Me.TextBox2.Height = 0.2! + Me.TextBox2.Left = 1.574803! + Me.TextBox2.Name = "TextBox2" + Me.TextBox2.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox2.Text = "IP" + Me.TextBox2.Top = 0.025! + Me.TextBox2.Width = 1.082677! + ' + 'TextBox3 + ' + Me.TextBox3.Height = 0.2! + Me.TextBox3.Left = 2.65748! + Me.TextBox3.Name = "TextBox3" + Me.TextBox3.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox3.Text = "Modell" + Me.TextBox3.Top = 0.025! + Me.TextBox3.Width = 1.574803! + ' + 'TextBox4 + ' + Me.TextBox4.Height = 0.2! + Me.TextBox4.Left = 4.232283! + Me.TextBox4.Name = "TextBox4" + Me.TextBox4.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox4.Text = "Standort" + Me.TextBox4.Top = 0.025! + Me.TextBox4.Width = 1.574803! + ' + 'TextBox5 + ' + Me.TextBox5.Height = 0.2! + Me.TextBox5.Left = 5.807087! + Me.TextBox5.Name = "TextBox5" + Me.TextBox5.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold; text-align: cent" & + "er" + Me.TextBox5.Text = "1" + Me.TextBox5.Top = 0.025! + Me.TextBox5.Width = 0.3637797! + ' + 'TextBox7 + ' + Me.TextBox7.Height = 0.2! + Me.TextBox7.Left = 6.974803! + Me.TextBox7.Name = "TextBox7" + Me.TextBox7.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox7.Text = "Info" + Me.TextBox7.Top = 0.025! + Me.TextBox7.Width = 3.930712! + ' + 'GroupFooter1 + ' + Me.GroupFooter1.Height = 0! + Me.GroupFooter1.Name = "GroupFooter1" + ' + 'Shape1 + ' + Me.Shape1.Height = 0.1574803! + Me.Shape1.Left = 5.905512! + Me.Shape1.LineWeight = 3.0! + Me.Shape1.Name = "Shape1" + Me.Shape1.RoundingRadius = New GrapeCity.ActiveReports.Controls.CornersRadius(10.0!, Nothing, Nothing, Nothing, Nothing) + Me.Shape1.Top = 0.01968504! + Me.Shape1.Width = 0.1574802! + ' + 'Shape2 + ' + Me.Shape2.Height = 0.1574803! + Me.Shape2.Left = 6.299212! + Me.Shape2.LineWeight = 3.0! + Me.Shape2.Name = "Shape2" + Me.Shape2.RoundingRadius = New GrapeCity.ActiveReports.Controls.CornersRadius(10.0!, Nothing, Nothing, Nothing, Nothing) + Me.Shape2.Top = 0.01968504! + Me.Shape2.Width = 0.1574802! + ' + 'Shape3 + ' + Me.Shape3.Height = 0.1574803! + Me.Shape3.Left = 6.692914! + Me.Shape3.LineWeight = 3.0! + Me.Shape3.Name = "Shape3" + Me.Shape3.RoundingRadius = New GrapeCity.ActiveReports.Controls.CornersRadius(10.0!, Nothing, Nothing, Nothing, Nothing) + Me.Shape3.Top = 0.01968504! + Me.Shape3.Width = 0.1574802! + ' + 'TextBox9 + ' + Me.TextBox9.Height = 0.2! + Me.TextBox9.Left = 6.170866! + Me.TextBox9.Name = "TextBox9" + Me.TextBox9.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold; text-align: cent" & + "er" + Me.TextBox9.Text = "2" + Me.TextBox9.Top = 0.02519685! + Me.TextBox9.Width = 0.4334646! + ' + 'TextBox10 + ' + Me.TextBox10.Height = 0.2! + Me.TextBox10.Left = 6.604331! + Me.TextBox10.Name = "TextBox10" + Me.TextBox10.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold; text-align: cent" & + "er" + Me.TextBox10.Text = "3" + Me.TextBox10.Top = 0.02480315! + Me.TextBox10.Width = 0.3704726! + ' + 'Line1 + ' + Me.Line1.Height = 0! + Me.Line1.Left = 0.3937008! + Me.Line1.LineWeight = 1.0! + Me.Line1.Name = "Line1" + Me.Line1.Top = 0.3937008! + Me.Line1.Width = 10.11811! + Me.Line1.X1 = 0.3937008! + Me.Line1.X2 = 10.51181! + Me.Line1.Y1 = 0.3937008! + Me.Line1.Y2 = 0.3937008! + ' + 'rptHostCheckListe + ' + Me.MasterReport = False + Me.PageSettings.Margins.Bottom = 0.3937008! + Me.PageSettings.Margins.Left = 0.3937008! + Me.PageSettings.Margins.Right = 0.3937008! + Me.PageSettings.Margins.Top = 0.3937008! + Me.PageSettings.Orientation = GrapeCity.ActiveReports.Document.Section.PageOrientation.Landscape + Me.PageSettings.PaperHeight = 11.0! + Me.PageSettings.PaperWidth = 8.5! + Me.PrintWidth = 10.90551! + Me.Sections.Add(Me.PageHeader) + Me.Sections.Add(Me.GroupHeader1) + Me.Sections.Add(Me.Detail) + Me.Sections.Add(Me.GroupFooter1) + Me.Sections.Add(Me.PageFooter) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Arial; font-style: normal; text-decoration: none; font-weight: norma" & + "l; font-size: 10pt; color: Black; ddo-char-set: 204", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-size: 16pt; font-weight: bold", "Heading1", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Times New Roman; font-size: 14pt; font-weight: bold; font-style: ita" & + "lic", "Heading2", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-size: 13pt; font-weight: bold", "Heading3", "Normal")) + CType(Me.TextBox8, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtFQDN, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtIPAdresse, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtModell, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtStandort, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtInfo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ReportInfo1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox7, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox9, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox10, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me, System.ComponentModel.ISupportInitialize).EndInit() + + End Sub + + Private WithEvents txtFQDN As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtIPAdresse As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtModell As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtStandort As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtInfo As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents GroupHeader1 As GrapeCity.ActiveReports.SectionReportModel.GroupHeader + Private WithEvents TextBox1 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox2 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox3 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox4 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox5 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox7 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents GroupFooter1 As GrapeCity.ActiveReports.SectionReportModel.GroupFooter + Private WithEvents TextBox8 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents ReportInfo1 As GrapeCity.ActiveReports.SectionReportModel.ReportInfo + Private WithEvents Shape1 As GrapeCity.ActiveReports.SectionReportModel.Shape + Private WithEvents Shape2 As GrapeCity.ActiveReports.SectionReportModel.Shape + Private WithEvents Shape3 As GrapeCity.ActiveReports.SectionReportModel.Shape + Private WithEvents Line1 As GrapeCity.ActiveReports.SectionReportModel.Line + Private WithEvents TextBox9 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox10 As GrapeCity.ActiveReports.SectionReportModel.TextBox +End Class diff --git a/Dokumentation/Drucken/rptHostCheckListe.resx b/Dokumentation/Drucken/rptHostCheckListe.resx new file mode 100644 index 0000000..e8cbd0f --- /dev/null +++ b/Dokumentation/Drucken/rptHostCheckListe.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 0 + + + 0, 0 + + \ No newline at end of file diff --git a/Dokumentation/Drucken/rptHostCheckListe.vb b/Dokumentation/Drucken/rptHostCheckListe.vb new file mode 100644 index 0000000..9d92582 --- /dev/null +++ b/Dokumentation/Drucken/rptHostCheckListe.vb @@ -0,0 +1,33 @@ +Imports GrapeCity.ActiveReports +Imports GrapeCity.ActiveReports.Document + +Public Class rptHostCheckListe + + Public dt As DataTable + Property DHCPAndrucken As Boolean = Nothing + Public counter As Integer = 0 + Public AltColor As Color = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) + + Private Sub Detail_Format(sender As Object, e As EventArgs) Handles Detail.Format + + txtFQDN.Text = Class1.DBNull2emptyString(Fields.Item("FQDN").Value) + txtIPAdresse.Text = Fields.Item("IPAdresse").Value + txtModell.Text = Class1.DBNull2emptyString(Fields.Item("Modell").Value) + txtStandort.Text = Class1.DBNull2emptyString(Fields.Item("Standort").Value) + txtInfo.Text = "" + ' If Not Fields.Item("DHCP").Value = "0" And DHCPAndrucken = True Then txtFQDN.Text = Class1.DBNull2emptyString(Fields.Item("FQDN").Value) 'txtFQDN.Text = "DHCP Bereich" + + counter = counter + 1 + + If counter Mod 2 = 0 Then + Detail.BackColor = Color.Transparent + Else + Detail.BackColor = AltColor + End If + + End Sub + + Private Sub rptHostCheckListe_ReportStart(sender As Object, e As EventArgs) Handles Me.ReportStart + DataSource = dt + End Sub +End Class diff --git a/Dokumentation/Drucken/rptHostListe.Designer.vb b/Dokumentation/Drucken/rptHostListe.Designer.vb new file mode 100644 index 0000000..e50223a --- /dev/null +++ b/Dokumentation/Drucken/rptHostListe.Designer.vb @@ -0,0 +1,311 @@ + +Partial Public Class rptHostListe + Inherits GrapeCity.ActiveReports.SectionReport + + 'Form overrides dispose to clean up the component list. + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing Then + End If + MyBase.Dispose(disposing) + End Sub + + 'NOTE: The following procedure is required by the ActiveReports Designer + 'It can be modified using the ActiveReports Designer. + 'Do not modify it using the code editor. + Private WithEvents PageHeader As GrapeCity.ActiveReports.SectionReportModel.PageHeader + Private WithEvents Detail As GrapeCity.ActiveReports.SectionReportModel.Detail + Private WithEvents PageFooter As GrapeCity.ActiveReports.SectionReportModel.PageFooter + + Private Sub InitializeComponent() + Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(rptHostListe)) + Me.PageHeader = New GrapeCity.ActiveReports.SectionReportModel.PageHeader() + Me.Detail = New GrapeCity.ActiveReports.SectionReportModel.Detail() + Me.txtFQDN = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtIPAdresse = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.PageFooter = New GrapeCity.ActiveReports.SectionReportModel.PageFooter() + Me.txtModell = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtStandort = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtType = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtQInfo = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtInfo = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.GroupHeader1 = New GrapeCity.ActiveReports.SectionReportModel.GroupHeader() + Me.GroupFooter1 = New GrapeCity.ActiveReports.SectionReportModel.GroupFooter() + Me.TextBox1 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox2 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox3 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox4 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox5 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox6 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox7 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox8 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.ReportInfo1 = New GrapeCity.ActiveReports.SectionReportModel.ReportInfo() + CType(Me.txtFQDN, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtIPAdresse, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtModell, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtStandort, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtType, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtQInfo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtInfo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox6, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox7, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox8, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ReportInfo1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me, System.ComponentModel.ISupportInitialize).BeginInit() + ' + 'PageHeader + ' + Me.PageHeader.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.TextBox8}) + Me.PageHeader.Height = 0.3333333! + Me.PageHeader.Name = "PageHeader" + ' + 'Detail + ' + Me.Detail.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.txtFQDN, Me.txtIPAdresse, Me.txtModell, Me.txtStandort, Me.txtType, Me.txtQInfo, Me.txtInfo}) + Me.Detail.Height = 0.2396326! + Me.Detail.KeepTogether = True + Me.Detail.Name = "Detail" + ' + 'txtFQDN + ' + Me.txtFQDN.Height = 0.2! + Me.txtFQDN.Left = 0! + Me.txtFQDN.Name = "txtFQDN" + Me.txtFQDN.Style = "font-size: 9pt" + Me.txtFQDN.Text = "FQDN" + Me.txtFQDN.Top = 0! + Me.txtFQDN.Width = 1.574803! + ' + 'txtIPAdresse + ' + Me.txtIPAdresse.Height = 0.2! + Me.txtIPAdresse.Left = 1.574803! + Me.txtIPAdresse.Name = "txtIPAdresse" + Me.txtIPAdresse.Style = "font-size: 9pt" + Me.txtIPAdresse.Text = "IP" + Me.txtIPAdresse.Top = 0! + Me.txtIPAdresse.Width = 1.082677! + ' + 'PageFooter + ' + Me.PageFooter.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.ReportInfo1}) + Me.PageFooter.Height = 0.2291667! + Me.PageFooter.Name = "PageFooter" + ' + 'txtModell + ' + Me.txtModell.Height = 0.2! + Me.txtModell.Left = 2.65748! + Me.txtModell.Name = "txtModell" + Me.txtModell.Style = "font-size: 9pt" + Me.txtModell.Text = "Modell" + Me.txtModell.Top = 0! + Me.txtModell.Width = 1.574803! + ' + 'txtStandort + ' + Me.txtStandort.Height = 0.2! + Me.txtStandort.Left = 4.232284! + Me.txtStandort.Name = "txtStandort" + Me.txtStandort.Style = "font-size: 9pt" + Me.txtStandort.Text = "Standort" + Me.txtStandort.Top = 0! + Me.txtStandort.Width = 1.574803! + ' + 'txtType + ' + Me.txtType.Height = 0.2! + Me.txtType.Left = 5.807087! + Me.txtType.Name = "txtType" + Me.txtType.Style = "font-size: 9pt; text-align: left" + Me.txtType.Text = "Type" + Me.txtType.Top = 0! + Me.txtType.Width = 1.082677! + ' + 'txtQInfo + ' + Me.txtQInfo.Height = 0.2! + Me.txtQInfo.Left = 6.889764! + Me.txtQInfo.Name = "txtQInfo" + Me.txtQInfo.Style = "font-size: 9pt" + Me.txtQInfo.Text = "QInfo" + Me.txtQInfo.Top = 0! + Me.txtQInfo.Width = 1.574803! + ' + 'txtInfo + ' + Me.txtInfo.Height = 0.2! + Me.txtInfo.Left = 8.464567! + Me.txtInfo.Name = "txtInfo" + Me.txtInfo.Style = "font-size: 9pt" + Me.txtInfo.Text = "Info" + Me.txtInfo.Top = 0! + Me.txtInfo.Width = 2.440946! + ' + 'GroupHeader1 + ' + Me.GroupHeader1.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox4, Me.TextBox5, Me.TextBox6, Me.TextBox7}) + Me.GroupHeader1.Name = "GroupHeader1" + Me.GroupHeader1.RepeatStyle = GrapeCity.ActiveReports.SectionReportModel.RepeatStyle.OnPage + ' + 'GroupFooter1 + ' + Me.GroupFooter1.Height = 0! + Me.GroupFooter1.Name = "GroupFooter1" + ' + 'TextBox1 + ' + Me.TextBox1.Height = 0.2! + Me.TextBox1.Left = 0! + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox1.Text = "FQDN" + Me.TextBox1.Top = 0.025! + Me.TextBox1.Width = 1.574803! + ' + 'TextBox2 + ' + Me.TextBox2.Height = 0.2! + Me.TextBox2.Left = 1.574803! + Me.TextBox2.Name = "TextBox2" + Me.TextBox2.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox2.Text = "IP" + Me.TextBox2.Top = 0.025! + Me.TextBox2.Width = 1.082677! + ' + 'TextBox3 + ' + Me.TextBox3.Height = 0.2! + Me.TextBox3.Left = 2.65748! + Me.TextBox3.Name = "TextBox3" + Me.TextBox3.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox3.Text = "Modell" + Me.TextBox3.Top = 0.025! + Me.TextBox3.Width = 1.574803! + ' + 'TextBox4 + ' + Me.TextBox4.Height = 0.2! + Me.TextBox4.Left = 4.232283! + Me.TextBox4.Name = "TextBox4" + Me.TextBox4.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox4.Text = "Standort" + Me.TextBox4.Top = 0.025! + Me.TextBox4.Width = 1.574803! + ' + 'TextBox5 + ' + Me.TextBox5.Height = 0.2! + Me.TextBox5.Left = 5.807087! + Me.TextBox5.Name = "TextBox5" + Me.TextBox5.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold; text-align: left" & + "" + Me.TextBox5.Text = "Type" + Me.TextBox5.Top = 0.025! + Me.TextBox5.Width = 1.082677! + ' + 'TextBox6 + ' + Me.TextBox6.Height = 0.2! + Me.TextBox6.Left = 6.889764! + Me.TextBox6.Name = "TextBox6" + Me.TextBox6.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox6.Text = "QInfo" + Me.TextBox6.Top = 0.025! + Me.TextBox6.Width = 1.574803! + ' + 'TextBox7 + ' + Me.TextBox7.Height = 0.2! + Me.TextBox7.Left = 8.46457! + Me.TextBox7.Name = "TextBox7" + Me.TextBox7.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox7.Text = "Info" + Me.TextBox7.Top = 0.025! + Me.TextBox7.Width = 2.440946! + ' + 'TextBox8 + ' + Me.TextBox8.Height = 0.2! + Me.TextBox8.Left = 0! + Me.TextBox8.Name = "TextBox8" + Me.TextBox8.Style = "font-size: 11.25pt; font-weight: bold; text-align: center" + Me.TextBox8.Text = "Hosts Detailansicht" + Me.TextBox8.Top = 0.05118111! + Me.TextBox8.Width = 10.90551! + ' + 'ReportInfo1 + ' + Me.ReportInfo1.FormatString = "Seite {PageNumber} / {PageCount}" + Me.ReportInfo1.Height = 0.2! + Me.ReportInfo1.Left = 9.905513! + Me.ReportInfo1.Name = "ReportInfo1" + Me.ReportInfo1.Style = "text-align: right" + Me.ReportInfo1.Top = 0! + Me.ReportInfo1.Width = 1.0! + ' + 'rptHostListe + ' + Me.MasterReport = False + Me.PageSettings.Margins.Bottom = 0.3937008! + Me.PageSettings.Margins.Left = 0.3937008! + Me.PageSettings.Margins.Right = 0.3937008! + Me.PageSettings.Margins.Top = 0.3937008! + Me.PageSettings.Orientation = GrapeCity.ActiveReports.Document.Section.PageOrientation.Landscape + Me.PageSettings.PaperHeight = 11.0! + Me.PageSettings.PaperWidth = 8.5! + Me.PrintWidth = 10.90551! + Me.Sections.Add(Me.PageHeader) + Me.Sections.Add(Me.GroupHeader1) + Me.Sections.Add(Me.Detail) + Me.Sections.Add(Me.GroupFooter1) + Me.Sections.Add(Me.PageFooter) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Arial; font-style: normal; text-decoration: none; font-weight: norma" & + "l; font-size: 10pt; color: Black; ddo-char-set: 204", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-size: 16pt; font-weight: bold", "Heading1", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Times New Roman; font-size: 14pt; font-weight: bold; font-style: ita" & + "lic", "Heading2", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-size: 13pt; font-weight: bold", "Heading3", "Normal")) + CType(Me.txtFQDN, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtIPAdresse, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtModell, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtStandort, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtType, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtQInfo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtInfo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox6, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox7, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox8, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ReportInfo1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me, System.ComponentModel.ISupportInitialize).EndInit() + + End Sub + + Private WithEvents txtFQDN As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtIPAdresse As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtModell As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtStandort As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtType As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtQInfo As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtInfo As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents GroupHeader1 As GrapeCity.ActiveReports.SectionReportModel.GroupHeader + Private WithEvents TextBox1 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox2 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox3 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox4 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox5 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox6 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox7 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents GroupFooter1 As GrapeCity.ActiveReports.SectionReportModel.GroupFooter + Private WithEvents TextBox8 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents ReportInfo1 As GrapeCity.ActiveReports.SectionReportModel.ReportInfo +End Class diff --git a/Dokumentation/Drucken/rptHostListe.resx b/Dokumentation/Drucken/rptHostListe.resx new file mode 100644 index 0000000..e8cbd0f --- /dev/null +++ b/Dokumentation/Drucken/rptHostListe.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 0 + + + 0, 0 + + \ No newline at end of file diff --git a/Dokumentation/Drucken/rptHostListe.vb b/Dokumentation/Drucken/rptHostListe.vb new file mode 100644 index 0000000..5ce59df --- /dev/null +++ b/Dokumentation/Drucken/rptHostListe.vb @@ -0,0 +1,35 @@ +Imports GrapeCity.ActiveReports +Imports GrapeCity.ActiveReports.Document + +Public Class rptHostListe + + Public dt As DataTable + Property DHCPAndrucken As Boolean = Nothing + Public counter As Integer = 0 + Public AltColor As Color = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) + + Private Sub Detail_Format(sender As Object, e As EventArgs) Handles Detail.Format + + txtFQDN.Text = Class1.DBNull2emptyString(Fields.Item("FQDN").Value) + txtIPAdresse.Text = Fields.Item("IPAdresse").Value + txtModell.Text = Class1.DBNull2emptyString(Fields.Item("Modell").Value) + txtStandort.Text = Class1.DBNull2emptyString(Fields.Item("Standort").Value) + txtType.Text = Class1.DBNull2emptyString(Fields.Item("Type").Value) + txtQInfo.Text = Class1.DBNull2emptyString(Fields.Item("QINFO").Value) + txtInfo.Text = Class1.DBNull2emptyString(Fields.Item("Info").Value) + ' If Not Fields.Item("DHCP").Value = "0" And DHCPAndrucken = True Then txtFQDN.Text = Class1.DBNull2emptyString(Fields.Item("FQDN").Value) 'txtFQDN.Text = "DHCP Bereich" + + counter = counter + 1 + + If counter Mod 2 = 0 Then + Detail.BackColor = Color.Transparent + Else + Detail.BackColor = AltColor + End If + + End Sub + + Private Sub rptHostListe_ReportStart(sender As Object, e As EventArgs) Handles Me.ReportStart + DataSource = dt + End Sub +End Class diff --git a/Dokumentation/Drucken/rptHostListeMitZugangsdaten.Designer.vb b/Dokumentation/Drucken/rptHostListeMitZugangsdaten.Designer.vb new file mode 100644 index 0000000..5a203dc --- /dev/null +++ b/Dokumentation/Drucken/rptHostListeMitZugangsdaten.Designer.vb @@ -0,0 +1,339 @@ + +Partial Public Class rptHostListeMitZugangsdaten + Inherits GrapeCity.ActiveReports.SectionReport + + 'Form overrides dispose to clean up the component list. + Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) + If disposing Then + End If + MyBase.Dispose(disposing) + End Sub + + 'NOTE: The following procedure is required by the ActiveReports Designer + 'It can be modified using the ActiveReports Designer. + 'Do not modify it using the code editor. + Private WithEvents PageHeader As GrapeCity.ActiveReports.SectionReportModel.PageHeader + Private WithEvents Detail As GrapeCity.ActiveReports.SectionReportModel.Detail + Private WithEvents PageFooter As GrapeCity.ActiveReports.SectionReportModel.PageFooter + + Private Sub InitializeComponent() + Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(rptHostListeMitZugangsdaten)) + Me.PageHeader = New GrapeCity.ActiveReports.SectionReportModel.PageHeader() + Me.TextBox8 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.Detail = New GrapeCity.ActiveReports.SectionReportModel.Detail() + Me.txtFQDN = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtIPAdresse = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtModell = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtType = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtQInfo = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtInfo = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.PageFooter = New GrapeCity.ActiveReports.SectionReportModel.PageFooter() + Me.ReportInfo1 = New GrapeCity.ActiveReports.SectionReportModel.ReportInfo() + Me.GroupHeader1 = New GrapeCity.ActiveReports.SectionReportModel.GroupHeader() + Me.TextBox1 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox2 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox3 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox5 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox6 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox7 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.GroupFooter1 = New GrapeCity.ActiveReports.SectionReportModel.GroupFooter() + Me.txttxtUser = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.TextBox4 = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtUser = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + Me.txtKennwort = New GrapeCity.ActiveReports.SectionReportModel.TextBox() + CType(Me.TextBox8, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtFQDN, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtIPAdresse, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtModell, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtType, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtQInfo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtInfo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.ReportInfo1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox1, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox6, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox7, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txttxtUser, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.TextBox4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtUser, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.txtKennwort, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me, System.ComponentModel.ISupportInitialize).BeginInit() + ' + 'PageHeader + ' + Me.PageHeader.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.TextBox8}) + Me.PageHeader.Height = 0.3333333! + Me.PageHeader.Name = "PageHeader" + ' + 'TextBox8 + ' + Me.TextBox8.Height = 0.2! + Me.TextBox8.Left = 0! + Me.TextBox8.Name = "TextBox8" + Me.TextBox8.Style = "font-size: 11.25pt; font-weight: bold; text-align: center" + Me.TextBox8.Text = "Hosts Detailansicht" + Me.TextBox8.Top = 0.05118111! + Me.TextBox8.Width = 10.90551! + ' + 'Detail + ' + Me.Detail.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.txtFQDN, Me.txtIPAdresse, Me.txtModell, Me.txtType, Me.txtQInfo, Me.txtInfo, Me.txtUser, Me.txtKennwort}) + Me.Detail.Height = 0.3021818! + Me.Detail.KeepTogether = True + Me.Detail.Name = "Detail" + ' + 'txtFQDN + ' + Me.txtFQDN.Height = 0.2! + Me.txtFQDN.Left = 0! + Me.txtFQDN.Name = "txtFQDN" + Me.txtFQDN.Style = "font-size: 9pt" + Me.txtFQDN.Text = "FQDN" + Me.txtFQDN.Top = 0! + Me.txtFQDN.Width = 1.574803! + ' + 'txtIPAdresse + ' + Me.txtIPAdresse.Height = 0.2! + Me.txtIPAdresse.Left = 1.574803! + Me.txtIPAdresse.Name = "txtIPAdresse" + Me.txtIPAdresse.Style = "font-size: 9pt" + Me.txtIPAdresse.Text = "IP" + Me.txtIPAdresse.Top = 0! + Me.txtIPAdresse.Width = 1.082677! + ' + 'txtModell + ' + Me.txtModell.Height = 0.2! + Me.txtModell.Left = 2.65748! + Me.txtModell.Name = "txtModell" + Me.txtModell.Style = "font-size: 9pt" + Me.txtModell.Text = "Modell" + Me.txtModell.Top = 0! + Me.txtModell.Width = 1.574803! + ' + 'txtType + ' + Me.txtType.Height = 0.2! + Me.txtType.Left = 4.232284! + Me.txtType.Name = "txtType" + Me.txtType.Style = "font-size: 9pt; text-align: left" + Me.txtType.Text = "Type" + Me.txtType.Top = 0! + Me.txtType.Width = 1.082677! + ' + 'txtQInfo + ' + Me.txtQInfo.Height = 0.2! + Me.txtQInfo.Left = 5.314961! + Me.txtQInfo.Name = "txtQInfo" + Me.txtQInfo.Style = "font-size: 9pt" + Me.txtQInfo.Text = "QInfo" + Me.txtQInfo.Top = 0! + Me.txtQInfo.Width = 1.574803! + ' + 'txtInfo + ' + Me.txtInfo.Height = 0.2! + Me.txtInfo.Left = 6.889764! + Me.txtInfo.Name = "txtInfo" + Me.txtInfo.Style = "font-size: 9pt" + Me.txtInfo.Text = "Info" + Me.txtInfo.Top = 0! + Me.txtInfo.Width = 1.816142! + ' + 'PageFooter + ' + Me.PageFooter.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.ReportInfo1}) + Me.PageFooter.Height = 0.2291667! + Me.PageFooter.Name = "PageFooter" + ' + 'ReportInfo1 + ' + Me.ReportInfo1.FormatString = "Seite {PageNumber} / {PageCount}" + Me.ReportInfo1.Height = 0.2! + Me.ReportInfo1.Left = 9.905513! + Me.ReportInfo1.Name = "ReportInfo1" + Me.ReportInfo1.Style = "text-align: right" + Me.ReportInfo1.Top = 0! + Me.ReportInfo1.Width = 1.0! + ' + 'GroupHeader1 + ' + Me.GroupHeader1.Controls.AddRange(New GrapeCity.ActiveReports.SectionReportModel.ARControl() {Me.TextBox1, Me.TextBox2, Me.TextBox3, Me.TextBox5, Me.TextBox6, Me.TextBox7, Me.txttxtUser, Me.TextBox4}) + Me.GroupHeader1.Name = "GroupHeader1" + Me.GroupHeader1.RepeatStyle = GrapeCity.ActiveReports.SectionReportModel.RepeatStyle.OnPage + ' + 'TextBox1 + ' + Me.TextBox1.Height = 0.2! + Me.TextBox1.Left = 0! + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox1.Text = "FQDN" + Me.TextBox1.Top = 0.025! + Me.TextBox1.Width = 1.574803! + ' + 'TextBox2 + ' + Me.TextBox2.Height = 0.2! + Me.TextBox2.Left = 1.574803! + Me.TextBox2.Name = "TextBox2" + Me.TextBox2.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox2.Text = "IP" + Me.TextBox2.Top = 0.025! + Me.TextBox2.Width = 1.082677! + ' + 'TextBox3 + ' + Me.TextBox3.Height = 0.2! + Me.TextBox3.Left = 2.65748! + Me.TextBox3.Name = "TextBox3" + Me.TextBox3.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox3.Text = "Modell" + Me.TextBox3.Top = 0.025! + Me.TextBox3.Width = 1.574803! + ' + 'TextBox5 + ' + Me.TextBox5.Height = 0.2! + Me.TextBox5.Left = 4.232284! + Me.TextBox5.Name = "TextBox5" + Me.TextBox5.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold; text-align: left" & + "" + Me.TextBox5.Text = "Type" + Me.TextBox5.Top = 0.02519685! + Me.TextBox5.Width = 1.082677! + ' + 'TextBox6 + ' + Me.TextBox6.Height = 0.2! + Me.TextBox6.Left = 5.31496! + Me.TextBox6.Name = "TextBox6" + Me.TextBox6.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox6.Text = "QInfo" + Me.TextBox6.Top = 0.02519685! + Me.TextBox6.Width = 1.574803! + ' + 'TextBox7 + ' + Me.TextBox7.Height = 0.2! + Me.TextBox7.Left = 6.889767! + Me.TextBox7.Name = "TextBox7" + Me.TextBox7.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox7.Text = "Info" + Me.TextBox7.Top = 0.02519685! + Me.TextBox7.Width = 1.816139! + ' + 'GroupFooter1 + ' + Me.GroupFooter1.Height = 0! + Me.GroupFooter1.Name = "GroupFooter1" + ' + 'txttxtUser + ' + Me.txttxtUser.Height = 0.2! + Me.txttxtUser.Left = 8.705906! + Me.txttxtUser.Name = "txttxtUser" + Me.txttxtUser.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.txttxtUser.Text = "Benutzer" + Me.txttxtUser.Top = 0.02519685! + Me.txttxtUser.Width = 0.9811034! + ' + 'TextBox4 + ' + Me.TextBox4.Height = 0.2! + Me.TextBox4.Left = 9.687009! + Me.TextBox4.Name = "TextBox4" + Me.TextBox4.Style = "background-color: WhiteSmoke; font-size: 9pt; font-weight: bold" + Me.TextBox4.Text = "Kennwort" + Me.TextBox4.Top = 0.02480315! + Me.TextBox4.Width = 1.218504! + ' + 'txtUser + ' + Me.txtUser.Height = 0.2! + Me.txtUser.Left = 8.705906! + Me.txtUser.Name = "txtUser" + Me.txtUser.Style = "font-size: 9pt" + Me.txtUser.Text = "User" + Me.txtUser.Top = 0! + Me.txtUser.Width = 0.9811034! + ' + 'txtKennwort + ' + Me.txtKennwort.Height = 0.2! + Me.txtKennwort.Left = 9.687009! + Me.txtKennwort.Name = "txtKennwort" + Me.txtKennwort.Style = "font-size: 9pt" + Me.txtKennwort.Text = "Kennwort" + Me.txtKennwort.Top = 0! + Me.txtKennwort.Width = 1.218504! + ' + 'rptHostListeMitZugangsdaten + ' + Me.MasterReport = False + Me.PageSettings.Margins.Bottom = 0.3937008! + Me.PageSettings.Margins.Left = 0.3937008! + Me.PageSettings.Margins.Right = 0.3937008! + Me.PageSettings.Margins.Top = 0.3937008! + Me.PageSettings.Orientation = GrapeCity.ActiveReports.Document.Section.PageOrientation.Landscape + Me.PageSettings.PaperHeight = 11.0! + Me.PageSettings.PaperWidth = 8.5! + Me.PrintWidth = 10.90552! + Me.Sections.Add(Me.PageHeader) + Me.Sections.Add(Me.GroupHeader1) + Me.Sections.Add(Me.Detail) + Me.Sections.Add(Me.GroupFooter1) + Me.Sections.Add(Me.PageFooter) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Arial; font-style: normal; text-decoration: none; font-weight: norma" & + "l; font-size: 10pt; color: Black; ddo-char-set: 204", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-size: 16pt; font-weight: bold", "Heading1", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-family: Times New Roman; font-size: 14pt; font-weight: bold; font-style: ita" & + "lic", "Heading2", "Normal")) + Me.StyleSheet.Add(New DDCssLib.StyleSheetRule("font-size: 13pt; font-weight: bold", "Heading3", "Normal")) + CType(Me.TextBox8, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtFQDN, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtIPAdresse, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtModell, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtType, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtQInfo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtInfo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.ReportInfo1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox1, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox6, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox7, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txttxtUser, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.TextBox4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtUser, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.txtKennwort, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me, System.ComponentModel.ISupportInitialize).EndInit() + + End Sub + + Private WithEvents txtFQDN As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtIPAdresse As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtModell As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtType As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtQInfo As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtInfo As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents GroupHeader1 As GrapeCity.ActiveReports.SectionReportModel.GroupHeader + Private WithEvents TextBox1 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox2 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox3 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox5 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox6 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox7 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents GroupFooter1 As GrapeCity.ActiveReports.SectionReportModel.GroupFooter + Private WithEvents TextBox8 As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents ReportInfo1 As GrapeCity.ActiveReports.SectionReportModel.ReportInfo + Private WithEvents txtUser As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txtKennwort As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents txttxtUser As GrapeCity.ActiveReports.SectionReportModel.TextBox + Private WithEvents TextBox4 As GrapeCity.ActiveReports.SectionReportModel.TextBox +End Class diff --git a/Dokumentation/Drucken/rptHostListeMitZugangsdaten.resx b/Dokumentation/Drucken/rptHostListeMitZugangsdaten.resx new file mode 100644 index 0000000..e8cbd0f --- /dev/null +++ b/Dokumentation/Drucken/rptHostListeMitZugangsdaten.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 0, 0 + + + 0, 0 + + \ No newline at end of file diff --git a/Dokumentation/Drucken/rptHostListeMitZugangsdaten.vb b/Dokumentation/Drucken/rptHostListeMitZugangsdaten.vb new file mode 100644 index 0000000..081ed4a --- /dev/null +++ b/Dokumentation/Drucken/rptHostListeMitZugangsdaten.vb @@ -0,0 +1,37 @@ +Imports GrapeCity.ActiveReports +Imports GrapeCity.ActiveReports.Document + +Public Class rptHostListeMitZugangsdaten + + Public dt As DataTable + Property DHCPAndrucken As Boolean = Nothing + Public counter As Integer = 0 + Public AltColor As Color = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(255, Byte), Integer)) + + Private Sub Detail_Format(sender As Object, e As EventArgs) Handles Detail.Format + + txtFQDN.Text = Class1.DBNull2emptyString(Fields.Item("FQDN").Value) + txtIPAdresse.Text = Fields.Item("IPAdresse").Value + txtModell.Text = Class1.DBNull2emptyString(Fields.Item("Modell").Value) + ' txtStandort.Text = Class1.DBNull2emptyString(Fields.Item("Standort").Value) + txtType.Text = Class1.DBNull2emptyString(Fields.Item("Type").Value) + txtQInfo.Text = Class1.DBNull2emptyString(Fields.Item("QINFO").Value) + txtInfo.Text = Class1.DBNull2emptyString(Fields.Item("Info").Value) + txtUser.Text = Class1.DBNull2emptyString(Fields.Item("Benutzer").Value) + txtKennwort.Text = Class1.DBNull2emptyString(Fields.Item("Passwort").Value) + ' If Not Fields.Item("DHCP").Value = "0" And DHCPAndrucken = True Then txtFQDN.Text = Class1.DBNull2emptyString(Fields.Item("FQDN").Value) 'txtFQDN.Text = "DHCP Bereich" + + counter = counter + 1 + + If counter Mod 2 = 0 Then + Detail.BackColor = Color.Transparent + Else + Detail.BackColor = AltColor + End If + + End Sub + + Private Sub rptHostListe_ReportStart(sender As Object, e As EventArgs) Handles Me.ReportStart + DataSource = dt + End Sub +End Class diff --git a/Dokumentation/EintragBearbeiten.vb b/Dokumentation/EintragBearbeiten.vb index c6a3ef9..ded8b63 100644 --- a/Dokumentation/EintragBearbeiten.vb +++ b/Dokumentation/EintragBearbeiten.vb @@ -6,8 +6,10 @@ Public Class EintragBearbeiten Public cmd As New SqlCommand Public reader As SqlDataReader - Public Rubrik As String = Main.SenderRubrik - Public Titel As String = Main.SenderTitel + ' Public Rubrik As String = Main.SenderRubrik + 'Public Titel As String = Main.SenderTitel + Property rubrik As String = "" + Property Titel As String = "" Public abfrage As String Public Linked As String Public LinkedWith As String @@ -118,7 +120,7 @@ Public Class EintragBearbeiten con.Close() geaendert = False If NameChanged = True Then - Folder.FolderMove(Rubrik, Titel, TxtRubrik.Text, TxtTitel.Text) + cFolder.FolderMove(Rubrik, Titel, TxtRubrik.Text, TxtTitel.Text) End If NameChanged = False End If @@ -301,7 +303,7 @@ Public Class EintragBearbeiten Private Sub CmdLink_Click(sender As Object, e As EventArgs) Handles CmdLink.Click - Main.startlink() + Ext_Programme.startlink(TxtLink.Text) End Sub Private Sub ChkKennwortAnzeigen_CheckedChanged(sender As Object, e As EventArgs) Handles ChkKennwortAnzeigen.CheckedChanged diff --git a/Dokumentation/HostBearbeiten.Designer.vb b/Dokumentation/HostBearbeiten_OLD.Designer.vb similarity index 96% rename from Dokumentation/HostBearbeiten.Designer.vb rename to Dokumentation/HostBearbeiten_OLD.Designer.vb index 192e1ec..6345c42 100644 --- a/Dokumentation/HostBearbeiten.Designer.vb +++ b/Dokumentation/HostBearbeiten_OLD.Designer.vb @@ -74,11 +74,13 @@ Partial Class HostBearbeiten Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() Me.DebugToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel2 = New System.Windows.Forms.Panel() + Me.chkFirewall = New System.Windows.Forms.CheckBox() Me.CmdHostLink = New System.Windows.Forms.Button() Me.CmdBack = New System.Windows.Forms.Button() Me.CmdForward = New System.Windows.Forms.Button() Me.Label11 = New System.Windows.Forms.Label() Me.TxtStandort = New System.Windows.Forms.TextBox() + Me.PanFirewall = New System.Windows.Forms.Panel() Me.ContextMenuStrip1.SuspendLayout() Me.PanDebug.SuspendLayout() Me.MenuStrip1.SuspendLayout() @@ -494,7 +496,7 @@ Partial Class HostBearbeiten Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExtrasToolStripMenuItem}) Me.MenuStrip1.Location = New System.Drawing.Point(0, 0) Me.MenuStrip1.Name = "MenuStrip1" - Me.MenuStrip1.Size = New System.Drawing.Size(661, 24) + Me.MenuStrip1.Size = New System.Drawing.Size(1364, 24) Me.MenuStrip1.TabIndex = 88 Me.MenuStrip1.Text = "MenuStrip1" ' @@ -530,6 +532,7 @@ Partial Class HostBearbeiten ' 'Panel2 ' + Me.Panel2.Controls.Add(Me.chkFirewall) Me.Panel2.Controls.Add(Me.CmdHostLink) Me.Panel2.Controls.Add(Me.CmdBack) Me.Panel2.Controls.Add(Me.CmdForward) @@ -577,6 +580,16 @@ Partial Class HostBearbeiten Me.Panel2.Size = New System.Drawing.Size(651, 479) Me.Panel2.TabIndex = 89 ' + 'chkFirewall + ' + Me.chkFirewall.AutoSize = True + Me.chkFirewall.Location = New System.Drawing.Point(516, 379) + Me.chkFirewall.Name = "chkFirewall" + Me.chkFirewall.Size = New System.Drawing.Size(123, 17) + Me.chkFirewall.TabIndex = 93 + Me.chkFirewall.Text = "Firewalleinstellungen" + Me.chkFirewall.UseVisualStyleBackColor = True + ' 'CmdHostLink ' Me.CmdHostLink.BackColor = System.Drawing.SystemColors.ControlLightLight @@ -631,6 +644,15 @@ Partial Class HostBearbeiten Me.TxtStandort.Size = New System.Drawing.Size(300, 20) Me.TxtStandort.TabIndex = 4 ' + 'PanFirewall + ' + Me.PanFirewall.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.PanFirewall.Location = New System.Drawing.Point(658, 28) + Me.PanFirewall.Name = "PanFirewall" + Me.PanFirewall.Size = New System.Drawing.Size(694, 747) + Me.PanFirewall.TabIndex = 90 + Me.PanFirewall.Visible = False + ' 'HostBearbeiten ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -638,7 +660,8 @@ Partial Class HostBearbeiten Me.AutoSize = True Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink Me.BackColor = System.Drawing.SystemColors.GradientInactiveCaption - Me.ClientSize = New System.Drawing.Size(661, 800) + Me.ClientSize = New System.Drawing.Size(1364, 791) + Me.Controls.Add(Me.PanFirewall) Me.Controls.Add(Me.Panel2) Me.Controls.Add(Me.PanDebug) Me.Controls.Add(Me.MenuStrip1) @@ -713,4 +736,6 @@ Partial Class HostBearbeiten Friend WithEvents MitHTTPFüllenToolStripMenuItem As ToolStripMenuItem Friend WithEvents CmdHostLink As Button Friend WithEvents HostVerschiebenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents chkFirewall As CheckBox + Friend WithEvents PanFirewall As Panel End Class diff --git a/Dokumentation/HostBearbeiten.resx b/Dokumentation/HostBearbeiten_OLD.resx similarity index 100% rename from Dokumentation/HostBearbeiten.resx rename to Dokumentation/HostBearbeiten_OLD.resx diff --git a/Dokumentation/HostBearbeiten.vb b/Dokumentation/HostBearbeiten_OLD.vb similarity index 93% rename from Dokumentation/HostBearbeiten.vb rename to Dokumentation/HostBearbeiten_OLD.vb index 52545cc..fbd7acf 100644 --- a/Dokumentation/HostBearbeiten.vb +++ b/Dokumentation/HostBearbeiten_OLD.vb @@ -125,6 +125,7 @@ Public Class HostBearbeiten TxtSeriennummer.Text = "" TxtStandort.Text = "" Linked = "0" + chkFirewall.Checked = False Try reader = cmd.ExecuteReader() Do While reader.Read() @@ -143,18 +144,25 @@ Public Class HostBearbeiten TxtModell.Text = checknull("Modell") TxtSeriennummer.Text = checknull("Seriennummer") Linked = reader("Linked") - If Linked = "1" Then + ' If Linked = "1" Then + If Linked = True Then ChkLinked.Checked = True TxtLinkedWith.Text = reader("LinkedWith") + ' uscntr_Firewalleinstellungen.Host = TxtLinkedWith.Text ' importierelinked(TxtLinkedWith.Text) Else ChkLinked.Checked = False + ' uscntr_Firewalleinstellungen.Host = TxtIP.Text End If + chkFirewall.Checked = returnTrueFalse("Firewall") + ShowFirewallPanel(chkFirewall.Checked) + + Loop reader.Close() Catch ex As Exception - MsgBox("Hostbearbeiten.Ausgabe_Host reader.Read: " & ex.Message) + MsgBox("123Hostbearbeiten.Ausgabe_Host reader.Read: " & ex.Message) 'LbLDebug.Text = ex.Message End Try @@ -169,18 +177,28 @@ Public Class HostBearbeiten Private Function checknull(text As String) Try - ' If reader.Read() Then If reader.IsDBNull(0) Then - 'MsgBox("Null") Return String.Empty Else Return reader(text).ToString End If - 'End If Catch ex As Exception MsgBox("Checknull: " & ex.Message) End Try + End Function + Private Function returnTrueFalse(text As String) + Try + If reader.IsDBNull(0) Then + Return False + ElseIf reader(text).ToString = "" Then + Return False + Else + Return reader(text).ToString + End If + Catch ex As Exception + MsgBox("Checknull: " & ex.Message) + End Try End Function Private Function ausgabe_LinkedHost() @@ -837,4 +855,37 @@ Public Class HostBearbeiten Private Sub NetzwerkÄndernToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HostVerschiebenToolStripMenuItem.Click HostVerschieben.Show() End Sub + + Private Sub chkFirewall_CheckedChanged(sender As Object, e As EventArgs) Handles chkFirewall.MouseClick + Dim hostip As String = TxtIP.Text + If TxtLinkedWith.Text <> "" Then hostip = TxtLinkedWith.Text + + EnableDisableFirewallBoolean(hostip, chkFirewall.Checked) + ShowFirewallPanel(chkFirewall.Checked) + End Sub + + Public Function EnableDisableFirewallBoolean(ByVal hostip As String, ByVal EnDisable As Boolean) + con.Open() + cmd.CommandText = "update TbL_Netzwerkclients set Firewall = '" & EnDisable & "' where ipadresse = '" & hostip & "'" + cmd.ExecuteNonQuery() + cmd.CommandText = "update TbL_Netzwerkclients set Firewall = '" & EnDisable & "' where linkedwith = '" & hostip & "'" + cmd.ExecuteNonQuery() + con.Close() + End Function + + Public Function ShowFirewallPanel(ByVal EnDisable As Boolean) + If EnDisable = True Then + PanFirewall.Controls.Clear() + PanFirewall.Visible = True + Dim UserControl As New uscntr_Firewalleinstellungen + PanFirewall.Size = UserControl.Size + UserControl.SplitContainer1.Panel1Collapsed = True + PanFirewall.Controls.Add(UserControl) + Else + PanFirewall.Controls.Clear() + PanFirewall.Visible = False + End If + End Function + + End Class \ No newline at end of file diff --git a/Dokumentation/Login/Login.vb b/Dokumentation/Login/Login.vb index 3ceaa3b..338974c 100644 --- a/Dokumentation/Login/Login.vb +++ b/Dokumentation/Login/Login.vb @@ -9,7 +9,9 @@ Public Class Login Timer1.Enabled = False Try Dim Addresslistcounts As Integer = Resolve("verag.ost.dmn").AddressList.Count + 'MsgBox(Environment.UserName) Abfrage(Environment.UserName) + 'Main.Show() 'MsgBox(Addresslistcounts) Catch MsgBox("Fehler beim Anmelden!") @@ -29,7 +31,7 @@ Public Class Login For Each group As String In locGroups ' LblDebugInfo.Text &= group - If group = "CN=DokuGruppe" Then + If group = "CN=SG_Doku_User_FULL" Then 'MsgBox("Benutzer " & Environment.UserName & " in Gruppe " & group & " gefunden!") gefunden = True Main.Show() diff --git a/Dokumentation/Main.Designer.vb b/Dokumentation/Main.Designer.vb index 7603276..c95e9d3 100644 --- a/Dokumentation/Main.Designer.vb +++ b/Dokumentation/Main.Designer.vb @@ -53,6 +53,7 @@ Partial Class Main Me.UpdateToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ExitToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel3 = New System.Windows.Forms.Panel() + Me.ChkDHCPClients = New System.Windows.Forms.CheckBox() Me.ChkFreieHosts = New System.Windows.Forms.CheckBox() Me.ChkKompAnsicht = New System.Windows.Forms.CheckBox() Me.PanNetzwerk = New System.Windows.Forms.Panel() @@ -89,7 +90,6 @@ Partial Class Main Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) Me.TimerUhrzeit = New System.Windows.Forms.Timer(Me.components) Me.TimerUpdate = New System.Windows.Forms.Timer(Me.components) - Me.ChkDHCPClients = New System.Windows.Forms.CheckBox() Me.Panel2.SuspendLayout() Me.Panel4.SuspendLayout() Me.PanType.SuspendLayout() @@ -327,42 +327,42 @@ Partial Class Main 'NetzwerkeToolStripMenuItem ' Me.NetzwerkeToolStripMenuItem.Name = "NetzwerkeToolStripMenuItem" - Me.NetzwerkeToolStripMenuItem.Size = New System.Drawing.Size(177, 22) + Me.NetzwerkeToolStripMenuItem.Size = New System.Drawing.Size(180, 22) Me.NetzwerkeToolStripMenuItem.Text = "Tabellen bearbeiten" ' 'AnsichtDruckenToolStripMenuItem ' Me.AnsichtDruckenToolStripMenuItem.Name = "AnsichtDruckenToolStripMenuItem" - Me.AnsichtDruckenToolStripMenuItem.Size = New System.Drawing.Size(177, 22) - Me.AnsichtDruckenToolStripMenuItem.Text = "Ansicht drucken" + Me.AnsichtDruckenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.AnsichtDruckenToolStripMenuItem.Text = "Drucken" ' 'ExportToolStripMenuItem ' Me.ExportToolStripMenuItem.Name = "ExportToolStripMenuItem" - Me.ExportToolStripMenuItem.Size = New System.Drawing.Size(177, 22) + Me.ExportToolStripMenuItem.Size = New System.Drawing.Size(180, 22) Me.ExportToolStripMenuItem.Text = "Export" ' 'ImportToolStripMenuItem ' Me.ImportToolStripMenuItem.Name = "ImportToolStripMenuItem" - Me.ImportToolStripMenuItem.Size = New System.Drawing.Size(177, 22) + Me.ImportToolStripMenuItem.Size = New System.Drawing.Size(180, 22) Me.ImportToolStripMenuItem.Text = "Import" ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(174, 6) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(177, 6) ' 'UpdateToolStripMenuItem ' Me.UpdateToolStripMenuItem.Name = "UpdateToolStripMenuItem" - Me.UpdateToolStripMenuItem.Size = New System.Drawing.Size(177, 22) + Me.UpdateToolStripMenuItem.Size = New System.Drawing.Size(180, 22) Me.UpdateToolStripMenuItem.Text = "Update" ' 'ExitToolStripMenuItem ' Me.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem" - Me.ExitToolStripMenuItem.Size = New System.Drawing.Size(177, 22) + Me.ExitToolStripMenuItem.Size = New System.Drawing.Size(180, 22) Me.ExitToolStripMenuItem.Text = "Exit" ' 'Panel3 @@ -386,6 +386,18 @@ Partial Class Main Me.Panel3.Size = New System.Drawing.Size(200, 771) Me.Panel3.TabIndex = 2 ' + 'ChkDHCPClients + ' + Me.ChkDHCPClients.AutoSize = True + Me.ChkDHCPClients.Checked = True + Me.ChkDHCPClients.CheckState = System.Windows.Forms.CheckState.Checked + Me.ChkDHCPClients.Location = New System.Drawing.Point(25, 582) + Me.ChkDHCPClients.Name = "ChkDHCPClients" + Me.ChkDHCPClients.Size = New System.Drawing.Size(136, 17) + Me.ChkDHCPClients.TabIndex = 16 + Me.ChkDHCPClients.Text = "DHCP Clients anzeigen" + Me.ChkDHCPClients.UseVisualStyleBackColor = True + ' 'ChkFreieHosts ' Me.ChkFreieHosts.AutoSize = True @@ -707,18 +719,6 @@ Partial Class Main Me.TimerUpdate.Enabled = True Me.TimerUpdate.Interval = 10000 ' - 'ChkDHCPClients - ' - Me.ChkDHCPClients.AutoSize = True - Me.ChkDHCPClients.Checked = True - Me.ChkDHCPClients.CheckState = System.Windows.Forms.CheckState.Checked - Me.ChkDHCPClients.Location = New System.Drawing.Point(25, 582) - Me.ChkDHCPClients.Name = "ChkDHCPClients" - Me.ChkDHCPClients.Size = New System.Drawing.Size(136, 17) - Me.ChkDHCPClients.TabIndex = 16 - Me.ChkDHCPClients.Text = "DHCP Clients anzeigen" - Me.ChkDHCPClients.UseVisualStyleBackColor = True - ' 'Main ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -760,7 +760,6 @@ Partial Class Main Friend WithEvents Panel3 As Panel Friend WithEvents LstStandort As ListBox Friend WithEvents LstNetzwerk As ListBox - Friend WithEvents DgVMain As DataGridView Friend WithEvents CmdTest As Button Friend WithEvents CMdTest2 As Button Friend WithEvents ChKZugangsdaten As CheckBox @@ -822,4 +821,5 @@ Partial Class Main Friend WithEvents ToolStripSeparator4 As ToolStripSeparator Friend WithEvents ChkFreieHosts As CheckBox Friend WithEvents ChkDHCPClients As CheckBox + Public WithEvents DgVMain As DataGridView End Class diff --git a/Dokumentation/Main.vb b/Dokumentation/Main.vb index 6d6dae8..2aeb4a3 100644 --- a/Dokumentation/Main.vb +++ b/Dokumentation/Main.vb @@ -1,10 +1,4 @@ Imports System.Data.SqlClient -'Imports System.IO -'Imports System.Runtime.InteropServices -'Imports System.Text -Imports System.Reflection - - Public Class Main Public con As New SqlConnection @@ -22,18 +16,24 @@ Public Class Main Public Neu, geaendert As Boolean Public Debug As Boolean Public Suchbegriff As String + Public Shared SucheAktiv As Boolean = False Public Tabelle As String + Public DHCPRefresh As Boolean = True Public sAppPath As String = Application.StartupPath Public Updatequelle As String = "\\192.168.0.91\f\Programme\Doku\" Private Version As String = My.Resources.Version + Public Shared SelectedDGVIndex As Integer + Public Shared FirstDisplayedDGVEntry As Integer + Public printds As DataSet = Nothing Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load + Class1.EnableDoubleBuffered(DgVMain) Me.KeyPreview = True 'MsgBox(sAppPath) @@ -69,8 +69,6 @@ Public Class Main End With End If - EnableDoubleBuffered(DgVMain) - End Sub ''LISTEN @@ -164,17 +162,10 @@ Public Class Main Public Function LstStandortLoad() Dim ds As New DataSet() - Dim dt As New DataTable() - dbload() - Dim dataadapter As New SqlDataAdapter("SELECT NWSTANDORT from TbL_Netzwerke where main='True' order by NWSTANDORT", con) + LstStandort.Items.Clear() - + SQL.SQL2DS("SELECT NWSTANDORT from TbL_Netzwerke where main='True' order by NWSTANDORT", ds) Try - con.Open() - dataadapter.Fill(ds) - - 'DgVMain.DataSource = ds.Tables(0) - For Each dr As DataRow In ds.Tables(0).Rows LstStandort.Items.Add(dr.Item(0)) Next @@ -182,29 +173,20 @@ Public Class Main Catch ex As Exception MsgBox("DataadapterFill LstStandOrtLoad(): " & ex.Message) End Try - - con.Close() - 'LstStandort.SelectedIndex = 0 LstStandort.SelectedItem = "Verag_SUB" Dim dsa As New DataSet() - Dim da_allgemein As New SqlDataAdapter("select distinct Rubrik from tbl_allgemein", con) + SQL.SQL2DS("select distinct Rubrik from tbl_allgemein", dsa) LstAllgemein.Items.Clear() Try - con.Open() - da_allgemein.Fill(dsa) - - 'DgVMain.DataSource = ds.Tables(0) - For Each dr As DataRow In dsa.Tables(0).Rows LstAllgemein.Items.Add(dr.Item(0)) Next + Catch ex As Exception MsgBox("DataadapterFill LstStandOrtLoad(): " & ex.Message) End Try - - con.Close() End Function Public Function TypeFilter() @@ -241,17 +223,12 @@ Public Class Main Public Function LstNetzwerkLoad() Dim ds As New DataSet() - Dim dt As New DataTable() Dim Standort As String = LstStandort.SelectedItem - dbload() - Dim dataadapter As New SqlDataAdapter("select NETNAME from TbL_Netzwerke where NWSTANDORT='" & Standort & "' ORDER BY NETNAME", con) + + SQL.SQL2DS("select NETNAME from TbL_Netzwerke where NWSTANDORT='" & Standort & "' ORDER BY NETNAME", ds) + LstNetzwerk.Items.Clear() Try - con.Open() - dataadapter.Fill(ds) - - 'DgVMain.DataSource = ds.Tables(0) - For Each dr As DataRow In ds.Tables(0).Rows LstNetzwerk.Items.Add(dr.Item(0)) Next @@ -259,7 +236,6 @@ Public Class Main Catch ex As Exception 'MsgBox("DataadapterFill LstNwerkload(): " & ex.Message) End Try - con.Close() LstNetzwerk.SelectedItem = "Intern" Try ' LstNetzwerk.SetSelected(0, True) @@ -305,27 +281,22 @@ Public Class Main Public Function dgvload(tabelle As String) Dim ds As New DataSet() - Dim dt As New DataTable() Dim Standort As String = LstStandort.SelectedItem Dim Netzwerk As String = LstNetzwerk.SelectedItem Try - con.Open() If tabelle = "TbL_Netzwerkclients" Then If ChkFreieHosts.Checked Then - Dim dataadapter As New SqlDataAdapter("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' order by host", con) - dataadapter.Fill(ds) + SQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' order by host", ds) dgvfill(ds, "Netzwerk") Else - Dim dataadapter As New SqlDataAdapter("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' AND FQDN is not NUll order by host", con) - dataadapter.Fill(ds) + SQL.SQL2DS("select * from " & tabelle & " where NWSTANDORT='" & Standort & "' AND NETNAME='" & Netzwerk & "' AND FQDN is not NUll order by host", ds) dgvfill(ds, "Netzwerk") End If ElseIf tabelle = "TbL_Allgemein" Then - Dim dataadapter As New SqlDataAdapter("select * from " & tabelle & " WHERE Rubrik = '" & LstAllgemein.SelectedItem & "'", con) - dataadapter.Fill(ds) + SQL.SQL2DS("select * from " & tabelle & " WHERE Rubrik = '" & LstAllgemein.SelectedItem & "'", ds) dgvfill(ds, "Allgemein") End If @@ -333,11 +304,10 @@ Public Class Main 'MsgBox("DataadapterFill dgvload(): " & ex.Message) End Try - con.Close() NetzwerkInfoAnzeige() End Function - Public Function dgvload_filter(suchbegriff As String) + Public Function dgvload_filter(suchbegriff As String, Optional ByVal DHCPRefresh As Boolean = True) Dim starttime As Date = DateTime.Now Dim endtime As Date Dim ds As New DataSet() @@ -355,11 +325,11 @@ Public Class Main '''SUCHPARAMETER DEFINIEREN''' If LstType.SelectedItem = "" Then - Suchparameter = "(Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "')" + Suchparameter = "(Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & " 'OR Standort LIKE'" & suchbegriff & "')" ElseIf LstType.SelectedItem = "ohne" Then - Suchparameter = "TYPE = '' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "')" + Suchparameter = "TYPE = '' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR Standort LIKE'" & suchbegriff & "')" Else - Suchparameter = "TYPE = '" & LstType.SelectedItem & "' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "')" + Suchparameter = "TYPE = '" & LstType.SelectedItem & "' AND (Type LIKE'" & suchbegriff & "'OR FQDN LIKE'" & suchbegriff & "'OR QINFO LIKE'" & suchbegriff & "'OR IPAdresse LIKE'" & suchbegriff & "'OR Modell LIKE'" & suchbegriff & "'OR Standort LIKE'" & suchbegriff & "')" End If If Not ChkFreieHosts.Checked Then @@ -370,7 +340,7 @@ Public Class Main '''ABFRAGE DEFINIEREN''' ''' 'Dim SelSQL4DGV As String = "*" - Dim SelSQL4DGV As String = "FQDN, IPAdresse, Modell, Standort, Type, Seriennummer, QINFO, Info, DHCP, Host" + Dim SelSQL4DGV As String = "FQDN, IPAdresse, Modell, Standort, Type, Seriennummer, QINFO, Info, DHCP, Host, Link" If ChKZugangsdaten.Checked Then SelSQL4DGV &= ", Benutzer, Passwort" End If @@ -378,28 +348,21 @@ Public Class Main '''ABFRAGE RADIOBUTTONS + SUCHPARAMETER''' If RadGlobal.Checked Then - Dim dataadapter As New SqlDataAdapter("select " & SelSQL4DGV & " from TbL_Netzwerkclients where " & Suchparameter & " order by host", con) - con.Open() - dataadapter.Fill(ds) - ElseIf RadNurNetzwerk.Checked Then - Dim dataadapter As New SqlDataAdapter("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "' AND " & Suchparameter & " order by host", con) - con.Open() - dataadapter.Fill(ds) - ElseIf RadStandort.Checked Then - Dim dataadapter As New SqlDataAdapter("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND " & Suchparameter & " order by host", con) - con.Open() - dataadapter.Fill(ds) - ElseIf suchbegriff = "" Then - Dim dataadapter As New SqlDataAdapter("select " & SelSQL4DGV & " from TbL_Netzwerkclients order by host", con) - con.Open() - dataadapter.Fill(ds) - End If - con.Close() + SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where " & Suchparameter & " order by host", ds) + ElseIf RadNurNetzwerk.Checked Then + SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "' AND " & Suchparameter & " order by host", ds) + ElseIf RadStandort.Checked Then + SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients where NWSTANDORT = '" & Standort & "' AND " & Suchparameter & " order by host", ds) + ElseIf suchbegriff = "" Then + SQL.SQL2DS("select " & SelSQL4DGV & " from TbL_Netzwerkclients order by host", ds) + End If - Try - endtime = DateTime.Now - LblDebugInfo.Text = "dgvload: " & ((endtime - starttime).Milliseconds) & vbCrLf - ''--------------------------------------------------------------------------------------------------------/START// Abfrage DHCP Clients + + Try + endtime = DateTime.Now + LblDebugInfo.Text = "dgvload: " & ((endtime - starttime).Milliseconds) & vbCrLf + ''--------------------------------------------------------------------------------------------------------/START// Abfrage DHCP Clients + If DHCPRefresh = True And SucheAktiv = False Then con.Open() cmd.CommandText = "SELECT DHCPAbfragen FROM Tbl_Netzwerke WHERE NWSTANDORT = '" & Standort & "' AND NETNAME ='" & Netzwerk & "'" reader = cmd.ExecuteReader() @@ -416,19 +379,21 @@ Public Class Main Else End If End If + ' DHCPRefresh = False + End If - ''--------------------------------------------------------------------------------------------------------/Ende// Abfrage DHCP Clients - dgvfill(ds, "Netzwerk") - Dim endtimedgvfill As Date = Date.Now - LblDebugInfo.Text &= "dgvfill: " & ((endtimedgvfill - starttime).Milliseconds) & vbCrLf - Catch ex As Exception - MsgBox("dgvload_filter(): " & ex.Message) - End Try + ''--------------------------------------------------------------------------------------------------------/Ende// Abfrage DHCP Clients + dgvfill(ds, "Netzwerk") + Dim endtimedgvfill As Date = Date.Now + LblDebugInfo.Text &= "dgvfill: " & ((endtimedgvfill - starttime).Milliseconds) & vbCrLf + Catch ex As Exception + MsgBox("dgvload_filter(): " & ex.Message) + End Try - con.Close() - NetzwerkInfoAnzeige() - Else - Suchparameter = "(TITEL LIKE'" & suchbegriff & "'OR INFO LIKE'" & suchbegriff & "'OR LINK LIKE'" & suchbegriff & "')" + con.Close() + NetzwerkInfoAnzeige() + Else + Suchparameter = "(TITEL LIKE'" & suchbegriff & "'OR INFO LIKE'" & suchbegriff & "'OR LINK LIKE'" & suchbegriff & "')" Dim dataadapter As New SqlDataAdapter("select * from TbL_Allgemein where " & Suchparameter & "", con) con.Open() dataadapter.Fill(ds) @@ -437,75 +402,91 @@ Public Class Main dgvfill(ds, "Allgemein") ' MsgBox("keine Wahl") End If + printds = ds End Function Public Function dgvfill(ds As DataSet, design As String) Dim starttime As Date = DateTime.Now - Dim endtime As Date + Dim endtime As New Date If design = "Netzwerk" Then + Try + With DgVMain + .DataSource = ds.Tables(0) + If ChkKompAnsicht.Checked Then + .DefaultCellStyle.WrapMode = DataGridViewTriState.False + .AutoSizeRowsMode = 0 'DataGridViewAutoSizeColumnsMode.ColumnHeader + 'MsgBox(DgVMain.AutoSizeRowsMode) + Else + .DefaultCellStyle.WrapMode = DataGridViewTriState.True + .AutoSizeRowsMode = DataGridViewAutoSizeColumnsMode.AllCells + End If + If TxtSuche.Text = "" And LstType.SelectedItem = "" Then + .RowsDefaultCellStyle.BackColor = Color.White + SucheAktiv = False + Else + .RowsDefaultCellStyle.BackColor = Color.AntiqueWhite + SucheAktiv = True + End If + ' MsgBox(SucheAktiv) + .RowHeadersVisible = True - With DgVMain - .DataSource = ds.Tables(0) - If ChkKompAnsicht.Checked Then - .DefaultCellStyle.WrapMode = DataGridViewTriState.False - .AutoSizeRowsMode = 0 'DataGridViewAutoSizeColumnsMode.ColumnHeader - 'MsgBox(DgVMain.AutoSizeRowsMode) - Else - .DefaultCellStyle.WrapMode = DataGridViewTriState.True - .AutoSizeRowsMode = DataGridViewAutoSizeColumnsMode.AllCells - End If - If TxtSuche.Text = "" And LstType.SelectedItem = "" Then - .RowsDefaultCellStyle.BackColor = Color.White - Else - .RowsDefaultCellStyle.BackColor = Color.AntiqueWhite - End If + .Columns("FQDN").DisplayIndex = 0 + .Columns("FQDN").HeaderText = "Name / FQDN" - .RowHeadersVisible = True + .Columns("IPAdresse").DisplayIndex = 1 + .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells + ' .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells - .Columns("FQDN").DisplayIndex = 0 - .Columns("FQDN").HeaderText = "Name / FQDN" + .Columns("Modell").DisplayIndex = 2 - .Columns("IPAdresse").DisplayIndex = 1 - .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells + .Columns("Standort").DisplayIndex = 3 - .Columns("Modell").DisplayIndex = 2 + .Columns("TYPE").DisplayIndex = 4 + .Columns("TYPE").HeaderText = "Gerätetype" - .Columns("Standort").DisplayIndex = 3 + .Columns("Seriennummer").DisplayIndex = 5 - .Columns("TYPE").DisplayIndex = 4 - .Columns("TYPE").HeaderText = "Gerätetype" + .Columns("QINFO").HeaderText = "Quick-Info" - .Columns("Seriennummer").DisplayIndex = 5 + ' .Columns("NWSTANDORT").DisplayIndex = 8 - .Columns("QINFO").HeaderText = "Quick-Info" + 'If ChKZugangsdaten.Checked = False Then + ' .Columns("Benutzer").Visible = False + ' .Columns("Passwort").Visible = False + 'ElseIf ChKZugangsdaten.Checked = True Then + ' .Columns("Benutzer").Visible = True + ' .Columns("Benutzer").DisplayIndex = 6 + ' .Columns("Passwort").Visible = True + ' .Columns("Passwort").DisplayIndex = 7 + 'End If - ' .Columns("NWSTANDORT").DisplayIndex = 8 + '' .Columns("NETNAME").Visible = False + '.Columns("Netzwerk").Visible = False + .Columns("DHCP").Visible = False + '.Columns("MAC").Visible = False + .Columns("LINK").Visible = False + '.Columns("Linked").Visible = False + '.Columns("Linked").DisplayIndex = 9 + '.Columns("LinkedWith").Visible = False + '' .Columns("AddIp").Visible = False + .Columns("HOST").Visible = False + '' .Columns("NWSTANDORT").Visible = False + '.Columns("Info").Width = 250 - 'If ChKZugangsdaten.Checked = False Then - ' .Columns("Benutzer").Visible = False - ' .Columns("Passwort").Visible = False - 'ElseIf ChKZugangsdaten.Checked = True Then - ' .Columns("Benutzer").Visible = True - ' .Columns("Benutzer").DisplayIndex = 6 - ' .Columns("Passwort").Visible = True - ' .Columns("Passwort").DisplayIndex = 7 - 'End If + '.Sort(DgVMain.Columns("Host"), System.ComponentModel.ListSortDirection.Ascending) + End With + Catch ex As Exception + MsgBox("With DGV: " & ex.Message) + End Try - '' .Columns("NETNAME").Visible = False - '.Columns("Netzwerk").Visible = False - .Columns("DHCP").Visible = False - '.Columns("MAC").Visible = False - '.Columns("LINK").Visible = False - '.Columns("Linked").Visible = False - '.Columns("Linked").DisplayIndex = 9 - '.Columns("LinkedWith").Visible = False - '' .Columns("AddIp").Visible = False - .Columns("HOST").Visible = False - '' .Columns("NWSTANDORT").Visible = False - '.Columns("Info").Width = 250 - '.Sort(DgVMain.Columns("Host"), System.ComponentModel.ListSortDirection.Ascending) - End With + If SelectedDGVIndex < DgVMain.Rows.Count - 1 Then + DgVMain.ClearSelection() + DgVMain.Rows(SelectedDGVIndex).Selected = True + DgVMain.FirstDisplayedScrollingRowIndex = FirstDisplayedDGVEntry + Else + DgVMain.Rows(0).Selected = True + End If ''--------------------------------------------------------------------------------------------------------/START//Farbig hervorheben, Check DHCP Filter @@ -570,10 +551,12 @@ Public Class Main End With End If + End Function Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click - dgvload_filter(Suchbegriff) + frmHostBearbeiten.IP = (DgVMain.CurrentRow.Cells("IPAdresse").Value) + frmHostBearbeiten.Show() End Sub Private Sub CMdTest2_Click(sender As Object, e As EventArgs) Handles CMdTest2.Click @@ -631,26 +614,26 @@ Public Class Main LblUhrzeit.Text = Date.Now End Sub - Private Sub DgVMain_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellContentDoubleClick - 'MsgBox(DgVMain.CurrentRow.Cells("HOST").Value) - werbinich() - If Tabelle = "TbL_Netzwerkclients" Then + 'Private Sub DgVMain_CellContentDoubleClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellContentDoubleClick, DgVMain.CellDoubleClick + ' 'MsgBox(DgVMain.CurrentRow.Cells("HOST").Value) + ' werbinich() + ' If Tabelle = "TbL_Netzwerkclients" Then - If LstStandort.SelectedItem = "" Then - LblUhrzeit.Text = "Kein Standort ausgewählt!" - Exit Sub - End If - If LstNetzwerk.SelectedItem = "" Then - LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" - Exit Sub - End If - Class1.Absender = "Main" - HostBearbeiten.Show() - ElseIf Tabelle = "TbL_Allgemein" Then - EintragBearbeiten.Show() - End If + ' If LstStandort.SelectedItem = "" Then + ' LblUhrzeit.Text = "Kein Standort ausgewählt!" + ' Exit Sub + ' End If + ' If LstNetzwerk.SelectedItem = "" Then + ' LblUhrzeit.Text = "Kein Netzwerk ausgewählt!" + ' Exit Sub + ' End If + ' Class1.Absender = "Main" + ' HostBearbeiten.Show() + ' ElseIf Tabelle = "TbL_Allgemein" Then + ' EintragBearbeiten.Show() + ' End If - End Sub + 'End Sub Private Sub CmdNetzwerkbearbeiten_Click(sender As Object, e As EventArgs) Handles CmdNetzwerkbearbeiten.Click werbinich() @@ -671,9 +654,12 @@ Public Class Main End Sub Private Sub TxtSuche_TextChanged(sender As Object, e As EventArgs) Handles TxtSuche.TextChanged, RadNurNetzwerk.CheckedChanged, RadGlobal.CheckedChanged, RadStandort.CheckedChanged, LstType.SelectedIndexChanged, TxtSuche.MouseClick - If TxtSuche.TextLength < 1 Then + If TxtSuche.TextLength < 1 And LstType.SelectedItem = "" Then Suchbegriff = "%%" dgvload_filter(Suchbegriff) + ElseIf TxtSuche.TextLength < 1 And Not LstType.SelectedItem = "" Then + ChkDHCPClients.Checked = False + dgvload_filter(Suchbegriff) Else Suchbegriff = "%" & Class1.hochkomma(TxtSuche.Text) & "%" ChkDHCPClients.Checked = False @@ -684,10 +670,25 @@ Public Class Main TypeFilter() End Sub - Private Sub DgvMainContextMenuItemHost_Click(sender As Object, e As EventArgs) Handles DgvMainContextMenuItemHost.Click, CmDBearbeiten.Click - werbinich() - StartHostBearbeiten() + Private Sub DgvMainContextMenuItemHost_Click(sender As Object, e As EventArgs) Handles DgvMainContextMenuItemHost.Click, CmDBearbeiten.Click, DgVMain.CellDoubleClick, DgVMain.RowHeaderMouseDoubleClick + If Tabelle = "TbL_Netzwerkclients" Then + Try + frmHostBearbeiten.IP = (DgVMain.CurrentRow.Cells("IPAdresse").Value) + Catch + frmHostBearbeiten.IP = (DgVMain.Rows(0).Cells("IPAdresse").Value) + End Try + frmHostBearbeiten.Show() + ElseIf Tabelle = "TbL_Allgemein" Then + Dim Eintrag As New EintragBearbeiten + Eintrag.Titel = Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Titel").Value)) + If Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Rubrik").Value)) = "" Then + Eintrag.rubrik = Class1.DBNull2emptyString((DgVMain.Rows(0).Cells("Rubrik").Value)) + Else + Eintrag.rubrik = Class1.DBNull2emptyString((DgVMain.CurrentRow.Cells("Rubrik").Value)) + End If + Eintrag.Show() + End If End Sub Public Function StartHostBearbeiten() @@ -730,59 +731,16 @@ Public Class Main Private Sub DgvMainContextMenuItemPutty_Click(sender As Object, e As EventArgs) werbinich() - startputty() + Ext_Programme.startputty(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) End Sub Private Sub DgvMainContextMenuItemLink_Click(sender As Object, e As EventArgs) Handles DgvMainContextMenuItemLink.Click, CmdLink.Click werbinich() - startlink() + Ext_Programme.startlink(DgVMain.CurrentRow.Cells("Link").Value) End Sub - Public Function startlink() - Dim URL As String - Try - URL = DgVMain.CurrentRow.Cells("Link").Value - If URL.Contains("http") Or URL.Contains("https") Then - Process.Start(DgVMain.CurrentRow.Cells("Link").Value) - ElseIf URL = "" Then - Exit Function - Else - Dim mstsc As New Process - mstsc.StartInfo.FileName = "mstsc.exe" - mstsc.StartInfo.Arguments = " /v: " & DgVMain.CurrentRow.Cells("Link").Value - mstsc.Start() - - End If - - ' Process.Start("mstsc.exe", "/v: dc01") - Catch ex As Exception - 'MsgBox(ex.Message) - - End Try - - End Function - - Public Function startputty() - Dim MainIP As String = Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value) - Dim Benutzer, Passwort As String - Class1.GetUserPasswort(MainIP, Benutzer, Passwort) - Try - Dim putty As New Process - putty.StartInfo.FileName = "putty.exe" - If Benutzer = "" And Passwort = "" Then - putty.StartInfo.Arguments = DgVMain.CurrentRow.Cells("IPAdresse").Value - Else - putty.StartInfo.Arguments = DgVMain.CurrentRow.Cells("IPAdresse").Value & " -l " & Benutzer & " -pw " & Passwort - End If - putty.Start() - - Catch ex As Exception - MsgBox(ex.Message) - - End Try - End Function Private Sub CmdPutty_Click(sender As Object, e As EventArgs) Handles CmdPutty.Click, PuttyToolStripMenuItem.Click - startputty() + Ext_Programme.startputty(Class1.MainHost(DgVMain.CurrentRow.Cells("IPAdresse").Value)) End Sub Private Sub ChkTools_CheckedChanged(sender As Object, e As EventArgs) Handles ChkTools.CheckedChanged @@ -794,10 +752,7 @@ Public Class Main End Sub Private Sub CmdPing_Click(sender As Object, e As EventArgs) Handles CmdPing.Click, PingToolStripMenuItem.Click - Dim ping As New Process - ping.StartInfo.FileName = "cmd.exe" - ping.StartInfo.Arguments = " /k ping " & DgVMain.CurrentRow.Cells("IPAdresse").Value - ping.Start() + Ext_Programme.pingip(DgVMain.CurrentRow.Cells("IPAdresse").Value) End Sub Private Sub CmdFiles_Click(sender As Object, e As EventArgs) Handles CmdFiles.Click, DateienToolStripMenuItem.Click @@ -931,7 +886,11 @@ Public Class Main Private Sub AnsichtDruckenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AnsichtDruckenToolStripMenuItem.Click - PrintDGV.Print_DataGridView(DgVMain) + ' PrintDGV.Print_DataGridView(DgVMain) + Dim Print As New frmPrint + Print.DruckeZugangsdaten = ChKZugangsdaten.Checked + Print.ds = printds + Print.Show() End Sub Public Function neuerEintrag() @@ -949,10 +908,12 @@ Public Class Main Class1.Absender = "Main" HostBearbeiten.Show() ElseIf Tabelle = "TbL_Allgemein" Then - SenderTitel = "" - SenderRubrik = LstAllgemein.SelectedItem + 'SenderTitel = "" + 'SenderRubrik = LstAllgemein.SelectedItem Neu = True - EintragBearbeiten.Show() + Dim EintragNeu As New EintragBearbeiten + EintragNeu.rubrik = Class1.DBNull2emptyString((DgVMain.Rows(0).Cells("Rubrik").Value)) + EintragNeu.Show() End If End Function @@ -1037,7 +998,7 @@ Public Class Main Else LblInfo.Text = "" If starter = "ImProgramm" Then - MsgBox("Keine neuen Updates verfügbar.") + If MsgBox("Keine neuen Updates verfügbar. Trotzdem ausführen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then StartUpdate() Else End If @@ -1068,28 +1029,30 @@ Public Class Main CheckUpdate("Timer") End Sub - Public Sub EnableDoubleBuffered(ByVal dgv As DataGridView) - Dim dgvType As Type = dgv.[GetType]() - - Dim pi As PropertyInfo = dgvType.GetProperty("DoubleBuffered", - BindingFlags.Instance Or BindingFlags.NonPublic) - - pi.SetValue(dgv, True, Nothing) + Private Sub DgVMain_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DgVMain.CellClick + SelectedDGVIndex = DgVMain.CurrentRow.Index + FirstDisplayedDGVEntry = DgVMain.FirstDisplayedScrollingRowIndex End Sub + Private Sub ObjektLöschenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ObjektLöschenToolStripMenuItem.Click If Tabelle = "TbL_Netzwerkclients" Then Dim ds As New DataSet - Dim IP As String = DgVMain.CurrentRow.Cells("IPAdresse").Value - Dim da As New SqlDataAdapter("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'", con) Dim linked As Boolean = False + Dim Standort, Netzwerkname As String Dim slavenetzwerke As String = "" - Dim NetzID As String = DgVMain.CurrentRow.Cells("NWStandort").Value & "_" & DgVMain.CurrentRow.Cells("NETNAME").Value - Dim Host As String = DgVMain.CurrentRow.Cells("Host").Value - Dim netzwerk As String = DgVMain.CurrentRow.Cells("Netzwerk").Value + Dim NetzID As String + Dim IP As String = DgVMain.CurrentRow.Cells("IPAdresse").Value + Dim Host As String = DgVMain.CurrentRow.Cells("Host").Value + Dim netzwerk As String = Class1.IP2ShortNW(IP) + + Class1.ip2netname(IP, Standort, Netzwerkname) + NetzID = Standort & "_" & Netzwerkname + + Dim da As New SqlDataAdapter("SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'", con) da.Fill(ds) Dim i As Integer = 0 For Each dr As DataRow In ds.Tables(0).Rows @@ -1098,18 +1061,21 @@ Public Class Main Next con.Close() - If DgVMain.CurrentRow.Cells("Linked").Value = "1" Then + If Class1.IsLinked(IP) = "1" Then linked = True End If - If MessageBox.Show("Eintrag >>" & Host & "<< wirklich löschen?", "Hosteintrag löschen", MessageBoxButtons.OKCancel) = DialogResult.OK Then + If MsgBox("Eintrag >>" & Host & "<< wirklich löschen?", MessageBoxButtons.OKCancel + MsgBoxStyle.DefaultButton2, "Hosteintrag löschen") = DialogResult.OK Then + Me.Cursor = Cursors.WaitCursor Try con.Open() cmd.CommandText = "SELECT * FROM TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'" cmd.ExecuteNonQuery() reader = cmd.ExecuteReader() If reader.Read Then + Me.Cursor = Cursors.Default If MsgBox("Dieser Eintrag ist ein Master-Eintrag (Linked). Es werden sämtliche Slave-Einträge" & vbCrLf & slavenetzwerke & " ebenfalls gelöscht. Fortfahren?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then + Me.Cursor = Cursors.WaitCursor con.Close() con.Open() cmd.CommandText = "DELETE TbL_Netzwerkclients WHERE LinkedWith ='" & IP & "'" @@ -1128,6 +1094,7 @@ Public Class Main Catch ex As Exception MsgBox(ex.Message) End Try + Me.Cursor = Cursors.Default con.Close() ElseIf DialogResult.Cancel Then con.Close() @@ -1135,6 +1102,7 @@ Public Class Main End If If linked = False Then If MsgBox("Dazugehörigen Ordner im Dateisystem löschen?", MessageBoxButtons.YesNo + MsgBoxStyle.DefaultButton2, "Dateien löschen") = DialogResult.Yes Then + Me.Cursor = Cursors.WaitCursor Dim path As String = Class1.FilePath & "\" & NetzID & "\" & Host Try If IO.Directory.Exists(path) Then @@ -1153,6 +1121,7 @@ Public Class Main ElseIf DialogResult.No Then Exit Sub End If + Me.Cursor = Cursors.Default End If Class1.RefillNW(netzwerk) @@ -1196,4 +1165,4 @@ Public Class Main End Class - +'1208 diff --git a/Dokumentation/My Project/Resources.Designer.vb b/Dokumentation/My Project/Resources.Designer.vb index efe859d..a05d392 100644 --- a/Dokumentation/My Project/Resources.Designer.vb +++ b/Dokumentation/My Project/Resources.Designer.vb @@ -120,6 +120,36 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property pdf512() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("pdf512", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Print() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Print", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Print20x20() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Print20x20", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Zeichenfolge, die DOKU ähnelt. ''' @@ -139,7 +169,7 @@ Namespace My.Resources End Property ''' - ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.1.22 ähnelt. + ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.1.29 ähnelt. ''' Friend ReadOnly Property Version() As String Get diff --git a/Dokumentation/My Project/Resources.resx b/Dokumentation/My Project/Resources.resx index 1722b7d..1278aef 100644 --- a/Dokumentation/My Project/Resources.resx +++ b/Dokumentation/My Project/Resources.resx @@ -131,7 +131,7 @@ ..\Resources\Link.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - 0.0.1.22 + 0.0.1.29 ..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -142,7 +142,16 @@ DOKU + + ..\Resources\pdf512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Netzwerk20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Print.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Print20x20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Dokumentation/My Project/licenses.licx b/Dokumentation/My Project/licenses.licx new file mode 100644 index 0000000..ffe5619 --- /dev/null +++ b/Dokumentation/My Project/licenses.licx @@ -0,0 +1,2 @@ +GrapeCity.ActiveReports.SectionReport, GrapeCity.ActiveReports.v12, Version=12.2.13986.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff +GrapeCity.ActiveReports.Viewer.Win.Viewer, GrapeCity.ActiveReports.Viewer.Win.v12, Version=12.2.13986.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff diff --git a/Dokumentation/Resources/Print.png b/Dokumentation/Resources/Print.png new file mode 100644 index 0000000..cecf232 Binary files /dev/null and b/Dokumentation/Resources/Print.png differ diff --git a/Dokumentation/Resources/Print20x20.png b/Dokumentation/Resources/Print20x20.png new file mode 100644 index 0000000..bd83b69 Binary files /dev/null and b/Dokumentation/Resources/Print20x20.png differ diff --git a/Dokumentation/Resources/pdf512.png b/Dokumentation/Resources/pdf512.png new file mode 100644 index 0000000..6b6e940 Binary files /dev/null and b/Dokumentation/Resources/pdf512.png differ diff --git a/Dokumentation/frmHostBearbeiten.Designer.vb b/Dokumentation/frmHostBearbeiten.Designer.vb new file mode 100644 index 0000000..6c51a51 --- /dev/null +++ b/Dokumentation/frmHostBearbeiten.Designer.vb @@ -0,0 +1,680 @@ + _ +Partial Class frmHostBearbeiten + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmHostBearbeiten)) + Me.chkFirewall = New System.Windows.Forms.CheckBox() + Me.CmdHostLink = New System.Windows.Forms.Button() + Me.Label11 = New System.Windows.Forms.Label() + Me.TxtStandort = New System.Windows.Forms.TextBox() + Me.TxtName = New System.Windows.Forms.TextBox() + Me.CmdCopy = New System.Windows.Forms.Button() + Me.ChkKennwortAnzeigen = New System.Windows.Forms.CheckBox() + Me.CmdIPChange = New System.Windows.Forms.Button() + Me.TxtIP = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.CmdLink = New System.Windows.Forms.Button() + Me.Label2 = New System.Windows.Forms.Label() + Me.ChkLinked = New System.Windows.Forms.CheckBox() + Me.TxtMAC = New System.Windows.Forms.TextBox() + Me.TxtLinkedWith = New System.Windows.Forms.TextBox() + Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.GeheZuToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.TxtType = New System.Windows.Forms.TextBox() + Me.TxtSeriennummer = New System.Windows.Forms.TextBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label9 = New System.Windows.Forms.Label() + Me.TxtInfo = New System.Windows.Forms.TextBox() + Me.TxtQuickInfo = New System.Windows.Forms.TextBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label8 = New System.Windows.Forms.Label() + Me.CmdSave = New System.Windows.Forms.Button() + Me.TxtModell = New System.Windows.Forms.TextBox() + Me.CmdReset = New System.Windows.Forms.Button() + Me.CmdAbbrechen = New System.Windows.Forms.Button() + Me.LblLink = New System.Windows.Forms.Label() + Me.CmdIPDown = New System.Windows.Forms.Button() + Me.TxtLink = New System.Windows.Forms.TextBox() + Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.MitHTTPFüllenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CmdIPUp = New System.Windows.Forms.Button() + Me.CmdDateien = New System.Windows.Forms.Button() + Me.Label6 = New System.Windows.Forms.Label() + Me.LbIPNetzwerkadresse = New System.Windows.Forms.Label() + Me.TxtKennwort = New System.Windows.Forms.TextBox() + Me.TxtHost = New System.Windows.Forms.TextBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.CmdDelete = New System.Windows.Forms.Button() + Me.TxtBenutzername = New System.Windows.Forms.TextBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.lblSuchfilter = New System.Windows.Forms.Label() + Me.ChkShowSlaves = New System.Windows.Forms.CheckBox() + Me.PanFirewall = New System.Windows.Forms.Panel() + Me.PanSlaves = New System.Windows.Forms.Panel() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ContextMenuStrip2.SuspendLayout() + Me.ContextMenuStrip1.SuspendLayout() + Me.Panel1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'chkFirewall + ' + Me.chkFirewall.AutoSize = True + Me.chkFirewall.Location = New System.Drawing.Point(505, 485) + Me.chkFirewall.Name = "chkFirewall" + Me.chkFirewall.Size = New System.Drawing.Size(123, 17) + Me.chkFirewall.TabIndex = 136 + Me.chkFirewall.Text = "Firewalleinstellungen" + Me.chkFirewall.UseVisualStyleBackColor = True + ' + 'CmdHostLink + ' + Me.CmdHostLink.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdHostLink.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdHostLink.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdHostLink.Location = New System.Drawing.Point(328, 367) + Me.CmdHostLink.Name = "CmdHostLink" + Me.CmdHostLink.Size = New System.Drawing.Size(94, 23) + Me.CmdHostLink.TabIndex = 135 + Me.CmdHostLink.Text = "Link" + Me.CmdHostLink.UseVisualStyleBackColor = False + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Location = New System.Drawing.Point(0, 198) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(47, 13) + Me.Label11.TabIndex = 132 + Me.Label11.Text = "Standort" + ' + 'TxtStandort + ' + Me.TxtStandort.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.TxtStandort.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.TxtStandort.Location = New System.Drawing.Point(3, 214) + Me.TxtStandort.Name = "TxtStandort" + Me.TxtStandort.Size = New System.Drawing.Size(300, 20) + Me.TxtStandort.TabIndex = 97 + ' + 'TxtName + ' + Me.TxtName.Location = New System.Drawing.Point(3, 136) + Me.TxtName.Name = "TxtName" + Me.TxtName.Size = New System.Drawing.Size(300, 20) + Me.TxtName.TabIndex = 95 + ' + 'CmdCopy + ' + Me.CmdCopy.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdCopy.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdCopy.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdCopy.Location = New System.Drawing.Point(109, 57) + Me.CmdCopy.Name = "CmdCopy" + Me.CmdCopy.Size = New System.Drawing.Size(94, 23) + Me.CmdCopy.TabIndex = 131 + Me.CmdCopy.Text = "Kopieren nach" + Me.CmdCopy.UseVisualStyleBackColor = False + ' + 'ChkKennwortAnzeigen + ' + Me.ChkKennwortAnzeigen.AutoSize = True + Me.ChkKennwortAnzeigen.Location = New System.Drawing.Point(383, 275) + Me.ChkKennwortAnzeigen.Name = "ChkKennwortAnzeigen" + Me.ChkKennwortAnzeigen.Size = New System.Drawing.Size(70, 17) + Me.ChkKennwortAnzeigen.TabIndex = 105 + Me.ChkKennwortAnzeigen.Text = "Anzeigen" + Me.ChkKennwortAnzeigen.UseVisualStyleBackColor = True + ' + 'CmdIPChange + ' + Me.CmdIPChange.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdIPChange.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdIPChange.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdIPChange.Location = New System.Drawing.Point(209, 57) + Me.CmdIPChange.Name = "CmdIPChange" + Me.CmdIPChange.Size = New System.Drawing.Size(94, 23) + Me.CmdIPChange.TabIndex = 130 + Me.CmdIPChange.Text = "IP Ändern" + Me.CmdIPChange.UseVisualStyleBackColor = False + ' + 'TxtIP + ' + Me.TxtIP.Enabled = False + Me.TxtIP.Location = New System.Drawing.Point(3, 97) + Me.TxtIP.Name = "TxtIP" + Me.TxtIP.Size = New System.Drawing.Size(219, 20) + Me.TxtIP.TabIndex = 113 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(0, 81) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(58, 13) + Me.Label1.TabIndex = 114 + Me.Label1.Text = "IP Adresse" + ' + 'CmdLink + ' + Me.CmdLink.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdLink.Enabled = False + Me.CmdLink.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdLink.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdLink.Location = New System.Drawing.Point(534, 58) + Me.CmdLink.Name = "CmdLink" + Me.CmdLink.Size = New System.Drawing.Size(94, 23) + Me.CmdLink.TabIndex = 129 + Me.CmdLink.Text = "Verknüpfen" + Me.CmdLink.UseVisualStyleBackColor = False + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(0, 120) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(35, 13) + Me.Label2.TabIndex = 115 + Me.Label2.Text = "Name" + ' + 'ChkLinked + ' + Me.ChkLinked.AutoSize = True + Me.ChkLinked.Location = New System.Drawing.Point(328, 9) + Me.ChkLinked.Name = "ChkLinked" + Me.ChkLinked.Size = New System.Drawing.Size(134, 17) + Me.ChkLinked.TabIndex = 101 + Me.ChkLinked.Text = "zusätzliche IP für Host:" + Me.ChkLinked.UseVisualStyleBackColor = True + ' + 'TxtMAC + ' + Me.TxtMAC.Location = New System.Drawing.Point(328, 97) + Me.TxtMAC.Name = "TxtMAC" + Me.TxtMAC.Size = New System.Drawing.Size(300, 20) + Me.TxtMAC.TabIndex = 102 + ' + 'TxtLinkedWith + ' + Me.TxtLinkedWith.ContextMenuStrip = Me.ContextMenuStrip2 + Me.TxtLinkedWith.Enabled = False + Me.TxtLinkedWith.Location = New System.Drawing.Point(328, 32) + Me.TxtLinkedWith.Name = "TxtLinkedWith" + Me.TxtLinkedWith.Size = New System.Drawing.Size(300, 20) + Me.TxtLinkedWith.TabIndex = 128 + ' + 'ContextMenuStrip2 + ' + Me.ContextMenuStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GeheZuToolStripMenuItem}) + Me.ContextMenuStrip2.Name = "ContextMenuStrip2" + Me.ContextMenuStrip2.Size = New System.Drawing.Size(126, 26) + ' + 'GeheZuToolStripMenuItem + ' + Me.GeheZuToolStripMenuItem.Name = "GeheZuToolStripMenuItem" + Me.GeheZuToolStripMenuItem.Size = New System.Drawing.Size(125, 22) + Me.GeheZuToolStripMenuItem.Text = "Gehe zu..." + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(325, 81) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(30, 13) + Me.Label3.TabIndex = 116 + Me.Label3.Text = "MAC" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(0, 354) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(74, 13) + Me.Label10.TabIndex = 127 + Me.Label10.Text = "Seriennummer" + ' + 'TxtType + ' + Me.TxtType.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.TxtType.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.TxtType.Location = New System.Drawing.Point(3, 331) + Me.TxtType.Name = "TxtType" + Me.TxtType.Size = New System.Drawing.Size(300, 20) + Me.TxtType.TabIndex = 99 + ' + 'TxtSeriennummer + ' + Me.TxtSeriennummer.Location = New System.Drawing.Point(3, 370) + Me.TxtSeriennummer.Name = "TxtSeriennummer" + Me.TxtSeriennummer.Size = New System.Drawing.Size(300, 20) + Me.TxtSeriennummer.TabIndex = 100 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(0, 315) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(31, 13) + Me.Label4.TabIndex = 117 + Me.Label4.Text = "Type" + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Location = New System.Drawing.Point(-2, 237) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(53, 13) + Me.Label9.TabIndex = 126 + Me.Label9.Text = "QuickInfo" + ' + 'TxtInfo + ' + Me.TxtInfo.Location = New System.Drawing.Point(328, 136) + Me.TxtInfo.Multiline = True + Me.TxtInfo.Name = "TxtInfo" + Me.TxtInfo.Size = New System.Drawing.Size(300, 98) + Me.TxtInfo.TabIndex = 103 + ' + 'TxtQuickInfo + ' + Me.TxtQuickInfo.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.TxtQuickInfo.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.TxtQuickInfo.Location = New System.Drawing.Point(1, 255) + Me.TxtQuickInfo.Multiline = True + Me.TxtQuickInfo.Name = "TxtQuickInfo" + Me.TxtQuickInfo.Size = New System.Drawing.Size(300, 57) + Me.TxtQuickInfo.TabIndex = 98 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(325, 120) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(25, 13) + Me.Label5.TabIndex = 118 + Me.Label5.Text = "Info" + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(0, 159) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(38, 13) + Me.Label8.TabIndex = 125 + Me.Label8.Text = "Modell" + ' + 'CmdSave + ' + Me.CmdSave.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdSave.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdSave.Location = New System.Drawing.Point(534, 396) + Me.CmdSave.Name = "CmdSave" + Me.CmdSave.Size = New System.Drawing.Size(94, 23) + Me.CmdSave.TabIndex = 108 + Me.CmdSave.Text = "&Speichern" + Me.CmdSave.UseVisualStyleBackColor = False + ' + 'TxtModell + ' + Me.TxtModell.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.TxtModell.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.TxtModell.Location = New System.Drawing.Point(3, 175) + Me.TxtModell.Name = "TxtModell" + Me.TxtModell.Size = New System.Drawing.Size(300, 20) + Me.TxtModell.TabIndex = 96 + ' + 'CmdReset + ' + Me.CmdReset.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdReset.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdReset.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdReset.Location = New System.Drawing.Point(328, 425) + Me.CmdReset.Name = "CmdReset" + Me.CmdReset.Size = New System.Drawing.Size(94, 23) + Me.CmdReset.TabIndex = 111 + Me.CmdReset.Text = "Reset" + Me.CmdReset.UseVisualStyleBackColor = False + ' + 'CmdAbbrechen + ' + Me.CmdAbbrechen.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdAbbrechen.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdAbbrechen.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdAbbrechen.Location = New System.Drawing.Point(534, 425) + Me.CmdAbbrechen.Name = "CmdAbbrechen" + Me.CmdAbbrechen.Size = New System.Drawing.Size(94, 23) + Me.CmdAbbrechen.TabIndex = 109 + Me.CmdAbbrechen.Text = "Schließen" + Me.CmdAbbrechen.UseVisualStyleBackColor = False + ' + 'LblLink + ' + Me.LblLink.AutoSize = True + Me.LblLink.Location = New System.Drawing.Point(325, 315) + Me.LblLink.Name = "LblLink" + Me.LblLink.Size = New System.Drawing.Size(78, 13) + Me.LblLink.TabIndex = 124 + Me.LblLink.Text = "Link zum Gerät" + ' + 'CmdIPDown + ' + Me.CmdIPDown.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdIPDown.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdIPDown.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdIPDown.Location = New System.Drawing.Point(3, 9) + Me.CmdIPDown.Name = "CmdIPDown" + Me.CmdIPDown.Size = New System.Drawing.Size(75, 23) + Me.CmdIPDown.TabIndex = 119 + Me.CmdIPDown.Text = "-" + Me.CmdIPDown.UseVisualStyleBackColor = False + ' + 'TxtLink + ' + Me.TxtLink.ContextMenuStrip = Me.ContextMenuStrip1 + Me.TxtLink.Location = New System.Drawing.Point(328, 331) + Me.TxtLink.Name = "TxtLink" + Me.TxtLink.Size = New System.Drawing.Size(300, 20) + Me.TxtLink.TabIndex = 107 + ' + 'ContextMenuStrip1 + ' + Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MitHTTPFüllenToolStripMenuItem}) + Me.ContextMenuStrip1.Name = "ContextMenuStrip1" + Me.ContextMenuStrip1.Size = New System.Drawing.Size(159, 26) + ' + 'MitHTTPFüllenToolStripMenuItem + ' + Me.MitHTTPFüllenToolStripMenuItem.Name = "MitHTTPFüllenToolStripMenuItem" + Me.MitHTTPFüllenToolStripMenuItem.Size = New System.Drawing.Size(158, 22) + Me.MitHTTPFüllenToolStripMenuItem.Text = "mit HTTP füllen" + ' + 'CmdIPUp + ' + Me.CmdIPUp.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdIPUp.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdIPUp.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdIPUp.Location = New System.Drawing.Point(228, 9) + Me.CmdIPUp.Name = "CmdIPUp" + Me.CmdIPUp.Size = New System.Drawing.Size(75, 23) + Me.CmdIPUp.TabIndex = 120 + Me.CmdIPUp.Text = "+" + Me.CmdIPUp.UseVisualStyleBackColor = False + ' + 'CmdDateien + ' + Me.CmdDateien.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdDateien.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdDateien.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdDateien.Location = New System.Drawing.Point(328, 396) + Me.CmdDateien.Name = "CmdDateien" + Me.CmdDateien.Size = New System.Drawing.Size(94, 23) + Me.CmdDateien.TabIndex = 110 + Me.CmdDateien.Text = "Dateien" + Me.CmdDateien.UseVisualStyleBackColor = False + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(325, 276) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(52, 13) + Me.Label6.TabIndex = 123 + Me.Label6.Text = "Kennwort" + ' + 'LbIPNetzwerkadresse + ' + Me.LbIPNetzwerkadresse.AutoSize = True + Me.LbIPNetzwerkadresse.Location = New System.Drawing.Point(225, 81) + Me.LbIPNetzwerkadresse.Name = "LbIPNetzwerkadresse" + Me.LbIPNetzwerkadresse.Size = New System.Drawing.Size(43, 13) + Me.LbIPNetzwerkadresse.TabIndex = 121 + Me.LbIPNetzwerkadresse.Text = "HostNr." + ' + 'TxtKennwort + ' + Me.TxtKennwort.Location = New System.Drawing.Point(328, 292) + Me.TxtKennwort.Name = "TxtKennwort" + Me.TxtKennwort.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42) + Me.TxtKennwort.Size = New System.Drawing.Size(300, 20) + Me.TxtKennwort.TabIndex = 106 + ' + 'TxtHost + ' + Me.TxtHost.Location = New System.Drawing.Point(228, 97) + Me.TxtHost.Name = "TxtHost" + Me.TxtHost.Size = New System.Drawing.Size(75, 20) + Me.TxtHost.TabIndex = 94 + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(325, 237) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(75, 13) + Me.Label7.TabIndex = 122 + Me.Label7.Text = "Benutzername" + ' + 'CmdDelete + ' + Me.CmdDelete.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdDelete.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdDelete.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdDelete.Location = New System.Drawing.Point(1, 425) + Me.CmdDelete.Name = "CmdDelete" + Me.CmdDelete.Size = New System.Drawing.Size(94, 23) + Me.CmdDelete.TabIndex = 112 + Me.CmdDelete.Text = "Löschen" + Me.CmdDelete.UseVisualStyleBackColor = False + ' + 'TxtBenutzername + ' + Me.TxtBenutzername.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest + Me.TxtBenutzername.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource + Me.TxtBenutzername.Location = New System.Drawing.Point(328, 253) + Me.TxtBenutzername.Name = "TxtBenutzername" + Me.TxtBenutzername.Size = New System.Drawing.Size(300, 20) + Me.TxtBenutzername.TabIndex = 104 + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.lblSuchfilter) + Me.Panel1.Controls.Add(Me.ChkShowSlaves) + Me.Panel1.Controls.Add(Me.chkFirewall) + Me.Panel1.Controls.Add(Me.TxtBenutzername) + Me.Panel1.Controls.Add(Me.CmdHostLink) + Me.Panel1.Controls.Add(Me.CmdDelete) + Me.Panel1.Controls.Add(Me.Label7) + Me.Panel1.Controls.Add(Me.TxtHost) + Me.Panel1.Controls.Add(Me.Label11) + Me.Panel1.Controls.Add(Me.TxtKennwort) + Me.Panel1.Controls.Add(Me.TxtStandort) + Me.Panel1.Controls.Add(Me.LbIPNetzwerkadresse) + Me.Panel1.Controls.Add(Me.TxtName) + Me.Panel1.Controls.Add(Me.Label6) + Me.Panel1.Controls.Add(Me.CmdCopy) + Me.Panel1.Controls.Add(Me.CmdDateien) + Me.Panel1.Controls.Add(Me.ChkKennwortAnzeigen) + Me.Panel1.Controls.Add(Me.CmdIPUp) + Me.Panel1.Controls.Add(Me.CmdIPChange) + Me.Panel1.Controls.Add(Me.TxtLink) + Me.Panel1.Controls.Add(Me.TxtIP) + Me.Panel1.Controls.Add(Me.CmdIPDown) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Controls.Add(Me.LblLink) + Me.Panel1.Controls.Add(Me.CmdLink) + Me.Panel1.Controls.Add(Me.CmdAbbrechen) + Me.Panel1.Controls.Add(Me.Label2) + Me.Panel1.Controls.Add(Me.CmdReset) + Me.Panel1.Controls.Add(Me.ChkLinked) + Me.Panel1.Controls.Add(Me.TxtModell) + Me.Panel1.Controls.Add(Me.TxtMAC) + Me.Panel1.Controls.Add(Me.CmdSave) + Me.Panel1.Controls.Add(Me.TxtLinkedWith) + Me.Panel1.Controls.Add(Me.Label8) + Me.Panel1.Controls.Add(Me.Label3) + Me.Panel1.Controls.Add(Me.Label5) + Me.Panel1.Controls.Add(Me.Label10) + Me.Panel1.Controls.Add(Me.TxtQuickInfo) + Me.Panel1.Controls.Add(Me.TxtType) + Me.Panel1.Controls.Add(Me.TxtInfo) + Me.Panel1.Controls.Add(Me.TxtSeriennummer) + Me.Panel1.Controls.Add(Me.Label9) + Me.Panel1.Controls.Add(Me.Label4) + Me.Panel1.Location = New System.Drawing.Point(12, 12) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(643, 518) + Me.Panel1.TabIndex = 137 + ' + 'lblSuchfilter + ' + Me.lblSuchfilter.AutoSize = True + Me.lblSuchfilter.BackColor = System.Drawing.Color.IndianRed + Me.lblSuchfilter.Location = New System.Drawing.Point(96, 14) + Me.lblSuchfilter.Name = "lblSuchfilter" + Me.lblSuchfilter.Size = New System.Drawing.Size(107, 13) + Me.lblSuchfilter.TabIndex = 138 + Me.lblSuchfilter.Text = "Suchfilter ist aktiviert!" + Me.lblSuchfilter.Visible = False + ' + 'ChkShowSlaves + ' + Me.ChkShowSlaves.AutoSize = True + Me.ChkShowSlaves.Location = New System.Drawing.Point(383, 485) + Me.ChkShowSlaves.Name = "ChkShowSlaves" + Me.ChkShowSlaves.Size = New System.Drawing.Size(104, 17) + Me.ChkShowSlaves.TabIndex = 137 + Me.ChkShowSlaves.Text = "Slaves anzeigen" + Me.ChkShowSlaves.UseVisualStyleBackColor = True + Me.ChkShowSlaves.Visible = False + ' + 'PanFirewall + ' + Me.PanFirewall.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.PanFirewall.Location = New System.Drawing.Point(909, 12) + Me.PanFirewall.Name = "PanFirewall" + Me.PanFirewall.Size = New System.Drawing.Size(507, 518) + Me.PanFirewall.TabIndex = 138 + Me.PanFirewall.Visible = False + ' + 'PanSlaves + ' + Me.PanSlaves.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.PanSlaves.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.PanSlaves.Location = New System.Drawing.Point(661, 12) + Me.PanSlaves.MinimumSize = New System.Drawing.Size(50, 50) + Me.PanSlaves.Name = "PanSlaves" + Me.PanSlaves.Size = New System.Drawing.Size(242, 518) + Me.PanSlaves.TabIndex = 139 + Me.PanSlaves.Visible = False + ' + 'PictureBox1 + ' + Me.PictureBox1.InitialImage = Global.Dokumentation.My.Resources.Resources.pdf512 + Me.PictureBox1.Location = New System.Drawing.Point(507, 626) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(100, 50) + Me.PictureBox1.TabIndex = 140 + Me.PictureBox1.TabStop = False + ' + 'frmHostBearbeiten + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.ClientSize = New System.Drawing.Size(1608, 815) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.PanSlaves) + Me.Controls.Add(Me.PanFirewall) + Me.Controls.Add(Me.Panel1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.KeyPreview = True + Me.Name = "frmHostBearbeiten" + Me.Text = " Host bearbeiten" + Me.ContextMenuStrip2.ResumeLayout(False) + Me.ContextMenuStrip1.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents chkFirewall As CheckBox + Friend WithEvents CmdHostLink As Button + Friend WithEvents Label11 As Label + Friend WithEvents TxtStandort As TextBox + Friend WithEvents TxtName As TextBox + Friend WithEvents CmdCopy As Button + Friend WithEvents ChkKennwortAnzeigen As CheckBox + Friend WithEvents CmdIPChange As Button + Friend WithEvents TxtIP As TextBox + Friend WithEvents Label1 As Label + Friend WithEvents CmdLink As Button + Friend WithEvents Label2 As Label + Friend WithEvents ChkLinked As CheckBox + Friend WithEvents TxtMAC As TextBox + Friend WithEvents TxtLinkedWith As TextBox + Friend WithEvents Label3 As Label + Friend WithEvents Label10 As Label + Friend WithEvents TxtType As TextBox + Friend WithEvents TxtSeriennummer As TextBox + Friend WithEvents Label4 As Label + Private WithEvents Label9 As Label + Friend WithEvents TxtInfo As TextBox + Friend WithEvents TxtQuickInfo As TextBox + Private WithEvents Label5 As Label + Friend WithEvents Label8 As Label + Friend WithEvents CmdSave As Button + Friend WithEvents TxtModell As TextBox + Friend WithEvents CmdReset As Button + Friend WithEvents CmdAbbrechen As Button + Friend WithEvents LblLink As Label + Friend WithEvents CmdIPDown As Button + Friend WithEvents TxtLink As TextBox + Friend WithEvents CmdIPUp As Button + Friend WithEvents CmdDateien As Button + Friend WithEvents Label6 As Label + Friend WithEvents LbIPNetzwerkadresse As Label + Friend WithEvents TxtKennwort As TextBox + Friend WithEvents TxtHost As TextBox + Friend WithEvents Label7 As Label + Friend WithEvents CmdDelete As Button + Friend WithEvents TxtBenutzername As TextBox + Friend WithEvents PanFirewall As Panel + Friend WithEvents ChkShowSlaves As CheckBox + Friend WithEvents PanSlaves As Panel + Friend WithEvents Panel1 As Panel + Friend WithEvents ContextMenuStrip1 As ContextMenuStrip + Friend WithEvents MitHTTPFüllenToolStripMenuItem As ToolStripMenuItem + Friend WithEvents ContextMenuStrip2 As ContextMenuStrip + Friend WithEvents GeheZuToolStripMenuItem As ToolStripMenuItem + Friend WithEvents lblSuchfilter As Label + Friend WithEvents PictureBox1 As PictureBox +End Class diff --git a/Dokumentation/frmHostBearbeiten.resx b/Dokumentation/frmHostBearbeiten.resx new file mode 100644 index 0000000..a1de5b8 --- /dev/null +++ b/Dokumentation/frmHostBearbeiten.resx @@ -0,0 +1,986 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 174, 17 + + + 17, 17 + + + + + AAABAAEAgIAAAAAAGAAoyAAAFgAAACgAAACAAAAAAAEAAAEAGAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAA + AACIYDh5TSB6TSF2SRt3Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh12SRt6TSF5TSCIYDh6TSFqOAZqOQdmMwBoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNmMwBqOQdqOAZ6TSF5TB9pNwVqOQdo + NQNoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNQNqOQdpNwV5TB9uPQ1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBuPQ1tPAtmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBt + PAtxQhNmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBxQhN3SRxnNAFoNQNmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNQNnNAF3SRx4Sx5oNQNoNgRm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBoNgRoNQN4Sx53Sh1oNQNoNgRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3 + Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBmMwDm4N3///////// + ///////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////// + //////////////////////////////////////////////90SSZmMwBmMwBmMwBmMwBmMwB0SSb39fT/ + //////////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////////+YfWtmMwBmMwBm + MwBmMwB0SSbu6+n////////////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT///// + ///////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5zUy8X////////////////L + v7itmo1mMwBmMwCYfWv///////90SSZmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRm + MwBmMwBmMwBmMwB0SSb////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDu6+n///////////////////////////////////////////////////////////+j + jH1mMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwC3p5z/ + ///////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwCYfWv////////////////Bs6pmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwB0SSb///////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCt + mo3////////////////////////////////////m4N2Mbli3p5z///////+jjH1mMwBmMwBmMwBmMwBm + MwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwCMblj///////////////////////////+M + blhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////////// + ///////////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////+3 + p5xmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDU + y8X///////////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////90SSZm + MwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j////////////////////////////////////////////39fTm + 4N3///////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwC3 + p5z////////////////////////////d1tFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3 + p5z////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwCjjH3////////////////Lv7hmMwBmMwBmMwBmMwBmMwCAXUL///////////////////90 + SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL39fT////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBm + MwC3p5z////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z////////////////////U + y8WAXUJmMwBmMwC3p5z39fT////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3 + Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwDBs6r////////////////u6+n///////////+tmo1mMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////90SSZmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj////////////////m4N1mMwBmMwBmMwBm + MwBmMwC3p5z////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////// + ///////////////////////////////////////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBm + MwBmMwD39fT////////////////Lv7hmMwBmMwBmMwBmMwBmMwCAXULu6+n////////////////39fRm + MwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwDm4N3///////////// + //+jjH3////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb///////////// + //////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD3 + 9fT///////////////90SSZmMwBmMwBmMwBmMwDm4N3///////////////+jjH1mMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDu6+n///////////////////////////////////////////////////// + //////+3p5xmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////////////+MblhmMwBmMwBmMwBmMwBm + MwBmMwCMblj///////////////////90SSZmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRm + MwBmMwBmMwBmMwD39fT///////////////9mMwDLv7j///////////+3p5xmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwDm4N3////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+YfWtmMwBmMwBmMwCAXUL///////// + ///////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////// + //////////////////////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwC3p5z///////// + //////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+jjH1mMwBmMwBmMwBm + MwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwCMblj////////////////m4N1mMwCAXUL39fT/ + ///////39fSAXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////Uy8VmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////// + ///////////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwDUy8X////////////u6+lmMwBmMwBmMwBmMwCMblj///////////////////90SSZmMwBm + MwBmMwBmMwBmMwBmMwC3p5z///////////////////9mMwBmMwBmMwB0SSb///////////////////// + //////////////+3p5xmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwCjjH3/ + ///////////////Uy8VmMwBmMwC3p5z////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwC3p5z////////////////////////////////////////////////////m4N1mMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwCjjH3////////////////////////////////////////////////////////////d + 1tGMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+tmo1mMwBmMwBmMwCt + mo3////////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////////////90SSZm + MwBmMwBmMwDm4N3////////////////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBoNgRoNQN3 + Sh13Sh1oNQNoNgRmMwBmMwBmMwC3p5z///////////////+3p5xmMwBmMwB0SSb39fT///////////+Y + fWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////////////////////////// + //////////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb///////////////////////////// + //////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3 + p5z////////////39fR0SSZmMwBmMwDBs6r////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBm + MwCjjH3///////////////////+jjH1mMwBmMwBmMwDBs6r////////////////////////////////3 + 9fRmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwDUy8X///////////////+t + mo1mMwBmMwBmMwCtmo3////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT///// + //////////////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwDu6+n///////////////90SSZmMwBmMwBmMwBmMwBmMwCjjH3m4N3////////////////39fR0SSZm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///////////+3p5xmMwBmMwDUy8X///////////// + //+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb////////////////////Bs6pmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRm + MwBmMwBmMwDu6+n///////////////+MblhmMwBmMwBmMwBmMwDu6+n///////////+tmo1mMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDd1tH////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+YfWtmMwBmMwBmMwBmMwBmMwBm + MwB0SSbu6+n///////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////// + ///39fSAXUJmMwD39fT///////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///// + ///////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////Uy8W3p5y3p5yYfWtmMwBmMwBm + MwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwB0SSb///////////////////90SSZmMwBmMwBmMwBm + MwCtmo3////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////m4N1m + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////// + //////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j////////////////Bs6pmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwDUy8X////////////Lv7h0SSb///////////////////90SSZmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDu + 6+n///////////////+jjH1mMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwCYfWv///// + ///////////u6+lmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////+3p5xmMwBmMwBmMwBmMwBmMwBm + MwBmMwCjjH3///////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwCYfWv////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3///// + //////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+tmo3/ + ///////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////// + //+YfWtmMwBmMwBmMwBmMwBmMwCtmo3////////////////u6+lmMwBmMwBmMwBmMwBmMwBoNgRoNQN3 + Sh13Sh1oNQNoNgRmMwBmMwC3p5z////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwCYfWv///// + //////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////////+MblhmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb////////////////u6+lmMwBm + MwBmMwBmMwBmMwCAXULLv7j///////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwC3p5z////////////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDd1tH///////////////////+3p5x0SSZmMwBmMwC3p5z///////////////////+t + mo1mMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwDLv7j////////////////Bs6pm + MwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT/ + //////////////////////////////////////////////////////////90SSZmMwBmMwBmMwBmMwBm + MwBmMwDm4N3////////////////////////////////////////////////////////////Bs6pmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///////////////////////////+3 + p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////// + ///////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRm + MwBmMwDm4N3///////////////+tmo1mMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+Y + fWtmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////////////////////////////////////// + //////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwDLv7j///////////////////////////////////// + ///////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCj + jH3///////////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwCtmo339fT///////////////////////////////////////+tmo1mMwBmMwBmMwBmMwBmMwBm + MwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwB0SSb///////////////////+MblhmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwDLv7j////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwC3p5z///////////////// + //////////////////////////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwC3p5z///// + ///////////////////////////////////////m4N23p5yMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////////////////9mMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH23p5z39fT////////////////Uy8W3 + p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3 + Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3 + Sh13Sh1oNQNoNgRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN3Sh14Sx5oNQNoNgRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBoNgRoNQN4Sx53SRxnNAFoNQNm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBoNQNnNAF3SRxxQhNmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBxQhNtPAtmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBt + PAtuPQ1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm + MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBuPQ15TB9pNwVqOQdoNQNoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRo + NgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNgRoNQNqOQdpNwV5TB96TSFqOAZqOQdm + MwBoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNoNQNo + NQNmMwBqOQdqOAZ6TSGIYDh5TSB6TSF2SRt3Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13 + Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh13Sh12SRt6TSF5TSCIYDj///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARQUFB+fn6oqKjZ2dn///// + ///////////////////////////////////////////////////////Z2dmoqKh+fn5QUFAEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAR+fn6oqKjZ2dn///////////////////////////////////////8E + BAQEBAQEBAQEBAQEBATh4eH////////////////////////////////////////////////////////Z + 2dkEBAQEBAQEBAQEBAQEBATZ2dn////////////////////////////////IyMicnJxqamoEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBARQUFB+fn6+vr7p6en///////////////////////////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAR+fn7h4eH////////////////////////////////////////////h + 4eF+fn4EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARqamrh4eH/ + //////////////////////////////8EBAQEBAQEBAQEBAQEBARqamr///////////////////////// + //////////////////////////////9+fn4EBAQEBAQEBAQEBAR+fn7///////////////////////// + ///Z2dlQUFAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBASoqKj/ + //////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBATIyMj///////// + ///////////////////////////IyMgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBATIyMj///////////////////////////8EBAQEBAQEBAQEBAQE + BAQEBAS+vr7////////////////////////////////////////////////Z2dkEBAQEBAQEBAQEBAQE + BATZ2dn////////////////////////IyMgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBARqamrx8fH///////////////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT////////////////////////////////////////x8fHR0dGcnJwE + BAQEBAQEBAQEBAQEBAQEBATR0dH////////////////////////////Z2dkEBAQEBAQEBAQEBAQEBAQE + BAScnJzR0dHx8fH////////////////x8fHR0dGcnJwEBAQEBAQEBAQEBAQEBAQEBATZ2dn///////// + //////////////8EBAQEBAQEBAQEBAQEBAQEBAQEBATp6en///////////////////////////////// + //////////9+fn4EBAQEBAQEBAQEBAR+fn7////////////////////////h4eEEBAQEBAQEBAQEBAQE + BAQEBASoqKjR0dHh4eH////////////p6enZ2dm+vr5QUFAEBAQEBAQEBAQEBAQEBAScnJz///////// + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + ///////////////////////////////p6elqamoEBAQEBAQEBAQEBARQUFD///////////////////// + //////9QUFAEBAQEBAQEBAQEBARqamrh4eH////////////////////////////////////////h4eFq + amoEBAQEBAQEBAQEBARQUFD///////////////////////8EBAQEBAQEBAQEBAQEBAQEBAQEBASOjo7/ + ///////////////////////////////////////h4eEEBAQEBAQEBAQEBAQEBATIyMj///////////// + //////////9QUFAEBAQEBAQEBAQEBARqamrh4eH///////////////////////////////////////+c + nJwEBAQEBAQEBAQEBAQEBATZ2dn///////////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT////////////////////////////////////////////////////////x8fEEBAQEBAQE + BAQEBAQEBATIyMj////////////////////R0dEEBAQEBAQEBAQEBAQEBATx8fH///////////////// + ///////////////////////////////x8fEEBAQEBAQEBAQEBAQEBATIyMj///////////////////8E + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBATR0dH///////////////////////////////////+cnJwEBAQE + BAQEBAQEBARQUFD////////////////////////R0dEEBAQEBAQEBAQEBAQEBATh4eH///////////// + //////////////////////////////////+Ojo4EBAQEBAQEBAQEBASOjo7///////////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////+0tLQEBAQEBAQEBAQEBAScnJz///////////////////+cnJwEBAQEBAQE + BAQEBAS0tLT///////////////////////////////////////////////////////+0tLQEBAQEBAQE + BAQEBAScnJz///////////////////8EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBATx8fH///////// + ///////////////////p6ekEBAQEBAQEBAQEBAQEBATIyMj///////////////////////+cnJwEBAQE + BAQEBAQEBAScnJz////////////////////////////////////////////////////h4eEEBAQEBAQE + BAQEBAQEBATx8fH///////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + ///////////////////////////////////////////////////////h4eEEBAQEBAQEBAQEBARqamr/ + //////////////////9+fn4EBAQEBAQEBAQEBATh4eH///////////////////////////////////// + ///////////////////h4eEEBAQEBAQEBAQEBAR+fn7///////////////////8EBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBASoqKj///////////////////////////+cnJwEBAQEBAQEBAQEBARQUFD///// + //////////////////////9qamoEBAQEBAQEBAQEBATIyMj///////////////////////////////// + //////////////////////9QUFAEBAQEBAQEBAQEBATZ2dn///////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////// + //////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////8EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBATZ2dn////////////////////p + 6ekEBAQEBAQEBAQEBAQEBATIyMj///////////////////////////8EBAQEBAQEBAQEBAQEBATZ2dn/ + //////////////////////////////////////////////////////9+fn4EBAQEBAQEBAQEBATIyMj/ + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////// + //8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAR+fn4EBAQEBAQE + BAQEBARqamr///////////////////+cnJwEBAQEBAQEBAQEBARQUFD///////////////////////// + //////8EBAQEBAQEBAQEBAQEBATh4eH///////////////////////////////////////////////// + //////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////////8EBAQE + BAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////// + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8E + BAQEBAQEBAQEBAQEBATp6ekEBAQEBAQEBAQEBAQEBAS0tLT////////////p6ekEBAQEBAQEBAQEBAQE + BATIyMj///////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQE + BAQEBAT///////////////////////////////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///+0tLQEBAQEBAQEBAQEBAQEBATp + 6en///////+cnJwEBAQEBAQEBAQEBARQUFD///////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////9+fn4EBAQE + BAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT/ + //////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQE + BAT///////9qamoEBAQEBAQEBAQEBAR+fn7////p6ekEBAQEBAQEBAQEBAQEBATIyMj///////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////// + //////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////8EBAQEBAQEBAQEBAQEBAT////////h4eEEBAQEBAQEBAQEBAQEBATIyMicnJwEBAQE + BAQEBAQEBAQEBATx8fH///////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////////////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT/ + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////// + //8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////////+o + qKgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAS0tLT///////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////////8EBAQE + BAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////// + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8E + BAQEBAQEBAQEBAQEBAT////////////x8fFQUFAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBATx8fH/ + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQE + BAQEBAT///////////////////////////////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT////////////////Z2dkEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAS0tLT///////////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////9+fn4EBAQE + BAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT/ + //////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQE + BAT///////////////////+Ojo4EBAQEBAQEBAQEBAQEBAQEBAQEBATx8fH///////////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////// + //////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////8EBAQEBAQEBAQEBAQEBAT////////////////////x8fEEBAQEBAQEBAQEBAQEBAQE + BAS0tLT///////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////////////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT/ + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////// + //8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////////// + //////////++vr4EBAQEBAQEBAQEBAQEBATR0dH///////////////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////////8EBAQE + BAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////// + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8E + BAQEBAQEBAQEBAQEBAT///////////////////////////9+fn4EBAQEBAQEBAQEBARqamr///////// + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQE + BAQEBAT///////////////////////////////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT////////////////////////////p + 6ekEBAQEBAQEBAQEBAQEBAS+vr7///////////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////9+fn4EBAQE + BAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT/ + //////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQE + BAT///////////////////////////////+0tLQEBAQEBAQEBAQEBAQEBATp6en///////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////// + //////////////////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////9QUFAEBAQE + BAQEBAQEBASOjo7///////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////////////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT/ + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////// + //8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////8EBAQEBAQEBAQEBAQEBAT///////////// + ///////////////////////Z2dkEBAQEBAQEBAQEBAQEBATR0dH///////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAT////////////////////////////////////////////////////////////h4eEEBAQE + BAQEBAQEBARqamr///////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////// + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////8E + BAQEBAQEBAQEBAQEBAT///////////////////////////////////////+oqKgEBAQEBAQEBAQEBARQ + UFDx8fH///////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////+0tLQEBAQEBAQEBAQEBAScnJz///////////////////9+fn4EBAQEBAQE + BAQEBATh4eH////////////////////////////////////////////////////////h4eEEBAQEBAQE + BAQEBAR+fn7///////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////// + ///////////x8fEEBAQEBAQEBAQEBAQEBASoqKj///////////////////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////9+fn4EBAQE + BAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + ///////////////////////////////////////////////////x8fEEBAQEBAQEBAQEBAQEBATIyMj/ + //////////////////+cnJwEBAQEBAQEBAQEBAS0tLT///////////////////////////////////// + //////////////////+0tLQEBAQEBAQEBAQEBAScnJz///////////////////8EBAQEBAQEBAQEBAQE + BAT////////////////////////////////////////////R0dEEBAQEBAQEBAQEBAQEBATh4eH///// + //////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////// + //////8EBAQEBAQEBAQEBAQEBAT////////////////////////////////////////////////////p + 6elqamoEBAQEBAQEBAQEBARQUFD////////////////////////R0dEEBAQEBAQEBAQEBAQEBATx8fH/ + ///////////////////////////////////////////////x8fEEBAQEBAQEBAQEBAQEBATR0dH///// + //////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////// + //9+fn4EBAQEBAQEBAQEBARqamr///////////////////////////8EBAQEBAQEBAQEBAQEBAT///// + //////////////////////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT/ + //////////////////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + ///////////////////x8fHR0dGcnJwEBAQEBAQEBAQEBAQEBAQEBATZ2dn///////////////////// + //////9QUFAEBAQEBAQEBAQEBARqamrh4eH////////////////////////////////////////h4eFq + amoEBAQEBAQEBAQEBARQUFD///////////////////////8EBAQEBAQEBAQEBAQEBAT///////////// + ///////////////////////////////////p6ekEBAQEBAQEBAQEBAQEBAS+vr7///////////////// + //////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////// + //////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE + BATIyMj////////////////////////////////Z2dkEBAQEBAQEBAQEBAQEBAQEBAScnJzR0dHx8fH/ + ///////////////x8fHR0dGcnJwEBAQEBAQEBAQEBAQEBAQEBATZ2dn///////////////////////8E + BAQEBAQEBAQEBAQEBAT///////////////////////////////////////////////////++vr4EBAQE + BAQEBAQEBAQEBATx8fH///////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////// + //////////////////////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////// + //////////////////////8EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAR+fn7h4eH////////////////////////////////////////IyMgE + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBATI + yMj///////////////////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////// + //////////////////////////9qamoEBAQEBAQEBAQEBASOjo7///////////////////8EBAQEBAQE + BAQEBAQEBAT///////////////////////////////////////////////////////////9+fn4EBAQE + BAQEBAQEBAS0tLT///////////////////////////////////////8EBAQEBAQEBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARQUFB+fn6oqKjh4eH///////////////////// + ///////////////////////////////h4eF+fn4EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE + BAQEBAQEBAQEBAQEBAQEBAR+fn7h4eH///////////////////////////////8EBAQEBAQEBAQEBAQE + BAT////////////////////////////////////////////////////////h4eEEBAQEBAQEBAQEBAQE + BATZ2dn///////////////8EBAQEBAQEBAQEBAQEBAT///////////////////////////////////// + //////////////////////9+fn4EBAQEBAQEBAQEBAS0tLT///////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////h4eGoqKh+ + fn5QUFAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAR+fn6oqKjZ2dn///////////////////////// + //////////////+0tLS0tLS0tLS0tLS0tLT///////////////////////////////////////////// + ///////////////R0dG0tLS0tLS0tLS0tLS+vr7///////////////+0tLS0tLS0tLS0tLS0tLT///// + ///////////////////////////////////////////////////////IyMi0tLS0tLS0tLS0tLTZ2dn/ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/Dokumentation/frmHostBearbeiten.vb b/Dokumentation/frmHostBearbeiten.vb new file mode 100644 index 0000000..fbbc270 --- /dev/null +++ b/Dokumentation/frmHostBearbeiten.vb @@ -0,0 +1,306 @@ +Public Class frmHostBearbeiten + + Public Shared IP As String = "" + Public host As New Host + + Private Sub frmHostBearbeiten_Load(sender As Object, e As EventArgs) Handles Me.Load + lblSuchfilter.Visible = Main.SucheAktiv + host = New Host + host.gethost(IP) + fillform(host) + End Sub + + Public Function fillform(host As Host, Optional ByVal Linked As Boolean = False) + If Linked = False Then '''''''''''''''''' + TxtIP.Text = host.IPAdresse + TxtHost.Text = host.HOST + + ChkLinked.Checked = host.Linked + TxtLinkedWith.Text = host.LinkedWith + ElseIf Linked = True Then + If host.Linked Then TxtLinkedWith.Text = host.LinkedWith + End If + + TxtName.Text = host.FQDN + TxtModell.Text = host.Modell + TxtStandort.Text = host.Standort + TxtQuickInfo.Text = host.QINFO + TxtType.Text = host.TYPE + TxtSeriennummer.Text = host.Seriennummer + + TxtMAC.Text = host.MAC + TxtInfo.Text = host.INFO + TxtBenutzername.Text = host.Benutzer + TxtKennwort.Text = host.Passwort + TxtLink.Text = host.LINK + + Dim ds As New DataSet + Host.getSlaves(host.IPAdresse, ds) + If ds.Tables(0).Rows.Count > 0 Then + ShowSlavesPanel(True, ds) + Else + ShowSlavesPanel(False) + End If + + chkFirewall.Checked = host.Firewall + ShowFirewallPanel(chkFirewall.Checked) + + CmdIPChange.Enabled = Not ChkLinked.Checked + End Function + + Public Function LoadFromExternal(IPtoLoad As String) + Dim host As New Host + host.gethost(IPtoLoad) + fillform(host) + End Function + + Function fillHost() + With host + .IPAdresse = TxtIP.Text + .FQDN = TxtName.Text + .HOST = TxtHost.Text + .Modell = TxtModell.Text + .Standort = TxtStandort.Text + .QINFO = TxtQuickInfo.Text + .TYPE = TxtType.Text + .Seriennummer = TxtSeriennummer.Text + + .Linked = ChkLinked.Checked + .LinkedWith = TxtLinkedWith.Text + + .MAC = TxtMAC.Text + .INFO = TxtInfo.Text + .Benutzer = TxtBenutzername.Text + .Passwort = TxtKennwort.Text + .LINK = TxtLink.Text + + .Firewall = chkFirewall.Checked + End With + End Function + + Private Sub CmdIPUp_Click(sender As Object, e As EventArgs) Handles CmdIPUp.Click, CmdIPDown.Click + Dim starthost, endhost As Integer + Class1.getStartEndHost(host.IPAdresse, starthost, endhost) + Dim newip As String = "" + Dim newhost As String = "" + ' Dim meh As String = Main.DgVMain.Rows(0).Cells("IPAdresse").Value + + + If Main.SucheAktiv = False Then + + ''' + If sender.name = "CmdIPUp" Then + If host.HOST + 1 > endhost Then + newhost = endhost + Else + newhost = host.HOST + 1 + Main.SelectedDGVIndex = Main.SelectedDGVIndex + 1 + If Main.FirstDisplayedDGVEntry + 1 <= endhost Then Main.FirstDisplayedDGVEntry = Main.FirstDisplayedDGVEntry + 1 + End If + newip = Class1.ip2ipnet(host.IPAdresse) & newhost + + End If + + If sender.name = "CmdIPDown" Then + If host.HOST - 1 <= starthost Then + newhost = starthost + Else + newhost = host.HOST - 1 + Main.SelectedDGVIndex = Main.SelectedDGVIndex - 1 + If Main.FirstDisplayedDGVEntry - 1 >= starthost Then + Main.FirstDisplayedDGVEntry = Main.FirstDisplayedDGVEntry - 1 + Else + Main.FirstDisplayedDGVEntry = 0 + End If + End If + newip = Class1.ip2ipnet(host.IPAdresse) & newhost + + End If + + ''' newhost = meh.Rows(Main.SelectedDGVIndex).Cells("IPAdresse").Value + ElseIf Main.SucheAktiv = True Then + Dim meh As DataGridView = Main.DgVMain + + If sender.name = "CmdIPUp" Then + + If Main.SelectedDGVIndex + 1 < (meh.Rows.Count - 1) Then Main.SelectedDGVIndex = Main.SelectedDGVIndex + 1 + newip = meh.Rows(Main.SelectedDGVIndex).Cells("IPAdresse").Value + If Main.FirstDisplayedDGVEntry + 1 <= endhost Then Main.FirstDisplayedDGVEntry = Main.FirstDisplayedDGVEntry + 1 + + End If + + If sender.name = "CmdIPDown" Then + + If Main.SelectedDGVIndex - 1 >= 0 Then Main.SelectedDGVIndex = Main.SelectedDGVIndex - 1 + newip = meh.Rows(Main.SelectedDGVIndex).Cells("IPAdresse").Value + If Main.FirstDisplayedDGVEntry - 1 >= 1 Then Main.FirstDisplayedDGVEntry = Main.FirstDisplayedDGVEntry - 1 + + End If + + End If + + host = New Host + host.gethost(newip) + fillform(host) + End Sub + + Private Sub CmdSave_Click(sender As Object, e As EventArgs) Handles CmdSave.Click + fillHost() + host.updateHostEntry(host) + fillform(host) + End Sub + + Private Sub ChkLinked_CheckedChanged(sender As Object, e As EventArgs) Handles ChkLinked.CheckedChanged + TxtLinkedWith.Enabled = ChkLinked.Checked + CmdLink.Enabled = ChkLinked.Checked + If Not ChkLinked.Checked Then TxtLinkedWith.Text = "" + End Sub + + Private Sub CmdLink_Click(sender As Object, e As EventArgs) Handles CmdLink.Click + Dim NETNAME As String = host.NETNAME + Dim Netzwerk As String = host.Netzwerk + host.gethost(TxtLinkedWith.Text) + host.NETNAME = NETNAME + host.Netzwerk = Netzwerk + fillform(host, True) + End Sub + + Private Sub Hostbearbeiten_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + 'abfrage_aenderungenspeichern() + Main.dgvload_filter(Main.Suchbegriff) + End Sub + + Private Sub CmdAbbrechen_Click(sender As Object, e As EventArgs) Handles CmdAbbrechen.Click + 'abfrage_aenderungenspeichern() + ' Main.dgvload_filter(Main.Suchbegriff, False) + Close() + End Sub + + Private Sub chkFirewall_CheckedChanged(sender As Object, e As EventArgs) Handles chkFirewall.MouseClick + Dim hostip As String = TxtIP.Text + If TxtLinkedWith.Text <> "" Then hostip = TxtLinkedWith.Text + + EnableDisableFirewallBoolean(hostip, chkFirewall.Checked) + ShowFirewallPanel(chkFirewall.Checked) + End Sub + Public Function EnableDisableFirewallBoolean(ByVal hostip As String, ByVal EnDisable As Boolean) + SQL.UpdateSQL("TbL_Netzwerkclients", "Firewall = '" & EnDisable & "'", "ipadresse = '" & hostip & "'") + SQL.UpdateSQL("TbL_Netzwerkclients", "Firewall = '" & EnDisable & "'", "linkedwith = '" & hostip & "'") + End Function + + Public Function ShowFirewallPanel(ByVal EnDisable As Boolean) + If EnDisable = True Then + PanFirewall.Controls.Clear() + PanFirewall.Visible = True + Dim UserControl As New uscntr_Firewalleinstellungen + PanFirewall.Size = UserControl.Size + UserControl.SplitContainer1.Panel1Collapsed = True + If host.Linked = False Then UserControl.Host = host.IPAdresse + If host.Linked = True Then UserControl.Host = host.LinkedWith + PanFirewall.Controls.Add(UserControl) + If PanSlaves.Visible = False Then PanFirewall.Location = PanSlaves.Location + If PanSlaves.Visible = True Then PanFirewall.Location = New Point(PanSlaves.Location.X + PanSlaves.Width + 6, PanSlaves.Location.Y) + Else + PanFirewall.Controls.Clear() + PanFirewall.Visible = False + End If + End Function + + Public Function ShowSlavesPanel(ByVal EnDisable As Boolean, Optional ByVal ds As DataSet = Nothing) + If EnDisable = True Then + PanSlaves.Controls.Clear() + PanSlaves.Visible = True + Dim UserControl As New uscntr_Slaves + PanSlaves.Size = UserControl.Size + UserControl.ds = ds + PanSlaves.Controls.Add(UserControl) + Else + PanSlaves.Controls.Clear() + PanSlaves.Visible = False + End If + End Function + + Private Sub TxtHost_KeyUp_Enter(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtHost.KeyUp ', TxtHost.TextChanged + Try + If e.KeyValue = Keys.Enter Then + Dim Netz As String = Class1.ip2ipnet(TxtIP.Text) + Dim NewHost As String = TxtHost.Text + host = New Host + host.gethost(Netz & NewHost) + fillform(host) + End If + Catch + End Try + End Sub + + Private Sub ChkKennwortAnzeigen_CheckedChanged(sender As Object, e As EventArgs) Handles ChkKennwortAnzeigen.CheckedChanged + If ChkKennwortAnzeigen.Checked Then + TxtKennwort.PasswordChar = "" + Else + TxtKennwort.PasswordChar = "*" + End If + End Sub + + Private Sub CmdHostLink_Click(sender As Object, e As EventArgs) Handles CmdHostLink.Click + Ext_Programme.startlink(TxtLink.Text) + End Sub + + Private Sub CmdDateien_Click(sender As Object, e As EventArgs) Handles CmdDateien.Click + cFolder.explorerstarten(TxtIP.Text) + End Sub + + Private Sub CmdReset_Click(sender As Object, e As EventArgs) Handles CmdReset.Click + host = New Host + host.gethost(TxtIP.Text) + fillform(host) + End Sub + + Private Sub CmdCopy_Click(sender As Object, e As EventArgs) Handles CmdCopy.Click + Dim ZielHost As New Host + ZielHost = host + Dim ip As String + Class1.Host2IP(TxtHost.Text, host.NWSTANDORT, host.NETNAME, ip) + ZielHost.IPAdresse = ip + ZielHost.HOST = TxtHost.Text + ZielHost.updateHostEntry(ZielHost) + MsgBox("Host kopiert") + fillform(ZielHost) + End Sub + + Private Sub CmdDelete_Click(sender As Object, e As EventArgs) Handles CmdDelete.Click + fillHost() + host.DeleteHost() + host = New Host + host.gethost(TxtIP.Text) + fillform(host) + End Sub + + Private Sub CmdIPChange_Click(sender As Object, e As EventArgs) Handles CmdIPChange.Click + Dim newip As String = InputBox("neue IP Adresse eingeben:") + host = host.MoveHost(newip) + fillform(host) + End Sub + + Private Sub TxtType_TextChanged(sender As Object, e As EventArgs) Handles TxtType.Enter, TxtStandort.Enter, TxtModell.Enter, TxtBenutzername.Enter + If sender.name = "TxtType" Then Class1.Autocomplete(TxtType, "Type", "Tbl_Netzwerkclients") + If sender.name = "TxtStandort" Then Class1.Autocomplete(TxtStandort, "Standort", "Tbl_Netzwerkclients") + If sender.name = "TxtModell" Then Class1.Autocomplete(TxtModell, "Modell", "Tbl_Netzwerkclients") + If sender.name = "TxtBenutzername" Then Class1.Autocomplete(TxtBenutzername, "Benutzer", "Tbl_Netzwerkclients") + End Sub + + Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles Me.KeyDown + If e.KeyCode = Keys.Escape Then + Me.Close() + End If + End Sub + + Private Sub MitHTTPFüllenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MitHTTPFüllenToolStripMenuItem.Click + TxtLink.Text = "http://" & TxtIP.Text & "/" + End Sub + + Private Sub GeheZuToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GeheZuToolStripMenuItem.Click + Dim host As New Host + host.gethost(TxtLinkedWith.Text) + fillform(host) + End Sub +End Class \ No newline at end of file diff --git a/Dokumentation/uscntr_Firewalleinstellungen.Designer.vb b/Dokumentation/uscntr_Firewalleinstellungen.Designer.vb new file mode 100644 index 0000000..7c3d2fb --- /dev/null +++ b/Dokumentation/uscntr_Firewalleinstellungen.Designer.vb @@ -0,0 +1,365 @@ + _ +Partial Class uscntr_Firewalleinstellungen + Inherits System.Windows.Forms.UserControl + + 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.btnNeu = New System.Windows.Forms.Button() + Me.btnLoeschen = New System.Windows.Forms.Button() + Me.CmdSpeichern = New System.Windows.Forms.Button() + Me.Label7 = New System.Windows.Forms.Label() + Me.txtFQDN = New System.Windows.Forms.TextBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.TxtInfo = New System.Windows.Forms.TextBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.TxtDienste = New System.Windows.Forms.TextBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.TxtPortsOut = New System.Windows.Forms.TextBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.TxtPortsIn = New System.Windows.Forms.TextBox() + Me.chkDirekt = New System.Windows.Forms.CheckBox() + Me.TxtIpOut = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.TxtIpIn = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.dgvFirewallEinstellungen = New System.Windows.Forms.DataGridView() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.cmdRefresh = New System.Windows.Forms.Button() + Me.Label5 = New System.Windows.Forms.Label() + Me.CmdBearbeiten = New System.Windows.Forms.Button() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + CType(Me.dgvFirewallEinstellungen, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1 + Me.SplitContainer1.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer1.Name = "SplitContainer1" + Me.SplitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.SplitContainer1.Panel1.Controls.Add(Me.btnNeu) + Me.SplitContainer1.Panel1.Controls.Add(Me.btnLoeschen) + Me.SplitContainer1.Panel1.Controls.Add(Me.CmdSpeichern) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label7) + Me.SplitContainer1.Panel1.Controls.Add(Me.txtFQDN) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label6) + Me.SplitContainer1.Panel1.Controls.Add(Me.TxtInfo) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label4) + Me.SplitContainer1.Panel1.Controls.Add(Me.TxtDienste) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label3) + Me.SplitContainer1.Panel1.Controls.Add(Me.TxtPortsOut) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label8) + Me.SplitContainer1.Panel1.Controls.Add(Me.TxtPortsIn) + Me.SplitContainer1.Panel1.Controls.Add(Me.chkDirekt) + Me.SplitContainer1.Panel1.Controls.Add(Me.TxtIpOut) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label2) + Me.SplitContainer1.Panel1.Controls.Add(Me.TxtIpIn) + Me.SplitContainer1.Panel1.Controls.Add(Me.Label1) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.SplitContainer1.Panel2.Controls.Add(Me.dgvFirewallEinstellungen) + Me.SplitContainer1.Panel2.Controls.Add(Me.Panel1) + Me.SplitContainer1.Size = New System.Drawing.Size(814, 600) + Me.SplitContainer1.SplitterDistance = 211 + Me.SplitContainer1.TabIndex = 0 + ' + 'btnNeu + ' + Me.btnNeu.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnNeu.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.btnNeu.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.btnNeu.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnNeu.Location = New System.Drawing.Point(598, 57) + Me.btnNeu.Name = "btnNeu" + Me.btnNeu.Size = New System.Drawing.Size(102, 70) + Me.btnNeu.TabIndex = 58 + Me.btnNeu.Text = "&Neu" + Me.btnNeu.UseVisualStyleBackColor = False + ' + 'btnLoeschen + ' + Me.btnLoeschen.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnLoeschen.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.btnLoeschen.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.btnLoeschen.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnLoeschen.Location = New System.Drawing.Point(709, 133) + Me.btnLoeschen.Name = "btnLoeschen" + Me.btnLoeschen.Size = New System.Drawing.Size(102, 70) + Me.btnLoeschen.TabIndex = 57 + Me.btnLoeschen.Text = "&Löschen" + Me.btnLoeschen.UseVisualStyleBackColor = False + ' + 'CmdSpeichern + ' + Me.CmdSpeichern.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.CmdSpeichern.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdSpeichern.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdSpeichern.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdSpeichern.Location = New System.Drawing.Point(598, 133) + Me.CmdSpeichern.Name = "CmdSpeichern" + Me.CmdSpeichern.Size = New System.Drawing.Size(102, 70) + Me.CmdSpeichern.TabIndex = 56 + Me.CmdSpeichern.Text = "&Speichern" + Me.CmdSpeichern.UseVisualStyleBackColor = False + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(228, 78) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(108, 13) + Me.Label7.TabIndex = 106 + Me.Label7.Text = "Gerät oder Hostname" + ' + 'txtFQDN + ' + Me.txtFQDN.Location = New System.Drawing.Point(231, 94) + Me.txtFQDN.Name = "txtFQDN" + Me.txtFQDN.Size = New System.Drawing.Size(219, 20) + Me.txtFQDN.TabIndex = 54 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(3, 117) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(25, 13) + Me.Label6.TabIndex = 104 + Me.Label6.Text = "Info" + ' + 'TxtInfo + ' + Me.TxtInfo.Location = New System.Drawing.Point(3, 133) + Me.TxtInfo.Multiline = True + Me.TxtInfo.Name = "TxtInfo" + Me.TxtInfo.Size = New System.Drawing.Size(447, 70) + Me.TxtInfo.TabIndex = 55 + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(3, 78) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(49, 13) + Me.Label4.TabIndex = 100 + Me.Label4.Text = "Dienst(e)" + ' + 'TxtDienste + ' + Me.TxtDienste.Location = New System.Drawing.Point(6, 94) + Me.TxtDienste.Name = "TxtDienste" + Me.TxtDienste.Size = New System.Drawing.Size(219, 20) + Me.TxtDienste.TabIndex = 53 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(228, 39) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(94, 13) + Me.Label3.TabIndex = 98 + Me.Label3.Text = "Ausgehende Ports" + ' + 'TxtPortsOut + ' + Me.TxtPortsOut.Location = New System.Drawing.Point(231, 55) + Me.TxtPortsOut.Name = "TxtPortsOut" + Me.TxtPortsOut.Size = New System.Drawing.Size(219, 20) + Me.TxtPortsOut.TabIndex = 51 + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(3, 39) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(91, 13) + Me.Label8.TabIndex = 96 + Me.Label8.Text = "Eingehende Ports" + ' + 'TxtPortsIn + ' + Me.TxtPortsIn.Location = New System.Drawing.Point(6, 55) + Me.TxtPortsIn.Name = "TxtPortsIn" + Me.TxtPortsIn.Size = New System.Drawing.Size(219, 20) + Me.TxtPortsIn.TabIndex = 50 + ' + 'chkDirekt + ' + Me.chkDirekt.AutoSize = True + Me.chkDirekt.Location = New System.Drawing.Point(456, 58) + Me.chkDirekt.Name = "chkDirekt" + Me.chkDirekt.Size = New System.Drawing.Size(41, 17) + Me.chkDirekt.TabIndex = 52 + Me.chkDirekt.Text = "1:1" + Me.chkDirekt.UseVisualStyleBackColor = True + ' + 'TxtIpOut + ' + Me.TxtIpOut.Location = New System.Drawing.Point(231, 15) + Me.TxtIpOut.Name = "TxtIpOut" + Me.TxtIpOut.Size = New System.Drawing.Size(219, 20) + Me.TxtIpOut.TabIndex = 49 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(228, -1) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(121, 13) + Me.Label2.TabIndex = 51 + Me.Label2.Text = "Ausgehende IP Adresse" + ' + 'TxtIpIn + ' + Me.TxtIpIn.Location = New System.Drawing.Point(6, 16) + Me.TxtIpIn.Name = "TxtIpIn" + Me.TxtIpIn.Size = New System.Drawing.Size(219, 20) + Me.TxtIpIn.TabIndex = 48 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(3, 0) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(118, 13) + Me.Label1.TabIndex = 49 + Me.Label1.Text = "Eingehende IP Adresse" + ' + 'dgvFirewallEinstellungen + ' + Me.dgvFirewallEinstellungen.AllowUserToAddRows = False + Me.dgvFirewallEinstellungen.AllowUserToDeleteRows = False + Me.dgvFirewallEinstellungen.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill + Me.dgvFirewallEinstellungen.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvFirewallEinstellungen.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvFirewallEinstellungen.Location = New System.Drawing.Point(0, 30) + Me.dgvFirewallEinstellungen.Name = "dgvFirewallEinstellungen" + Me.dgvFirewallEinstellungen.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvFirewallEinstellungen.Size = New System.Drawing.Size(814, 355) + Me.dgvFirewallEinstellungen.TabIndex = 17 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.Panel1.Controls.Add(Me.cmdRefresh) + Me.Panel1.Controls.Add(Me.Label5) + Me.Panel1.Controls.Add(Me.CmdBearbeiten) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(814, 30) + Me.Panel1.TabIndex = 18 + ' + 'cmdRefresh + ' + Me.cmdRefresh.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cmdRefresh.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.cmdRefresh.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.cmdRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.cmdRefresh.Location = New System.Drawing.Point(568, 3) + Me.cmdRefresh.Name = "cmdRefresh" + Me.cmdRefresh.Size = New System.Drawing.Size(24, 23) + Me.cmdRefresh.TabIndex = 18 + Me.cmdRefresh.Text = "R" + Me.cmdRefresh.UseVisualStyleBackColor = False + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.Label5.Location = New System.Drawing.Point(202, 6) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(194, 15) + Me.Label5.TabIndex = 17 + Me.Label5.Text = "Firewall Portforwarding / NAT" + ' + 'CmdBearbeiten + ' + Me.CmdBearbeiten.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.CmdBearbeiten.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.CmdBearbeiten.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.CmdBearbeiten.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.CmdBearbeiten.Location = New System.Drawing.Point(598, 3) + Me.CmdBearbeiten.Name = "CmdBearbeiten" + Me.CmdBearbeiten.Size = New System.Drawing.Size(213, 23) + Me.CmdBearbeiten.TabIndex = 16 + Me.CmdBearbeiten.Text = "&Bearbeiten" + Me.CmdBearbeiten.UseVisualStyleBackColor = False + ' + 'uscntr_Firewalleinstellungen + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Controls.Add(Me.SplitContainer1) + Me.MinimumSize = New System.Drawing.Size(620, 600) + Me.Name = "uscntr_Firewalleinstellungen" + Me.Size = New System.Drawing.Size(814, 600) + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel1.PerformLayout() + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + CType(Me.dgvFirewallEinstellungen, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents SplitContainer1 As SplitContainer + Friend WithEvents CmdBearbeiten As Button + Friend WithEvents TxtIpIn As TextBox + Friend WithEvents Label1 As Label + Friend WithEvents TxtIpOut As TextBox + Friend WithEvents Label2 As Label + Friend WithEvents chkDirekt As CheckBox + Friend WithEvents Label6 As Label + Friend WithEvents TxtInfo As TextBox + Friend WithEvents Label4 As Label + Friend WithEvents TxtDienste As TextBox + Friend WithEvents Label3 As Label + Friend WithEvents TxtPortsOut As TextBox + Friend WithEvents Label8 As Label + Friend WithEvents TxtPortsIn As TextBox + Friend WithEvents Label7 As Label + Friend WithEvents txtFQDN As TextBox + Friend WithEvents CmdSpeichern As Button + Friend WithEvents dgvFirewallEinstellungen As DataGridView + Friend WithEvents Panel1 As Panel + Friend WithEvents btnLoeschen As Button + Friend WithEvents btnNeu As Button + Friend WithEvents Label5 As Label + Friend WithEvents cmdRefresh As Button +End Class diff --git a/Dokumentation/uscntr_Firewalleinstellungen.resx b/Dokumentation/uscntr_Firewalleinstellungen.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Dokumentation/uscntr_Firewalleinstellungen.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Dokumentation/uscntr_Firewalleinstellungen.vb b/Dokumentation/uscntr_Firewalleinstellungen.vb new file mode 100644 index 0000000..1f423fb --- /dev/null +++ b/Dokumentation/uscntr_Firewalleinstellungen.vb @@ -0,0 +1,155 @@ +Public Class uscntr_Firewalleinstellungen + Property Host As String = "" + Public ds As New DataSet + Public fwr_ID As String + Public Neu As Boolean = False + + Private Sub uscntr_Firewalleinstellungen_Load(sender As Object, e As EventArgs) Handles Me.Load + Neu = True + fwr_ID = Host & Now.ToString("yyyyMMddhhmmss") + Class1.EnableDoubleBuffered(dgvFirewallEinstellungen) + Laden() + ' MsgBox(ds.Tables(0).Rows(0).Item("fwr_info").ToString) + End Sub + + Public Function Laden() + ds.Clear() + FirewallEntry.getFirewallEntrys(ds, Host) + FillDGV(ds) + End Function + + Private Sub CmdBearbeiten_Click(sender As Object, e As EventArgs) Handles CmdBearbeiten.Click + SplitContainer1.Panel1Collapsed = Not SplitContainer1.Panel1Collapsed + + If SplitContainer1.Panel1Collapsed = True Then + CmdBearbeiten.Text = "Bearbeiten" + Else + CmdBearbeiten.Text = "Ausblenden" + End If + + End Sub + + + Public Function FillDGV(ds As DataSet) + With dgvFirewallEinstellungen + ' .DefaultCellStyle.BackColor = Color.Olive + .DataSource = ds.Tables(0) + .AutoSize = False + '.AutoSizeRowsMode = 0 + + .Columns("fwr_in").DisplayIndex = 0 + .Columns("fwr_in").HeaderText = "IP In" + + .Columns("fwr_out").DisplayIndex = 1 + .Columns("fwr_out").HeaderText = "IP Out" + + .Columns("fwr_portsin").DisplayIndex = 2 + .Columns("fwr_portsin").HeaderText = "Ports In" + + .Columns("fwr_portsout").DisplayIndex = 3 + .Columns("fwr_portsout").HeaderText = "Ports Out" + + .Columns("fwr_dienste").DisplayIndex = 4 + .Columns("fwr_dienste").HeaderText = "Dienste" + + .Columns("fwr_FQDN").DisplayIndex = 5 + .Columns("fwr_FQDN").HeaderText = "FQDN" + + .Columns("fwr_info").DisplayIndex = 6 + .Columns("fwr_info").HeaderText = "Info" + '.Columns("fwr_info").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells + + '.Columns("fwr_allowdeny").Visible = False + .Columns("fwr_direct").Visible = False + .Columns("fwr_ID").Visible = False + + End With + + End Function + + Private Sub chkDirekt_CheckedChanged(sender As Object, e As EventArgs) Handles chkDirekt.CheckedChanged + If chkDirekt.Checked Then + TxtPortsIn.Text = "*" + TxtPortsOut.Text = "*" + TxtPortsIn.Enabled = False + TxtPortsOut.Enabled = False + Else + TxtPortsIn.Enabled = True + TxtPortsOut.Enabled = True + End If + End Sub + + Private Sub dgvFirewallEinstellungen_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvFirewallEinstellungen.CellClick + Neu = False + With dgvFirewallEinstellungen + If .CurrentRow.Cells("fwr_direct").Value = True Then + chkDirekt.Checked = True + Else + chkDirekt.Checked = False + TxtPortsIn.Text = Class1.DBNull2emptyString(.CurrentRow.Cells("fwr_portsin").Value) + TxtPortsOut.Text = Class1.DBNull2emptyString(.CurrentRow.Cells("fwr_portsout").Value) + End If + + TxtIpIn.Text = .CurrentRow.Cells("fwr_in").Value + TxtIpOut.Text = .CurrentRow.Cells("fwr_out").Value + TxtDienste.Text = Class1.DBNull2emptyString(.CurrentRow.Cells("fwr_dienste").Value) + TxtInfo.Text = Class1.DBNull2emptyString(.CurrentRow.Cells("fwr_info").Value) + txtFQDN.Text = Class1.DBNull2emptyString(.CurrentRow.Cells("fwr_FQDN").Value) + fwr_ID = .CurrentRow.Cells("fwr_ID").Value + End With + + 'MsgBox(dgvFirewallEinstellungen.CurrentRow.Cells("fwr_direct").Value) + + + End Sub + + Private Sub btnNeu_Click(sender As Object, e As EventArgs) Handles btnNeu.Click + Neu = True + clear() + fwr_ID = Host & Now.ToString("yyyyMMddhhmmss") + 'MsgBox(fwr_ID) + End Sub + + Private Sub CmdSpeichern_Click(sender As Object, e As EventArgs) Handles CmdSpeichern.Click + Dim eintrag As New FirewallEntry + eintrag.fwr_ID = fwr_ID + eintrag.fwr_hostip = Host + eintrag.fwr_in = TxtIpIn.Text.Replace("'", "") + eintrag.fwr_out = TxtIpOut.Text.Replace("'", "") + eintrag.fwr_portsin = TxtPortsIn.Text.Replace("'", "") + eintrag.fwr_portsout = TxtPortsOut.Text.Replace("'", "") + eintrag.fwr_FQDN = txtFQDN.Text.Replace("'", "") + eintrag.fwr_info = TxtInfo.Text.Replace("'", "") + eintrag.fwr_direct = chkDirekt.Checked + eintrag.fwr_dienste = TxtDienste.Text.Replace("'", "") + + If Neu = False Then eintrag.updateFirewallEntry(eintrag) + If Neu = True Then eintrag.insertFirewallEntry(eintrag) + Neu = False + Laden() + End Sub + + Private Sub btnLoeschen_Click(sender As Object, e As EventArgs) Handles btnLoeschen.Click + If MsgBox("Eintrag wirklich löschen?", MessageBoxButtons.OKCancel, "Löschen?") = MsgBoxResult.Ok Then SQL.DeleteSQL("TbL_FirewallRules", "fwr_ID = '" & fwr_ID & "'") : clear() : Laden() + End Sub + + Private Function clear() + TxtIpIn.Text = "" + TxtIpOut.Text = "" + txtFQDN.Text = "" + TxtDienste.Text = "" + TxtInfo.Text = "" + chkDirekt.Checked = False + TxtPortsIn.Text = "" + TxtPortsOut.Text = "" + End Function + + Private Sub cmdRefresh_Click(sender As Object, e As EventArgs) Handles cmdRefresh.Click + Laden() + End Sub + + Private Sub dgvFirewallEinstellungen_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvFirewallEinstellungen.CellContentDoubleClick + SplitContainer1.Panel1Collapsed = False + CmdBearbeiten.Text = "Ausblenden" + End Sub +End Class diff --git a/Dokumentation/uscntr_Slaves.Designer.vb b/Dokumentation/uscntr_Slaves.Designer.vb new file mode 100644 index 0000000..e82d055 --- /dev/null +++ b/Dokumentation/uscntr_Slaves.Designer.vb @@ -0,0 +1,109 @@ + _ +Partial Class uscntr_Slaves + Inherits System.Windows.Forms.UserControl + + 'UserControl überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.dgvSlaves = New System.Windows.Forms.DataGridView() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.cmdRefresh = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + CType(Me.dgvSlaves, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'dgvSlaves + ' + Me.dgvSlaves.AllowUserToAddRows = False + Me.dgvSlaves.AllowUserToDeleteRows = False + Me.dgvSlaves.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill + Me.dgvSlaves.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells + Me.dgvSlaves.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvSlaves.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvSlaves.Location = New System.Drawing.Point(0, 30) + Me.dgvSlaves.MultiSelect = False + Me.dgvSlaves.Name = "dgvSlaves" + Me.dgvSlaves.ReadOnly = True + Me.dgvSlaves.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvSlaves.Size = New System.Drawing.Size(220, 570) + Me.dgvSlaves.TabIndex = 0 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.Panel1.Controls.Add(Me.cmdRefresh) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(220, 30) + Me.Panel1.TabIndex = 1 + ' + 'cmdRefresh + ' + Me.cmdRefresh.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cmdRefresh.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.cmdRefresh.FlatAppearance.BorderColor = System.Drawing.Color.DimGray + Me.cmdRefresh.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.cmdRefresh.Location = New System.Drawing.Point(193, 3) + Me.cmdRefresh.Name = "cmdRefresh" + Me.cmdRefresh.Size = New System.Drawing.Size(24, 23) + Me.cmdRefresh.TabIndex = 19 + Me.cmdRefresh.Text = "R" + Me.cmdRefresh.UseVisualStyleBackColor = False + Me.cmdRefresh.Visible = False + ' + 'Label1 + ' + Me.Label1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold) + Me.Label1.Location = New System.Drawing.Point(29, 6) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(158, 15) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "verknüpfte IP-Adressen:" + Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'uscntr_Slaves + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.AutoSize = True + Me.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink + Me.Controls.Add(Me.dgvSlaves) + Me.Controls.Add(Me.Panel1) + Me.MinimumSize = New System.Drawing.Size(220, 600) + Me.Name = "uscntr_Slaves" + Me.Size = New System.Drawing.Size(220, 600) + CType(Me.dgvSlaves, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.ResumeLayout(False) + + End Sub + + Friend WithEvents dgvSlaves As DataGridView + Friend WithEvents Panel1 As Panel + Friend WithEvents Label1 As Label + Friend WithEvents cmdRefresh As Button +End Class diff --git a/Dokumentation/uscntr_Slaves.resx b/Dokumentation/uscntr_Slaves.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Dokumentation/uscntr_Slaves.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Dokumentation/uscntr_Slaves.vb b/Dokumentation/uscntr_Slaves.vb new file mode 100644 index 0000000..d956882 --- /dev/null +++ b/Dokumentation/uscntr_Slaves.vb @@ -0,0 +1,25 @@ +Public Class uscntr_Slaves + + Property ds As New DataSet + + Private Sub uscntr_Slaves_Load(sender As Object, e As EventArgs) Handles Me.Load + Class1.EnableDoubleBuffered(dgvSlaves) + filldgv() + End Sub + + Function filldgv() + With dgvSlaves + .DataSource = ds.Tables(0) + .ColumnHeadersVisible = False + .RowHeadersVisible = False + .AutoSize = True + .Columns("IPAdresse").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells + .Columns("Netzwerk").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells + End With + End Function + + Private Sub dgvSlaves_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvSlaves.CellDoubleClick + frmHostBearbeiten.LoadFromExternal(dgvSlaves.CurrentRow.Cells("IPAdresse").Value) + + End Sub +End Class