<component id="15" name="Script Component Plus" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script" localeId="1033" version="9" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="20" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="15"><arrayElement dataType="System.String"><![CDATA[ScriptMain.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-2009 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Data
Imports System.Data.Common
Imports System.Text.RegularExpressions
Imports System.Collections

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"Connection", "Statement", "Timeout", "ParseExpression", "InputColumns"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    Private Const ColumnSeparator As String = "," + vbLf


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        ' Setup parameters value.
        Dim paramsCount As Integer = m_inputIndexes.Length
        For paramIndex As Integer = 0 To paramsCount - 1
            Dim colValue As Object = DBNull.Value

            Dim inputIndex As Integer = m_inputIndexes(paramIndex)
            If Not Row.Buffer.IsNull(inputIndex) Then
                colValue = Row.Buffer(inputIndex)
            End If

            m_command.Parameters(paramIndex).Value = colValue
        Next

        Select Case Me.ErrorRowDisposition
            Case DTSRowDisposition.RD_IgnoreFailure
                Try
                    Call m_command.ExecuteNonQuery()
                Catch ex As Exception
                End Try

                Call Row.DirectRowToOutput()

            Case DTSRowDisposition.RD_RedirectRow
                Try
                    Call m_command.ExecuteNonQuery()
                    Call Row.DirectRowToOutput()
                Catch ex As Exception
                    Row.ErrorDescription = ex.Message
                    Call Row.DirectRowToErrorOutput()
                End Try

            Case DTSRowDisposition.RD_FailComponent, DTSRowDisposition.RD_NotUsed
                Call m_command.ExecuteNonQuery()
                Call Row.DirectRowToOutput()
        End Select
    End Sub ' Input_ProcessInputRow


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PreExecute()
        Call MyBase.PreExecute()

        ' Initialize ADO.NET command.
        Dim connection As DbConnection = CType( _
            MyBase.Connections.AdoNet.AcquireConnection(Nothing), _
            DbConnection)
        m_command = connection.CreateCommand()
        m_command.CommandText = Me.Statement
        m_command.CommandTimeout = Me.Timeout

        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)

        ' Get parameters.
        Dim params() As String = GetParameters_()

        ' Setup parameters.
        Dim paramsCount As Integer = params.Length
        For paramIndex As Integer = 0 To paramsCount - 1
            Dim parameter As DbParameter = m_command.CreateParameter()
            parameter.ParameterName = params(paramIndex)
            Call SetupParameter_(input.InputColumnCollection(paramIndex), parameter)
            Call m_command.Parameters.Add(parameter)
        Next

        ' Setup dynamic input columns indexes.
        m_inputIndexes = New Integer(paramsCount - 1) {}
        For colIndex As Integer = 0 To paramsCount - 1
            m_inputIndexes(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                input.InputColumnCollection(colIndex).LineageID)
        Next
    End Sub ' PreExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PostExecute()
        Call MyBase.PostExecute()

        If Not m_command Is Nothing Then
            Call m_command.Dispose()
            m_command = Nothing
        End If
    End Sub ' PostExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean

        Try
            If String.IsNullOrEmpty(Me.Connection) Then
                Throw New ApplicationException("Select ADO.NET connection.")
            End If

            If String.IsNullOrEmpty(Me.Statement) Then
                Throw New ApplicationException("Specify SQL statement.")
            End If

            If String.IsNullOrEmpty(Me.ParseExpression) Then
                Throw New ApplicationException("Specify regular expression for parameters parse.")
            End If

            Dim params() As String = GetParameters_()

            Dim selectedCols() As String = {}
            If Not String.IsNullOrEmpty(Me.InputColumns) Then
                selectedCols = Me.InputColumns.Split( _
                    New String() {ColumnSeparator}, _
                    StringSplitOptions.None)
            End If

            If params.Length > selectedCols.Length Then
                ' Selected input columns are not enough.
                Throw New ApplicationException("Select input columns for these parameters: " & String.Join(", ", params))
            End If

            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.
            Me.ComponentMetaData.RuntimeConnectionCollection("AdoNet").ConnectionManagerID = Me.Connection

            ' Setup input columns based on selection.
            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
            Call input.InputColumnCollection.RemoveAll()

            For Each col As String In selectedCols
                If Not String.IsNullOrEmpty(col) Then
                    Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(col)
                    Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READONLY)
                End If
            Next

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select ADO.NET Connection Manager.")> _
    <Category("Command")> _
    <Connection("AdoNetConnectionType", True)> _
    Public Property Connection() As String
        Get
            Connection = m_connection
        End Get
        Set(ByVal value As String)
            m_connection = value
        End Set
    End Property    ' Connection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify SQL statement to execute.")> _
    <Category("Command")> _
    <TextDialog("Specify SQL statement", "", "SQL")> _
    Public Property Statement() As String
        Get
            Statement = m_statement
        End Get
        Set(ByVal value As String)
            m_statement = value
        End Set
    End Property    ' Statement


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify number of seconds before a command times out. Set 0 for infinite time-out.")> _
    <Category("Command")> _
    <DefaultValue(0)> _
    Public Property Timeout() As Integer
        Get
            Timeout = m_timeout
        End Get
        Set(ByVal value As Integer)
            m_timeout = value
        End Set
    End Property    ' Timeout


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify how to handle error rows.")> _
    <Category("Error")> _
    <DefaultValue(DTSRowDisposition.RD_FailComponent)> _
    Public Property ErrorRowDisposition() As DTSRowDisposition
        Get
            ErrorRowDisposition = m_errorRowDisposition
        End Get
        Set(ByVal value As DTSRowDisposition)
            m_errorRowDisposition = value
        End Set
    End Property    ' ErrorRowDisposition


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify regular expression to parse statement parameters.")> _
    <Category("Parameters")> _
    <RegularExpressionDialog()> _
    <DefaultValue("@(\w+)")> _
    Public Property ParseExpression() As String
        Get
            ParseExpression = m_parseExpression
        End Get
        Set(ByVal value As String)
            m_parseExpression = value
        End Set
    End Property    ' ParseExpression


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input columns for command parameters.")> _
    <Category("Parameters")> _
    <InputVirtualColumn("", False)> _
    Public Property InputColumns() As String
        Get
            InputColumns = m_inputColumns
        End Get
        Set(ByVal value As String)
            m_inputColumns = value
        End Set
    End Property    ' InputColumns
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property AdoNetConnectionType() As String()
        Get
            AdoNetConnectionType = New String() {"ADO.NET"}
        End Get
    End Property    ' AdoNetConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Parse specified statement with specified regular expression to retrieve parameters.
    Private Function GetParameters_() As String()
        Dim result As New ArrayList

        Dim mc As MatchCollection = Regex.Matches( _
            Me.Statement, _
            Me.ParseExpression, _
            RegexOptions.IgnoreCase Or RegexOptions.Multiline)

        Dim foundDuplicates As Boolean = False
        Dim paramsCount As Integer = mc.Count
        For paramIndex As Integer = 0 To paramsCount - 1
            Dim parameter As String = mc(paramIndex).Groups(1).Value

            If result.Contains(parameter) Then
                ' Found duplicate parameter. Stop processing.
                foundDuplicates = True
                Call result.Clear()
                Exit For
            End If

            Call result.Add(parameter)
        Next

        If foundDuplicates Then
            ' Setup uniquely named parameters.
            For paramIndex As Integer = 0 To paramsCount - 1
                Call result.Add("Param" & CStr(paramIndex + 1))
            Next
        End If

        GetParameters_ = CType(result.ToArray(GetType(String)), String())
    End Function ' GetParameters_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Setup parameter data type.
    Private Sub SetupParameter_( _
        ByVal inputCol As IDTSInputColumn100, _
        ByVal parameter As DbParameter)

        parameter.DbType = GetDbType_(inputCol.DataType)
        parameter.Size = inputCol.Length

        ' Get precision.
        Dim precision As Byte = CByte(inputCol.Precision)
        If inputCol.DataType = DataType.DT_DECIMAL AndAlso precision = 0 Then
            ' Decimal type has precision 29.
            ' http://msdn.microsoft.com/en-us/library/ms141036.aspx
            precision = 29
        End If

        ' Setup precision and scale.
        Dim iDbDataParameter As IDbDataParameter = parameter
        iDbDataParameter.Precision = precision
        iDbDataParameter.Scale = CByte(inputCol.Scale)
    End Sub ' SetupParameter_



    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Return ADO.NET data type from SSIS data type.
    Private Function GetDbType_(ByVal dt As DataType) As DbType
        Select Case dt
            Case DataType.DT_BOOL
                Return DbType.Boolean
            Case DataType.DT_STR, DataType.DT_WSTR
                Return DbType.String
            Case DataType.DT_I1
                Return DbType.SByte
            Case DataType.DT_UI1
                Return DbType.Byte
            Case DataType.DT_I2
                Return DbType.Int16
            Case DataType.DT_UI2
                Return DbType.UInt16
            Case DataType.DT_I4
                Return DbType.Int32
            Case DataType.DT_UI4
                Return DbType.UInt32
            Case DataType.DT_I8
                Return DbType.Int64
            Case DataType.DT_UI8
                Return DbType.UInt64
            Case DataType.DT_R4
                Return DbType.Single
            Case DataType.DT_R8
                Return DbType.Double
            Case DataType.DT_NUMERIC, DataType.DT_DECIMAL
                Return DbType.Decimal
            Case DataType.DT_CY
                Return DbType.Currency
            Case DataType.DT_DBTIMESTAMP
                Return DbType.DateTime
            Case DataType.DT_DBDATE
                Return DbType.Date
            Case DataType.DT_DBTIME
                Return DbType.Time
        End Select

        Throw New ArgumentException("Unhandled type.")
    End Function    ' GetDbType_
