<component id="1" name="Salesforce Get Updated Source" 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="5" 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[\scriptcomponent_48f452701a014b61911155c55d2eb9cf.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_48f452701a014b61911155c55d2eb9cf.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_48f452701a014b61911155c55d2eb9cf.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{87D6D840-B544-4B26-9536-011DBC18BE59}</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.Sforce, 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\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 OutputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public WriteOnly Property [Id]() As String
        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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"Id"}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\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_48f452701a014b61911155c55d2eb9cf.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_48f452701a014b61911155c55d2eb9cf.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("f747f80f-dbd2-4eaa-afbe-188b50dc6674")> 

' 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\resources.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\componentwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public OutputBuffer As OutputBuffer

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = MyBase.ComponentMetaData.OutputCollection("Output").ID Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I))
            End If
        Next

        CreateNewOutputRows()

        FinishOutputs()
        MarkOutputsFinished()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property Connection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("Connection").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\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 Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CozyRoc.Sforce.Service


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "Connection", "SalesforceObject", _
    "IsStartDateVariable", "StartDate", "StartDateVariable", _
    "IsEndDateVariable", "EndDate", "EndDateVariable"})> _
<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Dim startDate As DateTime = GetDate_(m_startDate, Me.IsStartDateVariable)
        Dim endDate As DateTime = GetDate_(m_endDate, Me.IsEndDateVariable)

        ' Get updated id list.
        Dim idList() As String = Nothing
        Dim connection As ISforceConnection = CType( _
            MyBase.Connections.Connection.AcquireConnection(Nothing),  _
            ISforceConnection)
        Try
            Dim service As SforceService = CType(connection.Connect(), SforceService)
            idList = service.getUpdated(Me.SalesforceObject, startDate, endDate).ids
        Catch ex As Exception
            Call FireError_(ex.Message)
        Finally
            Call connection.Close()
        End Try

        If Not idList Is Nothing Then
            For Each id As String In idList
                With MyBase.OutputBuffer
                    .AddRow()
                    .Id = id
                End With
            Next
        End If

        Call MyBase.OutputBuffer.SetEndOfRowset()
    End Sub ' CreateNewOutputRows


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

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

            If String.IsNullOrEmpty(Me.SalesforceObject) Then
                Throw New ApplicationException("Select object.")
            End If

            If String.IsNullOrEmpty(m_startDate) Then
                Throw New ApplicationException("Specify start date.")
            End If

            If String.IsNullOrEmpty(m_endDate) Then
                Throw New ApplicationException("Specify end date.")
            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("Connection").ConnectionManagerID = Me.Connection

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

        Validate = result
    End Function    'Validate


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

        ' Setup static.
        Call result.Add("Connection")
        Call result.Add("SalesforceObject")

        ' Setup dynamic.
        Call result.Add("IsStartDateVariable")
        Call result.Add(IIf(Me.IsStartDateVariable, "StartDateVariable", "StartDate"))
        Call result.Add("IsEndDateVariable")
        Call result.Add(IIf(Me.IsEndDateVariable, "EndDateVariable", "EndDate"))

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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of objects in the currently selected Salesforce connection.
    Public Function GetObjectList() As String()
        Dim result As New ArrayList

        Dim connection As ISforceConnection = CType( _
            Me.DesignConnections(Me.Connection).AcquireConnection(Nothing), _
            ISforceConnection)
        Dim service As SforceService = CType(connection.Connect(), SforceService)

        Try
            Dim dgr As DescribeGlobalResult = service.describeGlobal()

            For Each sobject As DescribeGlobalSObjectResult In dgr.sobjects
                If sobject.queryable Then
                    Call result.Add(sobject.name)
                End If
            Next

            Call result.Sort()
        Finally
            Call connection.Close()
        End Try

        GetObjectList = CType(result.ToArray(GetType(String)), String())
    End Function    ' GetObjectList


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select Salesforce object.")> _
    <List("GetObjectList")> _
    Public Property SalesforceObject() As String
        Get
            SalesforceObject = m_object
        End Get
        Set(ByVal value As String)
            m_object = value
        End Set
    End Property    ' SalesforceObject


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specifies if StartDate parameter references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    <NonEssential()> _
    Public Property IsStartDateVariable() As Boolean
        Get
            IsStartDateVariable = m_isStartDateVar
        End Get
        Set(ByVal value As Boolean)
            If m_isStartDateVar <> value Then
                m_isStartDateVar = value
                m_startDate = String.Empty
            End If
        End Set
    End Property    ' IsStartDateVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specify start date.")> _
    Public Property StartDate() As DateTime
        Get
            Dim result As DateTime

            If Not String.IsNullOrEmpty(m_startDate) Then
                result = Convert.ToDateTime(m_startDate)
            End If

            StartDate = result
        End Get
        Set(ByVal value As DateTime)
            m_startDate = value.ToString()
        End Set
    End Property    ' StartDate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specifies variable containing start date.")> _
    <Variable()> _
    Public Property StartDateVariable() As String
        Get
            StartDateVariable = m_startDate
        End Get
        Set(ByVal value As String)
            m_startDate = value
        End Set
    End Property    ' StartDateVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specifies if EndDate parameter references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    <NonEssential()> _
    Public Property IsEndDateVariable() As Boolean
        Get
            IsEndDateVariable = m_isEndDateVar
        End Get
        Set(ByVal value As Boolean)
            If m_isEndDateVar <> value Then
                m_isEndDateVar = value
                m_endDate = String.Empty
            End If
        End Set
    End Property    ' IsEndDateVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specify end date.")> _
    Public Property EndDate() As DateTime
        Get
            Dim result As DateTime

            If Not String.IsNullOrEmpty(m_endDate) Then
                result = Convert.ToDateTime(m_endDate)
            End If

            EndDate = result
        End Get
        Set(ByVal value As DateTime)
            m_endDate = value.ToString()
        End Set
    End Property    ' EndDate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specifies variable containing end date.")> _
    <Variable()> _
    Public Property EndDateVariable() As String
        Get
            EndDateVariable = m_endDate
        End Get
        Set(ByVal value As String)
            m_endDate = value
        End Set
    End Property    ' EndDateVariable
