Merge branch 'newMaster2024' of https://dev.azure.com/VeragAG/_git/SDL into newMaster2024

This commit is contained in:
2025-08-22 13:10:53 +02:00
12 changed files with 3155 additions and 208 deletions

View File

@@ -160,7 +160,7 @@ Public Class cAuditFlow
pruefung.wartPruef_Erledigung_Datum = Date.Now
pruefung.wartPruef_Erledigung = True
pruefung.wartPruef_Anhaenge_daId = dsId
pruefung.wartPruef_Bemerkung = dsId
pruefung.wartPruef_Bemerkung = Bemerkung
' 3. Speichern
Return pruefung.SAVE()

View File

@@ -0,0 +1,493 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmAuditFlow_Pruefungen
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()>
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.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmAuditFlow_Pruefungen))
Me.pnlTop = New System.Windows.Forms.Panel()
Me.Label4 = New System.Windows.Forms.Label()
Me.cboKategorie = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label7 = New System.Windows.Forms.Label()
Me.cboStandort = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboFirma = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.cboNL = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Label5 = New System.Windows.Forms.Label()
Me.Label6 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label3 = New System.Windows.Forms.Label()
Me.txtBezeichnung = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.txtKennung = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.cboMA = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Label8 = New System.Windows.Forms.Label()
Me.datVon = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.Panel1 = New System.Windows.Forms.Panel()
Me.Label15 = New System.Windows.Forms.Label()
Me.Panel2 = New System.Windows.Forms.Panel()
Me.Label9 = New System.Windows.Forms.Label()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.CheckBox2 = New System.Windows.Forms.CheckBox()
Me.Label10 = New System.Windows.Forms.Label()
Me.Button2 = New System.Windows.Forms.Button()
Me.UsrcntlPDFScanList1 = New VERAG_PROG_ALLGEMEIN.usrcntlPDFScanList()
Me.Label11 = New System.Windows.Forms.Label()
Me.pnlTop.SuspendLayout()
Me.Panel1.SuspendLayout()
Me.Panel2.SuspendLayout()
Me.SuspendLayout()
'
'pnlTop
'
Me.pnlTop.BackColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer))
Me.pnlTop.Controls.Add(Me.Label4)
Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top
Me.pnlTop.Location = New System.Drawing.Point(0, 0)
Me.pnlTop.Name = "pnlTop"
Me.pnlTop.Size = New System.Drawing.Size(580, 48)
Me.pnlTop.TabIndex = 10
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 16.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label4.ForeColor = System.Drawing.Color.White
Me.Label4.Location = New System.Drawing.Point(10, 13)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(207, 26)
Me.Label4.TabIndex = 0
Me.Label4.Text = "AuditFlow Prüfung"
'
'cboKategorie
'
Me.cboKategorie._allowedValuesFreiText = Nothing
Me.cboKategorie._allowFreiText = False
Me.cboKategorie._value = ""
Me.cboKategorie.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboKategorie.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboKategorie.Enabled = False
Me.cboKategorie.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboKategorie.FormattingEnabled = True
Me.cboKategorie.Location = New System.Drawing.Point(403, 125)
Me.cboKategorie.Name = "cboKategorie"
Me.cboKategorie.Size = New System.Drawing.Size(143, 24)
Me.cboKategorie.TabIndex = 38
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Enabled = False
Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label1.Location = New System.Drawing.Point(315, 130)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(82, 13)
Me.Label1.TabIndex = 37
Me.Label1.Text = "KATEGORIE:"
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Enabled = False
Me.Label7.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label7.Location = New System.Drawing.Point(13, 130)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(50, 13)
Me.Label7.TabIndex = 36
Me.Label7.Text = "Standort:"
'
'cboStandort
'
Me.cboStandort._allowedValuesFreiText = Nothing
Me.cboStandort._allowFreiText = False
Me.cboStandort._value = ""
Me.cboStandort.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboStandort.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboStandort.Enabled = False
Me.cboStandort.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboStandort.FormattingEnabled = True
Me.cboStandort.Location = New System.Drawing.Point(123, 125)
Me.cboStandort.Name = "cboStandort"
Me.cboStandort.Size = New System.Drawing.Size(143, 24)
Me.cboStandort.TabIndex = 35
'
'cboFirma
'
Me.cboFirma._allowedValuesFreiText = Nothing
Me.cboFirma._allowFreiText = False
Me.cboFirma._value = ""
Me.cboFirma.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboFirma.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboFirma.Enabled = False
Me.cboFirma.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboFirma.FormattingEnabled = True
Me.cboFirma.Location = New System.Drawing.Point(123, 68)
Me.cboFirma.Name = "cboFirma"
Me.cboFirma.Size = New System.Drawing.Size(143, 24)
Me.cboFirma.TabIndex = 34
'
'cboNL
'
Me.cboNL._allowedValuesFreiText = Nothing
Me.cboNL._allowFreiText = False
Me.cboNL._value = ""
Me.cboNL.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboNL.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboNL.Enabled = False
Me.cboNL.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cboNL.FormattingEnabled = True
Me.cboNL.Location = New System.Drawing.Point(123, 94)
Me.cboNL.Name = "cboNL"
Me.cboNL.Size = New System.Drawing.Size(143, 24)
Me.cboNL.TabIndex = 33
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Enabled = False
Me.Label5.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label5.Location = New System.Drawing.Point(13, 73)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(49, 13)
Me.Label5.TabIndex = 31
Me.Label5.Text = "FIRMA:"
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Enabled = False
Me.Label6.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label6.Location = New System.Drawing.Point(13, 99)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(77, 13)
Me.Label6.TabIndex = 32
Me.Label6.Text = "Niederlassung:"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Enabled = False
Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label2.Location = New System.Drawing.Point(14, 205)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(84, 13)
Me.Label2.TabIndex = 39
Me.Label2.Text = "Bezeichnung:"
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Enabled = False
Me.Label3.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
Me.Label3.Location = New System.Drawing.Point(14, 231)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(90, 26)
Me.Label3.TabIndex = 40
Me.Label3.Text = "Kennung:" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "(zB Kennzeichen)"
'
'txtBezeichnung
'
Me.txtBezeichnung._DateTimeOnly = False
Me.txtBezeichnung._numbersOnly = False
Me.txtBezeichnung._numbersOnlyKommastellen = ""
Me.txtBezeichnung._numbersOnlyTrennzeichen = True
Me.txtBezeichnung._Prozent = False
Me.txtBezeichnung._ShortDateNew = False
Me.txtBezeichnung._ShortDateOnly = False
Me.txtBezeichnung._TimeOnly = False
Me.txtBezeichnung._TimeOnly_Seconds = False
Me.txtBezeichnung._value = ""
Me.txtBezeichnung._Waehrung = False
Me.txtBezeichnung._WaehrungZeichen = True
Me.txtBezeichnung.Enabled = False
Me.txtBezeichnung.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!)
Me.txtBezeichnung.ForeColor = System.Drawing.Color.Black
Me.txtBezeichnung.Location = New System.Drawing.Point(123, 197)
Me.txtBezeichnung.MaxLineLength = -1
Me.txtBezeichnung.MaxLines_Warning = ""
Me.txtBezeichnung.MaxLines_Warning_Label = Nothing
Me.txtBezeichnung.Multiline = True
Me.txtBezeichnung.Name = "txtBezeichnung"
Me.txtBezeichnung.Size = New System.Drawing.Size(436, 28)
Me.txtBezeichnung.TabIndex = 43
'
'txtKennung
'
Me.txtKennung._DateTimeOnly = False
Me.txtKennung._numbersOnly = False
Me.txtKennung._numbersOnlyKommastellen = ""
Me.txtKennung._numbersOnlyTrennzeichen = True
Me.txtKennung._Prozent = False
Me.txtKennung._ShortDateNew = False
Me.txtKennung._ShortDateOnly = False
Me.txtKennung._TimeOnly = False
Me.txtKennung._TimeOnly_Seconds = False
Me.txtKennung._value = ""
Me.txtKennung._Waehrung = False
Me.txtKennung._WaehrungZeichen = True
Me.txtKennung.Enabled = False
Me.txtKennung.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!)
Me.txtKennung.ForeColor = System.Drawing.Color.Black
Me.txtKennung.Location = New System.Drawing.Point(123, 231)
Me.txtKennung.MaxLineLength = -1
Me.txtKennung.MaxLines_Warning = ""
Me.txtKennung.MaxLines_Warning_Label = Nothing
Me.txtKennung.Multiline = True
Me.txtKennung.Name = "txtKennung"
Me.txtKennung.Size = New System.Drawing.Size(436, 28)
Me.txtKennung.TabIndex = 44
'
'cboMA
'
Me.cboMA._allowedValuesFreiText = Nothing
Me.cboMA._allowFreiText = False
Me.cboMA._value = ""
Me.cboMA.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cboMA.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cboMA.Enabled = False
Me.cboMA.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!)
Me.cboMA.FormattingEnabled = True
Me.cboMA.Location = New System.Drawing.Point(123, 282)
Me.cboMA.Name = "cboMA"
Me.cboMA.Size = New System.Drawing.Size(436, 28)
Me.cboMA.TabIndex = 46
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Enabled = False
Me.Label8.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!)
Me.Label8.Location = New System.Drawing.Point(14, 282)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(63, 26)
Me.Label8.TabIndex = 45
Me.Label8.Text = "Zuständiger" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Mitarbeiter:"
'
'datVon
'
Me.datVon._DateTimeOnly = False
Me.datVon._numbersOnly = False
Me.datVon._numbersOnlyKommastellen = ""
Me.datVon._numbersOnlyTrennzeichen = False
Me.datVon._Prozent = False
Me.datVon._ShortDateNew = True
Me.datVon._ShortDateOnly = False
Me.datVon._TimeOnly = False
Me.datVon._TimeOnly_Seconds = False
Me.datVon._value = ""
Me.datVon._Waehrung = False
Me.datVon._WaehrungZeichen = True
Me.datVon.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!)
Me.datVon.ForeColor = System.Drawing.Color.Black
Me.datVon.Location = New System.Drawing.Point(123, 6)
Me.datVon.MaxLength = 10
Me.datVon.MaxLineLength = -1
Me.datVon.MaxLines_Warning = ""
Me.datVon.MaxLines_Warning_Label = Nothing
Me.datVon.Name = "datVon"
Me.datVon.Size = New System.Drawing.Size(143, 26)
Me.datVon.TabIndex = 48
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke
Me.Panel1.Controls.Add(Me.Label15)
Me.Panel1.Controls.Add(Me.datVon)
Me.Panel1.Location = New System.Drawing.Point(0, 323)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(566, 83)
Me.Panel1.TabIndex = 61
'
'Label15
'
Me.Label15.AutoSize = True
Me.Label15.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label15.Location = New System.Drawing.Point(15, 14)
Me.Label15.Name = "Label15"
Me.Label15.Size = New System.Drawing.Size(102, 13)
Me.Label15.TabIndex = 61
Me.Label15.Text = "Fälligkeitsdatum:"
'
'Panel2
'
Me.Panel2.BackColor = System.Drawing.Color.PapayaWhip
Me.Panel2.Controls.Add(Me.Label9)
Me.Panel2.Controls.Add(Me.RichTextBox1)
Me.Panel2.Controls.Add(Me.CheckBox2)
Me.Panel2.Controls.Add(Me.Label10)
Me.Panel2.Location = New System.Drawing.Point(0, 407)
Me.Panel2.Name = "Panel2"
Me.Panel2.Size = New System.Drawing.Size(566, 266)
Me.Panel2.TabIndex = 62
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label9.Location = New System.Drawing.Point(14, 53)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(64, 13)
Me.Label9.TabIndex = 70
Me.Label9.Text = "Bemerkung:"
'
'RichTextBox1
'
Me.RichTextBox1.Location = New System.Drawing.Point(123, 50)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(436, 197)
Me.RichTextBox1.TabIndex = 69
Me.RichTextBox1.Text = ""
'
'CheckBox2
'
Me.CheckBox2.AutoSize = True
Me.CheckBox2.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold)
Me.CheckBox2.Location = New System.Drawing.Point(123, 19)
Me.CheckBox2.Name = "CheckBox2"
Me.CheckBox2.Size = New System.Drawing.Size(118, 24)
Me.CheckBox2.TabIndex = 68
Me.CheckBox2.Text = "ERLEDIGT"
Me.CheckBox2.UseVisualStyleBackColor = True
'
'Label10
'
Me.Label10.AutoSize = True
Me.Label10.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label10.Location = New System.Drawing.Point(13, 25)
Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(47, 13)
Me.Label10.TabIndex = 55
Me.Label10.Text = "Status:"
'
'Button2
'
Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button2.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!)
Me.Button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.Button2.Location = New System.Drawing.Point(416, 786)
Me.Button2.Margin = New System.Windows.Forms.Padding(0)
Me.Button2.Name = "Button2"
Me.Button2.Padding = New System.Windows.Forms.Padding(0, 0, 10, 0)
Me.Button2.Size = New System.Drawing.Size(143, 45)
Me.Button2.TabIndex = 63
Me.Button2.Text = "Speichern"
Me.Button2.UseVisualStyleBackColor = True
'
'UsrcntlPDFScanList1
'
Me.UsrcntlPDFScanList1._DATENSERVER_KATEGORIE = "DOKUMENTE"
Me.UsrcntlPDFScanList1._DATENSERVER_ORDNER = ""
Me.UsrcntlPDFScanList1._DATENSERVER_UOrdner1 = ""
Me.UsrcntlPDFScanList1._DATENSERVER_UOrdner2 = ""
Me.UsrcntlPDFScanList1._DATENSERVER_UOrdner3 = ""
Me.UsrcntlPDFScanList1._OPEN_ORIGINAL = False
Me.UsrcntlPDFScanList1._TYPE = "PDF"
Me.UsrcntlPDFScanList1.AllowDrop = True
Me.UsrcntlPDFScanList1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
Me.UsrcntlPDFScanList1.BackColor = System.Drawing.Color.White
Me.UsrcntlPDFScanList1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.UsrcntlPDFScanList1.Cursor = System.Windows.Forms.Cursors.Default
Me.UsrcntlPDFScanList1.Location = New System.Drawing.Point(123, 686)
Me.UsrcntlPDFScanList1.Margin = New System.Windows.Forms.Padding(0)
Me.UsrcntlPDFScanList1.Name = "UsrcntlPDFScanList1"
Me.UsrcntlPDFScanList1.Size = New System.Drawing.Size(275, 145)
Me.UsrcntlPDFScanList1.TabIndex = 64
'
'Label11
'
Me.Label11.AutoSize = True
Me.Label11.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Label11.Location = New System.Drawing.Point(14, 686)
Me.Label11.Name = "Label11"
Me.Label11.Size = New System.Drawing.Size(61, 13)
Me.Label11.TabIndex = 71
Me.Label11.Text = "Anhänge:"
'
'frmAuditFlow_Pruefungen
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.Color.White
Me.ClientSize = New System.Drawing.Size(580, 845)
Me.Controls.Add(Me.Label11)
Me.Controls.Add(Me.UsrcntlPDFScanList1)
Me.Controls.Add(Me.Button2)
Me.Controls.Add(Me.cboMA)
Me.Controls.Add(Me.Label8)
Me.Controls.Add(Me.txtKennung)
Me.Controls.Add(Me.txtBezeichnung)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.cboKategorie)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.Label7)
Me.Controls.Add(Me.cboStandort)
Me.Controls.Add(Me.cboFirma)
Me.Controls.Add(Me.cboNL)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.pnlTop)
Me.Controls.Add(Me.Panel1)
Me.Controls.Add(Me.Panel2)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmAuditFlow_Pruefungen"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "AuditFlow Prüfungsojekt"
Me.pnlTop.ResumeLayout(False)
Me.pnlTop.PerformLayout()
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
Me.Panel2.ResumeLayout(False)
Me.Panel2.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents pnlTop As Windows.Forms.Panel
Friend WithEvents cboKategorie As MyComboBox
Friend WithEvents Label1 As Windows.Forms.Label
Friend WithEvents Label7 As Windows.Forms.Label
Friend WithEvents cboStandort As MyComboBox
Friend WithEvents cboFirma As MyComboBox
Friend WithEvents cboNL As MyComboBox
Friend WithEvents Label5 As Windows.Forms.Label
Friend WithEvents Label6 As Windows.Forms.Label
Friend WithEvents Label2 As Windows.Forms.Label
Friend WithEvents Label3 As Windows.Forms.Label
Friend WithEvents txtBezeichnung As MyTextBox
Friend WithEvents txtKennung As MyTextBox
Friend WithEvents cboMA As MyComboBox
Friend WithEvents Label8 As Windows.Forms.Label
Friend WithEvents datVon As MyTextBox
Friend WithEvents Panel1 As Windows.Forms.Panel
Friend WithEvents Panel2 As Windows.Forms.Panel
Friend WithEvents Label15 As Windows.Forms.Label
Friend WithEvents Button2 As Windows.Forms.Button
Friend WithEvents Label4 As Windows.Forms.Label
Friend WithEvents Label9 As Windows.Forms.Label
Friend WithEvents RichTextBox1 As Windows.Forms.RichTextBox
Friend WithEvents CheckBox2 As Windows.Forms.CheckBox
Friend WithEvents Label10 As Windows.Forms.Label
Friend WithEvents UsrcntlPDFScanList1 As usrcntlPDFScanList
Friend WithEvents Label11 As Windows.Forms.Label
End Class

