<component id="1" name="Dynamics CRM Convert" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Includes and runs custom script code. For example, apply a business rule that limits the range of valid values in an &quot;income&quot; column or add values in two columns and calculate the average of the sum." localeId="1033" version="7" contactInfo="Includes and runs custom script code. For example, apply a business rule that limits the range of valid values in an &quot;income&quot; column or add values in two columns and calculate the average of the sum.;Microsoft Corporation; Microsoft SQL Server; Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;7"><properties><property id="5" 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[SC_363a6908e1e243ff95805203e25f8037.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{F487BBC5-F449-4C9B-ABDA-A69C59FAFB46}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>SC_363a6908e1e243ff95805203e25f8037</RootNamespace>
    <AssemblyName>SC_363a6908e1e243ff95805203e25f8037</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.Dynamics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.Dynamics.dll</HintPath>
    </Reference>
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=11.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=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Compile Include="main.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <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>
  </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;vstadebugb6cfa54c-b7d5-4eb5-947e-8ce21b74c659/3b8280f8-9c02-48b0-bb45-a2a35a6a54cd&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><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("SC_363a6908e1e243ff95805203e25f8037")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("")> 
<Assembly: AssemblyProduct("SC_363a6908e1e243ff95805203e25f8037")> 
<Assembly: AssemblyCopyright("Copyright @  2016")> 
<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("1832e3a5-942b-45f3-b6f7-e778dd619bf4")> 

' 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 CrmConnection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").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-2016 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.Web.Services.Protocols

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CozyRoc.Dynamics.Crm
Imports CozyRoc.Dynamics.Crm2011.OrganizationService


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute()> _
<CLSCompliant(False)> _
<ValidateProperties("Validate")> _
<ColumnMappings()> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim req As New OrganizationRequest

            Dim type As String = Convert.ToString(GetBufferValue_(Row.Buffer, m_typeIndex))
            Select Case type.ToLower()
                Case "opportunity"
                    ' https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.generatequotefromopportunityrequest.aspx?f=255&MSPPError=-2147217396
                    req.RequestName = "GenerateQuoteFromOpportunity"
                    req("OpportunityId") = New Guid(Convert.ToString(Row.Buffer(m_idIndex)))

                Case "salesorder"
                    ' https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.convertsalesordertoinvoicerequest.aspx
                    req.RequestName = "ConvertSalesOrderToInvoice"
                    req("SalesOrderId") = New Guid(Convert.ToString(Row.Buffer(m_idIndex)))

                Case "team"
                    ' https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.convertownerteamtoaccessteamrequest.aspx
                    req.RequestName = "ConvertOwnerTeamToAccessTeam"
                    req("TeamId") = New Guid(Convert.ToString(Row.Buffer(m_idIndex)))

                Case Else
                    Throw New Exception(String.Format("Unhandled convert type: {0}", type))
            End Select

            ' Execute action.
            Dim res As OrganizationResponse = m_service.Execute(req)
            Dim entity As Entity = CType(res("Entity"), Entity)
            If Not entity Is Nothing Then
                Row.OutputId = entity.Id
            End If
        Catch ex As SoapException
            Call FireError_(ex.Detail.InnerXml)
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' Input_ProcessInputRow


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PreExecute()
        Call MyBase.PreExecute()

        ' Setup CRM service.
        m_connection = CType( _
            Me.Connections.CrmConnection.AcquireConnection(Nothing),  _
            IConnection)
        Call m_connection.Connect()

        m_service = CType(m_connection.GetService(0), OrganizationServiceClient)   ' 0 - CRM Service

        ' Get input column indexes.
        m_typeIndex = GetColumnIndex_("Type")
        m_idIndex = GetColumnIndex_("InputId")
    End Sub ' PreExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PostExecute()
        Call MyBase.PostExecute()

        Call m_connection.Close()
        m_typeIndex = -1
        m_idIndex = -1
    End Sub ' PostExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean

        Try
            If String.IsNullOrEmpty(Me.CrmConnection) Then
                Throw New Exception("Select Dynamics CRM Connection.")
            End If

            Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
            If input.IsAttached Then
                Dim inputCol As IDTSInputColumn100 = Nothing

                inputCol = GetInputColumn_("Type")
                If inputCol Is Nothing Then
                    Throw New Exception("Type column is not mapped.")
                End If

                inputCol = GetInputColumn_("InputId")
                If inputCol Is Nothing Then
                    Throw New Exception("InputId column is not mapped.")
                End If
            End If

            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.
            Me.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManagerID = Me.CrmConnection

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub ReinitializeMetaData()
        Call MyBase.ReinitializeMetaData()

        If MyBase.ComponentMetaData.InputCollection.Count = 0 Then
            ' At least one input must exist.
            Throw New Exception("No inputs.")
        End If

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)

        ' Cleanup.
        input.ExternalMetadataColumnCollection.IsUsed = True
        Call input.InputColumnCollection.RemoveAll()
        Call input.ExternalMetadataColumnCollection.RemoveAll()

        Dim column As IDTSExternalMetadataColumn100

        ' Setup Type column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "Type"
        column.DataType = DataType.DT_WSTR
        column.Length = 10

        ' Setup InputId column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "InputId"
        column.DataType = DataType.DT_GUID
    End Sub ' ReinitializeMetaData


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select Dynamics CRM Connection Manager.")> _
    <Connection("CrmConnectionType")> _
    Public Property CrmConnection() As String
        Get
            CrmConnection = m_crmConnection
        End Get
        Set(ByVal value As String)
            m_crmConnection = value
        End Set
    End Property    ' CrmConnection
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property CrmConnectionType() As String()
        Get
            CrmConnectionType = New String() {"DYNAMICS-CRM"}
        End Get
    End Property    ' CrmConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Dynamics CRM Convert", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetInputColumn_(ByVal externalName As String) As IDTSInputColumn100
        Dim result As IDTSInputColumn100 = Nothing
        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim extColumn As IDTSExternalMetadataColumn100 = input.ExternalMetadataColumnCollection(externalName)

        ' Find input column for specified external column.
        For Each inputCol As IDTSInputColumn100 In input.InputColumnCollection
            If inputCol.ExternalMetadataColumnID = extColumn.ID Then
                ' Found input column.
                result = inputCol
                Exit For
            End If
        Next

        GetInputColumn_ = result
    End Function    ' GetInputColumn_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetColumnIndex_(ByVal externalName As String) As Integer
        Dim result As Integer = -1

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim inputCol As IDTSInputColumn100 = GetInputColumn_(externalName)
        If Not inputCol Is Nothing Then
            result = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)
        End If

        GetColumnIndex_ = result
    End Function    ' GetColumnIndex_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetBufferValue_( _
        ByVal buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer, _
        ByVal index As Integer) As Object

        Dim result As Object = Nothing

        If index <> -1 AndAlso Not buffer.IsNull(index) Then
            result = buffer(index)
        End If

        GetBufferValue_ = result
    End Function    ' GetBufferValue_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String

    Private m_connection As IConnection
    Private m_service As OrganizationServiceClient
    Private m_idIndex As Integer
    Private m_typeIndex As Integer
