<?xml version="1.0"?>
<ScriptProject Name="ScriptTask_9388f3b5ea514487afe50c1a2dc6b5fa" VSTAMajorVersion="2" VSTAMinorVersion="1" Language="VisualBasic" EntryPoint="Main" ReadOnlyVariables="" ReadWriteVariables="">
  <ProjectItem Name="\scriptmain.vb">
<![CDATA[' Microsoft SQL Server Integration Services Script Task
'
' Copyright (c) 2008 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.Collections
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.IO
Imports System.Threading
Imports System.Text
Imports System.Text.RegularExpressions

Imports Microsoft.SqlServer.Dts.Runtime
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "Action", "Find", "Replace", "StartIndex", "ResultVariable", _
    "IsSourceVariable", "SourceVariable", "Source", _
    "IsTargetVariable", "TargetVariable", "Target"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<System.AddIn.AddIn("ScriptMain", Version:="1.0", Publisher:="", Description:="")> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
	Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

	Enum ScriptResults
		Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
		Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
	End Enum

    ' The execution engine calls this method when the task executes.
    ' To access the object model, use the Dts object. Connections, variables, events,
    ' and logging features are available as static members of the Dts class.
    ' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
    ' 
    ' To open Code and Text Editor Help, press F1.
    ' To open Object Browser, press Ctrl+Alt+J.


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Sub Main()
        Dim result As Integer
        Dim sourceStream As Stream = Nothing
        Dim targetStream As Stream = Nothing
        Dim closeTarget As Boolean

        Try
            sourceStream = GetStream_(Me.Source, Me.IsSourceVariable, False)

            Select Case Me.Action
                Case ActionTypes.Find
                    Call ExecuteFind_(sourceStream)

                Case ActionTypes.FindAndReplace
                    targetStream = GetStream_(Me.Target, Me.IsTargetVariable, True, closeTarget)
                    Call ExecuteFindAndReplace_(sourceStream, targetStream)
            End Select

            result = ScriptResults.Success
        Catch ex As Exception
            result = ScriptResults.Failure
            Call Dts.Events.FireError( _
                0, _
                String.Empty, _
                ex.ToString(), _
                String.Empty, _
                0)
        Finally
            If Not sourceStream Is Nothing Then
                Call sourceStream.Dispose()
            End If

            If Not targetStream Is Nothing AndAlso closeTarget Then
                ' Close target stream only if FileStream.
                Call targetStream.Dispose()
            End If
        End Try

        Dts.TaskResult = result
    End Sub ' Main


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Base properties.
        Call result.Add("Action")
        Call result.Add("Find")
        Call result.Add("IsSourceVariable")
        Call result.Add(IIf(Me.IsSourceVariable, "SourceVariable", "Source"))

        Select Case Me.Action
            Case ActionTypes.Find
                Call result.Add("StartIndex")
                Call result.Add("ResultVariable")

            Case ActionTypes.FindAndReplace
                Call result.Add("Replace")
                Call result.Add("IsTargetVariable")
                Call result.Add(IIf(Me.IsTargetVariable, "TargetVariable", "Target"))
        End Select

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean

        Try
            If String.IsNullOrEmpty(Me.Find) Then
                Throw New ApplicationException("Please specify Find.")
            ElseIf String.IsNullOrEmpty(Me.Source) Then
                Throw New ApplicationException("Please specify Source.")
            End If

            Select Case Me.Action
                Case ActionTypes.Find
                    If String.IsNullOrEmpty(Me.ResultVariable) Then
                        Throw New ApplicationException("Please specify ResultVariable.")
                    End If

                Case ActionTypes.FindAndReplace
                    If String.IsNullOrEmpty(Me.Target) Then
                        Throw New ApplicationException("Please specify Target.")
                    End If
            End Select

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select task action.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Action() As ActionTypes
        Get
            Action = m_action
        End Get
        Set(ByVal value As ActionTypes)
            m_action = value
        End Set
    End Property    ' Action


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specify the string that will be matched.")> _
    Public Property Find() As String
        Get
            Find = m_find
        End Get
        Set(ByVal value As String)
            m_find = value
        End Set
    End Property    ' Find


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specify what will be inserted in the place of the matched string.")> _
    Public Property Replace() As String
        Get
            Replace = m_replace
        End Get
        Set(ByVal value As String)
            m_replace = value
        End Set
    End Property    ' Replace


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specify offset from where to start the search.")> _
    Public Property StartIndex() As Long
        Get
            StartIndex = m_startIndex
        End Get
        Set(ByVal value As Long)
            m_startIndex = value
        End Set
    End Property    ' StartIndex


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Specifies package variable where you would like to store find index.")> _
    <Variable()> _
    Public Property ResultVariable() As String
        Get
            ResultVariable = m_resultVariable
        End Get
        Set(ByVal value As String)
            m_resultVariable = value
        End Set
    End Property    ' ResultVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Source")> _
    <Description("Specifies if Source property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsSourceVariable() As Boolean
        Get
            IsSourceVariable = m_isSourceVar
        End Get
        Set(ByVal value As Boolean)
            If m_isSourceVar <> value Then
                m_isSourceVar = value
                m_source = String.Empty
            End If
        End Set
    End Property    ' IsSourceVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Source")> _
    <Description("Specifies variable containing source to search.")> _
    <Variable()> _
    Public Property SourceVariable() As String
        Get
            SourceVariable = m_source
        End Get
        Set(ByVal value As String)
            m_source = value
        End Set
    End Property    ' SourceVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Source")> _
    <Description("Specifies source to search.")> _
    <Connection("FileConnectionType")> _
    Public Property Source() As String
        Get
            Source = m_source
        End Get
        Set(ByVal value As String)
            m_source = value
        End Set
    End Property    ' Source


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Target")> _
    <Description("Specifies if Target property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsTargetVariable() As Boolean
        Get
            IsTargetVariable = m_isTargetVar
        End Get
        Set(ByVal value As Boolean)
            If m_isTargetVar <> value Then
                m_isTargetVar = value
                m_target = String.Empty
            End If
        End Set
    End Property    ' IsTargetVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Target")> _
    <Description("Specifies variable containing target to store result.")> _
    <Variable()> _
    Public Property TargetVariable() As String
        Get
            TargetVariable = m_target
        End Get
        Set(ByVal value As String)
            m_target = value
        End Set
    End Property    ' TargetVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Target")> _
    <Description("Specifies target to store result.")> _
    <Connection("FileConnectionType")> _
    Public Property Target() As String
        Get
            Target = m_target
        End Get
        Set(ByVal value As String)
            m_target = value
        End Set
    End Property    ' Target
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Searches stream for match. Returns result in ResultVariable.
    Private Sub ExecuteFind_(ByVal sourceStream As Stream)
        Dim result As Long
        Dim findBytes() As Byte = Encoding.UTF8.GetBytes(Regex.Unescape(Me.Find))
        Dim findLen As Integer = findBytes.Length
        Dim buf() As Byte = New Byte(findLen - 1) {}
        Dim vars As Variables = Nothing
        Dim bytesRead As Integer

        ' Advance to start index.
        result = 0
        Do While result < Me.StartIndex
            If sourceStream.Read(buf, 0, 1) = 0 Then
                Exit Do
            End If

            result += 1
        Loop

        ' Search for match.
        result -= findLen

        Do While Not ArrayEquals_(buf, findBytes)
            Call Array.Copy(buf, 1, buf, 0, findLen - 1)
            bytesRead = sourceStream.Read(buf, findLen - 1, 1)
            If bytesRead = 0 Then
                ' Reached end of stream and still no match.
                result = -1
                Exit Do
            End If

            result += 1
        Loop

        ' Store result index in package variable.
        Call Dts.VariableDispenser.LockOneForWrite(Me.ResultVariable, vars)
        Try
            vars(Me.ResultVariable).Value = result
        Finally
            Call vars.Unlock()
        End Try
    End Sub ' ExecuteFind_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Find and replace, storing result in target stream.
    Private Sub ExecuteFindAndReplace_( _
        ByVal sourceStream As Stream, _
        ByVal targetStream As Stream)

        Dim findBytes() As Byte = Encoding.UTF8.GetBytes(Regex.Unescape(Me.Find))
        Dim findLen As Integer = findBytes.Length

        Dim repBytes() As Byte = {}
        If Not String.IsNullOrEmpty(Me.Replace) Then
            repBytes = Encoding.UTF8.GetBytes(Regex.Unescape(Me.Replace))
        End If

        Dim repLen As Integer = repBytes.Length
        Dim buf() As Byte = New Byte(findLen - 1) {}
        Dim bytesRead As Integer

        bytesRead = sourceStream.Read(buf, 0, findLen)

        Do While bytesRead = findLen
            If ArrayEquals_(buf, findBytes) Then
                ' Found match. Replace with specified combination.
                If repLen > 0 Then
                    Call targetStream.Write(repBytes, 0, repLen)
                End If

                bytesRead = sourceStream.Read(buf, 0, findLen)
            Else
                Call targetStream.Write(buf, 0, 1)
                Call Array.Copy(buf, 1, buf, 0, findLen - 1)
                bytesRead = bytesRead - 1 + sourceStream.Read(buf, findLen - 1, 1)
            End If
        Loop

        ' Write end of stream.
        Call targetStream.Write(buf, 0, bytesRead)
        Call targetStream.Flush()
    End Sub ' ExecuteFindAndReplace_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property FileConnectionType() As String()
        Get
            FileConnectionType = New String() {"FILE"}
        End Get
    End Property    ' FileConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get Stream to source.
    Private Function GetStream_( _
        ByVal input As String, _
        ByVal isVar As Boolean, _
        ByVal create As Boolean, _
        Optional ByRef hasToClose As Boolean = False) As Stream

        Dim result As Stream = Nothing
        Dim vars As Variables = Nothing
        Dim inputVar As Variable
        Dim fileName As String = String.Empty
        Dim manager As ConnectionManager

        If isVar Then
            ' User selected variable.
            Call Dts.VariableDispenser.LockOneForRead(input, vars)
            Try
                inputVar = vars(input)

                If inputVar.DataType = TypeCode.String Then
                    ' Variable references file name.
                    fileName = inputVar.Value.ToString()
                Else
                    ' Variable references a stream ?

                    ' Wait until input Stream is setup, polling every second.
                    Do While inputVar.Value.GetType() Is GetType(Object)
                        Call vars.Unlock()
                        Call Thread.Sleep(1000)
                        Call Dts.VariableDispenser.LockOneForRead(input, vars)
                        inputVar = vars(input)
                    Loop

                    result = CType(inputVar.Value, Stream)
                End If
            Finally
                Call vars.Unlock()
            End Try
        Else
            ' User selected file connection.
            manager = Dts.Connections(input)
            fileName = manager.AcquireConnection(Nothing).ToString()
        End If

        If Not String.IsNullOrEmpty(fileName) Then
            ' Input is file name.
            If create Then
                result = File.Create(fileName)
                hasToClose = True
            ElseIf File.Exists(fileName) Then
                result = File.OpenRead(fileName)
            End If
        End If

        GetStream_ = result
    End Function    ' GetStream_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Compares 2 arrays, returning true if they match.
    Private Function ArrayEquals_(Of T As IEquatable(Of T))(ByVal a As T(), ByVal b As T()) As Boolean
        Dim result As Boolean
        Dim comparer As EqualityComparer(Of T) = EqualityComparer(Of T).Default
        Dim item As Integer

        If a.Length = b.Length Then
            result = True

            For item = 0 To a.Length - 1
                If Not comparer.Equals(a(item), b(item)) Then
                    ' Doesn't match.
                    result = False
                    Exit For
                End If
            Next
        End If

        ArrayEquals_ = result
    End Function    ' ArrayEquals_
#End Region ' Internals


#Region "Attributes"
    Enum ActionTypes
        Find
        FindAndReplace
    End Enum    ' ActionTypes


    Private m_action As ActionTypes
    Private m_find As String
    Private m_replace As String
    Private m_startIndex As Long
    Private m_resultVariable As String
    Private m_isSourceVar As Boolean
    Private m_source As String
    Private m_isTargetVar As Boolean
    Private m_target As String
#End Region ' Attributes
End Class   ' ScriptMain]]></ProjectItem>
  <ProjectItem Name="\scripttask_9388f3b5ea514487afe50c1a2dc6b5fa.vbproj">
<![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>ScriptTask_9388f3b5ea514487afe50c1a2dc6b5fa.vbproj</RootNamespace>
    <AssemblyName>ScriptTask_9388f3b5ea514487afe50c1a2dc6b5fa.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{92630F6B-F356-4874-9973-2CD5D53C5EA2}</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="System" />
    <Reference Include="System.AddIn, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.ScriptTask, 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="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>
    <Compile Include="ScriptMain.vb">
      <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="" DebugInfoExeName="#HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\InstallDir#\devenv.exe" />
        <Host Name="SSIS_ScriptTask" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptTask</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></ProjectItem>
  <ProjectItem Name="\my project\settings.settings">
<![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="$safeprojectname" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></ProjectItem>
  <ProjectItem Name="\my project\resources.designer.vb">
<![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]]></ProjectItem>
  <ProjectItem Name="\my project\resources.resx">
<![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>]]></ProjectItem>
  <ProjectItem Name="\my project\settings.designer.vb">
<![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]]></ProjectItem>
  <ProjectItem Name="\my project\assemblyinfo.vb">
<![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("ScriptTask_9388f3b5ea514487afe50c1a2dc6b5fa.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptTask_9388f3b5ea514487afe50c1a2dc6b5fa.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2009")> 
<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("0f60b0a1-24aa-452b-808f-bf43513af9a5")> 

' 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")> ]]></ProjectItem>
  <BinaryItem Name="\bin\scripttask_9388f3b5ea514487afe50c1a2dc6b5fa.vbproj.dll">TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAFrcbUoAAAAAAAAAAOAAAiELAQgAADQAAAAMAAAAAAAAnlMA
AAAgAAAAYAAAAABAAAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAEhTAABTAAAAAGAAAJgJAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAApDMAAAAgAAAANAAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAAJgJAAAAYAAAAAoAAAA2AAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAQAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAACA
UwAAAAAAAEgAAAACAAUAtCoAAJQoAAABAAAAAAAAAFAgAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAALQAAADOyu++AQAAAJEAAABsU3lzdGVtLlJlc291cmNlcy5S
ZXNvdXJjZVJlYWRlciwgbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFs
LCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5I1N5c3RlbS5SZXNvdXJjZXMuUnVudGlt
ZVJlc291cmNlU2V0AgAAAAAAAAAAAAAAUEFEUEFEULQAAAAeAigBAAAKKh4CKAQAAAoqpnMGAAAK
gAEAAARzBwAACoACAAAEcwgAAAqAAwAABHMJAAAKgAQAAAQqAAATMAEACwAAAAEAABF+AQAABG8K
AAAKKgATMAEACwAAAAIAABF+AgAABG8LAAAKKgATMAEACwAAAAMAABF+AwAABG8MAAAKKgATMAEA
CwAAAAQAABF+BAAABG8NAAAKKgATMAIADQAAAAUAABECAygRAAAKKBIAAAoqAAAAEzABAAcAAAAG
AAARAigTAAAKKgATMAEACwAAAAcAABHQBQAAAigUAAAKKgATMAEABwAAAAgAABECKBUAAAoqABMw
AQAQAAAACQAAEQKMAQAAGy0GKAEAACsqAioTMAIAEAAAAAoAABEDEgD+FQIAABsGgQIAABsqHgIo
FwAACioTMAIAKAAAAAsAABECexkAAApvGgAACgsHjAMAABstEigCAAArCwJ7GQAACgdvGwAACgcq
SgIoFwAACgJzHAAACn0ZAAAKKgAeAigXAAAKKhMwAgAtAAAADAAAEX4GAAAELSByAQAAcNAHAAAC
KBQAAApvHgAACnMfAAAKCweABgAABH4GAAAEKgAAABMwAQAGAAAADQAAEX4HAAAEKgAAHgKABwAA
BCpCcxcAAAooEQAACoAJAAAEKgAAAB4CKCAAAAoqGzABAD8AAAAOAAARfggAAAQtMn4JAAAEKBEA
AAooIQAACn4IAAAELRxzFgAABoAIAAAE3hB+CQAABCgRAAAKKCIAAArcfggAAAQqAAEMAAACAB0A
DCkAEAAAAAEeAigkAAAKKhswBgC1AAAADwAAERQMFA0CAm8qAAAGAm8mAAAGFhYTBRIFbzUAAAYM
Am8cAAAGRQIAAAACAAAACwAAACsnAghvMgAABiseAgJvMAAABgJvLAAABhcSAG81AAAGDQIICW8z
AAAGFgveSyUoJQAAChMEFwsCbyYAAApvJwAAChZ+KAAAChEEbykAAAp+KAAAChZvKgAACiYoKwAA
Ct4WCCwGCG8sAAAKCSwJBiwGCW8sAAAK3AJvJgAACgdvLQAACioAAAABGAAAAAAEAFldADUdAAAB
AgAEAI6SABYAAAABEzAEAMkAAAAQAAARcy4AAAoLB3IzAABwby8AAAomB3JBAABwby8AAAomB3JL
AABwby8AAAomBwJvJgAABnJtAABwcosAAHAoMAAACigRAAAKby8AAAomAm8cAAAGRQIAAAACAAAA
HAAAACtTB3KZAABwby8AAAomB3KvAABwby8AAAomKzkHcs0AAHBvLwAACiYHct0AAHBvLwAACiYH
Am8sAAAGcv8AAHByHQEAcCgwAAAKKBEAAApvLwAACiYH0CEAAAEoFAAACm8xAAAKdAwAABsqAAAA
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
MwrBAQoAPQpuCBIAWQpABBIAcwpABAYAkgrBAQYA5QrSCgoA8woTAAYAAwvBAQYAHwvBARYAfwtf
CwYAlQuJCw4AxgunCwYA3gvBARYA7QtfCxYAJQxfCwYANwzBARYAUAxfCwYAcQzBAQYAhwzyCRYA
lAxfCwYAwgwCBgYAxwwCBgYABA3pDAYAIw3BARoARg05DR4AjQ1rDR4AqQ1rDR4Aww1rDR4A2w1r
DQ4A7w3QBw4ABA7QBw4AFg7QBw4AMQ7QBx4AQw5rDQYAnA73CAYAvA73CAYA2g7KCQYA9w6XCQYA
BQ/KCQYAIA/KCQYAOw/KCQYAVA/KCQYAbQ/KCQYAig/KCQAAAAABAAAAAAABAAEAAAAAACkANwAF
AAEAAQAAAAAAbQA3AAkAAQACAAABEAB4ADcADQABAAMABQEAAIIAAAANAAUACAAFAQAAkAAAAA0A
BQAPAAAAAACrALcADQAGABEAAAEQAPcAAgElAAgAFQABAAAANQECASkACgAYAAIBAABAAQAANQAT
ADcAAgEAAE4BAAA1ABYANwAxAOMBIAAxAAwCLQAxAC4COgAxAFMCRwAhAC8DkAARAGYDnQARAI8D
oQARAAIEvwARAAoEwwABAK8GMgEBALgGNgEBAL8GNgEBAMkGOQEBANYGNgEBAOcGPAEBAPUGNgEB
AP4GPAEBAAwHNgEGBqkHVQFWgLEHWAFWgLkHWAEGBqkHVQFWgBwHMgFWgMEHMgEIIQAAAAAGGJQB
EwABABAhAAAAAAYYlAETAAEAGCEAAAAAERjPARcAAQBEIQAAAAATCNYBGwABAFwhAAAAABMI/AEo
AAEAdCEAAAAAEwglAjUAAQCMIQAAAAATCEMCQgABAKQhAAAAAEYCiQJjAAEAwCEAAAAARgKSAmgA
AgDUIQAAAACDAKMCbAACAOwhAAAAAEYCqwJxAAIAACIAAAAAEQC0AngAAgAcIgAAAAABANICgAAD
ADgiAAAAAAYYlAETAAQAQCIAAAAAAwjmAosABAB0IgAAAAAGGJQBEwAEAIgiAAAAAAMYlAETAAQA
kCIAAAAAFgibA6UABADMIgAAAAAWCK8DqgAEAOAiAAAAABYIuwOvAAQA6CIAAAAAERjPARcABQD8
IgAAAAAGGJQBEwAFAAQjAAAAABYIFwTGAAUAYCMAAAAABhiUARMABQBoIwAAAAAGAIUEEwAFAEgk
AAAAAAYAigTZAAUAICUAAAAABgCYBN4ABQDUJQAAAAAGCKwE5AAGAOwlAAAAAAYItwTpAAYA+CUA
AAAABgjIBHEABwAQJgAAAAAGCNEE7wAHABwmAAAAAAYI2gRxAAgANCYAAAAABgjmBO8ACABAJgAA
AAAGCPIE9AAJAFgmAAAAAAYIAQX4AAkAZCYAAAAABggQBXEACgB8JgAAAAAGCCMF7wAKAIgmAAAA
AAYINgX9AAsAoCYAAAAABghLBQEBCwDAJgAAAAAGCGAFcQAMANgmAAAAAAYIcwXvAAwA5CYAAAAA
BgiGBXEADQD8JgAAAAAGCJEF7wANAAgnAAAAAAYInAX9AA4AICcAAAAABgixBQEBDgBAJwAAAAAG
CMYFcQAPAFgnAAAAAAYI2QXvAA8AZCcAAAAABgjsBXEAEAB8JwAAAAAGCPcF7wAQAIgnAAAAAAEA
EwYGAREAaCgAAAAAAQAtBgwBEgA4KQAAAAABCFEG2QAUAFgpAAAAAAEAaAYUARQAZCoAAAAAAQCR
BiABGAAAAAEAkAIAAAEAyQIAAAEAyQIAAAEAxwMAAAEAoQQAAAEAwgQAAAEAwgQAAAEAwgQAAAEA
wgQAAAEAwgQAAAEAwgQAAAEAwgQAAAEAwgQAAAEAwgQAAAEAwgQAAAEAwgQAAAEAIAYAAAEAIAYA
AAIARAYAAAEAcwYAAAIAeQYAAAMAfwYQEAQAhgYAAAEAqwYAAAIArQYJAJQBEwBxAJQBZgGBAJQB
dQERAJQBEwCJAJQBEwA0AJQBEwA8AJQBEwBEAJQBEwBMAJQBEwA0AOYCiwA8AOYCiwBEAOYCiwBM
AOYCiwCRAJQBEwCZAJQBEwChAJQB7wCpACYJCQIZAIkCYwAZAJICaAApAEcJFgIZAKsCcQC5AGMJ
JgIZAJQBEwDBAJQBNgJUAC8DkABcABcEiwBcAI0JswJcAJQBEwDJAJQBAQEpAOUJxgI5AJQBywJJ
AJQBEwDZAAsK5wLZABEK5wLhAJQBEwBRAJQBEwDxAEkK8QJRAGsK9wL5AIcK/AIJAZkKNgHpAKsC
cQABAZ8KAgPxAKkKFwBZALsKEwD5AMMKCwMRAZQBEwARAe8KHgMZAf8KIwMRAQkLKgMJARELPwMp
AZQB7wDpADQLcQA5AZ4LVgNBAcwLXAM5AdULYQNZAOMLZwMhAegLbwP5AP8LgANRARUMhgMxAS4M
jwNZAY0JlgMxAT0MEwBZAEQMqANZAEoMEwBRAWIMhgNZAXoMwwNZARcEyQN5AY4MzQMZAKMCbAD5
AKAM0gOBAS4M2ANpAbAM3wOJAdIM5AOJAdkMPwOJAeAM5ANsABcNBARsAIkCDgShAZQBAQGpAZQB
7wCxAZQB7wC5AZQB7wDBAZQBiATJAZQB7wDRAZQB7wDZAZQB7wDhAZQBWQXxAZQBEwD5AZQBCwMB
ApQBEwAJApQB7wARApQB7wAZApQB7wAhApQB7wApApQB7wAxApQB7wA5ApQB7wBBApQB7wAIAFAA
XAEIAFQAYQEIAFwAXAECAF0AHgEIAGAAYQEpAIMAwwEuAPMCIAguAAsDIAguAOMCwAIuAMMCmwcu
AHMC+gcuAPsCWAguAAMDwAIuAOsCAAguAMsCpAcuANMCwwcuANsC0AcuAOsAwAJAACsAYQFAABMA
bAFDABMAbAFDABsAewFJAIMA9QFjABsAewFjABMAbAFpAIMA1AGAACsAYQGDAHMAYQGDAHsAYQGD
ABsAewGJAIMA4QGgACsAYQGjABMAbAGjAMMAPgLAACsAYQHDAOsAwALDABMAbAHJABMA3gLgACsA
YQHpABMA3gIAASsAYQEAARMAbAEJARsBYQEgASsAYQEgARMAbAEjAYsCdQQjAXsCJAQjAZMCjgQj
AXMCwAIjAYMCZwQpAasCzQUpAaMCTQYpAbMCbAFAARMAbAFAASsAYQFJAasCzQVJAaMCnwVgASsA
YQFgARMAbAFpAasCzQVpAaMCsAaAASsAYQGJAasCzQWJAaMC9wagASsAYQGpAasCzQWpAbsCYQGp
AaMCZgbAARMAbAHAASsAYQHJAasCTQXJAbMCbAHJAaMCYAXgASsAYQHpAasCTQXpAaMCKwfpAbsC
YQEAAhMAbAEAAisAYQEJAqsCTQUJApsCFAUJAqMCLAUpAqsCGgYpAqMC2wUpArMCbAFJAqsCGgZJ
AqMCYAdJArsCYQFpAqMCJgZpAqsCGgZpApsCFAWvAbQBuQG+AQ4CEgIdAiICMQIxArkC0gLZAuwC
EAM1A0QDTQMiAiICUgMiAg4CIgIiAg4CIgIiApsDsAO8A+sDFgQEAAEABgAFAAcABgAIAAgACQAJ
AAAAuAFPAAAAcQJUAAAAIAJZAAAAfQJeAAAAOQOYAAAAVgO1AAAAzQO6AAAAxwPLAAAAFQc/AQAA
HAdEAQAAIQdEAQAAKQdIAQAANAdEAQAAQwdMAQAAVAdEAQAAYwdEAQAAagdMAQAAewdEAQAAigdE
AQAAkQdQAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAFAAPAAIAEwAPAAIA
FwARAAEAHQATAAIAHAATAAEAHwAVAAIAHgAVAAIAIAAXAAEAIQAXAAIAIgAZAAEAIwAZAAIAJAAb
AAEAJQAbAAIAJgAdAAEAJwAdAAIAKAAfAAEAKQAfAAIAKgAhAAEAKwAhAAIALAAjAAEALQAjAAIA
LgAlAAEALwAlAAIAMAAnAAEAMQAnAAIANAApAHUAdQCIAHUAKwGTAZoBoQGoAaACpwIyA/wDBIAA
AAEAAAAAAAAAAAAAAAAAAgEAAAIAAAAAAAAAAAAAAAEACgAAAAAACAAAAAAAAAAAAAAACgATAAAA
AAACAAAAAAAAAAAAAAABAMEBAAAAAAoAAAAAAAAAAAAAANAAIQQAAAAACgAAAAAAAAAAAAAA0ABA
CwAAAAADAAUAAAAAAAAAAAABADkNAAAAAAEAAAAAAAAAAAAAAF4EVQ0AAAAAAAAAAAEAAABVDgAA
BQAEAAYABAAKAAkACwAJAAAAEAAMAMcCAAAQABkAxwIAAAAAGwDHAgAAAABtAMcCLQAsAi0ArgJs
AHwDBAAWAAAAAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBw
bGljYXRpb24AU2NyaXB0VGFza185Mzg4ZjNiNWVhNTE0NDg3YWZlNTBjMWEyZGM2YjVmYS52YnBy
b2ouTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0
UHJvdmlkZXJgMQBNeVJlc291cmNlcwBTY3JpcHRUYXNrXzkzODhmM2I1ZWE1MTQ0ODdhZmU1MGMx
YTJkYzZiNWZhLnZicHJvai5NeS5SZXNvdXJjZXMATXlTZXR0aW5ncwBTY3JpcHRUYXNrXzkzODhm
M2I1ZWE1MTQ0ODdhZmU1MGMxYTJkYzZiNWZhLnZicHJvagBTY3JpcHRNYWluAFNjcmlwdFJlc3Vs
dHMAQWN0aW9uVHlwZXMATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMA
QXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1
dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJv
dmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBt
X1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0
UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlw
ZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2Vf
X0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZp
Y2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBTeXN0ZW0u
UmVzb3VyY2VzAFJlc291cmNlTWFuYWdlcgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxpemF0aW9uAEN1
bHR1cmVJbmZvAF9yZXNDdWx0dXJlAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1bHR1cmUAc2V0
X0N1bHR1cmUAVmFsdWUAQ3VsdHVyZQBTeXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBsaWNhdGlvblNl
dHRpbmdzQmFzZQBtX1ZhbHVlAG1fU3luY09iamVjdABnZXRfVmFsdWUATWljcm9zb2Z0LlNxbFNl
cnZlci5TY3JpcHRUYXNrAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlRhc2tzLlNjcmlwdFRhc2sA
VlNUQVJUU2NyaXB0T2JqZWN0TW9kZWxCYXNlAE1haW4AR2V0UHJvcGVydGllcwBWYWxpZGF0ZQBl
cnJNZXNzYWdlAGdldF9BY3Rpb24Ac2V0X0FjdGlvbgB2YWx1ZQBnZXRfRmluZABzZXRfRmluZABn
ZXRfUmVwbGFjZQBzZXRfUmVwbGFjZQBnZXRfU3RhcnRJbmRleABzZXRfU3RhcnRJbmRleABnZXRf
UmVzdWx0VmFyaWFibGUAc2V0X1Jlc3VsdFZhcmlhYmxlAGdldF9Jc1NvdXJjZVZhcmlhYmxlAHNl
dF9Jc1NvdXJjZVZhcmlhYmxlAGdldF9Tb3VyY2VWYXJpYWJsZQBzZXRfU291cmNlVmFyaWFibGUA
Z2V0X1NvdXJjZQBzZXRfU291cmNlAGdldF9Jc1RhcmdldFZhcmlhYmxlAHNldF9Jc1RhcmdldFZh
cmlhYmxlAGdldF9UYXJnZXRWYXJpYWJsZQBzZXRfVGFyZ2V0VmFyaWFibGUAZ2V0X1RhcmdldABz
ZXRfVGFyZ2V0AFN5c3RlbS5JTwBTdHJlYW0ARXhlY3V0ZUZpbmRfAHNvdXJjZVN0cmVhbQBFeGVj
dXRlRmluZEFuZFJlcGxhY2VfAHRhcmdldFN0cmVhbQBnZXRfRmlsZUNvbm5lY3Rpb25UeXBlAEdl
dFN0cmVhbV8AaW5wdXQAaXNWYXIAY3JlYXRlAGhhc1RvQ2xvc2UAQXJyYXlFcXVhbHNfAElFcXVh
dGFibGVgMQBhAGIAbV9hY3Rpb24AbV9maW5kAG1fcmVwbGFjZQBtX3N0YXJ0SW5kZXgAbV9yZXN1
bHRWYXJpYWJsZQBtX2lzU291cmNlVmFyAG1fc291cmNlAG1faXNUYXJnZXRWYXIAbV90YXJnZXQA
QWN0aW9uAEZpbmQAUmVwbGFjZQBTdGFydEluZGV4AFJlc3VsdFZhcmlhYmxlAElzU291cmNlVmFy
aWFibGUAU291cmNlVmFyaWFibGUAU291cmNlAElzVGFyZ2V0VmFyaWFibGUAVGFyZ2V0VmFyaWFi
bGUAVGFyZ2V0AEZpbGVDb25uZWN0aW9uVHlwZQBFbnVtAHZhbHVlX18AU3VjY2VzcwBGYWlsdXJl
AEZpbmRBbmRSZXBsYWNlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRy
aWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJh
dGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1
dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVB
dHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRl
c2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2Vz
AFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVG
cm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJp
YnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZpc2libGVB
dHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3RlbS5U
aHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUA
RXhjZXB0aW9uAFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBTY3JpcHRPYmplY3RNb2RlbABn
ZXRfRHRzAEV2ZW50c09iamVjdFdyYXBwZXIAZ2V0X0V2ZW50cwBTdHJpbmcARW1wdHkARmlyZUVy
cm9yAENsZWFyUHJvamVjdEVycm9yAERpc3Bvc2UAc2V0X1Rhc2tSZXN1bHQAU3lzdGVtLkNvbGxl
Y3Rpb25zAEFycmF5TGlzdABBZGQASW50ZXJhY3Rpb24ASUlmAEFycmF5AFRvQXJyYXkASXNOdWxs
T3JFbXB0eQBBcHBsaWNhdGlvbkV4Y2VwdGlvbgBnZXRfTWVzc2FnZQBNaWNyb3NvZnQuU3FsU2Vy
dmVyLk1hbmFnZWREVFMATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZQBWYXJpYWJsZXMA
U3lzdGVtLlRleHQARW5jb2RpbmcAZ2V0X1VURjgAU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Np
b25zAFJlZ2V4AFVuZXNjYXBlAEdldEJ5dGVzAEJ5dGUAUmVhZABDb3B5AFZhcmlhYmxlRGlzcGVu
c2VyAGdldF9WYXJpYWJsZURpc3BlbnNlcgBMb2NrT25lRm9yV3JpdGUAVmFyaWFibGUAZ2V0X0l0
ZW0ASW50NjQAVW5sb2NrAFdyaXRlAEZsdXNoAENvbm5lY3Rpb25NYW5hZ2VyAExvY2tPbmVGb3JS
ZWFkAFR5cGVDb2RlAGdldF9EYXRhVHlwZQBUaHJlYWQAU2xlZXAAQ29ubmVjdGlvbnMAZ2V0X0Nv
bm5lY3Rpb25zAEFjcXVpcmVDb25uZWN0aW9uAEZpbGUARmlsZVN0cmVhbQBDcmVhdGUARXhpc3Rz
AE9wZW5SZWFkAFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljAEVxdWFsaXR5Q29tcGFyZXJgMQBn
ZXRfRGVmYXVsdABDTFNDb21wbGlhbnRBdHRyaWJ1dGUAU3lzdGVtLkFkZEluAEFkZEluQXR0cmli
dXRlAENvenlSb2MuU1NJU1BsdXMuMjAwOABDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0
ZXMAVmFsaWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAEZpbHRlclByb3BlcnRpZXNBdHRyaWJ1dGUA
U29ydFByb3BlcnRpZXNBdHRyaWJ1dGUAQ29ubmVjdGlvbkF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0
dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBSZWZyZXNoUHJvcGVydGllc0F0dHJpYnV0ZQBSZWZy
ZXNoUHJvcGVydGllcwBWYXJpYWJsZUF0dHJpYnV0ZQBTY3JpcHRUYXNrXzkzODhmM2I1ZWE1MTQ0
ODdhZmU1MGMxYTJkYzZiNWZhLnZicHJvai5SZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9u
UmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNzZW1i
bHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBHdWlkQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0
cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0
ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBB
c3NlbWJseVRpdGxlQXR0cmlidXRlAFNjcmlwdFRhc2tfOTM4OGYzYjVlYTUxNDQ4N2FmZTUwYzFh
MmRjNmI1ZmEudmJwcm9qLmRsbAAAMU0AeQAuAFIAZQBzAG8AdQByAGMAZQBzAC4ATQB5AFIAZQBz
AG8AdQByAGMAZQBzAAANQQBjAHQAaQBvAG4AAAlGAGkAbgBkAAAhSQBzAFMAbwB1AHIAYwBlAFYA
YQByAGkAYQBiAGwAZQAAHVMAbwB1AHIAYwBlAFYAYQByAGkAYQBiAGwAZQAADVMAbwB1AHIAYwBl
AAAVUwB0AGEAcgB0AEkAbgBkAGUAeAAAHVIAZQBzAHUAbAB0AFYAYQByAGkAYQBiAGwAZQAAD1IA
ZQBwAGwAYQBjAGUAACFJAHMAVABhAHIAZwBlAHQAVgBhAHIAaQBhAGIAbABlAAAdVABhAHIAZwBl
AHQAVgBhAHIAaQBhAGIAbABlAAANVABhAHIAZwBlAHQAAClQAGwAZQBhAHMAZQAgAHMAcABlAGMA
aQBmAHkAIABGAGkAbgBkAC4AAC1QAGwAZQBhAHMAZQAgAHMAcABlAGMAaQBmAHkAIABTAG8AdQBy
AGMAZQAuAAA9UABsAGUAYQBzAGUAIABzAHAAZQBjAGkAZgB5ACAAUgBlAHMAdQBsAHQAVgBhAHIA
aQBhAGIAbABlAC4AAC1QAGwAZQBhAHMAZQAgAHMAcABlAGMAaQBmAHkAIABUAGEAcgBnAGUAdAAu
AAAJRgBJAEwARQAAAAAA91YRz0eK50iIDegxqQnsiQAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAA
AQQAABIMBwYVEhgBEgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAAS
DAQIABIIBAgAEhEECAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAE
IAATAAcGFRIZARMABCgAEwADBhIdAwYSIQQAABIdBAAAEiEFAAEBEiEECAASHQQIABIhAwYSIAIG
HAQAABIgBAgAEiAIiYRdzYCAzJEEIAAdDgUgAQIQDgQgABEsBSABAREsBCABAQ4DIAAKBCABAQoD
IAACBCABAQIFIAEBEi0HIAIBEi0SLQkgBBItDgICEAIBAAowAQICHR4AHR4ABhUSMQEeAAMGESwC
Bg4CBgoCBgIEKAARLAMoAA4DKAAKAygAAgQoAB0OAgYIAwYRKAQAAAAABAEAAAAFIAEBET0IAQAB
AAAAAAAFIAIBDg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAGFRIYARIMBhUSGAESCAYVEhgBEhEG
FRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAAT
AQAOTXkuV2ViU2VydmljZXMAABMBAA5NeS5BcHBsaWNhdGlvbgAABAABHBwDBwECAwcBCAYAARIV
EVkEBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNl
cy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlz
cG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAGBwITABMABQEAAAAA
BCAAEmkGIAIBDhJpBgcCEh0SHQQHARIhCAEAAgAAAAAABAABARwEBwESIAUAAQESdQQgABJ9BSAA
EoCBCCAFAggODg4IBCABAQgNBwcCCBItEi0SdQIRLAQgAQgcBgADHAIcHAcgARKAkRIVAh0OCQcD
HQ4SgIkRLAQAAQIOCAcEAgISdREsBAcBESwDBwEKBQAAEoCdBAABDg4FIAEdBQ4HIAMIHQUICAwA
BQESgJEIEoCRCAgDCgEFBSAAEoCpCCACAQ4QEoCZBiABEoCtHAQgAQEcDAcGHQUIHQUIChKAmQcg
AwEdBQgICwcGHQUIHQUIHQUIBgcCHQ4dDgUgABGAuQMgABwEAAEBCAUgABKAwQYgARKAtRwEIAEc
HAYAARKAyQ4QBwYOEi0SgK0SgLUSLRKAmQcVEoDNAR4ACQAAFRKAzQETAAcgAgITABMADQcFAhUS
gM0BHgAIAgg5AQAKU2NyaXB0TWFpbgMAVA4HVmVyc2lvbgMxLjBUDglQdWJsaXNoZXIAVA4LRGVz
Y3JpcHRpb24ACBbPSQu4DDTqDQEACFZhbGlkYXRlAAASAQANR2V0UHJvcGVydGllcwAABSABAR0O
gIQBAAsAAAAGQWN0aW9uBEZpbmQHUmVwbGFjZQpTdGFydEluZGV4DlJlc3VsdFZhcmlhYmxlEElz
U291cmNlVmFyaWFibGUOU291cmNlVmFyaWFibGUGU291cmNlEElzVGFyZ2V0VmFyaWFibGUOVGFy
Z2V0VmFyaWFibGUGVGFyZ2V0AAAXAQASRmlsZUNvbm5lY3Rpb25UeXBlAAAgAQAbU3BlY2lmaWVz
IHNvdXJjZSB0byBzZWFyY2guAAALAQAGU291cmNlAAAGIAEBEYD1PgEAOVNwZWNpZmllcyBpZiBT
b3VyY2UgcHJvcGVydHkgcmVmZXJlbmNlcyBwYWNrYWdlIHZhcmlhYmxlLgAALQEAKFNwZWNpZnkg
dGhlIHN0cmluZyB0aGF0IHdpbGwgYmUgbWF0Y2hlZC4AAA0BAAhTZXR0aW5ncwAAPgEAOVNwZWNp
ZmllcyBpZiBUYXJnZXQgcHJvcGVydHkgcmVmZXJlbmNlcyBwYWNrYWdlIHZhcmlhYmxlLgAACwEA
BlRhcmdldAAAJgEAIVNwZWNpZmllcyB0YXJnZXQgdG8gc3RvcmUgcmVzdWx0LgAAGAEAE1NlbGVj
dCB0YXNrIGFjdGlvbi4AAEkBAERTcGVjaWZpZXMgcGFja2FnZSB2YXJpYWJsZSB3aGVyZSB5b3Ug
d291bGQgbGlrZSB0byBzdG9yZSBmaW5kIGluZGV4LgAARgEAQVNwZWNpZnkgd2hhdCB3aWxsIGJl
IGluc2VydGVkIGluIHRoZSBwbGFjZSBvZiB0aGUgbWF0Y2hlZCBzdHJpbmcuAAAzAQAuU3BlY2lm
eSBvZmZzZXQgZnJvbSB3aGVyZSB0byBzdGFydCB0aGUgc2VhcmNoLgAANAEAL1NwZWNpZmllcyB2
YXJpYWJsZSBjb250YWluaW5nIHNvdXJjZSB0byBzZWFyY2guAAA6AQA1U3BlY2lmaWVzIHZhcmlh
YmxlIGNvbnRhaW5pbmcgdGFyZ2V0IHRvIHN0b3JlIHJlc3VsdC4AAAgBAAgAAAAAAB4BAAEAVAIW
V3JhcE5vbkV4Y2VwdGlvblRocm93cwEMAQAHMS4wLjAuMAAAKQEAJDBmNjBiMGExLTI0YWEtNDUy
Yi04MDhmLWJmNDM1MTNhZjlhNQAABQEAAQAAHwEAGkNvcHlyaWdodCBAIE1pY3Jvc29mdCAyMDA5
AAA3AQAyU2NyaXB0VGFza185Mzg4ZjNiNWVhNTE0NDg3YWZlNTBjMWEyZGM2YjVmYS52YnByb2oA
AA4BAAlNaWNyb3NvZnQAAABwUwAAAAAAAAAAAACOUwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gFMAAAAAAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAoAACADgAA
AEgAAIAQAAAAYAAAgAAAAAAAAAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAAAAAAAAAA
AAABAAB/AACoAACAAAAAAAAAAAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAABAAAAAADY
AAAAAAAAAAAAAAAAAAAAAAABAAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAAAAAAAAAA
AAAAAAAAAAABAAAAAAAIAQAAYGUAAOgCAAAAAAAAAAAAAEhoAAAoAQAAAAAAAAAAAABwaQAAIgAA
AAAAAAAAAAAAGGEAAEgEAAAAAAAAAAAAAEgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4A
RgBPAAAAAAC9BO/+AAABAAAAAQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAA
AAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQA
aQBvAG4AAAAAAAAAsASoAwAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACEAwAAAQAw
ADAAMAAwADAANABiADAAAAA0AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0AaQBjAHIA
bwBzAG8AZgB0AAAAkAAzAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAFMAYwBy
AGkAcAB0AFQAYQBzAGsAXwA5ADMAOAA4AGYAMwBiADUAZQBhADUAMQA0ADQAOAA3AGEAZgBlADUA
MABjADEAYQAyAGQAYwA2AGIANQBmAGEALgB2AGIAcAByAG8AagAAAAAAMAAIAAEARgBpAGwAZQBW
AGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAkAA3AAEASQBuAHQAZQByAG4AYQBsAE4A
YQBtAGUAAABTAGMAcgBpAHAAdABUAGEAcwBrAF8AOQAzADgAOABmADMAYgA1AGUAYQA1ADEANAA0
ADgANwBhAGYAZQA1ADAAYwAxAGEAMgBkAGMANgBiADUAZgBhAC4AdgBiAHAAcgBvAGoALgBkAGwA
bAAAAAAAXAAbAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBvAHAAeQByAGkAZwBo
AHQAIABAACAATQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMAA5AAAAAACYADcAAQBPAHIAaQBnAGkA
bgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAVABhAHMAawBfADkAMwA4ADgAZgAz
AGIANQBlAGEANQAxADQANAA4ADcAYQBmAGUANQAwAGMAMQBhADIAZABjADYAYgA1AGYAYQAuAHYA
YgBwAHIAbwBqAC4AZABsAGwAAAAAAIgAMwABAFAAcgBvAGQAdQBjAHQATgBhAG0AZQAAAAAAUwBj
AHIAaQBwAHQAVABhAHMAawBfADkAMwA4ADgAZgAzAGIANQBlAGEANQAxADQANAA4ADcAYQBmAGUA
NQAwAGMAMQBhADIAZABjADYAYgA1AGYAYQAuAHYAYgBwAHIAbwBqAAAAAAA0AAgAAQBQAHIAbwBk
AHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIA
bAB5ACAAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAAoAAAAIAAAAEAAAAABAAQAAAAA
AIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAA
AAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3d3d3d3d3d3d3d3dwBERERERE
REREREREREREcAT/////////////////9HAE//////////////////RwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////////
////////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAE////////////
//////RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//
///////////////0cASIiIiIiIiIiIiIiIiIhHAERERERERERERERERERERwBExMTExMTExMTE7O
zkl0cATMzMzMzMzMzMzMzMzMxAAAREREREREREREREREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////8AAAAGAAAABgAAAAYAA
AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
AYAAAAGAAAABgAAAAYAAAAGAAAABgAAAA8AAAAf///////////////8oAAAAEAAAACAAAAABAAQA
AAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADA
wMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAB3d3d3d3d3dERERERERER0//
//////hHT///////+EdP///////4R0////////hHT///////+EdP///////4R0////////hHT///
////+EdIiIiIiIiIR0zMzMzMzMxHxERERERERMAAAAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAD//wAA//8AAAAAAQAC
ACAgEAABAAQA6AIAAAIAEBAQAAEABAAoAQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAAoDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</BinaryItem>
</ScriptProject>