<component id="37" name="Dynamics CRM Execute Workflow Destination" componentClassID="{2E42D45B-F83C-400F-8D77-61DDE6A7DF29}" description="Executes a custom script." localeId="1033" usesDispositions="false" validateExternalMetadata="True" version="4" pipelineVersion="0" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0">
<properties>
<property id="41" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\my project\settings.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

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

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

' Review the values of the assembly attributes

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

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("93375dda-0957-4d56-9c1e-93a5d5a12b50")> 

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

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Dim OutputOutputID As Integer

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)

        OutputOutputID = Component.ComponentMetaData.OutputCollection("Output").ID
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public WriteOnly Property [Id]() As Guid
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [Id_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Sub DirectRowToOutput()
        MyBase.DirectRow(OutputOutputID)
    End Sub

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"Id"}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_a0e32ae44e37460ea174485204a287d4.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

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

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

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

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{A860303F-1F3F-4691-B57E-529FC101A107}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{C1B21C64-9E6F-4923-A89D-9F958503C1CE}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptComponent</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\resources.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\componentwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As PipelineBuffer)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer))
        End If

    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[\my project\resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-2013 COZYROC LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.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 CRM2011 = CozyRoc.Dynamics.Crm2011.OrganizationService
Imports CRM4 = CozyRoc.Dynamics.Crm.Service


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ColumnMappings()> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim wid As Guid = New Guid(Row.Buffer(m_wiIndex).ToString())
            Dim eid As Guid = New Guid(Row.Buffer(m_eiIndex).ToString())

            If Not m_service2011 Is Nothing Then
                ' CRM 2011
                Dim req As New CRM2011.OrganizationRequest
                req.RequestName = "ExecuteWorkflow"
                req("WorkflowId") = wid
                req("EntityId") = eid

                ' Execute action.
                Dim res As CRM2011.OrganizationResponse = m_service2011.Execute(req)
                Row.Id = CType(res("Id"), Guid)
            Else
                ' CRM 4.0
                Dim req As New CRM4.ExecuteWorkflowRequest
                req.WorkflowId = wid
                req.EntityId = eid

                ' Execute action.
                Dim res As CRM4.ExecuteWorkflowResponse = CType( _
                    m_service4.Execute(req), _
                    CRM4.ExecuteWorkflowResponse)
                Row.Id = res.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), _
            ICrmConnection)
        Call m_connection.Connect()

        Dim service As Object = m_connection.GetService(0)   ' 0 - CRM Service

        m_service2011 = TryCast(service, CRM2011.OrganizationServiceClient)
        If m_service2011 Is Nothing Then
            m_service4 = TryCast(service, CRM4.CrmService)
            If m_service4 Is Nothing Then
                Throw New Exception("Unhandled service object.")
            End If
        End If

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
        Dim inputCol As IDTSInputColumn100

        ' Get input column indexes.
        inputCol = GetInputColumn_("WorkflowId")
        m_wiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)

        inputCol = GetInputColumn_("EntityId")
        m_eiIndex = 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.CrmConnection) Then
                Throw New ApplicationException("Select Dynamics CRM connection.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso input.InputColumnCollection.Count < 2 Then
                Throw New Exception("Map input columns.")
            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 WorkflowId.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "WorkflowId"
        column.DataType = DataType.DT_GUID

        ' Setup EntityId.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "EntityId"
        column.DataType = DataType.DT_GUID
    End Sub ' ReinitializeMetaData


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <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 Execute Workflow", _
            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

        If result Is Nothing Then
            Throw New Exception("Input column not found.")
        End If

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


#Region "Attributes"
    Private m_crmConnection As String

    Private m_connection As ICrmConnection
    Private m_service2011 As CRM2011.OrganizationServiceClient
    Private m_service4 As CRM4.CrmService
    Private m_wiIndex As Integer
    Private m_eiIndex As Integer
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="42" name="BinaryCode" dataType="System.String" state="cdata" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[\bin\scriptcomponent_a0e32ae44e37460ea174485204a287d4.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAIKzJ1EAAAAAAAAAAOAAAiELAQgAADQAAAAMAAAAAAAAHlIA
AAAgAAAAYAAAAABAAAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAMxRAABPAAAAAGAAALgJAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAAJDIAAAAgAAAANAAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAALgJAAAAYAAAAAoAAAA2AAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAQAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAAAA
UgAAAAAAAEgAAAACAAUAqCkAACQoAAABAAAAAAAAAFAgAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAADOyu++AQAAAJEAAABsU3lzdGVtLlJlc291cmNlcy5S
ZXNvdXJjZVJlYWRlciwgbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5I1N5c3RlbS5SZXNvdXJjZXMuUnVudGlt
ZVJlc291cmNlU2V0AgAAAAAAAAAAAAAAUEFEUEFEULQAAAAeAigBAAAKKh4CKAQAAAoqpnMGAAAK
gAEAAARzBwAACoACAAAEcwgAAAqAAwAABHMJAAAKgAQAAAQqAAATMAEACwAAAAEAABF+AQAABG8K
AAAKKgATMAEACwAAAAIAABF+AgAABG8LAAAKKgATMAEACwAAAAMAABF+AwAABG8MAAAKKgATMAEA
CwAAAAQAABF+BAAABG8NAAAKKgATMAIADQAAAAUAABECAygRAAAKKBIAAAoqAAAAEzABAAcAAAAG
AAARAigTAAAKKgATMAEACwAAAAcAABHQBQAAAigUAAAKKgATMAEABwAAAAgAABECKBUAAAoqABMw
AQAQAAAACQAAEQKMAQAAGy0GKAEAACsqAioTMAIAEAAAAAoAABEDEgD+FQIAABsGgQIAABsqHgIo
FwAACioTMAIAKAAAAAsAABECexkAAApvGgAACgsHjAMAABstEigCAAArCwJ7GQAACgdvGwAACgcq
SgIoFwAACgJzHAAACn0ZAAAKKgCyAgMEBQ4EKB4AAAoCA28fAAAKbyAAAApyAQAAcG8hAAAKbyIA
AAp9BgAABCoAAAATMAEABwAAAAwAABEWjSMAAAEqADoCFgOMCgAAAW8jAAAKKgBiAywJAhZvJAAA
CisLcg8AAHBzJQAACnoqAAAANgICewYAAAQoJgAACioAABMwAwARAAAADQAAEReNIwAAAQsHFnKs
AABwogcqAAAAEzABAAkAAAAOAAARAignAAAKCgYqAAAAEzABAAkAAAAPAAARAigoAAAKCgYqAAAA
fgIoKgAACgICcx0AAAZ9BwAABAICcx8AAAZ9CAAABCq2AwIoHwAACm8rAAAKcrIAAHBvLAAACm8t
AAAKMw8CAgMXBHMRAAAGbxsAAAYqAABKKwcCA28cAAAGA28XAAAGLfEqAAYqAAA6AigXAAAKAgN9
CQAABCoAEzACACAAAAAQAAARAnsJAAAEbx8AAApvLgAACnK+AABwby8AAApvMAAACio6AigXAAAK
AgN9CgAABCoAHgIoGQAABiobMAMAHwEAABEAABESAQNvMQAACgJ7DwAABG8yAAAKbxUAAAooMwAA
ChIAA28xAAAKAnsQAAAEbzIAAApvFQAACigzAAAKAnsNAAAELGVzNAAACgwIctoAAHBvNQAACghy
+gAAcAeMCgAAAW82AAAKCHIQAQBwBowKAAABbzYAAAoCew0AAAQIbzcAAAoNAwlyrAAAcG84AAAK
JS0FJhEIKwp5CgAAAXEKAAABbxMAAAbed3M5AAAKEwQRBAdvOgAAChEEBm87AAAKAnsOAAAEEQRv
PAAACnQuAAABEwUDEQVvPQAACm8TAAAG3j0lKD4AAAoTBgIRBm8/AAAKb0AAAApvKQAABihBAAAK
3hwlKD4AAAoTBwIRB29CAAAKbykAAAYoQQAACt4AKgABGAAAAAAAAOHhACEvAAABAAAAAOECARww
AAABEzAEAOYAAAASAAARAihDAAAKAgJ7BwAABG8eAAAGFG9EAAAKdA4AAAF9DAAABAJ7DAAABG9F
AAAKAnsMAAAEFm9GAAAKKBEAAAoMAgh1DwAAAX0NAAAEAnsNAAAELR8CCHUQAAABfQ4AAAQCew4A
AAQtC3IiAQBwc0cAAAp6AigfAAAKbysAAAoWjDUAAAFvLAAACgoCcvoAAHBvKgAABgsCAm9IAAAK
b0kAAAoGb0oAAAoHb0sAAApvTAAACn0PAAAEAnIQAQBwbyoAAAYLAgJvSAAACm9JAAAKBm9KAAAK
B29LAAAKb0wAAAp9EAAABCoAAEoCKE0AAAoCewwAAARvTgAACioAGzACAJAAAAATAAARAm8mAAAG
KE8AAAosC3JWAQBwc1AAAAp6Am8fAAAKbysAAAoWjDUAAAFvLAAACgwIb1EAAAosGQhvUgAACm9T
AAAKGC8LcpYBAHBzRwAACnoCbx8AAApvLgAACnK+AABwby8AAAoCbyYAAAZvVAAAChcK3hglKD4A
AAoNFgoDCW9CAAAKUShBAAAK3gAGCwcqAQwAAAAAAAB0dAAYMAAAARMwAgCcAAAAFAAAEQIoVQAA
CgIoHwAACm8rAAAKb1YAAAoWMwtyvAEAcHNHAAAKegIoHwAACm8rAAAKFow1AAABbywAAAoLB29X
AAAKF29YAAAKB29SAAAKb1kAAAoHb1cAAApvWgAACgdvVwAACm9bAAAKCgZy+gAAcG9cAAAKBh9I
b10AAAoHb1cAAApvWwAACgoGchABAHBvXAAACgYfSG9dAAAKKhMwAQAJAAAAFQAAEQJ7CwAABAoG
KgAAACICA30LAAAEKgAAABMwAwATAAAAFgAAEReNIwAAAQsHFnLSAQBwogcKBioAEzAHAB0AAAAX
AAARFgoCKB8AAAoWcuwBAHADfl4AAAoWEgBvXwAACioAAAAbMAIAigAAABgAABEUDQIoHwAACm8r
AAAKFow1AAABbywAAAoMCG9XAAAKA29gAAAKCghvUgAACm9hAAAKEwUrIhEFb2IAAAp0DQAAARME
EQRvYwAACgZvZAAACjMFEQQN3iERBW9lAAAKLdXeFhEFdT4AAAEsDBEFdT4AAAFvZgAACtwJLQty
KAIAcHNHAAAKegkLByoAAAEMAAACACYAPGIAFgAAAAEeAigXAAAKKhMwAgAtAAAAGQAAEX4RAAAE
LSByWAIAcNAMAAACKBQAAApvbQAACnNuAAAKCweAEQAABH4RAAAEKgAAABMwAQAGAAAAGgAAEX4S
AAAEKgAAHgKAEgAABCpCcxcAAAooEQAACoAUAAAEKgAAAB4CKG8AAAoqGzABAD8AAAAbAAARfhMA
AAQtMn4UAAAEKBEAAAoocAAACn4TAAAELRxzMAAABoATAAAE3hB+FAAABCgRAAAKKHEAAArcfhMA
AAQqAAEMAAACAB0ADCkAEAAAAAFCU0pCAQABAAAAAAAMAAAAdjIuMC41MDcyNwAAAAAFAGwAAABY
DQAAI34AAMQNAACEEgAAI1N0cmluZ3MAAAAASCAAAIwCAAAjVVMA1CIAABAAAAAjR1VJRAAAAOQi
AABABQAAI0Jsb2IAAAAAAAAAAgAAAVcVogkJDwAAAPoBMwAWAAABAAAAUQAAAA0AAAAUAAAAMQAA
ABUAAAB8AAAAPgAAABsAAAAHAAAADwAAABEAAAAJAAAAAQAAAAsAAAABAAAAAgAAAAMAAAACAAAA
AABHEgEAAAAAAAoAqQF/AQoA3QG/AQYA7QHmAQoARQJ/AQYAwwLmAQoARQMbAw4AlwOAAxIA9QPU
AxYAJgTUAwYAbgTmAQ4AAAWAAxoAsQWJBR4AuAaPBg4A+AaAAyIAUgclByIAlwd6BwYA5AfTBwYA
EQj8ByYAcghdCCYAvwipCCYA2AipCCYABQntCAYALwkcCQoAbglHCQoAhgkTACYAuwmeCQYA8AnQ
CQYADgrmAQYAMgrmAQoASwoTAAYAjwpwCh4AowqPBh4A0gqPBh4A/wqPBgYAHQvmAQYANQvmARIA
TwvUAwYAZgvmAR4AfAuPBh4ApwuPBh4AtAuPBh4A9wuPBiIAJgwlByIAOgwlByIATwx6ByIAZgx6
ByoAsAySDAYAvgzmASIABw16ByIAEA16BwoAHw1HCS4ARg07DQYAqQ3mARYArw3UAx4A0w2PBgYA
Mg7mAR4AVg6PBh4Arw6PBh4AzQ6PBhoAPA+JBQYAdQ9iDwYAwQ/mARIA1Q/UAw4AHhD8Dw4AOhD8
Dw4AUhD8DyYAZhCpCCYAexCpCAYAnxCNEAYAxhC1EAYA2RAcCQYAQhHQCQYAYhHQCQYAgBGNEAYA
nRFwCgYAqxGNEAYAxhGNEAYA4RGNEAYA+hGNEAYAExKNEAYAMBKNEAAAAAABAAAAAAABAAEAAAAA
ACkANwAFAAEAAQAAAAAAcgA3AAkAAQACAAABEAB9ADcADQABAAMABQEAAIcAAAANAAUACAAFAQAA
lQAAAA0ABQAPAAEAAACwALwAHQAGABEAAQAAAPQAvAAtAAcAGQABAAAAAgG8AA0ACQAdAAEAAAAO
AbwADQAKAB8AAQAAABgBvAAgAAsAIAAAAAAAIwEvAQ0AEQArAAABEAB0AbwATQATAC8AMQAIAiAA
MQAxAi0AMQBTAjoAMQB4AkcAIQBUA5AAAQCoA6YABgACAd4ABgAOAeIAAQBWBfMAAQBWBfMAAQDo
BhgBAQAHBxsBAQBsBx8BAQCiByMBAQCtB6YAAQC3B6YAEQD0BysBEQAdCC8BEQCKCE0BEQCSCFEB
CCEAAAAABhi5ARMAAQAQIQAAAAAGGLkBEwABABghAAAAABEY9AEXAAEARCEAAAAAEwj7ARsAAQBc
IQAAAAATCCECKAABAHQhAAAAABMISgI1AAEAjCEAAAAAEwhoAkIAAQCkIQAAAABGAq4CYwABAMAh
AAAAAEYCtwJoAAIA1CEAAAAAgwDIAmwAAgDsIQAAAABGAtACcQACAAAiAAAAABEA2QJ4AAIAHCIA
AAAAAQD3AoAAAwA4IgAAAAAGGLkBEwAEAEAiAAAAAAMICwOLAAQAdCIAAAAABhi5ARMABACIIgAA
AAAGGLkBsgAEALgiAAAAAEYKVwS8AAgAzCIAAAAABghzBMEACADcIgAAAAAGCIAExwAJAPgiAAAA
AAYAjgQTAAoACCMAAAAARgqgBLwACgAoIwAAAACGALgEzAAKAEAjAAAAAIYAwATMAAoAWCMAAAAA
Bhi5ARMACgB4IwAAAABGAhQF5gAKAKgjAAAAAEYDKQXtAAwAvCMAAAAARgM8Be0ADQDAIwAAAAAG
GLkB9wAOANAjAAAAAAYIygX9AA8A/CMAAAAABhi5AfcADwAMJAAAAAAGGLkBEwAQABQkAAAAAEYC
PAXtABAAXCUAAAAARgLqBRMAEQBQJgAAAABGAvUFEwARAGQmAAAAAAYAAQYHAREAECcAAAAARgIV
BhMAEgC4JwAAAAAGCMoFcQASANAnAAAAAAYIKgYNARIA3CcAAAAAAQhCBrwAEwD8JwAAAAABAFgG
DQETACgoAAAAAAEAywYSARQA0CgAAAAAAxi5ARMAFQDYKAAAAAAWCCkIMwEVABQpAAAAABYIPQg4
ARUAKCkAAAAAFghJCD0BFQAwKQAAAAARGPQBFwAWAEQpAAAAAAYYuQETABYATCkAAAAAFgifCFQB
FgAAAAEAtQIAAAEA7gIAAAEA7gIAAAEANQQAAAIAPwQAAAMASAQAAAQAUAQAAAEAegQAAAEAegQA
AAEAIQUAAAIAUAQAAAEAUAQAAAEAUgUAAAEANQQAAAEANQQAAAEAUgUAAAEACgYAAAEAPAYAAAEA
YwYAAAEA2wYAAAEAegQJALkBEwChALkBXgGxALkBbQERALkBEwC5ALkBEwAkALkBEwAsALkBEwA0
ALkBEwA8ALkBEwAkAAsDiwAsAAsDiwA0AAsDiwA8AAsDiwDBALkBEwDJALkBEwDRALkBDQHZAP8J
BgIZAK4CYwAZALcCaAApACAKEwIZANACcQDpADwKIwIZALkBEwDxALkBMwJEAFQDkABMAJ8IiwBM
AGYKsAJMALkBEwD5ALkBxwA5ALkBsgBBALwKwwIBAeoKyQIJAQ0LzwIRARYLaAA5ACQL2wI5AC0L
4QIhAbkBDQEpAVwL4QIpAbgEzAApAcAEzAAxAbkBxwBZALkBEwABAZML7QI5AQ0L8wJBARYLaAAB
AdcL+gJJAQ0LAANRARAM/QA5AMgMDANJAA0LEQNRALkBDQFZAbkBEwBZAdMMDQFZASQLFgN5AOMM
HANhAQ0LJQNpAbkBEwBpAesMwQBpAfoMwQCBAOMMKgNxARgNMwOZASsNOAN5AU4NPwOhAVkNcQCZ
AWYNFwCBAXgNcQBBAOoFEwBhAIQNYANxAJYNEwBxAJ4NEQOBAbkBDQFZAMENZQOxAegNawNBAcgM
aABpAPoNaAC5AQgOcQNBAPUFEwBxAB4OEwAZASQOgAPBAbkBDQFBAUcOzABBAXMOhQPJAY0OaABR
AZcODQFZABUGEwA5AY0OaABBAfUOlgPZARoPxwDJASUPEwDZASUPEwDZAS8PnAPRATMPDQHRAUUP
ogMZAVIPGAEBAVgPsgPZAQ0LvQPJAYEPxAPpAY8PygNpAJsPaADRARYLaADpAbgPzADxAc0PEwD5
AbkBEwABArkBDQEJArkBEwARArkBDQEZArkBDQEhArkBDQEpAKgQQASJALkBRgSZALkBEwAxAs4Q
YwQxAtQQYwQ5ArkBEwBBArkB4QJJArkBEwBRArkBDQFZArkBDQFhArkBDQFpArkBDQFxArkBDQF5
ArkBDQGBArkBDQGJArkBDQEpAIMAwAEuALsDvQIuAEsBzAQuAMsD8gQuANMDLwUuAOsAvQIuAMMD
0gQuANsDvQIuAOMD8gQuAJsDbQQuAKMDdgQuAKsDlQQuALMDogRAACsAiwFAABMAZAFDABMAZAFD
ABsAcwFJAIMA3gFjABMAZAFjABsAcwFpAIMA0QGAACsAiwGDABsAcwGDAHsAiwGDAHMAiwGJAIMA
8gGgACsAiwGjAMMAOwKjABMAZAHAACsAiwHDABMAZAHDAOsAvQLgACsAiwHjAEsBvQIAARMAZAEA
ASsAiwEDAUsBvQIgARMAZAEgASsAiwFAASsAiwFAARMAZAFgASsAiwFgARMAZAFjAUMD4ANjAUsD
iwFjAUsBvQJjATsDiwFpAVMD7gNpAVsDBQRpAWMDMgSAASsAiwGgASsAiwGpARMAWgTAASsAiwHA
ARMAZAHJARMAWgTgASsAiwHpAZMDiwEAAhMAZAEAAisAiwGgA0sBvQLgA0sBvQKsAbEBtgG7AQsC
DwIaAh8CLgIuArYC1gLmAgsCCwIHA0UDdwOLA6kDHwLmAgsCzgNOBFUEaAQEAAEABgAFAAcABgAJ
AAoACwALAAwADQANAA8AAADdAU8AAACWAlQAAABFAlkAAACiAl4AAABeA5gAAADMBNAAAADfBNUA
AADiBNoAAADsBNAAAADcBQIBAADcBScBAADBB9AAAADkB0MBAABVCEgBAAB6BFkBAgAEAAMAAgAF
AAUAAgAGAAcAAgAHAAkAAgAPAAsAAgASAA0AAQATAA8AAQAUABEAAgAWABMAAgAeABUAAgAmABcA
AQAnABcAAgAoABkAAgAsABsAAgAtAB0AAQAuAB0AAgAxAB8AdQB1AIgAkAGXAZ4BpQGdAqQCBIAA
AAEAAAAAAAAAAAAAAAAAvAAAAAIAAAAAAAAAAAAAAAEACgAAAAAACAAAAAAAAAAAAAAACgATAAAA
AAABAAAAAAAAAAAAAACdAGoDAAAAAAoAAAAAAAAAAAAAAKkAtwMAAAAACgAAAAAAAAAAAAAAqQAF
BAAAAAAKAAAAAAAAAAAAAACpAGYFAAAAAAoAAAAAAAAAAAAAAKkAawYAAAAAAQAAAAAAAAAAAAAA
nQAUBwAAAAACAAAAAAAAAAAAAAABAOYBAAAAAAIAAAAAAAAAAAAAAAoAfgwAAAAAAgAAAAAAAAAA
AAAAAQA7DQAAAAAAAAAAAQAAAPYQAAAFAAQABgAEAAAAEAAMAOwCAAAQABkA7AIAAAAAGwDsAi0A
KQItAKsCAAAAAAA8TW9kdWxlPgBtc2NvcmxpYgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBs
aWNhdGlvbgBTY3JpcHRDb21wb25lbnRfYTBlMzJhZTQ0ZTM3NDYwZWExNzQ0ODUyMDRhMjg3ZDQu
dmJwcm9qLk15AE15Q29tcHV0ZXIATXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9i
amVjdFByb3ZpZGVyYDEASW5wdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50X2EwZTMyYWU0NGUzNzQ2
MGVhMTc0NDg1MjA0YTI4N2Q0LnZicHJvagBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlh
YmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNjcmlwdENvbXBvbmVudF9hMGUzMmFlNDRlMzc0
NjBlYTE3NDQ4NTIwNGEyODdkNC52YnByb2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MATWljcm9z
b2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9y
AE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNj
dG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9u
AG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBn
ZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24A
V2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENy
ZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldElu
c3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRW
YWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMDgAQ296eVJv
Yy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE91dHB1dE91dHB1dElEAE1pY3Jvc29m
dC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2Ny
aXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVm
ZmVyAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBnZXRfU3RhdGljSW5wdXRDb2x1
bW5zAEd1aWQAc2V0X0lkAFZhbHVlAHNldF9JZF9Jc051bGwARGlyZWN0Um93VG9PdXRwdXQAZ2V0
X1N0YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVt
bnMASWQASWRfSXNOdWxsAFN0YXRpY091dHB1dENvbHVtbnMAU2NyaXB0Q29tcG9uZW50UGx1cwBQ
cm9jZXNzSW5wdXQASW5wdXRJRABJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0
Um93AFJvdwBQYXJlbnRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3Jh
cABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIASURUU0Nvbm5lY3Rpb25N
YW5hZ2VyMTAwAGdldF9Dcm1Db25uZWN0aW9uAENybUNvbm5lY3Rpb24AUHJlRXhlY3V0ZQBQb3N0
RXhlY3V0ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAFJlaW5pdGlhbGl6ZU1ldGFEYXRhAHNldF9Dcm1D
b25uZWN0aW9uAHZhbHVlAGdldF9Dcm1Db25uZWN0aW9uVHlwZQBGaXJlRXJyb3JfAG1lc3NhZ2UA
TWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5E
dHMuUGlwZWxpbmUuV3JhcHBlcgBJRFRTSW5wdXRDb2x1bW4xMDAAR2V0SW5wdXRDb2x1bW5fAGV4
dGVybmFsTmFtZQBtX2NybUNvbm5lY3Rpb24ASUNybUNvbm5lY3Rpb24AbV9jb25uZWN0aW9uAENv
enlSb2MuRHluYW1pY3MAQ296eVJvYy5EeW5hbWljcy5Dcm0yMDExLk9yZ2FuaXphdGlvblNlcnZp
Y2UAT3JnYW5pemF0aW9uU2VydmljZUNsaWVudABtX3NlcnZpY2UyMDExAENvenlSb2MuRHluYW1p
Y3MuQ3JtLlNlcnZpY2UAQ3JtU2VydmljZQBtX3NlcnZpY2U0AG1fd2lJbmRleABtX2VpSW5kZXgA
Q3JtQ29ubmVjdGlvblR5cGUAU3lzdGVtLlJlc291cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01n
cgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJlSW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3Vy
Y2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9DdWx0dXJlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3Vy
YXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jhc2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1Zh
bHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9y
QnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJp
YnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0
LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlk
ZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5
d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxw
ZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFj
dGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFs
dWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUASURU
U0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTT3V0cHV0Q29s
bGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sbGVjdGlvbgBJRFRTT3V0cHV0MTAwAGdldF9JdGVtAGdl
dF9JRABTdHJpbmcAc2V0X0l0ZW0AU2V0TnVsbABJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAFNj
cmlwdEJ1ZmZlcgBEaXJlY3RSb3cAQ0xTQ29tcGxpYW50QXR0cmlidXRlAElEVFNJbnB1dENvbGxl
Y3Rpb24xMDAAZ2V0X0lucHV0Q29sbGVjdGlvbgBJRFRTSW5wdXQxMDAASURUU1J1bnRpbWVDb25u
ZWN0aW9uQ29sbGVjdGlvbjEwMABnZXRfUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uAElEVFNS
dW50aW1lQ29ubmVjdGlvbjEwMABnZXRfQ29ubmVjdGlvbk1hbmFnZXIAT3JnYW5pemF0aW9uUmVx
dWVzdABPcmdhbml6YXRpb25SZXNwb25zZQBFeGVjdXRlV29ya2Zsb3dSZXF1ZXN0AEV4ZWN1dGVX
b3JrZmxvd1Jlc3BvbnNlAFN5c3RlbS5XZWIuU2VydmljZXMAU3lzdGVtLldlYi5TZXJ2aWNlcy5Q
cm90b2NvbHMAU29hcEV4Y2VwdGlvbgBFeGNlcHRpb24AZ2V0X0J1ZmZlcgBzZXRfUmVxdWVzdE5h
bWUARXhlY3V0ZQBzZXRfV29ya2Zsb3dJZABzZXRfRW50aXR5SWQAUmVzcG9uc2UAUmVxdWVzdABn
ZXRfSWQAUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAFN5c3RlbS5YbWwAWG1sTm9kZQBnZXRf
RGV0YWlsAGdldF9Jbm5lclhtbABDbGVhclByb2plY3RFcnJvcgBnZXRfTWVzc2FnZQBBY3F1aXJl
Q29ubmVjdGlvbgBDb25uZWN0AEdldFNlcnZpY2UASW50MzIAUGlwZWxpbmVDb21wb25lbnQAZ2V0
X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIxMDAAZ2V0X0J1ZmZlck1hbmFnZXIAZ2V0
X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAQ2xvc2UASXNOdWxsT3JFbXB0eQBBcHBs
aWNhdGlvbkV4Y2VwdGlvbgBnZXRfSXNBdHRhY2hlZABJRFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9u
MTAwAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X0NvdW50AHNldF9Db25uZWN0aW9uTWFu
YWdlcklEAElEVFNFeHRlcm5hbE1ldGFkYXRhQ29sdW1uMTAwAElEVFNFeHRlcm5hbE1ldGFkYXRh
Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24A
c2V0X0lzVXNlZABSZW1vdmVBbGwATmV3AHNldF9OYW1lAERhdGFUeXBlAHNldF9EYXRhVHlwZQBF
bXB0eQBGaXJlRXJyb3IAU3lzdGVtLkNvbGxlY3Rpb25zAElFbnVtZXJhdG9yAEdldEVudW1lcmF0
b3IAZ2V0X0N1cnJlbnQAZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1bW5JRABNb3ZlTmV4dABJRGlz
cG9zYWJsZQBEaXNwb3NlAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENv
enlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1
dGUAQ29sdW1uTWFwcGluZ3NBdHRyaWJ1dGUAQ29ubmVjdGlvbkF0dHJpYnV0ZQBEZXNjcmlwdGlv
bkF0dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBTeXN0ZW0uUmVmbGVjdGlvbgBBc3NlbWJseQBn
ZXRfQXNzZW1ibHkAU3lzdGVtLlRocmVhZGluZwBNb25pdG9yAEVudGVyAEV4aXQARGVidWdnZXJO
b25Vc2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfYTBlMzJhZTQ0ZTM3NDYwZWExNzQ0
ODUyMDRhMjg3ZDQudmJwcm9qLlJlc291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRpb25SZWxheGF0
aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBBc3NlbWJseUZpbGVW
ZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1dGUA
QXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0cmlidXRlAEFzc2Vt
Ymx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0cmlidXRlAEFzc2VtYmx5
VGl0bGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2EwZTMyYWU0NGUzNzQ2MGVhMTc0NDg1MjA0
YTI4N2Q0LnZicHJvai5kbGwAAAANTwB1AHQAcAB1AHQAAICbSQBzAE4AdQBsAGwAIABwAHIAbwBw
AGUAcgB0AHkAIABjAGEAbgBuAG8AdAAgAGIAZQAgAHMAZQB0ACAAdABvACAARgBhAGwAcwBlAC4A
IABBAHMAcwBpAGcAbgAgAGEAIAB2AGEAbAB1AGUAIAB0AG8AIAB0AGgAZQAgAGMAbwBsAHUAbQBu
ACAAaQBuAHMAdABlAGEAZAAuAAAFSQBkAAALSQBuAHAAdQB0AAAbQwByAG0AQwBvAG4AbgBlAGMA
dABpAG8AbgAAH0UAeABlAGMAdQB0AGUAVwBvAHIAawBmAGwAbwB3AAAVVwBvAHIAawBmAGwAbwB3
AEkAZAAAEUUAbgB0AGkAdAB5AEkAZAAAM1UAbgBoAGEAbgBkAGwAZQBkACAAcwBlAHIAdgBpAGMA
ZQAgAG8AYgBqAGUAYwB0AC4AAD9TAGUAbABlAGMAdAAgAEQAeQBuAGEAbQBpAGMAcwAgAEMAUgBN
ACAAYwBvAG4AbgBlAGMAdABpAG8AbgAuAAAlTQBhAHAAIABpAG4AcAB1AHQAIABjAG8AbAB1AG0A
bgBzAC4AABVOAG8AIABpAG4AcAB1AHQAcwAuAAAZRABZAE4AQQBNAEkAQwBTAC0AQwBSAE0AATtE
AHkAbgBhAG0AaQBjAHMAIABDAFIATQAgAEUAeABlAGMAdQB0AGUAIABXAG8AcgBrAGYAbABvAHcA
AC9JAG4AcAB1AHQAIABjAG8AbAB1AG0AbgAgAG4AbwB0ACAAZgBvAHUAbgBkAC4AADFNAHkALgBS
AGUAcwBvAHUAcgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAAD7XRQQnrS/RJ59Mrk2
+JcuAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggE
AAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAA
EhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06gIG
CAiJhF3NgIDMkQkgBAESIQgCEiUEIAAdDgUgAQERKQQgAQECAyAAAgQoAB0OBCgAESkDKAACAwYS
JAMGEigGIAIBCBIlBSABARIcAwYSIQUgAQESIQQgABIxBCgAEjEFIAECEA4EIAEBDgUgARI1DgIG
DgMGEjkDBhI9AwYSQQMoAA4DBhJFAwYSSQQAABJFBAAAEkkFAAEBEkkECAASRQQIABJJAwYSNAIG
HAQAABI0BAgAEjQFIAEBEVUIAQABAAAAAAAFIAIBDg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAE
AQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtN
eS5Db21wdXRlcgAADAEAB015LlVzZXIAABMBAA5NeS5BcHBsaWNhdGlvbgAAEwEADk15LldlYlNl
cnZpY2VzAAAEAAEcHAMHAQIDBwEIBgABEhURcQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQB
Dg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3Rv
Y29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkB
EwAECgETAAUgAQETAAYHAhMAEwAFAQAAAAAFIAASgIEFIAASgIUGIAESgIkcBAcBHQ4FIAIBCBwE
IAEBCAYHAh0OHQ4FIAASgJ0GIAESgKEcBSAAEoClBiABEoCpHAQHARIxBCAAEiUEIAEcCAUgAgEO
HAggARKAsRKArQQgARwOCCABEoDFEoDJBCAAESkGAAEBEoDBBSAAEoDRGgcJESkRKRKArRKAsRKA
tRKAuRKAvRKAwREpBCABHBwFIAASgNkFIAASgN0FIAIICAgIBwMSgKESNRwEAAECDgUgABKA5QoH
BAICEoChEoDBBSAAEoDtBSAAEoDpBiABARGA8QgHAhKA6RKAoQogBgEIDg4OCBACBiABEoDpHAUg
ABKA9QMgABwRBwYSgOkSNRKAoRI1EjUSgPUNAQAIVmFsaWRhdGUAABYBABFDcm1Db25uZWN0aW9u
VHlwZQAALAEAJ1NlbGVjdCBEeW5hbWljcyBDUk0gQ29ubmVjdGlvbiBNYW5hZ2VyLgAADQEACFNl
dHRpbmdzAAAFIAASgRUHIAIBDhKBFQYHAhJFEkUEBwESSQgBAAIAAAAAAAQAAQEcBAcBEjQIAQAI
AAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBDAEABzEuMC4wLjAAACkBACQ5MzM3
NWRkYS0wOTU3LTRkNTYtOWMxZS05M2E1ZDVhMTJiNTAAAAUBAAEAAB8BABpDb3B5cmlnaHQgQCBN
aWNyb3NvZnQgMjAxMwAAPAEAN1NjcmlwdENvbXBvbmVudF9hMGUzMmFlNDRlMzc0NjBlYTE3NDQ4
NTIwNGEyODdkNC52YnByb2oAAA4BAAlNaWNyb3NvZnQAAAAA9FEAAAAAAAAAAAAADlIAAAAgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABSAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwA
AAAAAP8lACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAoAACADgAA
AEgAAIAQAAAAYAAAgAAAAAAAAAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAAAAAAAAAA
AAABAAB/AACoAACAAAAAAAAAAAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAABAAAAAADY
AAAAAAAAAAAAAAAAAAAAAAABAAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAAAAAAAAAA
AAAAAAAAAAABAAAAAAAIAQAAgGUAAOgCAAAAAAAAAAAAAGhoAAAoAQAAAAAAAAAAAACQaQAAIgAA
AAAAAAAAAAAAGGEAAGgEAAAAAAAAAAAAAGgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4A
RgBPAAAAAAC9BO/+AAABAAAAAQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAA
AAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQA
aQBvAG4AAAAAAAAAsATIAwAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACkAwAAAQAw
ADAAMAAwADAANABiADAAAAA0AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0AaQBjAHIA
bwBzAG8AZgB0AAAAmAA4AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAFMAYwBy
AGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYQAwAGUAMwAyAGEAZQA0ADQAZQAzADcANAA2ADAA
ZQBhADEANwA0ADQAOAA1ADIAMAA0AGEAMgA4ADcAZAA0AC4AdgBiAHAAcgBvAGoAAAAwAAgAAQBG
AGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJAG4AdABlAHIA
bgBhAGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYQAwAGUAMwAy
AGEAZQA0ADQAZQAzADcANAA2ADAAZQBhADEANwA0ADQAOAA1ADIAMAA0AGEAMgA4ADcAZAA0AC4A
dgBiAHAAcgBvAGoALgBkAGwAbAAAAFwAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAA
AEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAwADEAMwAAAAAA
oAA8AAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBt
AHAAbwBuAGUAbgB0AF8AYQAwAGUAMwAyAGEAZQA0ADQAZQAzADcANAA2ADAAZQBhADEANwA0ADQA
OAA1ADIAMAA0AGEAMgA4ADcAZAA0AC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAJAAOAABAFAAcgBv
AGQAdQBjAHQATgBhAG0AZQAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBhADAA
ZQAzADIAYQBlADQANABlADMANwA0ADYAMABlAGEAMQA3ADQANAA4ADUAMgAwADQAYQAyADgANwBk
ADQALgB2AGIAcAByAG8AagAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADEA
LgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMQAu
ADAALgAwAC4AMAAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD/
//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAB3d3d3d3d3d3d3d3d3d3AERERERERERERERERERERwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////////
////////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAE////////////
//////RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//
///////////////0cAT/////////////////9HAE//////////////////RwBIiIiIiIiIiIiIiI
iIiEcARERERERERERERERERERHAETExMTExMTExMTs7OSXRwBMzMzMzMzMzMzMzMzMzEAABERERE
REREREREREREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD/////////////////////wAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
AYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAD
wAAAB////////////////ygAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAHd3d3d3d3d0RERERERERHT///////+EdP///////4R0////////hHT///
////+EdP///////4R0////////hHT///////+EdP///////4R0iIiIiIiIhHTMzMzMzMzEfERERE
REREwAAAAAAAAAAAAAAAAAAAAAD//wAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAP//AAD//wAAAAABAAIAICAQAAEABADoAgAAAgAQEBAAAQAEACgB
AAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAIDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property>
<property id="49" name="UserComponentTypeName" dataType="System.String" state="default" isArray="false" description="" typeConverter="" UITypeEditor="" containsID="false" expressionType="None">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property>
<property id="95" name="VSTAProjectName" dataType="System.String" state="default" isArray="false" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None">ScriptComponent_a0e32ae44e37460ea174485204a287d4</property>
<property id="96" name="ScriptLanguage" dataType="System.String" state="default" isArray="false" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" UITypeEditor="" containsID="false" expressionType="None">VisualBasic</property></properties>
<connections>
<connection id="63" name="CrmConnection" description="" connectionManagerID="{9cab3e7c-579f-4fad-9af8-fc4294e51641}" /></connections>
<inputs>
<input id="39" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="True">
<externalMetadataColumn id="98" name="WorkflowId" description="" precision="0" scale="0" length="0" dataType="guid" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="99" name="EntityId" description="" precision="0" scale="0" length="0" dataType="guid" codePage="0" mappedColumnId="0" /></externalMetadataColumns></input>
</inputs>
<outputs>
<output id="86" name="Output" description="" exclusionGroup="1" synchronousInputId="39" deleteOutputOnPathDetached="false" hasSideEffects="false" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><outputColumns>
<outputColumn id="88" name="Id" description="" lineageId="88" precision="0" scale="0" length="0" dataType="guid" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" /></outputColumns><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>