<component id="2" name="Compression" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Executes a custom script" localeId="1033" version="7" 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="7" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="15"><arrayElement dataType="System.String"><![CDATA[ScriptMain.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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.Diagnostics
Imports System.IO
Imports System.IO.Compression
Imports System.Text

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


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim inputStream As Stream

            Select Case Me.Action
                Case CompressionMode.Compress
                    ' Get input.
                    inputStream = GetInputStream_(Row)

                    ' Compress.
                    Using compress As DeflateStream = New DeflateStream( _
                        m_outputStream, _
                        CompressionMode.Compress, _
                        True)

                        Call m_outputStream.SetLength(0)
                        Call CopyStream_(inputStream, compress)
                    End Using

                Case CompressionMode.Decompress
                    ' Get input.
                    Dim inputBlob As BlobColumn = CType(Row.Buffer(m_inputIndex), BlobColumn)
                    inputStream = New MemoryStream(inputBlob.GetBlobData(0, CInt(inputBlob.Length)))

                    ' Decompress.
                    Using decompress As DeflateStream = New DeflateStream( _
                        inputStream, _
                        CompressionMode.Decompress)

                        Call m_outputStream.SetLength(0)
                        Call CopyStream_(decompress, m_outputStream)
                    End Using
            End Select

            ' Store in result column.
            Dim resultBlob As BlobColumn = CType(Row.Buffer(m_outputIndex), BlobColumn)
            resultBlob.AddBlobData(m_outputStream.ToArray())
        Catch ex As Exception
            Call FireError_(ex.ToString())
        End Try
    End Sub ' Input_ProcessInputRow


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

        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)

        ' Find input index.
        Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(0)
        m_inputIndex = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            inputCol.LineageID)
        m_inputType = inputCol.DataType

        ' Find output index.
        m_outputIndex = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            output.OutputColumnCollection(0).LineageID)

        ' Setup output stream used during row processing for efficiency.
        m_outputStream = New MemoryStream()

        ' Setup buffer used for copying streams.
        m_buf = New Byte(4096 - 1) {}
    End Sub ' PreExecute


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

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

            If String.IsNullOrEmpty(Me.ResultColumn) Then
                Throw New ApplicationException("Specify result column name.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.InputColumnCollection.Count = 0 Then
                ' Setup new input column.
                Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
                Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection( _
                    Me.InputColumn)
                Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READONLY)
            End If

            ' Setup output column.
            Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
            If output.OutputColumnCollection.Count = 0 Then
                ' Setup new result column.
                Dim newColumn As IDTSOutputColumn100 = output.OutputColumnCollection.[New]()
                newColumn.Name = Me.ResultColumn
                newColumn.SetDataTypeProperties(DataType.DT_IMAGE, 0, 0, 0, 0)
            End If

            Dim outColumn As IDTSOutputColumn100 = output.OutputColumnCollection(0)
            outColumn.Name = Me.ResultColumn

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

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select component action.")> _
    Public Property Action() As CompressionMode
        Get
            Action = m_action
        End Get
        Set(ByVal value As CompressionMode)
            m_action = value
        End Set
    End Property    ' Action


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input column.")> _
    <InputVirtualColumn()> _
    Public Property InputColumn() As String
        Get
            InputColumn = m_inputColumn
        End Get
        Set(ByVal value As String)
            If m_inputColumn <> value Then
                If Not String.IsNullOrEmpty(m_inputColumn) Then
                    ' Reset input collection.
                    Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
                    Call input.InputColumnCollection.RemoveAll()
                End If

                m_inputColumn = value
            End If
        End Set
    End Property    ' InputColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify result column name")> _
    Public Property ResultColumn() As String
        Get
            ResultColumn = m_resultColumn
        End Get
        Set(ByVal value As String)
            m_resultColumn = value
        End Set
    End Property    ' ResultColumn
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Column Compression", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetInputStream_(ByVal row As InputBuffer) As Stream
        Dim result As Stream

        Select Case m_inputType
            Case DataType.DT_BYTES, DataType.DT_IMAGE, DataType.DT_NTEXT, DataType.DT_TEXT
                Dim blob As BlobColumn = CType(row.Buffer(m_inputIndex), BlobColumn)
                result = New MemoryStream(blob.GetBlobData(0, CInt(blob.Length)))

            Case DataType.DT_STR, DataType.DT_WSTR
                Dim str As String = row.Buffer.GetString(m_inputIndex)
                result = New MemoryStream(Encoding.Default.GetBytes(str))

            Case Else
                Throw New Exception("Unsupported input data type.")
        End Select

        GetInputStream_ = result
    End Function    ' GetInputStream_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub CopyStream_(ByVal source As Stream, ByVal dest As Stream)
        Dim bytesRead As Integer = 0
        Do While True
            bytesRead = source.Read(m_buf, 0, m_buf.Length)
            If bytesRead = 0 Then
                ' Reached the end.
                Exit Do
            End If

            Call dest.Write(m_buf, 0, bytesRead)
        Loop
    End Sub ' CopyStream_
