<?xml version="1.0"?>
<ScriptProject Name="ST_c2cc1cdd148348998c69d8f98ae0552f" VSTAMajorVersion="3" VSTAMinorVersion="0" Language="VisualBasic">
  <ProjectItem Name="st_c2cc1cdd148348998c69d8f98ae0552f.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">
  <!-- 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>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ST_c2cc1cdd148348998c69d8f98ae0552f.vbproj</RootNamespace>
    <AssemblyName>ST_c2cc1cdd148348998c69d8f98ae0552f.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{B365E04E-9AEC-4E70-B110-E529951FD91D}</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,42353,42354,42355</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,42353,42354,42355</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.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" />
  </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="{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;vstadebug00d554ed-3115-45a9-b96c-c1743e5d2868/717ce4af-40da-4ff8-8f80-afbbd799e3cc&quot;" />
        <Host Name="SSIS_ScriptTask" />
        <ProjectClient>
          <HostIdentifier>SSIS_ST110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <PropertyGroup>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
</Project>]]></ProjectItem>
  <ProjectItem Name="My Project\AssemblyInfo.vb" Encoding="UTF8">
<![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("ST_c2cc1cdd148348998c69d8f98ae0552f.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ST_c2cc1cdd148348998c69d8f98ae0552f.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2013")> 
<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("5017b36d-68ef-4b13-bcc0-eb71ac970f5e")> 

' 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>
  <ProjectItem Name="My Project\Settings.settings" Encoding="UTF8">
<![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\Settings.Designer.vb" Encoding="UTF8">
<![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="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:Language>msBuild</msb:Language>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{20A78038-5D01-4491-8DCB-6F10BE8D8210}</msb:ProjectId>
		<msb:DisplayName>st_c2cc1cdd148348998c69d8f98ae0552f</msb:DisplayName>
		<msb:CodeName>st_c2cc1cdd148348998c69d8f98ae0552f</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:Project Include="st_c2cc1cdd148348998c69d8f98ae0552f.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></ProjectItem>
  <ProjectItem Name="My Project\Resources.resx" Encoding="UTF8">
<![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="ScriptMain.vb" Encoding="UTF8">
<![CDATA[' Microsoft SQL Server Integration Services Script Task
'
' Copyright (c) 2006-2013 COZYROC LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Xml
Imports System.Xml.Serialization
Imports System.Data
Imports System.Data.OleDb

Imports Microsoft.SqlServer.Dts.Runtime
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute> _
<System.CLSCompliantAttribute(False)> _
<SortProperties(New String() {"PackageConnection", "ConfigurationEnvironment", "ConfigurationWorksheet"})> _
<ValidateProperties("Validate")> _
Partial Public Class ScriptMain
    Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Class Consts
        Public Const ExcelAdoConnectString_1P As String = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source={0};"
    End Class   ' Consts


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Enum ScriptResults
        Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
        Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
    End Enum    ' ScriptResults


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' The execution engine calls this method when the task executes.
    ' To access the object model, use the Dts property. Connections, variables, events,
    ' and logging features are available as members of the Dts property as shown in the following examples.
    '
    ' To reference a variable, call Dts.Variables("MyCaseSensitiveVariableName").Value
    ' To post a log entry, call Dts.Log("This is my log text", 999, Nothing)
    ' To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, True)
    '
    ' To use the connections collection use something like the following:
    ' ConnectionManager cm = Dts.Connections.Add("OLEDB")
    ' cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;"
    '
    ' Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.
    ' 
    ' To open Help, press F1.
    Public Sub Main()
        Dim result As Integer = ScriptResults.Success

        Try
            Call SetupConfiguration_()
        Catch ex As Exception
            result = ScriptResults.Failure
            Call Dts.Events.FireError(0, "Package Configuration Task", ex.Message, String.Empty, 0)
        End Try

        Dts.TaskResult = result
        '
        ' Add your code here
        '
        Dts.TaskResult = ScriptResults.Success
    End Sub ' Main


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean

        Try
            If String.IsNullOrEmpty(Me.PackageConnection) Then
                Throw New ApplicationException("Select Package connection.")
            End If

            If String.IsNullOrEmpty(Me.ConfigurationEnvironment) Then
                Throw New ApplicationException("Select configuration environment variable.")
            End If

            If String.IsNullOrEmpty(Me.ConfigurationWorksheet) Then
                Throw New ApplicationException("Select configuration worksheet.")
            End If

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns a list of environment variables.
    Public Function GetVariables() As Object()
        Dim keys As ICollection
        Dim result() As Object

        keys = System.Environment.GetEnvironmentVariables().Keys
        result = New Object(keys.Count - 1) {}
        Call keys.CopyTo(result, 0)

        GetVariables = result
    End Function    ' GetVariables


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns a list of Excel worksheets.
    Public Function GetWorksheets() As Object()
        Dim result() As Object
        Dim conn As OleDbConnection = Nothing

        Try
            conn = GetXlsConnection_()
            Dim xlsSchema As DataTable = conn.GetOleDbSchemaTable( _
                OleDbSchemaGuid.Tables, _
                New Object() {Nothing, Nothing, Nothing, "TABLE"})
            Dim sheetsCount As Integer = xlsSchema.Rows.Count
            result = New Object(sheetsCount - 1) {}
            For sheet As Integer = 0 To sheetsCount - 1
                Dim sheetName As String = xlsSchema.Rows(sheet).Item("Table_Name").ToString()
                result(sheet) = sheetName.Substring(0, sheetName.Length - 1)    ' Remove $ at the end of name.
            Next
        Catch ex As Exception
            result = Nothing
            Call MsgBox(ex.Message)
        Finally
            If Not conn Is Nothing Then
                conn.Close()
            End If
        End Try

        GetWorksheets = result
    End Function    ' GetWorksheets


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Connection("PackageConnectionType")> _
    <Description("Specifies the name of the Package connection manager.")> _
    Public Property PackageConnection() As String
        Get
            PackageConnection = m_packageConnection
        End Get
        Set(ByVal value As String)
            m_packageConnection = value
        End Set
    End Property    ' PackageConnection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <List("GetVariables")> _
    <Description("Specifies environment variable containing Excel configuration file path.")> _
    Public Property ConfigurationEnvironment() As String
        Get
            ConfigurationEnvironment = m_configEnv
        End Get
        Set(ByVal value As String)
            m_configEnv = value
        End Set
    End Property    ' ConfigurationEnvironment


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <List("GetWorksheets")> _
    <Description("Specifies Excel worksheet containing configuration information.")> _
    Public Property ConfigurationWorksheet() As String
        Get
            ConfigurationWorksheet = m_configSheet
        End Get
        Set(ByVal value As String)
            m_configSheet = value
        End Set
    End Property    ' ConfigurationWorksheet
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property PackageConnectionType() As String
        Get
            PackageConnectionType = "PACKAGE"
        End Get
    End Property    ' PackageConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns OLEDB connection to specified Excel file in environment variable.
    Private Function GetXlsConnection_() As OleDbConnection
        Dim result As OleDbConnection

        If String.IsNullOrEmpty(Me.ConfigurationEnvironment) Then
            Throw New Exception("Select configuration environment variable.")
        End If

        ' Setup connection.
        result = New OleDbConnection()
        result.ConnectionString = String.Format( _
            Consts.ExcelAdoConnectString_1P, _
            System.Environment.GetEnvironmentVariable(Me.ConfigurationEnvironment))
        Call result.Open()

        GetXlsConnection_ = result
    End Function    ' GetXlsConnection_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub SetupConfiguration_()
        Dim conn As OleDbConnection = Nothing
        Dim reader As OleDbDataReader = Nothing

        ' Get package.
        Dim packageConn As IPackageConnection = CType(Dts.Connections( _
            Me.PackageConnection).AcquireConnection(Nothing),  _
            IPackageConnection)
        Dim package As Package = CType(packageConn.GetPackage(), Package)

        Try
            ' Open DataReader to load configuration information.
            conn = GetXlsConnection_()
            Dim cmd As OleDbCommand = New OleDbCommand()
            cmd.Connection = conn
            cmd.CommandText = String.Format("SELECT * FROM [{0}$]", Me.ConfigurationWorksheet)
            reader = cmd.ExecuteReader()

            While reader.Read
                Dim path As String = reader.GetString(0)
                Dim value As String = reader.GetString(1)

                ' Set value from configuration.
                Dim prop As DtsProperty = Nothing
                Dim objectFromPath As Object = package.GetObjectFromPackagePath(path, prop)
                Call prop.SetValue(objectFromPath, value)
            End While
        Finally
            If Not reader Is Nothing Then
                Call reader.Close()
            End If
            If Not conn Is Nothing Then
                Call conn.Close()
            End If
        End Try
    End Sub ' SetupConfiguration_
#End Region ' Internals


#Region "Attributes"
    Private m_packageConnection As String
    Private m_configEnv As String
    Private m_configSheet As String
#End Region ' Attributes

End Class   ' ScriptMain]]></ProjectItem>
  <ProjectItem Name="My Project\Resources.Designer.vb" Encoding="UTF8">
<![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>
  <BinaryItem Name="ST_c2cc1cdd148348998c69d8f98ae0552f.vbproj.dll">TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAPXv2VEAAAAAAAAAAOAAAiELAQgAACwAAAAIAAAAAAAAnkoA
AAAgAAAAYAAAAABAAAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAExKAABPAAAAAGAAAGAEAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAApCoAAAAgAAAALAAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAAGAEAAAAYAAAAAYAAAAuAAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAANAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAACA
SgAAAAAAAEgAAAACAAUAPCcAABAjAAABAAAAAAAAAIQmAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4CKAEAAAoqHgIoBAAACiqmcwYAAAqAAQAABHMHAAAKgAIA
AARzCAAACoADAAAEcwkAAAqABAAABCoAABMwAQALAAAAAQAAEX4BAAAEbwoAAAoqABMwAQALAAAA
AgAAEX4CAAAEbwsAAAoqABMwAQALAAAAAwAAEX4DAAAEbwwAAAoqABMwAQALAAAABAAAEX4EAAAE
bw0AAAoqABMwAgANAAAABQAAEQIDKBEAAAooEgAACioAAAATMAEABwAAAAYAABECKBMAAAoqABMw
AQALAAAABwAAEdAFAAACKBQAAAoqABMwAQAHAAAACAAAEQIoFQAACioAEzABABAAAAAJAAARAowB
AAAbLQYoAQAAKyoCKhMwAgAQAAAACgAAEQMSAP4VAgAAGwaBAgAAGyoeAigXAAAKKhMwAgAoAAAA
CwAAEQJ7GQAACm8aAAAKCweMAwAAGy0SKAIAACsLAnsZAAAKB28bAAAKBypKAigXAAAKAnMcAAAK
fRkAAAoqAB4CKBcAAAoqEzACAC0AAAAMAAARfgYAAAQtIHIBAABw0AcAAAIoFAAACm8eAAAKcx8A
AAoLB4AGAAAEfgYAAAQqAAAAEzABAAYAAAANAAARfgcAAAQqAAAeAoAHAAAEKkJzFwAACigRAAAK
gAkAAAQqAAAAHgIoIAAACiobMAEAPwAAAA4AABF+CAAABC0yfgkAAAQoEQAACighAAAKfggAAAQt
HHMWAAAGgAgAAATeEH4JAAAEKBEAAAooIgAACtx+CAAABCoAARAAAAIAHQAMKQAQAAAAAR4CKCQA
AAoqGzAGAFYAAAAPAAARFgoCbyUAAAbeMyUoJQAACgsXCgJvJgAACm8nAAAKFnIzAABwB28oAAAK
fikAAAoWbyoAAAomKCsAAAreAAJvJgAACgZvLAAACgJvJgAAChZvLAAACioAAAEQAAAAAAIACAoA
MxwAAAEbMAIAaAAAABAAABECbx0AAAYoLQAACiwLcmkAAHBzLgAACnoCbx8AAAYoLQAACiwLcp8A
AHBzLgAACnoCbyEAAAYoLQAACiwLcvUAAHBzLgAACnoXCt4YJSglAAAKDBYKAwhvKAAAClEoKwAA
Ct4ABgsHKgEQAAAAAAAATEwAGBwAAAETMAMAJwAAABEAABEoLwAACm8wAAAKCwdvMQAAChfaF9aN
AwAAAQwHCBZvMgAACggKBioAGzAGAMoAAAASAAARFAoCbyQAAAYKBn4zAAAKGo0DAAABEwgRCBYU
ohEIFxSiEQgYFKIRCBlyNQEAcKIRCG80AAAKEwQRBG81AAAKbzYAAAoNCRfaF9aNAwAAAQwWCRfa
EwkTBSs6EQRvNQAAChEFbzcAAApyQQEAcG84AAAKbxUAAAoTBggRBREGFhEGbzkAAAoX2m86AAAK
ohEFF9YTBREFEQkxwN4qJSglAAAKEwcUDBEHbygAAAoWFCg7AAAKJigrAAAK3goGLAYGbzwAAArc
CAsHKgAAARwAAAAAAgCanAAgHAAAAQIAAgC6vAAKAAAAARMwAQAJAAAAEwAAEQJ7CgAABAoGKgAA
ACICA30KAAAEKgAAABMwAQAJAAAAFAAAEQJ7CwAABAoGKgAAACICA30LAAAEKgAAABMwAQAJAAAA
FQAAEQJ7DAAABAoGKgAAACICA30MAAAEKgAAABMwAQAIAAAAFgAAEXJXAQBwCgYqEzADAEMAAAAX
AAARAm8fAAAGKC0AAAosC3KfAABwcz0AAAp6cz4AAAoLB3JnAQBwAm8fAAAGKD8AAAooQAAACm9B
AAAKB29CAAAKBwoGKgAbMAMAvQAAABgAABEUChQNAm8mAAAKb0MAAAoCbx0AAAZvRAAAChRvRQAA
CnQvAAABDAhvRgAACnQuAAABCwJvJAAABgpzRwAAChMEEQQGb0gAAAoRBHIIAgBwAm8hAAAGKEAA
AApvSQAAChEEb0oAAAoNKzYJFm9LAAAKEwYJF29LAAAKEwgUEwcHEQYSB29MAAAKKBEAAAoTBREH
EQUoEQAAChEIb00AAAoJb04AAAotwt4TCSwGCW9PAAAKBiwGBm88AAAK3CoAAAABEAAAAgAyAHep
ABMAAAABHgIoFwAACiq0AAAAzsrvvgEAAACRAAAAbFN5c3RlbS5SZXNvdXJjZXMuUmVzb3VyY2VS
ZWFkZXIsIG1zY29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGlj
S2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSNTeXN0ZW0uUmVzb3VyY2VzLlJ1bnRpbWVSZXNvdXJj
ZVNldAIAAAAAAAAAAAAAAFBBRFBBRFC0AAAAQlNKQgEAAQAAAAAADAAAAHY0LjAuMzAzMTkAAAAA
BQBsAAAAAAsAACN+AABsCwAArA4AACNTdHJpbmdzAAAAABgaAAA0AgAAI1VTAEwcAAAQAAAAI0dV
SUQAAABcHAAAtAYAACNCbG9iAAAAAAAAAAIAAAFXHaIJCQ8AAAD6JTMAFgAAAQAAAEYAAAALAAAA
EAAAACYAAAAIAAAAYQAAAAMAAAA+AAAAGAAAAAUAAAAMAAAAEAAAAAkAAAABAAAABwAAAAEAAAAE
AAAAAwAAAAIAAAAAAHoOAQAAAAAACgBnAT0BCgCbAX0BBgCrAaQBCgADAj0BBgCBAqQBCgADA9kC
BgA5AygDBgBmA1EDDgDNA7gDEgBMBCMEFgB2BWQFBgBLBqQBDgB+BmgGDgCXBmgGDgDEBqwGBgDu
BtsGCgAtBwYHCgBFBxMADgB6B10HBgCvB48HBgDNB6QBBgDxB6QBCgAKCBMABgBOCC8IBgB0CGII
BgCbCIoIBgCuCNsGBgDLCKQBCgDVCAYHEgDxCCMEEgALCSMEBgA2CaQBBgB8CaQBBgCkCZEJBgCw
CaQBBgC8CZEJBgDzCaQBFgAAClgFFgAKCmQFBgAaCqQBFgA6ClgFFgBVClgFCgB7ChMACgCHChMA
CgCUChMAGgAkCwQLHgBZC0ILFgBsC2QFFgB8C2QFGgCJCwQLGgCVCwQLGgCxCwQLHgBgDD4MHgB8
DD4MBgCUDKQBEgCqDCMEDgDMDGgGHgDhDD4MHgD1DD4MBgBCDY8HBgBiDY8HBgCaDYANBgCzDWII
BgDQDS8IBgDeDWIIBgD5DWIIBgAUDmIIBgAtDmIIBgBGDmIIBgBjDmIIAAAAAAEAAAAAAAEAAQAA
AAAAKQA3AAUAAQABAAAAAABlADcACQABAAIAAAEQAHAANwANAAEAAwAFAQAAegAAAA0ABQAIAAUB
AACIAAAADQAFAA8AAAAAAKMArwANAAYAEQAAARAA5wDyACUACAAVAAEAAAAdAfIAKQAKABgAAwAA
ACgBAAANAA0AJgACAQAALwEAADEADgAnADEAxgEgADEA7wEtADEAEQI6ADEANgJHACEAEgOQABEA
SQOdABEAcgOhABEA5QO/ABEA7QPDAAEArAXuAAEAwAXuAAEAzAXuAFaAMgbuAAYGUAaVAVaAWAaY
AVaAYAaYAVAgAAAAAAYYdwETAAEAWCAAAAAABhh3ARMAAQBgIAAAAAARGLIBFwABAIwgAAAAABMI
uQEbAAEApCAAAAAAEwjfASgAAQC8IAAAAAATCAgCNQABANQgAAAAABMIJgJCAAEA7CAAAAAARgJs
AmMAAQAIIQAAAABGAnUCaAACABwhAAAAAIMAhgJsAAIANCEAAAAARgKOAnEAAgBIIQAAAAARAJcC
eAACAGQhAAAAAAEAtQKAAAMAgCEAAAAABhh3ARMABACIIQAAAAADCMkCiwAEALwhAAAAAAYYdwET
AAQA0CEAAAAAAxh3ARMABADYIQAAAAAWCH4DpQAEABQiAAAAABYIkgOqAAQAKCIAAAAAFgieA68A
BAAwIgAAAAARGLIBFwAFAEQiAAAAAAYYdwETAAUATCIAAAAAFgj6A8YABQCoIgAAAAAGGHcBEwAF
ALAiAAAAAAYAaAQTAAUAJCMAAAAABgBtBNkABQCoIwAAAAAGAIEE3wAGANwjAAAAAAYAjgTfAAYA
0CQAAAAABgicBHEABgDoJAAAAAAGCLIE5AAGAPQkAAAAAAYIzgRxAAcADCUAAAAABgjrBOQABwAY
JQAAAAAGCAgFcQAIADAlAAAAAAYIIwXkAAgAPCUAAAAAAQg+BXEACQBQJQAAAAABAIYF6QAJAKAl
AAAAAAEAmAUTAAkAfCYAAAAABhh3ARMACQAAAAEAcwIAAAEArAIAAAEArAIAAAEAqgMAAAEAdgQA
AAEAyAQAAAEAyAQAAAEAyAQJAHcBEwBpAHcBpgF5AHcBtQERAHcBEwCBAHcBEwAkAHcBEwAsAHcB
EwA0AHcBEwA8AHcBEwAkAMkCiwAsAMkCiwA0AMkCiwA8AMkCiwCJAHcBEwCRAHcBEwCZAHcB5ACh
AL4HSgIZAGwCYwAZAHUCaAApAN8HVwIZAI4CcQCxAPsHZwIZAHcBEwC5AHcBdwJEABIDkABMAPoD
iwBMACUI9AJMAHcBEwDBAHcBAwMpAH0IDgM5AHcBEwNJAHcBEwDRAKMILwPRAKkILwPZAHcBEwBR
AHcBEwDpAOEIOQNRAAMJPwPxAB8JRAPhACoJcQABAT0J7gD5AEMJSQPpAE0JFwDxAF8JUgMBAW4J
XQMJAXcB5AAZAcgJaQMhAeAJbwMRAekJaAARAfkJdQM5AR8KhwNZACYKjAMxAUwKlwNJAekJaABJ
AV0KnQNRAV0KpAMBAWYKaAABAXEKqQNZAaAKrwNZAKcKEwDhAHcB5ABZAHcBEwAZAa0KzgMBAcQK
0wNZAMsK5ABZAOAKEwDxAKEL6QOZAV0K7wOhAcML9gN5AdUL+wOJAXcBEwCJAeAL/wOJAe8L5ACJ
Af8LBQSBAQ0MCwRxARcMEASRATAMGQSBATkMHwSBAacKEwCpAXcB5ACxAXcBSAS5AXcBAwPBAXcB
EwDJAXcB5ADRAXcB5ADZAXcB5ADhAXcBUgPpAXcBEwDxAXcB5AD5AXcB5AABAncB5AAJAncB5AAR
AncB5AAZAncB5AAhAncB5AApAncB5AAxAncB5AAOADQA9QAIADwAnAEIAEAAoQEpAIMAGAIuAAMD
CAMuANMCFwYuANsCJAYuAPsCpAYuALsCpwUuAMMCsAUuAMsCzwUuAAsDdAYuAOsACAMuAJMCTgYu
AOMCCAMuAOsCVAYuAPMCdAZAABMArAFAACsAoQFDABMArAFDABsAuwFJAIMAKQJjABMArAFjABsA
uwFpAIMAPQKAACsAoQGDAHsAoQGDAHMAoQGDABsAuwGJAIMABAKgACsAoQGjAMMAfwKjABMArAHA
ACsAoQHDAOsACAPDABMArAHJABMAJgPgACsAoQHpABMAJgMAARMArAEAASsAoQEJARsBoQEgASsA
oQEgARMArAEjAZMCCAMjAYsCTgQjAYMCOgQjAZsCoQEpAaMCmQQpAasC1ARAARMArAFAASsAoQFJ
AbMCPQVJAaMC7wRgASsAoQFgARMArAFpAbMClAVpAaMCTwWAASsAoQGgASsAoQHAARMArAHAASsA
oQHgASsAoQEAAisAoQEAAhMArAHwAfUB+gH/AU8CUwJeAmMCcgJyAvoCGgMhAzQDVwNiA30DugNj
AmMCYwJjAtkDIwQEAAEABgAFAAcABgAIAAgACQAJAAAAmwFPAAAAVAJUAAAAAwJZAAAAYAJeAAAA
HAOYAAAAOQO1AAAAsAO6AAAAqgPLAAAA2gXxAAAA7AXxAAAABQbxAAAAHAbxAAIABAADAAIABQAF
AAIABgAHAAIABwAJAAIADwALAAIAEgANAAEAFAAPAAIAEwAPAAIAFwARAAIAHQATAAEAHgATAAIA
HwAVAAEAIAAVAAIAIQAXAAEAIgAXAAIAIwAZAHUAdQCIANQB2wHiAekB4QLoAgSAAAABAAAAAAAA
AAAAAAAAAPIAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoAEwAAAAAABAAAAAAA
AAAAAAAAAQCkAQAAAAALAAAAAAAAAAAAAADQAAQEAAAAAAQAAAAAAAAAAAAAAAEAWAUAAAAACwAA
AAAAAAAAAAAA0ADlCgAAAAABAAAAAAAAAAAAAADgAywLAAAAAAAAAAABAAAAAw0AAAUABAAGAAQA
CgAJAAsACQAAABAADACqAgAAEAAZAKoCAAAAABsAqgItAG0CLQDvAgAAAAAAPE1vZHVsZT4AbXNj
b3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24AU1RfYzJjYzFjZGQxNDgz
NDg5OThjNjlkOGY5OGFlMDU1MmYudmJwcm9qLk15AE15Q29tcHV0ZXIATXlQcm9qZWN0AE15V2Vi
U2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEATXlSZXNvdXJjZXMAU1RfYzJjYzFj
ZGQxNDgzNDg5OThjNjlkOGY5OGFlMDU1MmYudmJwcm9qLk15LlJlc291cmNlcwBNeVNldHRpbmdz
AFNUX2MyY2MxY2RkMTQ4MzQ4OTk4YzY5ZDhmOThhZTA1NTJmLnZicHJvagBTY3JpcHRNYWluAENv
bnN0cwBTY3JpcHRSZXN1bHRzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZp
Y2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBD
b21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVj
dFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1Vz
ZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09i
amVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2Rl
AFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNw
b3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlT
ZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAU3lz
dGVtLlJlc291cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlv
bgBDdWx0dXJlSW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJl
AHNldF9DdWx0dXJlAFZhbHVlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRp
b25TZXR0aW5nc0Jhc2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuU2NyaXB0VGFzawBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5UYXNrcy5TY3JpcHRU
YXNrAFZTVEFSVFNjcmlwdE9iamVjdE1vZGVsQmFzZQBNYWluAFZhbGlkYXRlAGVyck1lc3NhZ2UA
R2V0VmFyaWFibGVzAEdldFdvcmtzaGVldHMAZ2V0X1BhY2thZ2VDb25uZWN0aW9uAHNldF9QYWNr
YWdlQ29ubmVjdGlvbgB2YWx1ZQBnZXRfQ29uZmlndXJhdGlvbkVudmlyb25tZW50AHNldF9Db25m
aWd1cmF0aW9uRW52aXJvbm1lbnQAZ2V0X0NvbmZpZ3VyYXRpb25Xb3Jrc2hlZXQAc2V0X0NvbmZp
Z3VyYXRpb25Xb3Jrc2hlZXQAZ2V0X1BhY2thZ2VDb25uZWN0aW9uVHlwZQBTeXN0ZW0uRGF0YQBT
eXN0ZW0uRGF0YS5PbGVEYgBPbGVEYkNvbm5lY3Rpb24AR2V0WGxzQ29ubmVjdGlvbl8AU2V0dXBD
b25maWd1cmF0aW9uXwBtX3BhY2thZ2VDb25uZWN0aW9uAG1fY29uZmlnRW52AG1fY29uZmlnU2hl
ZXQAUGFja2FnZUNvbm5lY3Rpb24AQ29uZmlndXJhdGlvbkVudmlyb25tZW50AENvbmZpZ3VyYXRp
b25Xb3Jrc2hlZXQAUGFja2FnZUNvbm5lY3Rpb25UeXBlAEV4Y2VsQWRvQ29ubmVjdFN0cmluZ18x
UABFbnVtAHZhbHVlX18AU3VjY2VzcwBGYWlsdXJlAFN5c3RlbS5Db21wb25lbnRNb2RlbABFZGl0
b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVEb20u
Q29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVidWdn
ZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2VydmljZXMA
U3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVtLkNv
bXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5D
b21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVUeXBl
SGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdyb3Vw
Q29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZp
Y2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24AQXNzZW1ibHkAZ2V0X0Fz
c2VtYmx5AFN5c3RlbS5UaHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNl
ckNvZGVBdHRyaWJ1dGUARXhjZXB0aW9uAFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBTY3Jp
cHRPYmplY3RNb2RlbABnZXRfRHRzAEV2ZW50c09iamVjdFdyYXBwZXIAZ2V0X0V2ZW50cwBnZXRf
TWVzc2FnZQBTdHJpbmcARW1wdHkARmlyZUVycm9yAENsZWFyUHJvamVjdEVycm9yAHNldF9UYXNr
UmVzdWx0AElzTnVsbE9yRW1wdHkAQXBwbGljYXRpb25FeGNlcHRpb24AU3lzdGVtLkNvbGxlY3Rp
b25zAElDb2xsZWN0aW9uAEVudmlyb25tZW50AElEaWN0aW9uYXJ5AEdldEVudmlyb25tZW50VmFy
aWFibGVzAGdldF9LZXlzAGdldF9Db3VudABBcnJheQBDb3B5VG8ARGF0YVRhYmxlAE9sZURiU2No
ZW1hR3VpZABHdWlkAFRhYmxlcwBHZXRPbGVEYlNjaGVtYVRhYmxlAERhdGFSb3dDb2xsZWN0aW9u
AGdldF9Sb3dzAERhdGFSb3cAZ2V0X0l0ZW0AZ2V0X0xlbmd0aABTdWJzdHJpbmcASW50ZXJhY3Rp
b24ATXNnQm94UmVzdWx0AE1zZ0JveFN0eWxlAE1zZ0JveABDbG9zZQBHZXRFbnZpcm9ubWVudFZh
cmlhYmxlAEZvcm1hdABzZXRfQ29ubmVjdGlvblN0cmluZwBPcGVuAE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuTWFuYWdlZERUUwBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lAFBhY2thZ2UAQ296
eVJvYy5TU0lTUGx1cy4yMDEyAENvenlSb2MuU3FsU2VydmVyLlNTSVMASVBhY2thZ2VDb25uZWN0
aW9uAE9sZURiRGF0YVJlYWRlcgBPbGVEYkNvbW1hbmQARHRzUHJvcGVydHkAQ29ubmVjdGlvbnMA
Z2V0X0Nvbm5lY3Rpb25zAENvbm5lY3Rpb25NYW5hZ2VyAEFjcXVpcmVDb25uZWN0aW9uAEdldFBh
Y2thZ2UAc2V0X0Nvbm5lY3Rpb24Ac2V0X0NvbW1hbmRUZXh0AEV4ZWN1dGVSZWFkZXIAR2V0U3Ry
aW5nAEdldE9iamVjdEZyb21QYWNrYWdlUGF0aABTZXRWYWx1ZQBSZWFkAENvenlSb2MuU3FsU2Vy
dmVyLlNTSVMuQXR0cmlidXRlcwBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3Bl
cnRpZXNBdHRyaWJ1dGUAQ0xTQ29tcGxpYW50QXR0cmlidXRlAFNTSVNTY3JpcHRUYXNrRW50cnlQ
b2ludEF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAExp
c3RBdHRyaWJ1dGUAU1RfYzJjYzFjZGQxNDgzNDg5OThjNjlkOGY5OGFlMDU1MmYudmJwcm9qLlJl
c291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1l
Q29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAFRhcmdldEZy
YW1ld29ya0F0dHJpYnV0ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1
dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1dGUAQXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUA
QXNzZW1ibHlQcm9kdWN0QXR0cmlidXRlAEFzc2VtYmx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJs
eURlc2NyaXB0aW9uQXR0cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRyaWJ1dGUAU1RfYzJjYzFjZGQx
NDgzNDg5OThjNjlkOGY5OGFlMDU1MmYudmJwcm9qLmRsbAAAAAAAMU0AeQAuAFIAZQBzAG8AdQBy
AGMAZQBzAC4ATQB5AFIAZQBzAG8AdQByAGMAZQBzAAA1UABhAGMAawBhAGcAZQAgAEMAbwBuAGYA
aQBnAHUAcgBhAHQAaQBvAG4AIABUAGEAcwBrAAA1UwBlAGwAZQBjAHQAIABQAGEAYwBrAGEAZwBl
ACAAYwBvAG4AbgBlAGMAdABpAG8AbgAuAABVUwBlAGwAZQBjAHQAIABjAG8AbgBmAGkAZwB1AHIA
YQB0AGkAbwBuACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0ACAAdgBhAHIAaQBhAGIAbABlAC4AAD9T
AGUAbABlAGMAdAAgAGMAbwBuAGYAaQBnAHUAcgBhAHQAaQBvAG4AIAB3AG8AcgBrAHMAaABlAGUA
dAAuAAALVABBAEIATABFAAAVVABhAGIAbABlAF8ATgBhAG0AZQAAD1AAQQBDAEsAQQBHAEUAAICf
UAByAG8AdgBpAGQAZQByAD0ATQBpAGMAcgBvAHMAbwBmAHQALgBKAGUAdAAuAE8ATABFAEQAQgAu
ADQALgAwADsARQB4AHQAZQBuAGQAZQBkACAAUAByAG8AcABlAHIAdABpAGUAcwA9AEUAeABjAGUA
bAAgADgALgAwADsARABhAHQAYQAgAFMAbwB1AHIAYwBlAD0AewAwAH0AOwAAKVMARQBMAEUAQwBU
ACAAKgAgAEYAUgBPAE0AIABbAHsAMAB9ACQAXQAAAAA1rjZy+18kSYSbdQCjjJI4AAi3elxWGTTg
iQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIR
BAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxAB
AR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAMGEh0DBhIhBAAAEh0EAAASIQUAAQES
IQQIABIdBAgAEiEDBhIgAgYcBAAAEiAECAASIAiJhF3NgIDMkQUgAQIQDgQgAB0cBCABAQ4EIAAS
LQIGDgMoAA6AnlAAcgBvAHYAaQBkAGUAcgA9AE0AaQBjAHIAbwBzAG8AZgB0AC4ASgBlAHQALgBP
AEwARQBEAEIALgA0AC4AMAA7AEUAeAB0AGUAbgBkAGUAZAAgAFAAcgBvAHAAZQByAHQAaQBlAHMA
PQBFAHgAYwBlAGwAIAA4AC4AMAA7AEQAYQB0AGEAIABTAG8AdQByAGMAZQA9AHsAMAB9ADsAAgYI
AwYRLAQAAAAABAEAAAAFIAEBETkIAQABAAAAAAAFIAIBDg4YAQAKTXlUZW1wbGF0ZQgxMC4wLjAu
MAAABhUSGAESDAYVEhgBEggGFRIYARIRBhUSGAESFAQHARIMBAcBEggEBwESEQQHARIUEwEADk15
LldlYlNlcnZpY2VzAAAQAQALTXkuQ29tcHV0ZXIAABMBAA5NeS5BcHBsaWNhdGlvbgAADAEAB015
LlVzZXIAAAQAARwcAwcBAgMHAQgGAAESFRFVBAcBEhUDBwEOBRABAB4ABAoBHgAEBwEeAAcgBAEO
Dg4OYQEANFN5c3RlbS5XZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9j
b2wSQ3JlYXRlX19JbnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAAAGFRIYARMABhUSGQET
AAQKARMABSABARMACAcDEwATABMABCABAQIFAQAAAAAEIAASZQYgAgEOEmUGBwISHRIdBAcBEiEI
AQACAAAAAAAEAAEBHAQHARIgBQABARJxBCAAEnkEIAASfQggBQIIDg4OCAQgAQEIBQcCCBJxBAAB
Ag4GBwMCAhJxBQAAEoCRBSAAEoCJByACARKAlQgJBwMdHBKAiR0cBAYRgKEKIAISgJkRgKEdHAUg
ABKApQYgARKAqQgEIAEcDgUgAg4ICAoAAxGAsRwRgLUcEwcKEi0dHB0cCBKAmQgOEnEdHAgEAAEO
DgUAAg4OHAYHAhItEi0IFs9JC7gMNOoFIAASgM0GIAESgNEcBCABHBwDIAAcBSABARItBSAAEoDB
BCABDggIIAIcDhASgMkFIAIBHBwDIAACFgcJEi0SgLkSgL0SgMESgMUcDhKAyQ4NAQAIVmFsaWRh
dGUAAAUgAQEdDkoBAAMAAAARUGFja2FnZUNvbm5lY3Rpb24YQ29uZmlndXJhdGlvbkVudmlyb25t
ZW50FkNvbmZpZ3VyYXRpb25Xb3Jrc2hlZXQAADoBADVTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhl
IFBhY2thZ2UgY29ubmVjdGlvbiBtYW5hZ2VyLgAAGgEAFVBhY2thZ2VDb25uZWN0aW9uVHlwZQAA
TQEASFNwZWNpZmllcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjb250YWluaW5nIEV4Y2VsIGNvbmZp
Z3VyYXRpb24gZmlsZSBwYXRoLgAAEQEADEdldFZhcmlhYmxlcwAARAEAP1NwZWNpZmllcyBFeGNl
bCB3b3Jrc2hlZXQgY29udGFpbmluZyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uLgAAEgEADUdl
dFdvcmtzaGVldHMAAAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwFHAQAa
Lk5FVEZyYW1ld29yayxWZXJzaW9uPXY0LjABAFQOFEZyYW1ld29ya0Rpc3BsYXlOYW1lEC5ORVQg
RnJhbWV3b3JrIDQMAQAHMS4wLjAuMAAAKQEAJDUwMTdiMzZkLTY4ZWYtNGIxMy1iY2MwLWViNzFh
Yzk3MGY1ZQAABQEAAQAAHwEAGkNvcHlyaWdodCBAIE1pY3Jvc29mdCAyMDEzAAAvAQAqU1RfYzJj
YzFjZGQxNDgzNDg5OThjNjlkOGY5OGFlMDU1MmYudmJwcm9qAAAOAQAJTWljcm9zb2Z0AAAAdEoA
AAAAAAAAAAAAjkoAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBKAAAAAAAAAAAAAAAAX0NvckRs
bE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAA
gAAAAAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAAAIBAAA
AAAAAAAAAAAIBDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAA
AAEAAAAAAAAAAQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYA
aQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAEaAMA
AAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAARAMAAAEAMAAwADAAMAAwADQAYgAwAAAA
NAAKAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkAYwByAG8AcwBvAGYAdAAAAIAAKwAB
AEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABTAFQAXwBjADIAYwBjADEAYwBkAGQA
MQA0ADgAMwA0ADgAOQA5ADgAYwA2ADkAZAA4AGYAOQA4AGEAZQAwADUANQAyAGYALgB2AGIAcABy
AG8AagAAAAAAMAAIAAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAA
gAAvAAEASQBuAHQAZQByAG4AYQBsAE4AYQBtAGUAAABTAFQAXwBjADIAYwBjADEAYwBkAGQAMQA0
ADgAMwA0ADgAOQA5ADgAYwA2ADkAZAA4AGYAOQA4AGEAZQAwADUANQAyAGYALgB2AGIAcAByAG8A
agAuAGQAbABsAAAAAABcABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAABDAG8AcAB5
AHIAaQBnAGgAdAAgAEAAIABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADMAAAAAAIgALwABAE8A
cgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAFQAXwBjADIAYwBjADEAYwBkAGQAMQA0
ADgAMwA0ADgAOQA5ADgAYwA2ADkAZAA4AGYAOQA4AGEAZQAwADUANQAyAGYALgB2AGIAcAByAG8A
agAuAGQAbABsAAAAAAB4ACsAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMAVABfAGMAMgBj
AGMAMQBjAGQAZAAxADQAOAAzADQAOAA5ADkAOABjADYAOQBkADgAZgA5ADgAYQBlADAANQA1ADIA
ZgAuAHYAYgBwAHIAbwBqAAAAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAx
AC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEA
LgAwAC4AMAAuADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAMAAAAoDoAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</BinaryItem>
</ScriptProject>