#End Region ' Properties


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


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


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

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

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetDate_(ByVal dateStr As String, ByVal isVar As Boolean) As DateTime
        Dim result As DateTime

        If Not String.IsNullOrEmpty(dateStr) Then
            If isVar Then
                dateStr = GetVariable_(dateStr).ToString()
            End If

            result = Convert.ToDateTime(dateStr)
        End If

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


#Region "Attributes"
    Private m_sforceConnection As String
    Private m_object As String
    Private m_isStartDateVar As Boolean
    Private m_startDate As String
    Private m_isEndDateVar As Boolean
    Private m_endDate As String
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="6" 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_48f452701a014b61911155c55d2eb9cf.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
8wAOABAkAAAAAAYYugETAA8AGCQAAAAARgJFBRMADwAQJQAAAAAGAOcFAwEPAMwlAAAAAAYA+wW5
ABAAaCYAAAAABgAJBrkAEAAcJwAAAAAGCM0FcQAQADQnAAAAAAYIFwa+ABAAQCcAAAAABggsBnEA
EQBYJwAAAAAGCEEGvgARAGQnAAAAAAYIVgbIABIAfCcAAAAABghuBsMAEgCcJwAAAAAGCI8GCQET
AMgnAAAAAAYInQYOARMA2CcAAAAABgirBnEAFADwJwAAAAAGCMEGvgAUAPwnAAAAAAYI1wbIABUA
FCgAAAAABgjtBsMAFQA0KAAAAAAGCAMHCQEWAGAoAAAAAAYIDwcOARYAcCgAAAAABggbB3EAFwCI
KAAAAAAGCC8HvgAXAJQoAAAAAAEIQwe5ABgAtCgAAAAAAQBWB74AGADgKAAAAAABAGkHFAEZADAp
AAAAAAEAfgcZARoAYCkAAAAAAxi6ARMAHABoKQAAAAAWCLcIMwEcAKQpAAAAABYIywg4ARwAuCkA
AAAAFgjXCD0BHADAKQAAAAARGPUBFwAdANQpAAAAAAYYugETAB0A3CkAAAAAFggtCVQBHQAAAAEA
tgIAAAEA7wIAAAEA7wIAAAEAJwQAAAIAMQQAAAMAOgQAAAQAQgQAAAEAZwQAAAEAZwQAAAEAKwUA
AAIAMwUAAAMAPQUAAAEAJwQAAAEAJwQAAAEA8AUAAAEAJgYAAAEAJgYAAAEAJgYAAAEAJgYAAAEA
JgYAAAEAJgYAAAEAJgYAAAEAJgYAAAEAYQcAAAEAdgcAAAEAhwcAAAIAjwcAAAEAZwQJALoBEwCB
ALoBXgGRALoBbQERALoBEwCZALoBEwAkALoBEwAsALoBEwA0ALoBEwA8ALoBEwAkAAwDiwAsAAwD
iwA0AAwDiwA8AAwDiwChALoBEwCpALoBEwCxALoBvgC5AI0KBgIZAK8CYwAZALgCaAApAK4KEwIZ
ANECcQDJAMoKIwIZALoBEwDRALoBMwJEAFUDkABMAC0JiwBMAPQKsAJMALoBEwDZALoBwwA5ALoB
rwA5ADgLyAI5AEELzgLpALoBvgDxAJMEEwDxAJoEEwDxAKkEyAD5ALoBwwBRALoBEwBBAOwL2gIB
ARoM4AIJAT0M5gIRAUYMaAABAXAM8gIZAT0M+AIhAakM+QBZAA8NBAMpASENCQMxAToNDQNBAUUN
uQBJAVkNGAM5AWkNcQBJAXUNFwApAYcNEwDhAI0NNwNRAboBvgAhAbANvgBZAboBEwBZAeUNRANh
AfUNSQNZAf8NUANRAHcOYwOBAT0MaQOJAQ8NBAMxAZ8OcANxAa4OdgN5AbsOyAB5AckOcQBZAdIO
EwDhANcOIAGRAeUOlgNhANECcQABAfAOowNBACQPrgOhAToPtAOZAT0MvQOpAS0JCQOZAVkPEwCx
AboBEwC5AboBvgDBAboBvgDJAboB7QPRAboBvgDZAboBvgDhAboBvgDpAboBEwDxAboB2AQBAroB
vgAJAroBEwApALAQCAZpALoBDgZ5ALoBEwAZAtYQKwYZAtwQKwYhAroBEwApAroBzgIxAroBEwA5
AroBvgBBAroBvgBJAroBvgBRAroBvgBZAroBvgBhAroBvgBpAroBvgBxAroBvgApAIMAwAEuADsD
vQIuABsDvQIuADMD9wYuAEMDugYuACsBlAYuACMDmgYuACsDugYuAPsCNQYuAAMDPgYuAAsDXQYu
ABMDagYuAOsAvQJAACsAiwFAABMAZAFDABsAcwFDABMAZAFJAIMA3gFjABMAZAFjABsAcwFpAIMA
0QGAACsAiwGDABsAcwGDAHMAiwGDAHsAiwGJAIMA8gGgACsAiwGjAMMAOwKjABMAZAHAACsAiwHD
AOsAvQLDABMAZAHgACsAiwHjACsBvQIAASsAiwEAARMAZAEDASsBvQIgASsAiwEgARMAZAFAASsA
iwFAARMAZAFgARMAZAFgASsAiwFjAXMCiwFjASsBvQJjAXsCzANjAYMC3wNjAYsC8wNpAaMCsQRp
AZMCcgRpAZsChgSAASsAiwGJAbsCegWJAaMCsQSJAZsCjQWgASsAiwGpAZsC3wSpAaMCsQSpAasC
iwGpAbMCZAHAARMAZAHAASsAiwHJAaMCsQTJAZsCvwTgASsAiwHpAcMCiwHpAaMCsQTpAZsCrAUA
AisAiwEAAhMAZAEJApsCOQUJArMCZAEJAqMCsQQJAqsCiwEpApsCIgUpAqMCsQRJApsC2wVJAsMC
iwFJAqMCsQSJAhMAIgapAhMAIgbJAvMCiwHAAysBvQIABCsBvQKsAbEBtgG7AQsCDwIaAh8CLgIu
ArYCwwLTAgsC7QL/Ah8DPANbA30DHwIfAgsCnAMfAgsCnAMfAtMCCwLEA5wDFgYdBjAGBAABAAYA
BQAHAAYACQAKAAsACwAMABQADQAWAAAA3gFPAAAAlwJUAAAARgJZAAAAowJeAAAAXwOYAAAAtQTM
AAAAyATRAAAAywTVAAAA1QTMAAAA3AX+AAAA3AXRAAAA5wfRAAAA+AfVAAAADAgmAQAAFgjRAAAA
KAjVAAAAOggmAQAAQgjRAAAAUgjMAAAAcghDAQAA4whIAQAAZwRZAQIABAADAAIABQAFAAIABgAH
AAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAIAFQATAAIAHwAVAAIAJgAXAAEAJwAXAAIA
KAAZAAEAKQAZAAEAKwAbAAIAKgAbAAIALAAdAAEALQAdAAIALgAfAAEALwAfAAIAMAAhAAEAMQAh
AAIAMgAjAAEAMwAjAAIANAAlAAEANQAlAAIANgAnAAIAOwApAAIAPAArAAEAPQArAAIAQAAtAHUA
dQCIAJABlwGeAaUBnQKkAlgDBIAAAAEAAAAAAAAAAAAAAAAAvQAAAAIAAAAAAAAAAAAAAAEACgAA
AAAACAAAAAAAAAAAAAAACgATAAAAAAABAAAAAAAAAAAAAACdAGsDAAAAAAoAAAAAAAAAAAAAAKYA
qQMAAAAACgAAAAAAAAAAAAAApgD3AwAAAAAKAAAAAAAAAAAAAACmAGkFAAAAAAIAAAAAAAAAAAAA
AAEA5wEAAAAACgAAAAAAAAAAAAAApgCGCwAAAAABAAAAAAAAAAAAAACdANEMAAAAAAoAAAAAAAAA
AAAAAKYAOA4AAAAAAAAAAAEAAAD+EAAABQAEAAYABAAAABAADADtAgAAEAAZAO0CAAAAABsA7QIt
ACkCLQCrAgAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxp
Y2F0aW9uAFNjcmlwdENvbXBvbmVudF80OGY0NTI3MDFhMDE0YjYxOTExMTU1YzU1ZDJlYjljZi52
YnByb2ouTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2Jq
ZWN0UHJvdmlkZXJgMQBPdXRwdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50XzQ4ZjQ1MjcwMWEwMTRi
NjE5MTExNTVjNTVkMmViOWNmLnZicHJvagBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlh
YmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNjcmlwdENvbXBvbmVudF80OGY0NTI3MDFhMDE0
YjYxOTExMTU1YzU1ZDJlYjljZi52YnByb2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MATWljcm9z
b2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9y
AE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNj
dG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9u
AG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBn
ZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24A
V2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENy
ZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldElu
c3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRW
YWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMDgAQ296eVJv
Yy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuVHhT
Y3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9uZW50AE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAENvbXBvbmVudABP
YmplY3RJRABJc0lucHV0AEJ1ZmZlcgBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAHNldF9JZABWYWx1
ZQBzZXRfSWRfSXNOdWxsAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAEFkZFJvdwBTZXRFbmRPZlJv
d3NldABFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMASWQASWRfSXNOdWxsAFN0YXRpY091
dHB1dENvbHVtbnMAU2NyaXB0Q29tcG9uZW50UGx1cwBGaW5pc2hPdXRwdXRzAE1hcmtPdXRwdXRz
RmluaXNoZWQAUHJpbWVPdXRwdXQAT3V0cHV0cwBPdXRwdXRJRHMAQnVmZmVycwBDcmVhdGVOZXdP
dXRwdXRSb3dzAFBhcmVudENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1J1bnRpbWVX
cmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUuV3JhcHBlcgBJRFRTQ29ubmVjdGlv
bk1hbmFnZXIxMDAAZ2V0X0Nvbm5lY3Rpb24AQ29ubmVjdGlvbgBWYWxpZGF0ZQBlcnJNZXNzYWdl
AEdldFByb3BlcnRpZXMAR2V0T2JqZWN0TGlzdABzZXRfQ29ubmVjdGlvbgB2YWx1ZQBnZXRfU2Fs
ZXNmb3JjZU9iamVjdABzZXRfU2FsZXNmb3JjZU9iamVjdABnZXRfSXNTdGFydERhdGVWYXJpYWJs
ZQBzZXRfSXNTdGFydERhdGVWYXJpYWJsZQBEYXRlVGltZQBnZXRfU3RhcnREYXRlAHNldF9TdGFy
dERhdGUAZ2V0X1N0YXJ0RGF0ZVZhcmlhYmxlAHNldF9TdGFydERhdGVWYXJpYWJsZQBnZXRfSXNF
bmREYXRlVmFyaWFibGUAc2V0X0lzRW5kRGF0ZVZhcmlhYmxlAGdldF9FbmREYXRlAHNldF9FbmRE
YXRlAGdldF9FbmREYXRlVmFyaWFibGUAc2V0X0VuZERhdGVWYXJpYWJsZQBnZXRfQ29ubmVjdGlv
blR5cGUARmlyZUVycm9yXwBtZXNzYWdlAEdldFZhcmlhYmxlXwB2YXJOYW1lAEdldERhdGVfAGRh
dGVTdHIAaXNWYXIAbV9zZm9yY2VDb25uZWN0aW9uAG1fb2JqZWN0AG1faXNTdGFydERhdGVWYXIA
bV9zdGFydERhdGUAbV9pc0VuZERhdGVWYXIAbV9lbmREYXRlAFNhbGVzZm9yY2VPYmplY3QASXNT
dGFydERhdGVWYXJpYWJsZQBTdGFydERhdGUAU3RhcnREYXRlVmFyaWFibGUASXNFbmREYXRlVmFy
aWFibGUARW5kRGF0ZQBFbmREYXRlVmFyaWFibGUAQ29ubmVjdGlvblR5cGUAU3lzdGVtLlJlc291
cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJl
SW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9DdWx0
dXJlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jhc2UA
bV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0
b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20u
Q29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdn
ZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMA
U3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNv
bXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5D
b21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBl
SGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3Vw
Q29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZp
Y2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAHNldF9JdGVtAFNldE51bGwASW52YWxpZE9w
ZXJhdGlvbkV4Y2VwdGlvbgBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAE1pY3Jv
c29mdC5TcWxTZXJ2ZXIuRFRTUGlwZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBp
cGVsaW5lLldyYXBwZXIASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRh
RGF0YQBJRFRTT3V0cHV0Q29sbGVjdGlvbjEwMABnZXRfT3V0cHV0Q29sbGVjdGlvbgBJRFRTT3V0
cHV0MTAwAGdldF9JdGVtAGdldF9JRABJRFRTUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uMTAw
AGdldF9SdW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24ASURUU1J1bnRpbWVDb25uZWN0aW9uMTAw
AGdldF9Db25uZWN0aW9uTWFuYWdlcgBJU2ZvcmNlQ29ubmVjdGlvbgBDb3p5Um9jLlNmb3JjZQBD
b3p5Um9jLlNmb3JjZS5TZXJ2aWNlAFNmb3JjZVNlcnZpY2UARXhjZXB0aW9uAEFjcXVpcmVDb25u
ZWN0aW9uAENvbm5lY3QAR2V0VXBkYXRlZFJlc3VsdABnZXRVcGRhdGVkAGdldF9pZHMAUHJvamVj
dERhdGEAU2V0UHJvamVjdEVycm9yAGdldF9NZXNzYWdlAENsZWFyUHJvamVjdEVycm9yAENsb3Nl
AElzTnVsbE9yRW1wdHkAQXBwbGljYXRpb25FeGNlcHRpb24Ac2V0X0Nvbm5lY3Rpb25NYW5hZ2Vy
SUQAU3lzdGVtLkNvbGxlY3Rpb25zAEFycmF5TGlzdABBZGQASW50ZXJhY3Rpb24ASUlmAEFycmF5
AFRvQXJyYXkARGVzY3JpYmVHbG9iYWxSZXN1bHQARGVzY3JpYmVHbG9iYWxTT2JqZWN0UmVzdWx0
AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuTWFuYWdlZERUUwBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5S
dW50aW1lAGdldF9EZXNpZ25Db25uZWN0aW9ucwBDb25uZWN0aW9uTWFuYWdlcgBkZXNjcmliZUds
b2JhbABnZXRfc29iamVjdHMAZ2V0X3F1ZXJ5YWJsZQBnZXRfbmFtZQBTb3J0AEVtcHR5AENvbnZl
cnQAVG9EYXRlVGltZQBGaXJlRXJyb3IASURUU1ZhcmlhYmxlczEwMABJRFRTVmFyaWFibGVEaXNw
ZW5zZXIxMDAAZ2V0X1ZhcmlhYmxlRGlzcGVuc2VyAExvY2tPbmVGb3JSZWFkAElEVFNWYXJpYWJs
ZTEwMABVbmxvY2sAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUAQ296eVJv
Yy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAEZpbHRlclByb3BlcnRpZXNBdHRyaWJ1dGUAVmFs
aWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAENvbm5lY3Rp
b25BdHRyaWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUAQ2F0ZWdvcnlBdHRyaWJ1dGUATm9uRXNz
ZW50aWFsQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0
aWVzAExpc3RBdHRyaWJ1dGUAVmFyaWFibGVBdHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNz
ZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3RlbS5UaHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERl
YnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50XzQ4ZjQ1MjcwMWEwMTRi
NjE5MTExNTVjNTVkMmViOWNmLnZicHJvai5SZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9u
UmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNzZW1i
bHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBHdWlkQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0
cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0
ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBB
c3NlbWJseVRpdGxlQXR0cmlidXRlAFNjcmlwdENvbXBvbmVudF80OGY0NTI3MDFhMDE0YjYxOTEx
MTU1YzU1ZDJlYjljZi52YnByb2ouZGxsAAAAgJtJAHMATgB1AGwAbAAgAHAAcgBvAHAAZQByAHQA
eQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUALgAgAEEAcwBz
AGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBtAG4AIABpAG4A
cwB0AGUAYQBkAC4AAAVJAGQAAA1PAHUAdABwAHUAdAAAFUMAbwBuAG4AZQBjAHQAaQBvAG4AADtT
AGUAbABlAGMAdAAgAFMAYQBsAGUAcwBmAG8AcgBjAGUAIABjAG8AbgBuAGUAYwB0AGkAbwBuAC4A
AB1TAGUAbABlAGMAdAAgAG8AYgBqAGUAYwB0AC4AACdTAHAAZQBjAGkAZgB5ACAAcwB0AGEAcgB0
ACAAZABhAHQAZQAuAAAjUwBwAGUAYwBpAGYAeQAgAGUAbgBkACAAZABhAHQAZQAuAAAhUwBhAGwA
ZQBzAGYAbwByAGMAZQBPAGIAagBlAGMAdAAAJ0kAcwBTAHQAYQByAHQARABhAHQAZQBWAGEAcgBp
AGEAYgBsAGUAACNTAHQAYQByAHQARABhAHQAZQBWAGEAcgBpAGEAYgBsAGUAABNTAHQAYQByAHQA
RABhAHQAZQAAI0kAcwBFAG4AZABEAGEAdABlAFYAYQByAGkAYQBiAGwAZQAAH0UAbgBkAEQAYQB0
AGUAVgBhAHIAaQBhAGIAbABlAAAPRQBuAGQARABhAHQAZQAADVMARgBPAFIAQwBFAAA7UwBhAGwA
ZQBzAGYAbwByAGMAZQAgAEcAZQB0ACAAVQBwAGQAYQB0AGUAZAAgAFMAbwB1AHIAYwBlAAAxTQB5
AC4AUgBlAHMAbwB1AHIAYwBlAHMALgBNAHkAUgBlAHMAbwB1AHIAYwBlAHMAAOocebRXinRDkRxs
f4c4BEgACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAES
CAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgE
IAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTq
CImEXc2AgMyRCSAEARIhCAISJQQgAB0OBCABAQ4EIAEBAgMgAAIEKAAdDgMoAA4DKAACAwYSJAMG
EigDBhIcCSADAQgdCB0SJQMGEiEFIAEBEiEEIAASLQQoABItBSABAhAOBCAAETEFIAEBETEEIAEc
DgYgAhExDgICBg4CBgIEKAARMQMGEjUDBhI5BAAAEjUEAAASOQUAAQESOQQIABI1BAgAEjkDBhI0
AgYcBAAAEjQECAASNAUgAQERRQgBAAEAAAAAAAUgAgEODhcBAApNeVRlbXBsYXRlBzguMC4wLjAA
AAQBAAAABhUSGAESDAYVEhgBEggGFRIYARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEAEA
C015LkNvbXB1dGVyAAAMAQAHTXkuVXNlcgAAEwEADk15LkFwcGxpY2F0aW9uAAATAQAOTXkuV2Vi
U2VydmljZXMAAAQAARwcAwcBAgMHAQgGAAESFRFhBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcg
BAEODg4OYQEANFN5c3RlbS5XZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJv
dG9jb2wSQ3JlYXRlX19JbnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUS
GQETAAQKARMABSABARMABgcCEwATAAUBAAAAAAQHAR0OBSACAQgcBCABAQgGBwIdDh0OBSAAEoCB
BSAAEoCFBiABEoCJHAQHAggIBSAAEoCNBiABEoCRHAQHARItBCABHBwDIAAcCiADEoChDhExETEG
AAEBEoCdFwcKEoCVETEdDhExEoCZEoCdDggdDhIcBAABAg4HBwMCAhKAnQQgAQgcBgADHAIcHAcg
ARKAtRIVAh0OBwcCHQ4SgK0FIAASgMEGIAESgMUcBSAAEoC5BiAAHRKAvRgHCBKAlR0OEoCtEoCZ
EoC5EoC9CB0SgL0FAAERMQ4GBwIRMRExCiAGAQgODg4IEAIFIAASgNEIIAIBDhASgM0GIAESgNUc
BwcDHBwSgM0SAQANR2V0UHJvcGVydGllcwAADQEACFZhbGlkYXRlAAAFIAEBHQ5+AQAIAAAACkNv
bm5lY3Rpb24QU2FsZXNmb3JjZU9iamVjdBNJc1N0YXJ0RGF0ZVZhcmlhYmxlCVN0YXJ0RGF0ZRFT
dGFydERhdGVWYXJpYWJsZRFJc0VuZERhdGVWYXJpYWJsZQdFbmREYXRlD0VuZERhdGVWYXJpYWJs
ZQAAEwEADkNvbm5lY3Rpb25UeXBlAAAqAQAlU2VsZWN0IFNhbGVzZm9yY2UgQ29ubmVjdGlvbiBN
YW5hZ2VyLgAADQEACFNldHRpbmdzAAAYAQATU3BlY2lmeSBzdGFydCBkYXRlLgAABiABARGA/UIB
AD1TcGVjaWZpZXMgaWYgU3RhcnREYXRlIHBhcmFtZXRlciByZWZlcmVuY2VzIHBhY2thZ2UgdmFy
aWFibGUuAAAWAQARU3BlY2lmeSBlbmQgZGF0ZS4AAEABADtTcGVjaWZpZXMgaWYgRW5kRGF0ZSBw
YXJhbWV0ZXIgcmVmZXJlbmNlcyBwYWNrYWdlIHZhcmlhYmxlLgAAEgEADUdldE9iamVjdExpc3QA
AB4BABlTZWxlY3QgU2FsZXNmb3JjZSBvYmplY3QuAAAuAQApU3BlY2lmaWVzIHZhcmlhYmxlIGNv
bnRhaW5pbmcgc3RhcnQgZGF0ZS4AACwBACdTcGVjaWZpZXMgdmFyaWFibGUgY29udGFpbmluZyBl
bmQgZGF0ZS4AAAUgABKBCQcgAgEOEoEJBgcCEjUSNQQHARI5CAEAAgAAAAAABAABARwEBwESNAgB
AAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwEMAQAHMS4wLjAuMAAAKQEAJGY3
NDdmODBmLWRiZDItNGVhYS1hZmJlLTE4OGI1MGRjNjY3NAAABQEAAQAAHwEAGkNvcHlyaWdodCBA
IE1pY3Jvc29mdCAyMDEzAAA8AQA3U2NyaXB0Q29tcG9uZW50XzQ4ZjQ1MjcwMWEwMTRiNjE5MTEx
NTVjNTVkMmViOWNmLnZicHJvagAADgEACU1pY3Jvc29mdAAAAAD4VQAAAAAAAAAAAAAOVgAAACAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAA
AAD/JQAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwADAAAAKAAAgA4AAABI
AACAEAAAAGAAAIAAAAAAAAAAAAAAAAAAAAIAAgAAAHgAAIADAAAAkAAAgAAAAAAAAAAAAAAAAAAA
AQAAfwAAqAAAgAAAAAAAAAAAAAAAAAAAAQABAAAAwAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAA2AAA
AAAAAAAAAAAAAAAAAAAAAQAAAAAA6AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA+AAAAAAAAAAAAAAA
AAAAAAAAAQAAAAAACAEAAIBlAADoAgAAAAAAAAAAAABoaAAAKAEAAAAAAAAAAAAAkGkAACIAAAAA
AAAAAAAAABhhAABoBAAAAAAAAAAAAABoBDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYA
TwAAAAAAvQTv/gAAAQAAAAEAAAAAAAAAAQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAA
AEQAAAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkA
bwBuAAAAAAAAALAEyAMAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMAAAEAMAAw
ADAAMAAwADQAYgAwAAAANAAKAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkAYwByAG8A
cwBvAGYAdAAAAJgAOAABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABTAGMAcgBp
AHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADQAOABmADQANQAyADcAMAAxAGEAMAAxADQAYgA2ADEA
OQAxADEAMQA1ADUAYwA1ADUAZAAyAGUAYgA5AGMAZgAuAHYAYgBwAHIAbwBqAAAAMAAIAAEARgBp
AGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQAZQByAG4A
YQBsAE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADQAOABmADQANQAy
ADcAMAAxAGEAMAAxADQAYgA2ADEAOQAxADEAMQA1ADUAYwA1ADUAZAAyAGUAYgA5AGMAZgAuAHYA
YgBwAHIAbwBqAC4AZABsAGwAAABcABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAABD
AG8AcAB5AHIAaQBnAGgAdAAgAEAAIABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADMAAAAAAKAA
PAABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBw
AG8AbgBlAG4AdABfADQAOABmADQANQAyADcAMAAxAGEAMAAxADQAYgA2ADEAOQAxADEAMQA1ADUA
YwA1ADUAZAAyAGUAYgA5AGMAZgAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQAHIAbwBk
AHUAYwB0AE4AYQBtAGUAAAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8ANAA4AGYA
NAA1ADIANwAwADEAYQAwADEANABiADYAMQA5ADEAMQAxADUANQBjADUANQBkADIAZQBiADkAYwBm
AC4AdgBiAHAAcgBvAGoAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4A
MAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEALgAw
AC4AMAAuADAAAAAoAAAAIAAAAEAAAAABAAQAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAd3d3d3d3d3d3d3d3d3dwBEREREREREREREREREREcAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAE////////////
//////RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//
///////////////0cAT/////////////////9HAE//////////////////RwBP//////////////
///0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////
////////////9HAE//////////////////RwBP/////////////////0cASIiIiIiIiIiIiIiIiI
hHAERERERERERERERERERERwBExMTExMTExMTE7Ozkl0cATMzMzMzMzMzMzMzMzMxAAARERERERE
REREREREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
/////////////////////8AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGA
AAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAA8AA
AAf///////////////8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA
////AAAAAAAAAAAAB3d3d3d3d3dERERERERER0////////hHT///////+EdP///////4R0//////
//hHT///////+EdP///////4R0////////hHT///////+EdIiIiIiIiIR0zMzMzMzMxHxERERERE
RMAAAAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAABAAD//wAA//8AAAAAAQACACAgEAABAAQA6AIAAAIAEBAQAAEABAAoAQAA
AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADAAAACA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property>
<property id="13" 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="62" 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_48f452701a014b61911155c55d2eb9cf</property>
<property id="63" 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="53" name="Connection" description="" connectionManagerID="{7f5a9c16-d4a0-4beb-a40d-d15ddf499e9f}" /></connections>
<outputs>
<output id="4" name="Output" description="" exclusionGroup="0" synchronousInputId="0" deleteOutputOnPathDetached="false" hasSideEffects="true" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><outputColumns>
<outputColumn id="25" name="Id" description="" lineageId="25" precision="0" scale="0" length="18" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" /></outputColumns><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>