View File

@@ -0,0 +1,980 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAgIAAAAEAGAAoyAAAFgAAACgAAACAAAAAAAEAAAEAGAAAAAAAAMgAAMQOAADEDgAAAAAAAAAA
AACRbEd5TB+CWC59USZ8USV9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ8USV9USaCWC55TB+RbEd4Sx5mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB4Sx5/VClmMwBuPg5r
OglrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOgluPg5mMwB/VCl0RhhmMwBmMwBnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFmMwBmMwB0RhhzRBVmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBz
RBV3Sh1mMwBnNQJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBnNQJmMwB3Sh18UCRmMwBqOQdnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFqOQdmMwB8UCR9USZmMwBrOQhn
NAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9
USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwDm4N3/////////
///////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL/////////////////
//////////////////////////////////////////////90SSZmMwBmMwBmMwBmMwBmMwB0SSb39fT/
//////////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////////+YfWtmMwBmMwBm
MwBmMwB0SSbu6+n////////////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT/////
///////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5zUy8X////////////////L
v7itmo1mMwBmMwCYfWv///////90SSZmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn
NAFmMwBmMwBmMwB0SSb////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwDu6+n///////////////////////////////////////////////////////////+j
jH1mMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwC3p5z/
///////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwCYfWv////////////////Bs6pmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwB0SSb///////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCt
mo3////////////////////////////////////m4N2Mbli3p5z///////+jjH1mMwBmMwBmMwBmMwBm
MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwCMblj///////////////////////////+M
blhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X/////////////////////////////
///////////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwDBs6r///////////////+3
p5xmMwBmMwBmMwBmMwBmMwBmMwDm4N3///////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDU
y8X///////////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////90SSZm
MwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j////////////////////////////////////////////39fTm
4N3///////+3p5xmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwC3
p5z////////////////////////////d1tFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3
p5z////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwCjjH3////////////////Lv7hmMwBmMwBmMwBmMwBmMwCAXUL///////////////////90
SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL39fT////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBm
MwC3p5z////////////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z////////////////////U
y8WAXUJmMwBmMwC3p5z39fT////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9
USZ9USZmMwBrOQhnNAFmMwBmMwBmMwDBs6r////////////////u6+n///////////+tmo1mMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj///////////////////90SSZmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj////////////////m4N1mMwBmMwBmMwBm
MwBmMwC3p5z////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z/////////
///////////////////////////////////////////////////////Uy8VmMwBmMwBmMwBmMwBmMwBm
MwBmMwD39fT////////////////Lv7hmMwBmMwBmMwBmMwBmMwCAXULu6+n////////////////39fRm
MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwDm4N3/////////////
//+jjH3////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb/////////////
//////+jjH1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD3
9fT///////////////90SSZmMwBmMwBmMwBmMwDm4N3///////////////+jjH1mMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwDu6+n/////////////////////////////////////////////////////
//////+3p5xmMwBmMwBmMwBmMwBmMwBmMwCjjH3///////////////////+MblhmMwBmMwBmMwBmMwBm
MwBmMwCMblj///////////////////90SSZmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn
NAFmMwBmMwBmMwD39fT///////////////9mMwDLv7j///////////+3p5xmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwDm4N3////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+YfWtmMwBmMwBmMwCAXUL/////////
///////39fR0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCYfWv/////////////////////
//////////////////////////////////////+jjH1mMwBmMwBmMwBmMwBmMwBmMwC3p5z/////////
//////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+jjH1mMwBmMwBmMwBm
MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwCMblj////////////////m4N1mMwCAXUL39fT/
///////39fSAXUJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////Uy8VmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z/////////////
///////////////////////////////////////u6+lmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwDUy8X////////////u6+lmMwBmMwBmMwBmMwCMblj///////////////////90SSZmMwBm
MwBmMwBmMwBmMwBmMwC3p5z///////////////////9mMwBmMwBmMwB0SSb/////////////////////
//////////////+3p5xmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwCjjH3/
///////////////Uy8VmMwBmMwC3p5z////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwC3p5z////////////////////////////////////////////////////m4N1mMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwCjjH3////////////////////////////////////////////////////////////d
1tGMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+tmo1mMwBmMwBmMwCt
mo3////////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z///////////////////90SSZm
MwBmMwBmMwDm4N3////////////////////////////////Uy8VmMwBmMwBmMwBmMwBnNAFrOQhmMwB9
USZ9USZmMwBrOQhnNAFmMwBmMwC3p5z///////////////+3p5xmMwBmMwB0SSb39fT///////////+Y
fWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCMblj/////////////////////////////////////////
//////////////9mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb/////////////////////////////
//////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3
p5z////////////39fR0SSZmMwBmMwDBs6r////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBm
MwCjjH3///////////////////+jjH1mMwBmMwBmMwDBs6r////////////////////////////////3
9fRmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwDUy8X///////////////+t
mo1mMwBmMwBmMwCtmo3////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT/////
//////////////////////////////////////////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwDu6+n///////////////90SSZmMwBmMwBmMwBmMwBmMwCjjH3m4N3////////////////39fR0SSZm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///////////+3p5xmMwBmMwDUy8X/////////////
//+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb////////////////////Bs6pmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn
NAFmMwBmMwDu6+n///////////////+MblhmMwBmMwBmMwBmMwDu6+n///////////+tmo1mMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwDd1tH////////////////Bs6pmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X///////////////+YfWtmMwBmMwBmMwBmMwBmMwBm
MwB0SSbu6+n///////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH3/////////
///39fSAXUJmMwD39fT///////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X/////
///////////39fRmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////Uy8W3p5y3p5yYfWtmMwBmMwBm
MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwB0SSb///////////////////90SSZmMwBmMwBmMwBm
MwCtmo3////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r////////////////m4N1m
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwC3p5z/////////
//////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDLv7j////////////////Bs6pmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwDUy8X////////////Lv7h0SSb///////////////////90SSZmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwCYfWv///////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwDu
6+n///////////////+jjH1mMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwCYfWv/////
///////////u6+lmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////+3p5xmMwBmMwBmMwBmMwBmMwBm
MwBmMwCjjH3///////////////////90SSZmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwCYfWv////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwDm4N3/////
//////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+tmo3/
///////////////m4N1mMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDBs6r/////////////////
//+YfWtmMwBmMwBmMwBmMwBmMwCtmo3////////////////u6+lmMwBmMwBmMwBmMwBnNAFrOQhmMwB9
USZ9USZmMwBrOQhnNAFmMwC3p5z////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwCYfWv/////
//////////+AXUJmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////////+MblhmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwB0SSb////////////////u6+lmMwBm
MwBmMwBmMwBmMwCAXULLv7j///////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwC3p5z////////////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwDd1tH///////////////////+3p5x0SSZmMwBmMwC3p5z///////////////////+t
mo1mMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwDLv7j////////////////Bs6pm
MwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwD39fT/
//////////////////////////////////////////////////////////90SSZmMwBmMwBmMwBmMwBm
MwBmMwDm4N3////////////////////////////////////////////////////////////Bs6pmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDu6+n///////////////////////////+3
p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDUy8X/////////////////////////
///////////////////////////Lv7hmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn
NAFmMwDm4N3///////////////+tmo1mMwBmMwBmMwBmMwBmMwBmMwBmMwCAXUL///////////////+Y
fWtmMwBmMwBmMwBmMwBmMwBmMwDUy8X/////////////////////////////////////////////////
//////////+YfWtmMwBmMwBmMwBmMwBmMwBmMwDLv7j/////////////////////////////////////
///////////////////Uy8VmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCj
jH3///////////////////////////+MblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwCtmo339fT///////////////////////////////////////+tmo1mMwBmMwBmMwBmMwBmMwBm
MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAF0SSb///////////////////+MblhmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwDLv7j////////////u6+l0SSZmMwBmMwBmMwBmMwBmMwC3p5z/////////////////
//////////////////////////////////////////+3p5xmMwBmMwBmMwBmMwBmMwBmMwC3p5z/////
///////////////////////////////////////m4N23p5yMblhmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwDd1tH///////////////////////9mMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwCjjH23p5z39fT////////////////Uy8W3
p5xmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9
USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhn
NAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9
USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ9USZmMwBrOQhnNAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNAFrOQhmMwB9USZ8UCRmMwBqOQdn
NAFmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBnNAFqOQdmMwB8UCR3Sh1mMwBnNQJmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBnNQJmMwB3Sh1zRBVmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBz
RBV0RhhmMwBmMwBnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFnNAFn
NAFnNAFnNAFnNAFnNAFnNAFmMwBmMwB0Rhh/VClmMwBuPg5rOglrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhr
OQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOQhrOgluPg5mMwB/VCl4Sx5mMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBmMwBm
MwBmMwBmMwBmMwB4Sx6RbEd5TB+CWC59USZ8USV9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ9
USZ9USZ9USZ9USZ9USZ9USZ9USZ9USZ8USV9USaCWC55TB+RbEf/////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////d3fOrq+Krq+Krq+Krq+Krq+Krq+Lp6ff/////////
///////////////////////////p6ferq+Krq+Krq+Krq+Krq+Krq+Krq+L///////////+rq+Krq+Kr
q+Krq+Krq+Krq+Krq+Krq+Krq+Krq+Krq+Krq+Krq+Krq+Ld3fP/////////////////////////////
//////////+rq+Krq+Krq+Krq+Krq+K4uOb////////////////////d3fOrq+Krq+Krq+Krq+Lp6ff/
///////////////p6ferq+Krq+Krq+Krq+Krq+Krq+K4uOb///////////////////+rq+Krq+Krq+Kr
q+Krq+Krq+Krq+L///////////////////+rq+Krq+Krq+Krq+Krq+K4uOb/////////////////////
///////////p6ferq+Krq+Krq+Krq+Krq+LFxer////////////////////////////////d3fMpKcID
A70DA70DA70DA70DA72Ojtn////////////////////////////////////FxeoDA70DA70DA70DA70D
A70DA71ERMf///////////8pKcIDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70D
A70DA71+ftTR0e////////////////////////////8pKcIDA70DA70DA70DA70pKcL/////////////
//////+rq+IDA70DA70DA70DA72Ojtn////////////////d3fMDA70DA70DA70DA70DA70DA71ERMf/
//////////////////8pKcIDA70DA70DA70DA70DA70pKcL///////////////////8pKcIDA70DA70D
A70DA71ERMf///////////////////////////////+rq+IDA70DA70DA70DA70DA71ZWcv/////////
//////////////////////////+rq+IDA70DA70DA70DA70DA70DA73p6ff/////////////////////
//////////+rq+IDA70DA70DA70DA70DA70DA71+ftT///////////9ZWcsDA70DA70DA70DA70DA70D
A70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA72Ojtn///////////////////////9sbNAD
A70DA70DA70DA70DA73p6ff///////////////+OjtkDA70DA70DA70DA70DA73p6ff/////////////
//8pKcIDA70DA70DA70DA70DA70DA7309Pv///////////////9sbNADA70DA70DA70DA70DA70DA73p
6ff///////////////9ZWcsDA70DA70DA70DA70DA7309Pv///////////////////////////8pKcID
A70DA70DA70DA70DA70DA73////////////////////////////////////09PspKcIDA70DA70DA70D
A70DA72rq+L///////////////////////////////+OjtkDA70DA70DA70DA70DA70DA72rq+L/////
//////+dnd0DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70D
A71ZWcv09Pv///////////////+dnd0DA70DA70DA70DA70DA73Fxer///////////////9ZWcsDA70D
A70DA70DA70DA72Ojtn///////////////9ZWcsDA70DA70DA70DA70DA70DA73d3fP/////////////
//+dnd0DA70DA70DA70DA70DA70DA73Fxer///////////////+OjtkDA70DA70DA70DA70DA73R0e//
//////////////////////+4uOYDA70DA70DA70DA70DA70DA70DA73d3fP/////////////////////
//////////////+rq+IDA70DA70DA70DA70DA70pKcL09Pv///////////////////////////9ZWcsD
A70DA70DA70DA70DA70DA73Fxer///////////+rq+IDA70DA70DA70DA70DA70DA70DA70DA70DA70D
A70DA70DA70DA70DA70DA70DA70DA70DA70DA71ZWcv///////////////+rq+IDA70DA70DA70DA70D
A72rq+L///////////////8pKcIDA70DA70DA70DA70DA70DA73p6ff///////////+OjtkDA70DA70D
A70DA70DA70DA72rq+L///////////////+rq+IDA70DA70DA70DA70DA70DA72rq+L/////////////
//+rq+IDA70DA70DA70DA70DA72rq+L///////////////////////9ZWcsDA70DA70DA70DA70DA70D
A70DA73Fxer////////////////////////////////////09PspKcIDA70DA70DA70DA70DA71+ftSr
q+Krq+Krq+Krq+Krq+Krq+Krq+IpKcIDA70DA70DA70DA70DA70DA73d3fP////////////R0e8DA70D
A70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA72dnd3/
///////////d3fMDA70DA70DA70DA70DA71+ftT////////////p6fcDA70DA70DA70DA70DA70DA70D
A72Ojtn///////////+rq+IDA70DA70DA70DA70DA70DA72dnd3////////////////R0e8DA70DA70D
A70DA70DA70DA71+ftT////////////////R0e8DA70DA70DA70DA70DA72dnd3/////////////////
///R0e8DA70DA70DA70DA70DA70DA70DA70DA72dnd3/////////////////////////////////////
//+rq+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70D
A70DA73////////////////09PsDA70DA70DA70DA70DA70DA72dnd3////////////09Purq+JZWcsD
A70DA70DA70DA70DA70DA70DA70DA73p6ff////////09PsDA70DA70DA70DA70DA71ZWcv/////////
///FxeoDA70DA70DA70DA70DA70DA70DA70DA73p6ff////////R0e8DA70DA70DA70DA70DA70DA71s
bND////////////////09PsDA70DA70DA70DA70DA70DA71ZWcv////////////////09PsDA70DA70D
A70DA70DA71ZWcv///////////////////+OjtkDA70DA70DA70DA70DA70DA70DA70DA71+ftT/////
///////////////////////////////////09PspKcIDA70DA70DA70DA70DA70DA70DA70DA70DA70D
A70DA70DA70DA70DA70DA70DA70DA70DA71ZWcv///////////////////8pKcIDA70DA70DA70DA70D
A71sbND///////////////////////+rq+IDA70DA70DA70DA70DA70DA70DA72Ojtn///////////9E
RMcDA70DA70DA70DA70DA73///////////+rq+IDA70DA70DA70DA70DA70DA70DA70DA72Ojtn/////
///09PsDA70DA70DA70DA70DA70DA70pKcL///////////////////9ERMcDA70DA70DA70DA70DA70D
A73///////////////////8pKcIDA70DA70DA70DA70pKcL////////////////09PsDA70DA70DA70D
A70DA70DA70DA70DA70DA71ERMf///////////////////////////////////////////+rq+IDA70D
A70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA72Ojtn/////////
//////////9+ftQDA70DA70DA70DA70DA70pKcL///////////////////////////+OjtkDA70DA70D
A70DA70DA70DA70DA7309Pv///////9+ftQDA70DA70DA70DA70DA73d3fP///////+OjtkDA70DA70D
A70DA70DA70DA70DA70DA70DA73p6ff///////8pKcIDA70DA70DA70DA70DA70DA7309Pv/////////
//////9+ftQDA70DA70DA70DA70DA70DA73d3fP///////////////9+ftQDA70DA70DA70DA70DA73d
3fP///////////+rq+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA7309Pv/////////////////
///////////////////////09PspKcIDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70D
A70DA70DA70DA70DA72rq+L///////////////////+dnd0DA70DA70DA70DA70DA70DA73p6ff/////
///////////////////p6fcDA70DA70DA70DA70DA70DA70DA73Fxer///////+rq+IDA70DA70DA70D
A70DA724uOb///////9ZWcsDA70DA70DA70DA70DA70DA70DA70DA70DA72Ojtn///////9+ftQDA70D
A70DA70DA70DA70DA73Fxer///////////////+dnd0DA70DA70DA70DA70DA70DA724uOb/////////
//////+dnd0DA70DA70DA70DA70DA73Fxer///////////8pKcIDA70DA70DA70DA70DA70DA70DA70D
A70DA70DA73R0e////////////////////////////////////////////+rq+IDA70DA70DA70DA70D
A70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA73Fxer///////////////////+4uOYD
A70DA70DA70DA70DA70DA73Fxer///////////////////////////9+ftQDA70DA70DA70DA70DA70D
A72dnd3////////FxeoDA70DA70DA70DA70DA72dnd3///////8pKcIDA70DA70DA70DA70DA70DA70D
A70DA70DA70DA73R0e////+dnd0DA70DA70DA70DA70DA70DA72rq+L///////////////+4uOYDA70D
A70DA70DA70DA70DA72dnd3///////////////+4uOYDA70DA70DA70DA70DA72rq+L///////+4uOYD
A70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA72rq+L/////////////////////////////////
///////////09PspKcIDA70DA70DA70DA70DA73R0e////////////9ZWcsDA70DA70DA70DA70DA70D
A73p6ff////////////////////d3fMDA70DA70DA70DA70DA70DA72rq+L/////////////////////
//////+rq+IDA70DA70DA70DA70DA70DA71sbND////////d3fMDA70DA70DA70DA70DA71+ftT////d
3fMDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA71sbND///+4uOYDA70DA70DA70DA70DA70D
A72Ojtn////////////////d3fMDA70DA70DA70DA70DA70DA71+ftT////////////////d3fMDA70D
A70DA70DA70DA71+ftT///////9sbNADA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA72dnd3/
//////////////////////////////////////////////+rq+IDA70DA70DA70DA70DA71sbND/////
//////8DA70DA70DA70DA70DA70DA70pKcL///////////////////////////8DA70DA70DA70DA70D
A70DA72Ojtn////////////////////////////d3fMDA70DA70DA70DA70DA70DA71ERMf/////////
//8pKcIDA70DA70DA70DA70pKcL////FxeoDA70DA70DA70DA70DA70pKcKOjtkDA70DA70DA70DA70D
A73R0e/d3fMDA70DA70DA70DA70DA70DA71ZWcv///////////////////8DA70DA70DA70DA70DA70D
A70pKcL////////////////09PsDA70DA70DA70DA70DA71ZWcv////d3fMDA70DA70DA70DA70DA70D
A71ZWcsDA70DA70DA70DA70DA71ZWcv////////////////////////////////////////////////0
9PspKcIDA70DA70DA70DA70DA73p6ff////p6fcDA70DA70DA70DA70DA70DA71sbND/////////////
//////////////9ZWcsDA70DA70DA70DA70DA71ZWcv////////////////////////////p6fcDA70D
A70DA70DA70DA70DA71ERMf///////////9ZWcsDA70DA70DA70DA70DA7309Purq+IDA70DA70DA70D
A70DA71ZWcvp6fcDA70DA70DA70DA70DA71sbND///8DA70DA70DA70DA70DA70DA70DA73/////////
//////////9ZWcsDA70DA70DA70DA70DA70DA7309Pv///////////////9ZWcsDA70DA70DA70DA70D
A73///+OjtkDA70DA70DA70DA70DA70DA724uOZZWcsDA70DA70DA70DA70pKcL/////////////////
//////////////////////////////////+rq+IDA70DA70DA70DA70DA72Ojtn////FxeoDA70DA70D
A70DA70DA70DA72dnd3///////////////////////////9+ftQDA70DA70DA70DA70DA70DA73/////
///////////////////////p6fcDA70DA70DA70DA70DA70DA71ERMf///////////+OjtkDA70DA70D
A70DA70DA73R0e9+ftQDA70DA70DA70DA70DA72Ojtn///+dnd0DA70DA70DA70DA70DA73R0e9ZWcsD
A70DA70DA70DA70DA70DA73d3fP///////////////9+ftQDA70DA70DA70DA70DA70DA73R0e//////
//////////9+ftQDA70DA70DA70DA70DA73R0e8DA70DA70DA70DA70DA70DA70pKcL09Pt+ftQDA70D
A70DA70DA70DA73p6ff////////////////////////////////////////////////09PspKcIDA70D
A70DA70DA70DA73p6ferq+IDA70DA70DA70DA70DA70DA72rq+L///////////////////////////+r
q+IDA70DA70DA70DA70DA70DA73d3fP////////////////////////d3fMDA70DA70DA70DA70DA70D
A71ZWcv///////////+rq+IDA70DA70DA70DA70DA72rq+JZWcsDA70DA70DA70DA70DA72rq+L////0
9PspKcIDA70DA70DA70DA71sbNB+ftQDA70DA70DA70DA70DA70DA73Fxer///////////////+rq+ID
A70DA70DA70DA70DA70DA72rq+L///////////////+rq+IDA70DA70DA70DA70DA71ZWcsDA70DA70D
A70DA70DA70DA72dnd3///+rq+IDA70DA70DA70DA70DA73Fxer/////////////////////////////
//////////////////////+rq+IDA70DA70DA70DA70DA72rq+Kdnd0DA70DA70DA70DA70DA70DA73R
0e/////////////////////////////FxeoDA70DA70DA70DA70DA70DA73Fxer/////////////////
//////+rq+IDA70DA70DA70DA70DA70DA71+ftT////////////R0e8DA70DA70DA70DA70DA72OjtkD
A70DA70DA70DA70DA70DA73Fxer///////+rq+IDA70DA70DA70DA70DA71sbNADA70DA70DA70DA70D
A70DA72dnd3////////////////FxeoDA70DA70DA70DA70DA70DA72dnd3////////////////FxeoD
A70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA73p6ff////FxeoDA70DA70DA70DA70DA72r
q+L////////////////////////////////////////////////////09PspKcIDA70DA70DA70DA70p
KcJZWcsDA70DA70DA70DA70DA70DA7309Pv////////////////////////////p6fcDA70DA70DA70D
A70DA70DA72dnd3////////////////////09PspKcIDA70DA70DA70DA70DA70DA72rq+L/////////
///09PsDA70DA70DA70DA70DA70pKcIDA70DA70DA70DA70DA70DA73d3fP////////09PspKcIDA70D
A70DA70DA70DA70DA70DA70DA70DA70DA70DA71+ftT////////////////p6fcDA70DA70DA70DA70D
A70DA71ZWcv////////////////d3fMDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA71sbND/
///////d3fMDA70DA70DA70DA70DA71+ftT/////////////////////////////////////////////
//////////+rq+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70pKcL/////////////////
//////////////////8pKcIDA70DA70DA70DA70DA71+ftT////////////////p6fdZWcsDA70DA70D
A70DA70DA70DA70DA73p6ff///////////////8pKcIDA70DA70DA70DA70DA70DA70DA70DA70DA70D
A70DA73///////////////+rq+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA71ERMf/////
//////////////8pKcIDA70DA70DA70DA70DA70pKcL///////////////////8pKcIDA70DA70DA70D
A70DA70DA70DA70DA70DA70DA73Fxer///////////8pKcIDA70DA70DA70DA71ZWcv/////////////
///////////////////////////////////////////09PspKcIDA70DA70DA70DA70DA70DA70DA70D
A70DA70DA71+ftT///////////////////////////////////9ZWcsDA70DA70DA70DA70DA70pKcKr
q+Krq+Krq+JsbNADA70DA70DA70DA70DA70DA70DA70DA71sbND///////////////////9+ftQDA70D
A70DA70DA70DA70DA70DA70DA70DA70DA71ERMf////////////////09PspKcIDA70DA70DA70DA70D
A70DA70DA70DA70DA70DA70DA7309Pv///////////////9ZWcsDA70DA70DA70DA70DA70DA73p6ff/
//////////////9ZWcsDA70DA70DA70DA70DA70DA70DA70DA70DA71ERMf///////////////9ZWcsD
A70DA70DA70DA70DA73///////////////////////////////////////////////////////////+r
q+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA72dnd3/////////////////////////////////
//+dnd0DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA73p
6ff///////////////////+dnd0DA70DA70DA70DA70DA70DA70DA70DA70DA70DA71+ftT/////////
//////////+rq+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA73d3fP///////////////+d
nd0DA70DA70DA70DA70DA70DA73Fxer///////////////+OjtkDA70DA70DA70DA70DA70DA70DA70D
A70DA72rq+L///////////////+OjtkDA70DA70DA70DA70DA73d3fP/////////////////////////
///////////////////////////////09PspKcIDA70DA70DA70DA70DA70DA70DA70DA70DA724uOb/
//////////////////////////////////+rq+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70D
A70DA70DA70DA70DA70DA70DA72rq+L///////////////////////+4uOYDA70DA70DA70DA70DA70D
A70DA70DA70DA70DA72dnd3////////////////////09PspKcIDA70DA70DA70DA70DA70DA70DA70D
A70DA70DA72rq+L///////////////+rq+IDA70DA70DA70DA70DA70DA72rq+L///////////////+r
q+IDA70DA70DA70DA70DA70DA70DA70DA70DA7309Pv///////////////+rq+IDA70DA70DA70DA70D
A724uOb///////////////////////////////////////////////////////////+rq+IDA70DA70D
A70DA70DA70DA70DA70DA70DA73d3fP////////////////////////////////////R0e8DA70DA70D
A70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA72dnd3/////////////////////
///////d3fMDA70DA70DA70DA70DA70DA70DA70DA70DA70DA724uOb///////////////////////+r
q+IDA70DA70DA70DA70DA70DA70DA70DA70DA70DA72dnd3////////////////R0e8DA70DA70DA70D
A70DA70DA71+ftT////////////////R0e8DA70DA70DA70DA70DA70DA70DA70DA72Ojtn/////////
///////////FxeoDA70DA70DA70DA70DA72dnd3/////////////////////////////////////////
///////////////////09PspKcIDA70DA70DA70DA70DA70DA70DA70DA7309Pv/////////////////
///////////////////09PsDA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70DA70p
KcLFxer///////////////////////////////////8DA70DA70DA70DA70DA70DA70DA70DA70DA70D
A73R0e/////////////////////////09PspKcIDA70DA70DA70DA70DA70DA70DA70DA70DA71sbND/
///////////////09PsDA70DA70DA70DA70DA70DA71ZWcv////////////////09PsDA70DA70DA70D
A70DA70DA70DA70DA73R0e/////////////////////09PsDA70DA70DA70DA70DA71+ftT/////////
//////////////////////////////////////////////////////+rq+IDA70DA70DA70DA70DA70D
A70DA71ZWcv///////////////////////////////////////////8pKcIDA70DA70DA70DA70DA70D
A70DA70DA70DA70DA70pKcKrq+Krq+L///////////////////////////////////////////9ZWcsD
A70DA70DA70DA70DA70DA70DA70DA70DA7309Pv///////////////////////////+rq+IDA70DA70D
A70DA70DA70DA70DA70DA70DA70DA73///////////////////8pKcIDA70DA70DA70DA70DA70DA73/
//////////////////8pKcIDA70DA70DA70DA70DA70DA71ZWcv///////////////////////////8p
KcIDA70DA70DA70DA71ERMf/////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//////////////////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==
</value>
</data>
</root>

