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