<component id="32" name="Trim" 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="33" 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-2013 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.Text.RegularExpressions

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"InputColumns", "Action", "TrimCharacters"})> _
<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)
        Dim colsCount As Integer = m_inputIdx.Length

        For colIndex As Integer = 0 To colsCount - 1
            Dim bufIndex As Integer = m_inputIdx(colIndex)

            If Row.Buffer.IsNull(bufIndex) Then
                Continue For
            End If

            Dim colValue As String = Row.Buffer.GetString(bufIndex)

            Select Case Me.Action
                Case ActionTypes.Trim
                    colValue = colValue.Trim(m_trimParam)
                Case ActionTypes.TrimStart
                    colValue = colValue.TrimStart(m_trimParam)
                Case ActionTypes.TrimEnd
                    colValue = colValue.TrimEnd(m_trimParam)
            End Select

            Call Row.Buffer.SetString(bufIndex, colValue)
        Next
    End Sub ' Input_ProcessInputRow


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

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

        ' Setup dynamic input columns indexes.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_inputIdx = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            m_inputIdx(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                input.InputColumnCollection(colIndex).LineageID)
        Next

        If Not String.IsNullOrEmpty(Me.TrimCharacters) Then
            ' Trim characters specified.
            m_trimParam = Regex.Unescape(Me.TrimCharacters).ToCharArray()
        End If
    End Sub ' PreExecute


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

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

            ' Setup input columns based on selection.
            Dim selectedCols() As String = CStr(Me.InputColumns).Split( _
                New String() {ColumnSeparator}, _
                StringSplitOptions.None)
            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_READWRITE)
                End If
            Next

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

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)
        Call MyBase.OnInputPathAttached(inputID)

        ' Initialize with all string columns selected.
        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
        For Each column As IDTSVirtualInputColumn100 In virtInput.VirtualInputColumnCollection
            If column.DataType <> DataType.DT_STR AndAlso _
                column.DataType <> DataType.DT_WSTR AndAlso _
                column.DataType <> DataType.DT_TEXT AndAlso _
                column.DataType <> DataType.DT_NTEXT Then

                Continue For
            End If

            ' String column.
            Call virtInput.SetUsageType(column.LineageID, DTSUsageType.UT_READWRITE)
        Next
    End Sub ' OnInputPathAttached


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub OnInputPathDetached(ByVal inputID As Integer)
        MyBase.OnInputPathDetached(inputID)

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Call input.InputColumnCollection.RemoveAll()
    End Sub


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input columns you want to process.")> _
    <InputVirtualColumn("", False)> _
    Public Property InputColumns() As String
        Get
            InputColumns = m_inputCols
        End Get
        Set(ByVal value As String)
            Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
            If input.IsAttached Then
                If String.IsNullOrEmpty(value) Then
                    ' Setup based on input columns collection.
                    value = GetInputCols_()
                End If
            Else
                ' Reset when no input is attached.
                value = String.Empty
            End If

            m_inputCols = value
        End Set
    End Property    ' InputColumns


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select action.")> _
    Public Property Action() As ActionTypes
        Get
            Action = m_action
        End Get
        Set(ByVal value As ActionTypes)
            m_action = value
        End Set
    End Property    ' Action


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Optional. Specify characters to trim.")> _
    Public Property TrimCharacters() As String
        Get
            TrimCharacters = m_trimChars
        End Get
        Set(ByVal value As String)
            m_trimChars = value
        End Set
    End Property    ' TrimCharacters
#End Region ' Properties


#Region "Internals"
    Private Function GetInputCols_() As String
        Dim result As String = String.Empty

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        For Each column As IDTSInputColumn100 In input.InputColumnCollection
            If Not String.IsNullOrEmpty(result) Then
                result += ColumnSeparator
            End If

            result += column.Name
        Next

        GetInputCols_ = result
    End Function    ' GetInputCols_
#End Region ' Internals


#Region "Attributes"
    Public Enum ActionTypes
        Trim
        TrimStart
        TrimEnd
    End Enum    ' ActionTypes

    Private m_inputCols As String = String.Empty
    Private m_action As ActionTypes = ActionTypes.Trim
    Private m_trimChars As String
    Private m_inputIdx() As Integer
    Private m_trimParam() As Char = Nothing
#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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        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_122fabc5dc8041c39ddd5498cae718bf.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>{D27919E2-07B7-42EC-BCFD-B8AB4412AEB7}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_122fabc5dc8041c39ddd5498cae718bf</RootNamespace>
    <AssemblyName>ScriptComponent_122fabc5dc8041c39ddd5498cae718bf</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

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_122fabc5dc8041c39ddd5498cae718bf</msb:CodeName>
		<msb:DisplayName>ScriptComponent_122fabc5dc8041c39ddd5498cae718bf</msb:DisplayName>
		<msb:ProjectId>{8517780F-C6C1-4EF4-B3DA-08B6DC4E8194}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_122fabc5dc8041c39ddd5498cae718bf.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="34" 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_122fabc5dc8041c39ddd5498cae718bf.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