View File

@@ -0,0 +1,131 @@
Imports System.Windows.Forms
Imports com.sun.org.apache.xml.internal.security.keys.content
Imports javax.xml.bind.annotation
Public Class frmAuditFlow_Pruefungen
Dim AF_PO As cAuditFlow_Pruefobjekte = Nothing
Dim AF_PRUEF As cAuditFlow_Pruefungen = Nothing
Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Sub New(wartPO_Id, wartPruef_Id)
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
AF_PO = New cAuditFlow_Pruefobjekte(wartPO_Id)
AF_PRUEF = New cAuditFlow_Pruefungen(wartPruef_Id)
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Try
Me.Cursor = Cursors.WaitCursor
If checkValues() Then
getValues()
If AF_PRUEF.SAVE Then
Me.Close()
End If
End If
Catch ex As Exception
End Try
Me.Cursor = Cursors.Default
End Sub
Function checkValues() As Boolean
' If xxxx._value = "" Then MsgBox("Firma angeben!") : Return False
Return True
End Function
Sub getValues()
AF_PO.wartPO_Firma = cboFirma._value
AF_PO.wartPO_Niederlasung = cboNL._value
AF_PO.wartPO_StandortId = cboStandort._value
AF_PO.wartPO_Kategorie = cboKategorie._value
AF_PO.wartPO_Bezeichnung = txtBezeichnung.Text
AF_PO.wartPO_Kennung = txtKennung.Text
AF_PO.wartPO_zustaendigIntern_MaId = cboMA._value
AF_PO.wartPO_zustaendigIntern_Name = cboMA.Text
' AF_PO.wartPO_startdatum = datVon._value
AF_PRUEF.wartPruef_Faelligkeitsdatum = datVon._value
End Sub
Sub setValues()
datVon._value = AF_PRUEF.wartPruef_Faelligkeitsdatum
End Sub
Private Sub frmAuditFlow_Pruefungsojekt_Load(sender As Object, e As EventArgs) Handles Me.Load
cboKategorie.Items.Clear()
cboKategorie.fillWithSQL("SELECT wartK_Kategorie,[wartK_KategorieBezeichnung] FROM [tblAuditFlow_Kategorien] order by wartK_KategorieBezeichnung", False, "ADMIN", True)
cboNL.Items.Clear()
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cboNL.SelectedItem = 0
cboFirma.Items.Clear()
cboFirma.fillWithSQL("SELECT distinct(Firma) FROM [Filialen] order by Firma", False, "FMZOLL", True)
cboFirma.changeItem(cAllgemein.FIRMA)
cboMA.fillWithSQL("SELECT [mit_id],[mit_vname] + ' '+ [mit_nname] as Name " &
" FROM [ADMIN].[dbo].[tblMitarbeiter] WHERE [mit_gekuendigt]=0 order by name", False, "ADMIN", True)
If AF_PRUEF Is Nothing Then
AF_PRUEF = New cAuditFlow_Pruefungen(-1)
Else
setValues()
End If
End Sub
Private Sub cboFirma_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedIndexChanged
cboNL.Items.Clear()
cboNL.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
If cboFirma._value <> "" Then
cboNL.fillWithSQL("SELECT nl_kuerzel,nl_bezeichnung FROM [tblNiederlassungen] where [nl_firma]='" & cboFirma._value & "' order by nl_bezeichnung", False, "ADMIN", False)
End If
End Sub
Private Sub cboNL_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboNL.SelectedIndexChanged
cboStandort.Items.Clear()
cboStandort.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
If cboFirma._value <> "" AndAlso cboNL._value <> "" Then
cboStandort.fillWithSQL("SELECT [wartSt_Id],[wartSt_Standort] FROM [tblAuditFlow_Standorte] where [wartSt_Aktiv]=1 and [wartSt_Firma]='" & cboFirma._value & "' AND [wartSt_Niederlasung]='" & cboNL._value & "' order by wartSt_Standort", False, "ADMIN", True)
End If
End Sub
Private Sub frmAuditFlow_Pruefungsojekt_Shown(sender As Object, e As EventArgs) Handles Me.Shown
End Sub
End Class

