<component id="1" name="Regex Extract" 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="15" 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_1292ab1498824809a26b8e4c29dddf95.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_1292ab1498824809a26b8e4c29dddf95.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("31f8af91-2c7c-4e2a-aaef-03ac631527b1")> 

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

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    End Sub

    Public ReadOnly Property [input]() As String
        Get
            Return Buffer.GetString(Me.BufferColumnIndexes(0))
        End Get
    End Property
    Public ReadOnly Property [input_IsNull] As Boolean
        Get
            Return IsNull(0)
        End Get
    End Property

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {"input"}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class

<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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\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

    Dim InputsFinished As Integer = 0

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As PipelineBuffer)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer))
        End If

        If Buffer.EndOfRowset Then
            InputsFinished = InputsFinished + 1
            If InputsFinished = 1 Then
                FinishOutputs()
                MarkOutputsFinished()
            End If
        End If

    End Sub

    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()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_1292ab1498824809a26b8e4c29dddf95.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_1292ab1498824809a26b8e4c29dddf95.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_1292ab1498824809a26b8e4c29dddf95.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{9734C027-45A2-4239-B6F5-17C7F51DFB3D}</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.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-2011 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Text.RegularExpressions

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"Column", "Pattern"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim matches As MatchCollection = m_regex.Matches(Row.Buffer(m_inputColumn).ToString())

        For Each match As Match In matches
            Call Me.OutputBuffer.AddRow()

            ' Extract group values.
            For Each pair As DictionaryEntry In m_outColsIdx
                Dim group As Group = match.Groups(CStr(pair.Key))
                If group.Success Then
                    Me.OutputBuffer.Buffer(CInt(pair.Value)) = group.Value
                End If
            Next
        Next
    End Sub ' Input_ProcessInputRow


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PreExecute()
        Call MyBase.PreExecute()

        ' Setup regular expression.
        m_regex = New Regex( _
            Me.Pattern, _
            RegexOptions.Compiled Or RegexOptions.IgnoreCase Or _
            RegexOptions.Singleline Or RegexOptions.CultureInvariant)

        ' Setup input column.
        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
        m_inputColumn = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.Column).LineageID)

        ' Setup output columns.
        m_outColsIdx = 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 m_outColsIdx.Add( _
                column.Name, _
                Me.HostComponent.BufferManager.FindColumnByLineageID( _
                    output.Buffer, _
                    column.LineageID))
        Next
    End Sub ' PreExecute


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

        Try
            If String.IsNullOrEmpty(Me.Column) Then
                Throw New ApplicationException("Select input column.")
            End If

            If String.IsNullOrEmpty(Me.Pattern) Then
                Throw New ApplicationException("Specify regular expression.")
            End If

            ' Setup input columns based on selection.
            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            Call input.InputColumnCollection.RemoveAll()

            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
            Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(Me.Column)
            Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READONLY)

            Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
            If output.OutputColumnCollection.Count = 0 Then
                ' Setup collection output columns.
                Call SetupOutputColumns_()
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input column to use in regular expression extraction.")> _
    <InputVirtualColumn()> _
    Public Property Column() As String
        Get
            Column = m_column
        End Get
        Set(ByVal value As String)
            m_column = value
        End Set
    End Property    ' Column


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify extraction regular expression.")> _
    <RegularExpressionDialog()> _
    Public Property Pattern() As String
        Get
            Pattern = m_pattern
        End Get
        Set(ByVal value As String)
            If m_pattern <> value Then
                If Not String.IsNullOrEmpty(m_pattern) Then
                    ' Force output columns to be setup.
                    Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
                    Call output.OutputColumnCollection.RemoveAll()
                End If

                m_pattern = value
            End If
        End Set
    End Property    ' Pattern
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub SetupOutputColumns_()
        ' Get group names.
        Dim regex As Regex = New Regex(Me.Pattern)
        Dim groups() As String = regex.GetGroupNames()

        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
        Call output.OutputColumnCollection.RemoveAll()

        Dim groupsCount As Integer = groups.Length
        For groupIndex As Integer = 1 To groupsCount - 1    ' First group refers to the whole input.
            Dim column As IDTSOutputColumn100 = output.OutputColumnCollection.[New]()
            column.Name = groups(groupIndex)
            Call column.SetDataTypeProperties(DataType.DT_WSTR, 250, 0, 0, 0)
        Next
    End Sub ' SetupOutputColumns_
#End Region ' Internals