JwX5ABQA+CUAAAAABgg7BXEAFQAQJgAAAAAGCEwF/gAVAFwmAAAAAAYIYwUDARYAdCYAAAAABghu
BQgBFgCAJgAAAAAGCHkFcQAXAJgmAAAAAAYIjAX+ABcApCYAAAAAAQCfBXEAGAAAAAEAVwIAAAEA
kAIAAAEAkAIAAAEA1gMAAAIA4AMAAAMA6QMAAAQA8QMAAAUA+AMAAAEAjQQAAAIAlQQAAAMA8QMA
AAQA+AMAAAEA8QMAAAEAyAQAAAEA1gMAAAEA1gMAAAEAyAQAAAEAAAUAAAEAHwUAAAEAHwUAAAEA
XQUAAAEAXQUAAAEAXQUJAFsBEwBpAFsBNQF5AFsBRAERAFsBEwCBAFsBEwAkAFsBEwAsAFsBEwA0
AFsBEwA8AFsBEwAkAK0CiwAsAK0CiwA0AK0CiwA8AK0CiwCJAFsBEwCRAFsBEwCZAFsB/gChAIIH
2QEZAFACYwAZAFkCaAApAKMH5gEZAHICcQCxAL8H9gEZAFsBEwC5AFsBBgJEAPYCkABMAOkHiwBM
APMHgwJMAFsBEwDBAFsBkgI5AFsBrwDRADEEwADRADkEwADZAFsBkgJZAFsBEwBBAMAIogLhAO0I
pwLpAA4JrALxABcJaADJAB4J6wA5ACQJsgJJAC8JtwJJADYJvALJABUGwQLJABoGwQLJACQGwQJJ
AEAJxwJBAOwEEwDxAG0J1wIBAYcJaABZAKMJ3QIJAcoJ4wLxACQJaAABAQ4J6QIZAe8JaAARAf0J
8ALJABMK9gIhAUYK+wLJAE8KAAPJAKYKDQPxAKwKFwMBAbwKEwApAeoKHQNJAQ4JIwMxAe8JaAAp
ARgLKgNZATELMgM5AUELcQBZAU0LFwBZAAsF+QBJAX4LUQNhAYwLVwMxAewLWwNhAfkLwABxAQ4M
EwBZACcF+QDxABYMwAABAX4LUQPJACUMeQMZASwMcQB5AVsBEwCBAVsB/gCJAVsBmgORAVsB/gCZ
AVsBCwShAVsB+QCpAVsBEwCxAVsB/gAOACgA7gAIAEQAJgEIAEgAKwEIAEwAMAEpAIMAkwEuAKsC
RwQuALMCUAQuALsCbwRAABMAOwFAACsAKwFDABsASgFDABMAOwFJAIMAsQFjABMAOwFjABsASgFp
AIMApAGAACsAKwGDABsASgGDAHsAKwGDAHMAKwGJAIMAxQGgACsAKwGjABMAOwGjAMMADgLAACsA
KwHDAOsAlwLDABMAOwHgACsAKwHjAAsBlwIAASsAKwEAARMAOwEDAQsBlwIJAZsCGAQJAaMCEQQg
ARMAOwEgASsAKwEpAZsC9wNAARMAOwFAASsAKwFJAZsCzANgARMAOwFgASsAKwFjAQsBlwJjAZMC
oANjAYsCjANjAYMCKwGAASsAKwGgASsAKwHAASsAKwHAARMAOwHgASsAKwEAAisAKwEAAhMAOwFA
AwsBlwJgAwsBlwJ/AYQBiQGOAd4B4gHtAfIBAQIBAokCnQKdAt4B3gHNAgUDOQNhA28D8gFvA3QD
8gF/AwQAAQAGAAUABwAGAAsACAAAAH8BTwAAADgCVAAAAOcBWQAAAEQCXgAAAAADmAAAAEUExAAA
AFgExAAAAOUFGgEAAPIFHgEAAPkFGgECAAQAAwACAAUABQACAAYABwACAAcACQACAA8ACwACABIA
DQACABMADwACACIAEQABACMAEQACACQAEwABACUAEwACACYAFQABACcAFQB1AHUAiABjAWoBcQF4
AXACdwIEgAAAAAAAAAAAAAAAAAAAAAC1AAAABAAAAAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAA
AAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0ADAMAAAAADAAAAAAAAAAAAAAApgBKAwAAAAAMAAAAAAAA
AAAAAACmAJgDAAAAAAQAAAAAAAAAAAAAAAEAiAEAAAAADAAAAAAAAAAAAAAApgBaCAAAAAAMAAAA
AAAAAAAAAACmAJgLAAAAAAUABAAGAAQADAALAAAAEAAMAI4CAAAQABkAjgIAAAAAGwCOAi0A/AEt
AH4CAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRp
b24AU2NyaXB0Q29tcG9uZW50XzEyMmZhYmM1ZGM4MDQxYzM5ZGRkNTQ5OGNhZTcxOGJmLk15AE15
Q29tcHV0ZXIATXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVy
YDEASW5wdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50XzEyMmZhYmM1ZGM4MDQxYzM5ZGRkNTQ5OGNh
ZTcxOGJmAFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4AQWN0
aW9uVHlwZXMATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGlj
YXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5
c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIA
Z2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJP
YmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlk
ZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRU
eXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3Rh
bmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLklu
dGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQ
bHVzLjIwMTQAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jvc29m
dC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2Ny
aXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVm
ZmVyAE91dHB1dE5hbWVNYXAAQ29tcG9uZW50AE9iamVjdElEAElzSW5wdXQAQnVmZmVyAE91dHB1
dE1hcABnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5leHRS
b3cARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMAU2Ny
aXB0Q29tcG9uZW50UGx1cwBQcm9jZXNzSW5wdXQASW5wdXRJRABJbnB1dE5hbWUASW5wdXRfUHJv
Y2Vzc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBSb3cAUGFyZW50Q29tcG9uZW50AENvbHVt
blNlcGFyYXRvcgBQcmVFeGVjdXRlAFZhbGlkYXRlAGVyck1lc3NhZ2UAT25JbnB1dFBhdGhBdHRh
Y2hlZABpbnB1dElEAE9uSW5wdXRQYXRoRGV0YWNoZWQAZ2V0X0lucHV0Q29sdW1ucwBzZXRfSW5w
dXRDb2x1bW5zAHZhbHVlAGdldF9BY3Rpb24Ac2V0X0FjdGlvbgBnZXRfVHJpbUNoYXJhY3RlcnMA
c2V0X1RyaW1DaGFyYWN0ZXJzAEdldElucHV0Q29sc18AbV9pbnB1dENvbHMAbV9hY3Rpb24AbV90
cmltQ2hhcnMAbV9pbnB1dElkeABtX3RyaW1QYXJhbQBJbnB1dENvbHVtbnMAQWN0aW9uAFRyaW1D
aGFyYWN0ZXJzAEVudW0AdmFsdWVfXwBUcmltAFRyaW1TdGFydABUcmltRW5kAFN5c3RlbS5Db21w
b25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUA
U3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlh
Z25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNv
bXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRy
aWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBT
eXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZh
bHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJ
bnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1ZhbHVlAFN5
c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBT
Y3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRT
UGlwZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIASURU
U0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTSW5wdXRDb2xs
ZWN0aW9uMTAwAGdldF9JbnB1dENvbGxlY3Rpb24ASURUU0lucHV0MTAwAGdldF9JdGVtAGdldF9J
RABFbXB0eQBnZXRfQnVmZmVyAElzTnVsbABHZXRTdHJpbmcAU2V0U3RyaW5nAEludDMyAElEVFNJ
bnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfQ291
bnQAUGlwZWxpbmVDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIx
MDAAZ2V0X0J1ZmZlck1hbmFnZXIASURUU0lucHV0Q29sdW1uMTAwAGdldF9MaW5lYWdlSUQARmlu
ZENvbHVtbkJ5TGluZWFnZUlEAElzTnVsbE9yRW1wdHkAU3lzdGVtLlRleHQuUmVndWxhckV4cHJl
c3Npb25zAFJlZ2V4AFVuZXNjYXBlAFRvQ2hhckFycmF5AElEVFNWaXJ0dWFsSW5wdXQxMDAASURU
U1ZpcnR1YWxJbnB1dENvbHVtbjEwMABFeGNlcHRpb24AU3RyaW5nU3BsaXRPcHRpb25zAFNwbGl0
AEdldFZpcnR1YWxJbnB1dABSZW1vdmVBbGwASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rp
b24xMDAAZ2V0X1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24ARFRTVXNhZ2VUeXBlAFNldFVz
YWdlVHlwZQBQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQ2xlYXJQcm9q
ZWN0RXJyb3IAU3lzdGVtLkNvbGxlY3Rpb25zAElFbnVtZXJhdG9yAEdldEVudW1lcmF0b3IAZ2V0
X0N1cnJlbnQATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3Fs
U2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIARGF0YVR5cGUAZ2V0X0RhdGFUeXBlAE1vdmVOZXh0
AElEaXNwb3NhYmxlAERpc3Bvc2UAZ2V0X0lzQXR0YWNoZWQAQ29uY2F0AGdldF9OYW1lAFNTSVNT
Y3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMu
QXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3BlcnRpZXNBdHRy
aWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUASW5wdXRWaXJ0dWFsQ29sdW1uQXR0cmlidXRlAENv
bXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1
dGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAU2Ny
aXB0Q29tcG9uZW50XzEyMmZhYmM1ZGM4MDQxYzM5ZGRkNTQ5OGNhZTcxOGJmLmRsbAAAAAAAC0kA
bgBwAHUAdAAABSwACgAAAOHmgFHoBu5MrYTR0jMOnxkACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMA
AAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgA
EgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMA
BCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImEXc2AgMyRCyAFARIhCAISJRIpBCAAHQ4DIAAC
BCgAHQ4DBhIkAwYSKAkgBAEIDhIlEikFIAEBEhwDBhIhBSABARIhAgYOBCwACgAFIAECEA4EIAEB
CAQgAQEOBCAAETAFIAEBETADBhEwAwYdCAMGHQMDKAAOBCgAETACBggEAAAAAAQBAAAABAIAAAAF
IAEBETkIAQABAAAAAAAFIAIBDg4YAQAKTXlUZW1wbGF0ZQgxMC4wLjAuMAAABhUSGAESDAYVEhgB
EggGFRIYARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEAEAC015LkNvbXB1dGVyAAAMAQAH
TXkuVXNlcgAAEwEADk15LkFwcGxpY2F0aW9uAAATAQAOTXkuV2ViU2VydmljZXMAAAQAARwcAwcB
AgMHAQgGAAESFRFVBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcgBAEODg4OYQEANFN5c3RlbS5X
ZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRlX19JbnN0
YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUSGQETAAQKARMABSABARMACAcD
EwATABMABCABAQIFAQAAAAAEBwEdDgQgABJxBCAAEnUFIAESeRwEIAASJQQgAQIIBCABDggFIAEO
HQMFIAIBCA4JBwYICAgOCBEwBSAAEoCBBSAAEoCFBSAAEoCJBiABEoCNHAUgAggICAQAAQIOBAAB
Dg4EIAAdAwcHBAgSeQgICSACHQ4dDhGAoQUgABKAlQUgABKApQYgARKAmRwHIAIICBGAqQYAAQES
gJ0XBwsCAhJ5HQ4SgJUOEoCZEoCdHQ4IHQ4FIAASgLEDIAAcBSAAEYC1DQcEEnkSgJUSgJkSgLEE
BwESeQQHAREwBQACDg4ODAcFDhJ5DhKAjRKAsQ0BAAhWYWxpZGF0ZQAABSABAR0OKwEAAwAAAAxJ
bnB1dENvbHVtbnMGQWN0aW9uDlRyaW1DaGFyYWN0ZXJzAAAqAQAlT3B0aW9uYWwuIFNwZWNpZnkg
Y2hhcmFjdGVycyB0byB0cmltLgAAEwEADlNlbGVjdCBhY3Rpb24uAAAFIAIBDgIGAQAAAAAALgEA
KVNlbGVjdCBpbnB1dCBjb2x1bW5zIHlvdSB3YW50IHRvIHByb2Nlc3MuAAAIAQAIAAAAAAAeAQAB
AFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5ORVRGcmFtZXdvcmssVmVyc2lvbj12NC4w
AQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1ld29yayA0ANhEAAAAAAAAAAAAAO5E
AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgRAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5k
bGwAAAAAAP8lACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAA
GAAAgAAAAAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAADs
AgAAAAAAAAAAAADsAjQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAA
AQAAAAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQBy
AEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAE
TAIAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAKAIAAAEAMAAwADAAMAAwADQAYgAw
AAAALAACAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkA
bABlAFYAZQByAHMAaQBvAG4AAAAAADAALgAwAC4AMAAuADAAAACMADUAAQBJAG4AdABlAHIAbgBh
AGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AMQAyADIAZgBhAGIA
YwA1AGQAYwA4ADAANAAxAGMAMwA5AGQAZABkADUANAA5ADgAYwBhAGUANwAxADgAYgBmAC4AZABs
AGwAAAAAACgAAgABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAACAAAACUADUAAQBPAHIA
aQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBu
AHQAXwAxADIAMgBmAGEAYgBjADUAZABjADgAMAA0ADEAYwAzADkAZABkAGQANQA0ADkAOABjAGEA
ZQA3ADEAOABiAGYALgBkAGwAbAAAAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBu
AAAAMAAuADAALgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4A
AAAwAC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAAA1AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="39" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="41" 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_122fabc5dc8041c39ddd5498cae718bf</property><property id="42" 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><inputs><input id="44" name="Input" hasSideEffects="true"></input></inputs><outputs><output id="48" name="Output" synchronousInputId="44"><externalMetadataColumns /></output></outputs></component>