<component id="26" name="Salesforce Bulk Result" 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="27" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><arrayElement dataType="System.String"><![CDATA[My Project\AssemblyInfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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_641c7f94cf21403b8e5d87b4eae38176.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_641c7f94cf21403b8e5d87b4eae38176.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2014")> 
<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("f864933e-125b-4f8f-b42e-4593312f7068")> 

' 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[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property Connection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("Connection").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[main.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-2014 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.Xml
Imports System.Net
Imports System.IO
Imports System.Threading
Imports System.Globalization

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports Microsoft.VisualBasic.FileIO
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CozyRoc.Sforce.Service


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

    Private JobUrl_3P As String = "{0}://{1}/services/async/{2}/job/"
    Private BulkNS As String = "http://www.force.com/2009/06/asyncapi/dataload"


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim batchId As String = CStr(Row.Buffer(m_batchIdx))

        Try
            If m_batchId <> batchId Then
                ' Load next batch.
                m_batchId = batchId

                If String.IsNullOrEmpty(m_jobId) Then
                    ' Load job identifier.
                    m_jobId = CStr(GetVariable_(Me.JobIdVariable))
                End If

                If Not m_batchRes Is Nothing Then
                    Call m_batchRes.Dispose()
                End If

                m_batchRes = GetBatchResult_(m_service, m_jobId, m_batchId)
            End If

            ' Get batch result.
            Dim record() As String = m_batchRes.ReadFields()
            If record Is Nothing Then
                ' There is no more data.
                Exit Sub
            End If

            With Row
                .ResultId = record(0)
                .Success = Convert.ToBoolean(record(1))
                .Created = Convert.ToBoolean(record(2))
                .Error = record(3)
            End With
        Catch ex As Exception
            Call FireError_(ex.ToString())
        End Try
    End Sub ' Input_ProcessInputRow


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

        m_connection = CType( _
            MyBase.Connections.Connection.AcquireConnection(Nothing), _
            ISforceConnection)
        m_service = CType(m_connection.Connect(), SforceService)

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

        ' Get batch column index.
        Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(Me.BatchIdColumn)
        m_batchIdx = Me.HostComponent.BufferManager.FindColumnByLineageID(input.Buffer,  inputCol.LineageID)
    End Sub ' PreExecute


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

        Call m_connection.Close()
    End Sub ' PostExecute


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

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

            If String.IsNullOrEmpty(Me.JobIdVariable) Then
                Throw New ApplicationException("Select job id variable.")
            End If

            If String.IsNullOrEmpty(Me.BatchIdColumn) Then
                Throw New ApplicationException("Select batch id column.")
            End If

            ' Setup batch id column.
            Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
            Call input.InputColumnCollection.RemoveAll()
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
            Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(Me.BatchIdColumn)
            Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READONLY)

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

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

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select Salesforce Connection Manager.")> _
    <Connection("ConnectionType")> _
    Public Property Connection() As String
        Get
            Connection = m_sforceConnection
        End Get
        Set(ByVal value As String)
            m_sforceConnection = value
        End Set
    End Property    ' Connection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select job id variable.")> _
    <Variable()> _
    Public Property JobIdVariable() As String
        Get
            JobIdVariable = m_jobIdVar
        End Get
        Set(ByVal value As String)
            m_jobIdVar = value
        End Set
    End Property    ' JobIdVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select batch id column.")> _
    <InputVirtualColumn()> _
    Public Property BatchIdColumn() As String
        Get
            BatchIdColumn = m_batchIdCol
        End Get
        Set(ByVal value As String)
            m_batchIdCol = value
        End Set
    End Property    ' BatchIdColumn
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property ConnectionType() As String()
        Get
            ConnectionType = New String() {"SFORCE"}
        End Get
    End Property    ' ConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Salesforce Bulk Result", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetVariable_(ByVal varName As String) As Object
        Dim result As Object
        Dim vars As IDTSVariables100 = Nothing

        Call Me.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Find the API version in use by stepping the service URL from the back.
    ' The first segment which can be converted to number is the version.
    Private Function GetServiceVersion_(ByVal url As Uri) As Double
        Dim result As Double = 27
        Dim segments As String() = url.Segments
        Dim segsCount As Integer = segments.Length

        For segIndex As Integer = segsCount - 1 To 0 Step -1
            Dim segment As String = segments(segIndex).Trim("/"c)
            If Double.TryParse(segment, NumberStyles.Any, CultureInfo.InvariantCulture, result) Then
                Exit For
            End If
        Next

        GetServiceVersion_ = result
    End Function    ' GetServiceVersion_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function PrepareRequest_( _
        ByVal service As SforceService, _
        ByVal url As String) As HttpWebRequest

        ' Setup base job request url.
        Dim serviceUri As Uri = New Uri(service.Url)
        Dim jobUrl As String = String.Format( _
            JobUrl_3P, _
            serviceUri.Scheme, _
            serviceUri.Host, _
            GetServiceVersion_(serviceUri))

        Dim result As HttpWebRequest = CType(WebRequest.Create(jobUrl + url), HttpWebRequest)
        Call result.Headers.Add("X-SFDC-Session", service.SessionHeaderValue.sessionId)

        PrepareRequest_ = result
    End Function    ' PrepareRequest_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetXmlResult_(ByVal req As HttpWebRequest) As XmlDocument
        Dim result As New XmlDocument

        Try
            Using res As WebResponse = req.GetResponse()
                Call result.Load(res.GetResponseStream())
            End Using
        Catch ex As WebException
            ' The regular exception information is not very useful. Extract error information.
            If ex.Response Is Nothing Then
                ' Error happened before server was able to respond.
                Throw
            End If

            Using errorStream As Stream = ex.Response.GetResponseStream()
                Throw New Exception(New StreamReader(errorStream).ReadToEnd(), ex)
            End Using
        End Try

        GetXmlResult_ = result
    End Function    ' GetXmlResult_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetCsvResult_(ByVal req As HttpWebRequest) As TextFieldParser
        Dim result As TextFieldParser

        Try
            m_readRes = req.GetResponse()
            result = New TextFieldParser(m_readRes.GetResponseStream())
            result.HasFieldsEnclosedInQuotes = True
            Call result.SetDelimiters(",")

            ' Skip first row which is header.
            Call result.ReadFields()
        Catch ex As WebException
            ' The regular exception information is not very useful. Extract error information.
            If ex.Response Is Nothing Then
                ' Error happened before server was able to respond.
                Throw
            End If

            Using errorStream As Stream = ex.Response.GetResponseStream()
                Throw New Exception(New StreamReader(errorStream).ReadToEnd(), ex)
            End Using
        End Try

        GetCsvResult_ = result
    End Function    ' GetCsvResult_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetBatchResult_( _
        ByVal service As SforceService, _
        ByVal jobId As String, _
        ByVal batchId As String) As TextFieldParser

        ' Loop until batch result is ready.
        While True
            Dim doc As XmlDocument = GetXmlResult_(PrepareRequest_(service, jobId + "/batch/" + batchId))
            Dim ns As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
            Call ns.AddNamespace("bl", BulkNS)
            Dim state As String = doc.SelectSingleNode("/bl:batchInfo/bl:state", ns).InnerText
            Select Case state
                Case "Completed"
                    ' Ready.
                    Exit While

                Case "InProgress", "Queued"
                    ' Have to wait.

                Case "Failed", "Not Processed"
                    Throw New Exception(String.Format("'{0}' batch failed or aborted.", batchId))
            End Select

            ' Wait 5 seconds and try again.
            Call Thread.Sleep(5 * 1000)
        End While

        GetBatchResult_ = GetCsvResult_(PrepareRequest_(service, jobId + "/batch/" + batchId + "/result"))
    End Function    ' GetBatchResult_
