<component id="40" name="Conversion" componentClassID="{2E42D45B-F83C-400F-8D77-61DDE6A7DF29}" description="Executes a custom script." localeId="1033" usesDispositions="false" validateExternalMetadata="True" version="4" pipelineVersion="0" 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="44" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\my project\settings.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\assemblyinfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_c7fc06ec606b496aa49f24f2f2072fe8.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_c7fc06ec606b496aa49f24f2f2072fe8.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2013")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("0f6b5d14-3502-42fc-8635-58933b570599")> 

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></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)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    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

<CLSCompliant(False)> _
Public Class OutputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public WriteOnly Property [b]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [b_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 WriteOnly Property [c]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [c_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"b", "c"}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\resources.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\componentwrapper.vb]]></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 OutputBuffer As OutputBuffer

    Dim InputsFinished As Integer = 0

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As PipelineBuffer)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer))
        End If

        If Buffer.EndOfRowset Then
            InputsFinished = InputsFinished + 1
            If InputsFinished = 1 Then
                FinishOutputs()
                MarkOutputsFinished()
            End If
        End If

    End Sub

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = MyBase.ComponentMetaData.OutputCollection("Output").ID Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I))
            End If
        Next

        CreateNewOutputRows()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    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[\my project\resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?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.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: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" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </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" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_c7fc06ec606b496aa49f24f2f2072fe8.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

       Configuration - Specifies whether the default configuration is Release or Debug.
       Platform - Specifies what CPU the output of this project can run on.
       OutputType - Must be "Library" for VSTA.
       NoStandardLibraries - Set to "false" for VSTA.
       RootNamespace - In C#, this specifies the namespace given to new files.
                       In Visual Basic, all objects are wrapped in this namespace at runtime.
       AssemblyName - Name of the output assembly.
  -->
  <PropertyGroup>
    <ProjectTypeGuids>{A860303F-1F3F-4691-B57E-529FC101A107};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_c7fc06ec606b496aa49f24f2f2072fe8.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_c7fc06ec606b496aa49f24f2f2072fe8.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{104EDA23-1592-4D6B-8258-BC65F871B4C7}</ProjectGuid>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Debug" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Release" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section enables pre- and post-build steps. However,
       it is recommended that MSBuild tasks be used instead of these properties.
  -->
  <PropertyGroup>
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
    </PostBuildEvent>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
  </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>
  <!-- This section defines the user source files that are part of the
       project.

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </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="{A860303F-1F3F-4691-B57E-529FC101A107}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{C1B21C64-9E6F-4923-A89D-9F958503C1CE}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptComponent</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\main.vb]]></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.Collections
Imports System.Globalization

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"Columns", "Type", "Length", "Precision", "Scale", "CodePage"})> _
<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<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

        Call Me.OutputBuffer.AddRow()

        For colIndex As Integer = 0 To colsCount - 1
            Dim inIndex As Integer = m_inputIdx(colIndex)
            Dim outIndex As Integer = m_outputIdx(colIndex)

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

            ' Get input value.
            Dim inValue As Object = Row.Buffer(inIndex)
            If TypeOf inValue Is BlobColumn Then
                ' Translate into more useful object.
                Dim blob As BlobColumn = CType(inValue, BlobColumn)
                Select Case blob.ColumnInfo.DataType
                    Case DataType.DT_TEXT, DataType.DT_NTEXT
                        inValue = Row.Buffer.GetString(inIndex)
                    Case Else
                        inValue = blob.GetBlobData(0, CInt(blob.Length))
                End Select
            End If

            ' Set output value.
            Dim outValue As Object = inValue
            Select Case m_outputType(colIndex)
                Case DataType.DT_DATE, DataType.DT_FILETIME, DataType.DT_DBDATE, DataType.DT_DBTIMESTAMP
                    outValue = Convert.ToDateTime(outValue)

                Case DataType.DT_GUID
                    outValue = New Guid(outValue.ToString())

                Case DataType.DT_STR, DataType.DT_WSTR, DataType.DT_TEXT, DataType.DT_NTEXT
                    If TypeOf outValue Is Byte() Then
                        ' Encode as base64 value.
                        outValue = Convert.ToBase64String(CType(outValue, Byte()))
                    Else
                        outValue = outValue.ToString()
                    End If

                Case DataType.DT_IMAGE
                    If TypeOf outValue Is String Then
                        ' Assume input is base64 value.
                        outValue = Convert.FromBase64String(CStr(outValue))
                    End If
            End Select

            Me.OutputBuffer.Buffer(outIndex) = outValue
        Next
    End Sub ' Input_ProcessInputRow


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

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

        ' Setup dynamic input columns indexes.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_inputIdx = New Integer(colsCount - 1) {}
        m_outputIdx = New Integer(colsCount - 1) {}
        m_outputType = New DataType(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim inColumn As IDTSInputColumn100 = input.InputColumnCollection(colIndex)

            m_inputIdx(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inColumn.LineageID)

            Dim outColumn As IDTSOutputColumn100 = output.OutputColumnCollection(inColumn.Name)

            Try
                m_outputIdx(colIndex) = -1
                m_outputIdx(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                    output.Buffer, _
                    outColumn.LineageID)
            Catch ex As Exception
                ' Under SQL 2008 if column is not used in the pipeline,
                ' it doesn't exist in the buffer.
            End Try

            m_outputType(colIndex) = outColumn.DataType
        Next
    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)
            Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)

            If input.InputColumnCollection.Count = 0 OrElse Me.Columns <> m_prevCols Then
                Dim selectedCols() As String = CStr(Me.Columns).Split( _
                    New String() {ColumnSeparator}, _
                    StringSplitOptions.RemoveEmptyEntries)

                ' Remove output columns, which are no longer in use.
                Dim colsCount As Integer = output.OutputColumnCollection.Count
                For colIndex As Integer = colsCount - 1 To 0 Step -1
                    Dim outColumn As IDTSOutputColumn100 = output.OutputColumnCollection(colIndex)
                    If Not IsFound_(selectedCols, outColumn.Name) Then
                        Call output.OutputColumnCollection.RemoveObjectByID(outColumn.ID)
                    End If
                Next

                ' Setup input columns based on selection.
                Call input.InputColumnCollection.RemoveAll()

                Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

                For Each col As String In selectedCols
                    Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(col)
                    Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READONLY)

                    Dim outColumn As IDTSOutputColumn100
                    Try
                        outColumn = output.OutputColumnCollection(col)
                    Catch ex As Exception
                        ' New column.
                        outColumn = output.OutputColumnCollection.[New]()
                        outColumn.Name = col
                    End Try
                Next
            End If

            Dim codePage As Integer = 0
            If m_culture <> 0 Then
                Dim ci As CultureInfo = New CultureInfo(m_culture)
                codePage = ci.TextInfo.ANSICodePage
            End If

            ' Update output columns with specified type.
            For Each outColumn As IDTSOutputColumn100 In output.OutputColumnCollection
                Call outColumn.SetDataTypeProperties( _
                    Me.Type, _
                    Me.Length, _
                    Me.Precision, _
                    Me.Scale, _
                    codePage)
            Next

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.ToString()
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Setup static.
        Call result.Add("Columns")
        Call result.Add("Type")

        ' Setup dynamic.
        Select Case Me.Type
            Case DataType.DT_DECIMAL
                Call result.Add("Scale")

            Case DataType.DT_STR
                Call result.Add("Length")
                Call result.Add("CodePage")

            Case DataType.DT_WSTR
                Call result.Add("Length")

            Case DataType.DT_NUMERIC
                Call result.Add("Precision")
                Call result.Add("Scale")

            Case DataType.DT_TEXT
                Call result.Add("CodePage")
        End Select

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function GetCultures() As Object()
        Dim result As New ArrayList()
        Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)

        For Each ci As CultureInfo In cultures
            Call result.Add(ci.DisplayName)
        Next

        GetCultures = result.ToArray()
    End Function    ' GetCultures


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Input")> _
    <Description("Select input columns you want to process.")> _
    <InputVirtualColumn("", False)> _
    Public Property Columns() As String
        Get
            Columns = 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

            If String.IsNullOrEmpty(m_prevCols) Then
                m_prevCols = value
            End If

            m_inputCols = value
        End Set
    End Property    ' Columns


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Convert To")> _
    <Description("Select type to convert to.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Type() As DataType
        Get
            Type = m_type
        End Get
        Set(ByVal value As DataType)
            If m_type <> value Then
                m_type = value

                m_length = 0
                m_precision = 0
                m_scale = 0
                m_culture = 0
            End If
        End Set
    End Property    ' Type


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Convert To")> _
    <Description("Specify string length.")> _
    Public Property Length() As Integer
        Get
            Length = m_length
        End Get
        Set(ByVal value As Integer)
            m_length = value
        End Set
    End Property    ' Length


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Convert To")> _
    <Description("Specify number precision.")> _
    Public Property Precision() As Integer
        Get
            Precision = m_precision
        End Get
        Set(ByVal value As Integer)
            m_precision = value
        End Set
    End Property    ' Precision


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Convert To")> _
    <Description("Specify number scale.")> _
    Public Property Scale() As Integer
        Get
            Scale = m_scale
        End Get
        Set(ByVal value As Integer)
            m_scale = value
        End Set
    End Property    ' Scale


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Convert To")> _
    <Description("Specify string code page.")> _
    <List("GetCultures")> _
    Public Property CodePage() As String
        Get
            Dim result As String = String.Empty

            If m_culture <> 0 Then
                result = New CultureInfo(m_culture).DisplayName
            End If

            CodePage = result
        End Get
        Set(ByVal value As String)
            m_culture = FindCultureByDisplay_(value)
        End Set
    End Property    ' CodePage
#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_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function IsFound_(ByVal list() As String, ByVal search As String) As Boolean
        Dim result As Boolean = False

        For Each item As String In list
            If item.Equals(search, StringComparison.OrdinalIgnoreCase) Then
                ' Found.
                result = True
                Exit For
            End If
        Next

        IsFound_ = result
    End Function    ' IsFound_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function FindCultureByDisplay_(ByVal display As String) As Integer
        Dim result As Integer = 0
        Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)

        For Each ci As CultureInfo In cultures
            If ci.DisplayName = display Then
                ' Found.
                result = ci.LCID
                Exit For
            End If
        Next

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