View File

@@ -0,0 +1,241 @@
Imports System.Data.SqlClient
Imports System.Globalization
Imports System.Text
Imports System.Text.RegularExpressions
Imports com.sun.org.apache.bcel.internal.generic
Public Class KundeMatchResult
Public Property KundId As Integer?
Public Property Score As Double
Public Property MatchType As String ' "VAT", "EORI", "BOTH", "FUZZY", "NONE"
Public Property Firma As String
Public Property Strasse As String
Public Property PLZ As String
Public Property Ort As String
Public Property LandKz As String
Public Property VATNr As String
Public Property EORINr As String
End Class
Public Module KundenMatcher
' Haupteinstieg
Public Function FindKunde(ByVal firma As String,
ByVal strasse As String,
ByVal plz As String,
ByVal ort As String,
ByVal landISO As String,
Optional ByVal vatNr As String = Nothing,
Optional ByVal eoriNr As String = Nothing,
Optional ByVal minFuzzyScore As Double = 0.7) As KundeMatchResult
' 1) Harte (exakte) Matches über VAT/EORI — 100% required
Dim exact = FindExactByVatEori(vatNr, eoriNr)
If exact IsNot Nothing Then
Return exact
End If
Dim LandKz = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO1Land(landISO)
' 2) Fuzzy-Match auf Firma + Adresse
Dim candidates = LoadFuzzyCandidates(firma, plz, ort, LandKz)
If candidates.Count = 0 Then
Return New KundeMatchResult With {.MatchType = "NONE", .Score = 0}
End If
Dim normFirma = NormalizeForCompare(firma)
Dim normStrasse = NormalizeForCompare(strasse)
Dim normOrt = NormalizeForCompare(ort)
Dim best As KundeMatchResult = Nothing
For Each c In candidates
Dim fScore = Similarity(normFirma, NormalizeForCompare(c.Firma))
Dim sScore = Similarity(normStrasse, NormalizeForCompare(c.Strasse))
Dim oScore = Similarity(normOrt, NormalizeForCompare(c.Ort))
' Gewichtung nach Praxis: Name wichtiger als Straße, Ort mittel
Dim score = 0.5 * fScore + 0.3 * sScore + 0.2 * oScore
' Bonus/Malus für PLZ/Land-Genauigkeit
If SafeEquals(plz, c.PLZ) Then score += 0.05
If SafeEquals(LandKz, c.LandKz) Then score += 0.05
If best Is Nothing OrElse score > best.Score Then
best = New KundeMatchResult With {
.KundId = c.KundId,
.Score = Math.Min(score, 1.0),
.MatchType = "FUZZY",
.Firma = c.Firma,
.Strasse = c.Strasse,
.PLZ = c.PLZ,
.Ort = c.Ort,
.LandKz = c.LandKz,
.VATNr = c.VATNr,
.EORINr = c.EORINr
}
End If
Next
If best IsNot Nothing AndAlso best.Score >= minFuzzyScore Then
Return best
Else
Return New KundeMatchResult With {.MatchType = "NONE", .Score = If(best Is Nothing, 0, best.Score)}
End If
End Function
' ---------------------------
' 1) Exakt über VAT/EORI
' ---------------------------
Private Function FindExactByVatEori(vatNr As String, eoriNr As String) As KundeMatchResult
If String.IsNullOrWhiteSpace(vatNr) AndAlso String.IsNullOrWhiteSpace(eoriNr) Then
Return Nothing
End If
Dim sql As New StringBuilder("SELECT TOP 1 * FROM Adressen INNER JOIN Kunden on AdressenNr=KundenNr WHERE 1=1")
If Not String.IsNullOrWhiteSpace(vatNr) Then
sql.Append(" AND isnull(UstIdKz,'')+isnull(UstIdNr,'') = @vat")
End If
If Not String.IsNullOrWhiteSpace(eoriNr) Then
sql.Append(" AND EORITIN = @eori")
End If
Using con As SqlConnection = VERAG_PROG_ALLGEMEIN.SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(sql.ToString(), con)
If Not String.IsNullOrWhiteSpace(vatNr) Then cmd.Parameters.AddWithValue("@vat", vatNr)
If Not String.IsNullOrWhiteSpace(eoriNr) Then cmd.Parameters.AddWithValue("@eori", eoriNr)
con.Open()
Using r = cmd.ExecuteReader()
If r.Read() Then
Dim mt As String = If(Not String.IsNullOrWhiteSpace(vatNr) AndAlso Not String.IsNullOrWhiteSpace(eoriNr), "BOTH",
If(Not String.IsNullOrWhiteSpace(vatNr), "VAT", "EORI"))
Return New KundeMatchResult With {
.KundId = CInt(r("kundId")),
.Score = 1.0,
.MatchType = mt,
.Firma = r("Firma").ToString(),
.Strasse = r("Strasse").ToString(),
.PLZ = r("PLZ").ToString(),
.Ort = r("Ort").ToString(),
.LandKz = r("LandKz").ToString(),
.VATNr = r("VATNr").ToString(),
.EORINr = r("EORINr").ToString()
}
End If
End Using
End Using
End Using
Return Nothing
End Function
' ---------------------------------
' 2) Kandidaten für Fuzzy-Matching
' ---------------------------------
Private Function LoadFuzzyCandidates(firma As String, plz As String,
ort As String, LandKz As String) As List(Of KundeMatchResult)
' Schneller Vorfilter, um nicht die ganze Tabelle zu ziehen:
' - gleiches Land (wenn angegeben)
' - PLZ/Ort (wenn angegeben)
' - Firma LIKE (erste 35 Zeichen), um Suchraum zu verringern
Dim whereClauses As New List(Of String)
If Not String.IsNullOrWhiteSpace(LandKz) Then whereClauses.Add("landKz = @land")
If Not String.IsNullOrWhiteSpace(plz) Then whereClauses.Add("PLZ = @plz")
If Not String.IsNullOrWhiteSpace(ort) Then whereClauses.Add("Ort LIKE @ortLike")
Dim firmaStart = Left(NormalizeForCompare(firma), Math.Min(5, Math.Max(0, firma.Length)))
If firmaStart.Length >= 3 Then whereClauses.Add("([name 1]+' ' + isnull([Name 2],'')) LIKE @firmaLike")
Dim sql = "SELECT TOP 200 KundenNr, [name 1]+' ' + isnull([Name 2],'') as [name], strasse, PLZ, Ort, landKz,isnull(UstIdKz,'')+isnull(UstIdNr,'') VATNr, EORITIN FROM Adressen inner join Kunden on AdressenNr=KundenNr "
If whereClauses.Count > 0 Then
sql &= " WHERE " & String.Join(" AND ", whereClauses)
End If
Dim list As New List(Of KundeMatchResult)
Using con As SqlConnection = VERAG_PROG_ALLGEMEIN.SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand(sql, con)
If Not String.IsNullOrWhiteSpace(LandKz) Then cmd.Parameters.AddWithValue("@land", LandKz)
If Not String.IsNullOrWhiteSpace(plz) Then cmd.Parameters.AddWithValue("@plz", plz)
If Not String.IsNullOrWhiteSpace(ort) Then cmd.Parameters.AddWithValue("@ortLike", ort & "%")
If firmaStart.Length >= 3 Then cmd.Parameters.AddWithValue("@firmaLike", "%" & firmaStart & "%")
con.Open()
Using r = cmd.ExecuteReader()
While r.Read()
list.Add(New KundeMatchResult With {
.KundId = CInt(r("kundId")),
.Firma = r("Firma").ToString(),
.Strasse = r("Strasse").ToString(),
.PLZ = r("PLZ").ToString(),
.Ort = r("Ort").ToString(),
.LandKz = r("LandKz").ToString(),
.VATNr = r("VATNr").ToString(),
.EORINr = r("EORINr").ToString()
})
End While
End Using
End Using
End Using
Return list
End Function
' -----------------------
' Ähnlichkeit & Helpers
' -----------------------
' Levenshtein-Ähnlichkeit (0..1); robust bei Kürze
Private Function Similarity(a As String, b As String) As Double
If String.IsNullOrEmpty(a) AndAlso String.IsNullOrEmpty(b) Then Return 1
If String.IsNullOrEmpty(a) OrElse String.IsNullOrEmpty(b) Then Return 0
Dim dist = LevenshteinDistance(a, b)
Dim maxLen = Math.Max(a.Length, b.Length)
If maxLen = 0 Then Return 1
Return 1.0 - (CDbl(dist) / maxLen)
End Function
Private Function LevenshteinDistance(s As String, t As String) As Integer
Dim n = If(s Is Nothing, 0, s.Length)
Dim m = If(t Is Nothing, 0, t.Length)
If n = 0 Then Return m
If m = 0 Then Return n
Dim d(n, m) As Integer
For i = 0 To n : d(i, 0) = i : Next
For j = 0 To m : d(0, j) = j : Next
For i = 1 To n
For j = 1 To m
Dim cost = If(s(i - 1) = t(j - 1), 0, 1)
d(i, j) = Math.Min(
Math.Min(d(i - 1, j) + 1, d(i, j - 1) + 1),
d(i - 1, j - 1) + cost
)
Next
Next
Return d(n, m)
End Function
' Normalisierung: Großschreibung, Diakritika entfernen, Sonderzeichen/Mehrfachspaces eliminieren
Public Function NormalizeForCompare(input As String) As String
If String.IsNullOrWhiteSpace(input) Then Return String.Empty
Dim s = input.ToUpperInvariant().Trim()
' diakritische Zeichen entfernen
Dim formD = s.Normalize(NormalizationForm.FormD)
Dim sb As New StringBuilder()
For Each ch As Char In formD
Dim uc = CharUnicodeInfo.GetUnicodeCategory(ch)
If uc <> UnicodeCategory.NonSpacingMark Then sb.Append(ch)
Next
s = sb.ToString().Normalize(NormalizationForm.FormC)
' Hausnummern-Zusätze zusammenführen, Punkte/Kommas/Slash entfernen
s = Regex.Replace(s, "[\.\,\/\\\-_]", " ")
' "STRASSE" vs "STR." angleichen (einfacher Heuristik-Schritt)
s = Regex.Replace(s, "\bSTR\.\b", "STRASSE")
' Doppelte/mehrfache Spaces
s = Regex.Replace(s, "\s+", " ").Trim()
Return s
End Function
Private Function SafeEquals(a As String, b As String) As Boolean
Return String.Equals(NormalizeForCompare(a), NormalizeForCompare(b), StringComparison.Ordinal)
End Function
End Module

