<component id="2" name="Dynamics CRM OptionSet" componentClassID="Microsoft.ManagedComponentHost" description="Includes and runs custom script code. For example, apply a business rule that limits the range of valid values in an &quot;income&quot; column or add values in two columns and calculate the average of the sum." localeId="1033" version="10" contactInfo="Includes and runs custom script code. For example, apply a business rule that limits the range of valid values in an &quot;income&quot; column or add values in two columns and calculate the average of the sum.;Microsoft Corporation; Microsoft SQL Server; Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;7"><properties><property id="3" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><arrayElement dataType="System.String"><![CDATA[My Project\AssemblyInfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("SC_2923d961693e43508c67daf914a8fad9")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("")> 
<Assembly: AssemblyProduct("SC_2923d961693e43508c67daf914a8fad9")> 
<Assembly: AssemblyCopyright("Copyright @  2016")> 
<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("0337904c-efbe-4626-9a35-d241b8405727")> 

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

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property CrmConnection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' COZYROC SQL Server Integration Services user script component
'
' Copyright (c) 2006-2016 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.Web.Services.Protocols
Imports System.Text.RegularExpressions
Imports System.Collections
Imports System.Collections.Generic
Imports System.Data

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CozyRoc.Dynamics.Crm
Imports CozyRoc.Dynamics.Crm2011.OrganizationService
Imports Metadata4 = CozyRoc.Dynamics.Crm.MetadataService
Imports Metadata3 = CozyRoc.Dynamics.Crm3.MetadataService
Imports ADODB


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute()> _
<CLSCompliant(False)>
<SortProperties(New String() {
    "CrmConnection", "Entity", "Attribute", "LabelColumn", "ValueColumn", "Mapping",
    "Action", "ReplaceValue", "StateCodeColumn"})>
<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
Public Class ScriptMain
    Inherits UserComponent


    Public Const StatusCode As String = "statuscode"


    Public Enum NonMatchAction
        Create
        Replace
        Nullify
        Ignore
        RaiseError
    End Enum    ' NonMatchAction


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim label As String = Convert.ToString(GetBufferValue_(Row.Buffer, m_lcIdx))

            If Not m_dictionary Is Nothing Then
                ' Mapping specified. Use it.
                label = Convert.ToString(m_dictionary(label))
            End If

            If String.IsNullOrEmpty(label) Then
                Exit Sub
            End If

            Dim value As Object = m_values(label)
            If Not value Is Nothing Then
                Row.Buffer(m_vcIdx) = Convert.ToInt32(value)
            Else
                ' Input option value not found.
                Select Case Me.Action
                    Case NonMatchAction.Create
                        Call CreateOptionSet_(Row)

                    Case NonMatchAction.Replace
                        Row.Buffer(m_vcIdx) = Convert.ToInt32(Me.ReplaceValue)

                    Case NonMatchAction.Nullify
                        Call Row.Buffer.SetNull(m_vcIdx)

                    Case NonMatchAction.RaiseError
                        Throw New Exception(String.Format("OptionSet label not found: {0}", label))
                End Select
            End If
        Catch ex As SoapException
            Call FireError_(ex.Detail.InnerXml)
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' Input_ProcessInputRow


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

        ' Setup CRM service.
        m_connection = CType( _
            Me.Connections.CrmConnection.AcquireConnection(Nothing),  _
            IConnection)
        Call m_connection.Connect()

        ' Load OptionSet values.
        m_values = GetOptionSetValues_()

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)

        ' Get input columns index.
        m_lcIdx = Me.HostComponent.BufferManager.FindColumnByLineageID(
            input.Buffer,
            input.InputColumnCollection(Me.LabelColumn).LineageID)
        m_vcIdx = Me.HostComponent.BufferManager.FindColumnByLineageID(
            input.Buffer,
            input.InputColumnCollection(Me.ValueColumn).LineageID)

        If Not String.IsNullOrEmpty(Me.StateCodeColumn) Then
            m_sccIdx = Me.HostComponent.BufferManager.FindColumnByLineageID(
                input.Buffer,
                input.InputColumnCollection(Me.StateCodeColumn).LineageID)
        End If

        If Not String.IsNullOrEmpty(Me.Mapping) Then
            ' Mapping specified. Load it.
            m_dictionary = LoadMapping_()
        End If
    End Sub ' PreExecute


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

        Call m_connection.Close()
        m_values = Nothing
        m_dictionary = Nothing
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.CrmConnection) Then
                Throw New Exception("Select Dynamics CRM Connection.")
            End If

            If String.IsNullOrEmpty(Me.Entity) Then
                Throw New Exception("Select Dynamics CRM entity.")
            End If

            If String.IsNullOrEmpty(Me.Attribute) Then
                Throw New Exception("Select OptionSet attribute.")
            End If

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached Then
                If String.IsNullOrEmpty(Me.LabelColumn) Then
                    Throw New Exception("Select label column.")
                End If

                If String.IsNullOrEmpty(Me.ValueColumn) Then
                    Throw New Exception("Select value column.")
                End If

                If Me.Action = NonMatchAction.Create AndAlso _
                    Me.Attribute.Equals(StatusCode, StringComparison.OrdinalIgnoreCase) AndAlso _
                    String.IsNullOrEmpty(Me.StateCodeColumn) Then

                    Throw New Exception("Select statecode column.")
                End If

                ' Setup used input columns.
                Call input.InputColumnCollection.RemoveAll()
                Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
                Dim virtColl As IDTSVirtualInputColumnCollection100 = virtInput.VirtualInputColumnCollection
                Call virtInput.SetUsageType( _
                    virtColl(Me.LabelColumn).LineageID, _
                    DTSUsageType.UT_READONLY)
                Call virtInput.SetUsageType( _
                    virtColl(Me.ValueColumn).LineageID, _
                    DTSUsageType.UT_READWRITE)
                If Not String.IsNullOrEmpty(Me.StateCodeColumn) Then
                    Call virtInput.SetUsageType( _
                        virtColl(Me.StateCodeColumn).LineageID, _
                        DTSUsageType.UT_READONLY)
                End If
            End If

            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.
            Me.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManagerID = Me.CrmConnection

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

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of entities in the currently selected Dynamics CRM connection.
    Public Function GetEntityList() As String()
        Dim result() As String

        Dim connection As IConnection = CType( _
            Me.DesignConnections(Me.CrmConnection).AcquireConnection(Nothing),  _
            IConnection)
        Call connection.Connect()

        Try
            result = connection.GetEntityList(2)  ' 0 - None
            Call Array.Sort(result)
        Finally
            Call connection.Close()
        End Try

        GetEntityList = result
    End Function    ' GetEntityList


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of OptionSet attributes in the currently selected Dynamics CRM entity.
    Public Function GetOptionSetList() As String()
        If String.IsNullOrEmpty(Me.Entity) Then
            Throw New Exception("Select Dynamics CRM Entity.")
        End If

        If m_attributes.Contains(Me.Entity) Then
            Return CType(m_attributes(Me.Entity), String())
        End If

        ' Load entity's OptionSet attributes.
        Dim result As New ArrayList()

        Dim connection As IConnection = CType( _
            Me.DesignConnections(Me.CrmConnection).AcquireConnection(Nothing),  _
            IConnection)
        Call connection.Connect()

        Try
            Dim service As Object = connection.GetService(0)    ' 0 - CRM Service
            ' 11 - AttributeTypeCode.Picklist (CRM 2011)
            ' 12 - AttributeType.Picklist (CRM 4)
            Dim pickListType As Integer = Convert.ToInt32(IIf(TypeOf service Is OrganizationServiceClient, 11, 12))
            ' 13 - AttributeTypeCode.Status (CRM 2011)
            ' 15 - AttributeType.Status (CRM 4)
            Dim statusType As Integer = Convert.ToInt32(IIf(TypeOf service Is OrganizationServiceClient, 13, 15))

            Dim entity As IEntity = connection.GetEntity(Me.Entity)
            Dim attributes() As IAttribute = entity.GetAttributes()
            For Each attribute As IAttribute In attributes
                If attribute.CrmType = pickListType OrElse attribute.CrmType = statusType Then
                    Call result.Add(attribute.Name)
                End If
            Next

            Call result.Sort()
        Finally
            Call connection.Close()
        End Try

        m_attributes(Me.Entity) = result.ToArray(GetType(String))

        GetOptionSetList = CType(m_attributes(Me.Entity), String())
    End Function    ' GetOptionSetList


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Setup static.
        Call result.Add("CrmConnection")
        Call result.Add("Entity")
        Call result.Add("Attribute")
        Call result.Add("LabelColumn")
        Call result.Add("ValueColumn")
        Call result.Add("Mapping")
        Call result.Add("Action")

        ' Setup dynamic.
        Select Case Me.Action
            Case NonMatchAction.Create
                If String.Equals( _
                    Me.Attribute, _
                    StatusCode, _
                    StringComparison.OrdinalIgnoreCase) Then

                    Call result.Add("StateCodeColumn")
                End If

            Case NonMatchAction.Replace
                Call result.Add("ReplaceValue")
        End Select

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category(" Settings")> _
    <Description("Select Dynamics CRM Connection Manager.")> _
    <Connection("CrmConnectionType")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property CrmConnection() As String
        Get
            CrmConnection = m_crmConnection
        End Get
        Set(ByVal value As String)
            If m_crmConnection <> value Then
                m_crmConnection = value
                Me.Entity = String.Empty
            End If
        End Set
    End Property    ' CrmConnection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category(" Settings")> _
    <Description("Select Dynamics CRM entity.")> _
    <List("GetEntityList")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Entity() As String
        Get
            Entity = m_entity
        End Get
        Set(ByVal value As String)
            If m_entity <> value Then
                m_entity = value
                Me.Attribute = String.Empty
            End If
        End Set
    End Property    ' Entity


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category(" Settings")> _
    <Description("Select OptionSet attribute.")> _
    <List("GetOptionSetList")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Attribute() As String
        Get
            Attribute = m_attribute
        End Get
        Set(ByVal value As String)
            m_attribute = value
        End Set
    End Property    ' Attribute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category(" Settings")> _
    <Description("Select column containing OptionSet label.")> _
    <InputVirtualColumn()> _
    Public Property LabelColumn() As String
        Get
            LabelColumn = m_labelCol
        End Get
        Set(ByVal value As String)
            m_labelCol = value
        End Set
    End Property    ' LabelColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category(" Settings")> _
    <Description("Select column containing OptionSet value.")> _
    <InputVirtualColumn()> _
    Public Property ValueColumn() As String
        Get
            ValueColumn = m_valueCol
        End Get
        Set(ByVal value As String)
            m_valueCol = value
        End Set
    End Property    ' ValueColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category(" Settings")> _
    <Description("Select variable containing mapping (string, dictionary, recordset). Optional.")> _
    <Variable()> _
    Public Property Mapping() As String
        Get
            Mapping = m_mapping
        End Get
        Set(ByVal value As String)
            m_mapping = value
        End Set
    End Property    ' Mapping


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("No match")> _
    <Description("Select how to handle non-matching values.")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Action() As NonMatchAction
        Get
            Action = m_action
        End Get
        Set(value As NonMatchAction)
            m_action = value
        End Set
    End Property    ' Action


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("No match")> _
    <Description("Specifies replace value to use when there is no match.")> _
    Public Property ReplaceValue() As Integer
        Get
            ReplaceValue = m_replaceValue
        End Get
        Set(value As Integer)
            m_replaceValue = value
        End Set
    End Property    ' ReplaceValue


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("No match")> _
    <Description("Select column containing state code.")> _
    <InputVirtualColumn()> _
    Public Property StateCodeColumn() As String
        Get
            StateCodeColumn = m_stateCodeCol
        End Get
        Set(ByVal value As String)
            m_stateCodeCol = value
        End Set
    End Property    ' StateCodeColumn
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property CrmConnectionType() As String()
        Get
            CrmConnectionType = New String() {"DYNAMICS-CRM"}
        End Get
    End Property    ' CrmConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Dynamics CRM OptionSet", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetVariable_(ByVal varName As String) As Object
        Dim result As Object
        Dim vars As IDTSVariables100 = Nothing

        Call Me.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetBufferValue_( _
        ByVal buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer, _
        ByVal index As Integer) As Object

        Dim result As Object = Nothing

        If index <> -1 AndAlso Not buffer.IsNull(index) Then
            result = buffer(index)
        End If

        GetBufferValue_ = result
    End Function    ' GetBufferValue_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Load OptionSet attribute values.
    Private Function GetOptionSetValues_() As Hashtable
        Dim result As New Hashtable

        Dim service As Object = m_connection.GetService(0)   ' 0 - CRM Service
        Dim service2011 As OrganizationServiceClient = TryCast( _
            service,  _
            OrganizationServiceClient)
        If Not service2011 Is Nothing Then
            ' CRM 2011.
            Dim req As New OrganizationRequest()
            req.RequestName = "RetrieveAttribute"
            req("MetadataId") = New Guid()
            req("RetrieveAsIfPublished") = False
            req("EntityLogicalName") = Me.Entity
            req("LogicalName") = Me.Attribute

            Dim res As OrganizationResponse = service2011.Execute(req)
            Dim enumMeta As EnumAttributeMetadata = CType( _
                res("AttributeMetadata"),  _
                EnumAttributeMetadata)
            For Each optionMeta As OptionMetadata In enumMeta.OptionSet.Options
                ' Find invariant label.
                Dim invariantIndex As Integer = -1
                Dim count As Integer = optionMeta.Label.LocalizedLabels.Count
                For index As Integer = 0 To count - 1
                    Dim label As LocalizedLabel = optionMeta.Label.LocalizedLabels(index)
                    If label.LanguageCode = 1033 Then
                        invariantIndex = index
                        Exit For
                    End If
                Next

                If invariantIndex = -1 Then
                    ' Invariant label not found.
                    invariantIndex = 0
                End If

                result(optionMeta.Label.LocalizedLabels(invariantIndex).Label) = optionMeta.Value.Value
            Next
        Else
            Dim metadata As Object = m_connection.GetService(1) ' 1 - Metadata Service.
            Dim metadata4 As Metadata4.MetadataService = TryCast( _
                metadata,  _
                Metadata4.MetadataService)
            If Not metadata4 Is Nothing Then
                ' CRM 4.
                Dim req4 As New Metadata4.RetrieveAttributeRequest()
                req4.EntityLogicalName = Me.Entity
                req4.LogicalName = Me.Attribute

                Dim res4 As Metadata4.RetrieveAttributeResponse = CType( _
                    metadata4.Execute(req4),  _
                    Metadata4.RetrieveAttributeResponse)
                Dim options4() As Metadata4.Option = CType( _
                    res4.AttributeMetadata,  _
                    Metadata4.PicklistAttributeMetadata).Options

                For Each option4 As Metadata4.Option In options4
                    ' Find invariant label.
                    Dim invariantIndex As Integer = -1
                    Dim count As Integer = option4.Label.LocLabels.Length
                    For index As Integer = 0 To count - 1
                        Dim label As Metadata4.LocLabel = option4.Label.LocLabels(index)
                        If label.LanguageCode.Value = 1033 Then
                            invariantIndex = index
                            Exit For
                        End If
                    Next

                    If invariantIndex = -1 Then
                        ' Invariant label not found.
                        invariantIndex = 0
                    End If

                    result(option4.Label.LocLabels(invariantIndex).Label) = option4.Value.Value
                Next
            Else
                Dim metadata3 As Metadata3.MetadataService = TryCast(metadata, Metadata3.MetadataService)
                If Not metadata3 Is Nothing Then
                    ' CRM 3.
                    Dim options3() As Metadata3.Option = CType( _
                        metadata3.RetrieveAttributeMetadata(Me.Entity, Me.Attribute),  _
                        Metadata3.PicklistAttributeMetadata).Options

                    For Each option3 As Metadata3.Option In options3
                        result(option3.Description) = option3.OptionValue
                    Next
                Else
                    Throw New Exception("Unhandled service object.")
                End If
            End If
        End If

        GetOptionSetValues_ = result
    End Function    ' GetOptionSetValues_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Create OptionSet for specifed input and output columns.
    Private Sub CreateOptionSet_(ByVal row As InputBuffer)
        Dim name As String = Convert.ToString(GetBufferValue_(row.Buffer, m_lcIdx))
        Dim value As Object = GetBufferValue_(row.Buffer, m_vcIdx)
        Dim isStatusCode As Boolean = Me.Attribute.Equals( _
            StatusCode, _
            StringComparison.OrdinalIgnoreCase)

        Dim service As Object = m_connection.GetService(0)   ' 0 - CRM Service
        Dim service2011 As OrganizationServiceClient = TryCast( _
            service,  _
            OrganizationServiceClient)
        If Not service2011 Is Nothing Then
            ' CRM 2011.
            Dim req As New OrganizationRequest()
            req.RequestName = Convert.ToString(IIf(
                isStatusCode,
                "InsertStatusValue",
                "InsertOptionValue"))

            req("EntityLogicalName") = Me.Entity
            req("AttributeLogicalName") = Me.Attribute

            ' Setup label.
            Dim locLabel2011 As New LocalizedLabel()
            locLabel2011.Label = name
            locLabel2011.LanguageCode = 1033
            Dim label2011 As New Label()
            label2011.LocalizedLabels = New LocalizedLabelCollection()
            label2011.LocalizedLabels.Add(locLabel2011)
            req("Label") = label2011

            If isStatusCode Then
                req("StateCode") = Convert.ToInt32(GetBufferValue_(row.Buffer, m_sccIdx))
            End If

            If Not value Is Nothing Then
                ' Value provided. Use it.
                req("Value") = Convert.ToInt32(value)
            End If

            Dim res2011 As OrganizationResponse = service2011.Execute(req)
            If value Is Nothing Then
                ' Set new OptionSet value.
                row.Buffer(m_vcIdx) = res2011("NewOptionValue")
            End If
        Else
            Dim metadata As Object = m_connection.GetService(1) ' 1 - Metadata Service.
            Dim metadata4 As Metadata4.MetadataService = TryCast( _
                metadata,  _
                Metadata4.MetadataService)
            If Not metadata4 Is Nothing Then
                ' CRM 4.

                ' Setup label.
                Dim locLabel4 As New Metadata4.LocLabel()
                locLabel4.Label = name
                locLabel4.LanguageCode = New Metadata4.CrmNumber()
                locLabel4.LanguageCode.Value = 1033

                If isStatusCode Then
                    Dim isvReq As New Metadata4.InsertStatusValueRequest()
                    isvReq.EntityLogicalName = Me.Entity
                    isvReq.AttributeLogicalName = Me.Attribute
                    isvReq.Label = New Metadata4.CrmLabel()
                    isvReq.Label.LocLabels = New Metadata4.LocLabel() {locLabel4}
                    isvReq.StateCode = New Metadata4.CrmNumber()
                    isvReq.StateCode.Value = Convert.ToInt32(GetBufferValue_(row.Buffer, m_sccIdx))

                    If Not value Is Nothing Then
                        ' Value provided. Use it.
                        isvReq.Value = New Metadata4.CrmNumber()
                        isvReq.Value.Value = Convert.ToInt32(value)
                    End If

                    Dim isvRes As Metadata4.InsertStatusValueResponse = CType( _
                        metadata4.Execute(isvReq),  _
                        Metadata4.InsertStatusValueResponse)
                    If value Is Nothing Then
                        ' Set new OptionSet value.
                        row.Buffer(m_vcIdx) = isvRes.NewOptionValue
                    End If
                Else
                    Dim iovReq As New Metadata4.InsertOptionValueRequest()
                    iovReq.EntityLogicalName = Me.Entity
                    iovReq.AttributeLogicalName = Me.Attribute
                    iovReq.Label = New Metadata4.CrmLabel()
                    iovReq.Label.LocLabels = New Metadata4.LocLabel() {locLabel4}

                    If Not value Is Nothing Then
                        ' Value provided. Use it.
                        iovReq.Value = New Metadata4.CrmNumber()
                        iovReq.Value.Value = Convert.ToInt32(value)
                    End If

                    Dim iovRes As Metadata4.InsertOptionValueResponse = CType( _
                        metadata4.Execute(iovReq),  _
                        Metadata4.InsertOptionValueResponse)
                    If value Is Nothing Then
                        ' Set new OptionSet value.
                        row.Buffer(m_vcIdx) = iovRes.NewOptionValue
                    End If
                End If
            Else
                Dim metadata3 As Metadata3.MetadataService = TryCast(metadata, Metadata3.MetadataService)
                If Not metadata3 Is Nothing Then
                    ' CRM 3 - doesn't support it.
                    Throw New Exception("Dynamics CRM 3 doesn't support OptionSet value insert.")
                Else
                    Throw New Exception("Unhandled service object.")
                End If
            End If
        End If
    End Sub ' CreateOptionSet_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function LoadMapping_() As IDictionary
        Dim mapping As Object = GetVariable_(Me.Mapping)
        Dim mappingDict As New Hashtable
        Dim result As IDictionary = mappingDict

        If TypeOf mapping Is IDictionary Then
            result = CType(mapping, IDictionary)
        ElseIf TypeOf mapping Is IDictionary(Of String, String) Then
            Dim genericDict As IDictionary(Of String, String) = CType( _
                mapping,  _
                IDictionary(Of String, String))
            For Each pair As KeyValuePair(Of String, String) In genericDict
                mappingDict(pair.Key) = pair.Value
            Next
        ElseIf TypeOf mapping Is String Then
            ' Mappings are separated with [CR][LF].
            ' Each mapping is combination [key]=[value].
            Dim mappingList() As String = Regex.Unescape(CStr(mapping)).Split( _
                New String() {"\r\n"}, _
                StringSplitOptions.RemoveEmptyEntries)
            For Each pair As String In mappingList
                Dim keyValue() As String = pair.Split(New Char() {Chr(61)}, 2)  ' 61 (=)

                If (keyValue.Length < 2) Then
                    ' Not a valid item.
                    Continue For
                End If

                mappingDict(keyValue(0)) = keyValue(1)
            Next
        ElseIf TypeOf mapping Is Recordset Then
            ' Mapping is recordset. Use first and second fields.
            Dim rs As Recordset = CType(mapping, Recordset)
            If rs.Fields.Count < 2 Then
                Throw New Exception("Mapping.Recordset should contain at least 2 columns.")
            End If

            If Not (rs.BOF AndAlso rs.EOF) Then
                Call rs.MoveFirst()
            End If

            While Not rs.EOF
                mappingDict(Convert.ToString(rs.Fields(0).Value)) = Convert.ToString(rs.Fields(1).Value)
                Call rs.MoveNext()
            End While
        ElseIf TypeOf mapping Is DataSet Then
            ' Variable contains ADO.NET DataSet. Use first and second fields.
            Dim dt As DataTable = CType(mapping, DataSet).Tables(0)
            If dt.Columns.Count < 2 Then
                Throw New Exception("Mapping.DataSet should contain at least 2 columns.")
            End If

            For Each row As DataRow In dt.Rows
                mappingDict(row(0)) = row(1)
            Next
        Else
            Throw New Exception("Mapping parameter must contain IDictionary, String, Recordset or DataSet.")
        End If

        LoadMapping_ = result
    End Function    ' LoadMapping_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String
    Private m_entity As String
    Private m_attribute As String
    Private m_labelCol As String
    Private m_valueCol As String
    Private m_mapping As String
    Private m_action As NonMatchAction
    Private m_replaceValue As Integer
    Private m_stateCodeCol As String

    Private m_connection As IConnection
    Private m_attributes As New Hashtable
    Private m_values As Hashtable
    Private m_lcIdx As Integer
    Private m_vcIdx As Integer
    Private m_sccIdx As Integer
    Private m_dictionary As IDictionary
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[SC_2923d961693e43508c67daf914a8fad9.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<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>{69D7743D-2EC7-4CE0-879E-4895E4F489C3}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>SC_2923d961693e43508c67daf914a8fad9</RootNamespace>
    <AssemblyName>SC_2923d961693e43508c67daf914a8fad9</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="adodb, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
      <EmbedInteropTypes>True</EmbedInteropTypes>
    </Reference>
    <Reference Include="CozyRoc.Dynamics, 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.Dynamics.dll</HintPath>
    </Reference>
    <Reference Include="CozyRoc.SSISPlus.2016, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_13.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Compile Include="main.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <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>
  </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;vstadebug0ecadbe2-dbf5-43c2-8493-a205c59f8db6/4b4706d6-fcc3-44a6-836a-423b7d67fe34&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC130</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="3.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:CodeName>SC_2923d961693e43508c67daf914a8fad9</msb:CodeName>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>SC_2923d961693e43508c67daf914a8fad9</msb:DisplayName>
		<msb:ProjectId>{02D149E5-6F0B-4DAE-BE15-3434B01C2E2B}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="SC_2923d961693e43508c67daf914a8fad9.vbproj"/>
		<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="main.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="My Project\Settings.settings"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement></arrayElements></property><property id="4" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[SC_2923d961693e43508c67daf914a8fad9.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
3g0qAMIK3g0OAKYKjBUqAFcV3g0qACIL3g0OABEMjBUOAFIKjBUOAGkJjBUOACYXJwMKAPwXBwcK
AEwRBwcOADcXJwMaAOsArRIGAF0SwhQGAEARew8qAHwI3g0qAHsJ3g0qACEJlRIuAKAHMhQuADIT
4hMGADoKxBMuAL8JexQuANcJuwQuAAITMhQuAIsKuwQGAHAHjw4uALIBfw0qAPEIuA4qAMsHZg8G
ADgJxBMGAMgIohQGANcKyg8GAO4KXBQGALgIXBQGAI8LXBQGAO8JXBQGAAYJXBQGADcGtRYGAP0W
ohQGAGcYjw4GAHENjw4GAPMBjw4uAAoEexQyAAYGQA4WAAEA1RIWALsA1RIeAMwXBwcWAAQB1RIW
AFcA1RIWACoA1RIGAC8Rjw4WAD0A1RIWADEH1RIWAJgA1RIWANIA1RI2ANIW5wY2AHES5wYGAPoZ
jw4uAL4PuwQOADYalg4GAFkGjw4uAAwXexQaABkBrRIaABoArRIGALAOjw4iAEYEUQUiAIUEUQUi
APwPUQUGAOoBoAQiAOMHLAUiAHQYLAUiAPsHLAUiAGQELAUiAFwELAUiANUNLAUiALURLAUiAGQE
BgUiAFwEBgUGAKQBoAQGAEMGjw4uAIoWexQqAMsZlhYGAOoWjw4GAKsRjw4mAHoX6AMmAOgP6AMm
ABUQ6AMmALAH6AMmAJkQ6AMKADkSBwcGABQayg8GAKsTFA0GAJQTjw4AAAAArwIAAAAAAQABAAEA
AADVDosCEAABAAEAAQAAAEYSiwIJARIAIgABAAAA3heLAhUBEgAnAAEAAADSFosCXQAUACsAAQAA
AIIViwJdABUALQAAAAAABBXTFF0AFgAuAAAAAABYD9EZMQEYADIAAAAAADAT0Rk1ARgAMwAAARAA
aBfRGV0AGAA0AAABEADSFYsCWQEcADkAoRAAAPgEuAIAAB4APAChEAAAZAG4AgAAHgA/AKEQAADb
E7gCAAAeAEIAoRAAAEgCuAIAAB4ARQChEAAAbAG4AgAAHgBHAKEQAACRF7gCAAAeAEkAoRAAAFEC
uAIAAB4ASQChEAAAdQG4AgAAHgBLAKEQAACBAbgCAAAeAE0AoRAAABYXuAIAAB4ATwChEAAAKhi4
AgAAHgBPAKEQAAAiA7gCAAAeAE8AoRAAANwPuAIAAB4ATwChEAAAkBe4AgAAHgBPAAIBAACmDwAA
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
qQ2bAiEE5BWhAnEBsQWoAikEkwzEAHEBqQ2ZAEEBkwyoAkkBLASuAjkE3ha2AlEBHxGZAFEB2AzE
AFkBnhMGAFkBsw0QAFkBwgUBAGEBnhMGAOkDnhMGAGEBFBblAhQA4ATsAnEBnhMGAHEBsw0QACkE
nhMGAHEBwgXyAikEnQwBAHkBnhMGAHkBrwYQAHkBlgYQACEEnhMGAHkBsw35AnkBqQ2bAiEE8hUA
A3kB4QXyAnkB0wWoAnkBnQzyAnkBkwyoAoEB6AzEAIkBnhMGAIkBrwYQAIkBlgYQAIkBsw35AokB
qQ2bAokBnQzyAokBkwyoApEB6AzEACwAhhNRAzQAHhiAAjwAABqAAjwAkwxwA7kBaRnoAEkEZAgG
AFEEbw1oAFkEKAd1AxEDpxd6AxEDpxeEA3EEdxWMA3kEfQ6SA7EBTxaZA4kEQBjEALEBSxefA5EE
hhOlA7kBHhjoAcEBfQ5bARECnhOrA5kEmhnoAJkEmxfoACkCnhMGANEAvgLEALkAnhMGAIEDbRK6
A5kCEBrAAzkCnhPGA2ECnhMGAGkCnhMGAEQAmAWAAkwAmAWAAlQAmAWAAlwAmAWAAkQAnhMGAEwA
nhMGAFQAnhMGAFwAnhMGALECnhMGAKkEHRPrA6kErRfrA7kA3RVTAbkA7wXEALkAbw2ZALEEiQX4
A2wAchkPBHQAkwyAAnQAnQzsAnQAnhMGAA4ABABMBAgAfABhBAgAgABmBAgAhABrBAgAiABwBAgA
jAB1BCkAmwAaCykAowApCykAqwBWCykAswDlBi4ACwDpBS4AEwDyBS4AGwARBi4AIwAaBi4AKwBD
Bi4AMwBDBi4AOwAaBi4AQwBJBi4ASwBDBi4AUwBgBi4AWwBDBi4AYwBmBi4AawCQBi4AcwCdBkMA
ewBmBEMAUwBDBkMAgwAbB0MAiwCHB0MAkwCVB0kAmwAaC0kAowBtC0kAuwCOC0kAswDlBmMAUwBD
BmkAmwAaC2kAowChC2kAuwDCC2kAswDlBoMAUwBDBokAmwAaC4kAowDYC4kAwwBmBKkAmwAaC6kA
owAHDKkAwwBmBMkAmwAaC8kAowA2DMkAywBmBOkAmwCJDOkAowCXDOkAswDlBgMB2wCoBwMB0wDl
BgkBmwCJDAkBowDGDCMB2wCoByMB0wDlBikBmwCJDCkBowACDSkBwwBmBEMB6wBmBEMB8wBmBEMB
2wCoB4MBEwFmBIMBYwDBB4MBGwHrB4MBIwFmBKMBEwFmBKMBYwD2B6MBGwHrB6MBIwFmBMMBEwFm
BMMBGwEgCMMBYwAqCMMBIwFmBMkB0wARBuMBEwFmBOMBGwEgCOMBYwBUCOMBIwFmBOkB0wARBgMC
EwFmBAMCGwEgCAMCYwB+CAMCIwFmBAkCAwEsDSMCEwFmBCMCYwCoCCMCMwHSCCMCIwFmBCkCAwE9
DUMCEwFmBEMCGwEyCUMCYwA+CUMCIwFmBEkCAwFRDWMCEwFmBGMCYwBoCWMCGwEyCWMCIwFmBGkC
AwFeDYMCEwFmBIMCGwEyCYMCYwCSCYMCIwFmBIkCCwFmBKMCEwFmBKMCOwG8CaMCYwDDCaMCIwFm
BKkCKwHuBsMCEwFmBMMCQwHtCcMCSwEeCskCKwHuBuMCEwFmBOMCYwBkCuMCIwFmBOkCKwHlBgMD
EwFmBAMDYwCOCgMDIwFmBAkDKwHuBiMDEwFmBCMDGwEyCSMDYwCoCCMDIwFmBCkDKwHuBkkDKwHu
BmMD0wDlBmMD+wC4CmkDKwHuBoMD0wDlBoMDWwBDBokDKwHuBqkDKwHuBskDKwH3BukDKwEABwkE
KwHuBmAFUwBDBqAFUwBDBmAG4wBmBGAG0wDlBoAG4wBmBKAG4wBmBMAG4wBmBOAG4wBmBKAHKwHu
BsAHKwHuBgAIKwHuBiAIKwHuBkAIKwHlBoAIKwHuBsAIKwHuBgAJKwHuBkAJKwHuBoAJKwHuBsAJ
KwHuBgAKKwH3BkAKKwEAB2AKKwHuBqAKKwEJB+AKKwESBwAL0wDlBgAL4wBmBCAL0wDlBiAL4wBm
BEAL0wDlBkAL4wBmBGAL0wDlBmAL4wBmBIAL4wBmBKAL4wBmBMAL4wBmBMAL0wDlBuAL4wBmBAAM
4wBmBAAM0wDlBj8AegRBAHoEQwB6BEUAegRHAHwESQB6BEsAfARNAHoETwB8BFEAegRTAH4EVQB+
BFcAfgRZAH4EUgChANsAGgFCAZEBoQGvAbQBuAG9AcwB7AH2Ab0CCAPwAwMEAgABAAMACwAFAA0A
BwAOAAoAEAALABQADAAVAA0AFgAOABcADwAZABAAGgASABsAEwAcABQAHQAZAB4AHAAhAAAA3xCP
BQAAVxqPBQAAXgyPBQAAPA+PBQAAHA+PBQAATw2PBQAArg+TBQAAvAyYBQAA+A6PBQAAWwecBQAA
XxacBQAAdhacBQAA3xChBQAAXRKnBQAAmAetBQAAMhOzBQAAWg+4BQAAAhO9BQAAJhTDBQAABA3I
BQAABA3NBQAABA3NBQAARBjRBQAAig7VBQAAig7VBQAAig7VBQAA2xPbBQAA2xPbBQAA2xPbBQAA
FgPgBQAAHgPgBQAA2xPbBQAAnAXkBQIACQADAAEACgADAAIACwAFAAEADAAFAAIADQAHAAEADgAH
AAIADwAJAAEAEAAJAAIAEQALAAEAEgALAAIAEwANAAEAFAANAAIAFQAPAAEAFgAPAAIAFwARAAEA
GAARAAIAGQATAAEAGgATAAIAGwAVAAIAIwAXAAIAJAAZAAIALAAbAAIALwAdAAIAMAAfAAEAMQAf
AAIANAAhAAIANQAjAAIANgAlAAIANwAnAAIAOwApAAIAPQArAAEAPgArAAIAQAAtAAEAQQAtAAIA
QgAvAAIARAAxAAIARgAzAAIASAA1AAIASgA3AAIATAA5AAIATgA7AAIAUAA9AAIAUgA/AAIAUwBB
AAIAXwBDAFgBYQJ5AjwDRANbA2gDzgPVA9wD5AP1AwgEGAQgBASAAAABAAAAAAAAAAAAAAAAAIsC
AAAEAAAAAAAAAAAAAAAoBJcEAAAAAA0AAAAAAAAAAAAAADEEShgAAAAAAQAAAAAAAAAAAAAAOgRd
AgAAAAAEAAAAAAAAAAAAAABDBAAUAAAAAA0AAAAAAAAAAAAAADEEhxEAAAAADQAAAAAAAAAAAAAA
MQRkEQAAAAANAAAAAAAAAAAAAAAxBBMZAAAAAAEAAAAAAAAAAAAAADoEsxMAAAAABAAAAAAAAAAA
AAAAKAToAwAAAAAEAAAAAAAAAAAAAAAoBI8OAAAAAAoAAAAAAAAAAAAAAEMEuwQAAAAABAAAAAAA
AAAAAAAAKARADgAAAAANAAAAAAAAAAAAAAAxBD4DAAAAAAAAAAABAAAAEBUAABoAAgAbAAoAHAAK
AAAAEAA4AF0DAAAQALkAXQMAAAAAuwBdA7UAPgG7Af4DuwEjBAAAAElEVFNDb21wb25lbnRNZXRh
RGF0YTEwMABJRFRTVmFyaWFibGUxMDAASURUU0lucHV0Q29sdW1uMTAwAElEVFNWaXJ0dWFsSW5w
dXRDb2x1bW4xMDAASURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABJRFRTVmlydHVhbElucHV0
Q29sdW1uQ29sbGVjdGlvbjEwMABJRFRTUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uMTAwAElE
VFNJbnB1dENvbGxlY3Rpb24xMDAASURUU1J1bnRpbWVDb25uZWN0aW9uMTAwAElEVFNDb25uZWN0
aW9uTWFuYWdlcjEwMABJRFRTQnVmZmVyTWFuYWdlcjEwMABJRFRTVmFyaWFibGVEaXNwZW5zZXIx
MDAASURUU1ZhcmlhYmxlczEwMABJRFRTSW5wdXQxMDAASURUU1ZpcnR1YWxJbnB1dDEwMABGaWVs
ZDIwAEZpZWxkczIwAFJlY29yZHNldDIwAFJlY29yZHNldDIxAF9WdGJsR2FwNF8xAE51bGxhYmxl
YDEASUVudW1lcmFibGVgMQBDb250ZXh0VmFsdWVgMQBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJg
MQBJRW51bWVyYXRvcmAxAExpc3RgMQBUb0ludDMyAF9WdGJsR2FwMV8yAEtleVZhbHVlUGFpcmAy
AElEaWN0aW9uYXJ5YDIAX1Z0YmxHYXAxXzMAX1Z0YmxHYXAxXzE0AF9WdGJsR2FwM18xNABGaWVs
ZHMxNQBSZWNvcmRzZXQxNQBDb3p5Um9jLlNTSVNQbHVzLjIwMTYAX1Z0YmxHYXAxXzYAX1Z0YmxH
YXAyXzYAU0NfMjkyM2Q5NjE2OTNlNDM1MDhjNjdkYWY5MTRhOGZhZDkAPE1vZHVsZT4AQURPREIA
Z2V0X0lEAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlEAHNldF9Db25uZWN0aW9u
TWFuYWdlcklEAE9iamVjdElEAElucHV0SUQAZ2V0X0JPRgBnZXRfRU9GAF9BRE8AQ296eVJvYy5T
cWxTZXJ2ZXIuU1NJUwBNaWNyb3NvZnQuU3FsU2VydmVyLk1hbmFnZWREVFMAVABEaXNwb3NlX19J
bnN0YW5jZV9fAENyZWF0ZV9fSW5zdGFuY2VfXwB2YWx1ZV9fAEdldFZhcmlhYmxlXwBHZXRCdWZm
ZXJWYWx1ZV8ATG9hZE1hcHBpbmdfAEZpcmVFcnJvcl8AR2V0T3B0aW9uU2V0VmFsdWVzXwBDcmVh
dGVPcHRpb25TZXRfAFN5c3RlbS5EYXRhAGdldF9Db21wb25lbnRNZXRhRGF0YQBQcm9qZWN0RGF0
YQBnZXRfQXR0cmlidXRlTWV0YWRhdGEAUmV0cmlldmVBdHRyaWJ1dGVNZXRhZGF0YQBFbnVtQXR0
cmlidXRlTWV0YWRhdGEAUGlja2xpc3RBdHRyaWJ1dGVNZXRhZGF0YQBPcHRpb25NZXRhZGF0YQBP
cHRpb25TZXRNZXRhZGF0YQBtc2NvcmxpYgBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYwBNaWNy
b3NvZnQuVmlzdWFsQmFzaWMATG9ja09uZUZvclJlYWQAQWRkAGdldF9Jc0F0dGFjaGVkAEd1aWQA
RmllbGQAUmVwbGFjZQBDb3p5Um9jLkR5bmFtaWNzLkNybTMuTWV0YWRhdGFTZXJ2aWNlAENvenlS
b2MuRHluYW1pY3MuQ3JtLk1ldGFkYXRhU2VydmljZQBDb3p5Um9jLkR5bmFtaWNzLkNybTIwMTEu
T3JnYW5pemF0aW9uU2VydmljZQBHZXRTZXJ2aWNlAENyZWF0ZUluc3RhbmNlAGdldF9HZXRJbnN0
YW5jZQBpbnN0YW5jZQBnZXRfTGFuZ3VhZ2VDb2RlAHNldF9MYW5ndWFnZUNvZGUAZ2V0X1N0YXRl
Q29kZQBzZXRfU3RhdGVDb2RlAEdldEhhc2hDb2RlAFN0YXR1c0NvZGUAWG1sTm9kZQBnZXRfTWVz
c2FnZQBlcnJNZXNzYWdlAG1lc3NhZ2UARGF0YVRhYmxlAElFbnVtZXJhYmxlAElEaXNwb3NhYmxl
AEhhc2h0YWJsZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBnZXRfTmFtZQBz
ZXRfTG9naWNhbE5hbWUAc2V0X0F0dHJpYnV0ZUxvZ2ljYWxOYW1lAHNldF9FbnRpdHlMb2dpY2Fs
TmFtZQB2YXJOYW1lAHNldF9SZXF1ZXN0TmFtZQBJbnB1dE5hbWUATWljcm9zb2Z0LlNxbFNlcnZl
ci5EdHMuUnVudGltZQBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZQBVbmVzY2FwZQBE
VFNVc2FnZVR5cGUAU2V0VXNhZ2VUeXBlAGdldF9Dcm1UeXBlAGdldF9Dcm1Db25uZWN0aW9uVHlw
ZQBHZXRUeXBlAElnbm9yZQBnZXRfQ3VsdHVyZQBzZXRfQ3VsdHVyZQBfcmVzQ3VsdHVyZQBBcHBs
aWNhdGlvbkJhc2UASW50ZXJuYWxEYXRhQ29sbGVjdGlvbkJhc2UAQXBwbGljYXRpb25TZXR0aW5n
c0Jhc2UATWV0YWRhdGFTZXJ2aWNlUmVzcG9uc2UAUmV0cmlldmVBdHRyaWJ1dGVSZXNwb25zZQBJ
bnNlcnRPcHRpb25WYWx1ZVJlc3BvbnNlAEluc2VydFN0YXR1c1ZhbHVlUmVzcG9uc2UAT3JnYW5p
emF0aW9uUmVzcG9uc2UAQ2xvc2UARGlzcG9zZQBWYWxpZGF0ZQBDcmVhdGUARWRpdG9yQnJvd3Nh
YmxlU3RhdGUASUF0dHJpYnV0ZQBnZXRfQXR0cmlidXRlAHNldF9BdHRyaWJ1dGUARGlzcElkQXR0
cmlidXRlAENvbXBpbGVyR2VuZXJhdGVkQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUASGVscEtleXdv
cmRBdHRyaWJ1dGUAQ29tRXZlbnRJbnRlcmZhY2VBdHRyaWJ1dGUAR2VuZXJhdGVkQ29kZUF0dHJp
YnV0ZQBEZWJ1Z2dlck5vblVzZXJDb2RlQXR0cmlidXRlAERlYnVnZ2FibGVBdHRyaWJ1dGUAVmFy
aWFibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAENvbVZpc2libGVBdHRyaWJ1
dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9k
dWxlTmFtZUF0dHJpYnV0ZQBJbnRlcmZhY2VUeXBlQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJr
QXR0cmlidXRlAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0
ZQBJbnB1dFZpcnR1YWxDb2x1bW5BdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0
ZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAEFzc2VtYmx5
RGVzY3JpcHRpb25BdHRyaWJ1dGUARGVmYXVsdE1lbWJlckF0dHJpYnV0ZQBUeXBlSWRlbnRpZmll
ckF0dHJpYnV0ZQBWYWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXNB
dHRyaWJ1dGUARmlsdGVyUHJvcGVydGllc0F0dHJpYnV0ZQBTb3J0UHJvcGVydGllc0F0dHJpYnV0
ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAENvQ2xhc3NBdHRyaWJ1dGUAQXNzZW1i
bHlQcm9kdWN0QXR0cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmlidXRlAENMU0NvbXBsaWFu
dEF0dHJpYnV0ZQBTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBMaXN0QXR0
cmlidXRlAEFzc2VtYmx5Q29tcGFueUF0dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBSdW50aW1l
Q29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBtX2F0dHJpYnV0ZQBQcmVFeGVjdXRlAFBvc3RFeGVjdXRl
AG1fVmFsdWUAZ2V0X1ZhbHVlAHNldF9WYWx1ZQBnZXRfUmVwbGFjZVZhbHVlAHNldF9SZXBsYWNl
VmFsdWUAbV9yZXBsYWNlVmFsdWUAZ2V0X09wdGlvblZhbHVlAGdldF9OZXdPcHRpb25WYWx1ZQBH
ZXRPYmplY3RWYWx1ZQB2YWx1ZQBJSWYAU3lzdGVtLlRocmVhZGluZwBTeXN0ZW0uUnVudGltZS5W
ZXJzaW9uaW5nAGdldF9NYXBwaW5nAHNldF9NYXBwaW5nAG1fbWFwcGluZwBDb21wYXJlU3RyaW5n
AFRvU3RyaW5nAFVubG9jawBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5h
bABnZXRfTGFiZWwAc2V0X0xhYmVsAExvY0xhYmVsAExvY2FsaXplZExhYmVsAENybUxhYmVsAFN5
c3RlbS5Db21wb25lbnRNb2RlbABnZXRfRGV0YWlsAFJlbW92ZUFsbABTQ18yOTIzZDk2MTY5M2U0
MzUwOGM2N2RhZjkxNGE4ZmFkOS5kbGwASXNOdWxsAFNldE51bGwAU3lzdGVtLlhtbABnZXRfSW5u
ZXJYbWwAbV9zdGF0ZUNvZGVDb2wAbV92YWx1ZUNvbABtX2xhYmVsQ29sAGdldF9JdGVtAHNldF9J
dGVtAFN5c3RlbQBDb3p5Um9jLkR5bmFtaWNzLkNybQBFbnVtAEJvb2xlYW4AU3lzdGVtLkNvbXBv
bmVudE1vZGVsLkRlc2lnbgBTY3JpcHRNYWluAGdldF9TdGF0ZUNvZGVDb2x1bW4Ac2V0X1N0YXRl
Q29kZUNvbHVtbgBnZXRfVmFsdWVDb2x1bW4Ac2V0X1ZhbHVlQ29sdW1uAGdldF9MYWJlbENvbHVt
bgBzZXRfTGFiZWxDb2x1bW4AZ2V0X0FwcGxpY2F0aW9uAE15QXBwbGljYXRpb24AU3lzdGVtLkNv
bmZpZ3VyYXRpb24AU3lzdGVtLkdsb2JhbGl6YXRpb24AZ2V0X0FjdGlvbgBzZXRfQWN0aW9uAE5v
bk1hdGNoQWN0aW9uAG1fYWN0aW9uAEludGVyYWN0aW9uAFN5c3RlbS5SZWZsZWN0aW9uAF9Db2xs
ZWN0aW9uAERhdGFUYWJsZUNvbGxlY3Rpb24ATG9jYWxpemVkTGFiZWxDb2xsZWN0aW9uAERhdGFD
b2x1bW5Db2xsZWN0aW9uAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X1ZpcnR1YWxJbnB1
dENvbHVtbkNvbGxlY3Rpb24AZ2V0X1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbgBnZXRfSW5w
dXRDb2xsZWN0aW9uAERhdGFSb3dDb2xsZWN0aW9uAElDb25uZWN0aW9uAEFjcXVpcmVDb25uZWN0
aW9uAGdldF9Dcm1Db25uZWN0aW9uAHNldF9Dcm1Db25uZWN0aW9uAG1fY3JtQ29ubmVjdGlvbgBt
X2Nvbm5lY3Rpb24AT3B0aW9uAFNvYXBFeGNlcHRpb24AZ2V0X0Rlc2NyaXB0aW9uAFN0cmluZ0Nv
bXBhcmlzb24AQ3VsdHVyZUluZm8AT3V0cHV0TmFtZU1hcABPdXRwdXRNYXAATWljcm9zb2Z0LlNx
bFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3Jh
cABDaGFyAHB2YXIAQ3JtTnVtYmVyAG1fQXBwT2JqZWN0UHJvdmlkZXIAbV9Vc2VyT2JqZWN0UHJv
dmlkZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3Zp
ZGVyAGdldF9CdWZmZXIAUGlwZWxpbmVCdWZmZXIAU2NyaXB0QnVmZmVyAElucHV0QnVmZmVyAGJ1
ZmZlcgBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9Db25uZWN0aW9uTWFuYWdlcgBnZXRfQnVmZmVy
TWFuYWdlcgBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5S
dW50aW1lLldyYXBwZXIATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBn
ZXRfVXNlcgBnZXRfVmFyaWFibGVEaXNwZW5zZXIARW50ZXIAZ2V0X0NvbXB1dGVyAE15Q29tcHV0
ZXIAX3Jlc01ncgBGaXJlRXJyb3IAUmFpc2VFcnJvcgBDbGVhclByb2plY3RFcnJvcgBTZXRQcm9q
ZWN0RXJyb3IASUVudW1lcmF0b3IAR2V0RW51bWVyYXRvcgBBY3RpdmF0b3IALmN0b3IALmNjdG9y
AE1vbml0b3IAQ296eVJvYy5EeW5hbWljcwBTeXN0ZW0uRGlhZ25vc3RpY3MAZ2V0X0ZpZWxkcwBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBTeXN0ZW0uV2ViLlNlcnZpY2VzAGdldF9XZWJT
ZXJ2aWNlcwBNeVdlYlNlcnZpY2VzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNl
cnZpY2VzAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBNaWNyb3NvZnQuVmlzdWFsQmFz
aWMuQ29tcGlsZXJTZXJ2aWNlcwBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFN5c3Rl
bS5SZXNvdXJjZXMAU0NfMjkyM2Q5NjE2OTNlNDM1MDhjNjdkYWY5MTRhOGZhZDkuTXkuUmVzb3Vy
Y2VzAE15UmVzb3VyY2VzAFNDXzI5MjNkOTYxNjkzZTQzNTA4YzY3ZGFmOTE0YThmYWQ5LlJlc291
cmNlcy5yZXNvdXJjZXMARGVidWdnaW5nTW9kZXMAUmVmcmVzaFByb3BlcnRpZXMAR2V0UHJvcGVy
dGllcwBnZXRfVGFibGVzAFZhcmlhYmxlcwBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0
ZXMAR2V0QXR0cmlidXRlcwBtX2F0dHJpYnV0ZXMAbV92YWx1ZXMATXlTZXR0aW5ncwBFcXVhbHMA
Z2V0X0xvY0xhYmVscwBzZXRfTG9jTGFiZWxzAGdldF9Mb2NhbGl6ZWRMYWJlbHMAc2V0X0xvY2Fs
aXplZExhYmVscwBTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scwBDb250YWlucwBnZXRfQ29s
dW1ucwBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAENvbnZl
cnNpb25zAFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9ucwBTeXN0ZW0uQ29sbGVjdGlvbnMA
Z2V0X0Rlc2lnbkNvbm5lY3Rpb25zAGdldF9PcHRpb25zAFN0cmluZ1NwbGl0T3B0aW9ucwBSdW50
aW1lSGVscGVycwBPcGVyYXRvcnMAUmVjb3Jkc2V0RXZlbnRzAFNjcmlwdEJ1ZmZlclBsdXMAU2Ny
aXB0Q29tcG9uZW50UGx1cwBnZXRfUm93cwBGb3JtYXQAbV9TeW5jT2JqZWN0AE15UHJvamVjdABD
b25uZWN0AERhdGFTZXQAZ2V0X09wdGlvblNldABfUmVjb3Jkc2V0AEVuZE9mUm93c2V0AFNwbGl0
AEV4aXQAT3JnYW5pemF0aW9uU2VydmljZUNsaWVudABQaXBlbGluZUNvbXBvbmVudABVc2VyQ29t
cG9uZW50AFBhcmVudENvbXBvbmVudABTY3JpcHRDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQA
Z2V0X0N1cnJlbnQAUmVjb3Jkc2V0RXZlbnRzX0V2ZW50AGdldF9Db3VudABNaWNyb3NvZnQuU3Fs
U2VydmVyLlR4U2NyaXB0AENvbnZlcnQAU29ydABNZXRhZGF0YVNlcnZpY2VSZXF1ZXN0AFJldHJp
ZXZlQXR0cmlidXRlUmVxdWVzdABJbnNlcnRPcHRpb25WYWx1ZVJlcXVlc3QASW5zZXJ0U3RhdHVz
VmFsdWVSZXF1ZXN0AE9yZ2FuaXphdGlvblJlcXVlc3QAR2V0T3B0aW9uU2V0TGlzdABBcnJheUxp
c3QAR2V0RW50aXR5TGlzdABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABNb3ZlRmly
c3QAR2V0VmlydHVhbElucHV0AElzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0AE1vdmVOZXh0AG1f
Q29udGV4dABEYXRhUm93AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBOZXh0Um93AHJvdwBtX3NjY0lk
eABtX2xjSWR4AG1fdmNJZHgASW5kZXgAaW5kZXgAUmVnZXgAU0NfMjkyM2Q5NjE2OTNlNDM1MDhj
NjdkYWY5MTRhOGZhZDkuTXkAVG9BcnJheQBnZXRfS2V5AE51bGxpZnkAZ2V0X0Fzc2VtYmx5AElE
aWN0aW9uYXJ5AG1fZGljdGlvbmFyeQBJRW50aXR5AGdldF9FbnRpdHkAc2V0X0VudGl0eQBHZXRF
bnRpdHkAbV9lbnRpdHkASXNOdWxsT3JFbXB0eQAAAAAAPU8AcAB0AGkAbwBuAFMAZQB0ACAAbABh
AGIAZQBsACAAbgBvAHQAIABmAG8AdQBuAGQAOgAgAHsAMAB9AAA/UwBlAGwAZQBjAHQAIABEAHkA
bgBhAG0AaQBjAHMAIABDAFIATQAgAEMAbwBuAG4AZQBjAHQAaQBvAG4ALgAAN1MAZQBsAGUAYwB0
ACAARAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABlAG4AdABpAHQAeQAuAAA3UwBlAGwAZQBjAHQA
IABPAHAAdABpAG8AbgBTAGUAdAAgAGEAdAB0AHIAaQBiAHUAdABlAC4AAClTAGUAbABlAGMAdAAg
AGwAYQBiAGUAbAAgAGMAbwBsAHUAbQBuAC4AAClTAGUAbABlAGMAdAAgAHYAYQBsAHUAZQAgAGMA
bwBsAHUAbQBuAC4AABVzAHQAYQB0AHUAcwBjAG8AZABlAAAxUwBlAGwAZQBjAHQAIABzAHQAYQB0
AGUAYwBvAGQAZQAgAGMAbwBsAHUAbQBuAC4AABtDAHIAbQBDAG8AbgBuAGUAYwB0AGkAbwBuAAA3
UwBlAGwAZQBjAHQAIABEAHkAbgBhAG0AaQBjAHMAIABDAFIATQAgAEUAbgB0AGkAdAB5AC4AAA1F
AG4AdABpAHQAeQAAE0EAdAB0AHIAaQBiAHUAdABlAAAXTABhAGIAZQBsAEMAbwBsAHUAbQBuAAAX
VgBhAGwAdQBlAEMAbwBsAHUAbQBuAAAPTQBhAHAAcABpAG4AZwAADUEAYwB0AGkAbwBuAAAfUwB0
AGEAdABlAEMAbwBkAGUAQwBvAGwAdQBtAG4AABlSAGUAcABsAGEAYwBlAFYAYQBsAHUAZQAAGUQA
WQBOAEEATQBJAEMAUwAtAEMAUgBNAAEtRAB5AG4AYQBtAGkAYwBzACAAQwBSAE0AIABPAHAAdABp
AG8AbgBTAGUAdAAAI1IAZQB0AHIAaQBlAHYAZQBBAHQAdAByAGkAYgB1AHQAZQAAFU0AZQB0AGEA
ZABhAHQAYQBJAGQAACtSAGUAdAByAGkAZQB2AGUAQQBzAEkAZgBQAHUAYgBsAGkAcwBoAGUAZAAA
I0UAbgB0AGkAdAB5AEwAbwBnAGkAYwBhAGwATgBhAG0AZQAAF0wAbwBnAGkAYwBhAGwATgBhAG0A
ZQAAI0EAdAB0AHIAaQBiAHUAdABlAE0AZQB0AGEAZABhAHQAYQAAM1UAbgBoAGEAbgBkAGwAZQBk
ACAAcwBlAHIAdgBpAGMAZQAgAG8AYgBqAGUAYwB0AC4AACNJAG4AcwBlAHIAdABTAHQAYQB0AHUA
cwBWAGEAbAB1AGUAACNJAG4AcwBlAHIAdABPAHAAdABpAG8AbgBWAGEAbAB1AGUAAClBAHQAdABy
AGkAYgB1AHQAZQBMAG8AZwBpAGMAYQBsAE4AYQBtAGUAAAtMAGEAYgBlAGwAABNTAHQAYQB0AGUA
QwBvAGQAZQAAC1YAYQBsAHUAZQAAHU4AZQB3AE8AcAB0AGkAbwBuAFYAYQBsAHUAZQAAbUQAeQBu
AGEAbQBpAGMAcwAgAEMAUgBNACAAMwAgAGQAbwBlAHMAbgAnAHQAIABzAHUAcABwAG8AcgB0ACAA
TwBwAHQAaQBvAG4AUwBlAHQAIAB2AGEAbAB1AGUAIABpAG4AcwBlAHIAdAAuAAEJXAByAFwAbgAA
aU0AYQBwAHAAaQBuAGcALgBSAGUAYwBvAHIAZABzAGUAdAAgAHMAaABvAHUAbABkACAAYwBvAG4A
dABhAGkAbgAgAGEAdAAgAGwAZQBhAHMAdAAgADIAIABjAG8AbAB1AG0AbgBzAC4AAGVNAGEAcABw
AGkAbgBnAC4ARABhAHQAYQBTAGUAdAAgAHMAaABvAHUAbABkACAAYwBvAG4AdABhAGkAbgAgAGEA
dAAgAGwAZQBhAHMAdAAgADIAIABjAG8AbAB1AG0AbgBzAC4AAICTTQBhAHAAcABpAG4AZwAgAHAA
YQByAGEAbQBlAHQAZQByACAAbQB1AHMAdAAgAGMAbwBuAHQAYQBpAG4AIABJAEQAaQBjAHQAaQBv
AG4AYQByAHkALAAgAFMAdAByAGkAbgBnACwAIABSAGUAYwBvAHIAZABzAGUAdAAgAG8AcgAgAEQA
YQB0AGEAUwBlAHQALgAAC0kAbgBwAHUAdAAAMU0AeQAuAFIAZQBzAG8AdQByAGMAZQBzAC4ATQB5
AFIAZQBzAG8AdQByAGMAZQBzAAAAAEiR36HWUu9HtewuOFf5UQQABCABAQgDIAABBSABARERBCAB
AQ4EIAEBAgUgAQEdDgYgAQERgPUGIAEBEYElBSACAQ4OByAEAQ4ODg4GIAEBEoFNBCABAQYJIAIB
EoFNEoFNCgcFDhwRaBJhEmUFIAASgIEEAAEcHAQAAQ4cBCABHBwEAAECDgQAAQgcBSACAQgcBAAB
CAgFAAIODhwFAAEBEmUFIAASgZUDIAAOAwAAAQQHARJpBSAAEoGZBSAAEoGdBSABEmkcBSAAEoGh
BSAAEoGlAyAACAUgABKBqQYgARKBrRwFIAIICAgMBwYCAhJpEm0ScRJlAyAAAgcgAgIOEYGxBCAA
Em0EIAAScQYgARKBtRwHIAIICBGBuQUgABKBvQYgARKBwRwIBwMdDh0OElEFIAASgcUGIAESgckc
BSABHQ4IBxABAQEdHgADCgEOEAcIHQ4SdRJRCAgdEnkIEnkEIAECHAIdDgQgARwIBgADHAIcHAYg
ARKB1Q4FIAAdEnkEIAEIHAgAARKBTRGB2QggARKBzRKBTQUgAgEcHAYHAhJ1EWgIAAMCDg4RgbED
BwEOBgADCA4OAgIGDgQHARFoAwcBCAQHAR0OAwcBAgogBgEIDg4OCBACBgcDHBwSfQUgABKB4Qcg
AgEOEBJ9BiABEoHlHAMgABwEBwIcHAQgAQIIPQcZElUSVRKAhRKAiRGAjR0SgJEIEoCRCAgIFRGA
lQEIHBKAmRKAnR0SgKEIEoChCAgIEoClHRKAqQgSgKkFIAIBDhwIIAESgLUSgIkEIAEcDgUgABKB
8QYgAB0SgJEFIAASgLEFIAASgfUIFRKB+QESgK0FIAETAAgIIAAVEYCVAQgGFRGAlQEIBCAAEwAI
IAESgf0SggEFIAASggkGIAAdEoChBSAAEoIRBiAAHRKAuQUgABKCFQcgAhKCGQ4OBiAAHRKAqScH
Dw4cAhKAhRKAiRKArRKAsRKAtRwSgJkSgLkSgL0SgMESgMUSgMkGIAEBEoH1BSABARMABiABARKC
FQYgAQESghEHIAEBHRKAuTMHDhJZHBJVElkVEoDNAg4OFRKA0QEVEYDVAg4OFRGA1QIODh0OCB0O
EkQSgNkSgN0SgOEHFRKAzQIODgwVEoIhARURgNUCDg4JIAAVEoDRARMADBUSgNEBFRGA1QIODgcV
EYDVAg4OBCAAEwEEAAEODgkgAh0OHQ4RgjEHIAIdDh0DCAUgABKCPQYgARKA2QgFIAASgkEFIAAS
gkkFIAASgN0OIAUBEoENCAISgIESgREFIAASgRkFIAASglEHIAIBDhKCUQYVEnABEiQGFRJwARIg
BxUScAESgUUGFRJwARJsBAABARwEBwEeAAIeAAUQAQAeAAQKAR4ABAcBEwAGFRJwARMACAYVEoFR
ARMABxUSgVEBEwACEwAECgETAAi3elxWGTTgiQiJhF3NgIDMkQgWz0kLuAw06giwP19/EdUKOhRz
AHQAYQB0AHUAcwBjAG8AZABlAAQAAAAABAEAAAAEAgAAAAQDAAAABAQAAAABGwEcKiwAACVBRE9E
Qi5GaWVsZHNUb0ludGVybmFsRmllbGRzTWFyc2hhbGVyAAMGEWgCBggDBhJRAwYSVQMGElkDBhIU
AwYSGAQGEoENBAYSgR0EBhKBIQcGFRJwARIkBwYVEnABEiAIBhUScAESgUUHBhUScAESbAMGEiwC
BhwFIAEBEgwFIAECEA4EIAAdDgQgABFoBSABARFoByACHBKAgQgEIAASVQQgABJZCyAEAQgOEoCB
EoERBiABARKBDQUAABKBHQUAABKBIQYAAQESgSEEAAASJAQAABIgBQAAEoFFBAAAEmwEAAASLAQg
AQEcBSABEjAcBCAAEjgFIAASgU0HEAEBHgAeAAcwAQEBEB4AAygADgQoABFoAygACAQoAB0OBSgA
EoEZBQgAEoEdBQgAEoEhBAgAEiQECAASIAUIABKBRQQIABJsBAgAEiwDCAAcAwgACAUIARIwHAQI
ABI4AwgAAgQoABMACAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAQgBAAIA
AAAAACgBACNTQ18yOTIzZDk2MTY5M2U0MzUwOGM2N2RhZjkxNGE4ZmFkOQAABQEAAAAAFgEAEUNv
cHlyaWdodCBAICAyMDE2AAAFAQABAAApAQAkMDMzNzkwNGMtZWZiZS00NjI2LTlhMzUtZDI0MWI4
NDA1NzI3AAAMAQAHMS4wLjAuMAAARwEAGi5ORVRGcmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRG
cmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1ld29yayA0CAEAAQAAAAAACAEAAAAAAAAACAEA
6gMAAAAACAEA7gMAAAAACAEA+gMAAAAACAEA/AMAAAAAawEACQAAAA1Dcm1Db25uZWN0aW9uBkVu
dGl0eQlBdHRyaWJ1dGULTGFiZWxDb2x1bW4LVmFsdWVDb2x1bW4HTWFwcGluZwZBY3Rpb24MUmVw
bGFjZVZhbHVlD1N0YXRlQ29kZUNvbHVtbgAADQEACFZhbGlkYXRlAAASAQANR2V0UHJvcGVydGll
cwAAGAEACk15VGVtcGxhdGUIMTEuMC4wLjAAACkBACQwMDAwMDU2OS0wMDAwLTAwMTAtODAwMC0w
MEFBMDA2RDJFQTQAAAoBAAVWYWx1ZQAAKQEAJDAwMDAwNTRDLTAwMDAtMDAxMC04MDAwLTAwQUEw
MDZEMkVBNAAACQEABEl0ZW0AACkBACQwMDAwMDU2NC0wMDAwLTAwMTAtODAwMC0wMEFBMDA2RDJF
QTQAACkBACQwMDAwMDUwNi0wMDAwLTAwMTAtODAwMC0wMEFBMDA2RDJFQTQAACkBACQwMDAwMDU0
RC0wMDAwLTAwMTAtODAwMC0wMEFBMDA2RDJFQTQAACkBACQwMDAwMDU1Ni0wMDAwLTAwMTAtODAw
MC0wMEFBMDA2RDJFQTQAAF8BAFpTeXN0ZW0uT2JqZWN0LCBtc2NvcmxpYiwgVmVyc2lvbj00LjAu
MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkAAAsB
AAZGaWVsZHMAACkBACQwMDAwMDUwRS0wMDAwLTAwMTAtODAwMC0wMEFBMDA2RDJFQTQAACkBACQw
MDAwMDU0Ri0wMDAwLTAwMTAtODAwMC0wMEFBMDA2RDJFQTQAACkBACQwMDAwMDU1NS0wMDAwLTAw
MTAtODAwMC0wMEFBMDA2RDJFQTQAAAYBAAIAAAApAQAkMDAwMDAyNjYtMDAwMC0wMDEwLTgwMDAt
MDBBQTAwNkQyRUE0AAAwAQAVQURPREIuUmVjb3Jkc2V0RXZlbnRzFUFET0RCLlJlY29yZHNldEV2
ZW50cwAARQEAJGVmNTMwNTBiLTg4MmUtNDc3Ni1iNjQzLWVkYTQ3MmU4ZTNmMhtBRE9EQi5SZWNv
cmRzZXRFdmVudHNfRXZlbnQAACkBACQwMDAwMDUzNC0wMDAwLTAwMTAtODAwMC0wMEFBMDA2RDJF
QTQAACkBACQwMDAwMDUxMi0wMDAwLTAwMTAtODAwMC0wMEFBMDA2RDJFQTQAAGEBADRTeXN0ZW0u
V2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5z
dGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAADgEACSBTZXR0aW5ncwAALAEAJ1NlbGVjdCBE
eW5hbWljcyBDUk0gQ29ubmVjdGlvbiBNYW5hZ2VyLgAAFgEAEUNybUNvbm5lY3Rpb25UeXBlAAAg
AQAbU2VsZWN0IER5bmFtaWNzIENSTSBlbnRpdHkuAAASAQANR2V0RW50aXR5TGlzdAAAIAEAG1Nl
bGVjdCBPcHRpb25TZXQgYXR0cmlidXRlLgAAFQEAEEdldE9wdGlvblNldExpc3QAAC4BAClTZWxl
Y3QgY29sdW1uIGNvbnRhaW5pbmcgT3B0aW9uU2V0IGxhYmVsLgAALgEAKVNlbGVjdCBjb2x1bW4g
Y29udGFpbmluZyBPcHRpb25TZXQgdmFsdWUuAABSAQBNU2VsZWN0IHZhcmlhYmxlIGNvbnRhaW5p
bmcgbWFwcGluZyAoc3RyaW5nLCBkaWN0aW9uYXJ5LCByZWNvcmRzZXQpLiBPcHRpb25hbC4AAA0B
AAhObyBtYXRjaAAALgEAKVNlbGVjdCBob3cgdG8gaGFuZGxlIG5vbi1tYXRjaGluZyB2YWx1ZXMu
AAA7AQA2U3BlY2lmaWVzIHJlcGxhY2UgdmFsdWUgdG8gdXNlIHdoZW4gdGhlcmUgaXMgbm8gbWF0
Y2guAAApAQAkU2VsZWN0IGNvbHVtbiBjb250YWluaW5nIHN0YXRlIGNvZGUuAAAQAQALTXkuQ29t
cHV0ZXIAABMBAA5NeS5BcHBsaWNhdGlvbgAADAEAB015LlVzZXIAABMBAA5NeS5XZWJTZXJ2aWNl
cwAAAAC0AAAAzsrvvgEAAACRAAAAbFN5c3RlbS5SZXNvdXJjZXMuUmVzb3VyY2VSZWFkZXIsIG1z
Y29ybGliLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49
Yjc3YTVjNTYxOTM0ZTA4OSNTeXN0ZW0uUmVzb3VyY2VzLlJ1bnRpbWVSZXNvdXJjZVNldAIAAAAA
AAAAAAAAAFBBRFBBRFC0AAAA3H4AAAAAAAAAAAAA9n4AAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AOh+AAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACAAEAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAAAAAAAAAAAAAAAAAAAAEAAQAAADAAAIAA
AAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYgAAA7AMAAAAAAAAAAAAA7AM0AAAAVgBTAF8AVgBFAFIA
UwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAABAAAAAAAAAAEAAAAAAD8AAAAAAAAABAAA
AAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQA
cgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwDAAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBu
AGYAbwAAACgDAAABADAAMAAwADAAMAA0AGIAMAAAABoAAQABAEMAbwBtAG0AZQBuAHQAcwAAAAAA
AAAiAAEAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAAAAAABwACQAAQBGAGkAbABlAEQAZQBz
AGMAcgBpAHAAdABpAG8AbgAAAAAAUwBDAF8AMgA5ADIAMwBkADkANgAxADYAOQAzAGUANAAzADUA
MAA4AGMANgA3AGQAYQBmADkAMQA0AGEAOABmAGEAZAA5AAAAMAAIAAEARgBpAGwAZQBWAGUAcgBz
AGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAcAAoAAEASQBuAHQAZQByAG4AYQBsAE4AYQBtAGUA
AABTAEMAXwAyADkAMgAzAGQAOQA2ADEANgA5ADMAZQA0ADMANQAwADgAYwA2ADcAZABhAGYAOQAx
ADQAYQA4AGYAYQBkADkALgBkAGwAbAAAAEgAEgABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgA
dAAAAEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgACAAMgAwADEANgAAACoAAQABAEwAZQBnAGEAbABU
AHIAYQBkAGUAbQBhAHIAawBzAAAAAAAAAAAAeAAoAAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUA
bgBhAG0AZQAAAFMAQwBfADIAOQAyADMAZAA5ADYAMQA2ADkAMwBlADQAMwA1ADAAOABjADYANwBk
AGEAZgA5ADEANABhADgAZgBhAGQAOQAuAGQAbABsAAAAaAAkAAEAUAByAG8AZAB1AGMAdABOAGEA
bQBlAAAAAABTAEMAXwAyADkAMgAzAGQAOQA2ADEANgA5ADMAZQA0ADMANQAwADgAYwA2ADcAZABh
AGYAOQAxADQAYQA4AGYAYQBkADkAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4A
AAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAA
ADEALgAwAC4AMAAuADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAcAAADAAAAAg/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAA==]]></arrayElement></arrayElements></property><property id="5" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">SC_2923d961693e43508c67daf914a8fad9</property><property id="6" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property><property id="12" name="UserComponentTypeName" dataType="System.String">CozyRoc.ScriptComponentHostPlus</property></properties><connections><connection id="13" name="CrmConnection" connectionManagerID="{2740E3C1-7459-4D75-9A53-3D69D6077076}" /></connections><inputs><input id="14" name="Input" hasSideEffects="true"><externalMetadataColumns /></input></inputs><outputs><output id="15" name="Output" synchronousInputId="14"><externalMetadataColumns /></output></outputs></component>