#Region "Attributes"
    Private m_inputCols As String = String.Empty
    Private m_prevCols As String = String.Empty
    Private m_type As DataType = DataType.DT_BYREF_I4
    Private m_length As Integer = 50
    Private m_precision As Integer
    Private m_scale As Integer
    Private m_culture As Integer
    Private m_inputIdx() As Integer
    Private m_outputIdx() As Integer
    Private m_outputType() As DataType
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="45" name="BinaryCode" dataType="System.String" state="cdata" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[\bin\scriptcomponent_c7fc06ec606b496aa49f24f2f2072fe8.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
CgDqAcwBBgD6AfMBCgBSAowBBgDQAvMBCgBSAygDDgCkA40DEgDzA9IDFgAkBNIDDgAXBY0DGgCa
BnIGBgD4B+cHBgAlCBAIHgCGCHEIHgDTCL0IHgDsCL0IHgAZCQEJBgBDCTAJCgCCCVsJCgCaCRMA
HgDPCbIJBgAECuQJBgAiCvMBBgBGCvMBCgBfChMABgCjCoQKBgC3CvMBEgC+CtIDBgDLCvMBBgDy
CvMBIgBZCzALIgCICzALIgCzCzALIgDgCzALIgANDDALFgAhDNIDFgAsDNIDBgA5DPMBBgB1DPMB
BgB9DPMBCgCgDFsJIgC9DDALIgDQDDALBgDkDPMBBgDuDPMBIgD0DDALFgA1DdIDIgBZDTALIgCk
DTALCgDmDVsJIgAhDjALIgA1DjALBgBiDk8OCgBuDlsJBgCGDvMBIgDKDjALIgAPDzALBgA2DxAI
BgCWD/MBBgCqD08OBgC4D/MBBgDGDxAIBgAHEPMBEgAhENIDDgBqEEgQDgCEEEgQDgCgEEgQDgC4
EEgQHgDGEL0IHgDbEL0IHgDtEL0IHgAIEb0IDgAaEUgQBgBIETYRBgBvEV4RBgCCETAJBgDrEeQJ
BgALEuQJBgApEjYRBgBGEoQKBgBUEjYRBgBvEjYRBgCKEjYRBgCjEjYRBgC8EjYRBgDZEjYRAAAA
AAEAAAAAAAEAAQAAAAAAKQA3AAUAAQABAAAAAAByADcACQABAAIAAAEQAH0ANwANAAEAAwAFAQAA
hwAAAA0ABQAIAAUBAACVAAAADQAFAA8AAQAAALAAvAAdAAYAEQABAAAA9AC8AB0ABgAWAAEAAAAB
AbwAKQAGACAAAQAAAA8BvAANAAoAKAABAAAAGwG8AA0ACwApAAEAAAAlAbwAJAAMACoAAAAAADAB
PAENABcAPwAAARAAgQG8ADkAGQBDADEAFQIgADEAPgItADEAYAI6ADEAhQJHACEAYQOQAAYADwHZ
AAYAGwHdAAYA9ADhAAEAKwXlAAEA2AX/AAEA2AX/AFGA6AUJAQEAVgcJAQEAYgcJAQEAbQc4AQEA
dAflAAEAfQflAAEAiQflAAEAkQflAAEAmwc8AQEApgc8AQEAsgdAAREACAhOAREAMQhSAREAnghw
AREApgh0AQghAAAAAAYYxgETAAEAECEAAAAABhjGARMAAQAYIQAAAAARGAECFwABAEQhAAAAABMI
CAIbAAEAXCEAAAAAEwguAigAAQB0IQAAAAATCFcCNQABAIwhAAAAABMIdQJCAAEApCEAAAAARgK7
AmMAAQDAIQAAAABGAsQCaAACANQhAAAAAIMA1QJsAAIA7CEAAAAARgLdAnEAAgAAIgAAAAARAOYC
eAACABwiAAAAAAEABAOAAAMAOCIAAAAABhjGARMABABAIgAAAAADCBgDiwAEAHQiAAAAAAYYxgET
AAQAiCIAAAAABhjGAa8ABACYIgAAAABGClUEuQAIAKwiAAAAAEYKbAS5AAgAwCIAAAAAhgCEBL4A
CADYIgAAAACGAIwEvgAIAPAiAAAAAAYYxgGvAAgAACMAAAAARgpVBLkADAAUIwAAAAAGCL8ExwAM
ACAjAAAAAAYIywTMAA0APCMAAAAABgjYBMcADgBIIwAAAAAGCN4EzAAPAGQjAAAAAEYKbAS5ABAA
jCMAAAAAhgDrBBMAEACUIwAAAACGAPIEEwAQAJwjAAAAAIYAjAS+ABAAtCMAAAAABhjGARMAEADc
IwAAAABGAjoF6AAQAEAkAAAAAEYDTwUTABIARCQAAAAAAQBdBRMAEgBgJAAAAABGAnEF7wASALgk
AAAAAEYDlwUTABUAvCQAAAAARgOrBfkAFQDQJAAAAABGA74F+QAWANQkAAAAAAYYxgEDARcA5CQA
AAAABhjGAQMBGAD0JAAAAAAGGMYBEwAZACglAAAAAEYCvgX5ABkA2CYAAAAARgL4BRMAGgAYKAAA
AAAGAAMGEQEaAHAqAAAAAAYAFwa5ABsAOCsAAAAABgAlBhcBGwCEKwAAAAAGCDEGcQAbAJwrAAAA
AAYIPQbHABsA/CsAAAAABgijBhwBHAAULAAAAAAGCKwGIQEcAEQsAAAAAAYItQZoAB0AXCwAAAAA
BgjABicBHQBoLAAAAAAGCMsGaAAeAIAsAAAAAAYI2QYnAR4AjCwAAAAABgjnBmgAHwCkLAAAAAAG
CPEGJwEfALAsAAAAAAYI+wZxACAA4CwAAAAABggIB8cAIADwLAAAAAABABUHcQAhAIwtAAAAAAEA
IwcsASEAxC0AAAAAAQA4BzMBIwAULgAAAAADGMYBEwAkABwuAAAAABYIPQhWASQAWC4AAAAAFghR
CFsBJABsLgAAAAAWCF0IYAEkAHQuAAAAABEYAQIXACUAiC4AAAAABhjGARMAJQCQLgAAAAAWCLMI
dwElAAAAAQDCAgAAAQD7AgAAAQD7AgAAAQAzBAAAAgA9BAAAAwBGBAAABABOBAAAAQAzBAAAAgA9
BAAAAwBGBAAABABOBAAAAQDFBAAAAQDFBAAAAQDFBAAAAQDFBAAAAQBHBQAAAgBOBAAAAQB9BQAA
AgCFBQAAAwCPBQAAAQBOBAAAAQDUBQAAAQAzBAAAAQAzBAAAAQDUBQAAAQAMBgAAAQBJBgAAAQBJ
BgAAAQBJBgAAAQBJBgAAAQBJBgAAAQBJBgAAAQAsBwAAAgAxBwAAAQBOBwAAAQDFBAkAxgETAHkA
xgGBAYkAxgGQAREAxgETAJEAxgETACQAxgETACwAxgETADQAxgETADwAxgETACQAGAOLACwAGAOL
ADQAGAOLADwAGAOLAJkAxgETAKEAxgETAKkAxgHHALEAEwopAhkAuwJjABkAxAJoACkANAo2AhkA
3QJxAMEAUApGAhkAxgETAMkAxgFWAkQAYQOQAEwAswiLAEwAegrTAkwAxgETANEAxgHMADkAxgGv
AOEAhAS+AOEAjAS+AOkAxgHMADkA4QrrAjkA6gonAfEAxgHHAOEA6wQTAOEA8gQTAFEAxgETAEEA
cgv4AvkAnwv9AgEBwAsDAwkByQtoAEkA0Au+APkA+AsKAxEBwAsQAxkByQtoANkAGwwJATkAPgwc
A0kASQwhA0kAwAsmAyEBUAwrAykBmgY4AUkAXwwxAyEBtQY2AyEBaQw6AzkBhgxBAzEBxgHHADkB
kQxLA0kB3QJRAzkBrAxWA0kA4QrrAkEA+AUTAAkBEQ1zA3EBKw1oAHEBwAt5A1EARw2AA3kBbg2G
AwkBPgxoAFEBgA1oAIEBjg2MAxkBwg2SA1EB3Q1xAIkBwAuYAxkBPgxoAFkBgA1oAJEB8g2fA5EB
Ag4XAFkBFA4cAbEBeA67A9kAmQ7CA4kBKw1oAFkB3Q1xAFkByQtoAIkBnw4nAXEBsA4TAAkBug7M
A5kB7g7SA8EBwAvYA6EBgA1oAJkBHA/fA4kBKQ/nA1kBLQ/HAGkAxgEnAWkAPw/tA9EBTA9oAIkB
XQ/zA6kBaw/5A1kBdw/9A6kBjQ++ANkBog8TAGEB3QJxAOEBxgETAOEBtA83BOEBvg88BGkAJQZR
BGkA0w9xAOEBvg8XAQkB4w++ANkA8g9rBHEBXQ/zA9kAABCABNkAuwKUBGkAGBBoAAECxgETAAkC
xgHHABECxgHHABkCxgHUBCECxgHHACkCxgHHADECxgHHADkCxgFQBUkCxgGxBSkAUREVBmEAxgEb
BnEAxgETAFkCdxE4BlkCfRE4BmECxgETAGkCxgEnAXECxgETAHkCxgHHAIECxgHHAIkCxgHHAJEC
xgHHAJkCxgHHAKECxgHHAKkCxgHHALECxgHHAA4AMAAMASkAgwALAi4ASwQEBy4AQwTHBi4AGwRL
Bi4AIwRqBi4AOwSnBi4AWwTHBi4AEwRCBi4AUwTgAi4AKwR3Bi4A6wDgAi4ACwGhBi4AMwTgAkAA
KwCuAUAAEwCHAUMAEwCHAUMAGwCWAUkAgwDjAWMAEwCHAWMAGwCWAWkAgwAcAoAAKwCuAYMAGwCW
AYMAcwCuAYMAewCuAYkAgwD3AaAAKwCuAaMAwwBeAqMAEwCHAcAAKwCuAcMAEwCHAcMA6wDgAuAA
KwCuAeMACwHgAgABEwCHAQABKwCuAQMBCwHgAiABKwCuASABEwCHASMBCwHgAkABKwCuAUABEwCH
AWABEwCHAWABKwCuAYABKwCuAYMBqwPGBIMBowOzBIMBCwHgAoMBswPaBIMBmwOuAaABKwCuAcAB
EwCHAcABKwCuAckB2wO3BckBywPtBckBwwO+BeABKwCuAekBywNABekB0wOHAekBwwNXBQACEwCH
AQACKwCuAQkCywNABQkCwwP5BSkCywNABSkCwwN3BUkCwwOWBUkCywNABWkCwwMhBWkCywNABWkC
uwMQBYkCEwAvBqkCEwAvBskCCwSuAQAFCwHgAiAFCwHgAs8B1AHZAd4BLgIyAj0CQgJRAlEC2QLm
AuYCLgIuAuYC8QIuAhcDXAOmAwcERwRaBEICcAR2BDICMgIyAnsEhgScBKUEIwYqBj0GBAABAAYA
BQAHAAYACAAIAAwADgANABQADgAWAAAA6gFPAAAAowJUAAAAUgJZAAAArwJeAAAAawOYAAAAmATC
AAAAqwTCAAAAmATCAAAAAQXRAAAAAwXVAAAADAXRAAAADgXVAAAAqwTCAAAAvwfRAAAA0AJFAQAA
xwdKAQAAzgdKAQAA2AdKAQAA3gfRAAAA+AdmAQAAaQhrAQAAxQR8AQIABAADAAIABQAFAAIABgAH
AAIABwAJAAIADwALAAIAEgANAAIAEwAPAAIAFwARAAEAGAATAAEAGQAVAAEAGgAXAAEAGwAZAAIA
HAAbAAEAMQAdAAIAMAAdAAIAMgAfAAEAMwAfAAIANAAhAAEANQAhAAIANgAjAAEANwAjAAIAOAAl
AAEAOQAlAAIAOgAnAAEAOwAnAAIAQAApAAIAQQArAAEAQgArAAIARQAtAHUAdQCIALMBugHBAcgB
wALHAkgDRAQEgAAAAQAAAAAAAAAAAAAAAAC8AAAAAgAAAAAAAAAAAAAAAQAKAAAAAAAIAAAAAAAA
AAAAAAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0AdwMAAAAACgAAAAAAAAAAAAAApgC1AwAAAAAKAAAA
AAAAAAAAAACmAAMEAAAAAAoAAAAAAAAAAAAAAKYATwYAAAAAAgAAAAAAAAAAAAAAAQDzAQAAAAAK
AAAAAAAAAAAAAACmAAwLAAAAAAAAAAABAAAAnxEAAAUABAAGAAQAAAAQAAwA+QIAABAAGQD5AgAA
AAAbAPkCLQBMAi0AzgIAAAAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNp
YwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF9jN2ZjMDZlYzYwNmI0OTZhYTQ5ZjI0ZjJm
MjA3MmZlOC52YnByb2ouTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJl
YWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfYzdmYzA2
ZWM2MDZiNDk2YWE0OWYyNGYyZjIwNzJmZTgudmJwcm9qAE91dHB1dEJ1ZmZlcgBVc2VyQ29tcG9u
ZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNjcmlwdENv
bXBvbmVudF9jN2ZjMDZlYzYwNmI0OTZhYTQ5ZjI0ZjJmMjA3MmZlOC52YnByb2ouTXkuUmVzb3Vy
Y2VzAE15U2V0dGluZ3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMA
QXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1
dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJv
dmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBt
X1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0
UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlw
ZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2Vf
X0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZp
Y2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9j
LlNTSVNQbHVzLjIwMDgAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxp
bmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVs
aW5lQnVmZmVyAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBnZXRfU3RhdGljSW5w
dXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5leHRSb3cARW5kT2ZSb3dzZXQAU3Rh
dGljSW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMAc2V0X2IAVmFsdWUAc2V0X2JfSXNO
dWxsAHNldF9jAHNldF9jX0lzTnVsbABBZGRSb3cAU2V0RW5kT2ZSb3dzZXQAYgBiX0lzTnVsbABj
AGNfSXNOdWxsAFNjcmlwdENvbXBvbmVudFBsdXMASW5wdXRzRmluaXNoZWQAUHJvY2Vzc0lucHV0
AElucHV0SUQARmluaXNoT3V0cHV0cwBNYXJrT3V0cHV0c0ZpbmlzaGVkAFByaW1lT3V0cHV0AE91
dHB1dHMAT3V0cHV0SURzAEJ1ZmZlcnMAQ3JlYXRlTmV3T3V0cHV0Um93cwBJbnB1dF9Qcm9jZXNz
SW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21wb25lbnQAQ29sdW1uU2Vw
YXJhdG9yAFByZUV4ZWN1dGUAVmFsaWRhdGUAZXJyTWVzc2FnZQBHZXRQcm9wZXJ0aWVzAEdldEN1
bHR1cmVzAGdldF9Db2x1bW5zAHNldF9Db2x1bW5zAHZhbHVlAE1pY3Jvc29mdC5TcWxTZXJ2ZXIu
RFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAERh
dGFUeXBlAGdldF9UeXBlAHNldF9UeXBlAGdldF9MZW5ndGgAc2V0X0xlbmd0aABnZXRfUHJlY2lz
aW9uAHNldF9QcmVjaXNpb24AZ2V0X1NjYWxlAHNldF9TY2FsZQBnZXRfQ29kZVBhZ2UAc2V0X0Nv
ZGVQYWdlAEdldElucHV0Q29sc18ASXNGb3VuZF8AbGlzdABzZWFyY2gARmluZEN1bHR1cmVCeURp
c3BsYXlfAGRpc3BsYXkAbV9pbnB1dENvbHMAbV9wcmV2Q29scwBtX3R5cGUAbV9sZW5ndGgAbV9w
cmVjaXNpb24AbV9zY2FsZQBtX2N1bHR1cmUAbV9pbnB1dElkeABtX291dHB1dElkeABtX291dHB1
dFR5cGUAQ29sdW1ucwBMZW5ndGgAUHJlY2lzaW9uAFNjYWxlAENvZGVQYWdlAFN5c3RlbS5SZXNv
dXJjZXMAUmVzb3VyY2VNYW5hZ2VyAF9yZXNNZ3IAU3lzdGVtLkdsb2JhbGl6YXRpb24AQ3VsdHVy
ZUluZm8AX3Jlc0N1bHR1cmUAZ2V0X1Jlc291cmNlTWFuYWdlcgBnZXRfQ3VsdHVyZQBzZXRfQ3Vs
dHVyZQBDdWx0dXJlAFN5c3RlbS5Db25maWd1cmF0aW9uAEFwcGxpY2F0aW9uU2V0dGluZ3NCYXNl
AG1fVmFsdWUAbV9TeW5jT2JqZWN0AGdldF9WYWx1ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwARWRp
dG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5Db2RlRG9t
LkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNzAERlYnVn
Z2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZpY2Vz
AFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5c3RlbS5D
b21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUu
Q29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50aW1lVHlw
ZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UATXlHcm91
cENvbGxlY3Rpb25BdHRyaWJ1dGUAc2V0X1ZhbHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2
aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50
QXR0cmlidXRlAHNldF9JdGVtAFNldE51bGwASW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbgBNaWNy
b3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5Q
aXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0
YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJbnB1
dDEwMABnZXRfSXRlbQBnZXRfSUQAZ2V0X0VuZE9mUm93c2V0AElEVFNPdXRwdXRDb2xsZWN0aW9u
MTAwAGdldF9PdXRwdXRDb2xsZWN0aW9uAElEVFNPdXRwdXQxMDAARW1wdHkAQmxvYkNvbHVtbgBC
dWZmZXJDb2x1bW4AR3VpZABnZXRfQnVmZmVyAElzTnVsbABnZXRfQ29sdW1uSW5mbwBHZXRTdHJp
bmcAR2V0QmxvYkRhdGEAQ29udmVydABEYXRlVGltZQBUb0RhdGVUaW1lAFRvQmFzZTY0U3RyaW5n
AENvbnZlcnNpb25zAEZyb21CYXNlNjRTdHJpbmcASURUU0lucHV0Q29sdW1uMTAwAElEVFNPdXRw
dXRDb2x1bW4xMDAARXhjZXB0aW9uAEludDMyAElEVFNJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAA
Z2V0X0lucHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfQ291bnQAUGlwZWxpbmVDb21wb25lbnQAZ2V0
X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIxMDAAZ2V0X0J1ZmZlck1hbmFnZXIAZ2V0
X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQASURUU091dHB1dENvbHVtbkNvbGxlY3Rp
b24xMDAAZ2V0X091dHB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X05hbWUAUHJvamVjdERhdGEAU2V0
UHJvamVjdEVycm9yAENsZWFyUHJvamVjdEVycm9yAGdldF9EYXRhVHlwZQBJRFRTVmlydHVhbElu
cHV0MTAwAElEVFNWaXJ0dWFsSW5wdXRDb2x1bW4xMDAAU3lzdGVtLkNvbGxlY3Rpb25zAElFbnVt
ZXJhdG9yAE9wZXJhdG9ycwBDb21wYXJlU3RyaW5nAFN0cmluZ1NwbGl0T3B0aW9ucwBTcGxpdABS
ZW1vdmVPYmplY3RCeUlEAFJlbW92ZUFsbABHZXRWaXJ0dWFsSW5wdXQASURUU1ZpcnR1YWxJbnB1
dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24ARFRT
VXNhZ2VUeXBlAFNldFVzYWdlVHlwZQBOZXcAc2V0X05hbWUAVGV4dEluZm8AZ2V0X1RleHRJbmZv
AGdldF9BTlNJQ29kZVBhZ2UAR2V0RW51bWVyYXRvcgBnZXRfQ3VycmVudABTZXREYXRhVHlwZVBy
b3BlcnRpZXMATW92ZU5leHQASURpc3Bvc2FibGUARGlzcG9zZQBBcnJheUxpc3QAQWRkAEFycmF5
AFRvQXJyYXkAQ3VsdHVyZVR5cGVzAGdldF9EaXNwbGF5TmFtZQBnZXRfSXNBdHRhY2hlZABJc051
bGxPckVtcHR5AENvbmNhdABTdHJpbmdDb21wYXJpc29uAGdldF9MQ0lEAFNTSVNTY3JpcHRDb21w
b25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRl
cwBGaWx0ZXJQcm9wZXJ0aWVzQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBT
b3J0UHJvcGVydGllc0F0dHJpYnV0ZQBMaXN0QXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRl
AENhdGVnb3J5QXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzQXR0cmlidXRlAFJlZnJlc2hQcm9w
ZXJ0aWVzAElucHV0VmlydHVhbENvbHVtbkF0dHJpYnV0ZQBTeXN0ZW0uUmVmbGVjdGlvbgBBc3Nl
bWJseQBnZXRfQXNzZW1ibHkAU3lzdGVtLlRocmVhZGluZwBNb25pdG9yAEVudGVyAEV4aXQARGVi
dWdnZXJOb25Vc2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfYzdmYzA2ZWM2MDZiNDk2
YWE0OWYyNGYyZjIwNzJmZTgudmJwcm9qLlJlc291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRpb25S
ZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBBc3NlbWJs
eUZpbGVWZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRy
aWJ1dGUAQXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0cmlidXRl
AEFzc2VtYmx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0cmlidXRlAEFz
c2VtYmx5VGl0bGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2M3ZmMwNmVjNjA2YjQ5NmFhNDlm
MjRmMmYyMDcyZmU4LnZicHJvai5kbGwAAICbSQBzAE4AdQBsAGwAIABwAHIAbwBwAGUAcgB0AHkA
IABjAGEAbgBuAG8AdAAgAGIAZQAgAHMAZQB0ACAAdABvACAARgBhAGwAcwBlAC4AIABBAHMAcwBp
AGcAbgAgAGEAIAB2AGEAbAB1AGUAIAB0AG8AIAB0AGgAZQAgAGMAbwBsAHUAbQBuACAAaQBuAHMA
dABlAGEAZAAuAAADYgAAA2MAAAtJAG4AcAB1AHQAAA1PAHUAdABwAHUAdAAABSwACgAAD0MAbwBs
AHUAbQBuAHMAAAlUAHkAcABlAAALUwBjAGEAbABlAAANTABlAG4AZwB0AGgAABFDAG8AZABlAFAA
YQBnAGUAABNQAHIAZQBjAGkAcwBpAG8AbgAAMU0AeQAuAFIAZQBzAG8AdQByAGMAZQBzAC4ATQB5
AFIAZQBzAG8AdQByAGMAZQBzAAAAABJML+WVKplOhg0JOkH0d5UACLd6XFYZNOCJCLA/X38R1Qo6
AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIY
ARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEB
EB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImEXc2AgMyRCSAEARIhCAISJQQgAB0O
AyAAAgQoAB0OBCABAQ4EIAEBAgMoAA4DKAACAwYSKAMGEiwDBhIgAgYIBiACAQgSJQkgAwEIHQgd
EiUFIAEBEhwDBhIhBSABARIhAgYOBCwACgAFIAECEA4EIAAdHAQgABEtBSABAREtBCABAQgGIAIC
HQ4OBCABCA4DBhEtAwYdCAQGHREtBCgAES0DKAAIAwYSMQMGEjUEAAASMQQAABI1BQABARI1BAgA
EjEECAASNQMGEjgCBhwEAAASOAQIABI4BSABARFBCAEAAQAAAAAABSACAQ4OFwEACk15VGVtcGxh
dGUHOC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQH
ARIRBAcBEhQTAQAOTXkuQXBwbGljYXRpb24AABMBAA5NeS5XZWJTZXJ2aWNlcwAAEAEAC015LkNv
bXB1dGVyAAAMAQAHTXkuVXNlcgAABAABHBwDBwECAwcBCAYAARIVEV0EBwESFQMHAQ4FEAEAHgAE
CgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0
dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAA
AAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAGBwITABMABQEAAAAABAcBHQ4FIAIBCBwGBwIdDh0O
BCAAEn0FIAASgIEGIAESgIUcBSAAEoCJBiABEoCNHAQHAggIBCAAEiUEIAECCAQgARwIBSAAEYCV
BCABDggDIAAJBiACHQUICAYAARGAoRwCHQUFAAEOHQUEAAEOHAUAAR0FDhYHDAgICBwIHBKAkQgR
gJURLREtEYCZBSAAEoC5BiABEoCpHAUgABKAvQUgABKAwQUgAggICAUgABKAxQYgARKArRwGAAEB
EoCxFAcICBKAhRKAjQgSgKkSgK0SgLEIBgADCA4OAgkgAh0OHQ4RgN0FIAASgM0FIAASgOEGIAES
gNEcByACCAgRgOUFIAASgK0FIAASgOkFIAASgNUDIAAcCSAFAREtCAgICC8HFQICCBKAhRKAjQgd
DhKAzQgSgK0OEoCtEoDREoCxEjUSgK0SgLEdDggdDhKA1QQgAQgcByABEoD1EhUCHQ4JBwMdDhKA
8REtCAABHRI1EYD5EAcGHRI1HRwSgPESNQgdEjUEAAECDgUHARKAhQQHAREtBAcCDg4FAAIODg4N
BwUOEoCFDhKAqRKA1QcgAgIOEYD9CAcFAgIOCB0ODQcGHRI1CAgSNQgdEjUSAQANR2V0UHJvcGVy
dGllcwAADQEACFZhbGlkYXRlAAAFIAEBHQ41AQAGAAAAB0NvbHVtbnMEVHlwZQZMZW5ndGgJUHJl
Y2lzaW9uBVNjYWxlCENvZGVQYWdlAAAQAQALR2V0Q3VsdHVyZXMAAB4BABlTcGVjaWZ5IHN0cmlu
ZyBjb2RlIHBhZ2UuAAAPAQAKQ29udmVydCBUbwAABiABARGBIR8BABpTZWxlY3QgdHlwZSB0byBj
b252ZXJ0IHRvLgAAHgEAGVNwZWNpZnkgbnVtYmVyIHByZWNpc2lvbi4AABoBABVTcGVjaWZ5IG51
bWJlciBzY2FsZS4AAAUgAgEOAgYBAAAAAAAuAQApU2VsZWN0IGlucHV0IGNvbHVtbnMgeW91IHdh
bnQgdG8gcHJvY2Vzcy4AAAsBAAYJSW5wdXQAABsBABZTcGVjaWZ5IHN0cmluZyBsZW5ndGguAAAF
IAASgSkHIAIBDhKBKQYHAhIxEjEEBwESNQgBAAIAAAAAAAQAAQEcBAcBEjgIAQAIAAAAAAAeAQAB
AFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBDAEABzEuMC4wLjAAACkBACQwZjZiNWQxNC0zNTAy
LTQyZmMtODYzNS01ODkzM2I1NzA1OTkAAAUBAAEAAB8BABpDb3B5cmlnaHQgQCBNaWNyb3NvZnQg
MjAxMwAAPAEAN1NjcmlwdENvbXBvbmVudF9jN2ZjMDZlYzYwNmI0OTZhYTQ5ZjI0ZjJmMjA3MmZl
OC52YnByb2oAAA4BAAlNaWNyb3NvZnQAAABEWwAAAAAAAAAAAABeWwAAACAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAUFsAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAAACgAAIAOAAAASAAA
gBAAAABgAACAAAAAAAAAAAAAAAAAAAACAAIAAAB4AACAAwAAAJAAAIAAAAAAAAAAAAAAAAAAAAEA
AH8AAKgAAIAAAAAAAAAAAAAAAAAAAAEAAQAAAMAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAANgAAAAA
AAAAAAAAAAAAAAAAAAEAAAAAAOgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAPgAAAAAAAAAAAAAAAAA
AAAAAAEAAAAAAAgBAACAZQAA6AIAAAAAAAAAAAAAaGgAACgBAAAAAAAAAAAAAJBpAAAiAAAAAAAA
AAAAAAAYYQAAaAQAAAAAAAAAAAAAaAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8A
AAAAAL0E7/4AAAEAAAABAAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABE
AAAAAQBWAGEAcgBGAGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8A
bgAAAAAAAACwBMgDAAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAABADAAMAAw
ADAAMAA0AGIAMAAAADQACgABAEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMA
bwBmAHQAAACYADgAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBw
AHQAQwBvAG0AcABvAG4AZQBuAHQAXwBjADcAZgBjADAANgBlAGMANgAwADYAYgA0ADkANgBhAGEA
NAA5AGYAMgA0AGYAMgBmADIAMAA3ADIAZgBlADgALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBs
AGUAVgBlAHIAcwBpAG8AbgAAAAAAMQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUAcgBuAGEA
bABOAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBjADcAZgBjADAANgBl
AGMANgAwADYAYgA0ADkANgBhAGEANAA5AGYAMgA0AGYAMgBmADIAMAA3ADIAZgBlADgALgB2AGIA
cAByAG8AagAuAGQAbABsAAAAXAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBv
AHAAeQByAGkAZwBoAHQAIABAACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQAzAAAAAACgADwA
AQBPAHIAaQBnAGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABv
AG4AZQBuAHQAXwBjADcAZgBjADAANgBlAGMANgAwADYAYgA0ADkANgBhAGEANAA5AGYAMgA0AGYA
MgBmADIAMAA3ADIAZgBlADgALgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1
AGMAdABOAGEAbQBlAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGMANwBmAGMA
MAA2AGUAYwA2ADAANgBiADQAOQA2AGEAYQA0ADkAZgAyADQAZgAyAGYAMgAwADcAMgBmAGUAOAAu
AHYAYgBwAHIAbwBqAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAA
LgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAu
ADAALgAwAAAAKAAAACAAAABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAA
AIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAHd3d3d3d3d3d3d3d3d3cARERERERERERERERERERHAE//////////////////RwBP//
///////////////0cAT/////////////////9HAE//////////////////RwBP//////////////
///0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////
////////////9HAE//////////////////RwBP/////////////////0cAT/////////////////
9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////////
//////////RwBP/////////////////0cAT/////////////////9HAEiIiIiIiIiIiIiIiIiIRw
BEREREREREREREREREREcARMTExMTExMTExOzs5JdHAEzMzMzMzMzMzMzMzMzMQAAERERERERERE
RERERERAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
///////////////////AAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
AYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAPAAAAH
////////////////KAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
/wAAAAAAAAAAAAd3d3d3d3d3REREREREREdP///////4R0////////hHT///////+EdP///////4
R0////////hHT///////+EdP///////4R0////////hHSIiIiIiIiEdMzMzMzMzMR8RERERERETA
AAAAAAAAAAAAAAAAAAAAAP//AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAQAA//8AAP//AAAAAAEAAgAgIBAAAQAEAOgCAAACABAQEAABAAQAKAEAAAMA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAwAAABwOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property>
<property id="52" name="UserComponentTypeName" dataType="System.String" state="default" isArray="false" description="" typeConverter="" UITypeEditor="" containsID="false" expressionType="None">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property>
<property id="706" name="VSTAProjectName" dataType="System.String" state="default" isArray="false" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None">ScriptComponent_c7fc06ec606b496aa49f24f2f2072fe8</property>
<property id="707" name="ScriptLanguage" dataType="System.String" state="default" isArray="false" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" UITypeEditor="" containsID="false" expressionType="None">VisualBasic</property></properties>
<inputs>
<input id="42" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"></input>
</inputs>
<outputs>
<output id="43" name="Output" description="" exclusionGroup="0" synchronousInputId="0" deleteOutputOnPathDetached="false" hasSideEffects="true" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><outputColumns>
<outputColumn id="438" name="b" description="" lineageId="438" precision="0" scale="0" length="50" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="440" name="c" description="" lineageId="440" precision="0" scale="0" length="50" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" /></outputColumns><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>