View File

@@ -468,4 +468,16 @@ Public Class cMitarbeiter
End Select
Return ""
End Function
Public Shared Function GetUserParam(param As String, Optional maId As Integer = -1, Optional defaultReturn As Object = Nothing) As String
Dim result As String = Nothing
If maId < 0 Then
If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER Is Nothing Then Return defaultReturn
maId = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_id
End If
Dim Value = (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("usrPr_value", "tblMitarbeiter_UserParams", "usrPr_maId = '" & maId & "' AND usrPr_parameter = '" & param & "'", "ADMIN", defaultReturn)
Return Value
End Function
End Class

View File

@@ -1,5 +1,6 @@
Imports System.Reflection
Imports System.Data.SqlClient
Imports System.Data.SqlClient
Imports System.Reflection
Imports com.sun.org.apache.xml.internal.security.transforms
' ========================
' 📦 Hauptklasse: DHF_Artikel
@@ -28,14 +29,22 @@ Public Class DHF_Artikel
Public Function Save() As Boolean
Dim result = db.Save("imArtikel", GetParameterList())
For Each tarif In ArtikelTarife
tarif.LizenzNr = LizenzNr
tarif.FremdAdressID = FremdAdressID
tarif.FremdKennung = FremdKennung
tarif.ArtikelCode = ArtikelCode
tarif.Save()
Next
Return result
If result = False Then
Return False ' Fehler beim Speichern der Hauptdaten
Else
For Each tarif In ArtikelTarife
tarif.LizenzNr = LizenzNr
tarif.FremdAdressID = FremdAdressID
tarif.FremdKennung = FremdKennung
tarif.ArtikelCode = ArtikelCode
tarif.Save()
Next
'DatenKomplete setzten -> Das Triggert die Verarbeitung der ArtikelTarife in Zolaris
db.UpdateDatenKomplett("imArtikel", GetParameterList())
Return result
End If
End Function
Public Function Delete() As Boolean
@@ -45,13 +54,36 @@ Public Class DHF_Artikel
Return db.Delete("imArtikel", GetParameterList())
End Function
Public Shared Function Delete_KD(KdNr As String) As Boolean
Public Shared Function Delete_KD(FremdAdressID As String, Optional LizenzNr As String = "S01122") As Boolean ' FremdAdressID= VERAG KdNr
' Dim AdressID_DHF As Integer = -1
Dim db As New DHF_DBHelper
db.DeleteByFremdAdressID("imArtikelTarifZucodes", KdNr)
db.DeleteByFremdAdressID("imArtikelTarif", KdNr)
Return db.DeleteByFremdAdressID("imArtikel", KdNr)
' AdressID_DHF = (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("AdressID", "zzAdressen", "FremdAdressID='" & KdNr & "' ", "EZOLL", -1)
If FremdAdressID <> "" Then
db.DeleteByFremdAdressID("imArtikelTarifZucodes", FremdAdressID, LizenzNr)
db.DeleteByFremdAdressID("imArtikelTarif", FremdAdressID, LizenzNr)
Return db.DeleteByFremdAdressID("imArtikel", FremdAdressID, LizenzNr)
Else
Return False
End If
End Function
Public Shared Function Delete_KDLiveDate(FremdAdressID As String, Optional LizenzNr As String = "S01122") As Boolean ' FremdAdressID= VERAG KdNr
Dim AdressID_DHF As Integer = -1
Dim db As New DHF_DBHelper
AdressID_DHF = (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("AdressID", "zzAdressen", "FremdAdressID='" & FremdAdressID & "' AND LizenzNr='" & LizenzNr & "'", "EZOLL", -1)
Console.WriteLine(AdressID_DHF)
If AdressID_DHF > 0 Then
db.DeleteByAdressID("zzArtikelTarifZucodes", AdressID_DHF, LizenzNr)
db.DeleteByAdressID("zzArtikelTarif", AdressID_DHF, LizenzNr)
Return db.DeleteByAdressID("zzArtikel", AdressID_DHF, LizenzNr)
Else
Return False
End If
End Function
Private Function GetParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Return New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, , True),
@@ -164,6 +196,14 @@ End Class
Public Class DHF_DBHelper
Private SQL As New SQL
Public Function SaveandDatenKomplete(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean
If Save(tableName, params) Then
UpdateDatenKomplett(tableName, params)
Return True
End If
Return False
End Function
Public Function Save(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean
Dim whereClause = GetPrimaryKeyWhere(params)
Dim existsSQL = "SELECT COUNT(*) FROM [" & tableName & "] WHERE " & whereClause
@@ -184,19 +224,37 @@ Public Class DHF_DBHelper
sqlCmd = GetInsertCmd(tableName, params)
End If
Return SQL.doSQLVarList(sqlCmd, "EZOLL", , params)
End Function
Public Function UpdateDatenKomplett(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean
Return SQL.doSQLVarList("update [" & tableName & "] set [DatenKomplett]=1 where
lizenzNr=@LizenzNr AND FremdAdressID=@FremdAdressID AND FremdKennung=@FremdKennung
and ArtikelCode=@ArtikelCode", "EZOLL", , params)
End Function
Public Function Delete(tableName As String, params As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As Boolean
Dim whereClause = GetPrimaryKeyWhere(params)
Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE " & whereClause
Return SQL.doSQLVarList(sqlstr, "EZOLL", , params)
End Function
Public Function DeleteByFremdAdressID(tableName As String, fremdAdressID As String) As Boolean
Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE [FremdAdressID]=@FID"
Public Function DeleteByFremdAdressID(tableName As String, fremdAdressID As String, Optional LizenzNr As String = "S01122") As Boolean
Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE [FremdAdressID]=@FID AND LizenzNr=@LizenzNr "
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
New VERAG_PROG_ALLGEMEIN.SQLVariable("FID", fremdAdressID)
New VERAG_PROG_ALLGEMEIN.SQLVariable("FID", fremdAdressID),
New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr)
}
Return SQL.doSQLVarList(sqlstr, "EZOLL", , list)
End Function
Public Function DeleteByAdressID(tableName As String, AdressID As String, Optional LizenzNr As String = "S01122") As Boolean
Dim sqlstr = "DELETE FROM [" & tableName & "] WHERE [AdressID]=@FID AND LizenzNr=@LizenzNr "
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
New VERAG_PROG_ALLGEMEIN.SQLVariable("FID", AdressID),
New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr)
}
Return SQL.doSQLVarList(sqlstr, "EZOLL", , list)
End Function
@@ -230,7 +288,6 @@ Public Class DHF_ArtikelBeispiel
DHF_Artikel.Delete_KD(KdNr)
MsgBox("del")
Dim artikel As New DHF_Artikel With {
.LizenzNr = "S01122",

View File

@@ -0,0 +1,729 @@
Imports System.Data.SqlClient
Imports System.Reflection
' ===========================================================
' =============== KOPF (imDHFAnm) ======================
' ===========================================================
Public Class cDHF_Import
' ====== Primärschlüssel (zusammengesetzt) ======
Public LizenzNr As String = "S01122"
Public Property OperatorID As String
Public Property VorgangID As String
Public Property AnmID As String
Public Property Kennung As String
' ====== Datenfelder Kopf imDHFAnm (wie geliefert) ======
Public Property DatenKomplett As Object
Public Property LRN As Object
Public Property TotPack As Object
Public Property TotGross As Object
Public Property Dest As Object
Public Property InMo As Object
Public Property BordMo As Object
Public Property DepIdnt As Object
Public Property DepNat As Object
Public Property CrossIdnt As Object
Public Property CrossIdntNat As Object
Public Property TermDelCd As Object
Public Property TermDelSit As Object
Public Property InvCurr As Object
Public Property InvVal As Object
Public Property ConeeTraNa As Object
Public Property ConeeTraStrt As Object
Public Property ConeeTraPst As Object
Public Property ConeeTraCty As Object
Public Property ConeeTraCtry As Object
Public Property ConeeTraFremdAdressID As Object
Public Property ExitCORef As Object
Public Property RechnungsNr As Object
Public Property RechnungsDatum As Object
Public Property DecTy As Object
Public Property Disp As Object
Public Property ArrLocAuth As Object
Public Property ContInd As Object
Public Property TransacCd As Object
Public Property ConorTraNa As Object
Public Property ConorTraStrt As Object
Public Property ConorTraPst As Object
Public Property ConorTraCty As Object
Public Property ConorTraCtry As Object
Public Property ConorTraFremdAdressID As Object
Public Property KzPool As Object
Public Property ConeeTraUIDCtry As Object
Public Property ConeeTraUID As Object
Public Property EntryCORef As Object
Public Property SendungsDatum As Object
Public Property PDTy As Object
Public Property DRef As Object
Public Property CInf As Object
Public Property Cat As Object
Public Property InfoText As Object
Public Property SendungsNr As Object
Public Property ConorTraUIDCtry As Object
Public Property ConorTraUID As Object
Public Property AnschreibeNr As Object
Public Property RIN As Object
Public Property KzAutomatik As Object
Public Property SecInd As Object
Public Property SpecCirc As Object
Public Property TransPayTy As Object
Public Property ComRef As Object
Public Property LodCoRef As Object
Public Property ResCd As Object
Public Property DLimit As Object
Public Property Route As Object
Public Property SNr As Object
Public Property KzEigenmassenaufteilung As Object
Public Property MusterName As Object
Public Property ConvRef As Object
Public Property ProArrDT As Object
Public Property LoadPlc As Object
Public Property UnloadPlcCd As Object
Public Property UnloadPlc As Object
Public Property FirEntryCoRef As Object
Public Property CarrTraNa As Object
Public Property CarrTraStrt As Object
Public Property CarrTraPst As Object
Public Property CarrTraCty As Object
Public Property CarrTraCtry As Object
Public Property CarrTraFremdAdressID As Object
Public Property NotifyTraNa As Object
Public Property NotifyTraStrt As Object
Public Property NotifyTraPst As Object
Public Property NotifyTraCty As Object
Public Property NotifyTraCtry As Object
Public Property NotifyTraFremdAdressID As Object
Public Property RepTraFremdAdressID As Object
Public Property SumDecTraFremdAdressID As Object
Public Property DecPlc As Object
Public Property DecDT As Object
Public Property RelationsID As Object
Public Property SSt_LizenzNr As Object
Public Property SSt_ID As Object
Public Property SSt_ArtID As Object
Public Property SSt_ProtokollKopfID As Object
Public Property KzPredeclaration As Object
Public Property AccDT As Object
Public Property PayTy As Object
Public Property DepoCd As Object
Public Property WarTy As Object
Public Property WarCtry As Object
Public Property War As Object
Public Property ZLID As Object
Public Property TermDelCtry As Object
Public Property TermDelPlc As Object
' ====== Navigation / Unterobjekte ======
Public Property GdsItems As New List(Of cDHF_Import_GdsItem)
Private Const TBL As String = "imDHFAnm"
Private ReadOnly SQL As New SQL
' ---- Konstruktor (Leeres Objekt) ----
Public Sub New()
End Sub
' ---- Konstruktor mit Schlüssel + Auto-Load ----
Public Sub New(lizenzNr As String, operatorId As String, vorgangId As String, anmId As String, kennung As String)
Me.LizenzNr = lizenzNr : Me.OperatorID = operatorId : Me.VorgangID = vorgangId : Me.AnmID = anmId : Me.Kennung = kennung
Load()
End Sub
' ---- Parameterliste dynamisch erzeugen (PK markiert) ----
Private Function GetVarList(Optional includePK As Boolean = True) As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim l As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
' PK
If includePK Then
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, "LizenzNr", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OperatorID", OperatorID, "OperatorID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VorgangID", VorgangID, "VorgangID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AnmID", AnmID, "AnmID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kennung", Kennung, "Kennung", True))
End If
' Alle Felder (Non-PK)
Dim allProps = Me.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance).
Where(Function(p) p.CanRead AndAlso p.CanWrite AndAlso p.Name <> NameOf(GdsItems))
For Each p In allProps
If {"LizenzNr", "OperatorID", "VorgangID", "AnmID", "Kennung"}.Contains(p.Name) Then Continue For
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable(p.Name, p.GetValue(Me), p.Name, False))
Next
Return l
End Function
' ---- Save: Upsert + Kinder in Transaktion ----
Public Function Save() As Boolean
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using tr = conn.BeginTransaction()
Try
' Upsert Kopf
Dim vars = GetVarList(includePK:=True)
Dim wherePk = "WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung"
Dim sqlCheck = $"IF EXISTS(SELECT 1 FROM [{TBL}] {wherePk}) BEGIN {_SqlDyn.BuildUpdateCmd(TBL, vars)} END ELSE BEGIN {_SqlDyn.BuildInsertCmd(TBL, vars)} END"
Using cmd As New SqlCommand(sqlCheck, conn, tr)
_SqlDyn.AddParams(cmd, vars)
cmd.ExecuteNonQuery()
End Using
' Kinder neu schreiben: erst löschen, dann einfügen (vereinfachte Konsistenz)
DeleteChildren(conn, tr)
' Positionen + Unterpositionen schreiben
For Each it In GdsItems
it.LizenzNr = Me.LizenzNr
it.OperatorID = Me.OperatorID
it.VorgangID = Me.VorgangID
it.AnmID = Me.AnmID
it.Kennung = Me.Kennung
it.Save(conn, tr)
Next
tr.Commit()
Return True
Catch ex As Exception
tr.Rollback()
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, MethodBase.GetCurrentMethod().Name)
Return False
End Try
End Using
End Using
End Function
Private Sub DeleteChildren(conn As SqlConnection, tr As SqlTransaction)
' Löscht alle abhängigen Einträge (DocCerts + Pack zuerst, dann GdsItems)
Dim pkWhere = "WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung"
Dim delDoc = $"DELETE d FROM [imDHFAnmGdsItemDocCerts] d INNER JOIN [imDHFAnmGdsItem] i ON d.LizenzNr=i.LizenzNr AND d.OperatorID=i.OperatorID AND d.VorgangID=i.VorgangID AND d.AnmID=i.AnmID AND d.Kennung=i.Kennung AND d.GdsItemID=i.GdsItemID {pkWhere.Replace("WHERE", "WHERE i.")}"
Dim delPack = $"DELETE p FROM [imDHFAnmGdsItemPack] p INNER JOIN [imDHFAnmGdsItem] i ON p.LizenzNr=i.LizenzNr AND p.OperatorID=i.OperatorID AND p.VorgangID=i.VorgangID AND p.AnmID=i.AnmID AND p.Kennung=i.Kennung AND p.GdsItemID=i.GdsItemID {pkWhere.Replace("WHERE", "WHERE i.")}"
Dim delIt = $"DELETE FROM [imDHFAnmGdsItem] {pkWhere}"
Dim pars As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) From {
New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, "LizenzNr", True),
New VERAG_PROG_ALLGEMEIN.SQLVariable("OperatorID", OperatorID, "OperatorID", True),
New VERAG_PROG_ALLGEMEIN.SQLVariable("VorgangID", VorgangID, "VorgangID", True),
New VERAG_PROG_ALLGEMEIN.SQLVariable("AnmID", AnmID, "AnmID", True),
New VERAG_PROG_ALLGEMEIN.SQLVariable("Kennung", Kennung, "Kennung", True)
}
For Each s In {delDoc, delPack, delIt}
Using cmd As New SqlCommand(s, conn, tr)
_SqlDyn.AddParams(cmd, pars)
cmd.ExecuteNonQuery()
End Using
Next
End Sub
' ---- Load: Kopf + Kinder ----
Public Sub Load()
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
' Kopf
Dim selectHead = $"SELECT * FROM [{TBL}] WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung"
Using cmd As New SqlCommand(selectHead, conn)
cmd.Parameters.AddWithValue("@LizenzNr", LizenzNr)
cmd.Parameters.AddWithValue("@OperatorID", OperatorID)
cmd.Parameters.AddWithValue("@VorgangID", VorgangID)
cmd.Parameters.AddWithValue("@AnmID", AnmID)
cmd.Parameters.AddWithValue("@Kennung", Kennung)
Using dr = cmd.ExecuteReader()
If dr.Read() Then
_SqlDyn.DataReaderToObject(dr, Me, GetVarList(includePK:=False))
End If
End Using
End Using
' Kinder laden
Me.GdsItems.Clear()
Dim selectIt = "SELECT * FROM [imDHFAnmGdsItem] WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung ORDER BY ItNr"
Using cmd As New SqlCommand(selectIt, conn)
cmd.Parameters.AddWithValue("@LizenzNr", LizenzNr)
cmd.Parameters.AddWithValue("@OperatorID", OperatorID)
cmd.Parameters.AddWithValue("@VorgangID", VorgangID)
cmd.Parameters.AddWithValue("@AnmID", AnmID)
cmd.Parameters.AddWithValue("@Kennung", Kennung)
Using dr = cmd.ExecuteReader()
While dr.Read()
Dim it As New cDHF_Import_GdsItem() With {
.LizenzNr = dr("LizenzNr").ToString(),
.OperatorID = dr("OperatorID").ToString(),
.VorgangID = dr("VorgangID").ToString(),
.AnmID = dr("AnmID").ToString(),
.Kennung = dr("Kennung").ToString(),
.GdsItemID = dr("GdsItemID").ToString()
}
it.FillFromReader(dr)
GdsItems.Add(it)
End While
End Using
End Using
' Unterobjekte je Position laden
For Each it In GdsItems
it.LoadChildren(conn)
Next
End Using
End Sub
End Class
' ===========================================================
' =============== POSITION (imDHFAnmGdsItem) ===========
' ===========================================================
Public Class cDHF_Import_GdsItem
' ====== FK/PK-Teil (Kopfbezug + pos-ID) ======
Public Property LizenzNr As String
Public Property OperatorID As String
Public Property VorgangID As String
Public Property AnmID As String
Public Property Kennung As String
Public Property GdsItemID As String
' ====== Positionsfelder ======
Public Property ItNr As Object
Public Property ComCd As Object
Public Property GdsDes As Object
Public Property Gross As Object
Public Property Net As Object
Public Property ProcCd As Object
Public Property ProcAddCd As Object
Public Property ItVal As Object
Public Property Orig As Object
Public Property Pref As Object
Public Property Quota As Object
Public Property ValMet As Object
Public Property VATInd As Object
Public Property ArtikelCode As Object
Public Property InfoText As Object
Public Property ArtikelMenge As Object
Public Property ArtikelMengenEH As Object
Public Property RezOrt As Object
Public Property SNr As Object
Public Property ProcTxt As Object
Public Property ComplPer As Object
Public Property ProsYield As Object
Public Property SpecMod As Object
Public Property RecCd As Object
Public Property SurvCORef As Object
Public Property EndCORef As Object
Public Property ComRef As Object
Public Property UNDangCd As Object
Public Property GlobCd As Object
Public Property GlobPer As Object
Public Property CondCd As Object
Public Property TransPayTy As Object
Public Property ConorTraNa As Object
Public Property ConorTraStrt As Object
Public Property ConorTraPst As Object
Public Property ConorTraCty As Object
Public Property ConorTraCtry As Object
Public Property ConorTraTIN As Object
Public Property ConorTraAdressIDDHF As Object
Public Property ConeeTraNa As Object
Public Property ConeeTraStrt As Object
Public Property ConeeTraPst As Object
Public Property ConeeTraCty As Object
Public Property ConeeTraCtry As Object
Public Property ConeeTraTIN As Object
Public Property ConeeTraAdressIDDHF As Object
Public Property ExtraDEBundesland As Object
' ====== Unterlisten ======
Public Property DocCerts As New List(Of cDHF_Import_GdsItemDocCerts)
Public Property Packs As New List(Of cDHF_Import_GdsItemPack)
Private Const TBL As String = "imDHFAnmGdsItem"
Friend Sub FillFromReader(dr As SqlDataReader)
Dim props = Me.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance).
Where(Function(p) p.CanRead AndAlso p.CanWrite AndAlso p.Name <> NameOf(DocCerts) AndAlso p.Name <> NameOf(Packs))
For Each p In props
If dr.GetSchemaTable().Rows.Cast(Of DataRow)().Any(Function(r) r("ColumnName").ToString() = p.Name) Then
If dr.IsDBNull(dr.GetOrdinal(p.Name)) Then
p.SetValue(Me, Nothing)
Else
p.SetValue(Me, dr(p.Name))
End If
End If
Next
End Sub
Private Function GetVarList(Optional includePK As Boolean = True) As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim l As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
If includePK Then
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, "LizenzNr", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OperatorID", OperatorID, "OperatorID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VorgangID", VorgangID, "VorgangID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AnmID", AnmID, "AnmID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kennung", Kennung, "Kennung", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("GdsItemID", GdsItemID, "GdsItemID", True))
End If
Dim skip = New HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {
"LizenzNr", "OperatorID", "VorgangID", "AnmID", "Kennung", "GdsItemID",
NameOf(DocCerts), NameOf(Packs)
}
For Each p In Me.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance)
If Not p.CanRead OrElse Not p.CanWrite OrElse skip.Contains(p.Name) Then Continue For
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable(p.Name, p.GetValue(Me), p.Name, False))
Next
Return l
End Function
Friend Sub Save(conn As SqlConnection, tr As SqlTransaction)
' Upsert Position
Dim vars = GetVarList(includePK:=True)
Dim wherePk = "WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung AND [GdsItemID]=@GdsItemID"
Dim sqlCheck = $"IF EXISTS(SELECT 1 FROM [{TBL}] {wherePk}) BEGIN {_SqlDyn.BuildUpdateCmd(TBL, vars)} END ELSE BEGIN {_SqlDyn.BuildInsertCmd(TBL, vars)} END"
Using cmd As New SqlCommand(sqlCheck, conn, tr)
_SqlDyn.AddParams(cmd, vars)
cmd.ExecuteNonQuery()
End Using
' Kinder neu schreiben (DocCerts, Packs): delete + insert
DeleteChildren(conn, tr)
For Each d In DocCerts
d.LizenzNr = LizenzNr : d.OperatorID = OperatorID : d.VorgangID = VorgangID : d.AnmID = AnmID : d.Kennung = Kennung
d.GdsItemID = GdsItemID
d.Save(conn, tr)
Next
For Each p In Packs
p.LizenzNr = LizenzNr : p.OperatorID = OperatorID : p.VorgangID = VorgangID : p.AnmID = AnmID : p.Kennung = Kennung
p.GdsItemID = GdsItemID
p.Save(conn, tr)
Next
End Sub
Private Sub DeleteChildren(conn As SqlConnection, tr As SqlTransaction)
Dim wherePk = "WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung AND [GdsItemID]=@GdsItemID"
For Each ttt In {"imDHFAnmGdsItemDocCerts", "imDHFAnmGdsItemPack"}
Using cmd As New SqlCommand($"DELETE FROM [{ttt}] {wherePk}", conn, tr)
cmd.Parameters.AddWithValue("@LizenzNr", LizenzNr)
cmd.Parameters.AddWithValue("@OperatorID", OperatorID)
cmd.Parameters.AddWithValue("@VorgangID", VorgangID)
cmd.Parameters.AddWithValue("@AnmID", AnmID)
cmd.Parameters.AddWithValue("@Kennung", Kennung)
cmd.Parameters.AddWithValue("@GdsItemID", GdsItemID)
cmd.ExecuteNonQuery()
End Using
Next
End Sub
Friend Sub LoadChildren(conn As SqlConnection)
' DocCerts
DocCerts.Clear()
Dim sDoc = "SELECT * FROM [imDHFAnmGdsItemDocCerts] WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung AND [GdsItemID]=@GdsItemID ORDER BY DocCertsID"
Using cmd As New SqlCommand(sDoc, conn)
cmd.Parameters.AddWithValue("@LizenzNr", LizenzNr)
cmd.Parameters.AddWithValue("@OperatorID", OperatorID)
cmd.Parameters.AddWithValue("@VorgangID", VorgangID)
cmd.Parameters.AddWithValue("@AnmID", AnmID)
cmd.Parameters.AddWithValue("@Kennung", Kennung)
cmd.Parameters.AddWithValue("@GdsItemID", GdsItemID)
Using dr = cmd.ExecuteReader()
While dr.Read()
Dim d As New cDHF_Import_GdsItemDocCerts() With {
.LizenzNr = LizenzNr, .OperatorID = OperatorID, .VorgangID = VorgangID,
.AnmID = AnmID, .Kennung = Kennung, .GdsItemID = GdsItemID,
.DocCertsID = dr("DocCertsID").ToString()
}
d.FillFromReader(dr)
DocCerts.Add(d)
End While
End Using
End Using
' Packs
Packs.Clear()
Dim sPack = "SELECT * FROM [imDHFAnmGdsItemPack] WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung AND [GdsItemID]=@GdsItemID ORDER BY PackID"
Using cmd As New SqlCommand(sPack, conn)
cmd.Parameters.AddWithValue("@LizenzNr", LizenzNr)
cmd.Parameters.AddWithValue("@OperatorID", OperatorID)
cmd.Parameters.AddWithValue("@VorgangID", VorgangID)
cmd.Parameters.AddWithValue("@AnmID", AnmID)
cmd.Parameters.AddWithValue("@Kennung", Kennung)
cmd.Parameters.AddWithValue("@GdsItemID", GdsItemID)
Using dr = cmd.ExecuteReader()
While dr.Read()
Dim p As New cDHF_Import_GdsItemPack() With {
.LizenzNr = LizenzNr, .OperatorID = OperatorID, .VorgangID = VorgangID,
.AnmID = AnmID, .Kennung = Kennung, .GdsItemID = GdsItemID,
.PackID = dr("PackID").ToString()
}
p.FillFromReader(dr)
Packs.Add(p)
End While
End Using
End Using
End Sub
End Class
' ===========================================================
' ============ DOC/CERTS (imDHFAnmGdsItemDocCerts) =====
' ===========================================================
Public Class cDHF_Import_GdsItemDocCerts
' FK/PK
Public Property LizenzNr As String
Public Property OperatorID As String
Public Property VorgangID As String
Public Property AnmID As String
Public Property Kennung As String
Public Property GdsItemID As String
Public Property DocCertsID As String
' Felder
Public Property DocCd As Object
Public Property DTy As Object
Public Property DRef As Object
Public Property IssD As Object
Public Property IssCtry As Object
Public Property DTIN As Object
Public Property Curr As Object
Public Property Avail As Object
Public Property UidVid As Object
Public Property IssAdm As Object
Public Property ValD As Object
Public Property MaxValD As Object
Public Property CInf As Object
Public Property InfoLNG As Object
Public Property Unit As Object
Public Property Quant As Object
Public Property MaxQuant As Object
Public Property WOUnit As Object
Public Property WOoUnit As Object
Public Property WOCurr As Object
Public Property WOInQuant As Object
Public Property WOQuant As Object
Public Property WORemQunat As Object
Public Property CRefTy As Object
Public Property CRefRef As Object
Public Property CRefIt As Object
Public Property CRefLNG As Object
Public Property AvailDT As Object
Public Property AdressIDDHF As Object
Public Property Na As Object
Public Property Strt As Object
Public Property Pst As Object
Public Property Cty As Object
Public Property Ctry As Object
Public Property LNG As Object
Private Const TBL As String = "imDHFAnmGdsItemDocCerts"
Private Function GetVarList(Optional includePK As Boolean = True) As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim l As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
If includePK Then
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, "LizenzNr", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OperatorID", OperatorID, "OperatorID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VorgangID", VorgangID, "VorgangID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AnmID", AnmID, "AnmID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kennung", Kennung, "Kennung", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("GdsItemID", GdsItemID, "GdsItemID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("DocCertsID", DocCertsID, "DocCertsID", True))
End If
Dim skip = New HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {
"LizenzNr", "OperatorID", "VorgangID", "AnmID", "Kennung", "GdsItemID", "DocCertsID"
}
For Each p In Me.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance)
If Not p.CanRead OrElse Not p.CanWrite OrElse skip.Contains(p.Name) Then Continue For
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable(p.Name, p.GetValue(Me), p.Name, False))
Next
Return l
End Function
Friend Sub Save(conn As SqlConnection, tr As SqlTransaction)
Dim vars = GetVarList(includePK:=True)
Dim wherePk = "WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung AND [GdsItemID]=@GdsItemID AND [DocCertsID]=@DocCertsID"
Dim sqlCheck = $"IF EXISTS(SELECT 1 FROM [{TBL}] {wherePk}) BEGIN {_SqlDyn.BuildUpdateCmd(TBL, vars)} END ELSE BEGIN {_SqlDyn.BuildInsertCmd(TBL, vars)} END"
Using cmd As New SqlCommand(sqlCheck, conn, tr)
_SqlDyn.AddParams(cmd, vars)
cmd.ExecuteNonQuery()
End Using
End Sub
Friend Sub FillFromReader(dr As SqlDataReader)
Dim props = Me.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance)
For Each p In props
If {"LizenzNr", "OperatorID", "VorgangID", "AnmID", "Kennung", "GdsItemID", "DocCertsID"}.Contains(p.Name) Then Continue For
If dr.GetSchemaTable().Rows.Cast(Of DataRow)().Any(Function(r) r("ColumnName").ToString() = p.Name) Then
If dr.IsDBNull(dr.GetOrdinal(p.Name)) Then
p.SetValue(Me, Nothing)
Else
p.SetValue(Me, dr(p.Name))
End If
End If
Next
End Sub
End Class
' ===========================================================
' ================ PACK (imDHFAnmGdsItemPack) ==========
' ===========================================================
Public Class cDHF_Import_GdsItemPack
' FK/PK
Public Property LizenzNr As String
Public Property OperatorID As String
Public Property VorgangID As String
Public Property AnmID As String
Public Property Kennung As String
Public Property GdsItemID As String
Public Property PackID As String
' Felder
Public Property Mark As Object
Public Property Kind As Object
Public Property Nr As Object
Public Property Piec As Object
Private Const TBL As String = "imDHFAnmGdsItemPack"
Private Function GetVarList(Optional includePK As Boolean = True) As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim l As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
If includePK Then
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LizenzNr", LizenzNr, "LizenzNr", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OperatorID", OperatorID, "OperatorID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VorgangID", VorgangID, "VorgangID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("AnmID", AnmID, "AnmID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Kennung", Kennung, "Kennung", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("GdsItemID", GdsItemID, "GdsItemID", True))
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PackID", PackID, "PackID", True))
End If
Dim skip = New HashSet(Of String)(StringComparer.OrdinalIgnoreCase) From {
"LizenzNr", "OperatorID", "VorgangID", "AnmID", "Kennung", "GdsItemID", "PackID"
}
For Each p In Me.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance)
If Not p.CanRead OrElse Not p.CanWrite OrElse skip.Contains(p.Name) Then Continue For
l.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable(p.Name, p.GetValue(Me), p.Name, False))
Next
Return l
End Function
Friend Sub Save(conn As SqlConnection, tr As SqlTransaction)
Dim vars = GetVarList(includePK:=True)
Dim wherePk = "WHERE [LizenzNr]=@LizenzNr AND [OperatorID]=@OperatorID AND [VorgangID]=@VorgangID AND [AnmID]=@AnmID AND [Kennung]=@Kennung AND [GdsItemID]=@GdsItemID AND [PackID]=@PackID"
Dim sqlCheck = $"IF EXISTS(SELECT 1 FROM [{TBL}] {wherePk}) BEGIN {_SqlDyn.BuildUpdateCmd(TBL, vars)} END ELSE BEGIN {_SqlDyn.BuildInsertCmd(TBL, vars)} END"
Using cmd As New SqlCommand(sqlCheck, conn, tr)
_SqlDyn.AddParams(cmd, vars)
cmd.ExecuteNonQuery()
End Using
End Sub
Friend Sub FillFromReader(dr As SqlDataReader)
Dim props = Me.GetType().GetProperties(BindingFlags.Public Or BindingFlags.Instance)
For Each p In props
If {"LizenzNr", "OperatorID", "VorgangID", "AnmID", "Kennung", "GdsItemID", "PackID"}.Contains(p.Name) Then Continue For
If dr.GetSchemaTable().Rows.Cast(Of DataRow)().Any(Function(r) r("ColumnName").ToString() = p.Name) Then
If dr.IsDBNull(dr.GetOrdinal(p.Name)) Then
p.SetValue(Me, Nothing)
Else
p.SetValue(Me, dr(p.Name))
End If
End If
Next
End Sub
End Class
' -----------------------------------------------
' Gemeinsame Utilities für dynamische SQLs nach dem Muster aus _BASE
' -----------------------------------------------
Friend Module _SqlDyn
Friend Function BuildUpdateCmd(tableName As String, vars As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String
Dim sets As New List(Of String)
Dim wheres As New List(Of String)
For Each v In vars
If v.isPrimaryParam Then
wheres.Add("[" & v.Text & "] = @" & v.Scalarvariable)
Else
sets.Add("[" & v.Text & "] = @" & v.Scalarvariable)
End If
Next
If sets.Count = 0 Then Throw New Exception("Keine Non-PK-Spalten für UPDATE.")
Return $"UPDATE [{tableName}] SET {String.Join(",", sets)} WHERE {String.Join(" AND ", wheres)}"
End Function
Friend Function BuildInsertCmd(tableName As String, vars As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)) As String
Dim cols As New List(Of String)
Dim pars As New List(Of String)
For Each v In vars
If Not v.isPrimaryParam Then
cols.Add("[" & v.Text & "]")
pars.Add("@" & v.Scalarvariable)
Else
' PK-Spalten oft ebenfalls explizit spaltenseitig hier mit aufnehmen,
' sofern in DB nicht als IDENTITY definiert:
cols.Add("[" & v.Text & "]")
pars.Add("@" & v.Scalarvariable)
End If
Next
Return $"INSERT INTO [{tableName}] ({String.Join(",", cols)}) VALUES({String.Join(",", pars)})"
End Function
Friend Sub AddParams(cmd As SqlCommand, vars As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable))
For Each v In vars
cmd.Parameters.AddWithValue("@" & v.Scalarvariable, If(v.Value, DBNull.Value))
Next
End Sub
Friend Sub DataReaderToObject(dr As SqlDataReader, target As Object, vars As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable))
Dim t = target.GetType()
For Each v In vars
Dim pi = t.GetProperty(v.Text)
If pi IsNot Nothing AndAlso Not dr.IsDBNull(dr.GetOrdinal(v.Text)) Then
pi.SetValue(target, dr(v.Text))
ElseIf pi IsNot Nothing Then
pi.SetValue(target, Nothing)
End If
Next
End Sub
Sub test()
'' Verwendung(Beispiel)
' Kopf anlegen
Dim imp As New cDHF_Import("LIC", "OP", "VORG", "ANM", "KENN")
imp.RechnungsNr = "INV-2025-001"
imp.InvCurr = "EUR"
imp.InvVal = 12345D
' Position hinzufügen
Dim it = New cDHF_Import_GdsItem() With {
.GdsItemID = "1",
.ItNr = 1,
.ComCd = "85044030",
.GdsDes = "Power Supply",
.Net = 12.34D,
.ItVal = 999D
}
' Doc/Certs
it.DocCerts.Add(New cDHF_Import_GdsItemDocCerts() With {
.DocCertsID = "1",
.DocCd = "N380",
.DRef = "REF-123",
.Avail = 1
})
' Packstücke
it.Packs.Add(New cDHF_Import_GdsItemPack() With {
.PackID = "1",
.Kind = "PK",
.Piec = 3
})
imp.GdsItems.Add(it)
' Speichern -> speichert Kopf + Position + Unterzeilen in einer Transaktion
Dim ok = imp.Save()
' Laden
Dim imp2 As New cDHF_Import("S01122", "1", "VORG", "ANM", "KENN")
' -> imp2 ist nun inkl. GdsItems, DocCerts und Packs befüllt
End Sub
End Module