#End Region ' Internals


#Region "Attributes"
    Private m_action As CompressionMode = CompressionMode.Compress
    Private m_inputColumn As String
    Private m_resultColumn As String

    Private m_inputIndex As Integer
    Private m_inputType As DataType
    Private m_outputIndex As Integer
    Private m_outputStream As MemoryStream
    Private m_buf() As Byte
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Property [Compressed]() As BlobColumn
        Get
            Return CType(Me(0), BlobColumn)
        End Get
        Set
            Me(0) = Value
        End Set
    End Property
    Public Property [Compressed_IsNull] As Boolean
        Get
            Return IsNull(0)
        End Get
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"Compressed"}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_5b4c54949f324729b497b165ad306078.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{3CF16A04-E3BE-40E1-81B3-0E034B433EFD}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_5b4c54949f324729b497b165ad306078</RootNamespace>
    <AssemblyName>ScriptComponent_5b4c54949f324729b497b165ad306078</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
  </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>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </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="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebugd85e0115-1cb2-4703-b3e2-dcd31b150fca/9bc56183-2451-40dd-b894-bb30d9d7db8b&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

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[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{49CEED68-C98C-49C6-98B5-9B98977DF36F}</msb:ProjectId>
		<msb:DisplayName>ScriptComponent_5b4c54949f324729b497b165ad306078</msb:DisplayName>
		<msb:CodeName>ScriptComponent_5b4c54949f324729b497b165ad306078</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:Project Include="ScriptComponent_5b4c54949f324729b497b165ad306078.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="8" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_5b4c54949f324729b497b165ad306078.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
EAAAjTEAAAF9EQAABCoAABswBgAUAQAAFAAAEQJvJgAABihJAAAKLAtywAAAcHNKAAAKegJvKAAA
BihJAAAKLAty6gAAcHNKAAAKegJvKAAACm8pAAAKFowqAAABbyoAAAoMCG89AAAKb0sAAAoWMywI
b0wAAAoTBhEGb00AAAoCbyYAAAZvTgAAChMFEQYRBW9PAAAKFm9QAAAKJgJvKAAACm87AAAKFowq
AAABbzwAAAoTBBEEb0UAAApvUQAAChYzKxEEb0UAAApvUgAAChMHEQcCbygAAAZvUwAAChEHIC0B
AAAWFhYWb1QAAAoRBG9FAAAKFowqAAABb0YAAAoNCQJvKAAABm9TAAAKFwreGiUoNwAAChMIFgoD
EQhvVQAAClEoOQAACt4ABgsHKgEQAAAAAAAA9vYAGiUAAAETMAEACQAAABUAABECewoAAAQKBioA
AAAiAgN9CgAABCoAAAATMAEACQAAABYAABECewsAAAQKBioAAAATMAMARwAAABcAABECewsAAAQD
FihWAAAKFi42AnsLAAAEKEkAAAotIgJvKAAACm8pAAAKFowqAAABbyoAAAoKBm89AAAKb1cAAAoC
A30LAAAEKgATMAEACQAAABgAABECewwAAAQKBioAAAAiAgN9DAAABCoAAAATMAcAGwAAABkAABEC
KCgAAAoWciIBAHADflgAAAoWEgBvWQAACioAEzADAJ8AAAAaAAARAnsOAAAEEwQRBCCAAAAALhsR
BCAtAQAALhIRBCAvAQAALgkRBCAuAQAAMy0Dby8AAAoCew0AAARvMAAACnQLAAABDAgWCG8xAAAK
hG8yAAAKczMAAAoLK0IRBCCBAAAALgkRBCCCAAAAMyUDby8AAAoCew0AAARvWgAACg0oWwAACglv
XAAACnMzAAAKCysLckgBAHBzXQAACnoHCgYqABMwBAAtAAAAGwAAERYKAwJ7EQAABBYCexEAAASO
t29eAAAKCgYWLhAEAnsRAAAEFgZvXwAACivWKgAAAEJTSkIBAAEAAAAAAAwAAAB2NC4wLjMwMzE5
AAAAAAUAbAAAAHgLAAAjfgAA5AsAAPQOAAAjU3RyaW5ncwAAAADYGgAAhAEAACNVUwBcHAAAEAAA
ACNHVUlEAAAAbBwAABgFAAAjQmxvYgAAAAAAAAACAAABVxWiCQkOAAAA+iUzABYAAAEAAABAAAAA
CwAAABEAAAAsAAAAGwAAAGcAAAAzAAAAGwAAAAQAAAAMAAAAEQAAAAkAAAABAAAACAAAAAIAAAAD
AAAAAgAAAAAAvg4BAAAAAAAKAD8BFQEKAHMBVQEGAIMBfAEKANsBFQEGAFkCfAEKANsCsQIOAC0D
FgMSAHwDWwMWAK0DWwMSALwDWwMWAA0EWwMOANgEFgMaAH0FZwUGAAgG/gUeALkGkQYGANwG/gUa
ADQHHgcaAE0HHgcaAHoHYgcGAKQHkQcKAOMHvAcKAPsHEwAaADAIEwgGAGUIRQgGAIMIfAEGAKcI
fAEKAMAIEwAGAA4J7wgGACIJfAEGAEoJfAESAGQJWwMGAHEJfAEiANQJqwkiAAMKqwkiAC4Kqwka
AEIKZwUGAFAKfAEGAGQKfAEKAK4KvAciANwKqwkiAO8KqwkGAP0KfAEiAAMLqwkiADALqwkWAGcL
WwMiAIsLqwkiAOMLqwkiABwMqwkGADAMfAEiADUMqwkiAE8MqwkGAHEMfAEiAKAMqwkiAOUMqwkK
AC4NvAcGAHYNag0SAJ8NWwMOAOgNxg0OAAQOxg0OABwOxg0aADgOHgcGAE0ORQgGAG0ORQgGAKUO
iw4AAAAAAQAAAAAAAQABAAAAAAApADcABQABAAEAAAAAAGsANwAJAAEAAgAAARAAdgA3AA0AAQAD
AAUBAACAAAAADQAFAAgABQEAAI4AAAANAAUADwABAAAAqQC1AB0ABgARAAEAAADmALUAMQAGABoA
AQAAAPQAtQANAAgAHgABAAAAAAG1AA0ACQAfAAEAAAAKAbUAIAAKACAAMQCeASAAMQDHAS0AMQDp
AToAMQAOAkcAIQDqApAABgD0AOIABgAAAeYAAQA4BfoAAQA4BfoAAQA7BikBAQBEBi0BAQBSBi0B
AQBhBjABAQDCBjMBAQDOBjABAQDpBjcBAQD4BjsBUCAAAAAABhhPARMAAQBYIAAAAAAGGE8BEwAB
AGAgAAAAABEYigEXAAEAjCAAAAAAEwiRARsAAQCkIAAAAAATCLcBKAABALwgAAAAABMI4AE1AAEA
1CAAAAAAEwj+AUIAAQDsIAAAAABGAkQCYwABAAghAAAAAEYCTQJoAAIAHCEAAAAAgwBeAmwAAgA0
IQAAAABGAmYCcQACAEghAAAAABEAbwJ4AAIAZCEAAAAAAQCNAoAAAwCAIQAAAAAGGE8BEwAEAIgh
AAAAAAMIoQKLAAQAvCEAAAAABhhPARMABADQIQAAAAAGGE8BrwAEAOAhAAAAAEYK9gO7AAkA9CEA
AAAABggYBMAACQAQIgAAAAAGCCcExQAJABwiAAAAAAYIPATLAAoAMCIAAAAABghSBM8ACgBMIgAA
AABGCmgEuwALAGwiAAAAAIYAgATLAAsAhCIAAAAAhgCIBMsACwCcIgAAAAAGGE8BEwALALwiAAAA
AEYC7ATqAAsA7CIAAAAARgMLBfQADwAAIwAAAABGAx4F9AAQAAQjAAAAAAYYTwH+ABEAFCMAAAAA
BhhPAf4AEgAkIwAAAAAGGE8BEwATADQjAAAAAEYCHgX0ABMAYCQAAAAARgJIBRMAFAAwJQAAAAAG
AFMFBAEUAGAmAAAAAAYIjQUKARUAeCYAAAAABgiYBQ8BFQCEJgAAAAAGCKkFcQAWAJwmAAAAAAYI
uQUVARYA8CYAAAAABgjJBXEAFwAIJwAAAAAGCNoFFQEXABQnAAAAAAEA6wUVARgAPCcAAAAAAQAP
BhoBGQDoJwAAAAABACMGIQEaAAAAAQBLAgAAAQCEAgAAAQCEAgAAAQDKAwAAAgDUAwAAAwDdAwAA
BADlAwAABQDsAwAAAQA2BAAAAQA2BAAAAQD5BAAAAgABBQAAAwDlAwAABADsAwAAAQDlAwAAAQA0
BQAAAQDKAwAAAQDKAwAAAQA0BQAAAQBcBQAAAQCjBQAAAQCjBQAAAQCjBQAAAQD2BQAAAQAfBgAA
AQAvBgAAAgA2BgkATwETAIkATwFIAZkATwFXAREATwETAKEATwETACQATwETACwATwETADQATwET
ADwATwETACQAoQKLACwAoQKLADQAoQKLADwAoQKLAKkATwETALEATwETALkATwEVAcEAdAjxARkA
RAJjABkATQJoACkAlQj+ARkAZgJxANEAsQgOAhkATwETANkATwEeAkQA6gKQAEwA2wiLAEwA5Qib
AkwATwETAOEATwHPADkATwGvADkAKQm1AjkAMgm/AjkAOwnFAjkAQgnKAvEATwEVAfkAgATLAPkA
iATLAAEBTwHPAGEATwETAEEA7QnWAgkBGgrcAhEBKQniAhkBOwpoACEBTwHpAoEAWgryAjEBcAoT
ADkAeAr3AkkAKQm1AlkAgwr8AlkAjgoAA4EATwEHAyEBTwENA4EAmgoVA1kAogoHAzkBugoaAykB
ZgJxADkBygoXAEEASAUTAAkBGws1A1kBKQk7AxkBTQtCA2EBKQlIA2EAeQtPA2kBoAtVAxkBeApo
AEEBsgtoAHEBwAtbA0EB1gthA0kBAQxmA3kBKQlsA4EBsgtoAIEATwETAOkAYwx/A6EBTwEVAWEB
hgxoABkBkAyEA5kBxAyKA6kBKQmQA5EBsgtoAJkB8gyXA3kBhgxoAHkB/wyfA4EBAw0VAYEBDA2l
AykBIg1xALkBOA3OA2EBRg0TAOkAUA0tAQkBVg3bA0kAYA3mA8EBfw3rA8EBiw3xAykBTwEVAXEA
lA0DBHEAmQ0LBMkBTwETANEBTwEVAdkBTwEhBOEBTwETAOkBTwEVAfEBTwHKAvkBTwETAAECTwEV
ASkAgwC/AS4AMwOxBC4AKwOoBC4AOwPQBEAAKwB2AUAAEwBOAUMAEwBOAUMAGwBdAUkAgwCrAWMA
EwBOAWMAGwBdAWkAgwDQAYAAKwB2AYMAewB2AYMAGwBdAYMAcwB2AYkAgwDdAaAAKwB2AaMAEwBO
AaMAwwAmAsAAKwB2AcMAEwBOAcMA6wCqAuAAKwB2AeMAMwGqAgABKwB2AQABEwBOAQMBMwGqAiAB
KwB2ASABEwBOAUABEwBOAUABKwB2AUkBIwOKBGABKwB2AWABEwBOAWMBAwN2AWMBMwGqAmMBEwMn
BGMBCwMTBGkBIwNQBGkBGwN2AYABKwB2AYkBIwNqBKABKwB2AcABKwB2AcABEwBOAeABKwB2AQAC
KwB2AQACEwBOAcADMwGqAuADMwGqApcBnAGhAaYB9gH6AQUCCgIZAhkCoQKwAroC9gHPAvYB9gEh
A3MDrwPJAwoC1QMKAvYB9wP6AQQAAQAGAAUABwAGAAsACgAAAHMBTwAAACwCVAAAANsBWQAAADgC
XgAAAPQCmAAAAJQE1AAAAKcE2QAAALIE3gAAAMQE1AAAAP4GPwEAAAUHRAEAABEHRAECAAQAAwAC
AAUABQACAAYABwACAAcACQACAA8ACwACABIADQACABMADwABABQADwACABUAEQABABYAEQACABcA
EwABACUAFQACACQAFQABACcAFwACACYAFwACACgAGQABACkAGQB1AHUAiAB7AYIBiQGQAYgCjwIE
gAAAAAAAAAAAAAAAAAAAAAC1AAAABAAAAAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAAAAAKABMA
AAAAAAEAAAAAAAAAAAAAAJ0AAAMAAAAACwAAAAAAAAAAAAAApgA+AwAAAAALAAAAAAAAAAAAAACm
AIwDAAAAAAQAAAAAAAAAAAAAAAEAfAEAAAAACwAAAAAAAAAAAAAApgBuBgAAAAALAAAAAAAAAAAA
AACmAIcJAAAAAAUABAAGAAQAAAAQAAwAggIAABAAGQCCAgAAAAAbAIICLQAUAi0AlgIAAAAAADxN
b2R1bGU+AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlw
dENvbXBvbmVudF81YjRjNTQ5NDlmMzI0NzI5YjQ5N2IxNjVhZDMwNjA3OC5NeQBNeUNvbXB1dGVy
AE15UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAElucHV0
QnVmZmVyAFNjcmlwdENvbXBvbmVudF81YjRjNTQ5NDlmMzI0NzI5YjQ5N2IxNjVhZDMwNjA3OABV
c2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE1pY3Jvc29mdC5W
aXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBn
ZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0Fw
cE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dl
YlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNl
cnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVf
X0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5j
ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVg
MQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDEyAENvenlSb2MuU3Fs
U2VydmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0
AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3Nv
ZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFwAENv
bXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lucHV0
Q29sdW1ucwBCbG9iQ29sdW1uAGdldF9Db21wcmVzc2VkAHNldF9Db21wcmVzc2VkAFZhbHVlAGdl
dF9Db21wcmVzc2VkX0lzTnVsbABzZXRfQ29tcHJlc3NlZF9Jc051bGwAZ2V0X1N0YXRpY091dHB1
dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMAQ29tcHJlc3Nl
ZABDb21wcmVzc2VkX0lzTnVsbABTdGF0aWNPdXRwdXRDb2x1bW5zAFNjcmlwdENvbXBvbmVudFBs
dXMAUHJvY2Vzc0lucHV0AElucHV0SUQASW5wdXROYW1lAElucHV0X1Byb2Nlc3NJbnB1dABJbnB1
dF9Qcm9jZXNzSW5wdXRSb3cAUm93AFBhcmVudENvbXBvbmVudABQcmVFeGVjdXRlAFZhbGlkYXRl
AGVyck1lc3NhZ2UAU3lzdGVtLklPLkNvbXByZXNzaW9uAENvbXByZXNzaW9uTW9kZQBnZXRfQWN0
aW9uAHNldF9BY3Rpb24AdmFsdWUAZ2V0X0lucHV0Q29sdW1uAHNldF9JbnB1dENvbHVtbgBnZXRf
UmVzdWx0Q29sdW1uAHNldF9SZXN1bHRDb2x1bW4ARmlyZUVycm9yXwBtZXNzYWdlAFN5c3RlbS5J
TwBTdHJlYW0AR2V0SW5wdXRTdHJlYW1fAHJvdwBDb3B5U3RyZWFtXwBzb3VyY2UAZGVzdABtX2Fj
dGlvbgBtX2lucHV0Q29sdW1uAG1fcmVzdWx0Q29sdW1uAG1faW5wdXRJbmRleABNaWNyb3NvZnQu
U3FsU2VydmVyLkRUU1J1bnRpbWVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlJ1bnRpbWUu
V3JhcHBlcgBEYXRhVHlwZQBtX2lucHV0VHlwZQBtX291dHB1dEluZGV4AE1lbW9yeVN0cmVhbQBt
X291dHB1dFN0cmVhbQBtX2J1ZgBBY3Rpb24ASW5wdXRDb2x1bW4AUmVzdWx0Q29sdW1uAFN5c3Rl
bS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxl
U3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0
ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJh
c2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5h
bWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJp
YnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9i
amVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBD
cmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1Zh
bHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0
cmluZwBnZXRfSXRlbQBzZXRfSXRlbQBJc051bGwAU2V0TnVsbABJbnZhbGlkT3BlcmF0aW9uRXhj
ZXB0aW9uAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUATWljcm9zb2Z0LlNxbFNl
cnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3Jh
cHBlcgBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVudE1ldGFEYXRhAElEVFNJ
bnB1dENvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sbGVjdGlvbgBJRFRTSW5wdXQxMDAAZ2V0X0lE
AERlZmxhdGVTdHJlYW0ARXhjZXB0aW9uAFNldExlbmd0aABJRGlzcG9zYWJsZQBEaXNwb3NlAGdl
dF9CdWZmZXIAZ2V0X0xlbmd0aABHZXRCbG9iRGF0YQBUb0FycmF5AEFkZEJsb2JEYXRhAFByb2pl
Y3REYXRhAFNldFByb2plY3RFcnJvcgBDbGVhclByb2plY3RFcnJvcgBJRFRTSW5wdXRDb2x1bW4x
MDAASURUU091dHB1dDEwMABJbnQzMgBJRFRTT3V0cHV0Q29sbGVjdGlvbjEwMABnZXRfT3V0cHV0
Q29sbGVjdGlvbgBJRFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbHVtbkNv
bGxlY3Rpb24AUGlwZWxpbmVDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1h
bmFnZXIxMDAAZ2V0X0J1ZmZlck1hbmFnZXIAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5l
YWdlSUQAZ2V0X0RhdGFUeXBlAElEVFNPdXRwdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9PdXRw
dXRDb2x1bW5Db2xsZWN0aW9uAElEVFNPdXRwdXRDb2x1bW4xMDAAQnl0ZQBJRFRTVmlydHVhbElu
cHV0Q29sdW1uMTAwAElEVFNWaXJ0dWFsSW5wdXQxMDAASXNOdWxsT3JFbXB0eQBBcHBsaWNhdGlv
bkV4Y2VwdGlvbgBnZXRfQ291bnQAR2V0VmlydHVhbElucHV0AElEVFNWaXJ0dWFsSW5wdXRDb2x1
bW5Db2xsZWN0aW9uMTAwAGdldF9WaXJ0dWFsSW5wdXRDb2x1bW5Db2xsZWN0aW9uAERUU1VzYWdl
VHlwZQBTZXRVc2FnZVR5cGUATmV3AHNldF9OYW1lAFNldERhdGFUeXBlUHJvcGVydGllcwBnZXRf
TWVzc2FnZQBPcGVyYXRvcnMAQ29tcGFyZVN0cmluZwBSZW1vdmVBbGwARW1wdHkARmlyZUVycm9y
AEdldFN0cmluZwBTeXN0ZW0uVGV4dABFbmNvZGluZwBnZXRfRGVmYXVsdABHZXRCeXRlcwBSZWFk
AFdyaXRlAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3Fs
U2VydmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFBy
b3BlcnRpZXNBdHRyaWJ1dGUASW5wdXRWaXJ0dWFsQ29sdW1uQXR0cmlidXRlAERlc2NyaXB0aW9u
QXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGli
aWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtB
dHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50XzViNGM1NDk0OWYzMjQ3MjliNDk3YjE2NWFkMzA2MDc4
LmRsbAAAAICbSQBzAE4AdQBsAGwAIABwAHIAbwBwAGUAcgB0AHkAIABjAGEAbgBuAG8AdAAgAGIA
ZQAgAHMAZQB0ACAAdABvACAARgBhAGwAcwBlAC4AIABBAHMAcwBpAGcAbgAgAGEAIAB2AGEAbAB1
AGUAIAB0AG8AIAB0AGgAZQAgAGMAbwBsAHUAbQBuACAAaQBuAHMAdABlAGEAZAAuAAAVQwBvAG0A
cAByAGUAcwBzAGUAZAAAC0kAbgBwAHUAdAAAKVMAZQBsAGUAYwB0ACAAaQBuAHAAdQB0ACAAYwBv
AGwAdQBtAG4ALgAAN1MAcABlAGMAaQBmAHkAIAByAGUAcwB1AGwAdAAgAGMAbwBsAHUAbQBuACAA
bgBhAG0AZQAuAAAlQwBvAGwAdQBtAG4AIABDAG8AbQBwAHIAZQBzAHMAaQBvAG4AADlVAG4AcwB1
AHAAcABvAHIAdABlAGQAIABpAG4AcAB1AHQAIABkAGEAdABhACAAdAB5AHAAZQAuAAAAALITIPJx
Af5BtKWydNSVlV0ACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggH
BhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAEC
HAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbP
SQu4DDTqCImEXc2AgMyRCyAFARIhCAISJRIpBCAAHQ4EIAASLQUgAQESLQMgAAIEIAEBAgQoAB0O
BCgAEi0DKAACAwYSJAMGEigJIAQBCA4SJRIpBSABARIcAwYSIQUgAQESIQUgAQIQDgQgABE1BSAB
ARE1BCABAQ4GIAESORIcByACARI5EjkDBhE1AgYOAgYIAwYRPQMGEkEDBh0FBCgAETUDKAAOBSAB
ARFJCAEAAQAAAAAABSACAQ4OGAEACk15VGVtcGxhdGUIMTAuMC4wLjAAAAQBAAAABhUSGAESDAYV
EhgBEggGFRIYARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEwEADk15LkFwcGxpY2F0aW9u
AAAQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuV2ViU2VydmljZXMAAAQAARwc
AwcBAgMHAQgGAAESFRFlBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcgBAEODg4OYQEANFN5c3Rl
bS5XZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRlX19J
bnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUSGQETAAQKARMABSABARMA
CAcDEwATABMABQEAAAAABAcBHQ4EIAEcCAQHARItBSACAQgcBCABAggEIAEBCAYHAh0OHQ4FIAAS
gIUFIAASgIkGIAESgI0cCCADARI5ETUCBCABAQoEIAASJQMgAAkGIAIdBQgIBSABAR0FByACARI5
ETUEIAAdBQYAAQESgJUTBwcSORItEoCREi0SgJESgJURNQUgABKArQYgARKApRwFIAASgLEGIAES
gKEcBSAAEoC1BSAAEoC5BSACCAgIBCAAET0FIAASgL0GIAESgMEcCwcDEoCNEoChEoClBAABAg4F
IAASgM0FIAASgNUGIAESgMkcByACCAgRgNkFIAASgMEJIAUBET0ICAgIGQcJAgISgI0SgMESgKUS
gMkSgM0SgMESgJUEBwERNQYAAwgODgIFBwESgI0KIAYBCA4ODggQAgQgAQ4IBQAAEoDhBSABHQUO
CwcFEjkSORItDhE9ByADCB0FCAgHIAMBHQUICA0BAAhWYWxpZGF0ZQAABSABAR0OKAEAAwAAAAZB
Y3Rpb24LSW5wdXRDb2x1bW4MUmVzdWx0Q29sdW1uAAAZAQAUU2VsZWN0IGlucHV0IGNvbHVtbi4A
AB8BABpTcGVjaWZ5IHJlc3VsdCBjb2x1bW4gbmFtZQAAHQEAGFNlbGVjdCBjb21wb25lbnQgYWN0
aW9uLgAACAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAUcBABouTkVURnJh
bWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5hbWUQLk5FVCBGcmFtZXdv
cmsgNNBJAAAAAAAAAAAAAO5JAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgSQAAAAAAAAAAAAAA
AAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAA
gAAAAAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAADsAgAA
AAAAAAAAAADsAjQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAA
AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYA
aQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAETAIA
AAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAKAIAAAEAMAAwADAAMAAwADQAYgAwAAAA
LAACAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkAbABl
AFYAZQByAHMAaQBvAG4AAAAAADAALgAwAC4AMAAuADAAAACMADUAAQBJAG4AdABlAHIAbgBhAGwA
TgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8ANQBiADQAYwA1ADQAOQA0
ADkAZgAzADIANAA3ADIAOQBiADQAOQA3AGIAMQA2ADUAYQBkADMAMAA2ADAANwA4AC4AZABsAGwA
AAAAACgAAgABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAACAAAACUADUAAQBPAHIAaQBn
AGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQA
XwA1AGIANABjADUANAA5ADQAOQBmADMAMgA0ADcAMgA5AGIANAA5ADcAYgAxADYANQBhAGQAMwAw
ADYAMAA3ADgALgBkAGwAbAAAAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAw
AC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAAA6AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_5b4c54949f324729b497b165ad306078</property><property id="12" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><inputs><input id="13" name="Input" hasSideEffects="true"></input></inputs><outputs><output id="15" name="Output" synchronousInputId="13"><outputColumns><outputColumn id="16" name="Compressed" lineageId="16" dataType="image" /></outputColumns><externalMetadataColumns /></output></outputs></component>