<component id="1" name="Script Component Plus" 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="25" 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_6fdc68d8fdd0420d9bab2d80f34c59ec.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2010")> 
<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("15851a85-14b9-4ac2-bd8a-06684d509d8f")> 

' 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 [title]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [title_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 [link]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [link_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 [content]() As String
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [content_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 [author]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [author_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 [id]() As String
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [id_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 [updated]() As DateTime
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [updated_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 [extensions]() As String
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [extensions_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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"title", "link", "content", "author", "id", "updated", "extensions"}
        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_6fdc68d8fdd0420d9bab2d80f34c59ec.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_6fdc68d8fdd0420d9bab2d80f34c59ec.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_6fdc68d8fdd0420d9bab2d80f34c59ec.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{DCDBBC34-65CA-46C9-BC2C-F79CCA6E32DB}</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="Google.GData.Client, Version=1.6.0.0, Culture=neutral, PublicKeyToken=04a59ca9b0273830, 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

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://code.google.com/apis/gdata/docs/2.0/reference.html

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

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports Google.GData.Client
Imports Google.GData.Extensions


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "Service", "BaseUrl", _
    "IsUsernameVariable", "Username", "UsernameVariable", _
    "IsPasswordVariable", "Password", "PasswordVariable", _
    "ProxyUrl", "ProxyUser", "ProxyPassword", _
    "BatchSize", "IsQueryVariable", "Query", "QueryVariable"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Sub New()
        ' Setup Google services list.
        m_serviceList = New Hashtable()
        With m_serviceList
            Call .Add("analytics", "https://www.google.com/analytics/feeds/data")
            Call .Add("apps", "https://apps-apis.google.com/a/feeds/")
            Call .Add("blogger", "")
            Call .Add("cl", "")
            Call .Add("codesearch", "")
            Call .Add("cp", "http://www.google.com/m8/feeds/contacts/")
            Call .Add("gbase", "http://www.google.com/base/")
            Call .Add("health", "https://www.google.com/health/feeds/")
            Call .Add("lh2", "http://picasaweb.google.com/data/feed/api/user/")
            Call .Add("weaver", "https://www.google.com/h9/feeds/")
            Call .Add("wise", "http://spreadsheets.google.com/feeds/")
            Call .Add("writely", "http://docs.google.com/feeds/default/private/full")
            Call .Add("youtube", "http://gdata.youtube.com/feeds/api/")
        End With
    End Sub


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Dim userStr As String = Me.Username
        If Me.IsUsernameVariable Then
            ' Username is contained in variable.
            userStr = CStr(GetVariable_(Me.UsernameVariable))
        End If

        Dim passStr As String = Me.Password
        If Me.IsPasswordVariable Then
            ' Password is contained in variable.
            passStr = CStr(GetVariable_(Me.PasswordVariable))
        End If

        ' Setup service.
        Dim service As Service = New Service(Me.Service, "CozyRoc Google Data Source")
        Call service.setUserCredentials(userStr, passStr)

        If Not String.IsNullOrEmpty(Me.ProxyUrl) Then
            ' Setup proxy.
            Dim proxy As WebProxy = New WebProxy(Me.BaseUrl)
            If String.IsNullOrEmpty(Me.ProxyUser) Then
                proxy.UseDefaultCredentials = False
                proxy.Credentials = New NetworkCredential(Me.ProxyUser, Me.Password)
            End If

            Dim rf As GDataRequestFactory = CType(service.RequestFactory, GDataRequestFactory)
            rf.Proxy = proxy
        End If

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

        Call FireInformation_(String.Format("Execute query: {0}", queryStr))

        ' Setup query object.
        Dim query As FeedQuery = New FeedQuery(Me.BaseUrl)
        query.NumberToRetrieve = Me.BatchSize
        query.ExtraParameters = queryStr

        Try
            Dim feed As AtomFeed = service.Query(query)

            While True
                Dim itemsCount As Integer = feed.Entries.Count
                For itemIndex As Integer = 0 To itemsCount - 1
                    Dim entry As AtomEntry = feed.Entries(itemIndex)

                    With Me.OutputBuffer
                        Call .AddRow()

                        .id = entry.Id.Uri.Content
                        .title = entry.Title.Text
                        .content = entry.Content.Content
                        .updated = entry.Updated

                        ' Setup links.
                        .link = GetLinks_(entry)

                        ' Setup authors.
                        .author = GetAuthors_(entry)

                        ' Setup extensions.
                        .extensions = GetExtensions_(entry)
                    End With
                Next

                If String.IsNullOrEmpty(feed.NextChunk) Then
                    ' No more data to retrieve.
                    Exit While
                End If

                ' Setup next query iteration.
                query.StartIndex += itemsCount
                feed = service.Query(query)
            End While
        Catch ex As Exception
            Call FireError_(ex.Message)
        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("Service")
        Call result.Add("BaseUrl")

        Call result.Add("IsUsernameVariable")
        Call result.Add(IIf(Me.IsUsernameVariable, "UsernameVariable", "Username"))

        Call result.Add("IsPasswordVariable")
        Call result.Add(IIf(Me.IsPasswordVariable, "PasswordVariable", "Password"))

        Call result.Add("ProxyUrl")
        Call result.Add("ProxyUser")
        Call result.Add("ProxyPassword")
        Call result.Add("BatchSize")

        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

        Try
            If String.IsNullOrEmpty(Me.Service) Then
                Throw New ApplicationException("Select Google service.")
            End If

            If String.IsNullOrEmpty(Me.BaseUrl) Then
                Throw New ApplicationException("Specify base URL.")
            End If

            If String.IsNullOrEmpty(Me.Username) Then
                Throw New ApplicationException("Specify service user name.")
            End If

            If String.IsNullOrEmpty(Me.Password) Then
                Throw New ApplicationException("Specify service password.")
            End If

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

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function GetServices() As String()
        Dim result As String() = New String(m_serviceList.Count - 1) {}
        Call m_serviceList.Keys.CopyTo(result, 0)
        GetServices = result
    End Function    ' GetServices


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Select Google service.")> _
    <List("GetServices")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Service() As String
        Get
            Service = m_service
        End Get
        Set(ByVal value As String)
            If m_service <> value Then
                m_service = value

                ' Setup base URL from service.
                Me.BaseUrl = CStr(m_serviceList(m_service))
            End If
        End Set
    End Property    ' Service


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specify base URL.")> _
    Public Property BaseUrl() As String
        Get
            BaseUrl = m_baseUrl
        End Get
        Set(ByVal value As String)
            m_baseUrl = value
        End Set
    End Property    ' BaseUrl


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies if Username property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsUsernameVariable() As Boolean
        Get
            IsUsernameVariable = m_isUserVar
        End Get
        Set(ByVal value As Boolean)
            If m_isUserVar <> value Then
                m_isUserVar = value
                m_username = String.Empty
            End If
        End Set
    End Property    ' IsUsernameVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specify service user name.")> _
    Public Property Username() As String
        Get
            Username = m_username
        End Get
        Set(ByVal value As String)
            m_username = value
        End Set
    End Property    ' Username


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies variable containing username.")> _
    <Variable()> _
    Public Property UsernameVariable() As String
        Get
            UsernameVariable = Me.Username
        End Get
        Set(ByVal value As String)
            Me.Username = value
        End Set
    End Property    ' UsernameVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies if Password property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsPasswordVariable() As Boolean
        Get
            IsPasswordVariable = m_isPassVar
        End Get
        Set(ByVal value As Boolean)
            If m_isPassVar <> value Then
                m_isPassVar = value
                m_password = String.Empty
            End If
        End Set
    End Property    ' IsPasswordVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specify service password.")> _
    <PasswordPropertyText(True)> _
    Public Property Password() As String
        Get
            Password = m_password
        End Get
        Set(ByVal value As String)
            m_password = value
        End Set
    End Property    ' Password


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("	Service")> _
    <Description("Specifies variable containing password.")> _
    <Variable()> _
    Public Property PasswordVariable() As String
        Get
            PasswordVariable = Me.Password
        End Get
        Set(ByVal value As String)
            Me.Password = value
        End Set
    End Property    ' PasswordVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Proxy")> _
    <Description("Specify proxy server URL (optional).")> _
    Public Property ProxyUrl() As String
        Get
            ProxyUrl = m_proxyUrl
        End Get
        Set(ByVal value As String)
            m_proxyUrl = value
        End Set
    End Property    ' ProxyUrl


    <Category("Proxy")> _
    <Description("Specify proxy user name (optional).")> _
    Public Property ProxyUser() As String
        Get
            ProxyUser = m_proxyUser
        End Get
        Set(ByVal value As String)
            m_proxyUser = value
        End Set
    End Property    ' ProxyUser


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Proxy")> _
    <Description("Specify proxy password (optional).")> _
    <PasswordPropertyText(True)> _
    Public Property ProxyPassword() As String
        Get
            ProxyPassword = m_proxyPassword
        End Get
        Set(ByVal value As String)
            m_proxyPassword = value
        End Set
    End Property    ' ProxyPassword


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specify batch number of rows to get.")> _
    <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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specifies if Query property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsQueryVariable() As Boolean
        Get
            IsQueryVariable = m_isQueryVar
        End Get
        Set(ByVal value As Boolean)
            If m_isQueryVar <> value Then
                m_isQueryVar = value
                m_query = String.Empty
            End If
        End Set
    End Property    ' IsQueryVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specify query string with parameters.")> _
    <TextDialog("Enter query")> _
    Public Property Query() As String
        Get
            Query = m_query
        End Get
        Set(ByVal value As String)
            m_query = value
        End Set
    End Property    ' Query


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Query")> _
    <Description("Specifies variable containing query.")> _
    <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 Function GetLinks_(ByVal entry As AtomEntry) As String
        Dim result As String

        For Each link As AtomLink In entry.Links
            If Not String.IsNullOrEmpty(result) Then
                result += vbCrLf
            End If

            result += link.HRef.Content
        Next

        GetLinks_ = result
    End Function    ' GetLinks_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetAuthors_(ByVal entry As AtomEntry) As String
        Dim result As String

        For Each person As AtomPerson In entry.Authors
            If Not String.IsNullOrEmpty(result) Then
                result += vbCrLf
            End If

            result += person.Email
        Next

        GetAuthors_ = result
    End Function    ' GetAuthors_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetExtensions_(ByVal entry As AtomEntry) As String
        Dim result As String

        For Each extension As XmlExtension In entry.ExtensionElements
            result += extension.Node.OuterXml
        Next

        If Not String.IsNullOrEmpty(result) Then
            ' Wrap result in start/end tag to create valid XML fragment.
            result = "<extension>" + result + "</extension>"
        End If

        GetExtensions_ = result
    End Function    ' GetExtensions_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    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_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireInformation_(ByVal message As String)
        Dim fireAgain As Boolean = False
        Call MyBase.ComponentMetaData.FireInformation( _
            0, _
            "Google Data Source", _
            message, _
            String.Empty, _
            0, _
            fireAgain)
    End Sub ' FireInformation_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Google Data Source", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_
#End Region ' Internals


#Region "Attributes"
    Private m_service As String
    Private m_baseUrl As String
    Private m_isUserVar As Boolean
    Private m_username As String
    Private m_isPassVar As Boolean
    Private m_password As String

    Private m_proxyUrl As String
    Private m_proxyUser As String
    Private m_proxyPassword As String

    Private m_batchSize As Integer
    Private m_isQueryVar As Boolean
    Private m_query As String

    Private m_serviceList As Hashtable
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="26" 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_6fdc68d8fdd0420d9bab2d80f34c59ec.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
I0dVSUQAAAAEMwAAVAkAACNCbG9iAAAAAAAAAAIAAAFXFaIJCQ8AAAD6ATMAFgAAAQAAAGUAAAAN
AAAAGwAAAFsAAAAxAAAAiwAAAGYAAAAsAAAABgAAACcAAAA3AAAAEAAAAAEAAAAKAAAAAQAAAAIA
AAADAAAAAgAAAAAAoxYBAAAAAAAKAKoBgAEKAN4BwAEGAO4B5wEKAEYCgAEGAMQC5wEKAEYDHAMO
AJgDgQMSAOcDxgMWABgExgMGAOsE5wEOACoGgQMaANwIyAgGAOcJ1AkGAMkKuAoGAPYK4QoeAFcL
QgseAKQLjgseAL0LjgseAOoL0gsGABQMAQwKAFMMLAwKAGsMEwAeAKAMgwwGANUMtQwGAPMM5wEG
ABcN5wEKADANEwAGAHQNVQ0GAIgN5wEGAKAN5wESALoNxgMGAMcN5wEiACoOAQ4iAFkOAQ4iAIYO
AQ4aAKgOyAgaAP8JyAgeAL0Osg4aAMYOyAgaANoOyAgGAOMO5wEKAO0OLAweADQPsg4eAEYPsg4a
AGMPyAgeAIsPsg4aAM8PyAgaAO8PyAgaAA4QyAgaABwQyAgaACkQyAgaAEUQyAgaAGoQyAgKAK4Q
LAwGAOgQ1AkKAPIQEwAGAAIR5wEGABAR5wEGACUR1AkKAEERLAwaAF8RyAgGAIMRaBEaAJERyAgG
ANgR1AkGAO0R5wEaAAESyAgaAAwSyAgaAE8SNxIaAFwSyAgaAHUSyAgaAH4SyAgmAK0SohIqABYT
7hIqACcT7hIqAGUT7hISAJYTxgMOAN8TvRMOAPsTvRMOABUUvRMeAC0UjgseAEgUjgsOAFoUvRMe
AGgUjgseAH0UjgsOAI8UvRMeAKEUjgsOAL8UvRMeANMUjgsGAPsU6RQGACIVERUGADUVAQwGAJ4V
tQwGAL4VtQwGANwV6RQGAPkVVQ0GAAcW6RQGACIW6RQGAD0W6RQGAFYW6RQGAG8W6RQGAIwW6RQA
AAAAAQAAAAAAAQABAAAAAAApADcABQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUB
AACHAAAADQAFAAgABQEAAJUAAAANAAUADwABAAAAsAC9AB0ABgARAAEAAAD1AL0ALQAGACUAAQAA
AAMBvQANAAkAKgABAAAADwG9AA0ACgArAAEAAAAZAb0AIAALACwAAAAAACQBMAENABgAVQAAARAA
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
sQC6ARMAuQC6Ab4AwQDkDA8CGQCvAmMAGQC4AmgAKQAFDRwCGQDRAnEA0QAhDSwCGQC6ARMA2QC6
ATwCRABVA5AATACEC4sATABLDbkCTAC6ARMA4QC6AcMAOQC6Aa8AOQCPDdECOQCYDQoB8QC6Ab4A
+QBQBRMA+QBXBRMA+QBmBc4AAQG6AcMAWQC6ARMAQQBDDt4CCQFxDuQCEQGUDuoCGQGdDmgAaQC6
ARMAaQCkDvYCUQHRAgEDKQG6AXYBKQH5DnYB6QAMDwYDMQG6Ab4AMQEaD8MAWQG6AXYBMQFTDwsD
KQF4DxIDOQGVDxgD6QCfDx8DIQG6Ab4AIQGmDwoBIQG7D74AKQGkCiUDQQHjDy4DVAAEEGgAeQGU
DjwDYQAVEEIDkQExEEgDmQE5EHEAYQBXEE4DoQFhEHEAYQA5EFQDqQE5EHEAYQB2EFoDQQGCEHEA
IQGQEGgAIQGfEAoBsQG6EF8DSQHKEHEAsQHWEBcAuQG6ARMAuQGkDogDwQH+EI0DuQEIEZQD0QG6
Ab4AaQAEEGgAaQAxEa8D2QE6EbUD4QFLEb0DaQCUDsQD6QBZESMBYQCkEckDZACuEdgDbAC8EYsA
6QDIEesD6QHPEUgDAQLkEc4ACQL5ERMAYQAhEgEEdACuEdgDfAC8EYsAEQItEnEAMQKMEikEOQKu
ES8EhAC8EYsAIQK1EkMEQQK+EnEA6QDIEUkEQQBAE2AEUQJWE2YESQKUDm8EWQKEC3YESQJ1ExMA
CQF8E4IECQGME4IEYQK6ARMAaQK6Ab4AcQK6Ab4AeQK6Aa4EgQK6AXcFkQK6Ab4AmQK6Ab4AoQK6
Ab4AqQK6ARMAsQK6AcMAuQK6Ab4AwQK6AQoBKQAEFVkIcQC6AV8IgQC6ARMA0QIqFXwI0QIwFXwI
2QK6ARMA4QK6AQoB6QK6ARMA8QK6Ab4A+QK6Ab4AAQO6Ab4ACQO6Ab4AEQO6Ab4AGQO6Ab4AIQO6
Ab4AKQO6Ab4AKQCDAN0BLgBLBEIJLgBDBAUJLgBbBAUJLgA7BOUILgAbBI8ILgBTBMYCLgAjBK4I
LgATBIYILgArBLsILgDrAMYCLgAzBMYCLgArAUcGQAArAJQBQAATAG0BQwATAG0BQwAbAHwBSQCD
APsBYwATAG0BYwAbAHwBaQCDAO4BgAArAJQBgwBzAJQBgwAbAHwBgwB7AJQBiQCDAMkBoAArAJQB
owDDAEQCowATAG0BwAArAJQBwwDrAMYCwwATAG0B4AArAJQB4wArAcYCAAErAJQBAAETAG0BAwEr
AcYCIAErAJQBIAETAG0BQAErAJQBQAETAG0BYAErAJQBYAETAG0BYwGbA7QEYwGLA40EYwGTA5sE
YwErAcYCYwGDA5QBgAErAJQBoAErAJQBwAETAG0BwAErAJQB4AErAJQBAAIrAJQBAAITAG0ByQKz
A48FyQK7A6sFyQKrA34FyQKjA20B6QK7A6sF6QKzAzcHCQOjA20BCQO7A6sFCQOzA9kFKQO7A6sF
KQOzA7kFSQOzAxoGSQO7A6sFSQPDA5QBaQOjA20BaQO7A6sFaQOzA2wGiQPLA0cGiQO7A6sFiQOz
A00GqQOzA60GqQO7A6sFqQPDA5QByQOzA9oGyQO7AwQH6QOzA04H6QO7AwQHCQS7AwQHCQTLA0cG
CQSzAw8HKQTbAyYIKQS7A7MHKQSzAy8ISQS7A7MHSQSzA74HSQSjA20BaQTTA3cHaQSzA4gHaQS7
A7MHiQS7A7MHiQTDA5QBiQSzA/wHqQQTAHMIyQQTAHMI6QQLBJQBQAUrAcYCYAUrAcYCtQG6Ab8B
xAEUAhgCIwIoAjcCNwK/AswC1wIUAvEC/AJmA58DpwPXAigCKAIUAigCKAIUAigCKAIoAigCKAIY
AhQCKAIoAvEDGQRQBHoEFAIUAmcIbgiBCAQAAQAGAAUABwAGAAsAFgAMACUADQAnAAAA3gFPAAAA
lwJUAAAARgJZAAAAowJeAAAAXwOYAAAAcgXSAAAAhQXXAAAAiwXbAAAAmAXXAAAAnQXbAAAAqQXX
AAAAsQXbAAAAwAXXAAAAxwXbAAAA1QXXAAAA2AXbAAAA4gXfAAAA6gXbAAAA+QXXAAAABAbbAAAA
FgbSAAAA/wnXAAAABwrXAAAADwrbAAAAIgrXAAAAKwrXAAAAPArbAAAATwrXAAAAWArXAAAAaQrX
AAAAcgrXAAAAfArXAAAAigowAQAAlArbAAAApArXAAAAqgrXAAAAyQpMAQAAOgtRAQAAagRiAQIA
BAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAEAFQATAAEAFgAV
AAEAFwAXAAEAGAAZAAEAGQAbAAEAGgAdAAEAGwAfAAEAHAAhAAEAHQAjAAEAHgAlAAEAHwAnAAEA
IAApAAIAIQArAAIAMQAtAAEAMgAtAAIAMwAvAAEANAAvAAIANQAxAAEANgAxAAIANwAzAAEAOAAz
AAEAOgA1AAIAOQA1AAIAOwA3AAEAPAA3AAEAPgA5AAIAPQA5AAIAPwA7AAEAQAA7AAIAQQA9AAEA
QgA9AAIAQwA/AAEARAA/AAIARQBBAAEARgBBAAEASABDAAIARwBDAAIASQBFAAEASgBFAAEATABH
AAIASwBHAAIATQBJAAEATgBJAAIAVgBLAAIAVwBNAAEAWABNAAIAWwBPAHUAdQCIAJkBoAGnAa4B
pgKtAjQDnAPPA+IDBwQQBDoEBIAAAAEAAAAAAAAAAAAAAAAAvQAAAAIAAAAAAAAAAAAAAAEACgAA
AAAACAAAAAAAAAAAAAAACgATAAAAAAABAAAAAAAAAAAAAACdAGsDAAAAAAoAAAAAAAAAAAAAAKYA
qQMAAAAACgAAAAAAAAAAAAAApgD3AwAAAAABAAYAAAAAAAAAAAAPAcgIAAAAAAIAAAAAAAAAAAAA
AAEA5wEAAAAACgAAAAAAAAAAAAAApgDdDQAAAAACAAAAAAAAAAAAAAABAKISAAAAAAoAAAAAAAAA
AAAAAKYAyxIAAAAAAAAAAAEAAABSFQAABQAEAAYABAAAABAADADtAgAAEAAZAO0CAAAAABsA7QIt
ADICLQC0AgAAAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBw
bGljYXRpb24AU2NyaXB0Q29tcG9uZW50XzZmZGM2OGQ4ZmRkMDQyMGQ5YmFiMmQ4MGYzNGM1OWVj
LnZicHJvai5NeQBNeUNvbXB1dGVyAE15UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVP
YmplY3RQcm92aWRlcmAxAE91dHB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfNmZkYzY4ZDhmZGQw
NDIwZDliYWIyZDgwZjM0YzU5ZWMudmJwcm9qAFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFy
aWFibGVzAFNjcmlwdE1haW4ATXlSZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50XzZmZGM2OGQ4ZmRk
MDQyMGQ5YmFiMmQ4MGYzNGM1OWVjLnZicHJvai5NeS5SZXNvdXJjZXMATXlTZXR0aW5ncwBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0
b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAu
Y2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRp
b24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVy
AGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlv
bgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcA
Q3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0
SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4
dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3RhbmNlAENvenlSb2MuU1NJU1BsdXMuMjAwOABDb3p5
Um9jLlNxbFNlcnZlci5TU0lTAFNjcmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5U
eFNjcmlwdABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQA
TWljcm9zb2Z0LlNxbFNlcnZlci5QaXBlbGluZUhvc3QAUGlwZWxpbmVCdWZmZXIAQ29tcG9uZW50
AE9iamVjdElEAElzSW5wdXQAQnVmZmVyAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAc2V0X3RpdGxl
AFZhbHVlAHNldF90aXRsZV9Jc051bGwAc2V0X2xpbmsAc2V0X2xpbmtfSXNOdWxsAHNldF9jb250
ZW50AHNldF9jb250ZW50X0lzTnVsbABzZXRfYXV0aG9yAHNldF9hdXRob3JfSXNOdWxsAHNldF9p
ZABzZXRfaWRfSXNOdWxsAERhdGVUaW1lAHNldF91cGRhdGVkAHNldF91cGRhdGVkX0lzTnVsbABz
ZXRfZXh0ZW5zaW9ucwBzZXRfZXh0ZW5zaW9uc19Jc051bGwAZ2V0X1N0YXRpY091dHB1dENvbHVt
bnMAQWRkUm93AFNldEVuZE9mUm93c2V0AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwB0
aXRsZQB0aXRsZV9Jc051bGwAbGluawBsaW5rX0lzTnVsbABjb250ZW50AGNvbnRlbnRfSXNOdWxs
AGF1dGhvcgBhdXRob3JfSXNOdWxsAGlkAGlkX0lzTnVsbAB1cGRhdGVkAHVwZGF0ZWRfSXNOdWxs
AGV4dGVuc2lvbnMAZXh0ZW5zaW9uc19Jc051bGwAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRD
b21wb25lbnRQbHVzAEZpbmlzaE91dHB1dHMATWFya091dHB1dHNGaW5pc2hlZABQcmltZU91dHB1
dABPdXRwdXRzAE91dHB1dElEcwBCdWZmZXJzAENyZWF0ZU5ld091dHB1dFJvd3MAUGFyZW50Q29t
cG9uZW50AEdldFByb3BlcnRpZXMAVmFsaWRhdGUAZXJyTWVzc2FnZQBHZXRTZXJ2aWNlcwBnZXRf
U2VydmljZQBzZXRfU2VydmljZQB2YWx1ZQBnZXRfQmFzZVVybABzZXRfQmFzZVVybABnZXRfSXNV
c2VybmFtZVZhcmlhYmxlAHNldF9Jc1VzZXJuYW1lVmFyaWFibGUAZ2V0X1VzZXJuYW1lAHNldF9V
c2VybmFtZQBnZXRfVXNlcm5hbWVWYXJpYWJsZQBzZXRfVXNlcm5hbWVWYXJpYWJsZQBnZXRfSXNQ
YXNzd29yZFZhcmlhYmxlAHNldF9Jc1Bhc3N3b3JkVmFyaWFibGUAZ2V0X1Bhc3N3b3JkAHNldF9Q
YXNzd29yZABnZXRfUGFzc3dvcmRWYXJpYWJsZQBzZXRfUGFzc3dvcmRWYXJpYWJsZQBnZXRfUHJv
eHlVcmwAc2V0X1Byb3h5VXJsAGdldF9Qcm94eVVzZXIAc2V0X1Byb3h5VXNlcgBnZXRfUHJveHlQ
YXNzd29yZABzZXRfUHJveHlQYXNzd29yZABnZXRfQmF0Y2hTaXplAHNldF9CYXRjaFNpemUAZ2V0
X0lzUXVlcnlWYXJpYWJsZQBzZXRfSXNRdWVyeVZhcmlhYmxlAGdldF9RdWVyeQBzZXRfUXVlcnkA
Z2V0X1F1ZXJ5VmFyaWFibGUAc2V0X1F1ZXJ5VmFyaWFibGUAR29vZ2xlLkdEYXRhLkNsaWVudABB
dG9tRW50cnkAR2V0TGlua3NfAGVudHJ5AEdldEF1dGhvcnNfAEdldEV4dGVuc2lvbnNfAEdldFZh
cmlhYmxlXwB2YXJOYW1lAEZpcmVJbmZvcm1hdGlvbl8AbWVzc2FnZQBGaXJlRXJyb3JfAG1fc2Vy
dmljZQBtX2Jhc2VVcmwAbV9pc1VzZXJWYXIAbV91c2VybmFtZQBtX2lzUGFzc1ZhcgBtX3Bhc3N3
b3JkAG1fcHJveHlVcmwAbV9wcm94eVVzZXIAbV9wcm94eVBhc3N3b3JkAG1fYmF0Y2hTaXplAG1f
aXNRdWVyeVZhcgBtX3F1ZXJ5AFN5c3RlbS5Db2xsZWN0aW9ucwBIYXNodGFibGUAbV9zZXJ2aWNl
TGlzdABTZXJ2aWNlAEJhc2VVcmwASXNVc2VybmFtZVZhcmlhYmxlAFVzZXJuYW1lAFVzZXJuYW1l
VmFyaWFibGUASXNQYXNzd29yZFZhcmlhYmxlAFBhc3N3b3JkAFBhc3N3b3JkVmFyaWFibGUAUHJv
eHlVcmwAUHJveHlVc2VyAFByb3h5UGFzc3dvcmQAQmF0Y2hTaXplAElzUXVlcnlWYXJpYWJsZQBR
dWVyeQBRdWVyeVZhcmlhYmxlAFN5c3RlbS5SZXNvdXJjZXMAUmVzb3VyY2VNYW5hZ2VyAF9yZXNN
Z3IAU3lzdGVtLkdsb2JhbGl6YXRpb24AQ3VsdHVyZUluZm8AX3Jlc0N1bHR1cmUAZ2V0X1Jlc291
cmNlTWFuYWdlcgBnZXRfQ3VsdHVyZQBzZXRfQ3VsdHVyZQBDdWx0dXJlAFN5c3RlbS5Db25maWd1
cmF0aW9uAEFwcGxpY2F0aW9uU2V0dGluZ3NCYXNlAG1fVmFsdWUAbV9TeW5jT2JqZWN0AGdldF9W
YWx1ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRv
ckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRy
aWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhp
ZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtl
eXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVs
cGVycwBHZXRPYmplY3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBB
Y3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAc2V0X1Zh
bHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0
cmluZwBzZXRfSXRlbQBTZXROdWxsAEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24AU2NyaXB0QnVm
ZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5l
V3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25l
bnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU091dHB1dENvbGxlY3Rpb24x
MDAAZ2V0X091dHB1dENvbGxlY3Rpb24ASURUU091dHB1dDEwMABnZXRfSXRlbQBnZXRfSUQAQWRk
AEZlZWRRdWVyeQBTeXN0ZW0uTmV0AFdlYlByb3h5AEdEYXRhUmVxdWVzdEZhY3RvcnkAQXRvbUZl
ZWQARXhjZXB0aW9uAENvbnZlcnNpb25zAHNldFVzZXJDcmVkZW50aWFscwBJc051bGxPckVtcHR5
AHNldF9Vc2VEZWZhdWx0Q3JlZGVudGlhbHMATmV0d29ya0NyZWRlbnRpYWwASUNyZWRlbnRpYWxz
AHNldF9DcmVkZW50aWFscwBJR0RhdGFSZXF1ZXN0RmFjdG9yeQBnZXRfUmVxdWVzdEZhY3RvcnkA
SVdlYlByb3h5AHNldF9Qcm94eQBGb3JtYXQAc2V0X051bWJlclRvUmV0cmlldmUAc2V0X0V4dHJh
UGFyYW1ldGVycwBBdG9tRW50cnlDb2xsZWN0aW9uAGdldF9FbnRyaWVzAEF0b21Db2xsZWN0aW9u
QmFzZWAxAGdldF9Db3VudABBdG9tSWQAZ2V0X0lkAEF0b21CYXNlTGluawBBdG9tVXJpAGdldF9V
cmkAZ2V0X0NvbnRlbnQAQXRvbVRleHRDb25zdHJ1Y3QAZ2V0X1RpdGxlAGdldF9UZXh0AEF0b21D
b250ZW50AGdldF9VcGRhdGVkAGdldF9OZXh0Q2h1bmsAZ2V0X1N0YXJ0SW5kZXgAc2V0X1N0YXJ0
SW5kZXgAUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAGdldF9NZXNzYWdlAENsZWFyUHJvamVj
dEVycm9yAEFycmF5TGlzdABJbnRlcmFjdGlvbgBJSWYAQXJyYXkAVG9BcnJheQBBcHBsaWNhdGlv
bkV4Y2VwdGlvbgBJQ29sbGVjdGlvbgBnZXRfS2V5cwBDb3B5VG8AT3BlcmF0b3JzAENvbXBhcmVT
dHJpbmcARW1wdHkAQXRvbUxpbmsAU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMASUVudW1lcmF0
b3JgMQBBdG9tTGlua0NvbGxlY3Rpb24AZ2V0X0xpbmtzAEdldEVudW1lcmF0b3IAZ2V0X0N1cnJl
bnQAQ29uY2F0AGdldF9IUmVmAElFbnVtZXJhdG9yAE1vdmVOZXh0AElEaXNwb3NhYmxlAERpc3Bv
c2UAQXRvbVBlcnNvbgBBdG9tUGVyc29uQ29sbGVjdGlvbgBnZXRfQXV0aG9ycwBnZXRfRW1haWwA
R29vZ2xlLkdEYXRhLkV4dGVuc2lvbnMAWG1sRXh0ZW5zaW9uAElFeHRlbnNpb25FbGVtZW50RmFj
dG9yeQBBdG9tQmFzZQBFeHRlbnNpb25MaXN0AGdldF9FeHRlbnNpb25FbGVtZW50cwBTeXN0ZW0u
WG1sAFhtbE5vZGUAZ2V0X05vZGUAZ2V0X091dGVyWG1sAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRT
UnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNW
YXJpYWJsZXMxMDAASURUU1ZhcmlhYmxlRGlzcGVuc2VyMTAwAGdldF9WYXJpYWJsZURpc3BlbnNl
cgBMb2NrT25lRm9yUmVhZABJRFRTVmFyaWFibGUxMDAAVW5sb2NrAEZpcmVJbmZvcm1hdGlvbgBG
aXJlRXJyb3IAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUAQ296eVJvYy5T
cWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBGaWx0
ZXJQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAFJlZnJlc2hQcm9w
ZXJ0aWVzQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzAExpc3RBdHRyaWJ1dGUARGVzY3JpcHRp
b25BdHRyaWJ1dGUAQ2F0ZWdvcnlBdHRyaWJ1dGUAVmFyaWFibGVBdHRyaWJ1dGUAUGFzc3dvcmRQ
cm9wZXJ0eVRleHRBdHRyaWJ1dGUAVGV4dERpYWxvZ0F0dHJpYnV0ZQBEZWZhdWx0VmFsdWVBdHRy
aWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3RlbS5UaHJl
YWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUAU2Ny
aXB0Q29tcG9uZW50XzZmZGM2OGQ4ZmRkMDQyMGQ5YmFiMmQ4MGYzNGM1OWVjLnZicHJvai5SZXNv
dXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNv
bXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBHdWlkQXR0
cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmli
dXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAQXNz
ZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAFNjcmlwdENv
bXBvbmVudF82ZmRjNjhkOGZkZDA0MjBkOWJhYjJkODBmMzRjNTllYy52YnByb2ouZGxsAAAAgJtJ
AHMATgB1AGwAbAAgAHAAcgBvAHAAZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQA
IAB0AG8AIABGAGEAbABzAGUALgAgAEEAcwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAg
AHQAaABlACAAYwBvAGwAdQBtAG4AIABpAG4AcwB0AGUAYQBkAC4AAAt0AGkAdABsAGUAAAlsAGkA
bgBrAAAPYwBvAG4AdABlAG4AdAAADWEAdQB0AGgAbwByAAAFaQBkAAAPdQBwAGQAYQB0AGUAZAAA
FWUAeAB0AGUAbgBzAGkAbwBuAHMAAA1PAHUAdABwAHUAdAAAE2EAbgBhAGwAeQB0AGkAYwBzAABX
aAB0AHQAcABzADoALwAvAHcAdwB3AC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGEAbgBhAGwAeQB0
AGkAYwBzAC8AZgBlAGUAZABzAC8AZABhAHQAYQAACWEAcABwAHMAAEtoAHQAdABwAHMAOgAvAC8A
YQBwAHAAcwAtAGEAcABpAHMALgBnAG8AbwBnAGwAZQAuAGMAbwBtAC8AYQAvAGYAZQBlAGQAcwAv
AAEPYgBsAG8AZwBnAGUAcgAAAQAFYwBsAAAVYwBvAGQAZQBzAGUAYQByAGMAaAAABWMAcAAAUWgA
dAB0AHAAOgAvAC8AdwB3AHcALgBnAG8AbwBnAGwAZQAuAGMAbwBtAC8AbQA4AC8AZgBlAGUAZABz
AC8AYwBvAG4AdABhAGMAdABzAC8AAAtnAGIAYQBzAGUAADdoAHQAdABwADoALwAvAHcAdwB3AC4A
ZwBvAG8AZwBsAGUALgBjAG8AbQAvAGIAYQBzAGUALwAADWgAZQBhAGwAdABoAABJaAB0AHQAcABz
ADoALwAvAHcAdwB3AC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGgAZQBhAGwAdABoAC8AZgBlAGUA
ZABzAC8AAAdsAGgAMgAAX2gAdAB0AHAAOgAvAC8AcABpAGMAYQBzAGEAdwBlAGIALgBnAG8AbwBn
AGwAZQAuAGMAbwBtAC8AZABhAHQAYQAvAGYAZQBlAGQALwBhAHAAaQAvAHUAcwBlAHIALwAADXcA
ZQBhAHYAZQByAABBaAB0AHQAcABzADoALwAvAHcAdwB3AC4AZwBvAG8AZwBsAGUALgBjAG8AbQAv
AGgAOQAvAGYAZQBlAGQAcwAvAAAJdwBpAHMAZQAAS2gAdAB0AHAAOgAvAC8AcwBwAHIAZQBhAGQA
cwBoAGUAZQB0AHMALgBnAG8AbwBnAGwAZQAuAGMAbwBtAC8AZgBlAGUAZABzAC8AAA93AHIAaQB0
AGUAbAB5AABjaAB0AHQAcAA6AC8ALwBkAG8AYwBzAC4AZwBvAG8AZwBsAGUALgBjAG8AbQAvAGYA
ZQBlAGQAcwAvAGQAZQBmAGEAdQBsAHQALwBwAHIAaQB2AGEAdABlAC8AZgB1AGwAbAAAD3kAbwB1
AHQAdQBiAGUAAEdoAHQAdABwADoALwAvAGcAZABhAHQAYQAuAHkAbwB1AHQAdQBiAGUALgBjAG8A
bQAvAGYAZQBlAGQAcwAvAGEAcABpAC8AADVDAG8AegB5AFIAbwBjACAARwBvAG8AZwBsAGUAIABE
AGEAdABhACAAUwBvAHUAcgBjAGUAACVFAHgAZQBjAHUAdABlACAAcQB1AGUAcgB5ADoAIAB7ADAA
fQAAD1MAZQByAHYAaQBjAGUAAA9CAGEAcwBlAFUAcgBsAAAlSQBzAFUAcwBlAHIAbgBhAG0AZQBW
AGEAcgBpAGEAYgBsAGUAACFVAHMAZQByAG4AYQBtAGUAVgBhAHIAaQBhAGIAbABlAAARVQBzAGUA
cgBuAGEAbQBlAAAlSQBzAFAAYQBzAHMAdwBvAHIAZABWAGEAcgBpAGEAYgBsAGUAACFQAGEAcwBz
AHcAbwByAGQAVgBhAHIAaQBhAGIAbABlAAARUABhAHMAcwB3AG8AcgBkAAARUAByAG8AeAB5AFUA
cgBsAAATUAByAG8AeAB5AFUAcwBlAHIAABtQAHIAbwB4AHkAUABhAHMAcwB3AG8AcgBkAAATQgBh
AHQAYwBoAFMAaQB6AGUAAB9JAHMAUQB1AGUAcgB5AFYAYQByAGkAYQBiAGwAZQAAG1EAdQBlAHIA
eQBWAGEAcgBpAGEAYgBsAGUAAAtRAHUAZQByAHkAAC1TAGUAbABlAGMAdAAgAEcAbwBvAGcAbABl
ACAAcwBlAHIAdgBpAGMAZQAuAAAjUwBwAGUAYwBpAGYAeQAgAGIAYQBzAGUAIABVAFIATAAuAAA1
UwBwAGUAYwBpAGYAeQAgAHMAZQByAHYAaQBjAGUAIAB1AHMAZQByACAAbgBhAG0AZQAuAAAzUwBw
AGUAYwBpAGYAeQAgAHMAZQByAHYAaQBjAGUAIABwAGEAcwBzAHcAbwByAGQALgAABQ0ACgAAFzwA
ZQB4AHQAZQBuAHMAaQBvAG4APgAAGTwALwBlAHgAdABlAG4AcwBpAG8AbgA+AAAlRwBvAG8AZwBs
AGUAIABEAGEAdABhACAAUwBvAHUAcgBjAGUAADFNAHkALgBSAGUAcwBvAHUAcgBjAGUAcwAuAE0A
eQBSAGUAcwBvAHUAcgBjAGUAcwAA17N3EcwKqU6G/e5hoI+Z5gAIt3pcVhk04IkIsD9ffxHVCjoD
IAABAwAAAQQAABIMBwYVEhgBEgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgB
EhQECAASDAQIABIIBAgAEhEECAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQ
HgACEwAEIAATAAcGFRIZARMABCgAEwAIFs9JC7gMNOoIiYRdzYCAzJEJIAQBEiEIAhIlBCAAHQ4E
IAEBDgQgAQECBSABAREpAyAAAgQoAB0OAygADgMoAAIEKAARKQMGEiQDBhIoAwYSHAkgAwEIHQgd
EiUDBhIhBSABARIhBSABAhAOBCABAQgIBKWcqbAnODAFIAEOEjEEIAEcDgIGDgIGAgIGCAMGEjUD
KAAIAwYSOQMGEj0EAAASOQQAABI9BQABARI9BAgAEjkECAASPQMGEjQCBhwEAAASNAQIABI0BSAB
ARFJCAEAAQAAAAAABSACAQ4OFwEACk15VGVtcGxhdGUHOC4wLjAuMAAABAEAAAAGFRIYARIMBhUS
GAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQTAQAOTXkuV2ViU2VydmljZXMA
ABABAAtNeS5Db21wdXRlcgAADAEAB015LlVzZXIAABMBAA5NeS5BcHBsaWNhdGlvbgAABAABHBwD
BwECAwcBCAYAARIVEWUEBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVt
LldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0lu
c3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAG
BwITABMABQEAAAAABAcBHQ4FIAIBCBwGBwIdDh0OBSAAEoCFBSAAEoCJBiABEoCNHAQHAggIBSAC
ARwcBAcBEjUEAAEOHAQAAQIOBiABARKAsQUgABKAtQYgAQESgLkFAAIODhwIIAESgKESgJEFIAAS
gL0HFRKAwQESMQUgARIxCAUgABKAxQUgABKAzQUgABKA0QUgABKA1QQgABEpBgABARKApSEHDw4S
gJEOEoCVDhKAmRKAnRKAoQgSMQgSgKUIEhwSgJEEIAEIHAYAAxwCHBwHIAESgOUSFQIdDgcHAh0O
EoDdBwcDAgISgKUFIAASgO0HIAIBEoDlCAYAAwgODgIEIAEcHAUgABKA/QgVEoDBARKA9QkgABUS
gPkBEwAIFRKA+QESgPUFAAIODg4PBwQODhKA9RUSgPkBEoD1BSAAEoENCBUSgMEBEoEJCBUSgPkB
EoEJDwcEDg4SgQkVEoD5ARKBCQUgABKBHQogABUSgPkBEoEVCBUSgPkBEoEVBSAAEoEhBgADDg4O
Dg8HBA4OEoERFRKA+QESgRUFIAASgSkIIAIBDhASgSUGIAESgS0cAyAAHAcHAxwcEoElCiAGAQgO
Dg4IEAINAQAIVmFsaWRhdGUAABIBAA1HZXRQcm9wZXJ0aWVzAAAFIAEBHQ6AwQEADwAAAAdTZXJ2
aWNlB0Jhc2VVcmwSSXNVc2VybmFtZVZhcmlhYmxlCFVzZXJuYW1lEFVzZXJuYW1lVmFyaWFibGUS
SXNQYXNzd29yZFZhcmlhYmxlCFBhc3N3b3JkEFBhc3N3b3JkVmFyaWFibGUIUHJveHlVcmwJUHJv
eHlVc2VyDVByb3h5UGFzc3dvcmQJQmF0Y2hTaXplD0lzUXVlcnlWYXJpYWJsZQVRdWVyeQ1RdWVy
eVZhcmlhYmxlAAAGIAEBEYFFEAEAC0dldFNlcnZpY2VzAAAbAQAWU2VsZWN0IEdvb2dsZSBzZXJ2
aWNlLgAADQEACAlTZXJ2aWNlAAAfAQAaU3BlY2lmeSBzZXJ2aWNlIHVzZXIgbmFtZS4AAEABADtT
cGVjaWZpZXMgaWYgVXNlcm5hbWUgcHJvcGVydHkgcmVmZXJlbmNlcyBwYWNrYWdlIHZhcmlhYmxl
LgAALAEAJ1NwZWNpZmllcyB2YXJpYWJsZSBjb250YWluaW5nIHVzZXJuYW1lLgAABQEAAQAAHgEA
GVNwZWNpZnkgc2VydmljZSBwYXNzd29yZC4AAEABADtTcGVjaWZpZXMgaWYgUGFzc3dvcmQgcHJv
cGVydHkgcmVmZXJlbmNlcyBwYWNrYWdlIHZhcmlhYmxlLgAALAEAJ1NwZWNpZmllcyB2YXJpYWJs
ZSBjb250YWluaW5nIHBhc3N3b3JkLgAAKQEAJFNwZWNpZnkgcHJveHkgc2VydmVyIFVSTCAob3B0
aW9uYWwpLgAACgEABVByb3h5AAAnAQAiU3BlY2lmeSBwcm94eSBwYXNzd29yZCAob3B0aW9uYWwp
LgAAFgEAEVNwZWNpZnkgYmFzZSBVUkwuAAAoAQAjU3BlY2lmeSBwcm94eSB1c2VyIG5hbWUgKG9w
dGlvbmFsKS4AABABAAtFbnRlciBxdWVyeQAAKgEAJVNwZWNpZnkgcXVlcnkgc3RyaW5nIHdpdGgg
cGFyYW1ldGVycy4AAAoBAAVRdWVyeQAAPQEAOFNwZWNpZmllcyBpZiBRdWVyeSBwcm9wZXJ0eSBy
ZWZlcmVuY2VzIHBhY2thZ2UgdmFyaWFibGUuAAApAQAkU3BlY2lmaWVzIHZhcmlhYmxlIGNvbnRh
aW5pbmcgcXVlcnkuAAAIAQBkAAAAAAApAQAkU3BlY2lmeSBiYXRjaCBudW1iZXIgb2Ygcm93cyB0
byBnZXQuAAAFIAASgWUHIAIBDhKBZQYHAhI5EjkEBwESPQgBAAIAAAAAAAQAAQEcBAcBEjQIAQAI
AAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBDAEABzEuMC4wLjAAACkBACQxNTg1
MWE4NS0xNGI5LTRhYzItYmQ4YS0wNjY4NGQ1MDlkOGYAAB8BABpDb3B5cmlnaHQgQCBNaWNyb3Nv
ZnQgMjAxMAAAPAEAN1NjcmlwdENvbXBvbmVudF82ZmRjNjhkOGZkZDA0MjBkOWJhYjJkODBmMzRj
NTllYy52YnByb2oAAA4BAAlNaWNyb3NvZnQAAAAAAPxrAAAAAAAAAAAAAB5sAAAAIAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAQbAAAAAAAAAAAAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5k
bGwAAAAAAP8lACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAwAAACgAAIAOAAAASAAAgBAAAABgAACA
AAAAAAAAAAAAAAAAAAACAAIAAAB4AACAAwAAAJAAAIAAAAAAAAAAAAAAAAAAAAEAAH8AAKgAAIAA
AAAAAAAAAAAAAAAAAAEAAQAAAMAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAANgAAAAAAAAAAAAAAAAA
AAAAAAEAAAAAAOgAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAPgAAAAAAAAAAAAAAAAAAAAAAAEAAAAA
AAgBAACAhQAA6AIAAAAAAAAAAAAAaIgAACgBAAAAAAAAAAAAAJCJAAAiAAAAAAAAAAAAAAAYgQAA
aAQAAAAAAAAAAAAAaAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4A
AAEAAAABAAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEA
cgBGAGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACw
BMgDAAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAABADAAMAAwADAAMAA0AGIA
MAAAADQACgABAEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMAbwBmAHQAAACY
ADgAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBwAHQAQwBvAG0A
cABvAG4AZQBuAHQAXwA2AGYAZABjADYAOABkADgAZgBkAGQAMAA0ADIAMABkADkAYgBhAGIAMgBk
ADgAMABmADMANABjADUAOQBlAGMALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBsAGUAVgBlAHIA
cwBpAG8AbgAAAAAAMQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBl
AAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwA2AGYAZABjADYAOABkADgAZgBkAGQA
MAA0ADIAMABkADkAYgBhAGIAMgBkADgAMABmADMANABjADUAOQBlAGMALgB2AGIAcAByAG8AagAu
AGQAbABsAAAAXAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBvAHAAeQByAGkA
ZwBoAHQAIABAACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQAwAAAAAACgADwAAQBPAHIAaQBn
AGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQA
XwA2AGYAZABjADYAOABkADgAZgBkAGQAMAA0ADIAMABkADkAYgBhAGIAMgBkADgAMABmADMANABj
ADUAOQBlAGMALgB2AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1AGMAdABOAGEA
bQBlAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADYAZgBkAGMANgA4AGQAOABm
AGQAZAAwADQAMgAwAGQAOQBiAGEAYgAyAGQAOAAwAGYAMwA0AGMANQA5AGUAYwAuAHYAYgBwAHIA
bwBqAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAA
ADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAA
KAAAACAAAABAAAAAAQAEAAAAAACAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACA
AAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3
d3d3d3d3d3d3d3d3cARERERERERERERERERERHAE//////////////////RwBP//////////////
///0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////
////////////9HAE//////////////////RwBP/////////////////0cAT/////////////////
9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////////
//////////RwBP/////////////////0cAT/////////////////9HAE//////////////////Rw
BP/////////////////0cAT/////////////////9HAEiIiIiIiIiIiIiIiIiIRwBERERERERERE
REREREREcARMTExMTExMTExOzs5JdHAEzMzMzMzMzMzMzMzMzMQAAERERERERERERERERERAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////
///////AAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB
gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAPAAAAH////////////
////KAAAABAAAAAgAAAAAQAEAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACA
gACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAA
AAd3d3d3d3d3REREREREREdP///////4R0////////hHT///////+EdP///////4R0////////hH
T///////+EdP///////4R0////////hHSIiIiIiIiEdMzMzMzMzMR8RERERERETAAAAAAAAAAAAA
AAAAAAAAAP//AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAQAA//8AAP//AAAAAAEAAgAgIBAAAQAEAOgCAAACABAQEAABAAQAKAEAAAMAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAGAAAAwAAAAwPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property>
<property id="29" 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="39" 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_6fdc68d8fdd0420d9bab2d80f34c59ec</property>
<property id="40" 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>
<outputs>
<output id="30" 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="31" name="title" description="The title of the item." lineageId="31" precision="0" scale="0" length="100" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="32" name="link" description="The URL of the item." lineageId="32" precision="0" scale="0" length="500" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="33" name="content" description="The item synopsis." lineageId="33" precision="0" scale="0" length="4000" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="34" name="author" description="Email address of the author of the item." lineageId="34" precision="0" scale="0" length="254" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="35" name="id" description="A string that uniquely identifies the item." lineageId="35" precision="0" scale="0" length="500" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="36" name="updated" description="Indicates when the item was published." lineageId="36" precision="0" scale="0" length="0" dataType="dbTimeStamp" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="37" name="extensions" description="" lineageId="37" precision="0" scale="0" length="4000" 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>