<component id="1" name="OData 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[\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_f4d40159038844179783ae9b55d0dbd1.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_f4d40159038844179783ae9b55d0dbd1.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2011")> 
<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("571d7201-492b-4a58-a8a9-5d76dd9ab5b8")> 

' 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 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 [atomid]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [atomid_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomtitle]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [atomtitle_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomupdated]() As DateTime
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [atomupdated_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomauthor]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [atomauthor_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomlink]() As String
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [atomlink_IsNull] As Boolean
        Set
            If (value)
                SetNull(4)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomcategory]() As String
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [atomcategory_IsNull] As Boolean
        Set
            If (value)
                SetNull(5)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ROWID]() As Int32
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [ROWID_IsNull] As Boolean
        Set
            If (value)
                SetNull(6)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [State]() As String
        Set
            Me(7) = Value
        End Set
    End Property
    Public WriteOnly Property [State_IsNull] As Boolean
        Set
            If (value)
                SetNull(7)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [City]() As String
        Set
            Me(8) = Value
        End Set
    End Property
    Public WriteOnly Property [City_IsNull] As Boolean
        Set
            If (value)
                SetNull(8)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Year]() As Int32
        Set
            Me(9) = Value
        End Set
    End Property
    Public WriteOnly Property [Year_IsNull] As Boolean
        Set
            If (value)
                SetNull(9)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Population]() As Int32
        Set
            Me(10) = Value
        End Set
    End Property
    Public WriteOnly Property [Population_IsNull] As Boolean
        Set
            If (value)
                SetNull(10)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ViolentCrime]() As Int32
        Set
            Me(11) = Value
        End Set
    End Property
    Public WriteOnly Property [ViolentCrime_IsNull] As Boolean
        Set
            If (value)
                SetNull(11)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [MurderAndNonEgligentManslaughter]() As Int32
        Set
            Me(12) = Value
        End Set
    End Property
    Public WriteOnly Property [MurderAndNonEgligentManslaughter_IsNull] As Boolean
        Set
            If (value)
                SetNull(12)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ForcibleRape]() As Int32
        Set
            Me(13) = Value
        End Set
    End Property
    Public WriteOnly Property [ForcibleRape_IsNull] As Boolean
        Set
            If (value)
                SetNull(13)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Robbery]() As Int32
        Set
            Me(14) = Value
        End Set
    End Property
    Public WriteOnly Property [Robbery_IsNull] As Boolean
        Set
            If (value)
                SetNull(14)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [AggravatedAssault]() As Int32
        Set
            Me(15) = Value
        End Set
    End Property
    Public WriteOnly Property [AggravatedAssault_IsNull] As Boolean
        Set
            If (value)
                SetNull(15)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [PropertyCrime]() As Int32
        Set
            Me(16) = Value
        End Set
    End Property
    Public WriteOnly Property [PropertyCrime_IsNull] As Boolean
        Set
            If (value)
                SetNull(16)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Burglary]() As Int32
        Set
            Me(17) = Value
        End Set
    End Property
    Public WriteOnly Property [Burglary_IsNull] As Boolean
        Set
            If (value)
                SetNull(17)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [LarcenyTheft]() As Int32
        Set
            Me(18) = Value
        End Set
    End Property
    Public WriteOnly Property [LarcenyTheft_IsNull] As Boolean
        Set
            If (value)
                SetNull(18)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [MotorVehicleTheft]() As Int32
        Set
            Me(19) = Value
        End Set
    End Property
    Public WriteOnly Property [MotorVehicleTheft_IsNull] As Boolean
        Set
            If (value)
                SetNull(19)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Arson]() As Int32
        Set
            Me(20) = Value
        End Set
    End Property
    Public WriteOnly Property [Arson_IsNull] As Boolean
        Set
            If (value)
                SetNull(20)
            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() {"atom_id", "atom_title", "atom_updated", "atom_author", "atom_link", "atom_category", "ROWID", "State", "City", "Year", "Population", "ViolentCrime", "MurderAndNonEgligentManslaughter", "ForcibleRape", "Robbery", "AggravatedAssault", "PropertyCrime", "Burglary", "LarcenyTheft", "MotorVehicleTheft", "Arson"}
        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[\scriptcomponent_f4d40159038844179783ae9b55d0dbd1.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_f4d40159038844179783ae9b55d0dbd1.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_f4d40159038844179783ae9b55d0dbd1.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{A5BCAC52-5406-410A-91AC-8E859874F3C2}</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.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.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <!-- This section defines the user source files that are part of the
       project.

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

Option Strict Off
Option Explicit On


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

' The following resources were used as a reference:
' http://www.odata.org/developers/protocols/overview
' http://msdn.microsoft.com/en-us/library/ff478141.aspx

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Xml
Imports System.IO

Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "Connection", "BatchSize", _
    "Collection", "IsQueryVariable", "Query", "QueryVariable"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Dim colsIdx As Hashtable = GetColumnsIdx_()

        ' Setup query template.
        Dim queryStr As String = Me.Query
        If Me.IsQueryVariable Then
            ' Query is contained in variable.
            queryStr = CStr(GetVariable_(Me.QueryVariable))
        End If

        Dim queryTemplate_1P As String = Me.Collection & "?"
        If Not String.IsNullOrEmpty(queryStr) Then
            queryTemplate_1P &= queryStr & "&"
        End If

        queryTemplate_1P &= String.Format("$top={0}&$skip={1}", Me.BatchSize, "{0}")

        Dim doc As XmlDocument = New XmlDocument()
        Dim conn As Object = Me.Connections.Http.AcquireConnection(Nothing)
        Dim connection As HttpClientConnection = New HttpClientConnection(conn)
        Dim page As Integer = 0
        Dim ns As XmlNamespaceManager

        Try
            While True
                ' Download data.
                connection.ServerURL = String.Format(queryTemplate_1P, page * Me.BatchSize)
                Using odataStream As Stream = New MemoryStream(connection.DownloadData())
                    Call doc.Load(odataStream)
                End Using

                If ns Is Nothing Then
                    ' Initialize namespace manager.
                    ns = New XmlNamespaceManager(doc.NameTable)
                    Call ns.AddNamespace("atom", "http://www.w3.org/2005/Atom")
                End If

                Dim entryList As XmlNodeList = doc.SelectNodes("/atom:feed/atom:entry", ns)
                If entryList.Count = 0 Then
                    ' Reached end of feed.
                    Call OutputBuffer.SetEndOfRowset()
                    Exit While
                End If

                ' Push items.
                For Each entry As XmlElement In entryList
                    With OutputBuffer
                        Call .AddRow()

                        ' Setup atom data.
                        .Buffer(CInt(colsIdx("atom_id"))) = GetText_(entry("id"))
                        .Buffer(CInt(colsIdx("atom_title"))) = GetText_(entry("title"))
                        .Buffer(CInt(colsIdx("atom_updated"))) = DateTime.Parse(GetText_(entry("updated")))
                        .Buffer(CInt(colsIdx("atom_author"))) = GetText_(entry("author"))

                        Dim linkElem As XmlElement = entry("link")
                        If Not linkElem Is Nothing Then
                            Dim link As String = linkElem.GetAttribute("href")
                            If Not link.StartsWith("http://") Then
                                ' Link is relative.
                                link = doc.DocumentElement.GetAttribute("xml:base") & link
                            End If
                            .Buffer(CInt(colsIdx("atom_link"))) = link
                        End If

                        Dim categoryElem As XmlElement = entry("category")
                        If Not categoryElem Is Nothing Then
                            .Buffer(CInt(colsIdx("atom_category"))) = categoryElem.GetAttribute("term")
                        End If

                        ' Setup collection properties.
                        Dim contentElem As XmlElement = entry("content")
                        If Not contentElem Is Nothing Then
                            Dim propsList As XmlNodeList = contentElem("m:properties").ChildNodes
                            For Each propElem As XmlElement In propsList
                                If colsIdx.Contains(propElem.LocalName) Then
                                    Dim value As Object

                                    Select Case propElem.GetAttribute("m:type")
                                        Case "Edm.Binary"
                                            value = Convert.FromBase64String(propElem.InnerText)

                                        Case Else
                                            value = propElem.InnerText
                                    End Select

                                    .Buffer(CInt(colsIdx(propElem.LocalName))) = value
                                End If
                            Next
                        End If
                    End With
                Next

                page += 1
            End While
        Catch ex As Exception
            Call FireError_(ex.Message)
        Finally
            Call Me.Connections.Http.ReleaseConnection(conn)
        End Try
    End Sub ' CreateNewOutputRows


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

        Call result.Add("Connection")
        Call result.Add("BatchSize")
        Call result.Add("Collection")
        Call result.Add("IsQueryVariable")
        Call result.Add(IIf(Me.IsQueryVariable, "QueryVariable", "Query"))

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


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

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

            If String.IsNullOrEmpty(Me.Collection) Then
                Throw New Exception("Specify collection.")
            End If

            Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
            If output.OutputColumnCollection.Count = 0 Then
                ' Setup collection output columns.
                Call SetupOutputColumns_()
            End If

            Me.ComponentMetaData.RuntimeConnectionCollection("Http").ConnectionManagerID = Me.Connection
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    ' Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of tables in the currently selected Oracle connection.
    Public Function GetCollections() As String()
        Dim result As ArrayList = New ArrayList()

        ' Download collections.
        Dim doc As XmlDocument = New XmlDocument()
        Dim conn As Object = Me.DesignConnections(Me.Connection).AcquireConnection(Nothing)
        Dim connection As HttpClientConnection = New HttpClientConnection(conn)
        Try
            Using odataStream As Stream = New MemoryStream(connection.DownloadData())
                Call doc.Load(odataStream)
            End Using
        Finally
            Call Me.DesignConnections(Me.Connection).ReleaseConnection(conn)
        End Try

        ' Setup collections list.
        Dim ns As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
        Call ns.AddNamespace("app", "http://www.w3.org/2007/app")
        Dim collections As XmlNodeList = doc.SelectNodes("/app:service/app:workspace/app:collection", ns)
        For Each collection As XmlElement In collections
            Dim href As String = collection.GetAttribute("href")
            If Not href.StartsWith("http://") Then
                ' The collection reference is relative.
                href = Connection.ServerURL & "/" & href
            End If

            Call result.Add(href)
        Next

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


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select HTTP Connection Manager.")> _
    <Category("Settings")> _
    <Connection("HttpConnectionType", True)> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Connection() As String
        Get
            Connection = m_connection
        End Get
        Set(ByVal value As String)
            If m_connection <> value Then
                m_connection = value
                Me.Collection = String.Empty
            End If
        End Set
    End Property    ' Connection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies the number of rows to be retrieved as a batch.")> _
    <Category("Settings")> _
    <DefaultValue(100)> _
    Public Property BatchSize() As Integer
        Get
            BatchSize = m_batchSize
        End Get
        Set(ByVal value As Integer)
            m_batchSize = value
        End Set
    End Property    ' BatchSize


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select OData collection.")> _
    <Category("Source")> _
    <List("GetCollections")> _
    Public Property Collection() As String
        Get
            Collection = m_collection
        End Get
        Set(ByVal value As String)
            If m_collection <> value Then
                If Not String.IsNullOrEmpty(m_collection) Then
                    ' Force output columns to be reloaded.
                    If Me.ComponentMetaData.OutputCollection.Count > 0 Then
                        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
                        Call output.OutputColumnCollection.RemoveAll()
                    End If
                End If

                m_collection = value
            End If
        End Set
    End Property    ' Collection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Indicates whether the query is stored in a variable.")> _
    <Category("Source")> _
    <RefreshProperties(RefreshProperties.All)> _
    <DefaultValue(False)> _
    Public Property IsQueryVariable() As Boolean
        Get
            IsQueryVariable = m_isQueryVariable
        End Get
        Set(ByVal value As Boolean)
            If m_isQueryVariable <> value Then
                m_isQueryVariable = value
                Me.Query = String.Empty
            End If
        End Set
    End Property    ' IsQueryVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify OData query.")> _
    <Category("Source")> _
    Public Property Query() As String
        Get
            Query = m_query
        End Get
        Set(ByVal value As String)
            m_query = value
        End Set
    End Property    ' Table


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies the variable that contains the query.")> _
    <Category("Source")> _
    <Variable()> _
    Public Property QueryVariable() As String
        Get
            QueryVariable = Me.Query
        End Get
        Set(ByVal value As String)
            Me.Query = value
        End Set
    End Property    ' QueryVariable
#End Region ' Properties


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Sub SetupOutputColumns_()
        ' Load collection properties.
        Dim metaService As String = Me.Collection.Substring(0, Me.Collection.LastIndexOf("/") + 1) + "$metadata"
        Dim collectionName As String = Me.Collection.Substring(Me.Collection.LastIndexOf("/") + 1)

        Dim doc As XmlDocument = New XmlDocument()
        Dim conn As Object = Me.DesignConnections(Me.Connection).AcquireConnection(Nothing)
        Dim connection As HttpClientConnection = New HttpClientConnection(conn)
        Dim serverURL As String = connection.ServerURL
        Try
            connection.ServerURL = metaService
            Using odataStream As Stream = New MemoryStream(connection.DownloadData())
                Call doc.Load(odataStream)
            End Using
        Finally
            connection.ServerURL = serverURL
            Call Me.DesignConnections(Me.Connection).ReleaseConnection(conn)
        End Try

        Dim ns As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
        Call ns.AddNamespace("edm", "http://schemas.microsoft.com/ado/2007/05/edm")
        Call ns.AddNamespace("edmx", "http://schemas.microsoft.com/ado/2007/06/edmx")
        Dim props As XmlNodeList = doc.SelectNodes( _
            String.Format("/edmx:Edmx/edmx:DataServices/edm:Schema/edm:EntityType['{0}']/edm:Property", collectionName), _
            ns)

        Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
        Call output.OutputColumnCollection.RemoveAll()
        Dim column As IDTSOutputColumn100

        ' Setup base (Atom) columns.
        column = output.OutputColumnCollection.New()
        column.Name = "atom_id"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 1000, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_title"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 250, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_updated"
        Call column.SetDataTypeProperties(DataType.DT_DBTIMESTAMP, 0, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_author"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 250, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_link"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 1000, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_category"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 1000, 0, 0, 0)

        For Each prop As XmlElement In props
            ' Get column info.
            Dim dtsType As Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType
            Dim length As Integer
            Dim precision As Integer
            Dim scale As Integer
            Dim codePage As Integer
            GetTypeFromPropertyType_( _
                prop.GetAttribute("Type"), _
                dtsType, _
                length, _
                precision, _
                scale, _
                codePage)

            ' Setup output column.
            column = output.OutputColumnCollection.New()
            column.Name = prop.GetAttribute("Name")
            Call column.SetDataTypeProperties(dtsType, length, precision, scale, codePage)
        Next
    End Sub ' SetupOutputColumns_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get SSIS type from specified DataRow.
    Private Sub GetTypeFromPropertyType_( _
        ByVal propertyType As String, _
        ByRef dtsType As Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType, _
        ByRef length As Integer, _
        ByRef precision As Integer, _
        ByRef scale As Integer, _
        ByRef codePage As Integer)

        length = 0
        precision = 0
        scale = 0
        codePage = 0

        Select Case propertyType
            Case "Edm.Binary"
                dtsType = DataType.DT_IMAGE

            Case "Edm.Boolean"
                dtsType = DataType.DT_BOOL

            Case "Edm.Byte"
                dtsType = DataType.DT_UI1

            Case "Edm.DateTime", "Edm.DateTimeOffset"
                dtsType = DataType.DT_DBTIMESTAMP

            Case "Edm.Time"
                dtsType = DataType.DT_DBTIME

            Case "Edm.Decimal"
                dtsType = DataType.DT_DECIMAL

            Case "Edm.Double"
                dtsType = DataType.DT_R8

            Case "Edm.Single"
                dtsType = DataType.DT_R4

            Case "Edm.Guid"
                dtsType = DataType.DT_GUID

            Case "Edm.Int16"
                dtsType = DataType.DT_I2

            Case "Edm.Int32"
                dtsType = DataType.DT_I4

            Case "Edm.Int64"
                dtsType = DataType.DT_I8

            Case "Edm.String"
                dtsType = DataType.DT_WSTR
                length = 250

            Case Else
                Throw New Exception("Unhandled property type.")
        End Select
    End Sub ' GetTypeFromPropertyType_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "OData 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
        Call MyBase.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Setup column name -> buffer index map.
    Private Function GetColumnsIdx_() As Hashtable
        Dim result As Hashtable = New Hashtable

        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
        Dim colsCount As Integer = output.OutputColumnCollection.Count
        For colIndex As Integer = 0 To colsCount - 1
            Dim column As IDTSOutputColumn100 = output.OutputColumnCollection(colIndex)

            ' Setup buffer index.
            Call result.Add( _
                column.Name, _
                Me.HostComponent.BufferManager.FindColumnByLineageID( _
                    output.Buffer, _
                    column.LineageID))
        Next

        GetColumnsIdx_ = result
    End Function    ' GetColumnsIdx_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetText_(ByVal element As XmlElement) As String
        Dim result As String

        If Not element Is Nothing Then
            result = element.InnerText
            If result.Length > 4000 Then
                ' Maximum 4000 characters are supported in data flow.
                result = result.Substring(0, 4000)
            End If
        End If

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


#Region "Attributes"
    Private m_connection As String
    Private m_collection As String
    Private m_batchSize As Integer
    Private m_isQueryVariable As Boolean
    Private m_query 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_f4d40159038844179783ae9b55d0dbd1.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
CiiMAAAKfhIAAAQtHHNmAAAGgBIAAATeEH4TAAAEKBEAAAoojQAACtx+EgAABCoAAQwAAAIAHQAM
KQAQAAAAAUJTSkIBAAEAAAAAAAwAAAB2Mi4wLjUwNzI3AAAAAAUAbAAAAPwUAAAjfgAAaBUAAOgZ
AAAjU3RyaW5ncwAAAABQLwAAuAgAACNVUwAIOAAAEAAAACNHVUlEAAAAGDgAAMwHAAAjQmxvYgAA
AAAAAAACAAABVxWiCQkPAAAA+gEzABYAAAEAAABcAAAADQAAABMAAABnAAAARwAAAJgAAABPAAAA
JQAAAAcAAAA8AAAAQwAAAAoAAAABAAAACgAAAAEAAAACAAAAAwAAAAIAAAAAAKwZAQAAAAAACgCq
AYABCgDeAcABBgDuAecBCgBGAoABBgDEAucBCgBGAxwDDgCYA4EDEgDnA8YDFgAYBMYDBgCmBOcB
DgBeCoEDGgApCwELGgBqDAELBgD8DOkMHgAgDRUNBgDkDdMNBgARDvwNIgByDl0OIgC/DqkOIgDY
DqkOIgAFD+0OBgAvDxwPCgBuD0cPCgCGDxMAIgC7D54PBgDwD9APBgAOEOcBBgAyEOcBCgBLEBMA
BgCPEHAQBgCjEOcBBgC7EOcBBgDVEOcBEgDbEMYDBgDoEOcBJgBLESIRJgB6ESIRJgCnESIRJgDF
ESIRJgAIEiIRKgB2ElYSHgCLEhUNHgCXEhUNHgCrEhUNBgDBErcSBgDIEucBBgDSEukMCgDeEkcP
BgAzE7cSBgBFE+cBHgBZExUNHgCBExUNCgAmFEcPBgBMFOcBCgBuFEcPBgC6FOkMCgDIFBMABgDY
FOcBJgDmFCIRKgADAVYSKgBNFVYSJgB9FSIRGgDUFQELGgDlFQELGgAjFgELFgBDFsYDJgBnFiIR
EgC9FsYDDgAGF+QWDgAiF+QWDgA8F+QWIgBUF6kOIgBmF6kOIgB7F6kOIgCRF6kOIgCsF6kODgC+
F+QWDgDQF+QWDgDkF+QWBgAEGPIXBgArGBoYBgA+GBwPBgCnGNAPBgDHGNAPBgDlGPIXBgACGXAQ
BgAQGfIXBgArGfIXBgBGGfIXBgBfGfIXBgB4GfIXBgCVGfIXAAAAAAEAAAAAAAEAAQAAAAAAKQA3
AAUAAQABAAAAAAByADcACQABAAIAAAEQAH0ANwANAAEAAwAFAQAAhwAAAA0ABQAIAAUBAACVAAAA
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
AQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBr
BAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAAAQBrBAAA
AQBrBAAAAQBrBAAAAQBrBAAAAQCgCgAAAgCoCgAAAwCyCgAAAQAnBAAAAQAnBAAAAQBnCwAAAQCf
CwAAAQCfCwAAAQCfCwAAAQCfCwAAAQCfCwAAAQCfCwAAAQCMDAAAAgCZDAAAAwChDAAABACoDAAA
BQCyDAAABgC4DAAAAQDMDAAAAQDhDAAAAQA0DQAAAQBrBAkAugETAJkAugF5AakAugGIAREAugET
ALEAugETACQAugETACwAugETADQAugETADwAugETACQADAOLACwADAOLADQADAOLADwADAOLALkA
ugETAMEAugETAMkAugG+ANEA/w8hAhkArwJjABkAuAJoACkAIBAuAhkA0QJxAOEAPBA+AhkAugET
AOkAugFOAkQAVQOQAEwAnw6LAEwAZhDLAkwAugETAPEAugHDADkAugGvADkAqhDjAjkAsxDOAAEB
ugG+ABEBogcTABEBqQcTABEBuAfTABkBugHDAFkAugETAEEAZBHwAiEBkhH2AikBtRH8AjEBvhFo
ACEB6BEIAzkBtREOA0EBIRINAYEB0QIaA/kA6hIfA/kA8RIlA/kA6hIqA/kA/xIxA1EBugETAGEA
BhM4A0kBugE9A/kA/xJCA0kBGBO+AEkBJhNIA4kBugFNA1EBQBNTA5EBURMTAFEBZhNaA1kBugFg
A1kBdBOIAaEBiRNnA2EBlRNoAGEBnxNxA3kBrRN3AzkAuRN7A3EAtRE4A4EBxBOAA6EBtRGFA0kA
qhDjAlEAzhOLA3kA1BORA/kA4ROWA1EB7BObA6EBABSgA3kADxRxAHEAHRRjAKkBMBSmA3kAPhRx
ALEBVBStA3kBZRTTALkBehSzA3EBihRxALkBlhQXAGEAqBQ9A8EBugETAMEBxBTtA8kB1BTyA8EB
3hT5A3EBugG+ADEBBBUMBNkBlRNoAEEBHxW+AFkANxUdBOEBtREjBOkBBhM4A+kBqBQ9A0kBXxVx
APkAbRU9ASkBlRNoANkBcxUTAPkAkRVOBPkAnRVTBPkAnRVZBNkBpxVeBPEBqxW+APEBtBVkBCEB
yhWVBEEA/hWgBAECFBamBPkBtRGvBAkCnw53A/kBMxYTAHEAugETANkBtRG+BPEBOhZxAFkAVRbF
BBECfBbLBDEBuRNoAPEBjhZoABkCnBbRBHEAxBTXBPkAshZoACECugETACkCugG+ADECugG+ADkC
ugETBUECugG+AEkCugG+AFECugHDAFkCugGMBWkCugETAFECugHOAHECugFXBnkCugG+ACkADRjN
BoEAugHTBpEAugETAIkCMxjwBokCORjwBpECugETAJkCugHOAKECugETAKkCugG+ALECugG+ALkC
ugG+AMECugG+AMkCugG+ANECugG+ANkCugG+AOECugG+ACkAgwADAi4AuwTYAi4AswS8By4AiwQi
By4AkwQvBy4AqwR/By4AewT6Bi4AgwQDBy4AwwR/By4A6wDYAi4AKwFZBy4AmwTYAi4AowRfB0AA
KwCmAUAAEwB/AUMAEwB/AUMAGwCOAUkAgwDvAWMAEwB/AWMAGwCOAWkAgwAUAoAAKwCmAYMAewCm
AYMAGwCOAYMAcwCmAYkAgwDbAaAAKwCmAaMAwwBWAqMAEwB/AcAAKwCmAcMA6wDYAsMAEwB/AeAA
KwCmAeMAKwHYAgABKwCmAQABEwB/AQMBKwHYAiABEwB/ASABKwCmAUABKwCmAUABEwB/AWABKwCm
AWABEwB/AWMB8wPyBGMBKwHYAmMBAwQZBWMB6wOmAWMB+wMABYABKwCmAaABKwCmAcABKwCmAcAB
EwB/AeABKwCmAQACKwCmAQACEwB/AWkGEwR2BmkGOwRdBmkGCwQLBmkGIwR/AYkGMwQCBokGEwQZ
BokGCwQLBqkGQwSbBqkGCwRmBakGEwSvBskGGwTYAskGIwR/AckGCwRmBckGEwSTBekGEwRyBekG
CwRmBQkHEwTNBQkHKwSmAQkHCwRmBUkHEwDnBmkHEwDnBokHcwSmAcAIKwHYAgAJKwHYAscBzAHR
AdYBJgIqAjUCOgJJAkkC0QLeAukCJgIDAxUDugMEBBIEKgQ6AioCOgJIBCYCOgI6AukCbgQ6AiYC
tgTdBO0E2wbiBvUGBAABAAYABQAHAAYACQAyAAsAMwAMADoADQA8AAAA3gFPAAAAlwJUAAAARgJZ
AAAAowJeAAAAXwOYAAAAxAfXAAAA1wfcAAAA3gfgAAAA7AfcAAAA9gfgAAAABwjkAAAAEwjgAAAA
JgjcAAAAMQjgAAAAQwjcAAAATAjgAAAAXAjcAAAAaQjgAAAAfQjpAAAAgwjgAAAAkAjcAAAAlgjg
AAAAowjcAAAAqAjgAAAAtAjpAAAAuQjgAAAAxQjpAAAA0AjgAAAA4gjpAAAA7wjgAAAAAwnpAAAA
JAngAAAATAnpAAAAWQngAAAAbQnpAAAAdQngAAAAhAnpAAAAlgngAAAArwnpAAAAvQngAAAA0gnp
AAAA2wngAAAA6wnpAAAA+AngAAAADArpAAAAHgrgAAAANwrpAAAAPQrgAAAASgrXAAAASwsSAQAA
fA3cAAAAhw3pAAAAkQ3cAAAAnA3gAAAArA3cAAAAsg3cAAAAwA3XAAAA5A1eAQAAVQ5jAQAAawR0
AQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAEAFQATAAEA
FgAVAAEAFwAXAAEAGAAZAAEAGQAbAAEAGgAdAAEAGwAfAAEAHAAhAAEAHQAjAAEAHgAlAAEAHwAn
AAEAIAApAAEAIQArAAEAIgAtAAEAIwAvAAEAJAAxAAEAJQAzAAEAJgA1AAEAJwA3AAEAKAA5AAEA
KQA7AAEAKgA9AAEAKwA/AAEALABBAAEALQBDAAEALgBFAAEALwBHAAEAMABJAAEAMQBLAAEAMgBN
AAEAMwBPAAEANABRAAEANQBTAAEANgBVAAEANwBXAAEAOABZAAEAOQBbAAEAOgBdAAEAOwBfAAEA
PABhAAIAPQBjAAIARwBlAAIATgBnAAEATwBnAAIAUABpAAEAUQBpAAIAUgBrAAEAUwBrAAIAVABt
AAEAVQBtAAIAVgBvAAEAVwBvAAIAWABxAAEAWQBxAAIAWgBzAAIAYgB1AAIAYwB3AAEAZAB3AAIA
ZwB5AHUAdQCIAKsBsgG5AcABuAK/AgEEBIAAAAEAAAAAAAAAAAAAAAAAvQAAAAIAAAAAAAAAAAAA
AAEACgAAAAAACAAAAAAAAAAAAAAACgATAAAAAAABAAAAAAAAAAAAAACdAGsDAAAAAAoAAAAAAAAA
AAAAAKYAqQMAAAAACgAAAAAAAAAAAAAApgD3AwAAAAAKAAAAAAAAAAAAAACmAN4KAAAAAAIAAAAA
AAAAAAAAAAEAFQ0AAAAAAgAAAAAAAAAAAAAAAQDnAQAAAAAKAAAAAAAAAAAAAACmAP4QAAAAAAoA
AAAAAAAAAAAAAKYANxIAAAAAAAAAAAEAAABbGAAABQAEAAYABAAAABAADADtAgAAEAAZAO0CAAAA
ABsA7QItAEQCLQDGAgAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBN
eUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF9mNGQ0MDE1OTAzODg0NDE3OTc4M2FlOWI1NWQw
ZGJkMS52YnByb2ouTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRT
YWZlT2JqZWN0UHJvdmlkZXJgMQBPdXRwdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50X2Y0ZDQwMTU5
MDM4ODQ0MTc5NzgzYWU5YjU1ZDBkYmQxLnZicHJvagBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25z
AFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNjcmlwdENvbXBvbmVudF9mNGQ0MDE1
OTAzODg0NDE3OTc4M2FlOWI1NWQwZGJkMS52YnByb2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MA
TWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNl
AC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmpl
Y3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxp
Y2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92
aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGlj
YXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3Ry
aW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0
X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENv
bnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMDgA
Q296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9u
ZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAENvbXBv
bmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAHNldF9h
dG9taWQAVmFsdWUAc2V0X2F0b21pZF9Jc051bGwAc2V0X2F0b210aXRsZQBzZXRfYXRvbXRpdGxl
X0lzTnVsbABEYXRlVGltZQBzZXRfYXRvbXVwZGF0ZWQAc2V0X2F0b211cGRhdGVkX0lzTnVsbABz
ZXRfYXRvbWF1dGhvcgBzZXRfYXRvbWF1dGhvcl9Jc051bGwAc2V0X2F0b21saW5rAHNldF9hdG9t
bGlua19Jc051bGwAc2V0X2F0b21jYXRlZ29yeQBzZXRfYXRvbWNhdGVnb3J5X0lzTnVsbABzZXRf
Uk9XSUQAc2V0X1JPV0lEX0lzTnVsbABzZXRfU3RhdGUAc2V0X1N0YXRlX0lzTnVsbABzZXRfQ2l0
eQBzZXRfQ2l0eV9Jc051bGwAc2V0X1llYXIAc2V0X1llYXJfSXNOdWxsAHNldF9Qb3B1bGF0aW9u
AHNldF9Qb3B1bGF0aW9uX0lzTnVsbABzZXRfVmlvbGVudENyaW1lAHNldF9WaW9sZW50Q3JpbWVf
SXNOdWxsAHNldF9NdXJkZXJBbmROb25FZ2xpZ2VudE1hbnNsYXVnaHRlcgBzZXRfTXVyZGVyQW5k
Tm9uRWdsaWdlbnRNYW5zbGF1Z2h0ZXJfSXNOdWxsAHNldF9Gb3JjaWJsZVJhcGUAc2V0X0ZvcmNp
YmxlUmFwZV9Jc051bGwAc2V0X1JvYmJlcnkAc2V0X1JvYmJlcnlfSXNOdWxsAHNldF9BZ2dyYXZh
dGVkQXNzYXVsdABzZXRfQWdncmF2YXRlZEFzc2F1bHRfSXNOdWxsAHNldF9Qcm9wZXJ0eUNyaW1l
AHNldF9Qcm9wZXJ0eUNyaW1lX0lzTnVsbABzZXRfQnVyZ2xhcnkAc2V0X0J1cmdsYXJ5X0lzTnVs
bABzZXRfTGFyY2VueVRoZWZ0AHNldF9MYXJjZW55VGhlZnRfSXNOdWxsAHNldF9Nb3RvclZlaGlj
bGVUaGVmdABzZXRfTW90b3JWZWhpY2xlVGhlZnRfSXNOdWxsAHNldF9BcnNvbgBzZXRfQXJzb25f
SXNOdWxsAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAEFkZFJvdwBTZXRFbmRPZlJvd3NldABFbmRP
ZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMAYXRvbWlkAGF0b21pZF9Jc051bGwAYXRvbXRpdGxl
AGF0b210aXRsZV9Jc051bGwAYXRvbXVwZGF0ZWQAYXRvbXVwZGF0ZWRfSXNOdWxsAGF0b21hdXRo
b3IAYXRvbWF1dGhvcl9Jc051bGwAYXRvbWxpbmsAYXRvbWxpbmtfSXNOdWxsAGF0b21jYXRlZ29y
eQBhdG9tY2F0ZWdvcnlfSXNOdWxsAFJPV0lEAFJPV0lEX0lzTnVsbABTdGF0ZQBTdGF0ZV9Jc051
bGwAQ2l0eQBDaXR5X0lzTnVsbABZZWFyAFllYXJfSXNOdWxsAFBvcHVsYXRpb24AUG9wdWxhdGlv
bl9Jc051bGwAVmlvbGVudENyaW1lAFZpb2xlbnRDcmltZV9Jc051bGwATXVyZGVyQW5kTm9uRWds
aWdlbnRNYW5zbGF1Z2h0ZXIATXVyZGVyQW5kTm9uRWdsaWdlbnRNYW5zbGF1Z2h0ZXJfSXNOdWxs
AEZvcmNpYmxlUmFwZQBGb3JjaWJsZVJhcGVfSXNOdWxsAFJvYmJlcnkAUm9iYmVyeV9Jc051bGwA
QWdncmF2YXRlZEFzc2F1bHQAQWdncmF2YXRlZEFzc2F1bHRfSXNOdWxsAFByb3BlcnR5Q3JpbWUA
UHJvcGVydHlDcmltZV9Jc051bGwAQnVyZ2xhcnkAQnVyZ2xhcnlfSXNOdWxsAExhcmNlbnlUaGVm
dABMYXJjZW55VGhlZnRfSXNOdWxsAE1vdG9yVmVoaWNsZVRoZWZ0AE1vdG9yVmVoaWNsZVRoZWZ0
X0lzTnVsbABBcnNvbgBBcnNvbl9Jc051bGwAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21w
b25lbnRQbHVzAEZpbmlzaE91dHB1dHMATWFya091dHB1dHNGaW5pc2hlZABQcmltZU91dHB1dABP
dXRwdXRzAE91dHB1dElEcwBCdWZmZXJzAENyZWF0ZU5ld091dHB1dFJvd3MAUGFyZW50Q29tcG9u
ZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZl
ci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNDb25uZWN0aW9uTWFuYWdlcjEwMABnZXRfSHR0cABI
dHRwAEdldFByb3BlcnRpZXMAVmFsaWRhdGUAZXJyTWVzc2FnZQBHZXRDb2xsZWN0aW9ucwBnZXRf
Q29ubmVjdGlvbgBzZXRfQ29ubmVjdGlvbgB2YWx1ZQBnZXRfQmF0Y2hTaXplAHNldF9CYXRjaFNp
emUAZ2V0X0NvbGxlY3Rpb24Ac2V0X0NvbGxlY3Rpb24AZ2V0X0lzUXVlcnlWYXJpYWJsZQBzZXRf
SXNRdWVyeVZhcmlhYmxlAGdldF9RdWVyeQBzZXRfUXVlcnkAZ2V0X1F1ZXJ5VmFyaWFibGUAc2V0
X1F1ZXJ5VmFyaWFibGUAZ2V0X0h0dHBDb25uZWN0aW9uVHlwZQBTZXR1cE91dHB1dENvbHVtbnNf
AERhdGFUeXBlAEdldFR5cGVGcm9tUHJvcGVydHlUeXBlXwBwcm9wZXJ0eVR5cGUAZHRzVHlwZQBs
ZW5ndGgAcHJlY2lzaW9uAHNjYWxlAGNvZGVQYWdlAEZpcmVFcnJvcl8AbWVzc2FnZQBHZXRWYXJp
YWJsZV8AdmFyTmFtZQBTeXN0ZW0uQ29sbGVjdGlvbnMASGFzaHRhYmxlAEdldENvbHVtbnNJZHhf
AFN5c3RlbS5YbWwAWG1sRWxlbWVudABHZXRUZXh0XwBlbGVtZW50AG1fY29ubmVjdGlvbgBtX2Nv
bGxlY3Rpb24AbV9iYXRjaFNpemUAbV9pc1F1ZXJ5VmFyaWFibGUAbV9xdWVyeQBDb25uZWN0aW9u
AEJhdGNoU2l6ZQBDb2xsZWN0aW9uAElzUXVlcnlWYXJpYWJsZQBRdWVyeQBRdWVyeVZhcmlhYmxl
AEh0dHBDb25uZWN0aW9uVHlwZQBTeXN0ZW0uUmVzb3VyY2VzAFJlc291cmNlTWFuYWdlcgBfcmVz
TWdyAFN5c3RlbS5HbG9iYWxpemF0aW9uAEN1bHR1cmVJbmZvAF9yZXNDdWx0dXJlAGdldF9SZXNv
dXJjZU1hbmFnZXIAZ2V0X0N1bHR1cmUAc2V0X0N1bHR1cmUAQ3VsdHVyZQBTeXN0ZW0uQ29uZmln
dXJhdGlvbgBBcHBsaWNhdGlvblNldHRpbmdzQmFzZQBtX1ZhbHVlAG1fU3luY09iamVjdABnZXRf
VmFsdWUAU3lzdGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBFZGl0
b3JCcm93c2FibGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2RlQXR0
cmlidXRlAFN5c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBI
aWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhlbHBL
ZXl3b3JkQXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGltZUhl
bHBlcnMAR2V0T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUA
QWN0aXZhdG9yAENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAHNldF9W
YWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBT
dHJpbmcAc2V0X0l0ZW0AU2V0TnVsbABJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAEludDMyAFNj
cmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQ
aXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBJRFRT
Q29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVudE1ldGFEYXRhAElEVFNPdXRwdXRDb2xs
ZWN0aW9uMTAwAGdldF9PdXRwdXRDb2xsZWN0aW9uAElEVFNPdXRwdXQxMDAAZ2V0X0l0ZW0AZ2V0
X0lEAElEVFNSdW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24xMDAAZ2V0X1J1bnRpbWVDb25uZWN0
aW9uQ29sbGVjdGlvbgBJRFRTUnVudGltZUNvbm5lY3Rpb24xMDAAZ2V0X0Nvbm5lY3Rpb25NYW5h
Z2VyAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuTWFuYWdlZERUUwBNaWNyb3NvZnQuU3FsU2VydmVyLkR0
cy5SdW50aW1lAEh0dHBDbGllbnRDb25uZWN0aW9uAFhtbERvY3VtZW50AFhtbE5hbWVzcGFjZU1h
bmFnZXIAWG1sTm9kZUxpc3QAU3lzdGVtLklPAFN0cmVhbQBFeGNlcHRpb24ASUVudW1lcmF0b3IA
Q29udmVyc2lvbnMAQ29uY2F0AElzTnVsbE9yRW1wdHkARm9ybWF0AEFjcXVpcmVDb25uZWN0aW9u
AHNldF9TZXJ2ZXJVUkwARG93bmxvYWREYXRhAE1lbW9yeVN0cmVhbQBMb2FkAElEaXNwb3NhYmxl
AERpc3Bvc2UAWG1sTmFtZVRhYmxlAGdldF9OYW1lVGFibGUAQWRkTmFtZXNwYWNlAFhtbE5vZGUA
U2VsZWN0Tm9kZXMAZ2V0X0NvdW50AEdldEVudW1lcmF0b3IAZ2V0X0N1cnJlbnQAZ2V0X0J1ZmZl
cgBUb0ludGVnZXIAUGFyc2UAR2V0QXR0cmlidXRlAFN0YXJ0c1dpdGgAZ2V0X0RvY3VtZW50RWxl
bWVudABnZXRfQ2hpbGROb2RlcwBnZXRfTG9jYWxOYW1lAENvbnRhaW5zAE9wZXJhdG9ycwBDb21w
YXJlU3RyaW5nAGdldF9Jbm5lclRleHQAQ29udmVydABGcm9tQmFzZTY0U3RyaW5nAE1vdmVOZXh0
AFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBnZXRfTWVzc2FnZQBDbGVhclByb2plY3RFcnJv
cgBSZWxlYXNlQ29ubmVjdGlvbgBBcnJheUxpc3QAQWRkAEludGVyYWN0aW9uAElJZgBBcnJheQBU
b0FycmF5AElEVFNPdXRwdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9PdXRwdXRDb2x1bW5Db2xs
ZWN0aW9uAHNldF9Db25uZWN0aW9uTWFuYWdlcklEAGdldF9EZXNpZ25Db25uZWN0aW9ucwBDb25u
ZWN0aW9uTWFuYWdlcgBnZXRfU2VydmVyVVJMAEVtcHR5AFJlbW92ZUFsbABJRFRTT3V0cHV0Q29s
dW1uMTAwAExhc3RJbmRleE9mAFN1YnN0cmluZwBOZXcAc2V0X05hbWUAU2V0RGF0YVR5cGVQcm9w
ZXJ0aWVzAEZpcmVFcnJvcgBJRFRTVmFyaWFibGVzMTAwAElEVFNWYXJpYWJsZURpc3BlbnNlcjEw
MABnZXRfVmFyaWFibGVEaXNwZW5zZXIATG9ja09uZUZvclJlYWQASURUU1ZhcmlhYmxlMTAwAFVu
bG9jawBnZXRfTmFtZQBQaXBlbGluZUNvbXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVm
ZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5C
eUxpbmVhZ2VJRABnZXRfTGVuZ3RoAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmli
dXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNB
dHRyaWJ1dGUARmlsdGVyUHJvcGVydGllc0F0dHJpYnV0ZQBTb3J0UHJvcGVydGllc0F0dHJpYnV0
ZQBDYXRlZ29yeUF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBEZWZhdWx0VmFsdWVBdHRy
aWJ1dGUAUmVmcmVzaFByb3BlcnRpZXNBdHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXMAVmFyaWFi
bGVBdHRyaWJ1dGUAQ29ubmVjdGlvbkF0dHJpYnV0ZQBMaXN0QXR0cmlidXRlAFN5c3RlbS5SZWZs
ZWN0aW9uAEFzc2VtYmx5AGdldF9Bc3NlbWJseQBTeXN0ZW0uVGhyZWFkaW5nAE1vbml0b3IARW50
ZXIARXhpdABEZWJ1Z2dlck5vblVzZXJDb2RlQXR0cmlidXRlAFNjcmlwdENvbXBvbmVudF9mNGQ0
MDE1OTAzODg0NDE3OTc4M2FlOWI1NWQwZGJkMS52YnByb2ouUmVzb3VyY2VzLnJlc291cmNlcwBD
b21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmli
dXRlAEFzc2VtYmx5RmlsZVZlcnNpb25BdHRyaWJ1dGUAR3VpZEF0dHJpYnV0ZQBBc3NlbWJseVRy
YWRlbWFya0F0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJpYnV0ZQBBc3NlbWJseVByb2R1
Y3RBdHRyaWJ1dGUAQXNzZW1ibHlDb21wYW55QXR0cmlidXRlAEFzc2VtYmx5RGVzY3JpcHRpb25B
dHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfZjRkNDAxNTkw
Mzg4NDQxNzk3ODNhZTliNTVkMGRiZDEudmJwcm9qLmRsbAAAgJtJAHMATgB1AGwAbAAgAHAAcgBv
AHAAZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUA
LgAgAEEAcwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBt
AG4AIABpAG4AcwB0AGUAYQBkAC4AAA9hAHQAbwBtAF8AaQBkAAAVYQB0AG8AbQBfAHQAaQB0AGwA
ZQAAGWEAdABvAG0AXwB1AHAAZABhAHQAZQBkAAAXYQB0AG8AbQBfAGEAdQB0AGgAbwByAAATYQB0
AG8AbQBfAGwAaQBuAGsAABthAHQAbwBtAF8AYwBhAHQAZQBnAG8AcgB5AAALUgBPAFcASQBEAAAL
UwB0AGEAdABlAAAJQwBpAHQAeQAACVkAZQBhAHIAABVQAG8AcAB1AGwAYQB0AGkAbwBuAAAZVgBp
AG8AbABlAG4AdABDAHIAaQBtAGUAAEFNAHUAcgBkAGUAcgBBAG4AZABOAG8AbgBFAGcAbABpAGcA
ZQBuAHQATQBhAG4AcwBsAGEAdQBnAGgAdABlAHIAABlGAG8AcgBjAGkAYgBsAGUAUgBhAHAAZQAA
D1IAbwBiAGIAZQByAHkAACNBAGcAZwByAGEAdgBhAHQAZQBkAEEAcwBzAGEAdQBsAHQAABtQAHIA
bwBwAGUAcgB0AHkAQwByAGkAbQBlAAARQgB1AHIAZwBsAGEAcgB5AAAZTABhAHIAYwBlAG4AeQBU
AGgAZQBmAHQAACNNAG8AdABvAHIAVgBlAGgAaQBjAGwAZQBUAGgAZQBmAHQAAAtBAHIAcwBvAG4A
AA1PAHUAdABwAHUAdAAACUgAdAB0AHAAAAM/AAADJgAAJSQAdABvAHAAPQB7ADAAfQAmACQAcwBr
AGkAcAA9AHsAMQB9AAAHewAwAH0AAAlhAHQAbwBtAAA3aAB0AHQAcAA6AC8ALwB3AHcAdwAuAHcA
MwAuAG8AcgBnAC8AMgAwADAANQAvAEEAdABvAG0AACsvAGEAdABvAG0AOgBmAGUAZQBkAC8AYQB0
AG8AbQA6AGUAbgB0AHIAeQAABWkAZAAAC3QAaQB0AGwAZQAAD3UAcABkAGEAdABlAGQAAA1hAHUA
dABoAG8AcgAACWwAaQBuAGsAAAloAHIAZQBmAAAPaAB0AHQAcAA6AC8ALwAAEXgAbQBsADoAYgBh
AHMAZQAAEWMAYQB0AGUAZwBvAHIAeQAACXQAZQByAG0AAA9jAG8AbgB0AGUAbgB0AAAZbQA6AHAA
cgBvAHAAZQByAHQAaQBlAHMAAA1tADoAdAB5AHAAZQAAFUUAZABtAC4AQgBpAG4AYQByAHkAABVD
AG8AbgBuAGUAYwB0AGkAbwBuAAATQgBhAHQAYwBoAFMAaQB6AGUAABVDAG8AbABsAGUAYwB0AGkA
bwBuAAAfSQBzAFEAdQBlAHIAeQBWAGEAcgBpAGEAYgBsAGUAABtRAHUAZQByAHkAVgBhAHIAaQBh
AGIAbABlAAALUQB1AGUAcgB5AAAlUwBlAGwAZQBjAHQAIABjAG8AbgBuAGUAYwB0AGkAbwBuAC4A
ACdTAHAAZQBjAGkAZgB5ACAAYwBvAGwAbABlAGMAdABpAG8AbgAuAAAHYQBwAHAAADVoAHQAdABw
ADoALwAvAHcAdwB3AC4AdwAzAC4AbwByAGcALwAyADAAMAA3AC8AYQBwAHAAAFMvAGEAcABwADoA
cwBlAHIAdgBpAGMAZQAvAGEAcABwADoAdwBvAHIAawBzAHAAYQBjAGUALwBhAHAAcAA6AGMAbwBs
AGwAZQBjAHQAaQBvAG4AAAMvAAAJSABUAFQAUAAAEyQAbQBlAHQAYQBkAGEAdABhAAAHZQBkAG0A
AFloAHQAdABwADoALwAvAHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBt
AC8AYQBkAG8ALwAyADAAMAA3AC8AMAA1AC8AZQBkAG0AAAllAGQAbQB4AABbaAB0AHQAcAA6AC8A
LwBzAGMAaABlAG0AYQBzAC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGEAZABvAC8AMgAw
ADAANwAvADAANgAvAGUAZABtAHgAAICVLwBlAGQAbQB4ADoARQBkAG0AeAAvAGUAZABtAHgAOgBE
AGEAdABhAFMAZQByAHYAaQBjAGUAcwAvAGUAZABtADoAUwBjAGgAZQBtAGEALwBlAGQAbQA6AEUA
bgB0AGkAdAB5AFQAeQBwAGUAWwAnAHsAMAB9ACcAXQAvAGUAZABtADoAUAByAG8AcABlAHIAdAB5
AAEJVAB5AHAAZQAACU4AYQBtAGUAABdFAGQAbQAuAEIAbwBvAGwAZQBhAG4AABFFAGQAbQAuAEIA
eQB0AGUAABlFAGQAbQAuAEQAYQB0AGUAVABpAG0AZQAAJUUAZABtAC4ARABhAHQAZQBUAGkAbQBl
AE8AZgBmAHMAZQB0AAARRQBkAG0ALgBUAGkAbQBlAAAXRQBkAG0ALgBEAGUAYwBpAG0AYQBsAAAV
RQBkAG0ALgBEAG8AdQBiAGwAZQAAFUUAZABtAC4AUwBpAG4AZwBsAGUAABFFAGQAbQAuAEcAdQBp
AGQAABNFAGQAbQAuAEkAbgB0ADEANgAAE0UAZABtAC4ASQBuAHQAMwAyAAATRQBkAG0ALgBJAG4A
dAA2ADQAABVFAGQAbQAuAFMAdAByAGkAbgBnAAAxVQBuAGgAYQBuAGQAbABlAGQAIABwAHIAbwBw
AGUAcgB0AHkAIAB0AHkAcABlAC4AABlPAEQAYQB0AGEAIABTAG8AdQByAGMAZQAAMU0AeQAuAFIA
ZQBzAG8AdQByAGMAZQBzAC4ATQB5AFIAZQBzAG8AdQByAGMAZQBzAAAAAACQX6Na2/EoSJAwjrx+
CklwAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggE
AAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAA
EhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJ
hF3NgIDMkQkgBAESIQgCEiUEIAAdDgQgAQEOBCABAQIFIAEBESkEIAEBCAMgAAIEKAAdDgMoAA4D
KAACBCgAESkDKAAIAwYSJAMGEigDBhIcCSADAQgdCB0SJQMGEiEFIAEBEiEEIAASMQQoABIxBSAB
AhAODyAGAQ4QETUQCBAIEAgQCAQgARwOBCAAEjkFIAEOEj0CBg4CBggCBgIDBhJBAwYSRQQAABJB
BAAAEkUFAAEBEkUECAASQQQIABJFAwYSNAIGHAQAABI0BAgAEjQFIAEBEVEIAQABAAAAAAAFIAIB
Dg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgB
EhQEBwESDAQHARIIBAcBEhEEBwESFBMBAA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0
aW9uAAAQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAAEAAEcHAMHAQIDBwEIBgABEhURbQQH
ARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlBy
b3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3Nl
X19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAYHAhMAEwAFAQAAAAAEBwEd
DgUgAgEIHAYHAh0OHQ4FIAASgJEFIAASgJUGIAESgJkcBAcCCAgFIAASgJ0GIAESgKEcBAcBEjEE
AAEOHAUAAg4ODgQAAQIOBgADDg4ODgYAAw4OHBwEIAEcHAQgAQEcBQACDg4cBCAAHQUFIAEBHQUG
IAEBEoC1BSAAEoDNBiABARKAzQkgAhKAsQ4SgK0FIAASgL0DIAAcBCAAEiUEAAEIHAUgARI9DgUA
AREpDgQgAQ4OBCABAg4EIAASPQUgABKAsQYAAwgODgIFAAEdBQ4GAAEBEoC5MgcXEjkcEoClEoCp
EoCtCA4OEoCxEoC1Ej0SPRI9Ej0OEoCxEj0cEoC5EoC9EhwSgL0OBCABCBwGAAMcAhwcByABEoDp
EhUCHQ4HBwIdDhKA4QUgABKA7QoHBAICEoCZEoC5BSAAEoDxBiABEoD1HB0HCxKAsRwSgKUSgKkd
DhKArRKA4RKAtRI9DhKAvQUHARKAmQQgAQgOBSACDggIBCABDggFIAASgPkJIAUBETUICAgIJgcS
DhKA+RwSgKUSgKkOEoCtEoCZEoCxDhKAtQgRNQgIEj0IEoC9CiAGAQgODg4IEAIFIAASgQEIIAIB
DhASgP0GIAESgQUcBwcDHBwSgP0GIAESgPkcBSAAEoEJBSAAEoENBSACCAgIBSACARwcDwcHCBI5
EoCZEjkIEoD5CAQHAg4ODQEACFZhbGlkYXRlAAASAQANR2V0UHJvcGVydGllcwAABSABAR0OTAEA
BgAAAApDb25uZWN0aW9uCUJhdGNoU2l6ZQpDb2xsZWN0aW9uD0lzUXVlcnlWYXJpYWJsZQVRdWVy
eQ1RdWVyeVZhcmlhYmxlAAALAQAGU291cmNlAAAZAQAUU3BlY2lmeSBPRGF0YSBxdWVyeS4AAAYg
AQERgTE5AQA0SW5kaWNhdGVzIHdoZXRoZXIgdGhlIHF1ZXJ5IGlzIHN0b3JlZCBpbiBhIHZhcmlh
YmxlLgAANAEAL1NwZWNpZmllcyB0aGUgdmFyaWFibGUgdGhhdCBjb250YWlucyB0aGUgcXVlcnku
AAAIAQBkAAAAAAANAQAIU2V0dGluZ3MAAD0BADhTcGVjaWZpZXMgdGhlIG51bWJlciBvZiByb3dz
IHRvIGJlIHJldHJpZXZlZCBhcyBhIGJhdGNoLgAABSACAQ4CGAEAEkh0dHBDb25uZWN0aW9uVHlw
ZQEAACQBAB9TZWxlY3QgSFRUUCBDb25uZWN0aW9uIE1hbmFnZXIuAAATAQAOR2V0Q29sbGVjdGlv
bnMAAB0BABhTZWxlY3QgT0RhdGEgY29sbGVjdGlvbi4AAAUgABKBQQcgAgEOEoFBBgcCEkESQQQH
ARJFCAEAAgAAAAAABAABARwEBwESNAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRo
cm93cwEMAQAHMS4wLjAuMAAAKQEAJDU3MWQ3MjAxLTQ5MmItNGE1OC1hOGE5LTVkNzZkZDlhYjVi
OAAABQEAAQAAHwEAGkNvcHlyaWdodCBAIE1pY3Jvc29mdCAyMDExAAA8AQA3U2NyaXB0Q29tcG9u
ZW50X2Y0ZDQwMTU5MDM4ODQ0MTc5NzgzYWU5YjU1ZDBkYmQxLnZicHJvagAADgEACU1pY3Jvc29m
dAAAADx3AAAAAAAAAAAAAF53AAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQdwAAAAAAAAAAAAAA
AAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAoAACADgAAAEgAAIAQAAAAYAAAgAAAAAAA
AAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAAAAAAAAAAAAABAAB/AACoAACAAAAAAAAA
AAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAABAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAB
AAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAIAQAA
gIUAAOgCAAAAAAAAAAAAAGiIAAAoAQAAAAAAAAAAAACQiQAAIgAAAAAAAAAAAAAAGIEAAGgEAAAA
AAAAAAAAAGgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAA
AQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBp
AGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsATIAwAA
AQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACkAwAAAQAwADAAMAAwADAANABiADAAAAA0
AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0AaQBjAHIAbwBzAG8AZgB0AAAAmAA4AAEA
RgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBu
AGUAbgB0AF8AZgA0AGQANAAwADEANQA5ADAAMwA4ADgANAA0ADEANwA5ADcAOAAzAGEAZQA5AGIA
NQA1AGQAMABkAGIAZAAxAC4AdgBiAHAAcgBvAGoAAAAwAAgAAQBGAGkAbABlAFYAZQByAHMAaQBv
AG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJAG4AdABlAHIAbgBhAGwATgBhAG0AZQAAAFMA
YwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AZgA0AGQANAAwADEANQA5ADAAMwA4ADgANAA0
ADEANwA5ADcAOAAzAGEAZQA5AGIANQA1AGQAMABkAGIAZAAxAC4AdgBiAHAAcgBvAGoALgBkAGwA
bAAAAFwAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAAEMAbwBwAHkAcgBpAGcAaAB0
ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAwADEAMQAAAAAAoAA8AAEATwByAGkAZwBpAG4A
YQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AZgA0
AGQANAAwADEANQA5ADAAMwA4ADgANAA0ADEANwA5ADcAOAAzAGEAZQA5AGIANQA1AGQAMABkAGIA
ZAAxAC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAJAAOAABAFAAcgBvAGQAdQBjAHQATgBhAG0AZQAA
AAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBmADQAZAA0ADAAMQA1ADkAMAAzADgA
OAA0ADQAMQA3ADkANwA4ADMAYQBlADkAYgA1ADUAZAAwAGQAYgBkADEALgB2AGIAcAByAG8AagAA
ADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAA4AAgA
AQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAACgAAAAg
AAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA
gACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3d3d3d3
d3d3d3d3d3AERERERERERERERERERERwBP/////////////////0cAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAE////////////
//////RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//
///////////////0cAT/////////////////9HAE//////////////////RwBP//////////////
///0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////
////////////9HAE//////////////////RwBIiIiIiIiIiIiIiIiIiEcARERERERERERERERERE
RHAETExMTExMTExMTs7OSXRwBMzMzMzMzMzMzMzMzMzEAABEREREREREREREREREQAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////
wAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGA
AAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAADwAAAB////////////////ygA
AAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAA
AIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAHd3d3
d3d3d0RERERERERHT///////+EdP///////4R0////////hHT///////+EdP///////4R0//////
//hHT///////+EdP///////4R0iIiIiIiIhHTMzMzMzMzEfEREREREREwAAAAAAAAAAAAAAAAAAA
AAD//wAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AP//AAD//wAAAAABAAIAICAQAAEABADoAgAAAgAQEBAAAQAEACgBAAADAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABwAAAMAAAAcDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA]]></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="1841" 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_f4d40159038844179783ae9b55d0dbd1</property>
<property id="1842" 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="26" name="Http" description="" connectionManagerID="{16FDA59D-0D48-4698-AA26-7B454C54D5C6}" /></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"><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>