#End Region ' Internals


#Region "Attributes"
    Private m_sforceConnection As String
    Private m_jobIdVar As String
    Private m_batchIdCol As String

    Private m_connection As ISforceConnection
    Private m_service As SforceService
    Private m_batchIdx As Integer
    Private m_jobId As String
    Private m_batchId As String
    Private m_readRes As WebResponse
    Private m_batchRes As TextFieldParser
#End Region 'Attributes

End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[scriptcomponent_641c7f94cf21403b8e5d87b4eae38176.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">
  <!-- 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>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_641c7f94cf21403b8e5d87b4eae38176.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_641c7f94cf21403b8e5d87b4eae38176.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{CCB3237D-661B-4E42-A306-9941C5A22A8D}</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,42353,42354,42355</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,42353,42354,42355</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.Sforce, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=16cf490bb80c34ea">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Web.Services" />
    <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.PipelineHost, 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.DTSRuntimeWrap, Version=12.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="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug6d04f261-8af8-4ad7-8dd0-4405c0bd80c7/3bc03a18-a32e-41b3-adbc-f711335dbe40&quot;" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <PropertyGroup>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
</Project>]]></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 WriteOnly Property [ResultId]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [ResultId_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 [Success]() As Boolean
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [Success_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 WriteOnly Property [Created]() As Boolean
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [Created_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            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 [Error]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [Error_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            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() {"ResultId", "Success", "Created", "Error"}
        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[My Project\Settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[My Project\Settings.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[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_641c7f94cf21403b8e5d87b4eae38176</msb:CodeName>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{95ABA433-AB93-43FE-8958-4898B1C97B43}</msb:ProjectId>
		<msb:DisplayName>scriptcomponent_641c7f94cf21403b8e5d87b4eae38176</msb:DisplayName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:Project Include="scriptcomponent_641c7f94cf21403b8e5d87b4eae38176.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[My Project\Resources.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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></arrayElements></property><property id="28" 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_641c7f94cf21403b8e5d87b4eae38176.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
CglzawAACnoRBCwHEQRvZwAACtwoNwAACt4ABwoGKgABKAAAAgANAA4bAAoAAAAAAgBFABNYAAwA
AAAAAAAGACEnAERHAAABGzAEAIoAAAAdAAARAgNvZAAACn0UAAAEAnsUAAAEb2UAAApzbAAACgsH
F29tAAAKBxeNIwAAARMEEQQWcpYCAHCiEQRvbgAACgdvMwAACibeQCUoNQAACgwIb2gAAAotAv4a
CG9oAAAKb2UAAAoNCXNpAAAKb2oAAAoIc2sAAAp6CSwGCW9nAAAK3Cg3AAAK3gAHCgYqAAABHAAA
AgBjABJ1AAoAAAAAAAAAAEZGAEBHAAABEzAHAOEAAAAeAAARAgIDBHKaAgBwBShvAAAKbzQAAAZv
NQAABgsHb3AAAApzcQAACgwIcqoCAHACewsAAARvcgAACgdysAIAcAhvcwAACm90AAAKDQkTBBEE
ct4CAHAWKDAAAAoWMwIrYhEEcvICAHAWKDAAAAoWLkMRBHIIAwBwFigwAAAKFjMCKzERBHIWAwBw
FigwAAAKFi4QEQRyJAMAcBYoMAAAChYzEXJAAwBwBSh1AAAKc3YAAAp6IIgTAAAodwAACjhA////
AgIDBHKaAgBwBXJ+AwBwKHgAAApvNAAABm82AAAGCgYqAAAAHgIoFwAACioTMAIALQAAAB8AABF+
FgAABC0gco4DAHDQDAAAAigUAAAKb4EAAApzggAACgsHgBYAAAR+FgAABCoAAAATMAEABgAAACAA
ABF+FwAABCoAAB4CgBcAAAQqQnMXAAAKKBEAAAqAGQAABCoAAAAeAiiDAAAKKhswAQA/AAAAIQAA
EX4YAAAELTJ+GQAABCgRAAAKKIQAAAp+GAAABC0ccz0AAAaAGAAABN4QfhkAAAQoEQAACiiFAAAK
3H4YAAAEKgABEAAAAgAdAAwpABAAAAAAtAAAAM7K774BAAAAkQAAAGxTeXN0ZW0uUmVzb3VyY2Vz
LlJlc291cmNlUmVhZGVyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRy
YWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkjU3lzdGVtLlJlc291cmNlcy5SdW50
aW1lUmVzb3VyY2VTZXQCAAAAAAAAAAAAAABQQURQQURQtAAAAEJTSkIBAAEAAAAAAAwAAAB2NC4w
LjMwMzE5AAAAAAUAbAAAABwQAAAjfgAAiBAAAHAVAAAjU3RyaW5ncwAAAAD4JQAAwAMAACNVUwC4
KQAAEAAAACNHVUlEAAAAyCkAAJwGAAAjQmxvYgAAAAAAAAACAAABVxWiCQkPAAAA+iUzABYAAAEA
AABkAAAADQAAABkAAAA+AAAAKAAAAJEAAABFAAAAIQAAAAcAAAAXAAAAGwAAAAkAAAABAAAACgAA
AAEAAAACAAAAAwAAAAIAAAAAADMVAQAAAAAACgCpAX8BCgDdAb8BBgDtAeYBCgBFAn8BBgDDAuYB
CgBFAxsDDgCXA4ADEgDmA8UDFgAXBMUDEgAmBMUDDgCkBYADGgBfBjcGHgBmB+YBHgCMB4EHIgDB
B6oHJgDyB+cHCgAtCBAIDgCUCIADHgDaCIEHBgA3CSYJBgBkCU8JHgDFCbAJHgASCvwJHgArCvwJ
HgBYCkAKBgCCCm8KCgDBCpoKCgDZChMAHgAOC/EKBgBDCyMLBgBhC+YBBgCFC+YBCgCeCxMABgDi
C8MLBgD2C+YBBgAODOYBBgAoDOYBEgAwDMUDBgA9DOYBKgCgDHcMKgDPDHcMKgD6DHcMKgAXDXcM
KgBaDXcMBgCJDeYBCgCeDZoKCgCqDZoKBgDjDeYBCgD1DZoKKgAjDncMBgBQDuYBKgBWDncMFgCN
DsUDKgCxDncMKgACD3cMKgAcD3cMBgAwD+YBKgBfD3cMKgCkD3cMGgDyDzcGGgADEDcGGgBBEDcG
BgBlEOYBBgCEEOYBBgCLEE8JBgCYEOYBIgCxEKoHHgDqEIEHHgD8EIEHIgAcEaoHHgBTEYEHBgBq
EWARBgCUEeYBBgCtEWARJgDwEecHJgAEEucHJgAsEucHBgBkElMSEgBxEsUDDgC6EpgSDgDWEpgS
DgDuEpgSHgAKE/wJHgAfE/wJDgAxE5gSDgBFE5gSBgBpE1cTBgB/E1MSBgCSE28KBgD7EyMLBgAb
FCMLBgBTFDkUBgBsFFcTBgCJFMMLBgCXFFcTBgCyFFcTBgDNFFcTBgDmFFcTBgD/FFcTBgAcFVcT
AAAAAAEAAAAAAAEAAQAAAAAAKQA3AAUAAQABAAAAAAByADcACQABAAIAAAEQAH0ANwANAAEAAwAF
AQAAhwAAAA0ABQAIAAUBAACVAAAADQAFAA8AAQAAALAAvAAdAAYAEQABAAAA9AC8AC0ABgAeAAEA
AAACAbwADQAIACIAAQAAAA4BvAANAAkAJAABAAAAGAG8ACAACgAlAAAAAAAjAS8BDQAWADgAAAEQ
AHQBvABZABgAPAAxAAgCIAAxADECLQAxAFMCOgAxAHgCRwAhAFQDkAAGAAIB2wAGAA4B3wABAAQG
8wABAAQG8wABAJIGBwEBAJwGBwEBAGkIBwEBAHwIBwEBAIcIBwEBAKYIOgEBALMIPgEBAL0IQgEB
AMgIBwEBANAIBwEBAOYIRQEBAPAISQERAEcJTQERAHAJUQERAN0JbwERAOUJcwFQIAAAAAAGGLkB
EwABAFggAAAAAAYYuQETAAEAYCAAAAAAERj0ARcAAQCMIAAAAAATCPsBGwABAKQgAAAAABMIIQIo
AAEAvCAAAAAAEwhKAjUAAQDUIAAAAAATCGgCQgABAOwgAAAAAEYCrgJjAAEACCEAAAAARgK3AmgA
AgAcIQAAAACDAMgCbAACADQhAAAAAEYC0AJxAAIASCEAAAAAEQDZAngAAgBkIQAAAAABAPcCgAAD
AIAhAAAAAAYYuQETAAQAiCEAAAAAAwgLA4sABAC8IQAAAAAGGLkBEwAEANAhAAAAAAYYuQGvAAQA
4CEAAAAARgpgBLsACQD0IQAAAAAGCHcEwAAJAAAiAAAAAAYIigTFAAoAHCIAAAAABgieBMUACwAs
IgAAAAAGCKoExQAMAEgiAAAAAAYIvQTFAA0AWCIAAAAABgjJBMUADgB0IgAAAAAGCNwEwAAPAIAi
AAAAAAYI5gTFABAAnCIAAAAARgr3BLsAEQDUIgAAAACGAA8FygARAOwiAAAAAIYAFwXKABEABCMA
AAAABhi5ARMAEQAkIwAAAABGArgF4wARAFQjAAAAAEYD1wXtABUAaCMAAAAARgPqBe0AFgBsIwAA
AAAGGLkB9wAXAHwjAAAAAAYIeAb9ABgAqCMAAAAABhi5AfcAGAC4IwAAAAAGGLkBEwAZANgjAAAA
AEYC6gXtABkA2CQAAAAARgKjBhMAGgBoJQAAAABGAq4GEwAaAHwlAAAAAAYAugYKARoAcCYAAAAA
Bgh4BnEAGwCIJgAAAAAGCM4GwAAbAJQmAAAAAAYI4wZxABwArCYAAAAABgj1BsAAHAC4JgAAAAAG
CAcHcQAdANAmAAAAAAYIGQfAAB0A3CYAAAAAAQgrB7sAHgD8JgAAAAABAD4HwAAeACgnAAAAAAEA
UQcQAR8AeCcAAAAAAQBqBxUBIADkJwAAAAABAM8HGwEhAFQoAAAAAAEA/gcjASMA+CgAAAAAAQA9
CCoBJACsKQAAAAABAEsIMQElAJwqAAAAAAMYuQETACgApCoAAAAAFgh8CVUBKADgKgAAAAAWCJAJ
WgEoAPQqAAAAABYInAlfASgA/CoAAAAAERj0ARcAKQAQKwAAAAAGGLkBEwApABgrAAAAABYI8gl2
ASkAAAABALUCAAABAO4CAAABAO4CAAABADQEAAACAD4EAAADAEcEAAAEAE8EAAAFAFYEAAABAIQE
AAABAIQEAAABAIQEAAABAIQEAAABAIQEAAABAIQEAAABAIQEAAABAIQEAAABAMUFAAACAM0FAAAD
AE8EAAAEAFYEAAABAE8EAAABAAAGAAABADQEAAABADQEAAABAAAGAAABAMMGAAABAN0GAAABAN0G
AAABAN0GAAABAEkHAAABAF4HAAABAH0HAAABAN8HAAACAH0HAAABAAwIAAABAAwIAAABAN8HAAAC
AFsIAAADAGEIAAABAIQECQC5ARMAuQC5AYAByQC5AY8BEQC5ARMA0QC5ARMAJAC5ARMALAC5ARMA
NAC5ARMAPAC5ARMAJAALA4sALAALA4sANAALA4sAPAALA4sA2QC5ARMA4QC5ARMA6QC5AcAA8QBS
CykCGQCuAmMAGQC3AmgAKQBzCzYCGQDQAnEAAQGPC0YCGQC5ARMACQG5AVYCRABUA5AATADyCYsA
TAC5C9MCTAC5ARMAEQG5AcUAOQC5Aa8AOQD9C+0COQAGDPMCIQG5AcAAMQEPBcoAMQEXBcoAOQG5
AcUAWQC5ARMAQQC5DP8CQQHmDAUDSQEHDQsDUQEQDWgAQQE6DRIDWQEHDRgDYQFzDf0AOQCTDSQD
SQAHDSkDcQHQAi4DeQG0DTMDGQHCDToDiQDQDRMAiQDYDbsAgQHrDToDiQEBDj8DaQHQAnEAiQER
DhcAQQCjBhMAYQA2DlEDkQBIDlYDUQFzDloDoQEHDWADWQCfDmcDqQHGDm0DUQGTDWgAkQHYDmgA
sQHmDnMDQQCuBhMAkQD8DhMAyQG5AcAAoQFFDxMAUQFPD4IDwQGDD4gD0QEHDY4DuQHYDmgAwQGx
D5UDYQG+D8AAaQHWD3EAGQHiDwcBQQHoD64DQQAcELkD6QEyEL8D4QEHDcgD8QHyCVYD4QFREBMA
aQBYELsAGQFqENcDqQBvEFoBAQKoEN0DGQLAEHEAaQC5AcAAaQDIEHEAaQDTEHEAGQHcEPYDGQHj
EP4DIQL1EAQEcQAQEQsEGQIqEREEMQJBEXEAKQJPEY8BgQC5ARMAcQBxESEEmQB9ESYEgQCPESwE
SQLQDRMAOQKgESEEUQK5ASwEUQK6EXEAaQG5ATMEiQC5ASwEiQDEEcUAiQDiEUoEGQHjEF8EgQAR
EmYEWQK5AWwEWQIfEo8BaQI0EnMEaQJFEnEAGQHcEH0EaQG5AcAAcQJrEoMEGQHjEIgEeQK5ARMA
gQK5AcAAiQK5AUoEkQK5ARMAmQK5AcAAoQK5AcAAqQK5AcAAsQK5ARMAKQByE1MFoQC5AVkFsQC5
ARMAwQKHE3YFwQKNE3YFyQK5ARMA0QK5AfMC2QK5ARMA4QK5AcAA6QK5AcAA8QK5AcAA+QK5AcAA
AQO5AcAACQO5AcAAEQO5AcAAGQO5AcAAIQO5AcAAKQCDAOMBLgBzBE0GLgCLBE0GLgBrBC0GLgBD
BIkFLgBLBKgFLgBjBOICLgCDBOICLgA7BIAFLgB7BIoGLgBTBPAFLgBbBP0FLgDrAOICLgAjAScG
QAArAK4BQAATAIYBQwATAIYBQwAbAJUBSQCDAAECYwAbAJUBYwATAIYBaQCDAPQBgAArAK4BgwBz
AK4BgwAbAJUBgwB7AK4BiQCDABUCoAArAK4BowATAIYBowDDAF4CwAArAK4BwwATAIYBwwDrAOIC
4AArAK4B4wAjAeICAAETAIYBAAErAK4BAwEjAeICIAETAIYBIAErAK4BQAErAK4BQAETAIYBYAET
AIYBYAErAK4BYwEjAeICYwHTA5wEYwHbA6oEYwHLA64BgAErAK4BoAErAK4BwAErAK4BwAETAIYB
4AErAK4BAAIrAK4BAAITAIYBKQLrAwsFKQL7A/cEKQLzA+kESQLzA+kESQIDBK4BSQLrAzYFaQLz
A+kEaQLjA64BaQLrA8wEqQITAG0FyQITAG0F6QIzBK4BQAQjAeICgAQjAeICzwHUAdkB3gEuAjIC
PQJCAlECUQLZAugC+AIuAi4CHwNGA3kDnQNCAkICQgL4Ai4CzwPqAxcEOwRQBJAEYQVoBXsFBAAB
AAYABQAHAAYACQAQAAsAEQAMABUADQAXAAAA3QFPAAAAlgJUAAAARQJZAAAAogJeAAAAXgOYAAAA
IwXOAAAANgXTAAAAPwXXAAAATwXXAAAAVwXXAAAAZgXXAAAAbgXXAAAAfQXTAAAAgwXXAAAAkAXO
AAAAhwYCAQAAhwbTAAAA+wjTAAAACQnTAAAAFwnOAAAANwllAQAAqAlqAQAAhAR7AQIABAADAAIA
BQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAEAFQATAAEAFgAVAAEAFwAX
AAEAGAAZAAEAGQAbAAEAGgAdAAIAGwAfAAIAIwAhAAIAKgAjAAEAKwAjAAIALAAlAAEALQAlAAIA
LgAnAAEALwAnAAIAMAApAAIAOQArAAIAOgAtAAEAOwAtAAIAPgAvAHUAdQCIALMBugHBAcgBwALH
AgSAAAABAAAAAAAAAAAAAAAAALwAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoA
EwAAAAAAAQAAAAAAAAAAAAAAnQBqAwAAAAAMAAAAAAAAAAAAAACmAKgDAAAAAAwAAAAAAAAAAAAA
AKYA9gMAAAAADAAAAAAAAAAAAAAApgAUBgAAAAAEAAAAAAAAAAAAAAABAOYBAAAAAAEAAAAAAAAA
AAAAAJ0AmwcAAAAABAAAAAAAAAAAAAAAAQDnBwAAAAAMAAAAAAAAAAAAAACmAFMMAAAAAAAAAAAB
AAAArxMAAAUABAAGAAQAAAAQAAwA7AIAABAAGQDsAgAAAAAbAOwCLQBMAi0AzgIAAAAAADxNb2R1
bGU+AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENv
bXBvbmVudF82NDFjN2Y5NGNmMjE0MDNiOGU1ZDg3YjRlYWUzODE3Ni52YnByb2ouTXkATXlDb21w
dXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJ
bnB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfNjQxYzdmOTRjZjIxNDAzYjhlNWQ4N2I0ZWFlMzgx
NzYudmJwcm9qAFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4A
TXlSZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50XzY0MWM3Zjk0Y2YyMTQwM2I4ZTVkODdiNGVhZTM4
MTc2LnZicHJvai5NeS5SZXNvdXJjZXMATXlTZXR0aW5ncwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMu
QXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3Vh
bEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVy
AG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92
aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBt
X015V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVh
bHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9f
AFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0
LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0
AEdldEluc3RhbmNlAENvenlSb2MuU1NJU1BsdXMuMjAxNABDb3p5Um9jLlNxbFNlcnZlci5TU0lT
AFNjcmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQu
U3FsU2VydmVyLkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZl
ci5QaXBlbGluZUhvc3QAUGlwZWxpbmVCdWZmZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2Jq
ZWN0SUQASXNJbnB1dABCdWZmZXIAT3V0cHV0TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAc2V0
X1Jlc3VsdElkAFZhbHVlAHNldF9SZXN1bHRJZF9Jc051bGwAc2V0X1N1Y2Nlc3MAc2V0X1N1Y2Nl
c3NfSXNOdWxsAHNldF9DcmVhdGVkAHNldF9DcmVhdGVkX0lzTnVsbABzZXRfRXJyb3IAc2V0X0Vy
cm9yX0lzTnVsbABnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBOZXh0Um93AEVuZE9mUm93c2V0AFN0
YXRpY0lucHV0Q29sdW1ucwBSZXN1bHRJZABSZXN1bHRJZF9Jc051bGwAU3VjY2VzcwBTdWNjZXNz
X0lzTnVsbABDcmVhdGVkAENyZWF0ZWRfSXNOdWxsAEVycm9yAEVycm9yX0lzTnVsbABTdGF0aWNP
dXRwdXRDb2x1bW5zAFNjcmlwdENvbXBvbmVudFBsdXMAUHJvY2Vzc0lucHV0AElucHV0SUQASW5w
dXROYW1lAElucHV0X1Byb2Nlc3NJbnB1dABJbnB1dF9Qcm9jZXNzSW5wdXRSb3cAUm93AFBhcmVu
dENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1J1bnRpbWVXcmFwAE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBJRFRTQ29ubmVjdGlvbk1hbmFnZXIxMDAAZ2V0
X0Nvbm5lY3Rpb24AQ29ubmVjdGlvbgBKb2JVcmxfM1AAQnVsa05TAFByZUV4ZWN1dGUAUG9zdEV4
ZWN1dGUAVmFsaWRhdGUAZXJyTWVzc2FnZQBzZXRfQ29ubmVjdGlvbgB2YWx1ZQBnZXRfSm9iSWRW
YXJpYWJsZQBzZXRfSm9iSWRWYXJpYWJsZQBnZXRfQmF0Y2hJZENvbHVtbgBzZXRfQmF0Y2hJZENv
bHVtbgBnZXRfQ29ubmVjdGlvblR5cGUARmlyZUVycm9yXwBtZXNzYWdlAEdldFZhcmlhYmxlXwB2
YXJOYW1lAFVyaQBHZXRTZXJ2aWNlVmVyc2lvbl8AdXJsAFN5c3RlbS5OZXQASHR0cFdlYlJlcXVl
c3QAQ296eVJvYy5TZm9yY2UAQ296eVJvYy5TZm9yY2UuU2VydmljZQBTZm9yY2VTZXJ2aWNlAFBy
ZXBhcmVSZXF1ZXN0XwBzZXJ2aWNlAFN5c3RlbS5YbWwAWG1sRG9jdW1lbnQAR2V0WG1sUmVzdWx0
XwByZXEATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkZpbGVJTwBUZXh0RmllbGRQYXJzZXIAR2V0Q3N2
UmVzdWx0XwBHZXRCYXRjaFJlc3VsdF8Aam9iSWQAYmF0Y2hJZABtX3Nmb3JjZUNvbm5lY3Rpb24A
bV9qb2JJZFZhcgBtX2JhdGNoSWRDb2wASVNmb3JjZUNvbm5lY3Rpb24AbV9jb25uZWN0aW9uAG1f
c2VydmljZQBtX2JhdGNoSWR4AG1fam9iSWQAbV9iYXRjaElkAFdlYlJlc3BvbnNlAG1fcmVhZFJl
cwBtX2JhdGNoUmVzAEpvYklkVmFyaWFibGUAQmF0Y2hJZENvbHVtbgBDb25uZWN0aW9uVHlwZQBT
eXN0ZW0uUmVzb3VyY2VzAFJlc291cmNlTWFuYWdlcgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxpemF0
aW9uAEN1bHR1cmVJbmZvAF9yZXNDdWx0dXJlAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1bHR1
cmUAc2V0X0N1bHR1cmUAQ3VsdHVyZQBTeXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBsaWNhdGlvblNl
dHRpbmdzQmFzZQBtX1ZhbHVlAG1fU3luY09iamVjdABnZXRfVmFsdWUAU3lzdGVtLkNvbXBvbmVu
dE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBTeXN0
ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAFN5c3RlbS5EaWFnbm9z
dGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29tcGls
ZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0
ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhlbHBLZXl3b3JkQXR0cmlidXRlAFN5c3Rl
bS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGltZUhlbHBlcnMAR2V0T2JqZWN0VmFsdWUA
UnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAQWN0aXZhdG9yAENyZWF0ZUluc3Rh
bmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5J
bnRlcm9wU2VydmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBTdHJpbmcAc2V0X0l0ZW0AU2V0TnVs
bABJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAEJvb2xlYW4AU2NyaXB0QnVmZmVyAENMU0NvbXBs
aWFudEF0dHJpYnV0ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3Nv
ZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEw
MABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRD
b2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQASURUU1J1bnRpbWVDb25uZWN0
aW9uQ29sbGVjdGlvbjEwMABnZXRfUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uAElEVFNSdW50
aW1lQ29ubmVjdGlvbjEwMABnZXRfQ29ubmVjdGlvbk1hbmFnZXIARXhjZXB0aW9uAGdldF9CdWZm
ZXIAQ29udmVyc2lvbnMAT3BlcmF0b3JzAENvbXBhcmVTdHJpbmcASXNOdWxsT3JFbXB0eQBEaXNw
b3NlAFJlYWRGaWVsZHMAQ29udmVydABUb0Jvb2xlYW4AUHJvamVjdERhdGEAU2V0UHJvamVjdEVy
cm9yAENsZWFyUHJvamVjdEVycm9yAElEVFNJbnB1dENvbHVtbjEwMABBY3F1aXJlQ29ubmVjdGlv
bgBDb25uZWN0AEludDMyAElEVFNJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29s
dW1uQ29sbGVjdGlvbgBQaXBlbGluZUNvbXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVm
ZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5C
eUxpbmVhZ2VJRABDbG9zZQBJRFRTVmlydHVhbElucHV0Q29sdW1uMTAwAElEVFNWaXJ0dWFsSW5w
dXQxMDAAQXBwbGljYXRpb25FeGNlcHRpb24AUmVtb3ZlQWxsAEdldFZpcnR1YWxJbnB1dABJRFRT
VmlydHVhbElucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfVmlydHVhbElucHV0Q29sdW1uQ29s
bGVjdGlvbgBEVFNVc2FnZVR5cGUAU2V0VXNhZ2VUeXBlAHNldF9Db25uZWN0aW9uTWFuYWdlcklE
AGdldF9NZXNzYWdlAEVtcHR5AEZpcmVFcnJvcgBJRFRTVmFyaWFibGVzMTAwAElEVFNWYXJpYWJs
ZURpc3BlbnNlcjEwMABnZXRfVmFyaWFibGVEaXNwZW5zZXIATG9ja09uZUZvclJlYWQASURUU1Zh
cmlhYmxlMTAwAFVubG9jawBnZXRfU2VnbWVudHMAQ2hhcgBUcmltAGdldF9JbnZhcmlhbnRDdWx0
dXJlAERvdWJsZQBOdW1iZXJTdHlsZXMASUZvcm1hdFByb3ZpZGVyAFRyeVBhcnNlAF9TZm9yY2VT
ZXJ2aWNlAGdldF9VcmwAZ2V0X1NjaGVtZQBnZXRfSG9zdABGb3JtYXQAQ29uY2F0AFdlYlJlcXVl
c3QAQ3JlYXRlAFdlYkhlYWRlckNvbGxlY3Rpb24AZ2V0X0hlYWRlcnMAU2Vzc2lvbkhlYWRlcgBn
ZXRfU2Vzc2lvbkhlYWRlclZhbHVlAGdldF9zZXNzaW9uSWQAQWRkAFdlYkV4Y2VwdGlvbgBTeXN0
ZW0uSU8AU3RyZWFtAEdldFJlc3BvbnNlAEdldFJlc3BvbnNlU3RyZWFtAExvYWQASURpc3Bvc2Fi
bGUAZ2V0X1Jlc3BvbnNlAFN0cmVhbVJlYWRlcgBSZWFkVG9FbmQAc2V0X0hhc0ZpZWxkc0VuY2xv
c2VkSW5RdW90ZXMAU2V0RGVsaW1pdGVycwBYbWxOYW1lc3BhY2VNYW5hZ2VyAFhtbE5hbWVUYWJs
ZQBnZXRfTmFtZVRhYmxlAEFkZE5hbWVzcGFjZQBYbWxOb2RlAFNlbGVjdFNpbmdsZU5vZGUAZ2V0
X0lubmVyVGV4dABTeXN0ZW0uVGhyZWFkaW5nAFRocmVhZABTbGVlcABTU0lTU2NyaXB0Q29tcG9u
ZW50RW50cnlQb2ludEF0dHJpYnV0ZQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMA
VmFsaWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAElucHV0
VmlydHVhbENvbHVtbkF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBDYXRlZ29yeUF0dHJp
YnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAFZhcmlhYmxlQXR0cmlidXRlAFN5c3RlbS5SZWZsZWN0
aW9uAEFzc2VtYmx5AGdldF9Bc3NlbWJseQBNb25pdG9yAEVudGVyAEV4aXQARGVidWdnZXJOb25V
c2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfNjQxYzdmOTRjZjIxNDAzYjhlNWQ4N2I0
ZWFlMzgxNzYudmJwcm9qLlJlc291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRpb25SZWxheGF0aW9u
c0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5W
ZXJzaW9uaW5nAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0
cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1dGUAQXNzZW1ibHlD
b3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0cmlidXRlAEFzc2VtYmx5Q29tcGFu
eUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRy
aWJ1dGUAU2NyaXB0Q29tcG9uZW50XzY0MWM3Zjk0Y2YyMTQwM2I4ZTVkODdiNGVhZTM4MTc2LnZi
cHJvai5kbGwAAACAm0kAcwBOAHUAbABsACAAcAByAG8AcABlAHIAdAB5ACAAYwBhAG4AbgBvAHQA
IABiAGUAIABzAGUAdAAgAHQAbwAgAEYAYQBsAHMAZQAuACAAQQBzAHMAaQBnAG4AIABhACAAdgBh
AGwAdQBlACAAdABvACAAdABoAGUAIABjAG8AbAB1AG0AbgAgAGkAbgBzAHQAZQBhAGQALgAAEVIA
ZQBzAHUAbAB0AEkAZAAAD1MAdQBjAGMAZQBzAHMAAA9DAHIAZQBhAHQAZQBkAAALRQByAHIAbwBy
AAALSQBuAHAAdQB0AAAVQwBvAG4AbgBlAGMAdABpAG8AbgAAQ3sAMAB9ADoALwAvAHsAMQB9AC8A
cwBlAHIAdgBpAGMAZQBzAC8AYQBzAHkAbgBjAC8AewAyAH0ALwBqAG8AYgAvAABdaAB0AHQAcAA6
AC8ALwB3AHcAdwAuAGYAbwByAGMAZQAuAGMAbwBtAC8AMgAwADAAOQAvADAANgAvAGEAcwB5AG4A
YwBhAHAAaQAvAGQAYQB0AGEAbABvAGEAZAAAO1MAZQBsAGUAYwB0ACAAUwBhAGwAZQBzAGYAbwBy
AGMAZQAgAGMAbwBuAG4AZQBjAHQAaQBvAG4ALgAAL1MAZQBsAGUAYwB0ACAAagBvAGIAIABpAGQA
IAB2AGEAcgBpAGEAYgBsAGUALgAAL1MAZQBsAGUAYwB0ACAAYgBhAHQAYwBoACAAaQBkACAAYwBv
AGwAdQBtAG4ALgAADVMARgBPAFIAQwBFAAAtUwBhAGwAZQBzAGYAbwByAGMAZQAgAEIAdQBsAGsA
IABSAGUAcwB1AGwAdAAAHVgALQBTAEYARABDAC0AUwBlAHMAcwBpAG8AbgABAywAAA8vAGIAYQB0
AGMAaAAvAAAFYgBsAAAtLwBiAGwAOgBiAGEAdABjAGgASQBuAGYAbwAvAGIAbAA6AHMAdABhAHQA
ZQAAE0MAbwBtAHAAbABlAHQAZQBkAAAVSQBuAFAAcgBvAGcAcgBlAHMAcwAADVEAdQBlAHUAZQBk
AAANRgBhAGkAbABlAGQAABtOAG8AdAAgAFAAcgBvAGMAZQBzAHMAZQBkAAA9JwB7ADAAfQAnACAA
YgBhAHQAYwBoACAAZgBhAGkAbABlAGQAIABvAHIAIABhAGIAbwByAHQAZQBkAC4AAQ8vAHIAZQBz
AHUAbAB0AAAxTQB5AC4AUgBlAHMAbwB1AHIAYwBlAHMALgBNAHkAUgBlAHMAbwB1AHIAYwBlAHMA
AGAyN/jp6TVIuzZhUah4rYcACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIM
BAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgA
EhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQo
ABMACBbPSQu4DDTqCImEXc2AgMyRCyAFARIhCAISJRIpBCAAHQ4EIAEBDgQgAQECAyAAAgQoAB0O
AygADgMoAAIDBhIkAwYSKAkgBAEIDhIlEikFIAEBEhwDBhIhBSABARIhBCAAEjEEKAASMQIGDgUg
AQIQDgQgARwOBSABDRI1ByACEjkSPQ4GIAESQRI5BiABEkUSOQggAxJFEj0ODgMGEkkDBhI9AgYI
AwYSTQMGEkUDBhJRAwYSVQQAABJRBAAAElUFAAEBElUECAASUQQIABJVAwYSNAIGHAQAABI0BAgA
EjQFIAEBEWEIAQABAAAAAAAFIAIBDg4YAQAKTXlUZW1wbGF0ZQgxMC4wLjAuMAAABAEAAAAGFRIY
ARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29tcHV0
ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuQXBwbGljYXRpb24AABMBAA5NeS5XZWJTZXJ2aWNlcwAA
BAABHBwDBwECAwcBCAYAARIVEX0EBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0
U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVh
dGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAF
IAEBEwAIBwMTABMAEwAFAQAAAAAEBwEdDgUgAgEIHAQgAQEIBgcCHQ4dDgUgABKAoQUgABKApQYg
ARKAqRwFIAASgK0GIAESgLEcBAcBEjEEIAASJQQgARwIBAABDhwGAAMIDg4CBAABAg4GAAEBEoC1
CgcEDh0OEoC1EhwEIAEcHAMgABwFIAASgNEGIAESgMkcBSAAEoDVBSAAEoDZBSACCAgICAcCEoCp
EoDJBSAAEoDhBSAAEoDpBiABEoDdHAcgAggIEYDtEAcGAgISgKkSgN0SgOESgLUKIAYBCA4ODggQ
AgUgABKA9QggAgEOEBKA8QYgARKA+RwHBwMcHBKA8QUgAQ4dAwwABAIOEYEFEoEJEA0LBwcNDR0O
CAgOHQMHAAQODhwcHAUAAg4ODgYAARKBEQ4FIAASgRUFIAASgRkJBwQOEjkSORI1BCAAEk0FIAAS
gSEGIAEBEoEhByACAQ4SgLUOBwUSQRJBEk0SgR0SgSEFIAEBHQ4OBwUSRRJFEoEdEoEhHQ4GAAMO
Dg4OBSAAEoExBiABARKBMQkgAhKBNQ4SgS0FAAIODhwEAAEBCAcABA4ODg4OCwcFEkUSQRKBLQ4O
DQEACFZhbGlkYXRlAAAhAQACAAAACkNvbm5lY3Rpb24NSm9iSWRWYXJpYWJsZQAAHAEAF1NlbGVj
dCBiYXRjaCBpZCBjb2x1bW4uAAANAQAIU2V0dGluZ3MAABMBAA5Db25uZWN0aW9uVHlwZQAAKgEA
JVNlbGVjdCBTYWxlc2ZvcmNlIENvbm5lY3Rpb24gTWFuYWdlci4AABwBABdTZWxlY3Qgam9iIGlk
IHZhcmlhYmxlLgAABSAAEoFdByACAQ4SgV0GBwISURJRBAcBElUIAQACAAAAAAAEAAEBHAQHARI0
CAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAUcBABouTkVURnJhbWV3b3Jr
LFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5hbWUQLk5FVCBGcmFtZXdvcmsgNAwB
AAcxLjAuMC4wAAApAQAkZjg2NDkzM2UtMTI1Yi00ZjhmLWI0MmUtNDU5MzMxMmY3MDY4AAAFAQAB
AAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIwMTQAADwBADdTY3JpcHRDb21wb25lbnRfNjQx
YzdmOTRjZjIxNDAzYjhlNWQ4N2I0ZWFlMzgxNzYudmJwcm9qAAAOAQAJTWljcm9zb2Z0AAAAAAC4
XAAAAAAAAAAAAADOXAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwFwAAAAAAAAAAF9Db3JEbGxN
YWluAG1zY29yZWUuZGxsAAAAAAD/JQAgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAAAAAAAAAA
AAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAABoBAAAAAAAAAAAAABo
BDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAAAAEAAAAAAAAA
AQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBu
AGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAEyAMAAAEAUwB0AHIA
aQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMAAAEAMAAwADAAMAAwADQAYgAwAAAANAAKAAEAQwBv
AG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkAYwByAG8AcwBvAGYAdAAAAJgAOAABAEYAaQBsAGUA
RABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABf
ADYANAAxAGMANwBmADkANABjAGYAMgAxADQAMAAzAGIAOABlADUAZAA4ADcAYgA0AGUAYQBlADMA
OAAxADcANgAuAHYAYgBwAHIAbwBqAAAAMAAIAAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAx
AC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQAZQByAG4AYQBsAE4AYQBtAGUAAABTAGMAcgBpAHAA
dABDAG8AbQBwAG8AbgBlAG4AdABfADYANAAxAGMANwBmADkANABjAGYAMgAxADQAMAAzAGIAOABl
ADUAZAA4ADcAYgA0AGUAYQBlADMAOAAxADcANgAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAABcABsA
AQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAABDAG8AcAB5AHIAaQBnAGgAdAAgAEAAIABN
AGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADQAAAAAAKAAPAABAE8AcgBpAGcAaQBuAGEAbABGAGkA
bABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADYANAAxAGMANwBm
ADkANABjAGYAMgAxADQAMAAzAGIAOABlADUAZAA4ADcAYgA0AGUAYQBlADMAOAAxADcANgAuAHYA
YgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMAYwBy
AGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8ANgA0ADEAYwA3AGYAOQA0AGMAZgAyADEANAAwADMA
YgA4AGUANQBkADgANwBiADQAZQBhAGUAMwA4ADEANwA2AC4AdgBiAHAAcgBvAGoAAAA0AAgAAQBQ
AHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMA
ZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAA4DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="33" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="35" 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_641c7f94cf21403b8e5d87b4eae38176</property><property id="36" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="38" name="Connection" connectionManagerID="{8038A7FF-3CE2-4C82-B4DC-EDBCAB59445F}" /></connections><inputs><input id="39" name="Input" hasSideEffects="true"></input></inputs><outputs><output id="41" name="Output" synchronousInputId="39"><outputColumns><outputColumn id="42" name="ResultId" lineageId="42" length="50" dataType="wstr" /><outputColumn id="43" name="Success" lineageId="43" dataType="bool" /><outputColumn id="44" name="Created" lineageId="44" dataType="bool" /><outputColumn id="45" name="Error" lineageId="45" length="500" dataType="wstr" /></outputColumns><externalMetadataColumns /></output></outputs></component>