<?xml version="1.0"?>
<ScriptProject Name="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7" VSTAMajorVersion="3" VSTAMinorVersion="0" Language="VisualBasic">
  <ProjectItem Name="ScriptMain.vb" Encoding="UTF8">
<![CDATA[' Microsoft SQL Server Integration Services Script Task
'
' Copyright (c) 2007 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.IO
Imports System.Text
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms.Design
Imports System.Drawing.Design
Imports System.Net
Imports System.Security.Cryptography.X509Certificates

Imports Microsoft.SqlServer.Dts.Runtime
Imports CozyRoc.SqlServer.SSIS.Attributes


'
' ScriptMain
'
<SortProperties(New String() {"FtpUrl", "Username", "Password", "Action", "Local", "Remote", "RenameTo"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute> _
<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
    '
    ' Consts
    '
    Private Class Consts
        Public Const ActionUpload As String = "Upload file"
        Public Const ActionDownload As String = "Download file"
        Public Const ActionMkDir As String = "Create remote directory"
        Public Const ActionRmDir As String = "Remove remote directory"
        Public Const ActionDelete As String = "Remove remote file"
        Public Const ActionRename As String = "Rename remote file"

        Public Shared ActionTypes As Object() = New Object() { _
            ActionUpload, _
            ActionDownload, _
            ActionMkDir, _
            ActionRmDir, _
            ActionDelete, _
            ActionRename}
    End Class   ' Consts


    '
    ' TrustAllCertificatePolicy
    '
    Private Class TrustAllCertificatePolicy
        Implements ICertificatePolicy


        Public Sub TrustAllCertificatePolicy()
        End Sub ' TrustAllCertificatePolicy


        Public Function CheckValidationResult( _
            ByVal srvPoint As ServicePoint, _
            ByVal certificate As X509Certificate, _
            ByVal request As WebRequest, _
            ByVal certificateProblem As Integer) As Boolean Implements ICertificatePolicy.CheckValidationResult

            CheckValidationResult = True
        End Function    ' CheckValidationResult
    End Class   ' TrustAllCertificatePolicy


    Public Sub Main()
        Dim result As Integer
        Dim request As FtpWebRequest
        Dim response As FtpWebResponse = Nothing
        Dim input As Stream
        Dim output As Stream
        Dim fireAgain As Boolean

        result = ScriptResults.Success

        Try
            ' Setup to trust all server certificates.
            ServicePointManager.CertificatePolicy = New TrustAllCertificatePolicy()

            ' Setup action.
            Select Case Me.Action
                Case Consts.ActionUpload
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(Me.FtpUrl), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.UploadFile

                    input = New FileStream(Me.Local, FileMode.Open, FileAccess.Read)
                    output = request.GetRequestStream()

                    ' Upload file.
                    Try
                        Call TransferFile_(input, output)
                    Finally
                        input.Close()
                        output.Close()
                    End Try

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionDownload
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(Me.FtpUrl), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.DownloadFile

                    ' Get input.
                    response = CType(request.GetResponse(), FtpWebResponse)
                    input = response.GetResponseStream()

                    ' Get output.
                    If File.Exists(Me.Local) Then
                        ' File exists. Resume download.
                        request.ContentOffset = New FileInfo(Me.Local).Length
                        output = New FileStream(Me.Local, FileMode.Append, FileAccess.Write)
                    Else
                        output = New FileStream(Me.Local, FileMode.Create, FileAccess.Write)
                    End If

                    ' Download file.
                    Try
                        Call TransferFile_(input, output)
                    Finally
                        input.Close()
                        output.Close()
                    End Try

                Case Consts.ActionMkDir
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.MakeDirectory

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionRmDir
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.RemoveDirectory

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionDelete
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.DeleteFile

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionRename
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.MakeDirectory
                    request.RenameTo = Me.RenameTo

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Else
                    Throw New ArgumentException("Unhandled action type.")
            End Select

            ' Report response status description.
            Call Dts.Events.FireInformation( _
                0, _
                String.Empty, _
                response.StatusDescription, _
                String.Empty, _
                0, _
                fireAgain)
        Catch ex As Exception
            result = ScriptResults.Failure
            Dts.Events.FireError(0, String.Empty, ex.Message, String.Empty, 0)
        Finally
            If Not response Is Nothing Then
                Call response.Close()
            End If
        End Try

        Dts.TaskResult = result
    End Sub ' Main


#Region "Properties"
    <Category("Connection")> _
    <Description("Specifies URL of FTPS server.")> _
    Public Property FtpUrl() As String
        Get
            FtpUrl = m_ftpUrl
        End Get
        Set(ByVal value As String)
            m_ftpUrl = value
        End Set
    End Property    ' FtpUrl


    <Category("Connection")> _
    <Description("Specifies user name for connection to FTPS server.")> _
    Public Property Username() As String
        Get
            Username = m_userName
        End Get
        Set(ByVal value As String)
            m_userName = value
        End Set
    End Property    ' Username


    <Category("Connection")> _
    <Description("Specifies password for connection to FTPS server.")> _
    <PasswordPropertyText(True)> _
    Public Property Password() As String
        Get
            Password = m_password
        End Get
        Set(ByVal value As String)
            m_password = value
        End Set
    End Property


    <Category("Settings")> _
    <Description("Specifies the action that the task performs.")> _
    <List("GetActionTypes")> _
    <RefreshProperties(RefreshProperties.All)> _
    <DefaultValue(Consts.ActionUpload)> _
    Public Property Action() As String
        Get
            Action = m_action
        End Get
        Set(ByVal value As String)
            m_action = value
        End Set
    End Property    ' Action


    <Category("Settings")> _
    <Description("Specifies the local parameter.")> _
    <Editor(GetType(FileNameEditor), GetType(UITypeEditor))> _
    Public Property Local() As String
        Get
            Local = m_local
        End Get
        Set(ByVal value As String)
            m_local = value
        End Set
    End Property    ' Local


    <Category("Settings")> _
    <Description("Specifies the remote parameter.")> _
    Public Property Remote() As String
        Get
            Remote = m_remote
        End Get
        Set(ByVal value As String)
            m_remote = value
        End Set
    End Property    ' Remote


    <Category("Settings")> _
    <Description("Specifies new name of remote.")> _
    Public Property RenameTo() As String
        Get
            RenameTo = m_local
        End Get
        Set(ByVal value As String)
            m_local = value
        End Set
    End Property    ' RenameTo
#End Region ' Properties


#Region "Internals"
    Public Function GetActionTypes() As Object()
        GetActionTypes = Consts.ActionTypes
    End Function    ' GetActionTypes


    Public Function GetProperties() As String()
        Dim result As New ArrayList()

        ' Include base settings.
        Call result.Add("FtpUrl")
        Call result.Add("Username")
        Call result.Add("Password")
        Call result.Add("Action")

        ' Setup local and remote based on action type.
        Select Case Me.Action
            Case Consts.ActionUpload, Consts.ActionDownload
                Call result.Add("Local")
                Call result.Add("Remote")

            Case Consts.ActionMkDir, Consts.ActionRmDir, Consts.ActionDelete
                Call result.Add("Remote")

            Case Consts.ActionRename
                Call result.Add("Remote")
                Call result.Add("RenameTo")

            Case Else
                Throw New ArgumentException("Unhandled action type")
        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

        result = False

        If String.IsNullOrEmpty(Me.FtpUrl) Then
            errMessage = "Please specify FTPS URL."
        ElseIf String.IsNullOrEmpty(Me.Username) Then
            errMessage = "Please specify user name."
        ElseIf String.IsNullOrEmpty(Me.Action) Then
            errMessage = "Please specify task action."
        ElseIf String.IsNullOrEmpty(Me.Local) And _
            (Me.Action = Consts.ActionUpload Or Me.Action = Consts.ActionDownload) Then

            errMessage = "Please specify local parameter."
        ElseIf String.IsNullOrEmpty(Me.Remote) Then
            errMessage = "Please specify remote parameter."
        Else
            result = True
        End If

        Validate = result
    End Function    ' Validate


    Private Sub SetupRequest_(ByVal request As FtpWebRequest)
        request.EnableSsl = True
        request.UseBinary = True
        request.Credentials = New NetworkCredential(Me.Username, Me.Password)
    End Sub ' SetupRequest_


    Private Sub TransferFile_(ByVal input As Stream, ByVal output As Stream)
        Dim buf(1024) As Byte
        Dim bytesRead As Integer

        Do
            bytesRead = input.Read(buf, 0, buf.Length)
            If bytesRead > 0 Then
                output.Write(buf, 0, bytesRead)
            End If
        Loop While bytesRead > 0
    End Sub ' TransferFile_


    Private Function GetRemote_() As String
        Dim result As String

        ' Setup remote directory to create.
        result = Me.FtpUrl
        If Right(result, 1) <> "/" Then
            result = result + "/"
        End If
        result = result + Me.Remote

        GetRemote_ = result
    End Function    ' GetRemote_
#End Region ' Internals


#Region "Attributes"
    Private m_ftpUrl As String
    Private m_userName As String
    Private m_password As String
    Private m_action As String
    Private m_local As String
    Private m_remote As String
#End Region ' Attributes
End Class   ' ScriptMain]]></ProjectItem>
  <ProjectItem Name="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7.vbproj" Encoding="UTF16LE">
<![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>{FB251B25-B6F2-4436-8C92-91A627BA7DEB}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</RootNamespace>
    <AssemblyName>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</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>
  <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.ManagedDTS, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.ScriptTask, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Design" />
    <Reference Include="System.Drawing.Design" />
    <Reference Include="System.Drawing" />
  </ItemGroup>
  <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" />
  <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;vstadebug6ebff22a-37ac-401f-9733-6c9b20401763/fe8365bd-9f9f-45c3-894c-61d09ed486af&quot;" />
        <Host Name="ScriptTask" />
        <ProjectClient>
          <HostIdentifier>SSIS_ST110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></ProjectItem>
  <ProjectItem Name="Project" Encoding="UTF16LE">
<![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:ProjectId>{DED0A17B-80BE-44D4-B60A-D4DA18897927}</msb:ProjectId>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</msb:DisplayName>
		<msb:CodeName>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="ScriptMain.vb"/>
		<msb:Folder Include="My Project\"/>
		<msb:Project Include="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></ProjectItem>
  <BinaryItem Name="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7.dll">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
AHCiBhlygQAAcKIGGnK5AABwogYbcukAAHCiBoAVAAAEKgAAHgIoFwAACioeAigXAAAKKgYqAAAT
MAEABAAAABoAABEXCgYqQlNKQgEAAQAAAAAADAAAAHY0LjAuMzAzMTkAAAAABQBsAAAAVAsAACN+
AADACwAA0AwAACNTdHJpbmdzAAAAAJAYAAD8AgAAI1VTAIwbAAAQAAAAI0dVSUQAAACcGwAAWAcA
ACNCbG9iAAAAAAAAAAIAAAFXH6ILCQ4AAAD6JTMAFgAAAQAAAD8AAAAKAAAAFQAAACsAAAASAAAA
AQAAAFQAAAAIAAAAPwAAABoAAAADAAAADAAAABMAAAABAAAACgAAAAEAAAAHAAAABQAAAAMAAAAC
AAAAAACfDAEAAAAAAAoANAEKAQoAaAFKAQYAeAFxAQoA0AEKAQYATgJxAQoA0AKmAg4APQMUAxIA
RAQ5BAYAcgRoBAYADgVxARIAhQU5BBIAmAU5BAYA0wWlBRIA4wU5BBIAQgYsBhIAWwYsBhIAiAZw
BgYAsgafBgoA8QbKBgoACQcTABIAPgchBwYAcwdTBwYAkQdxAQYAtQdxAQoAzgcTAAYAHAj9BxIA
MAg5BAYAPwhxARIASQg5BAoAcwjKBgYAnQhoBAYAqAhoBAYAsQhoBBIA0wg5BAYA/QhoBAYACQlo
BAYALwlxAQ4AQQkUAw4AWwkUAwYAeglxAQoArQnKBgYAEwoACgYAIQpxARIAWQo5BBIAawo5BAYA
iApxAQoAmAoTAAYArQpxAQ4AwwoUAxYAHQv7ChYAOQv7ChYAUwv7ChIAawssBhIAgAssBhIAkgss
BhIAzQssBhIA3QssBhIA8wssBhIADgwsBhYAIAz7CgYALgxTBwYATgxTBwYAhgxsDAAAAAABAAAA
AAABAAEAAAAAACkANwAFAAEAAQAAAAAAZgA3AAkAAQACAAABEABxADcADQABAAMABQEAAHsAAAAN
AAUACAAFAQAAiQAAAA0ABQAPAAEAAACkAK8AHQAGABEAAgEAANsAAAApAAwAJwADABAA6QAAAA0A
DwAnAAMAAADwAAAADQAWACkAMQCTASAAMQC8AS0AMQDeAToAMQADAkcAIQDfApAAAQCfBMkAAQCo
BMkAAQCzBMkAAQC+BMkAAQDHBMkAAQDPBMkABgYTBdAAVoAbBdMAVoAjBdMAVoArBckAVoA4BckA
VoBHBckAVoBTBckAVoBfBckAVoBsBckAFgB5BbsBUCAAAAAABhhEARMAAQBYIAAAAAAGGEQBEwAB
AGAgAAAAABEYfwEXAAEAjCAAAAAAEwiGARsAAQCkIAAAAAATCKwBKAABALwgAAAAABMI1QE1AAEA
1CAAAAAAEwjzAUIAAQDsIAAAAABGAjkCYwABAAghAAAAAEYCQgJoAAIAHCEAAAAAgwBTAmwAAgA0
IQAAAABGAlsCcQACAEghAAAAABEAZAJ4AAIAZCEAAAAAAQCCAoAAAwCAIQAAAAAGGEQBEwAEAIgh
AAAAAAMIlgKLAAQAvCEAAAAABhhEARMABADQIQAAAAAGGEQBEwAEANghAAAAAAYAWQMTAAQAGCUA
AAAABgheA3EABAAwJQAAAAAGCGkDpgAEADwlAAAAAAYIegNxAAUAVCUAAAAABgiHA6YABQBgJQAA
AAAGCJQDcQAGAHglAAAAAAYIoQOmAAYAhCUAAAAABgiuA3EABwCcJQAAAAAGCLkDpgAHAKglAAAA
AAYIxANxAAgAwCUAAAAABgjOA6YACADMJQAAAAAGCNgDcQAJAOQlAAAAAAYI4wOmAAkA8CUAAAAA
BgjuA3EACgAIJgAAAAAGCPsDpgAKABQmAAAAAAYACASrAAsAKCYAAAAABgAXBLAACwAwJwAAAAAG
ACUEtQALAOAnAAAAAAEAUgS7AAwACCgAAAAAAQB5BMEADQBAKAAAAAABAJQEcQAPAIgoAAAAABEY
fwEXAA8A1CgAAAAABhhEARMADwDcKAAAAAAGGEQBEwAPAOQoAAAAAAYA8AATAA8A6CgAAAAAZgPu
Bb8BDwAAAAEAQAIAAAEAeQIAAAEAeQIAAAEAdAMAAAEAdAMAAAEAdAMAAAEAdAMAAAEAdAMAAAEA
dAMAAAEAdAMAAAEALgQAAAEAYAQAAAEAhwQAAAIAjQQAAAEABAYAAAIADQYAAAMAYAQAAAQAGQYK
AC0ACQBEARMAeQBEAcoBiQBEAdkBEQBEARMAkQBEARMAJABEARMALABEARMANABEARMAPABEARMA
JACWAosALACWAosANACWAosAPACWAosAmQBEARMAoQBEARMAqQBEAaYAsQCCB24CGQA5AmMAGQBC
AmgAKQCjB3sCGQBbAnEAwQC/B4sCGQBEARMAyQBEAZsCRADfApAATADpB4sATADzBxgDTABEARMA
0QBEAScDOQBEARMA6QBdCDID8QB9CDgDcQCLCD8DQQCSCKYA+QBEAUUDQQC8CFADSQDNCBMAQQDf
CFUD2QDrCFADGQECCVsDIQFEAaYAIQESCWADQQAdCWQDQQD7A6YAKQFEAaYAOQBTCWkDMQFvCW8D
QQGBCckA2QCHCXEAOQGdCXUDSQG5CYAD4QDJCXEAOQHVCYYDSQHfCRcA2QDNCBMAMQHxCY8DUQFE
ARMAUQEdCqkDUQEnCq4DQQEvClsDQQA9CicDQQBLCicDYQFEAdkBQQB4CscDSQCNCs4DSQCSCtYD
eQGgCuQDQQGmCuoDgQFEAScDiQFEARMAkQFEAaYAmQFEAaYAoQFEAR8EqQFEAaYAsQFEAaYAuQFE
AScDwQFEAT0FyQFEAaYA0QFEAXMG4QFEAaYAWQDuBb8B6QFEAY8D8QFEARMA+QFEAaYACAA0ANcA
CAA4ANwADgA8AOEADgBAAPgADgBEABMBDgBIAEIBDgBMAHEBDgBQAJYBKQCDAF0CLgCTAuUGLgCb
Au4GLgCjAg0HQAATANABQAArANwAQwATANABQwAbAN8BSQCDAEkCYwATANABYwAbAN8BaQCDACgC
gAArANwAgwAbAN8BgwB7ANwAgwBzANwAiQCDADUCoAArANwAowDDAKMCowATANABwAArANwAwwDr
ACwDwwATANAByQBbArgEyQBTApUE4AArANwA4wAzAtwA4wA7Av4D4wBDAgwE4wBLAiUE4wArAiwD
6QBTAsgE6QBbArgEAAETANABAAErANwACQFbArgECQFjAgAFCQFTAgYFIAETANABIAErANwAKQFz
AmIGKQGDAnoGKQF7AtABKQFTAo4GKQFbAocEQAETANABQAErANwASQFrAkUFSQFTAj4GSQFbAocE
YAErANwAYAETANABaQFTAsAGaQFbAocEgAErANwAiQFbAocEiQFTAmQEoAErANwAwAETANABwAEr
ANwA4AErANwAAAITANABAAIrANwAFAIZAh4CIwJzAncCggKHApYClgIeA5QDhwKHAocChwKHAocC
hwKkA7kDwgPeA/ADpANzAgQAAQAGAAUABwAGAAAAaAFPAAAAIQJUAAAA0AFZAAAALQJeAAAA6QKY
AAAA2ATMAAAA3wTMAAAA6ATMAAAA8QTMAAAA+ATMAAAA/gTMAAAABQXMAAIABAADAAIABQAFAAIA
BgAHAAIABwAJAAIADwALAAIAEwANAAEAFAANAAIAFQAPAAEAFgAPAAIAFwARAAEAGAARAAIAGQAT
AAEAGgATAAEAHAAVAAIAGwAVAAEAHgAXAAIAHQAXAAIAHwAZAAEAIAAZAAoAVgCjAHUAdQCIAPgB
/wEGAg0CBQMMA7YDBIAAAAAAAAAAAAAAAAAAAAAArwAAAAQAAAAAAAAAAAAAAAEACgAAAAAACgAA
AAAAAAAAAAAACgATAAAAAAALAAAAAAAAAAAAAACdAPUCAAAAAAQAAAAAAAAAAAAAAAEAcQEAAAAA
AQAAAAAAAAAAAAAA9QPlCgAAAAAEAAAAAAAAAAAAAAAKALALAAAAAAQAAAAAAAAAAAAAAAoAvgsA
AAAABQAEAAYABAAIAAcACQAHAAoABwAAABAADAB3AgAAEAAZAHcCAAAAABsAdwItAJECLQATAwAA
AAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24A
U2NyaXB0VGFza19kMWZiMDNlMTA0Nzg0ODE4YWMzZmQwNGEyZGI0YTljNy5NeQBNeUNvbXB1dGVy
AE15UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAFNjcmlw
dE1haW4AU2NyaXB0VGFza19kMWZiMDNlMTA0Nzg0ODE4YWMzZmQwNGEyZGI0YTljNwBTY3JpcHRS
ZXN1bHRzAENvbnN0cwBUcnVzdEFsbENlcnRpZmljYXRlUG9saWN5AE1pY3Jvc29mdC5WaXN1YWxC
YXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQu
VmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29t
cHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVj
dFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZp
Y2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2Vz
AEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3Rh
bmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0Nv
bnRleHQAR2V0SW5zdGFuY2UATWljcm9zb2Z0LlNxbFNlcnZlci5TY3JpcHRUYXNrAE1pY3Jvc29m
dC5TcWxTZXJ2ZXIuRHRzLlRhc2tzLlNjcmlwdFRhc2sAVlNUQVJUU2NyaXB0T2JqZWN0TW9kZWxC
YXNlAE1haW4AZ2V0X0Z0cFVybABzZXRfRnRwVXJsAHZhbHVlAGdldF9Vc2VybmFtZQBzZXRfVXNl
cm5hbWUAZ2V0X1Bhc3N3b3JkAHNldF9QYXNzd29yZABnZXRfQWN0aW9uAHNldF9BY3Rpb24AZ2V0
X0xvY2FsAHNldF9Mb2NhbABnZXRfUmVtb3RlAHNldF9SZW1vdGUAZ2V0X1JlbmFtZVRvAHNldF9S
ZW5hbWVUbwBHZXRBY3Rpb25UeXBlcwBHZXRQcm9wZXJ0aWVzAFZhbGlkYXRlAGVyck1lc3NhZ2UA
U3lzdGVtLk5ldABGdHBXZWJSZXF1ZXN0AFNldHVwUmVxdWVzdF8AcmVxdWVzdABTeXN0ZW0uSU8A
U3RyZWFtAFRyYW5zZmVyRmlsZV8AaW5wdXQAb3V0cHV0AEdldFJlbW90ZV8AbV9mdHBVcmwAbV91
c2VyTmFtZQBtX3Bhc3N3b3JkAG1fYWN0aW9uAG1fbG9jYWwAbV9yZW1vdGUARnRwVXJsAFVzZXJu
YW1lAFBhc3N3b3JkAEFjdGlvbgBMb2NhbABSZW1vdGUAUmVuYW1lVG8ARW51bQB2YWx1ZV9fAFN1
Y2Nlc3MARmFpbHVyZQBBY3Rpb25VcGxvYWQAQWN0aW9uRG93bmxvYWQAQWN0aW9uTWtEaXIAQWN0
aW9uUm1EaXIAQWN0aW9uRGVsZXRlAEFjdGlvblJlbmFtZQBBY3Rpb25UeXBlcwBJQ2VydGlmaWNh
dGVQb2xpY3kAU2VydmljZVBvaW50AFN5c3RlbS5TZWN1cml0eS5DcnlwdG9ncmFwaHkuWDUwOUNl
cnRpZmljYXRlcwBYNTA5Q2VydGlmaWNhdGUAV2ViUmVxdWVzdABDaGVja1ZhbGlkYXRpb25SZXN1
bHQAc3J2UG9pbnQAY2VydGlmaWNhdGUAY2VydGlmaWNhdGVQcm9ibGVtAFN5c3RlbS5Db21wb25l
bnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lz
dGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25v
c3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBp
bGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1
dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0
ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVl
AFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0
YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1ZhbHVlAFN5c3Rl
bS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAEZ0cFdlYlJlc3Bv
bnNlAEV4Y2VwdGlvbgBTZXJ2aWNlUG9pbnRNYW5hZ2VyAHNldF9DZXJ0aWZpY2F0ZVBvbGljeQBP
cGVyYXRvcnMAQ29tcGFyZVN0cmluZwBDcmVhdGUAc2V0X01ldGhvZABGaWxlU3RyZWFtAEZpbGVN
b2RlAEZpbGVBY2Nlc3MAR2V0UmVxdWVzdFN0cmVhbQBDbG9zZQBXZWJSZXNwb25zZQBHZXRSZXNw
b25zZQBHZXRSZXNwb25zZVN0cmVhbQBGaWxlAEV4aXN0cwBGaWxlSW5mbwBnZXRfTGVuZ3RoAHNl
dF9Db250ZW50T2Zmc2V0AEFyZ3VtZW50RXhjZXB0aW9uAFNjcmlwdE9iamVjdE1vZGVsAGdldF9E
dHMARXZlbnRzT2JqZWN0V3JhcHBlcgBnZXRfRXZlbnRzAFN0cmluZwBFbXB0eQBnZXRfU3RhdHVz
RGVzY3JpcHRpb24ARmlyZUluZm9ybWF0aW9uAFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBn
ZXRfTWVzc2FnZQBGaXJlRXJyb3IAQ2xlYXJQcm9qZWN0RXJyb3IAc2V0X1Rhc2tSZXN1bHQAU3lz
dGVtLkNvbGxlY3Rpb25zAEFycmF5TGlzdABBZGQAQXJyYXkAVG9BcnJheQBJc051bGxPckVtcHR5
AHNldF9FbmFibGVTc2wAc2V0X1VzZUJpbmFyeQBOZXR3b3JrQ3JlZGVudGlhbABJQ3JlZGVudGlh
bHMAc2V0X0NyZWRlbnRpYWxzAEJ5dGUAUmVhZABXcml0ZQBTdHJpbmdzAFJpZ2h0AENvbmNhdABD
TFNDb21wbGlhbnRBdHRyaWJ1dGUAU1NJU1NjcmlwdFRhc2tFbnRyeVBvaW50QXR0cmlidXRlAENv
enlSb2MuU1NJU1BsdXMuMjAxMgBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFs
aWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAEZpbHRlclByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFBy
b3BlcnRpZXNBdHRyaWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUAQ2F0ZWdvcnlBdHRyaWJ1dGUA
UGFzc3dvcmRQcm9wZXJ0eVRleHRBdHRyaWJ1dGUAU3lzdGVtLkRlc2lnbgBTeXN0ZW0uRHJhd2lu
ZwBFZGl0b3JBdHRyaWJ1dGUARGVmYXVsdFZhbHVlQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVz
QXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzAExpc3RBdHRyaWJ1dGUAQ29tcGlsYXRpb25SZWxh
eGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0ZW0uUnVu
dGltZS5WZXJzaW9uaW5nAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBTY3JpcHRUYXNrX2QxZmIw
M2UxMDQ3ODQ4MThhYzNmZDA0YTJkYjRhOWM3LmRsbAAAABdVAHAAbABvAGEAZAAgAGYAaQBsAGUA
AAlTAFQATwBSAAAbRABvAHcAbgBsAG8AYQBkACAAZgBpAGwAZQAACVIARQBUAFIAAC9DAHIAZQBh
AHQAZQAgAHIAZQBtAG8AdABlACAAZABpAHIAZQBjAHQAbwByAHkAAAdNAEsARAAAL1IAZQBtAG8A
dgBlACAAcgBlAG0AbwB0AGUAIABkAGkAcgBlAGMAdABvAHIAeQAAB1IATQBEAAAlUgBlAG0AbwB2
AGUAIAByAGUAbQBvAHQAZQAgAGYAaQBsAGUAAAlEAEUATABFAAAlUgBlAG4AYQBtAGUAIAByAGUA
bQBvAHQAZQAgAGYAaQBsAGUAAC1VAG4AaABhAG4AZABsAGUAZAAgAGEAYwB0AGkAbwBuACAAdAB5
AHAAZQAuAAANRgB0AHAAVQByAGwAABFVAHMAZQByAG4AYQBtAGUAABFQAGEAcwBzAHcAbwByAGQA
AA1BAGMAdABpAG8AbgAAC0wAbwBjAGEAbAAADVIAZQBtAG8AdABlAAARUgBlAG4AYQBtAGUAVABv
AAArVQBuAGgAYQBuAGQAbABlAGQAIABhAGMAdABpAG8AbgAgAHQAeQBwAGUAADFQAGwAZQBhAHMA
ZQAgAHMAcABlAGMAaQBmAHkAIABGAFQAUABTACAAVQBSAEwALgAAM1AAbABlAGEAcwBlACAAcwBw
AGUAYwBpAGYAeQAgAHUAcwBlAHIAIABuAGEAbQBlAC4AADdQAGwAZQBhAHMAZQAgAHMAcABlAGMA
aQBmAHkAIAB0AGEAcwBrACAAYQBjAHQAaQBvAG4ALgAAP1AAbABlAGEAcwBlACAAcwBwAGUAYwBp
AGYAeQAgAGwAbwBjAGEAbAAgAHAAYQByAGEAbQBlAHQAZQByAC4AAEFQAGwAZQBhAHMAZQAgAHMA
cABlAGMAaQBmAHkAIAByAGUAbQBvAHQAZQAgAHAAYQByAGEAbQBlAHQAZQByAC4AAAMvAAAAAACS
faQlzV0JRrR9Bn5HvPxmAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQA
ABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIU
BCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAAT
AAiJhF3NgIDMkQQgAQEOBCAAHRwEIAAdDgUgAQIQDgUgAQESIQcgAgESJRIlAgYOAygADgIGCAMG
ESAEAAAAAAQBAAAAFlUAcABsAG8AYQBkACAAZgBpAGwAZQAaRABvAHcAbgBsAG8AYQBkACAAZgBp
AGwAZQAuQwByAGUAYQB0AGUAIAByAGUAbQBvAHQAZQAgAGQAaQByAGUAYwB0AG8AcgB5AC5SAGUA
bQBvAHYAZQAgAHIAZQBtAG8AdABlACAAZABpAHIAZQBjAHQAbwByAHkAJFIAZQBtAG8AdgBlACAA
cgBlAG0AbwB0AGUAIABmAGkAbABlACRSAGUAbgBhAG0AZQAgAHIAZQBtAG8AdABlACAAZgBpAGwA
ZQADBh0cCiAEAhIxEjUSOQgFIAEBEUEIAQABAAAAAAAFIAIBDg4YAQAKTXlUZW1wbGF0ZQgxMC4w
LjAuMAAABhUSGAESDAYVEhgBEggGFRIYARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUDAEA
B015LlVzZXIAABMBAA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0aW9uAAAQAQALTXku
Q29tcHV0ZXIAAAQAARwcAwcBAgMHAQgGAAESFRFdBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcg
BAEODg4OYQEANFN5c3RlbS5XZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJv
dG9jb2wSQ3JlYXRlX19JbnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUS
GQETAAQKARMABSABARMACAcDEwATABMABCABAQIFAQAAAAAFAAEBEi0GAAMIDg4CBQABEjkOCiAD
AQ4RgIERgIUEIAASJQUgABKAiQQAAQIOAyAACgQgAQEKBSAAEoCZBSAAEoCdCiAGAQgODg4IEAIF
AAEBEnEIIAUCCA4ODggEIAEBCA8HCAISJRIlEiESbQgScQ4EBwEdHAQgAQgcByABEoCtEhUCHQ4I
BwMdDhKAqQ4EBwICAgYgAQESgLUHIAMIHQUICAcgAwEdBQgIBQcCHQUIBQACDg4IBQACDg4OBAcC
Dg4IFs9JC7gMNOoNAQAIVmFsaWRhdGUAABIBAA1HZXRQcm9wZXJ0aWVzAAAFIAEBHQ4+AQAHAAAA
BkZ0cFVybAhVc2VybmFtZQhQYXNzd29yZAZBY3Rpb24FTG9jYWwGUmVtb3RlCFJlbmFtZVRvAAAi
AQAdU3BlY2lmaWVzIG5ldyBuYW1lIG9mIHJlbW90ZS4AAA0BAAhTZXR0aW5ncwAAIgEAHVNwZWNp
ZmllcyBVUkwgb2YgRlRQUyBzZXJ2ZXIuAAAPAQAKQ29ubmVjdGlvbgAANwEAMlNwZWNpZmllcyB1
c2VyIG5hbWUgZm9yIGNvbm5lY3Rpb24gdG8gRlRQUyBzZXJ2ZXIuAAAFAQABAAA2AQAxU3BlY2lm
aWVzIHBhc3N3b3JkIGZvciBjb25uZWN0aW9uIHRvIEZUUFMgc2VydmVyLgAAByACARIVEhWA9wEA
fFN5c3RlbS5XaW5kb3dzLkZvcm1zLkRlc2lnbi5GaWxlTmFtZUVkaXRvciwgU3lzdGVtLkRlc2ln
biwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1
ZjdmMTFkNTBhM2F1U3lzdGVtLkRyYXdpbmcuRGVzaWduLlVJVHlwZUVkaXRvciwgU3lzdGVtLkRy
YXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1i
MDNmNWY3ZjExZDUwYTNhAAAjAQAeU3BlY2lmaWVzIHRoZSBsb2NhbCBwYXJhbWV0ZXIuAAAQAQAL
VXBsb2FkIGZpbGUAAAYgAQERgO0TAQAOR2V0QWN0aW9uVHlwZXMAADEBACxTcGVjaWZpZXMgdGhl
IGFjdGlvbiB0aGF0IHRoZSB0YXNrIHBlcmZvcm1zLgAAJAEAH1NwZWNpZmllcyB0aGUgcmVtb3Rl
IHBhcmFtZXRlci4AAAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwFHAQAa
Lk5FVEZyYW1ld29yayxWZXJzaW9uPXY0LjABAFQOFEZyYW1ld29ya0Rpc3BsYXlOYW1lEC5ORVQg
RnJhbWV3b3JrIDQAAAAUTAAAAAAAAAAAAAAuTAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEwA
AAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACA
AAAAAAAAAAAAAAAAAAABAAEAAAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWGAAANQCAAAA
AAAAAAAAANQCNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAA
AAAAAAAAAAAAAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBp
AGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsAQ0AgAA
AQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAAAQAgAAAQAwADAAMAAwADAANABiADAAAAAs
AAIAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAIAAAADAACAABAEYAaQBsAGUA
VgBlAHIAcwBpAG8AbgAAAAAAMAAuADAALgAwAC4AMAAAAIAAMAABAEkAbgB0AGUAcgBuAGEAbABO
AGEAbQBlAAAAUwBjAHIAaQBwAHQAVABhAHMAawBfAGQAMQBmAGIAMAAzAGUAMQAwADQANwA4ADQA
OAAxADgAYQBjADMAZgBkADAANABhADIAZABiADQAYQA5AGMANwAuAGQAbABsAAAAKAACAAEATABl
AGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAIAAAAIgAMAABAE8AcgBpAGcAaQBuAGEAbABGAGkA
bABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABUAGEAcwBrAF8AZAAxAGYAYgAwADMAZQAxADAANAA3
ADgANAA4ADEAOABhAGMAMwBmAGQAMAA0AGEAMgBkAGIANABhADkAYwA3AC4AZABsAGwAAAA0AAgA
AQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAwAC4AMAAuADAALgAwAAAAOAAIAAEAQQBz
AHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADAALgAwAC4AMAAuADAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAMAAAAQDwAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</BinaryItem>
</ScriptProject>