#Region "Attributes"
    Private m_column As String
    Private m_pattern As String

    Private m_regex As Regex
    Private m_inputColumn As Integer
    Private m_outColsIdx As Hashtable
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="16" 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_1292ab1498824809a26b8e4c29dddf95.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDACgYc00AAAAAAAAAAOAAAiELAQgAADIAAAAMAAAAAAAA/k8A
AAAgAAAAYAAAAABAAAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAKRPAABXAAAAAGAAALgJAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAABDAAAAAgAAAAMgAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAALgJAAAAYAAAAAoAAAA0AAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAPgAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAADg
TwAAAAAAAEgAAAACAAUAqCkAAPwlAAABAAAAAAAAAFAgAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAADOyu++AQAAAJEAAABsU3lzdGVtLlJlc291cmNlcy5S
ZXNvdXJjZVJlYWRlciwgbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5I1N5c3RlbS5SZXNvdXJjZXMuUnVudGlt
ZVJlc291cmNlU2V0AgAAAAAAAAAAAAAAUEFEUEFEULQAAAAeAigBAAAKKh4CKAQAAAoqpnMGAAAK
gAEAAARzBwAACoACAAAEcwgAAAqAAwAABHMJAAAKgAQAAAQqAAATMAEACwAAAAEAABF+AQAABG8K
AAAKKgATMAEACwAAAAIAABF+AgAABG8LAAAKKgATMAEACwAAAAMAABF+AwAABG8MAAAKKgATMAEA
CwAAAAQAABF+BAAABG8NAAAKKgATMAIADQAAAAUAABECAygRAAAKKBIAAAoqAAAAEzABAAcAAAAG
AAARAigTAAAKKgATMAEACwAAAAcAABHQBQAAAigUAAAKKgATMAEABwAAAAgAABECKBUAAAoqABMw
AQAQAAAACQAAEQKMAQAAGy0GKAEAACsqAioTMAIAEAAAAAoAABEDEgD+FQIAABsGgQIAABsqHgIo
FwAACioTMAIAKAAAAAsAABECexkAAApvGgAACgsHjAMAABstEigCAAArCwJ7GQAACgdvGwAACgcq
SgIoFwAACgJzHAAACn0ZAAAKKgAyAgMEBQ4EKB4AAAoqAAAAEzADABQAAAAMAAARAm8fAAAKAnsg
AAAKFpRvIQAACioTMAIACAAAAA0AABECFm8iAAAKKhMwAwARAAAADgAAEReNHQAAAQsHFnIBAABw
ogcqAAAAEzABAAcAAAAPAAARFo0dAAABKgATMAEACQAAABAAABECKCMAAAoKBioAAAATMAEACQAA
ABEAABECKCQAAAoKBioAAAAyAgMEBQ4EKB4AAAoqAAAAEzABAAcAAAASAAARFo0dAAABKgATMAEA
BwAAABMAABEWjR0AAAEqAB4CKCYAAAoqHgIoJwAACioTMAEACQAAABQAABECKCQAAAoKBioAAACa
AigoAAAKAgJzJgAABn0GAAAEAgJzJwAABn0HAAAEAhZ9CQAABCoAEzAFAFgAAAAAAAAAAwIoKQAA
Cm8qAAAKcg0AAHBvKwAACm8sAAAKMw8CAgMXBHMRAAAGbyQAAAYEby0AAAosIwICewkAAAQX1n0J
AAAEAnsJAAAEFzMMAm8gAAAGAm8hAAAGKgYqAABuAnsIAAAELBICewgAAARvHAAABgIUfQgAAAQq
EzAGAEkAAAAVAAARFgMX2gsKKzYEBpQCKCkAAApvLgAACnIZAABwby8AAApvMAAACjMTAgIEBpQW
BQaacxgAAAZ9CAAABAYX1goGBzHGAm8jAAAGKgAAAAYqAABKKwcCA28lAAAGA28WAAAGLfEqAAYq
AAA6AigXAAAKAgN9CgAABCoAOgIoFwAACgIDfQsAAAQqAB4CKB4AAAYqGzADAOAAAAAWAAARAnsO
AAAEA28fAAAKAnsPAAAEbzEAAApvFQAACm8yAAAKCgZvMwAAChMEOIwAAAARBG80AAAKdCUAAAEL
AnsIAAAEbxsAAAYCexAAAARvNQAAChMFK1wRBW80AAAKJS0FJhEGKwp5JwAAAXEnAAABDQdvNgAA
ChIDKDcAAAooOAAACm85AAAKDAhvOgAACiwiAnsIAAAEbx8AAAoSAyg7AAAKKDwAAAoIbz0AAApv
PgAAChEFbz8AAAotmxEEbz8AAAo6aP///94WEQR1LQAAASwMEQR1LQAAAW9AAAAK3CoBDAAAAgAi
AKfJABYAAAABEzAFAO0AAAAXAAARAihBAAAKAgJvLgAABiAZAgAAc0IAAAp9DgAABAJvKQAACm8q
AAAKFowwAAABbysAAAoLAgJvQwAACm9EAAAKB29FAAAKB29GAAAKAm8sAAAGb0cAAApvSAAACm9J
AAAKfQ8AAAQCc0oAAAp9EAAABAJvKQAACm8uAAAKFowwAAABby8AAAoMCG9LAAAKb0wAAAoKFgYX
2hMFDStLCG9LAAAKCYwwAAABb00AAAoTBAJ7EAAABBEEb04AAAoCb0MAAApvRAAACghvTwAAChEE
b1AAAApvSQAACowwAAABb1EAAAoJF9YNCREFMbAqAAAAGzADAMsAAAAYAAARFwoCbywAAAYoUgAA
CiwLcicAAHBzUwAACnoCby4AAAYoUgAACiwLclEAAHBzUwAACnoCbykAAApvKgAAChaMMAAAAW8r
AAAKDAhvRgAACm9UAAAKCG9VAAAKEwURBW9WAAAKAm8sAAAGb1cAAAoTBBEFEQRvWAAAChZvWQAA
CiYCKCkAAApvLgAAChaMMAAAAW8vAAAKDQlvSwAACm9MAAAKFjMGAm8wAAAG3holKFoAAAoTBhYK
AxEGb1sAAApRKFwAAAreAAYLByoAAQwAAAAAAgCrrQAaOAAAARMwAQAJAAAAGQAAEQJ7DAAABAoG
KgAAACICA30MAAAEKgAAABMwAQAJAAAAGgAAEQJ7DQAABAoGKgAAABMwAwBHAAAAGwAAEQJ7DQAA
BAMWKF0AAAoWLjYCew0AAAQoUgAACi0iAm8pAAAKby4AAAoWjDAAAAFvLwAACgoGb0sAAApvXgAA
CgIDfQ0AAAQqABMwBgB8AAAAHAAAEQJvLgAABnNfAAAKDQlvYAAACgoCbykAAApvLgAAChaMMAAA
AW8vAAAKDAhvSwAACm9eAAAKBo63CxcHF9oTBhMFKzIIb0sAAApvYQAAChMEEQQGEQWab2IAAAoR
BCCCAAAAIPoAAAAWFhZvYwAAChEFF9YTBREFEQYxyCoeAigXAAAKKhMwAgAtAAAAHQAAEX4RAAAE
LSByiQAAcNANAAACKBQAAApvagAACnNrAAAKCweAEQAABH4RAAAEKgAAABMwAQAGAAAAHgAAEX4S
AAAEKgAAHgKAEgAABCpCcxcAAAooEQAACoAUAAAEKgAAAB4CKGwAAAoqGzABAD8AAAAfAAARfhMA
AAQtMn4UAAAEKBEAAAoobQAACn4TAAAELRxzNgAABoATAAAE3hB+FAAABCgRAAAKKG4AAArcfhMA
AAQqAAEMAAACAB0ADCkAEAAAAAFCU0pCAQABAAAAAAAMAAAAdjIuMC41MDcyNwAAAAAFAGwAAACo
DQAAI34AABQOAACEEQAAI1N0cmluZ3MAAAAAmB8AALwAAAAjVVMAVCAAABAAAAAjR1VJRAAAAGQg
AACYBQAAI0Jsb2IAAAAAAAAAAgAAAVcVogkJDwAAAPoBMwAWAAABAAAAUQAAAA4AAAAUAAAANwAA
ABkAAAB5AAAAQAAAAB8AAAAHAAAAEAAAABMAAAAJAAAAAQAAAAgAAAABAAAAAgAAAAMAAAACAAAA
AABIEQEAAAAAAAoAtgGMAQoA6gHMAQYA+gHzAQoAUgKMAQYA0ALzAQoAUgMoAw4ApAONAxIA8wPS
AxYAJATSAw4AAwWNAxoAbQZOBgYAnAaJBgYA0wbCBgYAAAfrBhoAZwdSBxoAtAeeBxoAzQeeBxoA
+gfiBwYAJAgRCAoAYwg8CAoAewgTABoAsAiTCAYA5QjFCAYAAwnzAQYAJwnzAQoAQAkTAAYAhAll
CRIAownSAwYA1QnzAQYA3AnzAR4APwoWCh4AbgoWCh4AmQoWCh4AxgoWCh4A8woWChoAAQtOBhoA
EQtOBhoAFwtOBgYAHQuJBgYALQuJBgYAOQuJBhoAcQtOBgoAlAs8CBoAtgtOBgYA0AvzAR4A5AsW
ChoA+AtOBgYABQzzARYACwzSAx4ALwwWCh4AVgwWCh4AjQwWCh4AxAwWCh4AFA0WCh4ALg0WCgYA
Qg3zAQYAWg3zAR4AiQ0WCh4Azg0WCgoA6A08CAoAIg48CCIAoA54DhIAvw7SAw4ACA/mDg4AJA/m
Dg4APA/mDhoAWA+eBw4AbQ/mDgYAoA+ODwYAxw+2DwYA2g8RCAYAQxDFCAYAYxDFCAYAgRCODwYA
nhBlCQYArBCODwYAxxCODwYA4hCODwYA+xCODwYAFBGODwYAMRGODwAAAAABAAAAAAABAAEAAAAA
ACkANwAFAAEAAQAAAAAAcgA3AAkAAQACAAABEAB9ADcADQABAAMABQEAAIcAAAANAAUACAAFAQAA
lQAAAA0ABQAPAAEAAACwALwAHQAGABEAAQAAAPQAvAAdAAYAGAABAAAAAQG8ACkABgAeAAEAAAAP
AbwADQAKACYAAQAAABsBvAANAAsAJwABAAAAJQG8ACQADAAoAAAAAAAwATwBDQARADEAAAEQAIEB
vAA9ABMANQAxABUCIAAxAD4CLQAxAGACOgAxAIUCRwAhAGEDkAAGAA8BzwAGABsB0wAGAPQA1wAB
ABcF2wABAMQF9QABAMQF9QABADsGCgEBAEQGCgEBAHMGDQEBAHsG2wABAKYGEQERAOMGFQERAAwH
GQERAH8HNwERAIcHOwEIIQAAAAAGGMYBEwABABAhAAAAAAYYxgETAAEAGCEAAAAAERgBAhcAAQBE
IQAAAAATCAgCGwABAFwhAAAAABMILgIoAAEAdCEAAAAAEwhXAjUAAQCMIQAAAAATCHUCQgABAKQh
AAAAAEYCuwJjAAEAwCEAAAAARgLEAmgAAgDUIQAAAACDANUCbAACAOwhAAAAAEYC3QJxAAIAACIA
AAAAEQDmAngAAgAcIgAAAAABAAQDgAADADgiAAAAAAYYxgETAAQAQCIAAAAAAwgYA4sABAB0IgAA
AAAGGMYBEwAEAIgiAAAAAAYYxgGvAAQAmCIAAAAABghVBHEACAC4IgAAAAAGCF8EuQAIAMwiAAAA
AEYKcAS9AAgA7CIAAAAARgqHBL0ACAAAIwAAAACGAJ8EuQAIABgjAAAAAIYApwS5AAgAMCMAAAAA
BhjGAa8ACABAIwAAAABGCnAEvQAMAFQjAAAAAEYKhwS9AAwAaCMAAAAAhgDtBBMADABwIwAAAACG
APQEEwAMAHgjAAAAAIYApwS5AAwAkCMAAAAABhjGARMADAC4IwAAAABGAiYF3gAMABwkAAAAAEYD
OwUTAA4AICQAAAAAAQBJBRMADgA8JAAAAABGAl0F5QAOAJQkAAAAAEYDgwUTABEAmCQAAAAARgOX
Be8AEQCsJAAAAABGA6oF7wASALAkAAAAAAYYxgH5ABMAwCQAAAAABhjGAfkAFADQJAAAAAAGGMYB
EwAVANgkAAAAAEYCqgXvABUA1CUAAAAARgLUBRMAFgDQJgAAAAAGAN8F/wAWALgnAAAAAAYI8wVx
ABcA0CcAAAAABgj+BQUBFwDcJwAAAAAGCA8GcQAYAPQnAAAAAAYIGwYFARgASCgAAAAAAQAnBhMA
GQDQKAAAAAADGMYBEwAZANgoAAAAABYIGAcdARkAFCkAAAAAFggsByIBGQAoKQAAAAAWCDgHJwEZ
ADApAAAAABEYAQIXABoARCkAAAAABhjGARMAGgBMKQAAAAAWCJQHPgEaAAAAAQDCAgAAAQD7AgAA
AQD7AgAAAQAzBAAAAgA9BAAAAwBGBAAABABOBAAAAQAzBAAAAgA9BAAAAwBGBAAABABOBAAAAQAz
BQAAAgBOBAAAAQBpBQAAAgBxBQAAAwB7BQAAAQBOBAAAAQDABQAAAQAzBAAAAQAzBAAAAQDABQAA
AQDoBQAAAQAJBgAAAQAJBgAAAQBEBwkAxgETAIEAxgFIAZEAxgFXAREAxgETAJkAxgETACQAxgET
ACwAxgETADQAxgETADwAxgETACQAGAOLACwAGAOLADQAGAOLADwAGAOLAKEAxgETAKkAxgETALEA
xgEFAbkA9AjwARkAuwJjABkAxAJoACkAFQn9ARkA3QJxAMkAMQkNAhkAxgETANEAxgEdAkQAYQOQ
AEwAlAeLAEwAWwmaAkwAxgETANkAxgGnAjkAxgGvADkAmAmyAuEAsAm3AkkAxAm7AjkAzgnAAuEA
nwS5AOEApwS5APEAxgGnAuEA7QQTAOEA9AQTAFEAxgETAEEAWArRAvkAhQrWAgEBpgrcAgkBrwpo
AEkAtgq5APkA3grjAhEBpgrpAhkBrwpoAEkApgr1AlkATwv6AiEBVwsBA0EBZQsHA2EAVwsLAykB
gQsRAzkBjAsHA1kB3QIXA1EBpgocAzEBoAu5ADkBlAcHA1kBrAsjA2EBlAdxAEkAvgsoA0EBxwu5
AGkB3AsTAEEA1AUTAFkAxgFGA1EAHQxOA4kBRAxUAwkBmAloAAkBcwxaA5kBpgpgA6EBoAxoAJEB
rgxnA2EAxgETABkB4gxtA6kB/QxoAKkBpgpzA3EBBw1xABkBmAloAHEBoAxoAGEAEA16A+kATA2P
A8kBxgEFAZkBbw0TAAkBeQ2UA7kBrQ2aA9EBpgqgA7EBoAxoALkB2w2nA+EB9A2vA8EBBA5xAOEB
EA4XAOkBLA7KA6kBbw0TAFkAxgEFAVkAOg69AKkBSA7XA3EBTA4FAXEBqQ7dA/kBxgETAAECxgEF
AQkCxgEGBBECxgETABkCxgEFASECxgETACkAqQ+SBGkAxgGYBHkAxgETADECzw+1BDEC1Q+1BDkC
xgETAEECxgG/BEkCxgETAFECxgEFAVkCxgEFAWECxgEFAWkCxgEFAXECxgEFAXkCxgEFAYECxgEF
AYkCxgEFASkAgwCqAS4AuwOGBS4AkwPsBC4AswNJBS4AywNJBS4AwwOsAi4AgwPEBC4AiwPNBC4A
mwP5BC4A6wCsAi4AKwEjBS4AowOsAi4AqwMpBUAAEwBOAUAAKwB1AUMAEwBOAUMAGwBdAUkAgwDI
AWMAEwBOAWMAGwBdAWkAgwC7AYAAKwB1AYMAcwB1AYMAewB1AYMAGwBdAYkAgwDcAaAAKwB1AaMA
EwBOAaMAwwAlAsAAKwB1AcMA6wCsAsMAEwBOAeAAKwB1AeMAKwGsAgABKwB1AQABEwBOAQMBKwGs
AiABKwB1ASABEwBOASMBKwGsAkABEwBOAUABKwB1AWABKwB1AWABEwBOAYABKwB1AYMBMwMMBIMB
IwN1AYMBKwP4A4MBKwGsAokBQwMkBIkBOwN1AaABKwB1AakBSwN1AakBQwNmBMABKwB1AcABEwBO
AckBEwCsBOABKwB1AekBEwCsBAACEwBOAQACKwB1AQkCewN1AcAEKwGsAuAEKwGsApYBmwGgAaUB
9QH5AQQCCQIYAhgCoAIJAvUBxQLMAvUB9QHMAswC9QHwAi4DgAO2AwkCCQLRA+gDoASnBLoEBAAB
AAYABQAHAAYACAAKAAwADAANAA4ADgAQAAAA6gFPAAAAowJUAAAAUgJZAAAArwJeAAAAawOYAAAA
swTCAAAAuQTGAAAAxgTKAAAA2QTKAAAAxgTKAAAA2QTKAAAAswbCAAAAugbCAAAA0wYtAQAASgcy
AQAARAdDAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIAEwAPAAIAFAARAAIA
FQATAAIAGQAVAAIAGgAXAAIALAAZAAEALQAZAAEALwAbAAIALgAbAAIAMgAdAAIAMwAfAAEANAAf
AAIANwAhAHUAdQCIAHoBgQGIAY8BhwKOAgSAAAABAAAAAAAAAAAAAAAAALwAAAACAAAAAAAAAAAA
AAABAAoAAAAAAAgAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQB3AwAAAAAKAAAAAAAA
AAAAAACmALUDAAAAAAoAAAAAAAAAAAAAAKYAAwQAAAAAAgAAAAAAAAAAAAAAAQDzAQAAAAAKAAAA
AAAAAAAAAACmAPIJAAAAAAoAAAAAAAAAAAAAAKYAVQ4AAAAAAAAAAAEAAAD3DwAABQAEAAYABAAA
ABAADAD5AgAAEAAZAPkCAAAAABsA+QItABMCLQCVAgAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jv
c29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBvbmVudF8xMjkyYWIxNDk4
ODI0ODA5YTI2YjhlNGMyOWRkZGY5NS52YnByb2ouTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlX
ZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1ZmZlcgBTY3JpcHRD
b21wb25lbnRfMTI5MmFiMTQ5ODgyNDgwOWEyNmI4ZTRjMjlkZGRmOTUudmJwcm9qAE91dHB1dEJ1
ZmZlcgBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVz
b3VyY2VzAFNjcmlwdENvbXBvbmVudF8xMjkyYWIxNDk4ODI0ODA5YTI2YjhlNGMyOWRkZGY5NS52
YnByb2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxp
Y2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNp
Yy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0Nv
bXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIA
VXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdl
YlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8A
R2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGlu
c3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJ
bnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMDgAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3Jp
cHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNl
cnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlw
ZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZl
cgBnZXRfaW5wdXQAZ2V0X2lucHV0X0lzTnVsbABnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9T
dGF0aWNPdXRwdXRDb2x1bW5zAE5leHRSb3cARW5kT2ZSb3dzZXQAaW5wdXQAaW5wdXRfSXNOdWxs
AFN0YXRpY0lucHV0Q29sdW1ucwBTdGF0aWNPdXRwdXRDb2x1bW5zAEFkZFJvdwBTZXRFbmRPZlJv
d3NldABTY3JpcHRDb21wb25lbnRQbHVzAElucHV0c0ZpbmlzaGVkAFByb2Nlc3NJbnB1dABJbnB1
dElEAEZpbmlzaE91dHB1dHMATWFya091dHB1dHNGaW5pc2hlZABQcmltZU91dHB1dABPdXRwdXRz
AE91dHB1dElEcwBCdWZmZXJzAENyZWF0ZU5ld091dHB1dFJvd3MASW5wdXRfUHJvY2Vzc0lucHV0
AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBSb3cAUGFyZW50Q29tcG9uZW50AFByZUV4ZWN1dGUAVmFs
aWRhdGUAZXJyTWVzc2FnZQBnZXRfQ29sdW1uAHNldF9Db2x1bW4AdmFsdWUAZ2V0X1BhdHRlcm4A
c2V0X1BhdHRlcm4AU2V0dXBPdXRwdXRDb2x1bW5zXwBtX2NvbHVtbgBtX3BhdHRlcm4AU3lzdGVt
LlRleHQuUmVndWxhckV4cHJlc3Npb25zAFJlZ2V4AG1fcmVnZXgAbV9pbnB1dENvbHVtbgBTeXN0
ZW0uQ29sbGVjdGlvbnMASGFzaHRhYmxlAG1fb3V0Q29sc0lkeABDb2x1bW4AUGF0dGVybgBTeXN0
ZW0uUmVzb3VyY2VzAFJlc291cmNlTWFuYWdlcgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxpemF0aW9u
AEN1bHR1cmVJbmZvAF9yZXNDdWx0dXJlAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1bHR1cmUA
c2V0X0N1bHR1cmUAVmFsdWUAQ3VsdHVyZQBTeXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBsaWNhdGlv
blNldHRpbmdzQmFzZQBtX1ZhbHVlAG1fU3luY09iamVjdABnZXRfVmFsdWUAU3lzdGVtLkNvbXBv
bmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBT
eXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAFN5c3RlbS5EaWFn
bm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29t
cGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJp
YnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhlbHBLZXl3b3JkQXR0cmlidXRlAFN5
c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGltZUhlbHBlcnMAR2V0T2JqZWN0VmFs
dWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAQWN0aXZhdG9yAENyZWF0ZUlu
c3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGlt
ZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBnZXRfQnVmZmVyAFNjcmlwdEJ1
ZmZlcgBCdWZmZXJDb2x1bW5JbmRleGVzAEdldFN0cmluZwBJc051bGwAU3RyaW5nAENMU0NvbXBs
aWFudEF0dHJpYnV0ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3Nv
ZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEw
MABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRD
b2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQAZ2V0X0VuZE9mUm93c2V0AElE
VFNPdXRwdXRDb2xsZWN0aW9uMTAwAGdldF9PdXRwdXRDb2xsZWN0aW9uAElEVFNPdXRwdXQxMDAA
TWF0Y2hDb2xsZWN0aW9uAE1hdGNoAEdyb3VwAERpY3Rpb25hcnlFbnRyeQBJRW51bWVyYXRvcgBJ
RGljdGlvbmFyeUVudW1lcmF0b3IATWF0Y2hlcwBHZXRFbnVtZXJhdG9yAGdldF9DdXJyZW50AEdy
b3VwQ29sbGVjdGlvbgBnZXRfR3JvdXBzAGdldF9LZXkAQ29udmVyc2lvbnMAZ2V0X1N1Y2Nlc3MA
VG9JbnRlZ2VyAENhcHR1cmUAc2V0X0l0ZW0ATW92ZU5leHQASURpc3Bvc2FibGUARGlzcG9zZQBJ
RFRTT3V0cHV0Q29sdW1uMTAwAFJlZ2V4T3B0aW9ucwBJbnQzMgBQaXBlbGluZUNvbXBvbmVudABn
ZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBJ
RFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24ASURU
U0lucHV0Q29sdW1uMTAwAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAElEVFNP
dXRwdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9PdXRwdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9D
b3VudABnZXRfTmFtZQBBZGQASURUU1ZpcnR1YWxJbnB1dENvbHVtbjEwMABJRFRTVmlydHVhbElu
cHV0MTAwAEV4Y2VwdGlvbgBJc051bGxPckVtcHR5AEFwcGxpY2F0aW9uRXhjZXB0aW9uAFJlbW92
ZUFsbABHZXRWaXJ0dWFsSW5wdXQASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAA
Z2V0X1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24ARFRTVXNhZ2VUeXBlAFNldFVzYWdlVHlw
ZQBQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQ2xlYXJQcm9qZWN0RXJy
b3IAT3BlcmF0b3JzAENvbXBhcmVTdHJpbmcAR2V0R3JvdXBOYW1lcwBOZXcAc2V0X05hbWUATWlj
cm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5S
dW50aW1lLldyYXBwZXIARGF0YVR5cGUAU2V0RGF0YVR5cGVQcm9wZXJ0aWVzAFNTSVNTY3JpcHRD
b21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmli
dXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3BlcnRpZXNBdHRyaWJ1dGUA
SW5wdXRWaXJ0dWFsQ29sdW1uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFJlZ3VsYXJF
eHByZXNzaW9uRGlhbG9nQXR0cmlidXRlAFN5c3RlbS5SZWZsZWN0aW9uAEFzc2VtYmx5AGdldF9B
c3NlbWJseQBTeXN0ZW0uVGhyZWFkaW5nAE1vbml0b3IARW50ZXIARXhpdABEZWJ1Z2dlck5vblVz
ZXJDb2RlQXR0cmlidXRlAFNjcmlwdENvbXBvbmVudF8xMjkyYWIxNDk4ODI0ODA5YTI2YjhlNGMy
OWRkZGY5NS52YnByb2ouUmVzb3VyY2VzLnJlc291cmNlcwBDb21waWxhdGlvblJlbGF4YXRpb25z
QXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAEFzc2VtYmx5RmlsZVZlcnNp
b25BdHRyaWJ1dGUAR3VpZEF0dHJpYnV0ZQBBc3NlbWJseVRyYWRlbWFya0F0dHJpYnV0ZQBBc3Nl
bWJseUNvcHlyaWdodEF0dHJpYnV0ZQBBc3NlbWJseVByb2R1Y3RBdHRyaWJ1dGUAQXNzZW1ibHlD
b21wYW55QXR0cmlidXRlAEFzc2VtYmx5RGVzY3JpcHRpb25BdHRyaWJ1dGUAQXNzZW1ibHlUaXRs
ZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfMTI5MmFiMTQ5ODgyNDgwOWEyNmI4ZTRjMjlkZGRm
OTUudmJwcm9qLmRsbAAAC2kAbgBwAHUAdAAAC0kAbgBwAHUAdAAADU8AdQB0AHAAdQB0AAApUwBl
AGwAZQBjAHQAIABpAG4AcAB1AHQAIABjAG8AbAB1AG0AbgAuAAA3UwBwAGUAYwBpAGYAeQAgAHIA
ZQBnAHUAbABhAHIAIABlAHgAcAByAGUAcwBzAGkAbwBuAC4AADFNAHkALgBSAGUAcwBvAHUAcgBj
AGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAOG/l16/ZX1OroGmLd13d2oACLd6XFYZNOCJ
CLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEE
AAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEB
HgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImEXc2AgMyRCSAEARIh
CAISJQMgAAIEIAAdDgMoAA4DKAACBCgAHQ4DBhIoAwYSLAMGEiACBggGIAIBCBIlCSADAQgdCB0S
JQUgAQESHAMGEiEFIAEBEiEFIAECEA4EIAEBDgIGDgMGEi0DBhIxAwYSNQMGEjkEAAASNQQAABI5
BQABARI5BAgAEjUECAASOQMGEjgCBhwEAAASOAQIABI4BSABARFFCAEAAQAAAAAABSACAQ4OFwEA
Ck15VGVtcGxhdGUHOC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcB
EgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuQXBw
bGljYXRpb24AABMBAA5NeS5XZWJTZXJ2aWNlcwAABAABHBwDBwECAwcBCAYAARIVEWEEBwESFQMH
AQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2Nv
bHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5z
dGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAGBwITABMABCABAQIFAQAAAAAEIAAS
JQMGHQgEIAEOCAQgAQIIBgcCHQ4dDgQHAR0OBCAAEn0FIAASgIEGIAESgIUcBSAAEoCJBiABEoCN
HAQHAggIBCABHAgGIAESgJEOBSAAEoChAyAAHAUgABKApQUgABKAqQQAAQ4cBiABEoCZDgQAAQgc
BSACAQgcFwcHEoCREoCVEoCZEYCdEoChEoClEYCdByACAQ4RgL0FIAASgMUFIAASgMkFIAASgM0G
IAESgNEcBSACCAgIBSAAEoDVBiABEoC5HAUgAgEcHA4HBggSgIUSgI0IEoC5CAQAAQIOBSAAEoDd
BSAAEoDpBiABEoDZHAcgAggIEYDtBgABARKA4RMHBwICEoCFEoCNEoDZEoDdEoDhBgADCA4OAgUH
ARKAjQUgABKAuQogBQERgPkICAgIDwcHHQ4IEoCNEi0SgLkICA0BAAhWYWxpZGF0ZQAABSABAR0O
FwEAAgAAAAZDb2x1bW4HUGF0dGVybgAAQQEAPFNlbGVjdCBpbnB1dCBjb2x1bW4gdG8gdXNlIGlu
IHJlZ3VsYXIgZXhwcmVzc2lvbiBleHRyYWN0aW9uLgAAKwEAJlNwZWNpZnkgZXh0cmFjdGlvbiBy
ZWd1bGFyIGV4cHJlc3Npb24uAAAFIAASgRUHIAIBDhKBFQYHAhI1EjUEBwESOQgBAAIAAAAAAAQA
AQEcBAcBEjgEIAEBCAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwEMAQAH
MS4wLjAuMAAAKQEAJDMxZjhhZjkxLTJjN2MtNGUyYS1hYWVmLTAzYWM2MzE1MjdiMQAABQEAAQAA
HwEAGkNvcHlyaWdodCBAIE1pY3Jvc29mdCAyMDExAAA8AQA3U2NyaXB0Q29tcG9uZW50XzEyOTJh
YjE0OTg4MjQ4MDlhMjZiOGU0YzI5ZGRkZjk1LnZicHJvagAADgEACU1pY3Jvc29mdAAAAAAAzE8A
AAAAAAAAAAAA7k8AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBPAAAAAAAAAAAAAAAAAAAAAAAA
AABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwADAAAAKAAAgA4A
AABIAACAEAAAAGAAAIAAAAAAAAAAAAAAAAAAAAIAAgAAAHgAAIADAAAAkAAAgAAAAAAAAAAAAAAA
AAAAAQAAfwAAqAAAgAAAAAAAAAAAAAAAAAAAAQABAAAAwAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAA
2AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA6AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA+AAAAAAAAAAA
AAAAAAAAAAAAAQAAAAAACAEAAIBlAADoAgAAAAAAAAAAAABoaAAAKAEAAAAAAAAAAAAAkGkAACIA
AAAAAAAAAAAAABhhAABoBAAAAAAAAAAAAABoBDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBO
AEYATwAAAAAAvQTv/gAAAQAAAAEAAAAAAAAAAQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAA
AAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0
AGkAbwBuAAAAAAAAALAEyAMAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMAAAEA
MAAwADAAMAAwADQAYgAwAAAANAAKAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkAYwBy
AG8AcwBvAGYAdAAAAJgAOAABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABTAGMA
cgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADEAMgA5ADIAYQBiADEANAA5ADgAOAAyADQAOAAw
ADkAYQAyADYAYgA4AGUANABjADIAOQBkAGQAZABmADkANQAuAHYAYgBwAHIAbwBqAAAAMAAIAAEA
RgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQAZQBy
AG4AYQBsAE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADEAMgA5ADIA
YQBiADEANAA5ADgAOAAyADQAOAAwADkAYQAyADYAYgA4AGUANABjADIAOQBkAGQAZABmADkANQAu
AHYAYgBwAHIAbwBqAC4AZABsAGwAAABcABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQA
AABDAG8AcAB5AHIAaQBnAGgAdAAgAEAAIABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADEAAAAA
AKAAPAABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8A
bQBwAG8AbgBlAG4AdABfADEAMgA5ADIAYQBiADEANAA5ADgAOAAyADQAOAAwADkAYQAyADYAYgA4
AGUANABjADIAOQBkAGQAZABmADkANQAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQAHIA
bwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AMQAy
ADkAMgBhAGIAMQA0ADkAOAA4ADIANAA4ADAAOQBhADIANgBiADgAZQA0AGMAMgA5AGQAZABkAGYA
OQA1AC4AdgBiAHAAcgBvAGoAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAx
AC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEA
LgAwAC4AMAAuADAAAAAoAAAAIAAAAEAAAAABAAQAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA
////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAd3d3d3d3d3d3d3d3d3dwBEREREREREREREREREREcAT/////////////////
9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////////
//////////RwBP/////////////////0cAT/////////////////9HAE//////////////////Rw
BP/////////////////0cAT/////////////////9HAE//////////////////RwBP//////////
///////0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/
////////////////9HAE//////////////////RwBP/////////////////0cASIiIiIiIiIiIiI
iIiIhHAERERERERERERERERERERwBExMTExMTExMTE7Ozkl0cATMzMzMzMzMzMzMzMzMxAAARERE
REREREREREREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAA/////////////////////8AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
A8AAAAf///////////////8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD/
/wAA////AAAAAAAAAAAAB3d3d3d3d3dERERERERER0////////hHT///////+EdP///////4R0//
//////hHT///////+EdP///////4R0////////hHT///////+EdIiIiIiIiIR0zMzMzMzMxHxERE
RERERMAAAAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABAAD//wAA//8AAAAAAQACACAgEAABAAQA6AIAAAIAEBAQAAEABAAo
AQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property>
<property id="17" 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="18" 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_1292ab1498824809a26b8e4c29dddf95</property>
<property id="19" 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>
<inputs>
<input id="20" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"></input>
</inputs>
<outputs>
<output id="21" 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>