#End Region ' Attributes

End Class   ' ScriptMain
]]></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[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 [OutputId]() As Guid
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [OutputId_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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"OutputId"}
        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[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="3.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:CodeName>SC_363a6908e1e243ff95805203e25f8037</msb:CodeName>
		<msb:DisplayName>SC_363a6908e1e243ff95805203e25f8037</msb:DisplayName>
		<msb:Language>msBuild</msb:Language>
		<msb:ProjectId>{F46885E6-823A-45ED-A42F-7DD6EDA558AE}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="SC_363a6908e1e243ff95805203e25f8037.vbproj"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
	</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="6" 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[SC_363a6908e1e243ff95805203e25f8037.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
KgAAAB4CKBcAAAoqEzACAC0AAAAaAAARfg8AAAQtIHJqAwBw0AwAAAIoFAAACm9oAAAKc2kAAAoL
B4APAAAEfg8AAAQqAAAAEzABAAYAAAAbAAARfhAAAAQqAAAeAoAQAAAEKkJzFwAACigRAAAKgBIA
AAQqAAAAHgIoagAACiobMAEAPwAAABwAABF+EQAABC0yfhIAAAQoEQAACihrAAAKfhEAAAQtHHMx
AAAGgBEAAATeEH4SAAAEKBEAAAoobAAACtx+EQAABCoAARAAAAIAHQAMKQAQAAAAALQAAADOyu++
AQAAAJEAAABsU3lzdGVtLlJlc291cmNlcy5SZXNvdXJjZVJlYWRlciwgbXNjb3JsaWIsIFZlcnNp
b249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRl
MDg5I1N5c3RlbS5SZXNvdXJjZXMuUnVudGltZVJlc291cmNlU2V0AgAAAAAAAAAAAAAAUEFEUEFE
ULQAAABCU0pCAQABAAAAAAAMAAAAdjQuMC4zMDMxOQAAAAAFAGwAAABoDQAAI34AANQNAAD4EQAA
I1N0cmluZ3MAAAAAzB8AAJwDAAAjVVMAaCMAABAAAAAjR1VJRAAAAHgjAABkBQAAI0Jsb2IAAAAA
AAAAAgAAAVcVogkJDwAAAPolMwAWAAABAAAATgAAAA0AAAASAAAAMgAAABsAAAB4AAAAPgAAABwA
AAAHAAAADwAAABEAAAAJAAAAAQAAAAwAAAABAAAAAgAAAAMAAAACAAAAAADNEQEAAAAAAAoAbQFD
AQoAoQGDAQYAsQGqAQoACQJDAQYAhwKqAQoACQPfAg4AWwNEAxIAqgOJAxYA2wOJAxIA6gOJAwYA
OwSqAQ4A0wREAxoAjgVmBR4AlQZsBg4AFwcCByIAbgdBBwYAywe6BwYA+AfjByYAWQhECCYApgiQ
CCYAvwiQCCYA7AjUCAYAFgkDCQoAVQkuCQoAbQkTACYAogmFCQYA1wm3CQYA9QmqAQYAGQqqAQoA
MgoTAAYAdgpXCgYAigqqAQYAogqqARIAvAqJAwYAyQqqAR4A3wpsBh4ADgtsBh4AOQtsBh4AVgts
Bh4AmQtsBiIAyAtBByIAzwtBByIA4wtBByoAKgwMDAYAOAyqAQYATQyqAQoAXQwuCS4AOwSqAQoA
mwwuCTIAwgy3DAYAOQ2qAR4AZg1sBh4Ajg1sBh4A5g1sBhoANA5mBQYAeA5lDgYAxA6qARYA2A6J
Ax4A/A5sBg4AcA9ODw4AiA9ODxIApA+JAw4Ayw9ODyYA3w+QCAYABhD0DwYALRAcEAYAQBADCQYA
lRC3CQYAtRC3CQYA7RDTEAYABhH0DwYAIxFXCgYAMRH0DwYATBH0DwYAZxH0DwYAgBH0DwYAmRH0
DwYAthH0DwAAAAABAAAAAAABAAEAAAAAACkANwAFAAEAAQAAAAAAXgA3AAkAAQACAAABEABpADcA
DQABAAMABQEAAHMAAAANAAUACAAFAQAAgQAAAA0ABQAPAAEAAACcAKgAHQAGABEAAQAAAMwAqAAx
AAYAGAABAAAA2gCoAA0ACAAcAAEAAADmAKgADQAJAB4AAQAAAPAAqAAgAAoAHwAAAAAA+wAHAQ0A
DwAsAAABEAA4AagATQARADAAMQDMASAAMQD1AS0AMQAXAjoAMQA8AkcAIQAYA5AABgDaAN0ABgDm
AOEAAQAzBfUAAQAzBfUAAQDyBiYBAQAjBykBAQCIBy0BAQCSBzEBAQCcBzEBEQDbBzgBEQAECDwB
EQBxCFoBEQB5CF4BUCAAAAAABhh9ARMAAQBYIAAAAAAGGH0BEwABAGAgAAAAABEYuAEXAAEAjCAA
AAAAEwi/ARsAAQCkIAAAAAATCOUBKAABALwgAAAAABMIDgI1AAEA1CAAAAAAEwgsAkIAAQDsIAAA
AABGAnICYwABAAghAAAAAEYCewJoAAIAHCEAAAAAgwCMAmwAAgA0IQAAAABGApQCcQACAEghAAAA
ABEAnQJ4AAIAZCEAAAAAAQC7AoAAAwCAIQAAAAAGGH0BEwAEAIghAAAAAAMIzwKLAAQAvCEAAAAA
Bhh9ARMABADQIQAAAAAGGH0BrwAEAOAhAAAAAEYKJAS7AAkA9CEAAAAABghABMAACQAEIgAAAAAG
CFMExgAKACAiAAAAAEYKZwS7AAsAQCIAAAAAhgB/BMsACwBYIgAAAACGAIcEywALAHAiAAAAAAYY
fQETAAsAkCIAAAAARgLnBOUACwDAIgAAAABGAwYF7wAPANQiAAAAAEYDGQXvABAA2CIAAAAABhh9
AfkAEQDoIgAAAAAGCKcF/wASABQjAAAAAAYYfQH5ABIAJCMAAAAABhh9ARMAEwAsIwAAAABGAhkF
7wATAAwlAAAAAEYCxwUTABQAgCUAAAAARgLSBRMAFACkJQAAAAAGAN4FCQEUAHAmAAAAAEYC8gUT
ABUAJCcAAAAABginBXEAFQA8JwAAAAAGCAcGDwEVAEgnAAAAAAEIHwa7ABYAaCcAAAAAAQA1Bg8B
FgCUJwAAAAABAKgGFAEXACwoAAAAAAEAxQYaARgAgCgAAAAAAQDVBh8BGQC0KAAAAAADGH0BEwAb
ALwoAAAAABYIEAhAARsA+CgAAAAAFggkCEUBGwAMKQAAAAAWCDAISgEbABQpAAAAABEYuAEXABwA
KCkAAAAABhh9ARMAHAAwKQAAAAAWCIYIYQEcAAAAAQB5AgAAAQCyAgAAAQCyAgAAAQD4AwAAAgAC
BAAAAwALBAAABAATBAAABQAaBAAAAQBNBAAAAQBNBAAAAQD0BAAAAgD8BAAAAwATBAAABAAaBAAA
AQATBAAAAQAvBQAAAQD4AwAAAQD4AwAAAQAvBQAAAQDnBQAAAQAZBgAAAQBABgAAAQC4BgAAAQC4
BgAAAQDlBgAAAgDsBgAAAQBNBAkAfQETAKEAfQFrAbEAfQF6AREAfQETALkAfQETACQAfQETACwA
fQETADQAfQETADwAfQETACQAzwKLACwAzwKLADQAzwKLADwAzwKLAMEAfQETAMkAfQETANEAfQEP
AdkA5gkUAhkAcgJjABkAewJoACkABwohAhkAlAJxAOkAIwoxAhkAfQETAPEAfQFBAkQAGAOQAEwA
hgiLAEwATQq+AkwAfQETAPkAfQHGADkAfQGvADkAkQrYAjkAmgreAgkBfQEPAREBfwTLABEBhwTL
ABkBfQHGAGEAfQETAEEA+ArqAiEBJQvwAikBRgv2AjEBTwtoACEBeQv9AjkBRgsDA0EBsgv/AFEB
fQETADkAQgwPA3EBlAIUAwEBVQxxAHkBZwwZA1EBdQwPAUkARgsgA1kAfQEPAVEBkQolAwEBhQwr
A2kBfQEPAYEAjAwxA1kBRgs6A0kBlAw/A4kBpwxFA2EBygxMA5EB1QxxAIkB4gwXAGkB9AxxAEEA
xwUTAGkAAA1qA3kAEg0TAHkAGg0gA0EA0gUTAHkAJQ0TAAEBKw1vAzEBPw3LAEEBTg0PAWEA8gUT
ACkBhA1oADEBtg2BA6kB2w3GADEBAw6HA7EBHQ4TAKkBHQ4TAKkBJw6NA6EBKw4PAaEBPQ6TA6EB
Sg7eAgEBVQ4mASEBWw6jA6kBRguuA7EBhA61A8EBkg67A3EAng5oAKEBTwtoAMEBuw7LAMkB0A4T
AGEA6g7RA9EBEQ/XAzEBQgxoAHEAIw9oANkBMQ/dA0kARw/tA+EBfQETAOkBfQEPAfEBfQETAPkB
fQEPAQECfQEPASkADxBJBIkAfQFPBJkAfQETABECNRBsBBECOxBsBBkCfQETACECfQHeAikCfQET
ADECfQEPATkCfQEPAUECfQEPAUkCfQEPAVECfQEPAVkCfQEPAWECfQEPAWkCfQEPAXECfQEPASkA
gwDOAS4AswPNAi4AqwM6BS4AgwOeBC4AowMjBS4AuwPNAi4AwwM6BS4AcwN2BC4AewN/BC4AiwPm
BC4AkwPzBC4A6wDNAi4AIwEdBS4AmwPNAkAAKwCZAUAAEwBxAUMAEwBxAUMAGwCAAUkAgwAAAmMA
GwCAAWMAEwBxAWkAgwDfAYAAKwCZAYMAcwCZAYMAGwCAAYMAewCZAYkAgwDsAaAAKwCZAaMAEwBx
AaMAwwBJAsAAKwCZAcMA6wDNAsMAEwBxAeAAKwCZAeMAIwHNAgABKwCZAQABEwBxAQMBIwHNAiAB
EwBxASABKwCZAUABKwCZAUABEwBxAWABKwCZAWABEwBxAWMBKwOZAWMBIwP3A2MBGwOZAWMBIwHN
AmkBMwMFBGkBOwMcBIABKwCZAaABKwCZAakBEwBjBMABKwCZAcABEwBxAckBEwBjBOABKwCZAekB
awOZAQACEwBxAQACKwCZAYADIwHNAsADIwHNAroBvwHEAckBGQIdAigCLQI8AjwCxALTAuMCGQIZ
AgoDUgN0A5oDLQLjAhkCvwPjA/IDVwReBHEEBAABAAYABQAHAAYACQAKAAsACwAMAA0ADQAPAAAA
oQFPAAAAWgJUAAAACQJZAAAAZgJeAAAAIgOYAAAAkwTPAAAApgTUAAAArwTZAAAAvwTPAAAAuQUE
AQAAuQU0AQAAqAfPAAAAywdQAQAAPAhVAQAATQRmAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIA
DwALAAIAEgANAAEAEwAPAAEAFAARAAIAFQATAAIAHQAVAAIAJQAXAAEAJgAXAAIAJwAZAAIALQAb
AAIALgAdAAEALwAdAAIAMgAfAHUAdQCIAJ4BpQGsAbMBqwKyAgSAAAABAAAAAAAAAAAAAAAAAKgA
AAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQAu
AwAAAAALAAAAAAAAAAAAAACmAGwDAAAAAAsAAAAAAAAAAAAAAKYAugMAAAAACwAAAAAAAAAAAAAA
pgBDBQAAAAALAAAAAAAAAAAAAACmAEgGAAAAAAEAAAAAAAAAAAAAAJ0AMAcAAAAABAAAAAAAAAAA
AAAAAQCqAQAAAAAEAAAAAAAAAAAAAAAKAPgLAAAAAAIAAAAAAAAAAAAAAAEACgAAAAAABAAAAAAA
AAAAAAAAAQC3DAAAAAAAAAAAAQAAAF0QAAAFAAQABgAEAAAAEAAMALACAAAQABkAsAIAAAAAGwCw
Ai0ANwItALkCAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBw
bGljYXRpb24AU0NfMzYzYTY5MDhlMWUyNDNmZjk1ODA1MjAzZTI1ZjgwMzcuTXkATXlDb21wdXRl
cgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1
dEJ1ZmZlcgBTQ18zNjNhNjkwOGUxZTI0M2ZmOTU4MDUyMDNlMjVmODAzNwBVc2VyQ29tcG9uZW50
AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNDXzM2M2E2OTA4
ZTFlMjQzZmY5NTgwNTIwM2UyNWY4MDM3Lk15LlJlc291cmNlcwBNeVNldHRpbmdzAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3Rv
cgBnZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBt
X0FwcE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0
X1dlYlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdl
YlNlcnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVh
dGVfX0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0
YW5jZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFs
dWVgMQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDEyAENvenlSb2Mu
U3FsU2VydmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2Ny
aXB0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNy
b3NvZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFw
AENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lu
cHV0Q29sdW1ucwBHdWlkAHNldF9PdXRwdXRJZABWYWx1ZQBzZXRfT3V0cHV0SWRfSXNOdWxsAGdl
dF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5leHRSb3cARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1
bW5zAE91dHB1dElkAE91dHB1dElkX0lzTnVsbABTdGF0aWNPdXRwdXRDb2x1bW5zAFNjcmlwdENv
bXBvbmVudFBsdXMAUHJvY2Vzc0lucHV0AElucHV0SUQASW5wdXROYW1lAElucHV0X1Byb2Nlc3NJ
bnB1dABJbnB1dF9Qcm9jZXNzSW5wdXRSb3cAUm93AFBhcmVudENvbXBvbmVudABNaWNyb3NvZnQu
U3FsU2VydmVyLkRUU1J1bnRpbWVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUu
V3JhcHBlcgBJRFRTQ29ubmVjdGlvbk1hbmFnZXIxMDAAZ2V0X0NybUNvbm5lY3Rpb24AQ3JtQ29u
bmVjdGlvbgBQcmVFeGVjdXRlAFBvc3RFeGVjdXRlAFZhbGlkYXRlAGVyck1lc3NhZ2UAUmVpbml0
aWFsaXplTWV0YURhdGEAc2V0X0NybUNvbm5lY3Rpb24AdmFsdWUAZ2V0X0NybUNvbm5lY3Rpb25U
eXBlAEZpcmVFcnJvcl8AbWVzc2FnZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3Jh
cABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNJbnB1dENvbHVt
bjEwMABHZXRJbnB1dENvbHVtbl8AZXh0ZXJuYWxOYW1lAEdldENvbHVtbkluZGV4XwBHZXRCdWZm
ZXJWYWx1ZV8AYnVmZmVyAGluZGV4AG1fY3JtQ29ubmVjdGlvbgBDb3p5Um9jLkR5bmFtaWNzLkNy
bQBJQ29ubmVjdGlvbgBtX2Nvbm5lY3Rpb24AQ296eVJvYy5EeW5hbWljcwBDb3p5Um9jLkR5bmFt
aWNzLkNybTIwMTEuT3JnYW5pemF0aW9uU2VydmljZQBPcmdhbml6YXRpb25TZXJ2aWNlQ2xpZW50
AG1fc2VydmljZQBtX2lkSW5kZXgAbV90eXBlSW5kZXgAQ3JtQ29ubmVjdGlvblR5cGUAU3lzdGVt
LlJlc291cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBD
dWx0dXJlSW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNl
dF9DdWx0dXJlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5n
c0Jhc2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2Rl
bABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNv
ZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MA
RGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2Vy
dmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lz
dGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVu
dGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRp
bWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBN
eUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJv
cFNlcnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAHNldF9JdGVtAFNldE51bGwASW52
YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbgBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRl
AElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0
Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBn
ZXRfSUQASURUU1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbjEwMABnZXRfUnVudGltZUNvbm5l
Y3Rpb25Db2xsZWN0aW9uAElEVFNSdW50aW1lQ29ubmVjdGlvbjEwMABnZXRfQ29ubmVjdGlvbk1h
bmFnZXIARW50aXR5AE9yZ2FuaXphdGlvblJlcXVlc3QAT3JnYW5pemF0aW9uUmVzcG9uc2UAU3lz
dGVtLldlYi5TZXJ2aWNlcwBTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scwBTb2FwRXhjZXB0
aW9uAEV4Y2VwdGlvbgBnZXRfQnVmZmVyAENvbnZlcnQAVG9Mb3dlcgBPcGVyYXRvcnMAQ29tcGFy
ZVN0cmluZwBzZXRfUmVxdWVzdE5hbWUARm9ybWF0AEV4ZWN1dGUAZ2V0X0lkAFByb2plY3REYXRh
AFNldFByb2plY3RFcnJvcgBTeXN0ZW0uWG1sAFhtbE5vZGUAZ2V0X0RldGFpbABnZXRfSW5uZXJY
bWwAQ2xlYXJQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQWNxdWlyZUNvbm5lY3Rpb24AQ29ubmVj
dABHZXRTZXJ2aWNlAENsb3NlAElzTnVsbE9yRW1wdHkASW50MzIAZ2V0X0lzQXR0YWNoZWQAc2V0
X0Nvbm5lY3Rpb25NYW5hZ2VySUQASURUU0V4dGVybmFsTWV0YWRhdGFDb2x1bW4xMDAAZ2V0X0Nv
dW50AElEVFNFeHRlcm5hbE1ldGFkYXRhQ29sdW1uQ29sbGVjdGlvbjEwMABnZXRfRXh0ZXJuYWxN
ZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24Ac2V0X0lzVXNlZABJRFRTSW5wdXRDb2x1bW5Db2xsZWN0
aW9uMTAwAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AUmVtb3ZlQWxsAE5ldwBzZXRfTmFtZQBE
YXRhVHlwZQBzZXRfRGF0YVR5cGUAc2V0X0xlbmd0aABFbXB0eQBGaXJlRXJyb3IAU3lzdGVtLkNv
bGxlY3Rpb25zAElFbnVtZXJhdG9yAEdldEVudW1lcmF0b3IAZ2V0X0N1cnJlbnQAZ2V0X0V4dGVy
bmFsTWV0YWRhdGFDb2x1bW5JRABNb3ZlTmV4dABJRGlzcG9zYWJsZQBEaXNwb3NlAFBpcGVsaW5l
Q29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AElEVFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9CdWZm
ZXJNYW5hZ2VyAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAElzTnVsbABDb3p5
Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAQ29sdW1uTWFwcGluZ3NBdHRyaWJ1dGUAVmFs
aWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0
cmlidXRlAENvbm5lY3Rpb25BdHRyaWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUAU3lzdGVtLlJl
ZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3RlbS5UaHJlYWRpbmcATW9uaXRvcgBF
bnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUAU0NfMzYzYTY5MDhlMWUyNDNm
Zjk1ODA1MjAzZTI1ZjgwMzcuUmVzb3VyY2VzLnJlc291cmNlcwBDb21waWxhdGlvblJlbGF4YXRp
b25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAFN5c3RlbS5SdW50aW1l
LlZlcnNpb25pbmcAVGFyZ2V0RnJhbWV3b3JrQXR0cmlidXRlAEFzc2VtYmx5RmlsZVZlcnNpb25B
dHRyaWJ1dGUAR3VpZEF0dHJpYnV0ZQBBc3NlbWJseVRyYWRlbWFya0F0dHJpYnV0ZQBBc3NlbWJs
eUNvcHlyaWdodEF0dHJpYnV0ZQBBc3NlbWJseVByb2R1Y3RBdHRyaWJ1dGUAQXNzZW1ibHlDb21w
YW55QXR0cmlidXRlAEFzc2VtYmx5RGVzY3JpcHRpb25BdHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0
dHJpYnV0ZQBTQ18zNjNhNjkwOGUxZTI0M2ZmOTU4MDUyMDNlMjVmODAzNy5kbGwAAAAAAICbSQBz
AE4AdQBsAGwAIABwAHIAbwBwAGUAcgB0AHkAIABjAGEAbgBuAG8AdAAgAGIAZQAgAHMAZQB0ACAA
dABvACAARgBhAGwAcwBlAC4AIABBAHMAcwBpAGcAbgAgAGEAIAB2AGEAbAB1AGUAIAB0AG8AIAB0
AGgAZQAgAGMAbwBsAHUAbQBuACAAaQBuAHMAdABlAGEAZAAuAAARTwB1AHQAcAB1AHQASQBkAAAL
SQBuAHAAdQB0AAAbQwByAG0AQwBvAG4AbgBlAGMAdABpAG8AbgAAF28AcABwAG8AcgB0AHUAbgBp
AHQAeQAAOUcAZQBuAGUAcgBhAHQAZQBRAHUAbwB0AGUARgByAG8AbQBPAHAAcABvAHIAdAB1AG4A
aQB0AHkAABtPAHAAcABvAHIAdAB1AG4AaQB0AHkASQBkAAAVcwBhAGwAZQBzAG8AcgBkAGUAcgAA
NUMAbwBuAHYAZQByAHQAUwBhAGwAZQBzAE8AcgBkAGUAcgBUAG8ASQBuAHYAbwBpAGMAZQAAGVMA
YQBsAGUAcwBPAHIAZABlAHIASQBkAAAJdABlAGEAbQAAOUMAbwBuAHYAZQByAHQATwB3AG4AZQBy
AFQAZQBhAG0AVABvAEEAYwBjAGUAcwBzAFQAZQBhAG0AAA1UAGUAYQBtAEkAZAAAN1UAbgBoAGEA
bgBkAGwAZQBkACAAYwBvAG4AdgBlAHIAdAAgAHQAeQBwAGUAOgAgAHsAMAB9AAANRQBuAHQAaQB0
AHkAAAlUAHkAcABlAAAPSQBuAHAAdQB0AEkAZAAAP1MAZQBsAGUAYwB0ACAARAB5AG4AYQBtAGkA
YwBzACAAQwBSAE0AIABDAG8AbgBuAGUAYwB0AGkAbwBuAC4AADVUAHkAcABlACAAYwBvAGwAdQBt
AG4AIABpAHMAIABuAG8AdAAgAG0AYQBwAHAAZQBkAC4AADtJAG4AcAB1AHQASQBkACAAYwBvAGwA
dQBtAG4AIABpAHMAIABuAG8AdAAgAG0AYQBwAHAAZQBkAC4AABVOAG8AIABpAG4AcAB1AHQAcwAu
AAAZRABZAE4AQQBNAEkAQwBTAC0AQwBSAE0AASlEAHkAbgBhAG0AaQBjAHMAIABDAFIATQAgAEMA
bwBuAHYAZQByAHQAADFNAHkALgBSAGUAcwBvAHUAcgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBj
AGUAcwAAN6qDk+8ick+YRoTsAWhMuQAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYV
EhgBEgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgA
EhEECAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZ
ARMABCgAEwAIFs9JC7gMNOoIiYRdzYCAzJELIAUBEiEIAhIlEikEIAAdDgUgAQERLQQgAQECAyAA
AgQoAB0OBCgAES0DKAACAwYSJAMGEigJIAQBCA4SJRIpBSABARIcAwYSIQUgAQESIQQgABI1BCgA
EjUFIAECEA4EIAEBDgUgARI5DgQgAQgOBiACHBIlCAIGDgMGEj0DBhJBAgYIAygADgMGEkUDBhJJ
BAAAEkUEAAASSQUAAQESSQQIABJFBAgAEkkDBhI0AgYcBAAAEjQECAASNAUgAQERVQgBAAEAAAAA
AAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAES
EQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5Db21wdXRlcgAADAEAB015LlVzZXIA
ABMBAA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0aW9uAAAEAAEcHAMHAQIDBwEIBgAB
EhURcQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZp
Y2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNE
aXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwATAAUB
AAAAAAQHAR0OBSACAQgcBCABAQgGBwIdDh0OBSAAEoCRBSAAEoCVBiABEoCZHAUgABKAnQYgARKA
oRwEBwESNQQgABIlBAABDhwGAAMIDg4CBCABHAgFIAIBDhwFAAIODhwIIAESgK0SgKkEIAEcDgUg
ABGAwQYAAQESgLUFIAASgMkXBwkSgKUSgKkSgK0OEoCxEoC1DhEtES0EIAEcHAQAAQIODAcFAgIS
gJkSORKAtQUgABKA1QUgABKA2QUgABKA0QYgAQERgN0IBwISgNESgJkKIAYBCA4ODggQAgYgARKA
0RwFIAASgOEDIAAcEQcGEoDREjkSgJkSORI5EoDhBSAAEoDpBSAAEoDtBSACCAgICQcECBKAmRI5
CAQgAQIIBAcCHBwNAQAIVmFsaWRhdGUAABYBABFDcm1Db25uZWN0aW9uVHlwZQAALAEAJ1NlbGVj
dCBEeW5hbWljcyBDUk0gQ29ubmVjdGlvbiBNYW5hZ2VyLgAABSAAEoEFByACAQ4SgQUGBwISRRJF
BAcBEkkIAQACAAAAAAAEAAEBHAQHARI0CAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9u
VGhyb3dzAUcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxh
eU5hbWUQLk5FVCBGcmFtZXdvcmsgNAwBAAcxLjAuMC4wAAApAQAkMTgzMmUzYTUtOTQyYi00NWYz
LWI2ZjctZTc3OGRkNjE5YmY0AAAFAQABAAAWAQARQ29weXJpZ2h0IEAgIDIwMTYAACgBACNTQ18z
NjNhNjkwOGUxZTI0M2ZmOTU4MDUyMDNlMjVmODAzNwAAAEhTAAAAAAAAAAAAAF5TAAAAIAAAAAAA
AAAAAAAAAAAAAAAAAAAAAABQUwAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8l
ACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACAAAAA
AAAAAAAAAAAAAAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWGAAAIADAAAAAAAA
AAAAAIADNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAQAA
AAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBpAGwA
ZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsATgAgAAAQBT
AHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAAC8AgAAAQAwADAAMAAwADAANABiADAAAABwACQA
AQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBDAF8AMwA2ADMAYQA2ADkAMAA4
AGUAMQBlADIANAAzAGYAZgA5ADUAOAAwADUAMgAwADMAZQAyADUAZgA4ADAAMwA3AAAAMAAIAAEA
RgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAcAAoAAEASQBuAHQAZQBy
AG4AYQBsAE4AYQBtAGUAAABTAEMAXwAzADYAMwBhADYAOQAwADgAZQAxAGUAMgA0ADMAZgBmADkA
NQA4ADAANQAyADAAMwBlADIANQBmADgAMAAzADcALgBkAGwAbAAAAEgAEgABAEwAZQBnAGEAbABD
AG8AcAB5AHIAaQBnAGgAdAAAAEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgACAAMgAwADEANgAAAHgA
KAABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAEMAXwAzADYAMwBhADYAOQAw
ADgAZQAxAGUAMgA0ADMAZgBmADkANQA4ADAANQAyADAAMwBlADIANQBmADgAMAAzADcALgBkAGwA
bAAAAGgAJAABAFAAcgBvAGQAdQBjAHQATgBhAG0AZQAAAAAAUwBDAF8AMwA2ADMAYQA2ADkAMAA4
AGUAMQBlADIANAAzAGYAZgA5ADUAOAAwADUAMgAwADMAZQAyADUAZgA4ADAAMwA3AAAANAAIAAEA
UAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAADgACAABAEEAcwBz
AGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAcDMAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="7" 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">SC_363a6908e1e243ff95805203e25f8037</property><property id="8" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property><property id="15" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property></properties><connections><connection id="18" name="CrmConnection" connectionManagerID="{43808767-2912-4FA7-8948-CDE6683A348E}" /></connections><inputs><input id="3" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="20" name="Type" dataType="wstr" length="10" /><externalMetadataColumn id="21" name="InputId" dataType="guid" /></externalMetadataColumns></input></inputs><outputs><output id="4" name="Output" synchronousInputId="3"><outputColumns><outputColumn id="16" name="OutputId" lineageId="16" dataType="guid" /></outputColumns><externalMetadataColumns /></output></outputs></component>