#End Region ' Internals


#Region "Attributes"
    Private m_connection As String
    Private m_statement As String
    Private m_timeout As Integer
    Private m_errorRowDisposition As DTSRowDisposition
    Private m_parseExpression As String
    Private m_inputColumns As String

    Private m_command As DbCommand
    Private m_inputIndexes() As Integer
#End Region ' Attributes

End Class   ' ScriptMain

]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Sub DirectRowToOutput()
        MyBase.DirectRow("Output")
    End Sub

    Public WriteOnly Property [ErrorDescription]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [ErrorDescription_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Sub DirectRowToErrorOutput()
        MyBase.DirectRow("Error Output")
    End Sub

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"ErrorDescription"}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_baade89db1884097a2b330e1ed1d714a.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{A7A82EEA-BD2E-446D-8459-B8488F6A50C3}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_baade89db1884097a2b330e1ed1d714a</RootNamespace>
    <AssemblyName>ScriptComponent_baade89db1884097a2b330e1ed1d714a</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\CozyRoc.SSISPlus.2014.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS">
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_SC120" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property AdoNet() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("AdoNet").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>ScriptComponent_baade89db1884097a2b330e1ed1d714a</msb:CodeName>
		<msb:DisplayName>ScriptComponent_baade89db1884097a2b330e1ed1d714a</msb:DisplayName>
		<msb:ProjectId>{A4892081-A3A1-475E-A659-6A072C6A8162}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_baade89db1884097a2b330e1ed1d714a.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="21" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_baade89db1884097a2b330e1ed1d714a.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAH+tEFQAAAAAAAAAAOAAAiELAQsAADYAAAAGAAAAAAAALlUA
AAAgAAAAYAAAAAAAEAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAANxUAABPAAAAAGAAAEgDAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAANDUAAAAgAAAANgAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAAEgDAAAAYAAAAAQAAAA4AAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAPAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAAAQ
VQAAAAAAAEgAAAACAAUAzCsAABApAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4CKAEAAAoqHgIoBAAACiqmcwYAAAqAAQAABHMHAAAKgAIA
AARzCAAACoADAAAEcwkAAAqABAAABCoAABMwAQALAAAAAQAAEX4BAAAEbwoAAAoqABMwAQALAAAA
AgAAEX4CAAAEbwsAAAoqABMwAQALAAAAAwAAEX4DAAAEbwwAAAoqABMwAQALAAAABAAAEX4EAAAE
bw0AAAoqABMwAgANAAAABQAAEQIDKBEAAAooEgAACioAAAATMAEABwAAAAYAABECKBMAAAoqABMw
AQALAAAABwAAEdAFAAACKBQAAAoqABMwAQAHAAAACAAAEQIoFQAACioAEzABABAAAAAJAAARAowB
AAAbLQYoAQAAKyoCKhMwAgAQAAAACgAAEQMSAP4VAgAAGwaBAgAAGyoeAigXAAAKKhMwAgAoAAAA
CwAAEQJ7GQAACm8aAAAKCweMAwAAGy0SKAIAACsLAnsZAAAKB28bAAAKBypKAigXAAAKAnMcAAAK
fRkAAAoqADoCAwQFDgQOBSgeAAAKKgATMAEABwAAAAwAABEWjR8AAAEqADICcgEAAHAoHwAACioA
AAAmAhYDbyAAAAoqAABiAywJAhZvIQAACisLcg8AAHBzIgAACnoqAAAAMgJyrAAAcCgfAAAKKgAA
ABMwAwARAAAADQAAEReNHwAAAQsHFnLGAABwogcqAAAAEzABAAkAAAAOAAARAigjAAAKCgYqAAAA
EzABAAkAAAAPAAARAigkAAAKCgYqAAAAfgIoJgAACgICcx4AAAZ9BgAABAICcyAAAAZ9BwAABCq+
AwIoJwAACm8oAAAKcugAAHBvKQAACm8qAAAKMxECAgMXBQ4EcxEAAAZvHAAABipKKwcCA28dAAAG
A28YAAAGLfEqAAYqAAA6AigXAAAKAgN9CAAABCoAEzACACAAAAAQAAARAnsIAAAEbycAAApvKwAA
CnL0AABwbywAAApvLQAACio6AigXAAAKAgN9CQAABCoAHgIoGgAABiobMAMA9QAAABEAABECexIA
AASOtwoWBhfaEwYNK09+LgAACgsCexIAAAQJlAwDby8AAAoIbzAAAAotEgNvLwAACghvMQAACigR
AAAKCwJ7EQAABG8yAAAKCW8zAAAKBygRAAAKbzQAAAoJF9YNCREGMawCbywAAAZFBQAAAF0AAAAC
AAAAJwAAAG8AAABdAAAAK20CexEAAARvNQAACibeDyUoNgAAChMEKDcAAAreAANvEwAABitIAnsR
AAAEbzUAAAomA28TAAAG3jQlKDYAAAoTBQMRBW84AAAKbxQAAAYDbxYAAAYoNwAACt4SAnsRAAAE
bzUAAAomA28TAAAGKgAAAAEcAAAAAIcADpUADygAAAEAAKwAFMAAIigAAAETMAYAJQEAABIAABEC
KDkAAAoCewYAAARvHwAABhRvOgAACnQsAAABCgIGbzsAAAp9EQAABAJ7EQAABAJvKAAABm88AAAK
AnsRAAAEAm8qAAAGbz0AAAoCbycAAApvKAAAChaMLQAAAW8pAAAKCwJvMwAABgwIjrcNFgkX2hMH
EwUrSwJ7EQAABG8+AAAKEwQRBAgRBZpvPwAACgIHb0AAAAoRBYwtAAABb0EAAAoRBG80AAAGAnsR
AAAEbzIAAAoRBG9CAAAKJhEFF9YTBREFEQcxrwIJF9oX1o0tAAABfRIAAAQWCRfaEwgTBis8AnsS
AAAEEQYCb0MAAApvRAAACgdvRQAACgdvQAAAChEGjC0AAAFvQQAACm9GAAAKb0cAAAqeEQYX1hMG
EQYRCDG+KgAAAIYCKEgAAAoCexEAAAQsEgJ7EQAABG9JAAAKAhR9EQAABCoAABswBABcAQAAEwAA
EQJvJgAABihKAAAKLAtyAgEAcHNLAAAKegJvKAAABihKAAAKLAtyOAEAcHNLAAAKegJvLgAABihK
AAAKLAtyZgEAcHNLAAAKegJvMwAABg0WjR8AAAETBAJvMAAABihKAAAKLSECbzAAAAYXjR8AAAET
CREJFnLIAQBwohEJFm9MAAAKEwQJjrcRBI63MRtyzgEAcHImAgBwCShNAAAKKE4AAApzSwAACnoC
bycAAApvKwAACnL0AABwbywAAAoCbyYAAAZvTwAACgJvJwAACm8oAAAKFowtAAABbykAAAoMCG9Q
AAAKEwUIb0AAAApvUQAAChEEEwsWEworNhELEQqaEwYRBihKAAAKLSARBW9SAAAKEQZvUwAAChMH
EQURB29UAAAKFm9VAAAKJhEKF9YTChEKEQuOtzLCFwreGiUoNgAAChMIFgoDEQhvOAAAClEoNwAA
Ct4ABgsHKkEcAAAAAAAAAAAAAD4BAAA+AQAAGgAAACgAAAETMAEACQAAABQAABECewsAAAQKBioA
AAAiAgN9CwAABCoAAAATMAEACQAAABUAABECewwAAAQKBioAAAAiAgN9DAAABCoAAAATMAEACQAA
ABYAABECew0AAAQKBioAAAAiAgN9DQAABCoAAAATMAEACQAAABcAABECew4AAAQKBioAAAAiAgN9
DgAABCoAAAATMAEACQAAABgAABECew8AAAQKBioAAAAiAgN9DwAABCoAAAATMAEACQAAABkAABEC
exAAAAQKBioAAAAiAgN9EAAABCoAAAATMAMAEwAAABoAABEXjR8AAAELBxZyLAIAcKIHCgYqABMw
BADAAAAAGwAAEXNWAAAKEwQCbygAAAYCby4AAAYZKFcAAAoMFgoIb1gAAAoNFgkX2hMIEwYrQAgR
Bm9ZAAAKb1oAAAoXb1sAAApvXAAAChMFEQQRBW9dAAAKLAsXChEEb14AAAorFhEEEQVvXwAACiYR
BhfWEwYRBhEIMboGLDEWCRfaEwkTByshEQRyPAIAcBEHF9YoYAAACihOAAAKb18AAAomEQcX1hMH
EQcRCTHZEQTQHwAAASgUAAAKb2EAAAp0CgAAGwsHKhMwAwBOAAAAHAAAEQQCA29iAAAKbzUAAAZv
YwAACgQDb2QAAApvZQAACgNvZgAACrQLA29iAAAKHw4zBwcWMwMfHQsECgYHb2cAAAoGA29oAAAK
tG9pAAAKKgAAEzACAFkCAAAdAAARAxhZRYYAAAAMAAAAEgAAAB4AAAAhAAAAJQAAAC4AAAAuAAAA
LgAAAC4AAAACAAAALgAAAC4AAAAjAAAALgAAAAcAAAAKAAAADwAAABUAAAAYAAAAGwAAAC4AAAAu
AAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4A
AAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAA
AC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAA
LgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAu
AAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4A
AAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAA
AC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAA
LgAAAC4AAAAuAAAALgAAAC4AAAAuAAAABAAAAAQAAAAjAAAALgAAACkAAAArAAAAJwAAACssGSof
ECofDioYKh8KKh8SKh8LKh8TKh8MKh8UKh8PKh4qHSoaKhwqGyofESpySAIAcHNqAAAKegAAAEJT
SkIBAAEAAAAAAAwAAAB2NC4wLjMwMzE5AAAAAAUAbAAAAJANAAAjfgAA/A0AAOARAAAjU3RyaW5n
cwAAAADcHwAAaAIAACNVUwBEIgAAEAAAACNHVUlEAAAAVCIAALwGAAAjQmxvYgAAAAAAAAACAAAB
Vx2iCQkOAAAA+iUzABYAAAEAAABQAAAACwAAABIAAAA1AAAAHQAAAHgAAAABAAAAQgAAAB0AAAAF
AAAAEQAAABcAAAAKAAAAAQAAAAkAAAACAAAAAwAAAAIAAAAAAKkRAQAAAAAACgA/ARUBCgBzAVUB
BgCDAXwBCgDbARUBBgBZAnwBCgDbArECDgAtAxYDEgB8A1sDFgCtA1sDEgC8A1sDDgDpBBYDGgCk
BXwFHgCvBoYGHgBjB4YGIgCVB4IHIgDEB3YHGgDLB3wFIgA8CIIHJgDYCMIIJgDxCMIIJgAeCQYJ
BgBICTUJCgCHCWAJCgCfCRMAJgDUCbcJBgAJCukJBgAnCnwBBgBLCnwBCgBkChMABgCyCpMKBgDG
CnwBEgDNClsDBgD1CnwBBgAPC3wBHgAlC4YGHgBUC4YGHgB/C4YGHgCcC4YGHgDfC4YGBgAODHwB
BgAYDHwBIgAxDIIHCgBmDGAJIgCgDIIHBgDwDHwBHgAYDYYGFgBTDVsDHgB3DYYGJgDKA8IIHgDK
DYYGHgDeDYYGBgAGDnwBBgAbDnwBHgByDoYGHgC3DoYGJgDwDtEOBgATDwAPJgAdD9EOJgAjD9EO
JgBCD9EOJgBID9EOJgBjD9EOJgBpD9EOCgCAD2AJBgCMD3wBIgCaD3YHBgAHEHwBEgAZEFsDDgBi
EEAQDgB+EEAQDgCWEEAQJgCqEMIIJgC8EMIIJgDREMIIDgDnEEAQDgD7EEAQDgAcEUAQBgA4EekJ
BgBYEekJBgCQEXYRAAAAAAEAAAAAAAEAAQAAAAAAKQA3AAUAAQABAAAAAABrADcACQABAAIAAAEQ
AHYANwANAAEAAwAFAQAAgAAAAA0ABQAIAAUBAACOAAAADQAFAA8AAQAAAKkAtQAdAAYAEQABAAAA
5gC1AC0ABgAaAAEAAAD0ALUADQAIAB4AAQAAAAABtQANAAkAIAABAAAACgG1ACAACgAhADEAngEg
ADEAxwEtADEA6QE6ADEADgJHACEA6gKQAAYA9ADbAAYAAAHfAAEASQXzAAEASQXzAFGAzwUHAQEA
4gcHAQEA7wcHAQEA+wc0AQEABQg3AQEAGwgHAQEALQgHAQEARgg7AQEAUAg/AVAgAAAAAAYYTwET
AAEAWCAAAAAABhhPARMAAQBgIAAAAAARGIoBFwABAIwgAAAAABMIkQEbAAEApCAAAAAAEwi3ASgA
AQC8IAAAAAATCOABNQABANQgAAAAABMI/gFCAAEA7CAAAAAARgJEAmMAAQAIIQAAAABGAk0CaAAC
ABwhAAAAAIMAXgJsAAIANCEAAAAARgJmAnEAAgBIIQAAAAARAG8CeAACAGQhAAAAAAEAjQKAAAMA
gCEAAAAABhhPARMABACIIQAAAAADCKECiwAEALwhAAAAAAYYTwETAAQA0CEAAAAABhhPAa8ABADg
IQAAAABGCvYDuwAJAPQhAAAAAAYADQQTAAkABCIAAAAABggfBMAACQAQIgAAAAAGCDoExQAKACwi
AAAAAAYAVgQTAAsAPCIAAAAARgptBLsACwBcIgAAAACGAIUEygALAHQiAAAAAIYAjQTKAAsAjCIA
AAAABhhPARMACwCsIgAAAABGAv0E4wALANwiAAAAAEYDHAXtAA8A8CIAAAAARgMvBe0AEAD0IgAA
AAAGGE8B9wARAAQjAAAAAAYIvQX9ABIAMCMAAAAABhhPAfcAEgBAIwAAAAAGGE8BEwATAEgjAAAA
AEYCLwXtABMAaCQAAAAARgLfBRMAFACcJQAAAABGAuoFEwAUAMAlAAAAAAYA9gUPARQARCcAAAAA
BggKBnEAFQBcJwAAAAAGCBkGwAAVAGgnAAAAAAYILgZxABYAgCcAAAAABgg8BsAAFgCMJwAAAAAG
CEoGaAAXAKQnAAAAAAYIVgYVARcAsCcAAAAABgjBBhoBGADIJwAAAAAGCNkGHwEYANQnAAAAAAYI
8QZxABkA7CcAAAAABggFB8AAGQD4JwAAAAAGCBkHcQAaABAoAAAAAAYIKgfAABoAHCgAAAAAAQg7
B7sAGwA8KAAAAAABAFQHuwAbAAgpAAAAAAEAoQclARsAZCkAAAAAAQDUBy0BHQAAAAEASwIAAAEA
hAIAAAEAhAIAAAEAygMAAAIA1AMAAAMA3QMAAAQA5QMAAAUA7AMAAAEANAQAAAEANAQAAAEACgUA
AAIAEgUAAAMA5QMAAAQA7AMAAAEA5QMAAAEARQUAAAEAygMAAAEAygMAAAEARQUAAAEA/wUAAAEA
KAYAAAEAKAYAAAEAKAYAAAEAKAYAAAEAKAYAAAEAKAYAAAEAsQcAAAIAugcAAAEA3wcJAE8BEwCZ
AE8BTAGpAE8BWwERAE8BEwCxAE8BEwAkAE8BEwAsAE8BEwA0AE8BEwA8AE8BEwAkAKECiwAsAKEC
iwA0AKECiwA8AKECiwC5AE8BEwDBAE8BEwDJAE8BwADRABgK9QEZAEQCYwAZAE0CaAApADkKAgIZ
AGYCcQDhAFUKEgIZAE8BEwDpAE8BIgJEAOoCkABMAH8KiwBMAIkKnwJMAE8BEwDxAE8BxQA5AE8B
rwABAdoKwAA5AOQKuQI5AO0KFQEJAU8BwAABAYUEygABAY0EygARAU8BxQBZAE8BEwBBAD4LxgIZ
AWsLzAIhAYwL0gIpAZULaAAZAb8L2QIxAYwL3wI5AfgL/QBJATQE6wI5AB8M8AJJACoM9QJJAIwL
+gKRAEcM/wJRAYwLBQN5AIkKCwORAFYMaABZAXIMEANZAYIMFwBBAZQMcQBBAN8FEwBhAK0MJwNh
Ab8MLAORAM0MwACRAN0MFQGRAPYMMQN5AAYNwAApATUNNgNxAYwLPANRAU8NQgNZAGUNRwN5AYwN
TQMpAR8MaABxAJ4NaACBAawNUwNBAOoFEwCJAcINEwD5APgNawOhAU8BwAD5AC4OcAP5ADQOegP5
ADkOgQM5AUAOwAApAVgOhwNxAWgOEwCRAZYOjQOxAYwLkwOZAZ4NaACRAcQOmgPJAU8BEwDRATAP
wgPBATgPaADBAYwLzQPhAVgP1APpAYwL2gP5AX8KcQDJAXEPYwDJAXoPEwDJAU8NQgMBAmYC4QPJ
AZIP5gNxAKsPAwR5ALgPCARxAMMPaAB5AM4PFQFxANcPaAARAuUPDgRxAPMPaAARAv0PDgQZAk8B
wAAhAk8BEwApAk8BwAAxAk8BLwQ5Ak8BeARBAk8BwABJAk8BwABRAk8BFQFZAk8BDgVRAk8BwABh
Ak8BEwBpAk8BDgVxAk8BFQF5Ak8BEwCBAk8BwAAOACgACgEpAIMArwEuALMDTAYuALsDVQYuAMMD
dAZAACsAegFAABMAUgFDABsAYQFDABMAUgFJAIMAzQFjABsAYQFjABMAUgFpAIMAwAGAACsAegGD
ABsAYQGDAHsAegGDAHMAegGJAIMA4QGgACsAegGjAMMAKgKjABMAUgHAACsAegHDABMAUgHDAOsA
rgLgACsAegHjACsBrgIAARMAUgEAASsAegEDASsBrgIgARMAUgEgASsAegFAASsAegFAARMAUgFg
ASsAegFgARMAUgFjAWsDNQRjAWMDIQRjASsBrgJjAVsDegFpAZMDFAVpAYMDLwVpAXsDnwSAASsA
egGJAYMDrASJAXsDnwSJAXMDfwSgASsAegGpAYMDuwWpAYsDsgWpAXsDnwTAASsAegHAARMAUgHJ
AYsD0wTJAXsD3ATJAYMD5wTgASsAegHpAZsDVwXpAYMDcwXpAaMDegHpAXsDYwUAAhMAUgEAAisA
egEJAqsDEwYJAoMDGgYJAnsDYwXAAysBrgIABCsBrgKbAaABpQGqAfoB/gEJAg4CHQIdAqUCtAK/
AvoB+gHmAhcDWQOiAw4CDgL+Ab0DDgIOAr8C8QMTBBoEBAABAAYABQAHAAYACQAKAAsACwAAAHMB
TwAAACwCVAAAANsBWQAAADgCXgAAAPQCmAAAAJkEzgAAAKwE0wAAAL0E1wAAANUEzgAAAMgFAgEA
AF8I0wAAAGoI0wAAAHQIQwEAAHwIRwEAAJAI0wAAAKAI0wAAAK0IzgACAAQAAwACAAUABQACAAYA
BwACAAcACQACAA8ACwACABIADQABABQADwABABUAEQACABcAEwACAB8AFQABACcAFwACACYAFwAB
ACkAGQACACgAGQACACoAGwABACsAGwACACwAHQABAC0AHQABAC8AHwACAC4AHwACADAAIQABADEA
IQACADIAIwB1AHUAiAB/AYYBjQGUAYwCkwLuAwSAAAAAAAAAAAAAAAAAAAAAALUAAAAEAAAAAAAA
AAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQAAAwAAAAAMAAAA
AAAAAAAAAACmAD4DAAAAAAwAAAAAAAAAAAAAAKYAjAMAAAAADAAAAAAAAAAAAAAApgBZBQAAAAAM
AAAAAAAAAAAAAACmAGIGAAAAAAQAAAAAAAAAAAAAAAEAdgcAAAAABAAAAAAAAAAAAAAAAQB8AQAA
AAAFAAQABgAEAAAAEAAMAIICAAAQABkAggIAAAAAGwCCAi0AGAItAJoCAAAAPE1vZHVsZT4AbXNj
b3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24AU2NyaXB0Q29tcG9uZW50
X2JhYWRlODlkYjE4ODQwOTdhMmIzMzBlMWVkMWQ3MTRhLk15AE15Q29tcHV0ZXIATXlQcm9qZWN0
AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW5wdXRCdWZmZXIAU2Ny
aXB0Q29tcG9uZW50X2JhYWRlODlkYjE4ODQwOTdhMmIzMzBlMWVkMWQ3MTRhAFVzZXJDb21wb25l
bnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4ATWljcm9zb2Z0LlZpc3VhbEJhc2lj
LkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRl
cgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJv
dmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMA
bV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1
YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2Vf
XwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4
dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMTQAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJ
UwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0
LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAE91dHB1dE5hbWVNYXAAQ29tcG9uZW50AE9i
amVjdElEAElzSW5wdXQAQnVmZmVyAE91dHB1dE1hcABnZXRfU3RhdGljSW5wdXRDb2x1bW5zAERp
cmVjdFJvd1RvT3V0cHV0AHNldF9FcnJvckRlc2NyaXB0aW9uAFZhbHVlAHNldF9FcnJvckRlc2Ny
aXB0aW9uX0lzTnVsbABEaXJlY3RSb3dUb0Vycm9yT3V0cHV0AGdldF9TdGF0aWNPdXRwdXRDb2x1
bW5zAE5leHRSb3cARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAEVycm9yRGVzY3JpcHRp
b24ARXJyb3JEZXNjcmlwdGlvbl9Jc051bGwAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21w
b25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0TmFtZQBJbnB1dF9Qcm9jZXNzSW5w
dXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21wb25lbnQATWljcm9zb2Z0LlNx
bFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldy
YXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9BZG9OZXQAQWRvTmV0AENvbHVtblNl
cGFyYXRvcgBQcmVFeGVjdXRlAFBvc3RFeGVjdXRlAFZhbGlkYXRlAGVyck1lc3NhZ2UAZ2V0X0Nv
bm5lY3Rpb24Ac2V0X0Nvbm5lY3Rpb24AdmFsdWUAZ2V0X1N0YXRlbWVudABzZXRfU3RhdGVtZW50
AGdldF9UaW1lb3V0AHNldF9UaW1lb3V0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUGlwZWxpbmVX
cmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIARFRTUm93RGlzcG9z
aXRpb24AZ2V0X0Vycm9yUm93RGlzcG9zaXRpb24Ac2V0X0Vycm9yUm93RGlzcG9zaXRpb24AZ2V0
X1BhcnNlRXhwcmVzc2lvbgBzZXRfUGFyc2VFeHByZXNzaW9uAGdldF9JbnB1dENvbHVtbnMAc2V0
X0lucHV0Q29sdW1ucwBnZXRfQWRvTmV0Q29ubmVjdGlvblR5cGUAR2V0UGFyYW1ldGVyc18ASURU
U0lucHV0Q29sdW1uMTAwAFN5c3RlbS5EYXRhAFN5c3RlbS5EYXRhLkNvbW1vbgBEYlBhcmFtZXRl
cgBTZXR1cFBhcmFtZXRlcl8AaW5wdXRDb2wAcGFyYW1ldGVyAERiVHlwZQBEYXRhVHlwZQBHZXRE
YlR5cGVfAGR0AG1fY29ubmVjdGlvbgBtX3N0YXRlbWVudABtX3RpbWVvdXQAbV9lcnJvclJvd0Rp
c3Bvc2l0aW9uAG1fcGFyc2VFeHByZXNzaW9uAG1faW5wdXRDb2x1bW5zAERiQ29tbWFuZABtX2Nv
bW1hbmQAbV9pbnB1dEluZGV4ZXMAQ29ubmVjdGlvbgBTdGF0ZW1lbnQAVGltZW91dABFcnJvclJv
d0Rpc3Bvc2l0aW9uAFBhcnNlRXhwcmVzc2lvbgBJbnB1dENvbHVtbnMAQWRvTmV0Q29ubmVjdGlv
blR5cGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBFZGl0
b3JCcm93c2FibGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2RlQXR0
cmlidXRlAFN5c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBI
aWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhlbHBL
ZXl3b3JkQXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGltZUhl
bHBlcnMAR2V0T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUA
QWN0aXZhdG9yAENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAGdldF9W
YWx1ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZpc2libGVB
dHRyaWJ1dGUAU3RyaW5nAFNjcmlwdEJ1ZmZlcgBEaXJlY3RSb3cAc2V0X0l0ZW0AU2V0TnVsbABJ
bnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBJRFRTQ29tcG9u
ZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVudE1ldGFEYXRhAElEVFNJbnB1dENvbGxlY3Rpb24x
MDAAZ2V0X0lucHV0Q29sbGVjdGlvbgBJRFRTSW5wdXQxMDAAZ2V0X0l0ZW0AZ2V0X0lEAElEVFNS
dW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24xMDAAZ2V0X1J1bnRpbWVDb25uZWN0aW9uQ29sbGVj
dGlvbgBJRFRTUnVudGltZUNvbm5lY3Rpb24xMDAAZ2V0X0Nvbm5lY3Rpb25NYW5hZ2VyAEV4Y2Vw
dGlvbgBEQk51bGwAZ2V0X0J1ZmZlcgBJc051bGwARGJQYXJhbWV0ZXJDb2xsZWN0aW9uAGdldF9Q
YXJhbWV0ZXJzAEV4ZWN1dGVOb25RdWVyeQBQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAQ2xl
YXJQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UARGJDb25uZWN0aW9uAEFjcXVpcmVDb25uZWN0aW9u
AENyZWF0ZUNvbW1hbmQAc2V0X0NvbW1hbmRUZXh0AHNldF9Db21tYW5kVGltZW91dABJbnQzMgBD
cmVhdGVQYXJhbWV0ZXIAc2V0X1BhcmFtZXRlck5hbWUASURUU0lucHV0Q29sdW1uQ29sbGVjdGlv
bjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAEFkZABQaXBlbGluZUNvbXBvbmVudABnZXRf
SG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBnZXRf
TGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABEaXNwb3NlAElEVFNWaXJ0dWFsSW5wdXQx
MDAASURUU1ZpcnR1YWxJbnB1dENvbHVtbjEwMABJc051bGxPckVtcHR5AEFwcGxpY2F0aW9uRXhj
ZXB0aW9uAFN0cmluZ1NwbGl0T3B0aW9ucwBTcGxpdABKb2luAENvbmNhdABzZXRfQ29ubmVjdGlv
bk1hbmFnZXJJRABHZXRWaXJ0dWFsSW5wdXQAUmVtb3ZlQWxsAElEVFNWaXJ0dWFsSW5wdXRDb2x1
bW5Db2xsZWN0aW9uMTAwAGdldF9WaXJ0dWFsSW5wdXRDb2x1bW5Db2xsZWN0aW9uAERUU1VzYWdl
VHlwZQBTZXRVc2FnZVR5cGUAU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zAE1hdGNoQ29s
bGVjdGlvbgBTeXN0ZW0uQ29sbGVjdGlvbnMAQXJyYXlMaXN0AFJlZ2V4AFJlZ2V4T3B0aW9ucwBN
YXRjaGVzAGdldF9Db3VudABNYXRjaABHcm91cENvbGxlY3Rpb24AZ2V0X0dyb3VwcwBHcm91cABD
YXB0dXJlAENvbnRhaW5zAENsZWFyAENvbnZlcnNpb25zAEFycmF5AFRvQXJyYXkASURiRGF0YVBh
cmFtZXRlcgBnZXRfRGF0YVR5cGUAc2V0X0RiVHlwZQBnZXRfTGVuZ3RoAHNldF9TaXplAGdldF9Q
cmVjaXNpb24Ac2V0X1ByZWNpc2lvbgBnZXRfU2NhbGUAc2V0X1NjYWxlAEFyZ3VtZW50RXhjZXB0
aW9uAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2Vy
dmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3Bl
cnRpZXNBdHRyaWJ1dGUAVGV4dERpYWxvZ0F0dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBEZXNj
cmlwdGlvbkF0dHJpYnV0ZQBEZWZhdWx0VmFsdWVBdHRyaWJ1dGUAQ29ubmVjdGlvbkF0dHJpYnV0
ZQBSZWd1bGFyRXhwcmVzc2lvbkRpYWxvZ0F0dHJpYnV0ZQBJbnB1dFZpcnR1YWxDb2x1bW5BdHRy
aWJ1dGUAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0
eUF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAFRhcmdldEZyYW1ld29ya0F0dHJp
YnV0ZQBTY3JpcHRDb21wb25lbnRfYmFhZGU4OWRiMTg4NDA5N2EyYjMzMGUxZWQxZDcxNGEuZGxs
AAAAAA1PAHUAdABwAHUAdAAAgJtJAHMATgB1AGwAbAAgAHAAcgBvAHAAZQByAHQAeQAgAGMAYQBu
AG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUALgAgAEEAcwBzAGkAZwBuACAA
YQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBtAG4AIABpAG4AcwB0AGUAYQBk
AC4AABlFAHIAcgBvAHIAIABPAHUAdABwAHUAdAAAIUUAcgByAG8AcgBEAGUAcwBjAHIAaQBwAHQA
aQBvAG4AAAtJAG4AcAB1AHQAAA1BAGQAbwBOAGUAdAAANVMAZQBsAGUAYwB0ACAAQQBEAE8ALgBO
AEUAVAAgAGMAbwBuAG4AZQBjAHQAaQBvAG4ALgAALVMAcABlAGMAaQBmAHkAIABTAFEATAAgAHMA
dABhAHQAZQBtAGUAbgB0AC4AAGFTAHAAZQBjAGkAZgB5ACAAcgBlAGcAdQBsAGEAcgAgAGUAeABw
AHIAZQBzAHMAaQBvAG4AIABmAG8AcgAgAHAAYQByAGEAbQBlAHQAZQByAHMAIABwAGEAcgBzAGUA
LgAABSwACgAAV1MAZQBsAGUAYwB0ACAAaQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4AcwAgAGYAbwBy
ACAAdABoAGUAcwBlACAAcABhAHIAYQBtAGUAdABlAHIAcwA6ACAAAAUsACAAAA9BAEQATwAuAE4A
RQBUAAALUABhAHIAYQBtAAAfVQBuAGgAYQBuAGQAbABlAGQAIAB0AHkAcABlAC4AANja+qjvPZFB
v9kW1zlzrt4ACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUS
GAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMg
AAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4
DDTqCImEXc2AgMyRCyAFARIhCAISJRIpBCAAHQ4EIAEBDgQgAQECAyAAAgQoAB0OAygADgMoAAID
BhIkAwYSKAkgBAEIDhIlEikFIAEBEhwDBhIhBSABARIhBCAAEjEEKAASMQIGDgQsAAoABSABAhAO
BCABAQgEIAARNQUgAQERNQcgAgESORI9BiABEUERRQIGCAMGETUDBhJJAwYdCAMoAAgEKAARNQUg
AQERUQgBAAEAAAAAAAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwG
FRIYARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5Db21wdXRlcgAA
DAEAB015LlVzZXIAABMBAA5NeS5BcHBsaWNhdGlvbgAAEwEADk15LldlYlNlcnZpY2VzAAAEAAEc
HAMHAQIDBwEIBgABEhURbQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0
ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9f
SW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQET
AAgHAxMAEwATAAUBAAAAAAQHAR0OBSACAQgcBgcCHQ4dDgUgABKAjQUgABKAkQYgARKAlRwFIAAS
gJkGIAESgJ0cBAcBEjEEBhKApQQgABIlBCABAggEIAEcCAUgABKAqQUgARI9CAQgAQEcBgABARKA
oQ8HCAgcCAgSgKESgKEIETUEIAEcHAQgABJJBCAAEj0FIAASgLkFIAESORwEIAEIHAUgABKAvQUg
ABKAwQUgAggICBEHCRKAsRKAlR0OCBI9CAgICAQAAQIOCSACHQ4dDhGA1QYAAg4OHQ4FAAIODg4F
IAASgMkFIAASgNkGIAESgM0cByACCAgRgN0aBwwCAhKAlR0OHQ4SgMkOEoDNEoChHQ4IHQ4EBwER
NQoAAxKA4Q4OEYDtBiABEoDxCAUgABKA9QYgARKA+QgEAAEOCAcgARKBBRIVAh0OEQcKAh0OEoDh
CBKA5Q4ICAgIBCAAEUUFIAEBEUEEIAEBBQYHAhKBCQUGBwIRQRFFDQEACFZhbGlkYXRlAAAFIAEB
HQ5CAQAFAAAACkNvbm5lY3Rpb24JU3RhdGVtZW50B1RpbWVvdXQPUGFyc2VFeHByZXNzaW9uDElu
cHV0Q29sdW1ucwAABiADAQ4ODh8BABVTcGVjaWZ5IFNRTCBzdGF0ZW1lbnQAA1NRTAAADAEAB0Nv
bW1hbmQAACYBACFTcGVjaWZ5IFNRTCBzdGF0ZW1lbnQgdG8gZXhlY3V0ZS4AAAgBAAQAAAAAAAoB
AAVFcnJvcgAAJgEAIVNwZWNpZnkgaG93IHRvIGhhbmRsZSBlcnJvciByb3dzLgAABSACAQ4CGgEA
FEFkb05ldENvbm5lY3Rpb25UeXBlAQAAJwEAIlNlbGVjdCBBRE8uTkVUIENvbm5lY3Rpb24gTWFu
YWdlci4AAAsBAAZAKFx3KykAAA8BAApQYXJhbWV0ZXJzAAA+AQA5U3BlY2lmeSByZWd1bGFyIGV4
cHJlc3Npb24gdG8gcGFyc2Ugc3RhdGVtZW50IHBhcmFtZXRlcnMuAAAIAQAAAAAAAABXAQBSU3Bl
Y2lmeSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgYSBjb21tYW5kIHRpbWVzIG91dC4gU2V0IDAg
Zm9yIGluZmluaXRlIHRpbWUtb3V0LgAABgEAAAAAADEBACxTZWxlY3QgaW5wdXQgY29sdW1ucyBm
b3IgY29tbWFuZCBwYXJhbWV0ZXJzLgAACAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9u
VGhyb3dzAUcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxh
eU5hbWUQLk5FVCBGcmFtZXdvcmsgNARVAAAAAAAAAAAAAB5VAAAAIAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAQVQAAAAAAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgABAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAAAAAA
AAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIAAAAAAAAA
AAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAAAAAA
AAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkAbABl
AEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwCAAABAFMA
dAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAAACwAAgAB
AEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwAZQBWAGUA
cgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAjAA1AAEASQBuAHQAZQByAG4AYQBsAE4AYQBt
AGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGIAYQBhAGQAZQA4ADkAZABiADEA
OAA4ADQAMAA5ADcAYQAyAGIAMwAzADAAZQAxAGUAZAAxAGQANwAxADQAYQAuAGQAbABsAAAAAAAo
AAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAlAA1AAEATwByAGkAZwBpAG4A
YQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYgBh
AGEAZABlADgAOQBkAGIAMQA4ADgANAAwADkANwBhADIAYgAzADMAMABlADEAZQBkADEAZAA3ADEA
NABhAC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADAALgAw
AC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMAAuADAA
LgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAwAAAAwNQAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="22" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="24" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_baade89db1884097a2b330e1ed1d714a</property><property id="25" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="27" name="AdoNet" connectionManagerID="{27C5C0DE-3C4A-45E2-932C-6BB67A49C036}" /></connections><inputs><input id="28" name="Input" hasSideEffects="true"><externalMetadataColumns /></input></inputs><outputs><output id="31" name="Output" exclusionGroup="1" synchronousInputId="28"><externalMetadataColumns /></output><output id="32" name="Error Output" exclusionGroup="1" synchronousInputId="28"><outputColumns><outputColumn id="33" name="ErrorDescription" lineageId="33" length="250" dataType="wstr" /></outputColumns><externalMetadataColumns /></output></outputs></component>