View File

@@ -178,6 +178,12 @@
<Compile Include="AuditFlow\frmAuditFlow.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="AuditFlow\frmAuditFlow_Pruefungen.Designer.vb">
<DependentUpon>frmAuditFlow_Pruefungen.vb</DependentUpon>
</Compile>
<Compile Include="AuditFlow\frmAuditFlow_Pruefungen.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="AuditFlow\frmAuditFlow_Pruefungsojekt.Designer.vb">
<DependentUpon>frmAuditFlow_Pruefungsojekt.vb</DependentUpon>
</Compile>
@@ -390,6 +396,7 @@
<Compile Include="Schnittstellen\BZST\cBZST_UID.vb" />
<Compile Include="Schnittstellen\cHMRC.vb" />
<Compile Include="Schnittstellen\DHF\cDHF_Artikel.vb" />
<Compile Include="Schnittstellen\DHF\cDHF_Import.vb" />
<Compile Include="Schnittstellen\TELOTEC\cTelotecAPI.vb" />
<Compile Include="Schnittstellen\HMRC\cHMRCToken.vb" />
<Compile Include="Classes\cKundenAufschubkonten.vb" />
@@ -753,6 +760,9 @@
<EmbeddedResource Include="AuditFlow\frmAuditFlow.resx">
<DependentUpon>frmAuditFlow.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="AuditFlow\frmAuditFlow_Pruefungen.resx">
<DependentUpon>frmAuditFlow_Pruefungen.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="AuditFlow\frmAuditFlow_Pruefungsojekt.resx">
<DependentUpon>frmAuditFlow_Pruefungsojekt.vb</DependentUpon>
</EmbeddedResource>