<component id="43" name="Dynamics CRM Assign" 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="47" 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_1c4b72b7e05c443890600849efb3e553.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_1c4b72b7e05c443890600849efb3e553.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("b427fd6b-2a0d-4223-ad21-314b434a10df")> 

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

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></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[\scriptcomponent_1c4b72b7e05c443890600849efb3e553.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_1c4b72b7e05c443890600849efb3e553.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_1c4b72b7e05c443890600849efb3e553.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{A39CF8E5-32DB-4F50-B8E5-A7B922BB7F51}</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.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.Reflection
Imports System.Diagnostics
Imports System.Web.Services.Protocols

Imports Microsoft.SqlServer.Dts.Pipeline
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
Imports CRM3 = CozyRoc.Dynamics.Crm.Service


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ColumnMappings()> _
<SortProperties(New String() {"CrmConnection"})> _
<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 aen As String = CStr(Row.Buffer(m_aenIndex))
            Dim aei As Guid = New Guid(Row.Buffer(m_aeiIndex).ToString())
            Dim ten As String = CStr(Row.Buffer(m_tenIndex))
            Dim tei As Guid = New Guid(Row.Buffer(m_teiIndex).ToString())

            If Not m_service2011 Is Nothing Then
                ' CRM 2011
                Dim req As New CRM2011.OrganizationRequest
                req.RequestName = "Assign"

                ' Setup assignee.
                Dim assignee As New CRM2011.EntityReference
                assignee.LogicalName = aen
                assignee.Id = aei
                req("Assignee") = assignee

                ' Setup target.
                Dim target As New CRM2011.EntityReference
                target.LogicalName = ten
                target.Id = tei
                req("Target") = target

                ' Execute action.
                Call m_service2011.Execute(req)
            ElseIf Not m_service4 Is Nothing Then
                ' CRM 4.0
                Dim req As New CRM4.AssignRequest

                ' Setup assignee.
                Dim assignee As New CRM4.SecurityPrincipal
                assignee.Type = CType( _
                    System.Enum.Parse(GetType(CRM4.SecurityPrincipalType), aen), _
                    CRM4.SecurityPrincipalType)
                assignee.PrincipalId = aei
                req.Assignee = assignee

                ' Setup target.
                Dim target As New CRM4.TargetOwnedDynamic
                target.EntityName = ten
                target.EntityId = tei
                req.Target = target

                ' Execute action.
                Call m_service4.Execute(req)
            Else
                ' CRM 3.0
                Dim req As New CRM3.AssignRequest

                ' Setup assignee.
                Dim assignee As New CRM3.SecurityPrincipal
                assignee.Type = CType( _
                    System.Enum.Parse(GetType(CRM3.SecurityPrincipalType), aen), _
                    CRM3.SecurityPrincipalType)
                assignee.PrincipalId = aei
                req.Assignee = assignee

                ' Setup target.
                Dim target As New CRM3.TargetOwnedDynamic
                target.EntityName = ten
                target.EntityId = tei
                req.Target = target

                ' Execute action.
                Call m_service3.Execute(req)
            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)
        m_service2011 = TryCast(service, CRM2011.OrganizationServiceClient)
        If m_service2011 Is Nothing Then
            m_service4 = TryCast(m_connection.GetService(0), CRM4.CrmService)   ' 0 - CRM Service
            If m_service4 Is Nothing Then
                m_service3 = TryCast(m_connection.GetService(0), CRM3.CrmService)   ' 0 - CRM Service
                If m_service3 Is Nothing Then
                    Throw New Exception("Unhandled service object.")
                End If
            End If
        End If

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

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

        inputCol = GetInputColumn_("AssigneeEntityId")
        m_aeiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)

        inputCol = GetInputColumn_("TargetEntityName")
        m_tenIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)

        inputCol = GetInputColumn_("TargetEntityId")
        m_teiIndex = 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 = 0 OrElse _
                input.InputColumnCollection.Count < 4) 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 assignee entity.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "AssigneeEntityName"
        column.DataType = DataType.DT_WSTR
        column.Length = 100

        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "AssigneeEntityId"
        column.DataType = DataType.DT_GUID

        ' Setup target entity.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "TargetEntityName"
        column.DataType = DataType.DT_WSTR
        column.Length = 100

        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "TargetEntityId"
        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 Assign", _
            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_service3 As CRM4.CrmService
    Private m_aenIndex As Integer
    Private m_aeiIndex As Integer
    Private m_tenIndex As Integer
    Private m_teiIndex As Integer
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="48" 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_1c4b72b7e05c443890600849efb3e553.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
QQYOAKoGgAMiAAQH1wYiAEkHLAcGALkHqAcGAOYH0QcmAE0IOAgmAJoIhAgmALMIhAgmAOAIyAgG
AAoJ9wgKAEkJIgkKAGEJEwAmAJYJeQkGAMsJqwkGAOkJ5gEGAA0K5gEKACYKEwAGAGoKSwoGAH4K
5gESAIUKxQMGAJIK5gEeAKgKQQYeANcKQQYeAAILQQYeAB8LQQYeAGILQQYGAJEL5gEiAJYL1wYi
AKYL1wYiALoLLAciAMwLLAciANoLLAcqAB8MAQwGAC0M5gEKAEIMIgkiAH4M1wYiAJsMLAcGALEM
5gEiAAgNLAciAB8NLAciACgNLAcKADANIgkuAFcNTA0GALoN5gEWAMANxQMeAOQNQQYGAEMO5gEe
AGcOQQYeAMAOQQYeAN4OQQYaAE0POwUGAJEPfg8GAN0P5gESAPEPxQMOADoQGBAOAFYQGBAOAG4Q
GBAOAIYQGBAmAJoQhAgmAK8QhAgGANMQwRAGAPoQ6RAGAA0R9wgGAHYRqwkGAJYRqwkGALQRwRAG
ANERSwoGAN8RwRAGAPoRwRAGABUSwRAGAC4SwRAGAEcSwRAGAGQSwRAAAAAAAQAAAAAAAQABAAAA
AAApADcABQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUBAACHAAAADQAFAAgABQEA
AJUAAAANAAUADwABAAAAsAC8AB0ABgARAAEAAAD0ALwAKQAGABYAAQAAAAIBvAANAAgAGgABAAAA
DgG8AA0ACQAcAAEAAAAYAbwAIAAKAB0AAAAAACMBLwENABMAKAAAARAAdAG8AEkAFQAsADEACAIg
ADEAMQItADEAUwI6ADEAeAJHACEAVAOQAAYAAgHHAAYADgHLAAEACAXcAAEACAXcAAEAmgYBAQEA
uQYEAQEAHgcIAQEAVAcMAQEAXwcMAQEAagcQAQEAdQcQAQEAgAcQAQEAiwcQAREAyQcXAREA8gcb
AREAZQg5AREAbQg9AQghAAAAAAYYuQETAAEAECEAAAAABhi5ARMAAQAYIQAAAAARGPQBFwABAEQh
AAAAABMI+wEbAAEAXCEAAAAAEwghAigAAQB0IQAAAAATCEoCNQABAIwhAAAAABMIaAJCAAEApCEA
AAAARgKuAmMAAQDAIQAAAABGArcCaAACANQhAAAAAIMAyAJsAAIA7CEAAAAARgLQAnEAAgAAIgAA
AAARANkCeAACABwiAAAAAAEA9wKAAAMAOCIAAAAABhi5ARMABABAIgAAAAADCAsDiwAEAHQiAAAA
AAYYuQETAAQAiCIAAAAABhi5Aa8ABACYIgAAAABGCkgEuQAIAKwiAAAAAEYKXwS5AAgAwCIAAAAA
hgB3BL4ACADYIgAAAACGAH8EvgAIAPAiAAAAAAYYuQETAAgAECMAAAAARgLGBM8ACABAIwAAAABG
A9sE1gAKAFQjAAAAAEYD7gTWAAsAWCMAAAAABhi5AeAADABoIwAAAAAGCHwF5gANAJQjAAAAAAYY
uQHgAA0ApCMAAAAABhi5ARMADgCsIwAAAABGAu4E1gAOAOwlAAAAAEYCnAUTAA8AZCcAAAAARgKn
BRMADwB4JwAAAAAGALMF8AAPADQoAAAAAEYCxwUTABAAMCkAAAAABgh8BXEAEABIKQAAAAAGCNwF
9gAQAFQpAAAAAAEI9AW5ABEAdCkAAAAAAQAKBvYAEQCgKQAAAAABAH0G+wASAEgqAAAAAAMYuQET
ABMAUCoAAAAAFgj+Bx8BEwCMKgAAAAAWCBIIJAETAKAqAAAAABYIHggpARMAqCoAAAAAERj0ARcA
FAC8KgAAAAAGGLkBEwAUAMQqAAAAABYIeghAARQAAAABALUCAAABAO4CAAABAO4CAAABACYEAAAC
ADAEAAADADkEAAAEAEEEAAABANMEAAACAEEEAAABAEEEAAABAAQFAAABACYEAAABACYEAAABAAQF
AAABALwFAAABAO4FAAABABUGAAABAI0GAAABACoICQC5ARMAmQC5AUoBqQC5AVkBEQC5ARMAsQC5
ARMAJAC5ARMALAC5ARMANAC5ARMAPAC5ARMAJAALA4sALAALA4sANAALA4sAPAALA4sAuQC5ARMA
wQC5ARMAyQC5AfYA0QDaCfIBGQCuAmMAGQC3AmgAKQD7Cf8BGQDQAnEA4QAXCg8CGQC5ARMA6QC5
AR8CRABUA5AATAB6CIsATABBCpwCTAC5ARMA8QC5AakCOQC5Aa8AAQF3BL4AAQF/BL4ACQG5AakC
UQC5ARMAQQDBCrkCEQHuCr8CGQEPC8UCIQEYC2gAEQFCC8wCKQEPC9ICMQF7C+YAOQA3DN4CSQAP
C+MCeQHQAugCOQG5AfYASQG5ARMASQFODPYAQQG5ARMAQQFeDPYAQQFuDO0CSQF1DPQCcQCTDPoC
WQG5ARMAUQG5ARMAkQG2DAMDeQG8DAoDUQHGDA8DUQHPDO0CWQHfDBYDYQG5ARMAYQHsDPYAYQH7
DO0CWQEUDR0DeQCTDCQDsQE8DS0DaQFfDTQDuQFqDXEAsQF3DRcAcQGJDXEAQQCcBRMAWQCVDWYD
aQCnDRMAaQCvDeMCcQG5AfYAUQDSDWsDyQH5DXEDIQE3DGgAYQALDmgA0QEZDncDQQCnBRMAaQAv
DhMA+QA1DoYD2QG5AfYAIQFYDr4AIQGEDosD4QGeDmgAMQGoDvYAUQDHBRMAGQGeDmgAIQEGD5wD
8QErD6kC4QE2DxMA8QE2DxMA8QFAD6ID6QFED/YA6QFWD6gD6QFjD68D+QBuDwEBEQF0D8QD8QEP
C88D4QGdD9YDAQKrD9wDYQC3D2gA6QEYC2gAAQLUD74ACQLpDxMAEQK5ARMAGQK5AfYAIQK5AQAE
KQK5ARMAMQK5AfYAOQK5AfYAQQK5AfYAKQDcEG8EgQC5AXUEkQC5ARMAUQICEZIEUQIIEZIEWQK5
ARMAYQK5Aa8DaQK5ARMAcQK5AfYAeQK5AfYAgQK5AfYAiQK5AfYAkQK5AfYAmQK5AfYAoQK5AfYA
qQK5AfYAKQCDAMABLgD7A14FLgDLA6UELgDzAyEFLgADBK4CLgALBCEFLgDDA5wELgDTA8QELgDb
A9EELgDrAK4CLgALAfsELgDjA64CLgDrAwEFQAArAHcBQAATAFABQwAbAF8BQwATAFABSQCDAN4B
YwAbAF8BYwATAFABaQCDANEBgAArAHcBgwBzAHcBgwAbAF8BgwB7AHcBiQCDAKwBoAArAHcBowDD
ACcCowATAFABwAArAHcBwwDrAK4CwwATAFAB4AArAHcB4wALAa4CAAETAFABAAErAHcBAwELAa4C
IAETAFABIAErAHcBKQGDAzQEKQGLA2EEKQF7Ax0EQAETAFABQAErAHcBYAErAHcBYAETAFABYwFb
A3cBYwFzA3cBYwFrAwYEYwELAa4CYwFjA/IDaQETAIkEgAErAHcBiQETAIkEoAErAHcBqQG7A3cB
wAETAFABwAErAHcB4AErAHcBAAITAFABAAIrAHcBQAMLAa4CgAMLAa4CmAGdAaIBpwH3AfsBBgIL
AhoCGgKiArQCtAL3AfcB2QI6A30DkQO0AwsCvQP3AeADfQSEBJcEBAABAAYABQAHAAYACQAIAAsA
CQAMAAsADQANAAAA3QFPAAAAlgJUAAAARQJZAAAAogJeAAAAXgOYAAAAiwTCAAAAngTCAAAAjgXr
AAAAjgUTAQAAlgfCAAAAuQcvAQAAMAg0AQAAKghFAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIA
DwALAAIAEgANAAIAEwAPAAIAGwARAAIAIwATAAEAJAATAAIAJQAVAAIAKQAXAAIAKgAZAAEAKwAZ
AAIALgAbAHUAdQCIAHwBgwGKAZEBiQKQAgSAAAABAAAAAAAAAAAAAAAAALwAAAACAAAAAAAAAAAA
AAABAAoAAAAAAAgAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQBqAwAAAAAKAAAAAAAA
AAAAAACmAKgDAAAAAAoAAAAAAAAAAAAAAKYA9gMAAAAACgAAAAAAAAAAAAAApgAYBQAAAAAKAAAA
AAAAAAAAAACmAB0GAAAAAAEAAAAAAAAAAAAAAJ0AxgYAAAAAAgAAAAAAAAAAAAAAAQDmAQAAAAAC
AAAAAAAAAAAAAAAKAO0LAAAAAAIAAAAAAAAAAAAAAAEATA0AAAAAAAAAAAEAAAAqEQAABQAEAAYA
BAAAABAADADsAgAAEAAZAOwCAAAAABsA7AItABUCLQCXAgAAADxNb2R1bGU+AG1zY29ybGliAE1p
Y3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF8xYzRiNzJi
N2UwNWM0NDM4OTA2MDA4NDllZmIzZTU1My52YnByb2ouTXkATXlDb21wdXRlcgBNeVByb2plY3QA
TXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1ZmZlcgBTY3Jp
cHRDb21wb25lbnRfMWM0YjcyYjdlMDVjNDQzODkwNjAwODQ5ZWZiM2U1NTMudmJwcm9qAFVzZXJD
b21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4ATXlSZXNvdXJjZXMAU2Ny
aXB0Q29tcG9uZW50XzFjNGI3MmI3ZTA1YzQ0Mzg5MDYwMDg0OWVmYjNlNTUzLnZicHJvai5NeS5S
ZXNvdXJjZXMATXlTZXR0aW5ncwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2
aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMA
Q29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0ZXJPYmpl
Y3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2VyAGdldF9V
c2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2VydmljZXNP
YmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRIYXNoQ29k
ZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFuY2UARGlz
cG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15
U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3RhbmNlAENv
enlSb2MuU1NJU1BsdXMuMjAwOABDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFNjcmlwdEJ1ZmZlclBs
dXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5Q
aXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGluZUhvc3QA
UGlwZWxpbmVCdWZmZXIAQ29tcG9uZW50AE9iamVjdElEAElzSW5wdXQAQnVmZmVyAGdldF9TdGF0
aWNJbnB1dENvbHVtbnMAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3Nl
dABTdGF0aWNJbnB1dENvbHVtbnMAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQ
bHVzAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0X1Byb2Nlc3NJbnB1dABJbnB1dF9Qcm9jZXNz
SW5wdXRSb3cAUm93AFBhcmVudENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1J1bnRp
bWVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBJRFRTQ29ubmVj
dGlvbk1hbmFnZXIxMDAAZ2V0X0NybUNvbm5lY3Rpb24AQ3JtQ29ubmVjdGlvbgBQcmVFeGVjdXRl
AFBvc3RFeGVjdXRlAFZhbGlkYXRlAGVyck1lc3NhZ2UAUmVpbml0aWFsaXplTWV0YURhdGEAc2V0
X0NybUNvbm5lY3Rpb24AdmFsdWUAZ2V0X0NybUNvbm5lY3Rpb25UeXBlAEZpcmVFcnJvcl8AbWVz
c2FnZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2Vy
dmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNJbnB1dENvbHVtbjEwMABHZXRJbnB1dENvbHVt
bl8AZXh0ZXJuYWxOYW1lAG1fY3JtQ29ubmVjdGlvbgBJQ3JtQ29ubmVjdGlvbgBtX2Nvbm5lY3Rp
b24AQ296eVJvYy5EeW5hbWljcwBDb3p5Um9jLkR5bmFtaWNzLkNybTIwMTEuT3JnYW5pemF0aW9u
U2VydmljZQBPcmdhbml6YXRpb25TZXJ2aWNlQ2xpZW50AG1fc2VydmljZTIwMTEAQ296eVJvYy5E
eW5hbWljcy5Dcm0uU2VydmljZQBDcm1TZXJ2aWNlAG1fc2VydmljZTQAbV9zZXJ2aWNlMwBtX2Fl
bkluZGV4AG1fYWVpSW5kZXgAbV90ZW5JbmRleABtX3RlaUluZGV4AENybUNvbm5lY3Rpb25UeXBl
AFN5c3RlbS5SZXNvdXJjZXMAUmVzb3VyY2VNYW5hZ2VyAF9yZXNNZ3IAU3lzdGVtLkdsb2JhbGl6
YXRpb24AQ3VsdHVyZUluZm8AX3Jlc0N1bHR1cmUAZ2V0X1Jlc291cmNlTWFuYWdlcgBnZXRfQ3Vs
dHVyZQBzZXRfQ3VsdHVyZQBWYWx1ZQBDdWx0dXJlAFN5c3RlbS5Db25maWd1cmF0aW9uAEFwcGxp
Y2F0aW9uU2V0dGluZ3NCYXNlAG1fVmFsdWUAbV9TeW5jT2JqZWN0AGdldF9WYWx1ZQBTeXN0ZW0u
Q29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0
YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVt
LkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNp
Yy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1l
QXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1
dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmpl
Y3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3Jl
YXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAc2V0X1ZhbHVlAFN5c3RlbS5S
dW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBTY3JpcHRC
dWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRf
Q29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0
aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQASURUU1J1bnRpbWVDb25uZWN0aW9uQ29s
bGVjdGlvbjEwMABnZXRfUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uAElEVFNSdW50aW1lQ29u
bmVjdGlvbjEwMABnZXRfQ29ubmVjdGlvbk1hbmFnZXIAR3VpZABFbnRpdHlSZWZlcmVuY2UAT3Jn
YW5pemF0aW9uUmVxdWVzdABTZWN1cml0eVByaW5jaXBhbABBc3NpZ25SZXF1ZXN0AFRhcmdldE93
bmVkRHluYW1pYwBTeXN0ZW0uV2ViLlNlcnZpY2VzAFN5c3RlbS5XZWIuU2VydmljZXMuUHJvdG9j
b2xzAFNvYXBFeGNlcHRpb24ARXhjZXB0aW9uAGdldF9CdWZmZXIAQ29udmVyc2lvbnMAc2V0X1Jl
cXVlc3ROYW1lAHNldF9Mb2dpY2FsTmFtZQBzZXRfSWQAc2V0X0l0ZW0AT3JnYW5pemF0aW9uUmVz
cG9uc2UARXhlY3V0ZQBTZWN1cml0eVByaW5jaXBhbFR5cGUARW51bQBQYXJzZQBUb0ludGVnZXIA
c2V0X1R5cGUAc2V0X1ByaW5jaXBhbElkAHNldF9Bc3NpZ25lZQBzZXRfRW50aXR5TmFtZQBzZXRf
RW50aXR5SWQAVGFyZ2V0T3duZWQAc2V0X1RhcmdldABSZXNwb25zZQBSZXF1ZXN0AFByb2plY3RE
YXRhAFNldFByb2plY3RFcnJvcgBTeXN0ZW0uWG1sAFhtbE5vZGUAZ2V0X0RldGFpbABnZXRfSW5u
ZXJYbWwAQ2xlYXJQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQWNxdWlyZUNvbm5lY3Rpb24AQ29u
bmVjdABHZXRTZXJ2aWNlAEludDMyAFBpcGVsaW5lQ29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50
AElEVFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9CdWZmZXJNYW5hZ2VyAGdldF9MaW5lYWdlSUQARmlu
ZENvbHVtbkJ5TGluZWFnZUlEAENsb3NlAElzTnVsbE9yRW1wdHkAQXBwbGljYXRpb25FeGNlcHRp
b24AZ2V0X0lzQXR0YWNoZWQASURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfSW5wdXRD
b2x1bW5Db2xsZWN0aW9uAGdldF9Db3VudABzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABJRFRTRXh0
ZXJuYWxNZXRhZGF0YUNvbHVtbjEwMABJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rp
b24xMDAAZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1bW5Db2xsZWN0aW9uAHNldF9Jc1VzZWQAUmVt
b3ZlQWxsAE5ldwBzZXRfTmFtZQBEYXRhVHlwZQBzZXRfRGF0YVR5cGUAc2V0X0xlbmd0aABFbXB0
eQBGaXJlRXJyb3IAU3lzdGVtLkNvbGxlY3Rpb25zAElFbnVtZXJhdG9yAEdldEVudW1lcmF0b3IA
Z2V0X0N1cnJlbnQAZ2V0X0V4dGVybmFsTWV0YWRhdGFDb2x1bW5JRABNb3ZlTmV4dABJRGlzcG9z
YWJsZQBEaXNwb3NlAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlS
b2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUA
U29ydFByb3BlcnRpZXNBdHRyaWJ1dGUAQ29sdW1uTWFwcGluZ3NBdHRyaWJ1dGUAQ29ubmVjdGlv
bkF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBTeXN0ZW0u
UmVmbGVjdGlvbgBBc3NlbWJseQBnZXRfQXNzZW1ibHkAU3lzdGVtLlRocmVhZGluZwBNb25pdG9y
AEVudGVyAEV4aXQARGVidWdnZXJOb25Vc2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRf
MWM0YjcyYjdlMDVjNDQzODkwNjAwODQ5ZWZiM2U1NTMudmJwcm9qLlJlc291cmNlcy5yZXNvdXJj
ZXMAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0
dHJpYnV0ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1i
bHlUcmFkZW1hcmtBdHRyaWJ1dGUAQXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQ
cm9kdWN0QXR0cmlidXRlAEFzc2VtYmx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0
aW9uQXR0cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50XzFjNGI3
MmI3ZTA1YzQ0Mzg5MDYwMDg0OWVmYjNlNTUzLnZicHJvai5kbGwAAAALSQBuAHAAdQB0AAAbQwBy
AG0AQwBvAG4AbgBlAGMAdABpAG8AbgAADUEAcwBzAGkAZwBuAAARQQBzAHMAaQBnAG4AZQBlAAAN
VABhAHIAZwBlAHQAADNVAG4AaABhAG4AZABsAGUAZAAgAHMAZQByAHYAaQBjAGUAIABvAGIAagBl
AGMAdAAuAAAlQQBzAHMAaQBnAG4AZQBlAEUAbgB0AGkAdAB5AE4AYQBtAGUAACFBAHMAcwBpAGcA
bgBlAGUARQBuAHQAaQB0AHkASQBkAAAhVABhAHIAZwBlAHQARQBuAHQAaQB0AHkATgBhAG0AZQAA
HVQAYQByAGcAZQB0AEUAbgB0AGkAdAB5AEkAZAAAP1MAZQBsAGUAYwB0ACAARAB5AG4AYQBtAGkA
YwBzACAAQwBSAE0AIABjAG8AbgBuAGUAYwB0AGkAbwBuAC4AACVNAGEAcAAgAGkAbgBwAHUAdAAg
AGMAbwBsAHUAbQBuAHMALgAAFU4AbwAgAGkAbgBwAHUAdABzAC4AABlEAFkATgBBAE0ASQBDAFMA
LQBDAFIATQABJ0QAeQBuAGEAbQBpAGMAcwAgAEMAUgBNACAAQQBzAHMAaQBnAG4AAC9JAG4AcAB1
AHQAIABjAG8AbAB1AG0AbgAgAG4AbwB0ACAAZgBvAHUAbgBkAC4AADFNAHkALgBSAGUAcwBvAHUA
cgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAFZh5Mtq02JEprwvo5epLO4ACLd6XFYZ
NOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgB
EhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAH
EAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImEXc2AgMyRCSAE
ARIhCAISJQQgAB0OAyAAAgQoAB0OAwYSJAMGEigGIAIBCBIlBSABARIcAwYSIQUgAQESIQQgABIt
BCgAEi0FIAECEA4EIAEBDgUgARIxDgIGDgMGEjUDBhI5AwYSPQIGCAMoAA4DBhJBAwYSRQQAABJB
BAAAEkUFAAEBEkUECAASQQQIABJFAwYSNAIGHAQAABI0BAgAEjQFIAEBEVEIAQABAAAAAAAFIAIB
Dg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgB
EhQEBwESDAQHARIIBAcBEhEEBwESFBMBAA5NeS5XZWJTZXJ2aWNlcwAAEAEAC015LkNvbXB1dGVy
AAAMAQAHTXkuVXNlcgAAEwEADk15LkFwcGxpY2F0aW9uAAAEAAEcHAMHAQIDBwEIBgABEhURbQQH
ARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlBy
b3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3Nl
X19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAYHAhMAEwAEIAEBAgUBAAAA
AAQHAR0OBSAAEoCJBSAAEoCNBiABEoCRHAUgABKAlQYgARKAmRwEBwESLQQgABIlBCABHAgEAAEO
HAYgAQERgJ0FIAIBDhwIIAESgMESgKUGAAIcEhUOBAABCBwGIAEBEYDFBiABARKAqQYgAQESgM0I
IAESgNESgNUGAAEBEoC5BSAAEoDdKwcPEYCdDhGAnQ4SgKESgKUSgKESgKkSgK0SgLESgKkSgK0S
gLESgLUSgLkEIAEcHAUgABKA5QUgABKA6QUgAggICAgHAxKAkRIxHAQAAQIOBSAAEoDxCgcEAgIS
gJESgLkFIAASgPkFIAASgPUGIAEBEYD9BCABAQgIBwISgPUSgJEGBwIdDh0OCiAGAQgODg4IEAIG
IAESgPUcBSAAEoEBAyAAHBEHBhKA9RIxEoCREjESMRKBAQ0BAAhWYWxpZGF0ZQAABSABAR0OFgEA
AQAAAA1Dcm1Db25uZWN0aW9uAAAWAQARQ3JtQ29ubmVjdGlvblR5cGUAACwBACdTZWxlY3QgRHlu
YW1pY3MgQ1JNIENvbm5lY3Rpb24gTWFuYWdlci4AAA0BAAhTZXR0aW5ncwAABSAAEoElByACAQ4S
gSUGBwISQRJBBAcBEkUIAQACAAAAAAAEAAEBHAQHARI0CAEACAAAAAAAHgEAAQBUAhZXcmFwTm9u
RXhjZXB0aW9uVGhyb3dzAQwBAAcxLjAuMC4wAAApAQAkYjQyN2ZkNmItMmEwZC00MjIzLWFkMjEt
MzE0YjQzNGExMGRmAAAFAQABAAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIwMTMAADwBADdT
Y3JpcHRDb21wb25lbnRfMWM0YjcyYjdlMDVjNDQzODkwNjAwODQ5ZWZiM2U1NTMudmJwcm9qAAAO
AQAJTWljcm9zb2Z0AAAAAABwUwAAAAAAAAAAAACOUwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gFMAAAAAAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAoAACADgAA
AEgAAIAQAAAAYAAAgAAAAAAAAAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAAAAAAAAAA
AAABAAB/AACoAACAAAAAAAAAAAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAABAAAAAADY
AAAAAAAAAAAAAAAAAAAAAAABAAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAAAAAAAAAA
AAAAAAAAAAABAAAAAAAIAQAAgGUAAOgCAAAAAAAAAAAAAGhoAAAoAQAAAAAAAAAAAACQaQAAIgAA
AAAAAAAAAAAAGGEAAGgEAAAAAAAAAAAAAGgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4A
RgBPAAAAAAC9BO/+AAABAAAAAQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAA
AAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQA
aQBvAG4AAAAAAAAAsATIAwAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACkAwAAAQAw
ADAAMAAwADAANABiADAAAAA0AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0AaQBjAHIA
bwBzAG8AZgB0AAAAmAA4AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAFMAYwBy
AGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AMQBjADQAYgA3ADIAYgA3AGUAMAA1AGMANAA0ADMA
OAA5ADAANgAwADAAOAA0ADkAZQBmAGIAMwBlADUANQAzAC4AdgBiAHAAcgBvAGoAAAAwAAgAAQBG
AGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJAG4AdABlAHIA
bgBhAGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AMQBjADQAYgA3
ADIAYgA3AGUAMAA1AGMANAA0ADMAOAA5ADAANgAwADAAOAA0ADkAZQBmAGIAMwBlADUANQAzAC4A
dgBiAHAAcgBvAGoALgBkAGwAbAAAAFwAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAA
AEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAwADEAMwAAAAAA
oAA8AAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBt
AHAAbwBuAGUAbgB0AF8AMQBjADQAYgA3ADIAYgA3AGUAMAA1AGMANAA0ADMAOAA5ADAANgAwADAA
OAA0ADkAZQBmAGIAMwBlADUANQAzAC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAJAAOAABAFAAcgBv
AGQAdQBjAHQATgBhAG0AZQAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwAxAGMA
NABiADcAMgBiADcAZQAwADUAYwA0ADQAMwA4ADkAMAA2ADAAMAA4ADQAOQBlAGYAYgAzAGUANQA1
ADMALgB2AGIAcAByAG8AagAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADEA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAoDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property>
<property id="55" 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="96" 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_1c4b72b7e05c443890600849efb3e553</property>
<property id="97" 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="68" name="CrmConnection" description="" connectionManagerID="{9cab3e7c-579f-4fad-9af8-fc4294e51641}" /></connections>
<inputs>
<input id="45" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="True">
<externalMetadataColumn id="70" name="AssigneeEntityName" description="" precision="0" scale="0" length="100" dataType="wstr" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="71" name="AssigneeEntityId" description="" precision="0" scale="0" length="0" dataType="guid" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="72" name="TargetEntityName" description="" precision="0" scale="0" length="100" dataType="wstr" codePage="0" mappedColumnId="0" />
<externalMetadataColumn id="73" name="TargetEntityId" description="" precision="0" scale="0" length="0" dataType="guid" codePage="0" mappedColumnId="0" /></externalMetadataColumns></input>
</inputs>
</component>